Let's Make TCP Faster - The Official Google Code Blog
Let's Make TCP Faster - The Official Google Code Blog
Let's Make TCP Faster - The Official Google Code Blog
html
Transmission Control Protocol (TCP), the workhorse of the Internet, is designed to Subscribe
deliver all the Webs content and operate over a huge range of network types. To Site Feed
deliver content effectively, Web browsers typically open several dozen parallel
TCP connections ahead of making actual requests. This strategy overcomes
inherent TCP limitations but results in high latency in many situations and is not scalable.
Our research shows that the key to reducing latency is saving round trips. Were experimenting with
several improvements to TCP. Heres a summary of some of our recommendations to make TCP Blog Archive
faster:
1. Increase TCP initial congestion window to 10 (IW10). The amount of data sent at the beginning of a
TCP connection is currently 3 packets, implying 3 round trips (RTT) to deliver a tiny 15KB-sized Keep up with Google Code
content. Our experiments indicate that IW10 reduces the network latency of Web transfers by over Google Code tweets
10%. Google Code YouTube channel
Google Developer blogs
2. Reduce the initial timeout from 3 seconds to 1 second. An RTT of 3 seconds was appropriate a
couple of decades ago, but todays Internet requires a much smaller timeout. Our rationale for this
change is well documented here.
More blogs from Google
3. Use TCP Fast Open (TFO). For 33% of all HTTP requests, the browser needs to first spend one Visit our directory for more
RTT to establish a TCP connection with the remote peer. Most HTTP responses fit in the initial TCP information about Google blogs.
congestion window of 10 packets, doubling response time. TFO removes this overhead by including
the HTTP request in the initial TCP SYN packet. Weve demonstrated TFO reducing Page Load time Pages
by 10% on average, and over 40% in many situations. Our research paper and internet-draft address Home
concerns such as dropped packets and DOS attacks when using TFO.
4. Use Proportional Rate Reduction for TCP (PRR). Packet losses indicate the network is in disorder
or is congested. PRR, a new loss recovery algorithm, retransmits smoothly to recover losses during
network congestion. The algorithm is faster than the current mechanism by adjusting the transmission
rate according to the degree of losses. PRR is now part of the Linux kernel and is in the process of
becoming part of the TCP standard.
In addition, we are developing algorithms to recover faster on noisy mobile networks, as well as a
guaranteed 2-RTT delivery during startup. All our work on TCP is open-source and publicly available.
We disseminate our innovations through the Linux kernel, IETF standards proposals, and research
publications. Our goal is to partner with industry and academia to improve TCP for the whole Internet.
Please watch this blog and http://code.google.com/speed/ for further information.
Yuchung Cheng works on the transport layer to make the Web faster. He believes the current
transport layer badly needs an overhaul to catch up with other (networking) technologies. He can be
reached at [email protected].
at 1/23/2012 10:00:00 AM
23 comments:
1 of 5 1/24/2012 8:46 AM
Let's make TCP faster - The official Google Code blog http://googlecode.blogspot.com/2012/01/lets-make-tcp-faster.html
Replies
Reply
2 of 5 1/24/2012 8:46 AM
Let's make TCP faster - The official Google Code blog http://googlecode.blogspot.com/2012/01/lets-make-tcp-faster.html
http://en.wikipedia.org/wiki/Bufferbloat
Reply
3 of 5 1/24/2012 8:46 AM
Let's make TCP faster - The official Google Code blog http://googlecode.blogspot.com/2012/01/lets-make-tcp-faster.html
I've been able to find/backport for #1 and #4 but have not seen any code anywhere
for #2 or #3.
#2 could be a simple one-liner change but IIRC that leads to other issues.
https://github.com/vrv/linux-microsecondrto
http://www.pdl.cmu.edu/PDL-FTP/Storage/sigcomm147-vasudevan.pdf
For #3, code was promised but I have not seen it publicly posted anywhere..
Reply
4 of 5 1/24/2012 8:46 AM
Let's make TCP faster - The official Google Code blog http://googlecode.blogspot.com/2012/01/lets-make-tcp-faster.html
Comment as:
Terms
5 of 5 1/24/2012 8:46 AM