后退N帧ARQ协议中,规定发送窗口大小,为什么要满足这个条件?

2025-05-12 18:32:23
推荐回答(2个)
回答(1):

考虑二进制,例如帧编号长度为3,则,帧编号可以是000——111。但是,在后退N帧ARQ协议中,一个ACK是对前面的所有成功接收数据的接收确认,当你的窗口长度为2的三次方8时,你接受到了一个ACK0(表示已经前面的数据帧都已经成功接收到,期望接收到的下一帧是0),窗口移动后,如果再次接收到ACK0,那么这个ACK0是表示窗口中的所有帧都已经正常接收还是没有接收呢?(你的发送窗口中再次出现了0号帧)。出现了二义性啦。

回答(2):

假设2位比特编号,那么我们可以有4种编号。发送方就是012301230123……
Wt最大应该是3。如果我们取4。
现在发送方发0123。接收方全都完美收到了,那我现在返回ACK3给发送方,准备接受新一轮0123。
可是这个ACK丢了。这个时候发送方计时器也到点了。那他就要重新发送0123,可是他不知道我收到了,他又发了一遍旧的0123给我。
那我就很难受。