RFC 3390 (rfc3390) - Page 2 of 15


Increasing TCP's Initial Window



Alternative Format: Original Text Document

< Previous
Next >



RFC 3390            Increasing TCP's Initial Window         October 2002


   The upper bound for the initial window is given more precisely in
   (1):

         min (4*MSS, max (2*MSS, 4380 bytes))                        (1)

   Note: Sending a 1500 byte packet indicates a maximum segment size
   (MSS) of 1460 bytes (assuming no IP or TCP options).  Therefore,
   limiting the initial window's MSS to 4380 bytes allows the sender to
   transmit three segments initially in the common case when using 1500
   byte packets.

   Equivalently, the upper bound for the initial window size is based on
   the MSS, as follows:

       If (MSS <= 1095 bytes)
           then win <= 4 * MSS;
       If (1095 bytes < MSS < 2190 bytes)
           then win <= 4380;
       If (2190 bytes <= MSS)
           then win <= 2 * MSS;

   This increased initial window is optional: a TCP MAY start with a
   larger initial window.  However, we expect that most general-purpose
   TCP implementations would choose to use the larger initial congestion
   window given in equation (1) above.

   This upper bound for the initial window size represents a change from
   RFC 2581 [RFC 2581], which specified that the congestion window be
   initialized to one or two segments.

   This change applies to the initial window of the connection in the
   first round trip time (RTT) of data transmission following the TCP
   three-way handshake.  Neither the SYN/ACK nor its acknowledgment
   (ACK) in the three-way handshake should increase the initial window
   size above that outlined in equation (1).  If the SYN or SYN/ACK is
   lost, the initial window used by a sender after a correctly
   transmitted SYN MUST be one segment consisting of MSS bytes.

   TCP implementations use slow start in as many as three different
   ways: (1) to start a new connection (the initial window); (2) to
   restart transmission after a long idle period (the restart window);
   and (3) to restart transmission after a retransmit timeout (the loss
   window).  The change specified in this document affects the value of
   the initial window.  Optionally, a TCP MAY set the restart window to
   the minimum of the value used for the initial window and the current
   value of cwnd (in other words, using a larger value for the restart
   window should never increase the size of cwnd).  These changes do NOT
   change the loss window, which must remain 1 segment of MSS bytes (to



Allman, et. al.             Standards Track


< Previous
Next >


Web Standards & Support:

Link to and support eLook.org Powered by LoadedWeb Web Hosting
Valid XHTML 1.0! Valid CSS! eLook.org FireFox Extensions