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

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                         T. Shepard
  8. Request for Comments: 2416                                  C. Partridge
  9. Category: Informational                                 BBN Technologies
  10.                                                           September 1998
  11.  
  12.  
  13.       When TCP Starts Up With Four Packets Into Only Three Buffers
  14.  
  15. Status of this Memo
  16.  
  17.    This memo provides information for the Internet community.  It does
  18.    not specify an Internet standard of any kind.  Distribution of this
  19.    memo is unlimited.
  20.  
  21. Copyright Notice
  22.  
  23.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  24.  
  25. Abstract
  26.  
  27.    This memo is to document a simple experiment.  The experiment showed
  28.    that in the case of a TCP receiver behind a 9600 bps modem link at
  29.    the edge of a fast Internet where there are only 3 buffers before the
  30.    modem (and the fourth packet of a four-packet start will surely be
  31.    dropped), no significant degradation in performance is experienced by
  32.    a TCP sending with a four-packet start when compared with a normal
  33.    slow start (which starts with just one packet).
  34.  
  35. Background
  36.  
  37.    Sally Floyd has proposed that TCPs start their initial slow start by
  38.    sending as many as four packets (instead of the usual one packet) as
  39.    a means of getting TCP up-to-speed faster.  (Slow starts instigated
  40.    due to timeouts would still start with just one packet.)  Starting
  41.    with more than one packet might reduce the start-up latency over
  42.    long-fat pipes by two round-trip times.  This proposal is documented
  43.    further in [1], [2], and in [3] and we assume the reader is familiar
  44.    with the details of this proposal.
  45.  
  46.    On the end2end-interest mailing list, concern was raised that in the
  47.    (allegedly common) case where a slow modem is served by a router
  48.    which only allocates three buffers per modem (one buffer being
  49.    transmitted while two packets are waiting), that starting with four
  50.    packets would not be good because the fourth packet is sure to be
  51.    dropped.
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58. Shepard & Partridge          Informational                      [Page 1]
  59.  
  60. RFC 2416        TCP with Four Packets into Three Buffers  September 1998
  61.  
  62.  
  63.    Vern Paxson replied with the comment (among other things) that the
  64.    four-packet start is no worse than what happens after two round trip
  65.    times in normal slow start, hence no new problem is introduced by
  66.    starting with as many as four packets.  If there is a problem with a
  67.    four-packet start, then the problem already exists in a normal slow-
  68.    start startup after two round trip times when the slow-start
  69.    algorithm will release into the net four closely spaced packets.
  70.  
  71.    The experiment reported here confirmed Vern Paxson's reasoning.
  72.  
  73. Scenario and experimental setup
  74.  
  75.  
  76. +--------+  100 Mbps  +---+  1.5 Mbps   +---+  9600 bps    +----------+
  77. | source +------------+ R +-------------+ R +--------------+ receiver |
  78. +--------+  no delay  +---+ 25 ms delay +---+ 150 ms delay +----------+
  79.  
  80.               |                             |
  81.               |                             |
  82.           (we spy here)              (this router has only 3 buffers
  83.                                       to hold packets going into the
  84.                                       9600 bps link)
  85.  
  86.    The scenario studied and simulated consists of three links between
  87.    the source and sink.  The first link is a 100 Mbps link with no
  88.    delay.  It connects the sender to a router.  (It was included to have
  89.    a means of logging the returning ACKs at the time they would be seen
  90.    by the sender.)  The second link is a 1.5 Mbps link with a 25 ms
  91.    one-way delay.  (This link was included to roughly model traversing
  92.    an un-congested, intra-continental piece of the terrestrial
  93.    Internet.) The third link is a 9600 bps link with a 150 ms one-way
  94.    delay.  It connects the edge of the net to a receiver which is behind
  95.    the 9600 bps link.
  96.  
  97.    The queue limits for the queues at each end of the first two links
  98.    were set to 100 (a value sufficiently large that this limit was never
  99.    a factor).  The queue limits at each end of the 9600 bps link were
  100.    set to 3 packets (which can hold at most two packets while one is
  101.    being sent).
  102.  
  103.    Version 1.2a2 of the the NS simulator (available from LBL) was used
  104.    to simulate both one-packet and four-packet starts for each of the
  105.    available TCP algorithms (tahoe, reno, sack, fack) and the conclusion
  106.    reported here is independent of which TCP algorithm is used (in
  107.    general, we believe).  In this memo, the "tahoe" module will be used
  108.    to illustrate what happens.  In the 4-packet start cases, the
  109.    "window-init" variable was set to 4, and the TCP implementations were
  110.    modified to use the value of the window-init variable only on
  111.  
  112.  
  113.  
  114. Shepard & Partridge          Informational                      [Page 2]
  115.  
  116. RFC 2416        TCP with Four Packets into Three Buffers  September 1998
  117.  
  118.  
  119.    connection start, but to set cwnd to 1 on other instances of a slow-
  120.    start. (The tcp.cc module as shipped with ns-1.2a2 would use the
  121.    window-init value in all cases.)
  122.  
  123.    The packets in simulation are 1024 bytes long for purposes of
  124.    determining the time it takes to transmit them through the links.
  125.    (The TCP modules included with the LBL NS simulator do not simulate
  126.    the TCP sequence number mechanisms.  They use just packet numbers.)
  127.  
  128.    Observations are made of all packets and acknowledgements crossing
  129.    the 100 Mbps no-delay link, near the sender.  (All descriptions below
  130.    are from this point of view.)
  131.  
  132. What happens with normal slow start
  133.  
  134.    At time 0.0 packet number 1 is sent.
  135.  
  136.    At time 1.222 an ack is received covering packet number 1, and
  137.    packets 2 and 3 are sent.
  138.  
  139.    At time 2.444 an ack is received covering packet number 2, and
  140.    packets 4 and 5 are sent.
  141.  
  142.    At time 3.278 an ack is received covering packet number 3, and
  143.    packets 6 and 7 are sent.
  144.  
  145.    At time 4.111 an ack is received covering packet number 4, and
  146.    packets 8 and 9 are sent.
  147.  
  148.    At time 4.944 an ack is received covering packet number 5, and
  149.    packets 10 and 11 are sent.
  150.  
  151.    At time 5.778 an ack is received covering packet number 6, and
  152.    packets 12 and 13 are sent.
  153.  
  154.    At time 6.111 a duplicate ack is recieved (covering packet number 6).
  155.  
  156.    At time 7.444 another duplicate ack is received (covering packet
  157.    number 6).
  158.  
  159.    At time 8.278 a third duplicate ack is received (covering packet
  160.    number 6) and packet number 7 is retransmitted.
  161.  
  162.    (And the trace continues...)
  163.  
  164. What happens with a four-packet start
  165.  
  166.    At time 0.0, packets 1, 2, 3, and 4 are sent.
  167.  
  168.  
  169.  
  170. Shepard & Partridge          Informational                      [Page 3]
  171.  
  172. RFC 2416        TCP with Four Packets into Three Buffers  September 1998
  173.  
  174.  
  175.    At time 1.222 an ack is received covering packet number 1, and
  176.    packets 5 and 6 are sent.
  177.  
  178.    At time 2.055 an ack is received covering packet number 2, and
  179.    packets 7 and 8 are sent.
  180.  
  181.    At time 2.889 an ack is received covering packet number 3, and
  182.    packets 9 and 10 are sent.
  183.  
  184.    At time 3.722 a duplicate ack is received (covering packet number 3).
  185.  
  186.    At time 4.555 another duplicate ack is received (covering packet
  187.    number 3).
  188.  
  189.    At time 5.389 a third duplicate ack is received (covering packet
  190.    number 3) and packet number 4 is retransmitted.
  191.  
  192.    (And the trace continues...)
  193.  
  194. Discussion
  195.  
  196.    At the point left off in the two traces above, the two different
  197.    systems are in almost identical states.  The two traces from that
  198.    point on are almost the same, modulo a shift in time of (8.278 -
  199.    5.389) = 2.889 seconds and a shift of three packets.  If the normal
  200.    TCP (with the one-packet start) will deliver packet N at time T, then
  201.    the TCP with the four-packet start will deliver packet N - 3 at time
  202.    T - 2.889 (seconds).
  203.  
  204.    Note that the time to send three 1024-byte TCP segments through a
  205.    9600 bps modem is 2.66 seconds.  So at what time does the four-
  206.    packet-start TCP deliver packet N?  At time T - 2.889 + 2.66 = T -
  207.    0.229 in most cases, and in some cases earlier, in some cases later,
  208.    because different packets (by number) experience loss in the two
  209.    traces.
  210.  
  211.    Thus the four-packet-start TCP is in some sense 0.229 seconds (or
  212.    about one fifth of a packet) ahead of where the one-packet-start TCP
  213.    would be.  (This is due to the extra time the modem sits idle while
  214.    waiting for the dally timer to go off in the receiver in the case of
  215.    the one-packet-start TCP.)
  216.  
  217.    The states of the two systems are not exactly identical.  They differ
  218.    slightly in the round-trip-time estimators because the behavior at
  219.    the start is not identical. (The observed round trip times may differ
  220.    by a small amount due to dally timers and due to that the one-packet
  221.    start experiences more round trip times before the first loss.)  In
  222.    the cases where a retransmit timer did later go off, the additional
  223.  
  224.  
  225.  
  226. Shepard & Partridge          Informational                      [Page 4]
  227.  
  228. RFC 2416        TCP with Four Packets into Three Buffers  September 1998
  229.  
  230.  
  231.    difference in timing was much smaller than the 0.229 second
  232.    difference discribed above.
  233.  
  234. Conclusion
  235.  
  236.    In this particular case, the four-packet start is not harmful.
  237.  
  238. Non-conclusions, opinions, and future work
  239.  
  240.    A four-packet start would be very helpful in situations where a
  241.    long-delay link is involved (as it would reduce transfer times for
  242.    moderately-sized transfers by as much as two round-trip times).  But
  243.    it remains (in the authors' opinions at this time) an open question
  244.    whether or not the four-packet start would be safe for the network.
  245.  
  246.    It would be nice to see if this result could be duplicated with real
  247.    TCPs, real modems, and real three-buffer limits.
  248.  
  249. Security Considerations
  250.  
  251.    This document discusses a simulation study of the effects of a
  252.    proposed change to TCP.  Consequently, there are no security
  253.    considerations directly related to the document.  There are also no
  254.    known security considerations associated with the proposed change.
  255.  
  256. References
  257.  
  258.    1.   S. Floyd, Increasing TCP's Initial Window (January 29, 1997).
  259.         URL ftp://ftp.ee.lbl.gov/papers/draft.jan29.
  260.  
  261.    2.   S. Floyd and M. Allman, Increasing TCP's Initial Window (July,
  262.         1997). URL http://gigahertz.lerc.nasa.gov/~mallman/share/draft-
  263.         ss.txt
  264.  
  265.    3.   Allman, M., Floyd, S., and C. Partridge, "Increasing TCP's
  266.         Initial Window", RFC 2414, September 1998.
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282. Shepard & Partridge          Informational                      [Page 5]
  283.  
  284. RFC 2416        TCP with Four Packets into Three Buffers  September 1998
  285.  
  286.  
  287. Authors' Addresses
  288.  
  289.    Tim Shepard
  290.    BBN Technologies
  291.    10 Moulton Street
  292.    Cambridge, MA 02138
  293.  
  294.    EMail: shep@alum.mit.edu
  295.  
  296.  
  297.    Craig Partridge
  298.    BBN Technologies
  299.    10 Moulton Street
  300.    Cambridge, MA 02138
  301.  
  302.    EMail: craig@bbn.com
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338. Shepard & Partridge          Informational                      [Page 6]
  339.  
  340. RFC 2416        TCP with Four Packets into Three Buffers  September 1998
  341.  
  342.  
  343. Full Copyright Statement
  344.  
  345.    Copyright (C) The Internet Society (1998).  All Rights Reserved.
  346.  
  347.    This document and translations of it may be copied and furnished to
  348.    others, and derivative works that comment on or otherwise explain it
  349.    or assist in its implementation may be prepared, copied, published
  350.    and distributed, in whole or in part, without restriction of any
  351.    kind, provided that the above copyright notice and this paragraph are
  352.    included on all such copies and derivative works.  However, this
  353.    document itself may not be modified in any way, such as by removing
  354.    the copyright notice or references to the Internet Society or other
  355.    Internet organizations, except as needed for the purpose of
  356.    developing Internet standards in which case the procedures for
  357.    copyrights defined in the Internet Standards process must be
  358.    followed, or as required to translate it into languages other than
  359.    English.
  360.  
  361.    The limited permissions granted above are perpetual and will not be
  362.    revoked by the Internet Society or its successors or assigns.
  363.  
  364.    This document and the information contained herein is provided on an
  365.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  366.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  367.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  368.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  369.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Shepard & Partridge          Informational                      [Page 7]
  395.  
  396.