我想使用复合TCP在 Ubuntu 中。
维基百科页面显示:
除了 Windows,CTCP 也被移植到 Linux [...] 自内核版本 2.6.17 以来,由于内核 API 的变化,该模块一直不兼容并且无法编译。
是否有可以正确运行的新实现?
答案1
微软的Compound TCP只是其中之一执行拥塞算法协议。在 Linux 中,这一点已被丢弃,正如您已经发现的那样,似乎TCP 伊利诺伊州是直接的后继者,但不再那么常用。
自 2.6.22 版以来,为实施伊利诺伊州,我们已经做了一些工作:LWN 文章:TCP Illinois 初步版本。它在当前版本中似乎仍然可用:net/ipv4/tcp_illinois.c
在 linux-stable 树中。
TCP 新里诺,另一种替代方案基于RFC3782似乎是 Linux 中最常用的,并且完全集成在内核中。另请参阅手册页tcp(7)
:
tcp_available_congestion_control (String; read-only; since Linux 2.4.20)
Show a list of the congestion-control algorithms that are registered. This
list is a limiting set for the list in tcp_allowed_congestion_control. More
congestion-control algorithms may be available as modules, but not loaded.
检查你的系统上可用的:
cat /proc/sys/net/ipv4/tcp_available_congestion_control
并处于活动状态:
cat /proc/sys/net/ipv4/tcp_congestion_control
通过写入来更改活动的(示例reno
):
echo reno | sudo tee /proc/sys/net/ipv4/tcp_congestion_control
底线:您可能已经通过使用最新的 Linux 内核使用了非常现代且非常高效的 TCP 拥塞算法协议。
答案2
据我所知,它已从主线内核中删除(参见git 提交)。根据 git 中的搜索,它再也没有出现过。所以维基百科中的条目是正确的。你没有机会让它工作(除非你重写代码)。