数据链路层的差错控制与流量控制

需积分: 15 4 下载量 128 浏览量 更新于2024-09-16 收藏 358KB PPT 举报
"协议及技术" 计算机网络中的数据链路层是通信的重要环节,其主要任务是确保数据的可靠传输,包括差错控制和流量控制。差错控制旨在检测并纠正数据在传输过程中可能出现的错误,而流量控制则是为了防止发送方的数据传输速率超过接收方的处理能力,从而避免数据丢失或拥塞。 在理想情况下,如果数据不会出现差错且接收端的接收速率足够快,那么数据链路层不需要额外的差错控制和流量控制协议。然而,实际情况往往并非如此,因此必须引入相应的机制来保证数据的正确传输。 停止等待协议是最简单的流量控制策略之一。在这种协议中,发送方发送一个数据帧后会进入等待状态,直到接收到接收方的应答信息才继续发送下一个数据帧。接收方接收数据帧后,将其存入缓存并发送应答信息。这种协议虽然简单,但存在效率低下的问题,因为每次发送都需要等待应答,导致信道利用率不高。 实用的停止等待协议ARQ(Automatic Repeat reQuest)同时考虑了差错控制和流量控制。发送方在发送数据帧后等待应答,接收方通过CRC校验判断数据帧是否有误。如果无误,发送ACK;如果有误,发送NAK。发送方根据应答帧决定是否重传数据帧。然而,这种协议有两个主要缺陷: 1. **死锁现象**:如果数据帧丢失,发送方可能无限期等待应答,导致死锁。为解决这个问题,引入了超时重传机制,即发送方在发送数据帧后启动计时器,如果在预设的超时时间(tout)内未收到应答,就重新发送数据帧。 2. **重复帧差错**:如果应答帧丢失,发送方可能会收到重复的数据帧。为处理这种情况,协议使用发送序号(Ns)来区分不同的数据帧。如果接收方发现收到的序号与之前相同,将丢弃该帧并发送ACK。由于只需要区分新旧数据帧,因此ARQ协议中1位的发送序号就足够了。 停止等待协议的信道利用率受到传输时延Td、数据帧发送时间Tf、数据传输率C以及数据帧长度L的影响。总的传输时间包括了数据帧的发送时间和等待时间,信道利用率Cr是实际传输时间与总时间的比例。这种协议的效率较低,因为每次传输都需要等待一个往返时延,这限制了数据的连续传输,降低了信道的使用效率。 为了提高信道利用率,可以采用更复杂的协议,如滑动窗口协议,允许发送方在等待应答前发送多个数据帧,从而减少等待时间并增加并发传输,提高网络性能。不过,这些协议的实现和管理更为复杂,需要更精细的错误检测和恢复机制。