summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3390.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc3390.txt')
-rw-r--r--doc/rfc/rfc3390.txt843
1 files changed, 843 insertions, 0 deletions
diff --git a/doc/rfc/rfc3390.txt b/doc/rfc/rfc3390.txt
new file mode 100644
index 0000000..968a340
--- /dev/null
+++ b/doc/rfc/rfc3390.txt
@@ -0,0 +1,843 @@
+
+
+
+
+
+
+Network Working Group M. Allman
+Request for Comments: 3390 BBN/NASA GRC
+Obsoletes: 2414 S. Floyd
+Updates: 2581 ICIR
+Category: Standards Track C. Partridge
+ BBN Technologies
+ October 2002
+
+
+ Increasing TCP's Initial Window
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2002). All Rights Reserved.
+
+Abstract
+
+ This document specifies an optional standard for TCP to increase the
+ permitted initial window from one or two segment(s) to roughly 4K
+ bytes, replacing RFC 2414. It discusses the advantages and
+ disadvantages of the higher initial window, and includes discussion
+ of experiments and simulations showing that the higher initial window
+ does not lead to congestion collapse. Finally, this document
+ provides guidance on implementation issues.
+
+Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
+ document are to be interpreted as described in RFC 2119 [RFC2119].
+
+1. TCP Modification
+
+ This document obsoletes [RFC2414] and updates [RFC2581] and specifies
+ an increase in the permitted upper bound for TCP's initial window
+ from one or two segment(s) to between two and four segments. In most
+ cases, this change results in an upper bound on the initial window of
+ roughly 4K bytes (although given a large segment size, the permitted
+ initial window of two segments may be significantly larger than 4K
+ bytes).
+
+
+
+Allman, et. al. Standards Track [Page 1]
+
+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 [RFC2581], 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 [Page 2]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ permit the lowest possible window size in the case of severe
+ congestion).
+
+2. Implementation Issues
+
+ When larger initial windows are implemented along with Path MTU
+ Discovery [RFC1191], and the MSS being used is found to be too large,
+ the congestion window `cwnd' SHOULD be reduced to prevent large
+ bursts of smaller segments. Specifically, `cwnd' SHOULD be reduced
+ by the ratio of the old segment size to the new segment size.
+
+ When larger initial windows are implemented along with Path MTU
+ Discovery [RFC1191], alternatives are to set the "Don't Fragment"
+ (DF) bit in all segments in the initial window, or to set the "Don't
+ Fragment" (DF) bit in one of the segments. It is an open question as
+ to which of these two alternatives is best; we would hope that
+ implementation experiences will shed light on this question. In the
+ first case of setting the DF bit in all segments, if the initial
+ packets are too large, then all of the initial packets will be
+ dropped in the network. In the second case of setting the DF bit in
+ only one segment, if the initial packets are too large, then all but
+ one of the initial packets will be fragmented in the network. When
+ the second case is followed, setting the DF bit in the last segment
+ in the initial window provides the least chance for needless
+ retransmissions when the initial segment size is found to be too
+ large, because it minimizes the chances of duplicate ACKs triggering
+ a Fast Retransmit. However, more attention needs to be paid to the
+ interaction between larger initial windows and Path MTU Discovery.
+
+ The larger initial window specified in this document is not intended
+ as encouragement for web browsers to open multiple simultaneous TCP
+ connections, all with large initial windows. When web browsers open
+ simultaneous TCP connections to the same destination, they are
+ working against TCP's congestion control mechanisms [FF99],
+ regardless of the size of the initial window. Combining this
+ behavior with larger initial windows further increases the unfairness
+ to other traffic in the network. We suggest the use of HTTP/1.1
+ [RFC2068] (persistent TCP connections and pipelining) as a way to
+ achieve better performance of web transfers.
+
+3. Advantages of Larger Initial Windows
+
+ 1. When the initial window is one segment, a receiver employing
+ delayed ACKs [RFC1122] is forced to wait for a timeout before
+ generating an ACK. With an initial window of at least two
+ segments, the receiver will generate an ACK after the second data
+ segment arrives. This eliminates the wait on the timeout (often
+ up to 200 msec, and possibly up to 500 msec [RFC1122]).
+
+
+
+Allman, et. al. Standards Track [Page 3]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ 2. For connections transmitting only a small amount of data, a
+ larger initial window reduces the transmission time (assuming at
+ most moderate segment drop rates). For many email (SMTP [Pos82])
+ and web page (HTTP [RFC1945, RFC2068]) transfers that are less
+ than 4K bytes, the larger initial window would reduce the data
+ transfer time to a single RTT.
+
+ 3. For connections that will be able to use large congestion
+ windows, this modification eliminates up to three RTTs and a
+ delayed ACK timeout during the initial slow-start phase. This
+ will be of particular benefit for high-bandwidth large-
+ propagation-delay TCP connections, such as those over satellite
+ links.
+
+4. Disadvantages of Larger Initial Windows for the Individual
+ Connection
+
+ In high-congestion environments, particularly for routers that have a
+ bias against bursty traffic (as in the typical Drop Tail router
+ queues), a TCP connection can sometimes be better off starting with
+ an initial window of one segment. There are scenarios where a TCP
+ connection slow-starting from an initial window of one segment might
+ not have segments dropped, while a TCP connection starting with an
+ initial window of four segments might experience unnecessary
+ retransmits due to the inability of the router to handle small
+ bursts. This could result in an unnecessary retransmit timeout. For
+ a large-window connection that is able to recover without a
+ retransmit timeout, this could result in an unnecessarily-early
+ transition from the slow-start to the congestion-avoidance phase of
+ the window increase algorithm. These premature segment drops are
+ unlikely to occur in uncongested networks with sufficient buffering
+ or in moderately-congested networks where the congested router uses
+ active queue management (such as Random Early Detection [FJ93,
+ RFC2309]).
+
+ Some TCP connections will receive better performance with the larger
+ initial window even if the burstiness of the initial window results
+ in premature segment drops. This will be true if (1) the TCP
+ connection recovers from the segment drop without a retransmit
+ timeout, and (2) the TCP connection is ultimately limited to a small
+ congestion window by either network congestion or by the receiver's
+ advertised window.
+
+5. Disadvantages of Larger Initial Windows for the Network
+
+ In terms of the potential for congestion collapse, we consider two
+ separate potential dangers for the network. The first danger would
+ be a scenario where a large number of segments on congested links
+
+
+
+Allman, et. al. Standards Track [Page 4]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ were duplicate segments that had already been received at the
+ receiver. The second danger would be a scenario where a large number
+ of segments on congested links were segments that would be dropped
+ later in the network before reaching their final destination.
+
+ In terms of the negative effect on other traffic in the network, a
+ potential disadvantage of larger initial windows would be that they
+ increase the general packet drop rate in the network. We discuss
+ these three issues below.
+
+ Duplicate segments:
+
+ As described in the previous section, the larger initial window
+ could occasionally result in a segment dropped from the initial
+ window, when that segment might not have been dropped if the
+ sender had slow-started from an initial window of one segment.
+ However, Appendix A shows that even in this case, the larger
+ initial window would not result in the transmission of a large
+ number of duplicate segments.
+
+ Segments dropped later in the network:
+
+ How much would the larger initial window for TCP increase the
+ number of segments on congested links that would be dropped
+ before reaching their final destination? This is a problem that
+ can only occur for connections with multiple congested links,
+ where some segments might use scarce bandwidth on the first
+ congested link along the path, only to be dropped later along the
+ path.
+
+ First, many of the TCP connections will have only one congested
+ link along the path. Segments dropped from these connections do
+ not "waste" scarce bandwidth, and do not contribute to congestion
+ collapse.
+
+ However, some network paths will have multiple congested links,
+ and segments dropped from the initial window could use scarce
+ bandwidth along the earlier congested links before ultimately
+ being dropped on subsequent congested links. To the extent that
+ the drop rate is independent of the initial window used by TCP
+ segments, the problem of congested links carrying segments that
+ will be dropped before reaching their destination will be similar
+ for TCP connections that start by sending four segments or one
+ segment.
+
+
+
+
+
+
+
+Allman, et. al. Standards Track [Page 5]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ An increased packet drop rate:
+
+ For a network with a high segment drop rate, increasing the TCP
+ initial window could increase the segment drop rate even further.
+ This is in part because routers with Drop Tail queue management
+ have difficulties with bursty traffic in times of congestion.
+ However, given uncorrelated arrivals for TCP connections, the
+ larger TCP initial window should not significantly increase the
+ segment drop rate. Simulation-based explorations of these issues
+ are discussed in Section 7.2.
+
+ These potential dangers for the network are explored in simulations
+ and experiments described in the section below. Our judgment is that
+ while there are dangers of congestion collapse in the current
+ Internet (see [FF99] for a discussion of the dangers of congestion
+ collapse from an increased deployment of UDP connections without
+ end-to-end congestion control), there is no such danger to the
+ network from increasing the TCP initial window to 4K bytes.
+
+6. Interactions with the Retransmission Timer
+
+ Using a larger initial burst of data can exacerbate existing problems
+ with spurious retransmit timeouts on low-bandwidth paths, assuming
+ the standard algorithm for determining the TCP retransmission timeout
+ (RTO) [RFC2988]. The problem is that across low-bandwidth network
+ paths on which the transmission time of a packet is a large portion
+ of the round-trip time, the small packets used to establish a TCP
+ connection do not seed the RTO estimator appropriately. When the
+ first window of data packets is transmitted, the sender's retransmit
+ timer could expire before the acknowledgments for those packets are
+ received. As each acknowledgment arrives, the retransmit timer is
+ generally reset. Thus, the retransmit timer will not expire as long
+ as an acknowledgment arrives at least once a second, given the one-
+ second minimum on the RTO recommended in RFC 2988.
+
+ For instance, consider a 9.6 Kbps link. The initial RTT measurement
+ will be on the order of 67 msec, if we simply consider the
+ transmission time of 2 packets (the SYN and SYN-ACK), each consisting
+ of 40 bytes. Using the RTO estimator given in [RFC2988], this yields
+ an initial RTO of 201 msec (67 + 4*(67/2)). However, we round the
+ RTO to 1 second as specified in RFC 2988. Then assume we send an
+ initial window of one or more 1500-byte packets (1460 data bytes plus
+ overhead). Each packet will take on the order of 1.25 seconds to
+ transmit. Therefore, the RTO will fire before the ACK for the first
+ packet returns, causing a spurious timeout. In this case, a larger
+ initial window of three or four packets exacerbates the problems
+ caused by this spurious timeout.
+
+
+
+
+Allman, et. al. Standards Track [Page 6]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ One way to deal with this problem is to make the RTO algorithm more
+ conservative. During the initial window of data, for instance, the
+ RTO could be updated for each acknowledgment received. In addition,
+ if the retransmit timer expires for some packet lost in the first
+ window of data, we could leave the exponential-backoff of the
+ retransmit timer engaged until at least one valid RTT measurement,
+ that involves a data packet, is received.
+
+ Another method would be to refrain from taking an RTT sample during
+ connection establishment, leaving the default RTO in place until TCP
+ takes a sample from a data segment and the corresponding ACK. While
+ this method likely helps prevent spurious retransmits, it also may
+ slow the data transfer down if loss occurs before the RTO is seeded.
+ The use of limited transmit [RFC3042] to aid a TCP connection in
+ recovering from loss using fast retransmit rather than the RTO timer
+ mitigates the performance degradation caused by using the high
+ default RTO during the initial window of data transmission.
+
+ This specification leaves the decision about what to do (if anything)
+ with regards to the RTO, when using a larger initial window, to the
+ implementer. However, the RECOMMENDED approach is to refrain from
+ sampling the RTT during the three-way handshake, keeping the default
+ RTO in place until an RTT sample involving a data packet is taken.
+ In addition, it is RECOMMENDED that TCPs use limited transmit
+ [RFC3042].
+
+7. Typical Levels of Burstiness for TCP Traffic.
+
+ Larger TCP initial windows would not dramatically increase the
+ burstiness of TCP traffic in the Internet today, because such traffic
+ is already fairly bursty. Bursts of two and three segments are
+ already typical of TCP [Flo97]; a delayed ACK (covering two
+ previously unacknowledged segments) received during congestion
+ avoidance causes the congestion window to slide and two segments to
+ be sent. The same delayed ACK received during slow start causes the
+ window to slide by two segments and then be incremented by one
+ segment, resulting in a three-segment burst. While not necessarily
+ typical, bursts of four and five segments for TCP are not rare.
+ Assuming delayed ACKs, a single dropped ACK causes the subsequent ACK
+ to cover four previously unacknowledged segments. During congestion
+ avoidance this leads to a four-segment burst, and during slow start a
+ five-segment burst is generated.
+
+ There are also changes in progress that reduce the performance
+ problems posed by moderate traffic bursts. One such change is the
+ deployment of higher-speed links in some parts of the network, where
+ a burst of 4K bytes can represent a small quantity of data. A second
+ change, for routers with sufficient buffering, is the deployment of
+
+
+
+Allman, et. al. Standards Track [Page 7]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ queue management mechanisms such as RED, which is designed to be
+ tolerant of transient traffic bursts.
+
+8. Simulations and Experimental Results
+
+8.1 Studies of TCP Connections using that Larger Initial Window
+
+ This section surveys simulations and experiments that explore the
+ effect of larger initial windows on TCP connections. The first set
+ of experiments explores performance over satellite links. Larger
+ initial windows have been shown to improve the performance of TCP
+ connections over satellite channels [All97b]. In this study, an
+ initial window of four segments (512 byte MSS) resulted in throughput
+ improvements of up to 30% (depending upon transfer size). [KAGT98]
+ shows that the use of larger initial windows results in a decrease in
+ transfer time in HTTP tests over the ACTS satellite system. A study
+ involving simulations of a large number of HTTP transactions over
+ hybrid fiber coax (HFC) indicates that the use of larger initial
+ windows decreases the time required to load WWW pages [Nic98].
+
+ A second set of experiments explored TCP performance over dialup
+ modem links. In experiments over a 28.8 bps dialup channel [All97a,
+ AHO98], a four-segment initial window decreased the transfer time of
+ a 16KB file by roughly 10%, with no accompanying increase in the drop
+ rate. A simulation study [RFC2416] investigated the effects of using
+ a larger initial window on a host connected by a slow modem link and
+ a router with a 3 packet buffer. The study concluded that for the
+ scenario investigated, the use of larger initial windows was not
+ harmful to TCP performance.
+
+ Finally, [All00] illustrates that the percentage of connections at a
+ particular web server that experience loss in the initial window of
+ data transmission increases with the size of the initial congestion
+ window. However, the increase is in line with what would be expected
+ from sending a larger burst into the network.
+
+8.2 Studies of Networks using Larger Initial Windows
+
+ This section surveys simulations and experiments investigating the
+ impact of the larger window on other TCP connections sharing the
+ path. Experiments in [All97a, AHO98] show that for 16 KB transfers
+ to 100 Internet hosts, four-segment initial windows resulted in a
+ small increase in the drop rate of 0.04 segments/transfer. While the
+ drop rate increased slightly, the transfer time was reduced by
+ roughly 25% for transfers using the four-segment (512 byte MSS)
+ initial window when compared to an initial window of one segment.
+
+
+
+
+
+Allman, et. al. Standards Track [Page 8]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ A simulation study in [RFC2415] explores the impact of a larger
+ initial window on competing network traffic. In this investigation,
+ HTTP and FTP flows share a single congested gateway (where the number
+ of HTTP and FTP flows varies from one simulation set to another).
+ For each simulation set, the paper examines aggregate link
+ utilization and packet drop rates, median web page delay, and network
+ power for the FTP transfers. The larger initial window generally
+ resulted in increased throughput, slightly-increased packet drop
+ rates, and an increase in overall network power. With the exception
+ of one scenario, the larger initial window resulted in an increase in
+ the drop rate of less than 1% above the loss rate experienced when
+ using a one-segment initial window; in this scenario, the drop rate
+ increased from 3.5% with one-segment initial windows, to 4.5% with
+ four-segment initial windows. The overall conclusions were that
+ increasing the TCP initial window to three packets (or 4380 bytes)
+ helps to improve perceived performance.
+
+ Morris [Mor97] investigated larger initial windows in a highly
+ congested network with transfers of 20K in size. The loss rate in
+ networks where all TCP connections use an initial window of four
+ segments is shown to be 1-2% greater than in a network where all
+ connections use an initial window of one segment. This relationship
+ held in scenarios where the loss rates with one-segment initial
+ windows ranged from 1% to 11%. In addition, in networks where
+ connections used an initial window of four segments, TCP connections
+ spent more time waiting for the retransmit timer (RTO) to expire to
+ resend a segment than was spent using an initial window of one
+ segment. The time spent waiting for the RTO timer to expire
+ represents idle time when no useful work was being accomplished for
+ that connection. These results show that in a very congested
+ environment, where each connection's share of the bottleneck
+ bandwidth is close to one segment, using a larger initial window can
+ cause a perceptible increase in both loss rates and retransmit
+ timeouts.
+
+9. Security Considerations
+
+ This document discusses the initial congestion window permitted for
+ TCP connections. Changing this value does not raise any known new
+ security issues with TCP.
+
+10. Conclusion
+
+ This document specifies a small change to TCP that will likely be
+ beneficial to short-lived TCP connections and those over links with
+ long RTTs (saving several RTTs during the initial slow-start phase).
+
+
+
+
+
+Allman, et. al. Standards Track [Page 9]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+11. Acknowledgments
+
+ We would like to acknowledge Vern Paxson, Tim Shepard, members of the
+ End-to-End-Interest Mailing List, and members of the IETF TCP
+ Implementation Working Group for continuing discussions of these
+ issues and for feedback on this document.
+
+12. References
+
+ [AHO98] Mark Allman, Chris Hayes, and Shawn Ostermann, An
+ Evaluation of TCP with Larger Initial Windows, March 1998.
+ ACM Computer Communication Review, 28(3), July 1998. URL
+ "http://roland.lerc.nasa.gov/~mallman/papers/initwin.ps".
+
+ [All97a] Mark Allman. An Evaluation of TCP with Larger Initial
+ Windows. 40th IETF Meeting -- TCP Implementations WG.
+ December, 1997. Washington, DC.
+
+ [All97b] Mark Allman. Improving TCP Performance Over Satellite
+ Channels. Master's thesis, Ohio University, June 1997.
+
+ [All00] Mark Allman. A Web Server's View of the Transport Layer.
+ ACM Computer Communication Review, 30(5), October 2000.
+
+ [FF96] Fall, K., and Floyd, S., Simulation-based Comparisons of
+ Tahoe, Reno, and SACK TCP. Computer Communication Review,
+ 26(3), July 1996.
+
+ [FF99] Sally Floyd, Kevin Fall. Promoting the Use of End-to-End
+ Congestion Control in the Internet. IEEE/ACM Transactions
+ on Networking, August 1999. URL
+ "http://www.icir.org/floyd/end2end-paper.html".
+
+ [FJ93] Floyd, S., and Jacobson, V., Random Early Detection
+ gateways for Congestion Avoidance. IEEE/ACM Transactions on
+ Networking, V.1 N.4, August 1993, p. 397-413.
+
+ [Flo94] Floyd, S., TCP and Explicit Congestion Notification.
+ Computer Communication Review, 24(5):10-23, October 1994.
+
+ [Flo96] Floyd, S., Issues of TCP with SACK. Technical report,
+ January 1996. Available from http://www-
+ nrg.ee.lbl.gov/floyd/.
+
+ [Flo97] Floyd, S., Increasing TCP's Initial Window. Viewgraphs,
+ 40th IETF Meeting - TCP Implementations WG. December, 1997.
+ URL "ftp://ftp.ee.lbl.gov/talks/sf-tcp-ietf97.ps".
+
+
+
+
+Allman, et. al. Standards Track [Page 10]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ [KAGT98] Hans Kruse, Mark Allman, Jim Griner, Diepchi Tran. HTTP
+ Page Transfer Rates Over Geo-Stationary Satellite Links.
+ March 1998. Proceedings of the Sixth International
+ Conference on Telecommunication Systems. URL
+ "http://roland.lerc.nasa.gov/~mallman/papers/nash98.ps".
+
+ [Mor97] Robert Morris. Private communication, 1997. Cited for
+ acknowledgement purposes only.
+
+ [Nic98] Kathleen Nichols. Improving Network Simulation With
+ Feedback, Proceedings of LCN 98, October 1998. URL
+ "http://www.computer.org/proceedings/lcn/8810/8810toc.htm".
+
+ [Pos82] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC
+ 821, August 1982.
+
+ [RFC1122] Braden, R., "Requirements for Internet Hosts --
+ Communication Layers", STD 3, RFC 1122, October 1989.
+
+ [RFC1191] Mogul, J. and S. Deering, "Path MTU Discovery", RFC 1191,
+ November 1990.
+
+ [RFC1945] Berners-Lee, T., Fielding, R. and H. Nielsen, "Hypertext
+ Transfer Protocol -- HTTP/1.0", RFC 1945, May 1996.
+
+ [RFC2068] Fielding, R., Mogul, J., Gettys, J., Frystyk, H. and T.
+ Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC
+ 2616, January 1997.
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC2309] Braden, B., Clark, D., Crowcroft, J., Davie, B., Deering,
+ S., Estrin, D., Floyd, S., Jacobson, V., Minshall, G.,
+ Partridge, C., Peterson, L., Ramakrishnan, K., Shenker, S.,
+ Wroclawski, J. and L. Zhang, "Recommendations on Queue
+ Management and Congestion Avoidance in the Internet", RFC
+ 2309, April 1998.
+
+ [RFC2414] Allman, M., Floyd, S. and C. Partridge, "Increasing TCP's
+ Initial Window", RFC 2414, September 1998.
+
+ [RFC2415] Poduri, K. and K. Nichols, "Simulation Studies of Increased
+ Initial TCP Window Size", RFC 2415, September 1998.
+
+ [RFC2416] Shepard, T. and C. Partridge, "When TCP Starts Up With Four
+ Packets Into Only Three Buffers", RFC 2416, September 1998.
+
+
+
+
+Allman, et. al. Standards Track [Page 11]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ [RFC2581] Allman, M., Paxson, V. and W. Stevens, "TCP Congestion
+ Control", RFC 2581, April 1999.
+
+ [RFC2821] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821,
+ April 2001.
+
+ [RFC2988] Paxson, V. and M. Allman, "Computing TCP's Retransmission
+ Timer", RFC 2988, November 2000.
+
+ [RFC3042] Allman, M., Balakrishnan, H. and S. Floyd, "Enhancing TCP's
+ Loss Recovery Using Limited Transmit", RFC 3042, January
+ 2001.
+
+ [RFC3168] Ramakrishnan, K.K., Floyd, S. and D. Black, "The Addition
+ of Explicit Congestion Notification (ECN) to IP", RFC 3168,
+ September 2001.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Allman, et. al. Standards Track [Page 12]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+Appendix A - Duplicate Segments
+
+ In the current environment (without Explicit Congestion Notification
+ [Flo94] [RFC2481]), all TCPs use segment drops as indications from
+ the network about the limits of available bandwidth. We argue here
+ that the change to a larger initial window should not result in the
+ sender retransmitting a large number of duplicate segments that have
+ already arrived at the receiver.
+
+ If one segment is dropped from the initial window, there are three
+ different ways for TCP to recover: (1) Slow-starting from a window of
+ one segment, as is done after a retransmit timeout, or after Fast
+ Retransmit in Tahoe TCP; (2) Fast Recovery without selective
+ acknowledgments (SACK), as is done after three duplicate ACKs in Reno
+ TCP; and (3) Fast Recovery with SACK, for TCP where both the sender
+ and the receiver support the SACK option [MMFR96]. In all three
+ cases, if a single segment is dropped from the initial window, no
+ duplicate segments (i.e., segments that have already been received at
+ the receiver) are transmitted. Note that for a TCP sending four
+ 512-byte segments in the initial window, a single segment drop will
+ not require a retransmit timeout, but can be recovered by using the
+ Fast Retransmit algorithm (unless the retransmit timer expires
+ prematurely). In addition, a single segment dropped from an initial
+ window of three segments might be repaired using the fast retransmit
+ algorithm, depending on which segment is dropped and whether or not
+ delayed ACKs are used. For example, dropping the first segment of a
+ three segment initial window will always require waiting for a
+ timeout, in the absence of Limited Transmit [RFC3042]. However,
+ dropping the third segment will always allow recovery via the fast
+ retransmit algorithm, as long as no ACKs are lost.
+
+ Next we consider scenarios where the initial window contains two to
+ four segments, and at least two of those segments are dropped. If
+ all segments in the initial window are dropped, then clearly no
+ duplicate segments are retransmitted, as the receiver has not yet
+ received any segments. (It is still a possibility that these dropped
+ segments used scarce bandwidth on the way to their drop point; this
+ issue was discussed in Section 5.)
+
+ When two segments are dropped from an initial window of three
+ segments, the sender will only send a duplicate segment if the first
+ two of the three segments were dropped, and the sender does not
+ receive a packet with the SACK option acknowledging the third
+ segment.
+
+ When two segments are dropped from an initial window of four
+ segments, an examination of the six possible scenarios (which we
+ don't go through here) shows that, depending on the position of the
+
+
+
+Allman, et. al. Standards Track [Page 13]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+ dropped packets, in the absence of SACK the sender might send one
+ duplicate segment. There are no scenarios in which the sender sends
+ two duplicate segments.
+
+ When three segments are dropped from an initial window of four
+ segments, then, in the absence of SACK, it is possible that one
+ duplicate segment will be sent, depending on the position of the
+ dropped segments.
+
+ The summary is that in the absence of SACK, there are some scenarios
+ with multiple segment drops from the initial window where one
+ duplicate segment will be transmitted. There are no scenarios in
+ which more than one duplicate segment will be transmitted. Our
+ conclusion is than the number of duplicate segments transmitted as a
+ result of a larger initial window should be small.
+
+Author's Addresses
+
+ Mark Allman
+ BBN Technologies/NASA Glenn Research Center
+ 21000 Brookpark Rd
+ MS 54-5
+ Cleveland, OH 44135
+ EMail: mallman@bbn.com
+ http://roland.lerc.nasa.gov/~mallman/
+
+ Sally Floyd
+ ICSI Center for Internet Research
+ 1947 Center St, Suite 600
+ Berkeley, CA 94704
+ Phone: +1 (510) 666-2989
+ EMail: floyd@icir.org
+ http://www.icir.org/floyd/
+
+ Craig Partridge
+ BBN Technologies
+ 10 Moulton St
+ Cambridge, MA 02138
+ EMail: craig@bbn.com
+
+
+
+
+
+
+
+
+
+
+
+
+Allman, et. al. Standards Track [Page 14]
+
+RFC 3390 Increasing TCP's Initial Window October 2002
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2002). All Rights Reserved.
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assigns.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Allman, et. al. Standards Track [Page 15]
+