【滑动窗口】滑动窗口的大小为什么不能等于2^n呢?

发布时间:2021-03-22 14:54:22

滑动窗口的大小为什么不能等于2^n呢? 数学

网友回答

【答案】 后退N 帧协议:假设发送窗口的大小为2n,发送方发送了0 号帧,接收窗口发送ACK1(0 帧以收到,希望接受1 号帧,但是ACK1 丢失),接着发送方发送了1 号帧,接收窗口发送ACK2(1 帧已收到,希望接受2 号帧,但是ACK2 丢失),以此类推,直到发送方发了第2n-1 号帧,接收方发送ACK2n(丢失),此时不能在发送数据了,因为已经发送了2n 个帧,但一个确认都没有收到,所以过一段时间帧0 的计时器会到达预定时间进行重发,此时发过去接收方是认为是新一轮的0 号帧还是旧一轮重传的呢?接收方并不知道,很有可能接收方就把该0 号帧当作新一轮的帧接受了,但实际上这个0 号帧是重传的,所以出现错误,即发送窗口的大小不可能为2n.现在假设发送窗口的大小为2n-1,情况和上面一样,发送方发送了0 到2n-2 号帧,接收方发送的确认帧都丢失了,如果没有丢失的话就应该接着传2n-1,但是丢失了,发送方应该发送0 号帧,但是这种情况接收方可以判断出来(即下一帧只要不是第2n-1 号帧就是重传),所以不会发生错误,如果发送窗口的小于2n-1 的话,那就更不会发生错误了.综上:后退N 帧协议的最大发送窗口是2n-1
以上问题属网友观点,不代表本站立场,仅供参考!