ARQ


ARQ (正體)

Free Web Hosting with Website Builder

自动重传请求Automatic Repeat-reQuestARQ)是OSI模型数据链路层的错误纠正协议之一。它包括停止等待ARQ协议和连续ARQ协议。

目录

停止并等待ARQ协议(stop-and-wait)

停止并等待协议的工作原理如下:

  1. 发送点对接收点发送数据包, 然后等待接收点回复ACK并且开始计时.
  2. 在等待过程中, 发送点停止发送新的数据包.
  3. 当数据包没有成功被接收点接收时候,接收点不会发送ACK. 这样发送点在等待一定时间后, 重新发送数据包.
  4. 反复以上步骤直到收到从接收点发送的ACK.

发送点的等待时间应当至少大于传输点数据包发送时间(数据包容量除以发送点传输速度),接收点ACK接收时间(ACK容量除以接收点传输速度),数据在连接上的传送时间, 接收点检验接收数据是否正确的时间之和. 在实际应用当中, 等待时间是这个和的2到3倍.

这个协议的缺点是较长的等待时间导致低的数据传输速度. 在低速传输时,对连接频道的利用率比较好, 但是在高速传输时, 频道的利用率会显著下降.

连续ARQ协议(Continuous ARQ)

为了克服停止并等待ARQ协议长时间等待ACK的缺点. 这个协议会连续发送一组数据包, 然后再等待这些数据包的ACK.

选择重复 (Selective Repeat)

  • 发送点连续发送数据包但对每个数据包都设有个一个计时器.
  • 当在一定时间内没有受到某个数据包的ACK时, 发送点只重新发送那个没有ACK的数据包

这个方法的缺点是接收点收到的数据包的顺序可能不是发送的数据包顺序. 因此在数据包里必须含有顺序字符来帮助接受点来排序.

倒退N (Go-back-N)

这个方法解决了选择重复中数据包顺序被打乱的问题.

  • 发送点连续发送数据包, 每个数据包都含有顺序字符.
  • 接受点发现某个数据包没有接受到, 对发送点发NACK.在NACK中指明没有接受的数据包.
  • 接收点丢弃从第一个没有收到的数据包开始的所有数据包.
  • 发送点收到NACK后, 从NACK中指明的数据包开始重新发送

这个办法的问题是如何正确选择表明数据包的顺序字符的数量. 这个数量因当包括ACK或者ACK从接收点到达发送点的时间.

方法

ARQ协议对错误纠正的方法是:

  • 丢弃已经接收的含有错误的数据包.
  • 向发送点请求重新发送含有错误的数据包.


优点和缺点

这个协议的优点是它非常的简单. 因而被广泛的应用在分组交换网络中. 这个协议的缺点是需要接收点发送ACK, 这样增加了网络的负担也影响了它的传输速度. 它重复发送数据包来纠正错误的方法也严重的影响了它的传输速度.







Why are we here?
All text is available under the terms of the GNU Free Documentation License
This page is cache of Wikipedia. History