1

在 TCP 中,如何确定超时发生的时间?我被告知它是从每次超时后加倍的间隔中随机选择的,但我在 Google 上发现的任何内容都没有提到关于随机选择的任何内容,而是说它是在收到第一个确认后计算使用的平滑往返时间。它是对每个数据包都这样做还是设计有一些随机性?

4

1 回答 1

1

在启动连接的 TCP 3 次握手期间计算 RTT 的初始值。此后,当看到合格的发送/确认时,它会更新。

大多数现代实现不直接使用此方法,而是使用对获得 ACK 并在该时间间隔后重新传输所需的最长时间进行统计分析。“指数退避”(等待间隔加倍)发生在相同数据的进一步重传中。

在没有收到 ACK 的一些传输之后,连接“超时”。

于 2012-11-08T19:19:37.137 回答