如果接收方的 ACK 丢失会怎样?
What happens if the receiver's ACKs get lost?
对于模4运算,序号范围为0-3,window大小为3(0-2)。假设从 0-2 发送了 3 个数据包,并且发送方正在等待来自接收方的 ACK。假设接收方发送的所有 3 个 ACK 都丢失了。
此时,接收方正在等待序号为3的数据包。
在发送端,send window 充满了未完成的数据包。在超时的情况下,所有未完成的数据包都将被重新发送并被接收方正确丢弃。我们都知道ACK是不重发的
所以我的问题是发送方现在将如何发送序列号为 3 的数据包,因为发送 window 已满并且除非收到 ACK(无法重传),否则不会清除未完成的数据包。
we all know that Ack's are not resent
没有。我们不知道。
在Go-Back-N中:
The receiver will discard any frame that does not have the exact
sequence number it expects (either a duplicate frame it already
acknowledged, or an out-of-order frame it expects to receive later)
and will resend an ACK for the last correct in-order frame.
因此接收方将继续为数据包 #2(请求数据包 #3)发送 ACK。
对于模4运算,序号范围为0-3,window大小为3(0-2)。假设从 0-2 发送了 3 个数据包,并且发送方正在等待来自接收方的 ACK。假设接收方发送的所有 3 个 ACK 都丢失了。
此时,接收方正在等待序号为3的数据包。 在发送端,send window 充满了未完成的数据包。在超时的情况下,所有未完成的数据包都将被重新发送并被接收方正确丢弃。我们都知道ACK是不重发的
所以我的问题是发送方现在将如何发送序列号为 3 的数据包,因为发送 window 已满并且除非收到 ACK(无法重传),否则不会清除未完成的数据包。
we all know that Ack's are not resent
没有。我们不知道。
在Go-Back-N中:
The receiver will discard any frame that does not have the exact sequence number it expects (either a duplicate frame it already acknowledged, or an out-of-order frame it expects to receive later) and will resend an ACK for the last correct in-order frame.
因此接收方将继续为数据包 #2(请求数据包 #3)发送 ACK。