计算机网络中的选择重发ARQ是什么?
选择重发自动重传请求(ARQ)是一种数据链路层可能用来控制错误的技术。
控制ARQ的技术
通常,有三种技术通过自动重传请求(ARQ)来控制错误,它们是:
- 停止等待ARQ
- 后退N ARQ
- 选择重发ARQ
错误控制的要求
错误控制机制有一些要求,如下所示:
错误检测 - 发送方和接收方,或任何一方必须确定传输过程中是否存在错误。
肯定确认 (ACK) - 接收方每收到一个正确的帧,都应进行确认。
否定确认 (NACK) - 每当接收方收到损坏的帧或重复的帧时,它会向发送方发送NACK,发送方必须重新传输正确的帧。
重传 - 发送方始终维护一个时钟并设置超时周期。如果先前传输的数据帧的ACK在超时前没有到达,则发送方会重新传输该帧,认为该帧或其ACK在传输过程中丢失了。
让我们看看选择重发ARQ的工作情况。
选择重发ARQ
它也称为滑动窗口协议,用于数据链路层的错误检测和控制。
在选择重发中,发送方发送由窗口大小指定的多个帧,甚至不需要像后退N ARQ那样等待接收方的单个确认。在选择重发协议中,重新传输的帧是乱序接收的。
在选择重发ARQ中,只有丢失或错误的帧才会被重新传输,而正确的帧则被接收并缓冲。
接收方在跟踪序列号的同时将帧缓冲在内存中,并且仅对丢失或损坏的帧发送NACK。发送方将发送/重新传输收到NACK的包。
示例
以下是选择重发ARQ的示例:
解释
步骤1 - 帧0从发送方发送到接收方并设置计时器。
步骤2 - 发送方在不等待接收方确认的情况下,发送另一个帧,帧1,并为其设置计时器。
步骤3 - 同样,帧2也在不等待之前的确认的情况下发送到接收方,并设置计时器。
步骤4 - 每当发送方在帧0计时器内从接收方收到ACK0时,它就会关闭并发送到下一个帧,帧3。
步骤5 - 每当发送方在帧1计时器内从接收方收到ACK1时,它就会关闭并发送到下一个帧,帧4。
步骤6 - 如果发送方在时间段内没有从接收方收到ACK2,则它声明帧2超时并再次重新发送帧2,因为它认为帧2可能丢失或损坏。