本文主要是介绍计算机网络-链路层:选择重传协议(SR),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
GBN协议的弊端
累积确认会导致批量重传, 不能只重传出错的帧
解决办法
设置单个确认, 同时加大接收窗口, 设置接收缓存, 缓存乱序到达的帧
选择重传协议中的滑动窗口
SR发送方必须响应的三件事
上层的调用
从上层收到数据后, SR发送方检查一下可用于该帧的信号, 如果序号位于发送窗口内, 则发送数据帧
否则就会像GBN一样, 要么将数据缓存, 要么返回给上层之后再传输
收到一个ACK
如果收到ACK, 加入该帧序号在窗口内,则SR发送方将那个确认的帧标记为已接收
如果该帧序号是窗口的下界, 则窗口向前移动到具有最小序号的未确认帧处
如果窗口移动了并且有序号在窗口内的未发送帧, 则发送这些帧
SR接收方要在的事
来着不拒
SR接收方将确认一个正确接收的帧而不管其是否乱序, 失序的帧将被缓存, 并返回给发送方一个该帧的确认帧, 直到所有帧皆被收到为止, 这时才可以将这一批帧按序交付给上层, 然后向前移动滑动窗口
如果收到窗口序号外的帧, 就返回一个ACK
运行中的SR
总结
- 对数据帧逐一确认, 收一个确认一个
- 只重传错帧
- 接收方有缓存
这篇关于计算机网络-链路层:选择重传协议(SR)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!