停止等待、回退N和选择重传协议之间的区别
这三种协议都提供了一种流量控制机制。通读本文以了解停止等待、回退N和选择重传协议的基本概述。
停止等待协议
这是最基本的流量控制策略。发送方使用此方法一次向接收方发送一个帧。发送方将停止并等待接收方响应。发送消息和接收确认之间的时间间隔称为发送方的等待时间,在此期间发送方处于空闲状态。收到确认(ACK)后,发送方将向接收方发送下一个数据包,依此类推,只要发送方有数据要发送。
回退N
回退N ARQ 协议是自动重传请求 (ARQ) 协议的一个变体。即使接收方没有用确认 (ACK) 数据包响应,发送方也会根据窗口大小发送多个帧。传输窗口大小为 N,接收窗口大小为 1 是基本滑动窗口协议的一个特例。它可以在请求确认之前向对等方发送 N 个帧。
它基于协议流水线的概念,允许在第一个帧被确认之前传递多个帧。由于回退N ARQ 同时提供多个括号,因此需要一种编号策略来区分一个帧与另一个帧,因此回退N ARQ 中的架子按顺序编号。这些数字称为序列号。
一次可以发送的帧的最大数量完全取决于发送方的窗口大小。如果在商定的时间范围内未收到帧的确认,则当前窗口中的所有结构都将重新传输。
回退N 消耗更多带宽,因为它即使只有一个数据包丢失也会重新传输整个窗口。如果错误率较高,则回退N 将消耗大量带宽。
回退N 使用累积确认,这可以减少流量;但是,始终存在丢失累积确认的风险。如果发生这种情况,则所有相应数据包的确认都会丢失。
选择重传协议
选择重传 ARQ 是在可靠通信中用于处理序列号和重传的自动重传请求 (ARQ) 协议的一个变体。特定重复允许发送方在不等待接收方的单个 ACK 的情况下(如在回退N ARQ 中)传递一组帧。
它使用两个大小相等的窗口:一个发送窗口,用于存储要发送的帧;一个接收窗口,用于存储接收方接收到的帧。大小为帧最大序列号的一半。
即使它在此期间没有确认任何帧,选择重传协议也允许它根据发送窗口中结构的可用性发送多个帧。发送窗口的大小决定了可以发送的帧的最大数量。
如果您必须考虑带宽需求,则选择重传是一个更好的选择,因为它只会重新发送有缺陷或丢失的数据包,而不是整个窗口。
停止等待、回退N和选择重传之间的区别
下表重点介绍了停止等待、回退N和选择重传协议之间的主要区别:
关键 | 停止等待协议 | 回退N 协议 | 选择重传协议 |
---|---|---|---|
发送方窗口大小 | 停止等待协议中的发送方窗口大小为 1。 | 回退N 协议中的发送方窗口大小为 N。 | 选择重传技术中的发送方窗口大小为 N。 |
接收方窗口大小 | 停止等待协议中的接收方窗口大小为 1。 | 回退N 协议中的接收方窗口大小为 1。 | 选择重传技术中的接收方窗口大小为 N。 |
最小序列号 | 停止等待过程中的最小序列号为 2。 | 回退N 协议中的最小序列号为 N+1,其中 N 是发送的数据包数量。 | 选择重传协议中的最小序列号为 2N,其中 N 是传输的数据包数量。 |
效率 | 在停止等待协议中,效率公式为 1/(1+2*a),其中 a 是传播延迟与传输延迟的比率。 | 在回退N 协议中,效率公式为 N/(1+2*a),其中 a 是传播延迟与传输延迟的比率,N 是发送的数据包数量。 | 在选择重传协议中,效率公式为 N/(1+2*a),其中 a 是传播延迟与传输延迟的比率,N 是发送的数据包数量。 |
确认类型 | 在停止等待协议中,确认类型为单个。 | 在回退N 协议中,确认类型为累积。 | 在选择重传协议中,确认类型为单个。 |
支持的顺序 | 在停止等待协议的接收端,不需要特定的顺序。 | 在回退N 协议的接收端,仅接受按顺序交付。 | 在选择重传协议中,接收端也可以接受乱序交付。 |
重传 | 在停止等待协议中,如果数据包丢失,则重传次数为 1。 | 在回退N 协议中,如果数据包丢失,则重传次数为 N。 | 在选择重传协议中,如果数据包丢失,则重传次数为 1。 |
结论
回退N 和选择重传是滑动窗口协议的类型,它们允许在不等待接收方确认的情况下自发地传输多个帧。停止等待协议的不同之处在于,它允许发送方一次仅传输一个帧,然后等待接收方的确认,然后再传输第二个帧。