我理解拥塞避免的过程,您试图控制网络中的拥塞级别,并避免数据包丢失。但是,怎么可能有三种确认,即使一个在传输中丢失,并且在超时后最终到达目的地,如果它超时,该数据包肯定会下降,而不仅仅是在它的途中继续,并且在拥塞期间重复了x次。
发布于 2013-04-28 16:32:43
重复ack是重传/选择性ack系统的一部分。如果没有SACK支持,当一个数据包丢失时,您将得到重复的ACK,并且接收方正在通知发送者它已显示到ACKed序列号。对于接收到的每一个不连续的数据包,都会发送一个ACK,这就是为什么您会看到重复的ACK,有时也会看到很多ACK,如果网络的直径足够大,窗口的大小也足够大。
发布于 2014-02-09 09:32:51
首先,我们必须意识到ACK并不是说我们看到了一个特定的序列号--它们实际上是说我们还没有看到这个特定的序列号,但是我们已经看到了前面所有的序列。
来自RFC 793:
段还携带确认号,该确认号是反向传输的下一个预期数据八进制的序列号。
ACK是一个重复的ACK,除其他标准外(RFC 5681)。
确认号等于在给定连接上收到的最大确认。
重复的ACK是接收者接收到一些东西的标志,只是没有正确的序列号。在三个重复ACK(通常为3)之后,发送方重新发送该段。这被称为快速重传,因此比您在问题中提到的基于超时的重传更快。
https://serverfault.com/questions/503345
复制相似问题