自动重传请求
此条目包含过多行话或专业术语,可能需要简化或提出进一步解释。 (2013年12月30日) |
此条目没有列出任何参考或来源。 (2013年12月30日) |
自动重传请求(Automatic Repeat-reQuest,ARQ)是OSI模型中资料链结层和传输层的一种错误更正协议。此协议透过使用确认和超时这两种机制,在不可靠的服务基础上实作出可靠的讯息传输。如果发送方在传送后的一段时间内没有收到确认讯框,它通常会重新传送。ARQ可能包括停止等待ARQ协议和连续ARQ协议,并包含错误检测(Error Detection)、正面确认(Positive Acknowledgment)、超时重传(Retransmission after Timeout)以及负面确认及重传(Negative Acknowledgment and Retransmission)等机制。
停止并等待ARQ协议(stop-and-wait)
停止并等待协议的工作原理如下:
- 发送点对接收点发送数据包,然后等待接收点回复ACK并且开始计时。
- 在等待过程中,发送点停止发送新的数据包。
- 当数据包没有成功被接收点接收时候,接收点不会发送ACK。这样发送点在等待一定时间后,重新发送数据包。
- 反复以上步骤直到收到从接收点发送的ACK。
发送点的等待时间应当至少大于传输点数据包发送时间(数据包容量除以发送点传输速度),接收点ACK接收时间(ACK容量除以接收点传输速度),数据在连接上的传送时间,接收点检验接收数据是否正确的时间之和。在实际应用当中,等待时间是这个和的2到3倍。
这个协议的缺点是较长的等待时间导致低的数据传输速度。在低速传输时,对连接频道的利用率比较好,但是在高速传输时,频道的利用率会显著下降。
连续ARQ协议(Continuous ARQ)
为了克服停止并等待ARQ协议长时间等待ACK的缺点。这个协议会连续发送一组数据包,然后再等待这些数据包的ACK。
回退N重传(Go-Back-N)
- 接收点丢弃从第一个没有收到的数据包开始的所有数据包。
- 发送点收到NACK后,从NACK中指明的数据包开始重新发送。
选择重传(Selective Repeat)
- 发送点连续发送数据包但对每个数据包都设有个一个计时器。
- 当在一定时间内没有收到某个数据包的ACK时,发送点只重新发送那个没有ACK的数据包。
方法
ARQ协议对错误纠正的方法是:
- 丢弃已经接收的含有错误的数据包。
- 向发送点请求重新发送数据包。
应用
UMTS的ARQ机制是在基地台控制站(Radio Network Controller,RNC),使用安置在协议数据单元(Protocol Data Unit,PDU)前的序号来作为是否有封包丢失的依据,有不少的延迟时间。
优点和缺点
ARQ协议的优点是它非常的简单。因而被广泛的应用在分组交换网络中。
ARQ协议的缺点是需要接收方发送ACK,这样增加了网络的负担也影响了传输速度。重复发送数据包来纠正错误的方法也严重的影响了它的传输速度。
参见
参考文献
- Peterson and Davie, Computer Networks: A Systems Approach, Third Edition, 2003
- RFC 3366 - Advice to link designers on link Automatic Repeat reQuest (ARQ)
- Negative acknowledgement ARQ for live video
- 本条目引用的公有领域材料来自联邦总务署的文档《Federal Standard 1037C》 (MIL-STD-188提供支持)。