5.4. TCP 窗口扩展


在 Red Hat Enterprise Linux 中默认启用的 TCP 窗口扩展功能是 TCP 协议的扩展,它显著提高了吞吐量。

例如,在具有 1.5 ms Round Trip Time (RTT)的 1 Gbps 连接上:

  • 启用 TCP 窗口扩展后,大约 630 Mbps 是可行的。
  • 禁用 TCP 窗口扩展后,吞吐量会下降到 380 Mbps。

TCP 提供的一个功能是流控制。通过流控制,发送方可以发送接收方可以接收的尽可能多的数据,但不能发送太多。为此,接收方通告一个 window 值,这是发送方可以发送的数据量。

TCP 最初支持最多 64 KiB 的窗口大小,但对于高 Bandwidth Delay Products(BDP),这个值变为一个限制,因为发送方一次不能发送超过 64 KiB 的数据。高速连接可以在给定时间内传输超过 64 KiB 的数据。例如:一个在系统之间有 1 毫秒延迟的 10 Gbps 链接,在给定时间内可以传输超过 1 MiB 的数据。如果主机只发送 64 KiB,然后暂停,直到其他主机收到这 64 KiB,则这将是低效的。

要删除这个瓶颈,TCP 窗口扩展扩展允许 TCP 窗口值算术左移,来将窗口大小增加到 64 KiB 以上。例如,最大窗口值 65535 向左移 7 个位置,会产生几乎 8 MiB 的窗口大小。这可在给定时间内传输更多的数据。

TCP 窗口扩展在打开每个 TCP 连接的三向 TCP 握手中进行协商。发件方和接收方都必须支持 TCP 窗口扩展,才能使其正常工作。如果两个参与者没有在握手中通告窗口扩展功能,则连接恢复为使用最初的 16 位 TCP 窗口大小。

默认情况下,TCP 窗口扩展在 Red Hat Enterprise Linux 中被启用:

# sysctl net.ipv4.tcp_window_scaling
net.ipv4.tcp_window_scaling = 1
Copy to Clipboard Toggle word wrap

如果在服务器上禁用了 TCP 窗口扩展(0),则以与您设置它的相同方式恢复设置。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat