我想问一个似乎让我感到困惑的问题。我在自学“计算机网络”一书中有一个问题,它区分了选择性重复协议和 Go-Back-N 的数据包错误和 ACK 错误。
据我所知,重复仍然会导致超时,因为仍然无法理解错误的 ACK,因此不会对行为产生影响。那就是它将重新传输。
我是遗漏了什么还是这个问题故意让我感到困惑?
我想问一个似乎让我感到困惑的问题。我在自学“计算机网络”一书中有一个问题,它区分了选择性重复协议和 Go-Back-N 的数据包错误和 ACK 错误。
据我所知,重复仍然会导致超时,因为仍然无法理解错误的 ACK,因此不会对行为产生影响。那就是它将重新传输。
我是遗漏了什么还是这个问题故意让我感到困惑?
是的,取决于实现协议,例如选择性重复或返回 N,将导致重新传输。然而 ack 和 data packet 是完全不同的实体。1. ack丢失会导致重新发送,因为发送端的定时器会超时,迫使客户端重新发送。然而,接收方已经有了这个数据包,并且需要将该数据包作为重复数据包丢弃。如果自己的数据包丢失了,仍然会发生重新传输,但这次接收方实际上没有数据包。两者都处理计时器的到期,所以你可能会感到困惑。但是ack和data packet有完全不同的用途。稍后当您研究 TCP 协议时,您会看到数据包使用序列号,而 ack 包则没有。
所以两者不能一概而论。