How can I take advantage of IW10 in kernel 2.6.33?

Solution 1:

As of Linux kernel version 2.6.38 (released in March 2011) the receive window was increased to 10 segments to make sure that a low value will not become a bottleneck for any senders that implement IW10. The initial congestion window, respectively, was afterwards increased to 10 segments in kernel version 2.6.39 (released in May 2011). Version 2.6.39 was very short-lived and quickly became 3.0 (released in the end of July 2011), being the first kernel to include those changes that is widely used by Linux distributions.

You can take a look at the kernel change logs:

  • Linux Kernel 2.6.38 changelog
  • Linux Kernel 2.6.39 changelog

Here is the kernel source code as well:

  • Linux Kernel 2.6.38, include/net/tcp.h, lines 63-64
  • Linux Kernel 2.6.39, include/net/tcp.h, lines 199-200

Popular desktop distributions released in and after Q4/2011, such as Ubuntu and Fedora, use kernel versions 3.x.

Stable server distributions adopt much slower newer kernels, as well as other software in general. Debian stable 6.0.3 (released in October 2011) goes with kernel version 2.6.32-2.6.38. Red Hat Enterprise Linux 6.x and CentOS 6.x use kernel versions 2.6.32 to 2.6.34 but do backport some kernel features.

Edit:

  • there was a mistake in Ilya Grigorik's article saying the first version with IW10 support is 2.6.33 but it has been corrected (on the 04 Feb 2014).
  • CentOS 6.4 supports IW10, with the feature being backported to kernel version 2.6.32-358.0.1.el6 (Red Hat 4.4.7-3); more info here.