出现这两种协议的前提:停等协议,信道效率低。
回退N步
与停等协议不同,这里的发送窗口是N(<=(2^m)-1),
这里的m是假设数据帧m=3,窗口N=7。
现在假设接收方的窗口为1.
发送方一次发送假设6个数据帧,
1 2 3 4 5 6
但是接收方接收到的第2个数据帧出了错,接收方接收的数据为,
1 3 4 5 6
此时,发送方就需要从第二个数据帧开始重发数据给接收方,如下,
2 3 4 5 6
而此时发送方先舍弃掉错误的第二个数据帧,此时只有数据帧1,
1
再次接收发送方的数据,
1 2 3 4 5 6
缺陷
网络状况糟糕的情况下,大量数据重传。
选择重传
这里的发送窗口是N<=2^(m-1),
这里的m是假设数据帧3,窗口N=4.
相较于回退N步机制来说,接收端需要更大的缓存区,之后如果出现丢失或出错的数据帧,则仅仅需要重传这一个数据帧,不需要像回退N步机制一次性重发。
总结
参考来源: