How to check the TCP congestion control algorithm flavour in Ubuntu
There aren't TCP variants; there are TCP congestion control algorithms:
sysctl net.ipv4.tcp_congestion_control
cat /proc/sys/net/ipv4/tcp_congestion_control
The default is usually cubic
or reno
, although plenty others are available, and programs can set the preferred algorithm for individual connections (e.g. Transmission enables lp
if available).
(The same knob affects both IPv4 and IPv6, despite its name.)
Adding to @grawity answer, it is possible to check all TCP congestion control algorithms available with the following command:
sysctl net.ipv4.tcp_available_congestion_control
A list of some of the possible output (i.e.- availble flavours) is:
reno: Traditional TCP used by almost all other OSes. (default)
cubic: CUBIC-TCP
bic: BIC-TCP
htcp: Hamilton TCP
vegas: TCP Vegas
westwood: optimized for lossy networks
YeAH: delay-aware/state-enabled to keep a pipe at or below a threshold
NOTE:
If cubic and/or htcp are not listed when you do 'sysctl net.ipv4.tcp_available_congestion_control'
, try the following, as most distributions include them as loadable kernel modules:
/sbin/modprobe tcp_htcp
/sbin/modprobe tcp_cubic
For more detailes you can have look here:
TCP tuning Details
Hope it helps.
Cheers,
Guy.