滑动窗口协议

2025年3月17日 | 阅读 3 分钟

滑动窗口是一种一次发送多个帧的技术。它控制两个设备之间的数据包,这些设备需要可靠且渐进地传输数据帧。它也用于 TCP(传输控制协议)

在此技术中,每个帧都通过序列号发送。序列号用于在接收端查找丢失的数据。滑动窗口技术的目的是避免重复数据,因此它使用序列号。

滑动窗口协议的类型

滑动窗口协议有两种类型

  1. 回退N自动重传请求
  2. 选择重传 ARQ

回退N自动重传请求

回退 N ARQ 协议也称为回退 N 自动重传请求。它是一种使用滑动窗口方法的数据链路层协议。在这种情况下,如果任何帧损坏或丢失,所有后续帧都必须重新发送。

在此协议中,发送方窗口的大小为 N。例如,对于 Go-Back-8,发送方窗口的大小将是 8。接收方窗口大小始终为 1。

如果接收方收到损坏的帧,它会取消该帧。接收方不接受损坏的帧。当计时器到期时,发送方会再次发送正确的帧。回退 N ARQ 协议的设计如下所示。

Sliding Window Protocol

回退 N ARQ 的示例如下图所示。

Sliding Window Protocol

选择重传 ARQ

选择重传 ARQ 也称为选择重传自动重传请求。它是一种使用滑动窗口方法的数据链路层协议。回退 N ARQ 协议在错误较少的情况下工作良好。但是,如果帧中有很多错误,则重新发送帧会浪费大量带宽。因此,我们使用选择重传 ARQ 协议。在此协议中,发送方窗口的大小始终等于接收方窗口的大小。滑动窗口的大小始终大于 1。

如果接收方收到损坏的帧,它不会直接丢弃它。它会向发送方发送否定确认。发送方在收到否定确认后会立即重新发送该帧。无需等待任何超时即可重新发送该帧。选择重传 ARQ 协议的设计如下所示。

Sliding Window Protocol

选择重传 ARQ 协议的示例如下图所示。

Sliding Window Protocol

回退 N ARQ 和选择重传 ARQ 之间的区别?

回退N自动重传请求选择重传 ARQ
如果其中一个帧损坏或丢失,则所有后续帧都必须重新发送。在这种情况下,只重新发送损坏或丢失的帧。
如果错误率很高,会浪费大量带宽。带宽损失较少。
它不太复杂。它更复杂,因为它还需要进行排序和搜索。而且它还需要更多的存储空间。
它不需要排序。在这种情况下,会进行排序以按正确顺序获取帧。
它不需要搜索。在这种情况下,会执行搜索操作。
它使用得更多。由于它更复杂,因此使用得较少。

下一主题SNMP