提到 ARQ 自动重传请求(Automatic Repeat-reQuest),就会想到 TCP 滑动窗口机制,没错 ARQ 协议是对滑动窗口的一个很好的实现。
ARQ 协议主要包含:停等ARQ协议、连续ARQ协议,其中连续 ARQ 协议是为了解决停等 ARQ 协议信道利用率低的问题,目前传统的连续 ARQ 协议有 回退N帧ARQ协议、选择性重传ARQ协议。
注意: AQR 协议的一个特点是:发送窗口的大小 <= 窗口总数
停等 ARQ 协议(stop-and-wait)
停等 ARQ 协议相当于发送窗口和接收窗口大小均为1的滑动窗口协议。即发送方发送一个帧后,必须接收到一个确认帧(ACK)才能发送下一个。
原理:
- 点对点发送数据报,等待接收端回复并开始计时
- 等待开始时,发送端停止发送新数据包
- 当数据包没有成功被接收端接收时,接收端不发送 ACK 包,发送端将继续等待一段时间并重新发送数据包
- 重复以上步骤,直到接收到接收端发来的 ACK
优点:
原理简单,广泛运用于分组交换网络。
缺点:
较长的等待时间,使得数据传输速度低。低速传输时频道利用率较高,高速传输时频道利用率较低。
连续 ARQ 协议(Continuous ARQ)
为了克服停等 ARQ 协议长时间等待 ACK 的缺点,这个协议会连续发送一组数据包,然后再等待这些数据包的 ACK。
回退 N 帧 ARQ 协议(Go-Back-N)
原理:
- 接收端丢弃从第一个没有收到的数据包开始的所有数据包
- 发送端收到 NACK 后,从 NACK 中指明的数据包开始重新发送
选择性重传 ARQ 协议(Selective Repeat)
原理:
- 发送端连续发送数据包但对每个数据包都设有个一个计时器
- 当在一定时间内没有收到某个数据包的 ACK 时,发送端只重新发送那个没有 ACK 的数据包
Comments | 0 条评论