如何启用复合 TCP (CTCP)?

如何启用复合 TCP (CTCP)?

我想使用复合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 中的搜索,它再也没有出现过。所以维基百科中的条目是正确的。你没有机会让它工作(除非你重写代码)。

相关内容