home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2414.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  32.0 KB  |  788 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          M. Allman
  8. Request for Comments: 2414                  NASA Lewis/Sterling Software
  9. Category: Experimental                                          S. Floyd
  10.                                                                     LBNL
  11.                                                             C. Partridge
  12.                                                         BBN Technologies
  13.                                                           September 1998
  14.  
  15.  
  16.                     Increasing TCP's Initial Window
  17.  
  18. Status of this Memo
  19.  
  20.    This memo defines an Experimental Protocol for the Internet
  21.    community.  It does not specify an Internet standard of any kind.
  22.    Discussion and suggestions for improvement are requested.
  23.    Distribution of this memo is unlimited.
  24.  
  25. Copyright Notice
  26.  
  27.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  28.  
  29. Abstract
  30.  
  31.    This document specifies an increase in the permitted initial window
  32.    for TCP from one segment to roughly 4K bytes.  This document
  33.    discusses the advantages and disadvantages of such a change,
  34.    outlining experimental results that indicate the costs and benefits
  35.    of such a change to TCP.
  36.  
  37. Terminology
  38.  
  39.    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
  40.    "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
  41.    document are to be interpreted as described in RFC 2119 [RFC2119].
  42.  
  43. 1.  TCP Modification
  44.  
  45.    This document specifies an increase in the permitted upper bound for
  46.    TCP's initial window from one segment to between two and four
  47.    segments.  In most cases, this change results in an upper bound on
  48.    the initial window of roughly 4K bytes (although given a large
  49.    segment size, the permitted initial window of two segments could be
  50.    significantly larger than 4K bytes).  The upper bound for the initial
  51.    window is given more precisely in (1):
  52.  
  53.           min (4*MSS, max (2*MSS, 4380 bytes))               (1)
  54.  
  55.  
  56.  
  57.  
  58. Allman, et. al.               Experimental                      [Page 1]
  59.  
  60. RFC 2414            Increasing TCP's Initial Window       September 1998
  61.  
  62.  
  63.    Equivalently, the upper bound for the initial window size is based on
  64.    the maximum segment size (MSS), as follows:
  65.  
  66.         If (MSS <= 1095 bytes)
  67.             then win <= 4 * MSS;
  68.         If (1095 bytes < MSS < 2190 bytes)
  69.             then win <= 4380;
  70.         If (2190 bytes <= MSS)
  71.             then win <= 2 * MSS;
  72.  
  73.    This increased initial window is optional: that a TCP MAY start with
  74.    a larger initial window, not that it SHOULD.
  75.  
  76.    This upper bound for the initial window size represents a change from
  77.    RFC 2001 [S97], which specifies that the congestion window be
  78.    initialized to one segment.  If implementation experience proves
  79.    successful, then the intent is for this change to be incorporated
  80.    into a revision to RFC 2001.
  81.  
  82.    This change applies to the initial window of the connection in the
  83.    first round trip time (RTT) of transmission following the TCP three-
  84.    way handshake.  Neither the SYN/ACK nor its acknowledgment (ACK) in
  85.    the three-way handshake should increase the initial window size above
  86.    that outlined in equation (1).  If the SYN or SYN/ACK is lost, the
  87.    initial window used by a sender after a correctly transmitted SYN
  88.    MUST be one segment.
  89.  
  90.    TCP implementations use slow start in as many as three different
  91.    ways: (1) to start a new connection (the initial window); (2) to
  92.    restart a transmission after a long idle period (the restart window);
  93.    and (3) to restart after a retransmit timeout (the loss window).  The
  94.    change proposed in this document affects the value of the initial
  95.    window.  Optionally, a TCP MAY set the restart window to the minimum
  96.    of the value used for the initial window and the current value of
  97.    cwnd (in other words, using a larger value for the restart window
  98.    should never increase the size of cwnd).  These changes do NOT change
  99.    the loss window, which must remain 1 segment (to permit the lowest
  100.    possible window size in the case of severe congestion).
  101.  
  102. 2.  Implementation Issues
  103.  
  104.    When larger initial windows are implemented along with Path MTU
  105.    Discovery [MD90], and the MSS being used is found to be too large,
  106.    the congestion window `cwnd' SHOULD be reduced to prevent large
  107.    bursts of smaller segments.  Specifically, `cwnd' SHOULD be reduced
  108.    by the ratio of the old segment size to the new segment size.
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Allman, et. al.               Experimental                      [Page 2]
  115.  
  116. RFC 2414            Increasing TCP's Initial Window       September 1998
  117.  
  118.  
  119.    When larger initial windows are implemented along with Path MTU
  120.    Discovery [MD90], alternatives are to set the "Don't Fragment" (DF)
  121.    bit in all segments in the initial window, or to set the "Don't
  122.    Fragment" (DF) bit in one of the segments.  It is an open question
  123.    which of these two alternatives is best; we would hope that
  124.    implementation experiences will shed light on this.  In the first
  125.    case of setting the DF bit in all segments, if the initial packets
  126.    are too large, then all of the initial packets will be dropped in the
  127.    network.  In the second case of setting the DF bit in only one
  128.    segment, if the initial packets are too large, then all but one of
  129.    the initial packets will be fragmented in the network.  When the
  130.    second case is followed, setting the DF bit in the last segment in
  131.    the initial window provides the least chance for needless
  132.    retransmissions when the initial segment size is found to be too
  133.    large, because it minimizes the chances of duplicate ACKs triggering
  134.    a Fast Retransmit.  However, more attention needs to be paid to the
  135.    interaction between larger initial windows and Path MTU Discovery.
  136.  
  137.    The larger initial window proposed in this document is not intended
  138.    as an encouragement for web browsers to open multiple simultaneous
  139.    TCP connections all with large initial windows.  When web browsers
  140.    open simultaneous TCP connections to the same destination, this works
  141.    against TCP's congestion control mechanisms [FF98], regardless of the
  142.    size of the initial window.  Combining this behavior with larger
  143.    initial windows further increases the unfairness to other traffic in
  144.    the network.
  145.  
  146. 3.  Advantages of Larger Initial Windows
  147.  
  148.    1.  When the initial window is one segment, a receiver employing
  149.        delayed ACKs [Bra89] is forced to wait for a timeout before
  150.        generating an ACK.  With an initial window of at least two
  151.        segments, the receiver will generate an ACK after the second data
  152.        segment arrives.  This eliminates the wait on the timeout (often
  153.        up to 200 msec).
  154.  
  155.    2.  For connections transmitting only a small amount of data, a
  156.        larger initial window reduces the transmission time (assuming at
  157.        most moderate segment drop rates).  For many email (SMTP [Pos82])
  158.        and web page (HTTP [BLFN96, FJGFBL97]) transfers that are less
  159.        than 4K bytes, the larger initial window would reduce the data
  160.        transfer time to a single RTT.
  161.  
  162.    3.  For connections that will be able to use large congestion
  163.        windows, this modification eliminates up to three RTTs and a
  164.        delayed ACK timeout during the initial slow-start phase.  This
  165.  
  166.  
  167.  
  168.  
  169.  
  170. Allman, et. al.               Experimental                      [Page 3]
  171.  
  172. RFC 2414            Increasing TCP's Initial Window       September 1998
  173.  
  174.  
  175.        would be of particular benefit for high-bandwidth large-
  176.        propagation-delay TCP connections, such as those over satellite
  177.        links.
  178.  
  179. 4.  Disadvantages of Larger Initial Windows for the Individual
  180.     Connection
  181.  
  182.    In high-congestion environments, particularly for routers that have a
  183.    bias against bursty traffic (as in the typical Drop Tail router
  184.    queues), a TCP connection can sometimes be better off starting with
  185.    an initial window of one segment.  There are scenarios where a TCP
  186.    connection slow-starting from an initial window of one segment might
  187.    not have segments dropped, while a TCP connection starting with an
  188.    initial window of four segments might experience unnecessary
  189.    retransmits due to the inability of the router to handle small
  190.    bursts.  This could result in an unnecessary retransmit timeout.  For
  191.    a large-window connection that is able to recover without a
  192.    retransmit timeout, this could result in an unnecessarily-early
  193.    transition from the slow-start to the congestion-avoidance phase of
  194.    the window increase algorithm.  These premature segment drops are
  195.    unlikely to occur in uncongested networks with sufficient buffering
  196.    or in moderately-congested networks where the congested router uses
  197.    active queue management (such as Random Early Detection [FJ93,
  198.    RFC2309]).
  199.  
  200.    Some TCP connections will receive better performance with the higher
  201.    initial window even if the burstiness of the initial window results
  202.    in premature segment drops.  This will be true if (1) the TCP
  203.    connection recovers from the segment drop without a retransmit
  204.    timeout, and (2) the TCP connection is ultimately limited to a small
  205.    congestion window by either network congestion or by the receiver's
  206.    advertised window.
  207.  
  208. 5.  Disadvantages of Larger Initial Windows for the Network
  209.  
  210.    In terms of the potential for congestion collapse, we consider two
  211.    separate potential dangers for the network.  The first danger would
  212.    be a scenario where a large number of segments on congested links
  213.    were duplicate segments that had already been received at the
  214.    receiver.  The second danger would be a scenario where a large number
  215.    of segments on congested links were segments that would be dropped
  216.    later in the network before reaching their final destination.
  217.  
  218.    In terms of the negative effect on other traffic in the network, a
  219.    potential disadvantage of larger initial windows would be that they
  220.    increase the general packet drop rate in the network.  We discuss
  221.    these three issues below.
  222.  
  223.  
  224.  
  225.  
  226. Allman, et. al.               Experimental                      [Page 4]
  227.  
  228. RFC 2414            Increasing TCP's Initial Window       September 1998
  229.  
  230.  
  231.    Duplicate segments:
  232.  
  233.        As described in the previous section, the larger initial window
  234.        could occasionally result in a segment dropped from the initial
  235.        window, when that segment might not have been dropped if the
  236.        sender had slow-started from an initial window of one segment.
  237.        However, Appendix A shows that even in this case, the larger
  238.        initial window would not result in the transmission of a large
  239.        number of duplicate segments.
  240.  
  241.    Segments dropped later in the network:
  242.  
  243.        How much would the larger initial window for TCP increase the
  244.        number of segments on congested links that would be dropped
  245.        before reaching their final destination?  This is a problem that
  246.        can only occur for connections with multiple congested links,
  247.        where some segments might use scarce bandwidth on the first
  248.        congested link along the path, only to be dropped later along the
  249.        path.
  250.  
  251.        First, many of the TCP connections will have only one congested
  252.        link along the path.  Segments dropped from these connections do
  253.        not "waste" scarce bandwidth, and do not contribute to congestion
  254.        collapse.
  255.  
  256.        However, some network paths will have multiple congested links,
  257.        and segments dropped from the initial window could use scarce
  258.        bandwidth along the earlier congested links before ultimately
  259.        being dropped on subsequent congested links.  To the extent that
  260.        the drop rate is independent of the initial window used by TCP
  261.        segments, the problem of congested links carrying segments that
  262.        will be dropped before reaching their destination will be similar
  263.        for TCP connections that start by sending four segments or one
  264.        segment.
  265.  
  266.    An increased packet drop rate:
  267.  
  268.        For a network with a high segment drop rate, increasing the TCP
  269.        initial window could increase the segment drop rate even further.
  270.        This is in part because routers with Drop Tail queue management
  271.        have difficulties with bursty traffic in times of congestion.
  272.        However, given uncorrelated arrivals for TCP connections, the
  273.        larger TCP initial window should not significantly increase the
  274.        segment drop rate.  Simulation-based explorations of these issues
  275.        are discussed in Section 7.2.
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Allman, et. al.               Experimental                      [Page 5]
  283.  
  284. RFC 2414            Increasing TCP's Initial Window       September 1998
  285.  
  286.  
  287.    These potential dangers for the network are explored in simulations
  288.    and experiments described in the section below.  Our judgement would
  289.    be, while there are dangers of congestion collapse in the current
  290.    Internet (see [FF98] for a discussion of the dangers of congestion
  291.    collapse from an increased deployment of UDP connections without
  292.    end-to-end congestion control), there is no such danger to the
  293.    network from increasing the TCP initial window to 4K bytes.
  294.  
  295. 6.  Typical Levels of Burstiness for TCP Traffic.
  296.  
  297.    Larger TCP initial windows would not dramatically increase the
  298.    burstiness of TCP traffic in the Internet today, because such traffic
  299.    is already fairly bursty.  Bursts of two and three segments are
  300.    already typical of TCP [Flo97]; A delayed ACK (covering two
  301.    previously unacknowledged segments) received during congestion
  302.    avoidance causes the congestion window to slide and two segments to
  303.    be sent.  The same delayed ACK received during slow start causes the
  304.    window to slide by two segments and then be incremented by one
  305.    segment, resulting in a three-segment burst.  While not necessarily
  306.    typical, bursts of four and five segments for TCP are not rare.
  307.    Assuming delayed ACKs, a single dropped ACK causes the subsequent ACK
  308.    to cover four previously unacknowledged segments.  During congestion
  309.    avoidance this leads to a four-segment burst and during slow start a
  310.    five-segment burst is generated.
  311.  
  312.    There are also changes in progress that reduce the performance
  313.    problems posed by moderate traffic bursts.  One such change is the
  314.    deployment of higher-speed links in some parts of the network, where
  315.    a burst of 4K bytes can represent a small quantity of data.  A second
  316.    change, for routers with sufficient buffering, is the deployment of
  317.    queue management mechanisms such as RED, which is designed to be
  318.    tolerant of transient traffic bursts.
  319.  
  320. 7.  Simulations and Experimental Results
  321.  
  322. 7.1 Studies of TCP Connections using that Larger Initial Window
  323.  
  324.    This section surveys simulations and experiments that have been used
  325.    to explore the effect of larger initial windows on the TCP connection
  326.    using that larger window.  The first set of experiments explores
  327.    performance over satellite links.  Larger initial windows have been
  328.    shown to improve performance of TCP connections over satellite
  329.    channels [All97b].  In this study, an initial window of four segments
  330.    (512 byte MSS) resulted in throughput improvements of up to 30%
  331.    (depending upon transfer size).  [KAGT98] shows that the use of
  332.    larger initial windows results in a decrease in transfer time in HTTP
  333.    tests over the ACTS satellite system.  A study involving simulations
  334.  
  335.  
  336.  
  337.  
  338. Allman, et. al.               Experimental                      [Page 6]
  339.  
  340. RFC 2414            Increasing TCP's Initial Window       September 1998
  341.  
  342.  
  343.    of a large number of HTTP transactions over hybrid fiber coax (HFC)
  344.    indicates that the use of larger initial windows decreases the time
  345.    required to load WWW pages [Nic97].
  346.  
  347.    A second set of experiments has explored TCP performance over dialup
  348.    modem links.  In experiments over a 28.8 bps dialup channel [All97a,
  349.    AHO98], a four-segment initial window decreased the transfer time of
  350.    a 16KB file by roughly 10%, with no accompanying increase in the drop
  351.    rate.  A particular area of concern has been TCP performance over low
  352.    speed tail circuits (e.g., dialup modem links) with routers with
  353.    small buffers.  A simulation study [SP97] investigated the effects of
  354.    using a larger initial window on a host connected by a slow modem
  355.    link and a router with a 3 packet buffer.  The study concluded that
  356.    for the scenario investigated, the use of larger initial windows was
  357.    not harmful to TCP performance.  Questions have been raised
  358.    concerning the effects of larger initial windows on the transfer time
  359.    for short transfers in this environment, but these effects have not
  360.    been quantified.  A question has also been raised concerning the
  361.    possible effect on existing TCP connections sharing the link.
  362.  
  363. 7.2 Studies of Networks using Larger Initial Windows
  364.  
  365.    This section surveys simulations and experiments investigating the
  366.    impact of the larger window on other TCP connections sharing the
  367.    path.  Experiments in [All97a, AHO98] show that for 16 KB transfers
  368.    to 100 Internet hosts, four-segment initial windows resulted in a
  369.    small increase in the drop rate of 0.04 segments/transfer.  While the
  370.    drop rate increased slightly, the transfer time was reduced by
  371.    roughly 25% for transfers using the four-segment (512 byte MSS)
  372.    initial window when compared to an initial window of one segment.
  373.  
  374.    One scenario of concern is heavily loaded links.  For instance, a
  375.    couple of years ago, one of the trans-Atlantic links was so heavily
  376.    loaded that the correct congestion window size for a connection was
  377.    about one segment.  In this environment, new connections using larger
  378.    initial windows would be starting with windows that were four times
  379.    too big.  What would the effects be?  Do connections thrash?
  380.  
  381.    A simulation study in [PN98] explores the impact of a larger initial
  382.    window on competing network traffic.  In this investigation, HTTP and
  383.    FTP flows share a single congested gateway (where the number of HTTP
  384.    and FTP flows varies from one simulation set to another).  For each
  385.    simulation set, the paper examines aggregate link utilization and
  386.    packet drop rates, median web page delay, and network power for the
  387.    FTP transfers.  The larger initial window generally resulted in
  388.    increased throughput, slightly-increased packet drop rates, and an
  389.    increase in overall network power.  With the exception of one
  390.    scenario, the larger initial window resulted in an increase in the
  391.  
  392.  
  393.  
  394. Allman, et. al.               Experimental                      [Page 7]
  395.  
  396. RFC 2414            Increasing TCP's Initial Window       September 1998
  397.  
  398.  
  399.    drop rate of less than 1% above the loss rate experienced when using
  400.    a one-segment initial window; in this scenario, the drop rate
  401.    increased from 3.5% with one-segment initial windows, to 4.5% with
  402.    four-segment initial windows.  The overall conclusions were that
  403.    increasing the TCP initial window to three packets (or 4380 bytes)
  404.    helps to improve perceived performance.
  405.  
  406.    Morris [Mor97] investigated larger initial windows in a very
  407.    congested network with transfers of size 20K.  The loss rate in
  408.    networks where all TCP connections use an initial window of four
  409.    segments is shown to be 1-2% greater than in a network where all
  410.    connections use an initial window of one segment.  This relationship
  411.    held in scenarios where the loss rates with one-segment initial
  412.    windows ranged from 1% to 11%.  In addition, in networks where
  413.    connections used an initial window of four segments, TCP connections
  414.    spent more time waiting for the retransmit timer (RTO) to expire to
  415.    resend a segment than was spent when using an initial window of one
  416.    segment.  The time spent waiting for the RTO timer to expire
  417.    represents idle time when no useful work was being accomplished for
  418.    that connection.  These results show that in a very congested
  419.    environment, where each connection's share of the bottleneck
  420.    bandwidth is close to one segment, using a larger initial window can
  421.    cause a perceptible increase in both loss rates and retransmit
  422.    timeouts.
  423.  
  424. 8.  Security Considerations
  425.  
  426.    This document discusses the initial congestion window permitted for
  427.    TCP connections.  Changing this value does not raise any known new
  428.    security issues with TCP.
  429.  
  430. 9.  Conclusion
  431.  
  432.    This document proposes a small change to TCP that may be beneficial
  433.    to short-lived TCP connections and those over links with long RTTs
  434.    (saving several RTTs during the initial slow-start phase).
  435.  
  436. 10.  Acknowledgments
  437.  
  438.    We would like to acknowledge Vern Paxson, Tim Shepard, members of the
  439.    End-to-End-Interest Mailing List, and members of the IETF TCP
  440.    Implementation Working Group for continuing discussions of these
  441.    issues for discussions and feedback on this document.
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450. Allman, et. al.               Experimental                      [Page 8]
  451.  
  452. RFC 2414            Increasing TCP's Initial Window       September 1998
  453.  
  454.  
  455. 11.  References
  456.  
  457.    [All97a]    Mark Allman.  An Evaluation of TCP with Larger Initial
  458.                Windows.  40th IETF Meeting -- TCP Implementations WG.
  459.                December, 1997.  Washington, DC.
  460.  
  461.    [AHO98]     Mark Allman, Chris Hayes, and Shawn Ostermann, An
  462.                Evaluation of TCP with Larger Initial Windows, March
  463.                1998.  Submitted to ACM Computer Communication Review.
  464.                URL: "http://gigahertz.lerc.nasa.gov/~mallman/papers/
  465.                initwin.ps".
  466.  
  467.    [All97b]    Mark Allman.  Improving TCP Performance Over Satellite
  468.                Channels.  Master's thesis, Ohio University, June 1997.
  469.  
  470.    [BLFN96]    Berners-Lee, T., Fielding, R., and H. Nielsen, "Hypertext
  471.                Transfer Protocol -- HTTP/1.0", RFC 1945, May 1996.
  472.  
  473.    [Bra89]     Braden, R., "Requirements for Internet Hosts --
  474.                Communication Layers", STD 3, RFC 1122, October 1989.
  475.  
  476.    [FF96]      Fall, K., and Floyd, S., Simulation-based Comparisons of
  477.                Tahoe, Reno, and SACK TCP.  Computer Communication
  478.                Review, 26(3), July 1996.
  479.  
  480.    [FF98]      Sally Floyd, Kevin Fall.  Promoting the Use of End-to-End
  481.                Congestion Control in the Internet.  Submitted to IEEE
  482.                Transactions on Networking.  URL "http://www-
  483.                nrg.ee.lbl.gov/floyd/end2end-paper.html".
  484.  
  485.    [FJGFBL97]  Fielding, R., Mogul, J., Gettys, J., Frystyk, H., and T.
  486.                Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1",
  487.                RFC 2068, January 1997.
  488.  
  489.    [FJ93]      Floyd, S., and Jacobson, V., Random Early Detection
  490.                gateways for Congestion Avoidance. IEEE/ACM Transactions
  491.                on Networking, V.1 N.4, August 1993, p. 397-413.
  492.  
  493.    [Flo94]     Floyd, S., TCP and Explicit Congestion Notification.
  494.                Computer Communication Review, 24(5):10-23, October 1994.
  495.  
  496.    [Flo96]     Floyd, S., Issues of TCP with SACK. Technical report,
  497.                January 1996.  Available from http://www-
  498.                nrg.ee.lbl.gov/floyd/.
  499.  
  500.    [Flo97]     Floyd, S., Increasing TCP's Initial Window.  Viewgraphs,
  501.                40th IETF Meeting - TCP Implementations WG. December,
  502.                1997.  URL "ftp://ftp.ee.lbl.gov/talks/sf-tcp-ietf97.ps".
  503.  
  504.  
  505.  
  506. Allman, et. al.               Experimental                      [Page 9]
  507.  
  508. RFC 2414            Increasing TCP's Initial Window       September 1998
  509.  
  510.  
  511.    [KAGT98]    Hans Kruse, Mark Allman, Jim Griner, Diepchi Tran.  HTTP
  512.                Page Transfer Rates Over Geo-Stationary Satellite Links.
  513.                March 1998.  Proceedings of the Sixth International
  514.                Conference on Telecommunication Systems.  URL
  515.                "http://gigahertz.lerc.nasa.gov/~mallman/papers/nash98.ps".
  516.  
  517.    [MD90]      Mogul, J., and S. Deering, "Path MTU Discovery", RFC
  518.                1191, November 1990.
  519.  
  520.    [MMFR96]    Mathis, M., Mahdavi, J., Floyd, S., and A. Romanow, "TCP
  521.                Selective Acknowledgment Options", RFC 2018, October
  522.                1996.
  523.  
  524.    [Mor97]     Robert Morris.  Private communication, 1997.  Cited for
  525.                acknowledgement purposes only.
  526.  
  527.    [Nic97]     Kathleen Nichols.  Improving Network Simulation with
  528.                Feedback.  Com21, Inc. Technical Report.  Available from
  529.                http://www.com21.com/pages/papers/068.pdf.
  530.  
  531.    [PN98]      Poduri, K., and K. Nichols, "Simulation Studies of
  532.                Increased Initial TCP Window Size", RFC 2415, September
  533.                1998.
  534.  
  535.    [Pos82]     Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC
  536.                821, August 1982.
  537.  
  538.    [RF97]      Ramakrishnan, K., and S. Floyd, "A Proposal to Add
  539.                Explicit Congestion Notification (ECN) to IPv6 and to
  540.                TCP", Work in Progress.
  541.  
  542.    [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
  543.                Requirement Levels", BCP 14, RFC 2119, March 1997.
  544.  
  545.    [RFC2309]   Braden, B., Clark, D., Crowcroft, J., Davie, B., Deering,
  546.                S., Estrin, D., Floyd, S., Jacobson, V., Minshall, G.,
  547.                Partridge, C., Peterson, L., Ramakrishnan, K., Shenker,
  548.                S., Wroclawski, J., and L.  Zhang, "Recommendations on
  549.                Queue Management and Congestion Avoidance in the
  550.                Internet", RFC 2309, April 1998.
  551.  
  552.    [S97]       Stevens, W., "TCP Slow Start, Congestion Avoidance, Fast
  553.                Retransmit, and Fast Recovery Algorithms", RFC 2001,
  554.                January 1997.
  555.  
  556.    [SP97]      Shepard, T., and C. Partridge, "When TCP Starts Up With
  557.                Four Packets Into Only Three Buffers", RFC 2416,
  558.                September 1998.
  559.  
  560.  
  561.  
  562. Allman, et. al.               Experimental                     [Page 10]
  563.  
  564. RFC 2414            Increasing TCP's Initial Window       September 1998
  565.  
  566.  
  567. 12.  Author's Addresses
  568.  
  569.    Mark Allman
  570.    NASA Lewis Research Center/Sterling Software
  571.    21000 Brookpark Road
  572.    MS 54-2
  573.    Cleveland, OH 44135
  574.  
  575.    EMail: mallman@lerc.nasa.gov
  576.    http://gigahertz.lerc.nasa.gov/~mallman/
  577.  
  578.  
  579.    Sally Floyd
  580.    Lawrence Berkeley National Laboratory
  581.    One Cyclotron Road
  582.    Berkeley, CA 94720
  583.  
  584.    EMail: floyd@ee.lbl.gov
  585.  
  586.  
  587.    Craig Partridge
  588.    BBN Technologies
  589.    10 Moulton Street
  590.    Cambridge, MA 02138
  591.  
  592.    EMail: craig@bbn.com
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. Allman, et. al.               Experimental                     [Page 11]
  619.  
  620. RFC 2414            Increasing TCP's Initial Window       September 1998
  621.  
  622.  
  623. 13.  Appendix - Duplicate Segments
  624.  
  625.    In the current environment (without Explicit Congestion Notification
  626.    [Flo94] [RF97]), all TCPs use segment drops as indications from the
  627.    network about the limits of available bandwidth.  We argue here that
  628.    the change to a larger initial window should not result in the sender
  629.    retransmitting a large number of duplicate segments that have already
  630.    been received at the receiver.
  631.  
  632.    If one segment is dropped from the initial window, there are three
  633.    different ways for TCP to recover: (1) Slow-starting from a window of
  634.    one segment, as is done after a retransmit timeout, or after Fast
  635.    Retransmit in Tahoe TCP; (2) Fast Recovery without selective
  636.    acknowledgments (SACK), as is done after three duplicate ACKs in Reno
  637.    TCP; and (3) Fast Recovery with SACK, for TCP where both the sender
  638.    and the receiver support the SACK option [MMFR96].  In all three
  639.    cases, if a single segment is dropped from the initial window, no
  640.    duplicate segments (i.e., segments that have already been received at
  641.    the receiver) are transmitted.  Note that for a TCP sending four
  642.    512-byte segments in the initial window, a single segment drop will
  643.    not require a retransmit timeout, but can be recovered from using the
  644.    Fast Retransmit algorithm (unless the retransmit timer expires
  645.    prematurely).  In addition, a single segment dropped from an initial
  646.    window of three segments might be repaired using the fast retransmit
  647.    algorithm, depending on which segment is dropped and whether or not
  648.    delayed ACKs are used.  For example, dropping the first segment of a
  649.    three segment initial window will always require waiting for a
  650.    timeout.  However, dropping the third segment will always allow
  651.    recovery via the fast retransmit algorithm, as long as no ACKs are
  652.    lost.
  653.  
  654.    Next we consider scenarios where the initial window contains two to
  655.    four segments, and at least two of those segments are dropped.  If
  656.    all segments in the initial window are dropped, then clearly no
  657.    duplicate segments are retransmitted, as the receiver has not yet
  658.    received any segments.  (It is still a possibility that these dropped
  659.    segments used scarce bandwidth on the way to their drop point; this
  660.    issue was discussed in Section 5.)
  661.  
  662.    When two segments are dropped from an initial window of three
  663.    segments, the sender will only send a duplicate segment if the first
  664.    two of the three segments were dropped, and the sender does not
  665.    receive a packet with the SACK option acknowledging the third
  666.    segment.
  667.  
  668.    When two segments are dropped from an initial window of four
  669.    segments, an examination of the six possible scenarios (which we
  670.    don't go through here) shows that, depending on the position of the
  671.  
  672.  
  673.  
  674. Allman, et. al.               Experimental                     [Page 12]
  675.  
  676. RFC 2414            Increasing TCP's Initial Window       September 1998
  677.  
  678.  
  679.    dropped packets, in the absence of SACK the sender might send one
  680.    duplicate segment.  There are no scenarios in which the sender sends
  681.    two duplicate segments.
  682.  
  683.    When three segments are dropped from an initial window of four
  684.    segments, then, in the absence of SACK, it is possible that one
  685.    duplicate segment will be sent, depending on the position of the
  686.    dropped segments.
  687.  
  688.    The summary is that in the absence of SACK, there are some scenarios
  689.    with multiple segment drops from the initial window where one
  690.    duplicate segment will be transmitted.  There are no scenarios where
  691.    more that one duplicate segment will be transmitted.  Our conclusion
  692.    is that the number of duplicate segments transmitted as a result of a
  693.    larger initial window should be small.
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730. Allman, et. al.               Experimental                     [Page 13]
  731.  
  732. RFC 2414            Increasing TCP's Initial Window       September 1998
  733.  
  734.  
  735. 14.  Full Copyright Statement
  736.  
  737.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  738.  
  739.    This document and translations of it may be copied and furnished to
  740.    others, and derivative works that comment on or otherwise explain it
  741.    or assist in its implementation may be prepared, copied, published
  742.    and distributed, in whole or in part, without restriction of any
  743.    kind, provided that the above copyright notice and this paragraph are
  744.    included on all such copies and derivative works.  However, this
  745.    document itself may not be modified in any way, such as by removing
  746.    the copyright notice or references to the Internet Society or other
  747.    Internet organizations, except as needed for the purpose of
  748.    developing Internet standards in which case the procedures for
  749.    copyrights defined in the Internet Standards process must be
  750.    followed, or as required to translate it into languages other than
  751.    English.
  752.  
  753.    The limited permissions granted above are perpetual and will not be
  754.    revoked by the Internet Society or its successors or assigns.
  755.  
  756.    This document and the information contained herein is provided on an
  757.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  758.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  759.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  760.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  761.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786. Allman, et. al.               Experimental                     [Page 14]
  787.  
  788.