RFC 3390 (rfc3390) - Page 2 of 15
Increasing TCP's Initial Window
Alternative Format: Original Text Document
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 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