GBN协议的弊端
- 累积确认—》 批量重传
- 有一个帧出错了,它后面的所有帧都要重传一次
选择重传协议
- 解决GBN协议的弊端:设置单个确认,同时加大接收窗口,设置接收缓存,缓存乱序到达的帧。—即,选择重传协议
选择重传协议中的滑动窗口
SR发送方必须响应的三件事
1、上层的调用
从上层收到数据后,SR发送方检查下一个可用于该帧的序号,如果序号位于发送窗口内,则发送数据帧,否则就像GBN一样,要么将数据缓存,要么返回给上层之后再传输。
2、接收到了一个ACK
如果接收到ACK,加入该帧序号在窗口内,则SR发送方将那个被确认的帧标记为已接收。如果该帧编号是窗口的下界(最左边第一个窗口对应的序号),则窗口向前移动到具有最小序号的未确认帧处。如果窗口移动了并且有序号在窗口内的未发送帧,则发送这些帧。
SR接收方要做的事
- 对于窗口内的帧来者不拒
SR接收方将确认一个正确接收的帧而不管其是不是按序的。失序的帧将被缓存,并返回给发送方一个该帧的确认帧(收谁确认谁),直到所有帧(即序号更小的帧)皆被收到为止,这时才可以将一批帧按序交付给上层,然后向前滑动窗口。
- SR执行过
滑动窗口的长度
示例
总结
例子
- 对数据帧逐一确认,收一个确认一个
- 只重传出错帧
- 接收方有缓存
- W Tmax= W Rmax=2^n-1
笔记出处
王道计算机考研 计算机网络