31.13. TCP 时间戳的好处


TCP 时间戳在 TCP 标头中是可选的信息,是 TCP 协议的扩展。默认情况下,TCP 时间戳在 Red Hat Enterprise Linux 中启用,内核使用 TCP 时间戳来更好地估算 TCP 连接中的往返时间(RTT)。这会导致更准确的 TCP 窗口和缓冲区计算。

另外,TCP 时间戳提供了一种替代方法来确定片段的年龄和顺序,并防止包装序列号。TCP 数据包标头在 32 位字段中记录序列号。在 10 Gbps 连接中,此字段的值可以在 1.7 秒后结束。如果没有 TCP 时间戳,接收方无法决定带有包装的序列号的段是一个新段还是一个旧的复制段。但是,使用 TCP 时间戳,接收方可以做出正确的选择来接收或丢弃段。因此,在带有快速网络接口的系统上启用 TCP 时间戳是非常重要的。

net.ipv4.tcp_timestamps 内核参数可以有以下值之一:

  • 0 :TCP 时间戳被禁用。
  • 1: TCP 时间戳被启用(默认)。
  • 2: TCP 时间戳被启用,但没有随机偏移量。

    重要

    如果每个连接没有随机偏移量,就可以大概确定主机的运行时间和指纹,并在攻击中使用此信息。

默认情况下,TCP 时间戳在 Red Hat Enterprise Linux 中启用,并为每个连接使用随机偏移量,而不是只存储当前时间:

# sysctl net.ipv4.tcp_timestamps
net.ipv4.tcp_timestamps = 1

如果 net.ipv4.tcp_timestamps 参数有一个与默认值不同的值(1),请用与您设置它的相同的方式恢复设置。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.