Google Fixes A Longstanding, Important TCP Bug In The Linux Kernel

Written by Michael Larabel in Google on 27 September 2015 at 09:31 AM EDT. 21 Comments
GOOGLE
Google engineers managed to recently uncover a high profile TCP bug in the Linux kernel that has huge implications on network performance and efficiency.

Google landed this fix earlier this month into the Linux Git code. The issue and fix are well described via this blog post.
The problem can be roughly summarized as the controller mistakenly characterizing the lack of congestion reports over a quiescent period as positive evidence that the network is not congested and therefore it should send at a faster rate when sending resumes. When put like this, its obvious that an endpoint that is not moving any traffic cannot use the lack of errors as information in its feedback loop.

The end result is that applications that oscillate between transmitting lots of data and then laying quiescent for a bit before returning to high rates of sending will transmit way too fast when returning to the sending state. This consequence of this is self induced packet loss along with retransmissions, wasted bandwidth, out of order packet delivery, and application level stalls.
It's quite easy to hit this problem, so great to see the issue has been fixed after so many years.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via MichaelLarabel.com.

Popular News This Week