📜  滑动窗口协议

📅  最后修改于: 2020-11-10 05:39:54             🧑  作者: Mango

滑动窗口协议

滑动窗口是一种用于一次发送多个帧的技术。它控制着两个设备之间需要可靠和逐步传送数据帧的数据包。它也用于TCP(传输控制协议)中。

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

滑动窗口协议的类型

滑动窗口协议有两种类型:

  • Go-Back-N ARQ
  • 选择性重复ARQ

Go-Back-N ARQ

Go-Back-N ARQ协议也称为Go-Back-N自动重复请求。它是一种使用滑动窗口方法的数据链路层协议。这样,如果任何帧损坏或丢失,则必须再次发送所有后续帧。

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

如果接收方收到损坏的帧,则将其取消。接收器不接受损坏的帧。当计时器到期时,发送方再次发送正确的帧。 Go-Back-N ARQ协议的设计如下所示。

下图显示了Go-Back-N ARQ的示例。

选择性重复ARQ

选择性重复ARQ也称为选择性重复自动重复请求。它是一种使用滑动窗口方法的数据链路层协议。 Go-back-N ARQ协议如果错误较少,则效果很好。但是,如果帧中存在很多错误,则再次发送帧时会损失大量带宽。因此,我们使用选择性重复ARQ协议。在此协议中,发送方窗口的大小始终等于接收方窗口的大小。滑动窗口的大小始终大于1。

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

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

Go-Back-N ARQ和选择性重复ARQ之间的区别?

Go-Back-N ARQ Selective Repeat ARQ
If a frame is corrupted or lost in it,all subsequent frames have to be sent again. In this, only the frame is sent again, which is corrupted or lost.
If it has a high error rate,it wastes a lot of bandwidth. There is a loss of low bandwidth.
It is less complex. It is more complex because it has to do sorting and searching as well. And it also requires more storage.
It does not require sorting. In this, sorting is done to get the frames in the correct order.
It does not require searching. The search operation is performed in it.
It is used more. It is used less because it is more complex.