向 Linux Ubuntu 添加 TCP 拥塞控制变体

向 Linux Ubuntu 添加 TCP 拥塞控制变体

我想在 Linux Ubuntu 中测试 TCP 的不同变体。我有 Ubuntu 14.04 LTS,内核版本为 3.14。当我使用以下命令检查可用的拥塞控制算法时,sysctl net.ipv4.tcp_available_congestion_control我只得到:cubic 和 reno。不过,我想测试其他变体,例如 Hybla、HighSpeed。如果我运行,menuconfig我可以选择我想要的变体并编译内核。但就我而言,我已经编译了内核,因此是否可以有一些包含 TCP 变体作为可加载内核模块的 Linux 软件包?

答案1

看看这里,看看你安装了哪些模块......

ls -la /lib/modules/$(uname -r)/kernel/net/ipv4

你应该得到一个模块列表,我得到了这个。

tcp_bic.ko
tcp_diag.ko
tcp_highspeed.ko
tcp_htcp.ko
tcp_hybla.ko
tcp_illinois.ko
tcp_lp.ko
tcp_scalable.ko
tcp_vegas.ko
tcp_veno.ko
tcp_westwood.ko

您可以通过 grep 配置文件中的 TCP_CONG 来查看内核已配置的内容,即

grep TCP_CONG /boot/config-$(uname -r)
CONFIG_TCP_CONG_ADVANCED=y
CONFIG_TCP_CONG_BIC=m
CONFIG_TCP_CONG_CUBIC=y
CONFIG_TCP_CONG_WESTWOOD=m
CONFIG_TCP_CONG_HTCP=m
CONFIG_TCP_CONG_HSTCP=m
CONFIG_TCP_CONG_HYBLA=m
CONFIG_TCP_CONG_VEGAS=m
CONFIG_TCP_CONG_SCALABLE=m
CONFIG_TCP_CONG_LP=m
CONFIG_TCP_CONG_VENO=m
CONFIG_TCP_CONG_YEAH=m
CONFIG_TCP_CONG_ILLINOIS=m
CONFIG_DEFAULT_TCP_CONG="cubic"

要尝试其中之一,您需要使用modprobe -a tcp_westwood或任何您想要的方式安装它。然后你可以使用这个来测试它

echo "westwood" > /proc/sys/net/ipv4/tcp_congestion_control 

答案2

tcp_hyblatcp_高速两者都作为模块添加到内核树中。因此,您可以单独编译、安装这些模块并使用它们。希望您已经知道如何编译自定义模块。

相关内容