停止等待ARQ协议解析:流量控制与错误纠正

需积分: 15 2 下载量 121 浏览量 更新于2024-08-14 收藏 358KB PPT 举报
"选择重发ARQ协议是数据链路层一种重要的差错控制和流量控制机制,旨在确保数据在存在错误和不同接收能力的情况下也能正确传输。此协议结合了停止等待协议的基本思想,同时处理了数据帧丢失和应答帧丢失的问题。" 在计算机网络技术中,数据链路层负责在不可靠的物理链路上提供可靠的数据传输服务。差错控制和流量控制是这一层的关键功能。理想情况下,如果数据传输无差错且接收端能及时处理所有数据,那么不需要额外的协议来控制这些问题。然而,实际情况往往并非如此,因此需要设计合适的协议来应对这些挑战。 停止等待协议是最基础的流量控制协议之一。在这种协议中,发送方发送一个数据帧后,会进入等待状态,直到收到接收方的应答信息。如果接收方成功接收到数据帧,它会发送一个确认帧(ACK);反之,如果检测到错误,它会发送否认帧(NAK)。然而,这种协议存在两个主要缺陷:一是数据帧或应答帧可能会丢失,导致死锁或重复帧;二是信道利用率可能很低。 为了克服这些缺陷,选择重发ARQ(Automatic Repeat-reQuest)协议应运而生。ARQ协议考虑了数据帧丢失和应答帧丢失的情况。当发送端发送一个数据帧后,它会启动一个超时计时器。如果在预设的超时时间(tout)内未收到应答帧,发送端会重传该数据帧。这样可以解决数据帧丢失的问题,因为即使帧在传输过程中丢失,发送端也会在超时后重新发送。 对于应答帧丢失导致的重复帧问题,ARQ协议引入了发送序号(Ns)。每个数据帧都附带一个唯一的序号,这样接收端就能识别并丢弃重复的帧。由于ARQ协议只需要区分新旧帧,所以一个位(1bit)的序号通常就足够了。每当发送新的数据帧,序号就会更新以确保与上一个帧不同。 尽管ARQ协议提高了数据传输的可靠性,但它也影响了信道的效率。在停止等待协议中,发送方必须等待一个往返时间(RTT,包括数据帧的发送时间和接收方的应答时间)才能发送下一个数据帧。这意味着信道利用率Cr(传输时间与总时间的比例)受到RTT的限制。如果单程传输时延Td、数据帧发送时间Tf、数据传输率C和数据帧长度L已知,可以计算出Cr=(2Td+Tf)/(2Td+Tf+C*L),其中等待时间等于2Td(因为发送方需等待一个完整的RTT)。 选择重发ARQ协议是通过引入超时机制和序列号来实现数据的可靠传输,并通过调整发送策略以提高信道利用率。尽管这种方法在实际应用中非常有效,但在高数据传输速率和低延迟需求的场景下,可能需要更复杂的协议,如连续ARQ或滑动窗口协议来进一步优化性能。