计算机网络中的滑动窗口协议
滑动窗口也称为窗口化。滑动窗口是一种控制两个网络设备之间发送数据包的方法,需要可靠且连续地传送数据包,例如使用数据链路层(OSI 模型)或传输控制协议 (TCP)。
在滑动窗口技术中,每个数据包(对于大多数数据链路层)和字节(在 TCP 中)都包含一个唯一的连续序列号,接收计算机使用该序列号将数据按正确顺序放置。滑动窗口技术的目的是使用序列号来避免重复数据并请求丢失的数据。
以下是两种类型的滑动窗口协议 -
Go Back-n 协议
Go-Back-N 自动重复查询 (ARQ) 协议也称为 Go-Back-N 自动重复请求。它是一种支持滑动窗口方法的数据链路层协议。在这种情况下,如果任何帧被操纵或丢失,则必须重新发送所有后续帧。
例如,在 GO-Back –N 中,N 是发送方的窗口大小;如果是 GO-Back-5,则发送方将在收到帧 1 的知识之前发送帧 1 到 5。
所有帧都是数字,用于处理最多和重复的帧。如果发送方未收到接收方的确认,则当前窗口中可用的所有帧都将被重新传输。
Go-Back-N 协议的设计如下所示 −
选择性重复 ARQ
选择性重复 ARQ 也称为选择性重复自动重复请求。它是一种数据链路层协议,有助于滑动窗口方法。如果 Goback-N ARQ 协议的错误较少,则运行良好。
在此协议中,发送方窗口大小始终与接收方窗口大小相似。滑动窗口的大小始终大于 1。
如果接收方获得损坏的帧,它不会直接将其删除。它会向发送方发送否定确认。发送方立即再次发送该帧,并收到否定确认。无需等待超时即可共享该帧。
选择性重复 ARQ 协议的结构如下所示 −