不管是王道还是百度或者是google
都没给出令人信服的结果:为什么窗口大小是 s<=2^n-1;
1。首先我们来看一下王道的解释:
假设n=3 发送窗口大小为0-7(8个),接受方收到0-7 后返回确认帧ack0-ack7 但是ack0-ack7都丢失了;
一段时间后超时了。发送方重新发送旧的0-7, 接受方以为是新的0-7 这样就出错了。
2。网上找到答案就不一一细说了,很多感觉逻辑有问题,反正没有一个shui服了我。
这是我自己想的,不知道实际是不是这样(如果不是请大佬留情,小弟虚心求教):
假设0-6 把7空出来当作特殊值备用,由于 ACK确认帧全部丢失了,发送端只能重新发送旧的0-6,
接受端并不知道是旧的,就当新的来用。出错!!!
但是如果发送端按照这个规则:(旧帧0123456) (新帧7123456)
接受端就能判断是否是新帧还是旧帧了。
再次申明***这是我自己想的,不知道实际是不是这样(如果不是请大佬留情,小弟虚心求教):***