如何在 Ubuntu 中检查 TCP 拥塞控制算法风格

如何在 Ubuntu 中检查 TCP 拥塞控制算法风格

我正在使用带有 Linux 内核版本 3.13.0-34 的 Ubuntu 14.04 LTS。

我如何才能知道默认的或当前正在使用的 TCP 拥塞控制算法是什么?

谢谢。

答案1

没有 TCP 变体,只有 TCP拥塞控制算法

sysctl net.ipv4.tcp_congestion_control

cat /proc/sys/net/ipv4/tcp_congestion_control

默认值通常是cubicreno,尽管还有许多其他可用的算法,并且程序可以设置首选算法单独的连接(例如,如果可用,则启用传输lp)。

(尽管名称不同,但同一个旋钮可以同时影响 IPv4 和 IPv6。)

答案2

添加到@grawity答案,可以使用以下命令检查所有可用的 TCP 拥塞控制算法:

sysctl net.ipv4.tcp_available_congestion_control

一些可能的输出(即可用风格)的列表如下:

里诺:几乎所有其他操作系统都使用传统 TCP。(默认)

立方体: 立方TCP

比克: BIC-TCP

超高速连接: 汉密尔顿TCP

拉斯维加斯: TCP 维加斯

韦斯特伍德:针对有损网络进行了优化

是的:延迟感知/状态启用,使管道保持在阈值或低于阈值

注意:如果立方体和/或超高速连接没有列出'sysctl net.ipv4.tcp_available_congestion_control',请尝试以下操作,因为大多数发行版都将它们作为可加载内核模块包含:

/sbin/modprobe tcp_htcp
/sbin/modprobe tcp_cubic

欲了解更多详细信息,请参阅此处:

TCP 调优详细信息

希望能帮助到你。

干杯,

哥们。

答案3

如果你想找出每个连接上当前使用的拥塞控制算法,你可以使用命令ssiproute2包/工具):

ss -ti

以下是一些示例输出:在连接详细信息下方,参数输出中的第一项是拥塞控制算法 - 在本例中cubic- 后面是与 TCP 连接相关的各种参数。

ESTAB      0      0      192.168.56.102:ssh           192.168.56.1:61795
 cubic wscale:6,7 rto:201 rtt:0.218/0.038 ato:40 mss:1448 rcvmss:1392
 advmss:1448 cwnd:10 bytes_acked:8753 bytes_received:3945 segs_out:40
 segs_in:63 send 531.4Mbps lastsnd:1 lastrcv:2 lastack:1
 pacing_rate 1059.1Mbps rcv_rtt:2 rcv_space:28960

注意:应用程序可以通过使用TCP_CONGESTIONsetsockopt() 调用。

相关内容