An Argument for Increasing TCP's Initial Congestion Window Again

https://news.ycombinator.com/rss Hits: 15
Summary

An Argument for Increasing TCP's Initial Congestion Window ... AgainPublished September 2, 2024IntroductionGoogle has a long history of performing networking research, making changes, and pushing those changes to the entire internet. In 2011, they published one of my favorite papers, which described their decision to increase the TCP initial congestion window from 1 to 10 on their entire infrastructure. This was soon followed by an RFC filed with the IETF, and eventually became an internet standard.I think it’s time to revisit that paper and update Google’s recommendations for the modern Internet.TCP Initial Congestion WindowTCP uses an idea called the sliding window to manage how much data is in transit on the network at any given time. The receiver manages a receive window that tells the sender how much data it is willing to receive at once. In modern TCP, the receive window is set very high and only reduces if the receiver is running out of capacity. The goal is to ensure the receiver is never limiting the data transfer speed with a low window.At the same time, the sender manages something called a congestion window. This value is the number of packets the sender can send at one time before it needs to pause and wait for a response from the receiver. There are various congestion control algorithms that adjust the congestion window, but the general goal of all of them is to ramp up transmission until it’s as fast as possible without being affected by congestion or packet loss somewhere in the network.These congestion control algorithms require a seed value at the start of a transmission known as the initial congestion window. This value determines how much data can be sent at the beginning of a connection.In traditional TCP (pre-2010), that value was set anywhere between 1 and 3, depending on OS and software. The predominant congestion control algorithm at that time, TCP New Reno, would increase the congestion window by an initial congestion window for every round...

First seen: 2025-08-17 02:31

Last seen: 2025-08-17 16:35