计算机网络中的选择性重复 ARQ
选择性重复自动重复请求 (ARQ) 是数据链路层可用于控制错误的技术之一。
控制 ARQ 的技术
通常,有三种类型的技术通过自动重复请求 (ARQ) 控制错误,它们是 −
- 停止等待 ARQ
- 返回 N ARQ
- 选择性重复 ARQ
错误控制要求
错误控制机制有一些要求,如下所示 −
错误检测 − 发送方和接收方,或者任何一方都必须确定传输过程中是否存在错误。
肯定确认 − 每当接收方收到正确的帧时,它都应该确认。
否定确认 − 每当接收方收到损坏的帧或重复的帧时,它会向发送方发送回 NACK,并且发送方必须重新传输正确的帧。
重新传输 − 发送方始终保持时钟并设置超时期限。如果之前传输的数据帧的 ACK 在超时之前没有到达,则发送方会重新传输该帧,认为该帧或其 ACK 在传输中丢失了
让我们看看选择性重复 ARQ 的工作情况。
选择性重复 ARQ
它也被称为滑动窗口协议,用于数据链路层中的错误检测和控制。
在选择性重复中,发送方发送由窗口大小指定的多个帧,甚至不需要像 Go-Back-N ARQ 那样等待接收方的单独确认。在选择性重复协议中,重新传输的帧是无序接收的。
在选择性重复 ARQ 中,仅重新传输丢失或错误的帧,而接收和缓冲正确的帧。
接收方在跟踪序列号的同时将帧缓冲在内存中,并仅对丢失或损坏的帧发送 NACK。发送方将发送/重新传输收到 NACK 的数据包。
示例
下面给出了选择性重复 ARQ 的示例 -
![选择性重复 ARQ 选择性重复 ARQ](/data_communication_computer_network/images/selective_repeat.jpg)
说明
步骤 1 - 帧 0 从发送方发送到接收方并设置计时器。
步骤 2 - 无需等待接收方确认另一个帧,发送方通过为其设置计时器发送帧 1。
步骤 3 - 以同样的方式,帧 2 也通过设置计时器发送到接收方,而无需等待先前的确认。
步骤 4 - 每当发送方从接收器,在帧 0 计时器内,然后关闭并发送到下一帧,即帧 3。
步骤 5 − 每当发送方从接收器收到 ACK1 时,在帧 1 计时器内,然后关闭并发送到下一帧,即帧 4。
步骤 6 − 如果发送方未在时间段内从接收器收到 ACK2,它会声明帧 2 超时并再次重新发送帧 2,因为它认为帧 2 可能已丢失或损坏。