我可以打字
echo bbr > /proc/sys/net/ipv4/tcp_congestion_control
可以改变通过 IPv4 运行的 TCP 连接的拥塞控制算法,但是对于通过 IPv6 到达的 TCP 连接,我该如何做呢?
上述命令是否为两者设置了它?
答案1
是的,两个 sysctl(net.ipv4.tcp_allowed_congestion_control
和net.ipv4.tcp_available_congestion_control
)和 /proc 条目(/proc/sys/net/ipv4/tcp_congestion_control
)适用于每个 IPv4 和 IPv6 TCP 连接。sysctl 和 /proc 名称中的 ipv4 部分并不意味着这仅适用于 TCP over ipv4。这仅意味着该算法是在内核源代码树的 linux/net/ipv4 子目录中实现的:在 Linux 中,TCP over IPv6 通过调用 IPv4 的实现来实现拥塞控制,因为 TCP over IPv4 和 TCP over IPv6 中的 TCP 拥塞控制没有区别。
答案2
来自文档(https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt):
/proc/sys/net/ipv6/* 变量:
IPv6 没有 tcp_* 之类的全局变量。ipv4/ 下的 tcp_* 设置也适用于 IPv6。