linuxnetwork-programmingtcpcongestion-control

How to disable TCP slow start in Linux?


I am looking for disable TCP slow start mechanism for high-speed network. Currently clients send 100MB flows to random servers with non-blocking 1Gbps link. In my math, the completion time of the flows is less than 1 second.

But the problem is that they cannot reach to a full link bandwidth. In other words, they are finished at slow start phase before getting a full link bandwidth.
Therefore, I want to increase TCP congestion window size to maximum.

Is there anyone who know how to change that value easily without modification the kernel?


Solution

  • On Linux platforms the SSR setting can be checked and disabled via the following commands:

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

    Slow start is also used after a connection has been idle, unless this behavior is disabled in

    /proc/sys/net/ipv4/tcp_slow_start_after_idle.