为什么没有 tcp_westwood?

为什么没有 tcp_westwood?

我在 Ubuntu 服务器 12.04 上

$ sudo cat /etc/issue /etc/lsb-release
Ubuntu 12.04.1 LTS \n \l

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.1 LTS"

$ uname -a
Linux vps2 2.6.32-042stab078.28 #1 SMP Mon Jul 8 10:17:22 MSK 2013 x86_64 x86_64 x86_64 GNU/Linux

根据这个http://manpages.ubuntu.com/manpages/precise/man7/tcp.7.html

应该有 tcp_westwood,但我在我的服务器上找不到:

$ sudo echo 1 > /proc/sys/net/ipv4/tcp_westwood
-bash: /proc/sys/net/ipv4/tcp_westwood: No such file or directory

$ sudo tail /proc/sys/net/ipv4/*congest*
==> /proc/sys/net/ipv4/tcp_allowed_congestion_control <==
cubic reno

==> /proc/sys/net/ipv4/tcp_available_congestion_control <==
cubic reno

==> /proc/sys/net/ipv4/tcp_congestion_control <==
cubic

那么我该如何为 12.04 lts 启用 tcp westwood?

答案1

如果你再读一遍,它会告诉你原因:

tcp_westwood(布尔值;默认值:禁用;Linux2.4.26/2.6.3 至 2.6.13) 启用 TCP Westwood+ 拥塞控制算法。TCP Westwood+ 是 TCP Reno 协议栈的发送方修改版,可优化 TCP 拥塞控制的性能。它基于端到端带宽估计,在拥塞事件发生后设置拥塞窗口和慢启动阈值。使用此估计,TCP Westwood+ 自适应地设置慢启动阈值和拥塞窗口,其中考虑了发生拥塞时使用的带宽。TCP Westwood+ 显著提高了有线网络中 TCP Reno 的公平性和无线链路上的吞吐量。

那么,这里发生了什么?

  1. 默认情况下,内核中未激活该选项。
  2. 旨在在内核 2.4.26/2.6.3 到 2.6.13 中实现。
  3. 应该有比您尝试做的事情更新的替代方案。

选项:

  1. 没用这个。
  2. 构建您自己的内核并激活该选项。
  3. 使用-generic内核。
  4. 正在安装程序user-mode-linux包。

答案2

仅通过模块提供。在 Ubuntu > 18.04 中,只需设置 sysctl -w net.ipv4.tcp_congestion_control=westwood,就像 Westwood 指令的创建者一样: 指导官员

相关内容