TCP 中是否存在影响 RTO 时间的选项?

TCP 中是否存在影响 RTO 时间的选项?

我只是想了解在我的 Linux 机器上 TCP 的情况下重传功能是如何工作的,但是在互联网上你可以找到非常不同的信息,其中大多数已经过时或错误,所以我决定在这里提出这个问题。

当谈到 RTO 时,在 Linux 内核(文件 include/net/tcp.h)中您有两个选择:

#define TCP_RTO_MAX     ((unsigned)(120*HZ))
#define TCP_RTO_MIN     ((unsigned)(HZ/5))

因此,可以设置数据包重新传输的最小和最大时间。上述两个参数都依赖于HZ,可以在内核源代码中指定,或者可以通过自定义CONFIG_HZ,至少在 adm64 的情况下是这样:

$ egrep HZ /boot/config-4.1.0-2-amd64
...
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250

因此最小 RTO 应该在 50ms 左右(250/5)。但是当你检查以下 wireshark 输出时,你会看到一些非常不同的东西:

在此处输入图片描述

是一秒。有没有选项也可以影响 RTO 时间?

相关内容