为什么选择重传策略窗口长度最多是序列号范围一半?

这篇博客探讨了计算机网络课上讲解的选择重传策略中,为何窗口长度最多为序列号范围的一半。博主分析了可能导致错误的情况,并解释了确保接收方不接受旧分组的极端条件,即两个窗口长度之和不大于序列号范围。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚上的计算机网络课,讲了pipeline模式的可靠传输的一种差错恢复策略——选择重传。临下课的时候老师告诉我们窗口长度N最多是序列编号范围的一半,他说道理很简单的,自己想一下。我思考了一下,然而……
这里写图片描述

所以具体问题是什么?

这里写图片描述
可以看到左边发方一直没有收到ACK,最后超时重传了第0个分组,而右边的收方却以为是最新的分组而接受,这就很尴尬了。正是这种困境引出了我们标题所说的约束。

为什么一半?

我们要找到能避免这种尴尬的极端情况。
根据书上的描述,收发方窗口长度是一样的。收发方各自有一段分组序列,序列号从0到K循环地编给每个分组,就像上图的01230123…,我们把(0,k)作为一段考虑。

发方要等别人ACK才能移动窗口,一等就要耽搁了,这使得发方窗口总是落后于收方。并且他的窗口内第一个分组,一定是还没被ACK的,如果发生了重传,那一定是最先发这个。
收方的接收策略是,但凡编号落在窗口内,那就接受并发送ACK。因此极端情况我们要保证的是,准备接受的分组不可以来自上一段(更不可能是下一段)。

我们让收方窗口尽可能领先,最多领先至

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值