【问题标题】:How to disable TCP slow start in Linux?如何在 Linux 中禁用 TCP 慢启动?
【发布时间】:2013-06-10 00:48:54
【问题描述】:

我正在寻找禁用高速网络的TCP slow start 机制。 目前,客户端通过非阻塞 1Gbps 链路向随机服务器发送 100MB 流。 在我的数学中,流程的完成时间不到 1 秒。

但问题是它们无法达到完整的链路带宽。 换句话说,它们在获得完整链路带宽之前在慢启动阶段完成。
因此,我想将 TCP 拥塞窗口大小增加到最大。

有没有人知道如何在不修改内核的情况下轻松更改该值?

【问题讨论】:

  • 更可能你真正想要的是将接收器的套接字接收缓冲区大小增加到至少带宽延迟乘积

标签: linux networking tcp congestion-control


【解决方案1】:

在 Linux 平台上,可以通过以下命令检查和禁用 SSR 设置:

$> sysctl net.ipv4.tcp_slow_start_after_idle
$> sysctl -w net.ipv4.tcp_slow_start_after_idle=0

连接空闲后也会使用慢启动,除非在

中禁用此行为
/proc/sys/net/ipv4/tcp_slow_start_after_idle.

【讨论】:

  • 我可以像这样将拥塞窗口设置为最大吗? “sudo ip route change default via X.X.X.X dev ethN initcwnd 100”和“sudo ip route change default via X.X.X.X dev ethN initcwnd 100”
  • 是的,你可以这样设置。请参考cdnplanet.com/blog/tune-tcp-initcwnd-for-optimum-performance
  • 如果你想让它坚持下去(例如重新启动后),请将net.ipv4.tcp_slow_start_after_idle=0 添加到 /etc/sysctl.conf。
  • 请注意,对于那些发现这个问题的答案是关于 TCP 慢启动的问题,但这个答案是关于在现有套接字空闲后发生的“慢启动重启”。这可能会让一些人感到困惑,因为这个答案不会改变新连接的初始拥塞窗口,该窗口由 RFC 5681 §3.1 管理,需要基于最大段大小的 initcwnd。通常有助于长 RTT 连接的是 cwnd 调整大小算法,该算法可以更好地调整 cwnd 的大小,例如 hybla(由 net.ipv4.tcp_congestion_control 控制),并增加接收缓冲区。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
  • 2014-07-07
相关资源
最近更新 更多