 By Yuchung Cheng, Make The Web Faster Team
      By Yuchung Cheng, Make The Web Faster Team
      
      Transmission Control Protocol (TCP), the workhorse of the Internet, is designed to deliver all
      the Web’s content and operate over a huge range of network types. To 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. We’re experimenting
      with several improvements to TCP. Here’s a summary of some of our recommendations to make TCP
      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
      content. Our 
experiments indicate that
      IW10 reduces the network latency of Web transfers by over 10%.
      
      2. 
Reduce the initial timeout from 3
      seconds to 1 second. An RTT of 3 seconds was appropriate a couple of decades ago,
      but today’s Internet requires a much smaller timeout. Our rationale for this change is well
      documented 
here. 
      
      3. Use TCP Fast Open (TFO). For 33% of all HTTP requests, the browser needs to first spend one
      RTT to establish a TCP connection with the remote peer. Most HTTP responses fit in the initial
      TCP congestion window of 10 packets, doubling response time. TFO removes this overhead by
      including the HTTP request in the initial TCP SYN packet. We’ve demonstrated TFO reducing Page
      Load time by 10% on average, and over 40% in many situations. Our 
research paper and 
internet-draft
      address 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 ycheng@google.com.
      
      Posted by Scott Knaster,
      Editor