home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_a_c / draft-ietf-bmwg-ippm-treno-btc-00.txt < prev    next >
Text File  |  1996-11-26  |  17KB  |  347 lines

  1.   INTERNET-DRAFT           Expires May 1997             INTERNET-DRAFT
  2.  
  3.   Network Working Group                                    Matt Mathis
  4.   INTERNET-DRAFT                      Pittsburgh Supercomputing Center
  5.   Expiration Date:  May 1997                                  Nov 1996
  6.  
  7.  
  8.                    Empirical Bulk Transfer Capacity
  9.  
  10.                < draft-ietf-bmwg-ippm-treno-btc-00.txt >
  11.  
  12.  
  13.  
  14.   Status of this Document
  15.  
  16.      This document is an Internet-Draft.  Internet-Drafts are working
  17.      documents of the Internet Engineering Task Force (IETF), its
  18.      areas, and its working groups.  Note that other groups may also
  19.      distribute working documents as Internet-Drafts.
  20.  
  21.      Internet-Drafts are draft documents valid for a maximum of six
  22.      months and may be updated, replaced, or obsoleted by other
  23.      documents at any time.  It is inappropriate to use Internet-
  24.      Drafts as reference material or to cite them other than as
  25.      ``work in progress.''
  26.  
  27.      To learn the current status of any Internet-Draft, please check
  28.      the ``1id-abstracts.txt'' listing contained in the Internet-
  29.      Drafts Shadow Directories on ftp.is.co.za (Africa),
  30.      nic.nordu.net (Europe), munnari.oz.au (Pacific Rim),
  31.      ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast).
  32.  
  33.   Abstract:
  34.  
  35.      Bulk Transport Capacity (BTC) is a measure of a network's ability
  36.      to transfer significant quantities of data with a single
  37.      congestion-aware transport connection (e.g. state-of-the-art
  38.      TCP).  For many applications the BTC of the underlying network
  39.      dominates the the overall elapsed time for the application, and
  40.      thus dominates the performance as perceived by a user.
  41.  
  42.      The BTC is a property of an IP cloud (links, routers, switches,
  43.      etc) between a pair of hosts.  It does not include the hosts
  44.      themselves (or their transport-layer software).  However,
  45.      congestion control is crucial to the BTC metric because the
  46.      Internet depends on the end systems to fairly divide the
  47.      available bandwidth on the basis of common congestion behavior.
  48.      The BTC metric is based on the performance of a reference
  49.      congestion control algorithm that has particularly uniform and
  50.      stable behavior.
  51.  
  52.   Introduction
  53.  
  54.      This Internet-draft is likely to become one section of some
  55.      future, larger document covering several different metrics.
  56.  
  57.   Motivation:
  58.  
  59.      Bulk Transport Capacity (BTC) is a measure of a network's ability
  60.      to transfer significant quantities of data with a single
  61.      congestion-aware transport connection (e.g. state-of-the-art
  62.      TCP).  For many applications the BTC of the underlying network
  63.      dominates the the overall elapsed time for the application, and
  64.      thus dominates the performance as perceived by a user.  Examples
  65.      of such applications include ftp and other network copy
  66.      utilities.
  67.  
  68.      The BTC is a property of an IP cloud (links, routers, switches,
  69.      etc) between a pair of hosts.  It does not include the hosts
  70.      themselves (or their transport-layer software).  However,
  71.      congestion control is crucial to the BTC metric because the
  72.      Internet depends on the end systems to fairly divide the
  73.      available bandwidth on the basis of common congestion behavior.
  74.      The BTC metric is based on the performance of a reference
  75.      congestion control algorithm that has particularly uniform and
  76.      stable behavior.  The reference algorithm is documented in
  77.      appendix A, and can be implemented in TCP using the SACK option
  78.      [RFC2018].  It is similar in style and behavior to the congestion
  79.      control algorithm which have been in standard use [Jacoboson88,
  80.      Stevens94, Stevens96] in the Internet.
  81.  
  82.      Since the behavior of the reference congestion control algorithm
  83.      is well defined and implementation independent, it will be
  84.      possible confirm that different measurements only reflect
  85.      properties of the network and not the end-systems.  As such BTC
  86.      will be a true network metric.  [A strong definition of "network
  87.      metric" belongs in the framework document: - truly indicative of
  88.      what *could* be done with TCP or another good transport layer -
  89.      sensitive to weaknesses in the routers, switches, links, etc.  of
  90.      the IP cloud that would also cause problems for production
  91.      transport layers - *not* be sensitive to weaknesses in common
  92.      host hardware or software, such as current production TCP
  93.      implementations, that can be removed by doing transport right on
  94.      the hosts - complete as a methodology in that little/no
  95.      additional deep knowledge of state-of-the-art measurement
  96.      technology is needed Others that may come to mind.  - Guy Almes]
  97.  
  98.      Implementing standard congestion control algorithms within the
  99.      diagnostic eliminates calibration problems associated with the
  100.      non-uniformity of current TCP implementations.  However, like all
  101.      empirical metrics it introduces new problems, most notably the
  102.      need to certify the correctness of the implementation and to
  103.      verify that there are not systematic errors due to limitations of
  104.      the tester.
  105.  
  106.      This version of the metric is based on the tool TReno (pronounced
  107.      tree-no), which implements the reference congestion control
  108.      algorithm over either traceroute-style UDP and ICMP messages or
  109.      ICMP ping packets.
  110.  
  111.      Many of the calibration checks can be included in the measurement
  112.      process itself.  The TReno program includes error and warning
  113.      messages for many conditions which indicate either problems with
  114.      the infrastructure or in some cases problems with the measurement
  115.      process.  Other checks need to be performed manually.
  116.  
  117.   Metric Name: TReno-Type-P-Bulk-Transfer-Capacity
  118.                 (e.g. TReno-UDP-BTC)
  119.  
  120.         Metric Parameters: A pair of IP addresses, Src (aka "tester")
  121.                 and Dst (aka "target"), a start time T and initial
  122.                 MTU.
  123.  
  124.      [The framework document needs a general way to address additional
  125.      constraints that may be applied to metrics: E.g. for a
  126.      NetNow-style test between hosts on two exchange points, some
  127.      indication of/control over the first hop is needed.]
  128.  
  129.         Definition: The average data rate attained by the reference
  130.                 congestion control algorithm, while using type-P
  131.                 packets to probe the forward (Src to Dst) path.
  132.                 In the case of ICMP ping, these messages also probe
  133.                 the return path.
  134.  
  135.         Metric Units: bits per second
  136.  
  137.         Ancillary results and output used to verify
  138.           the proper measurement procedure and calibration:
  139.           - Statistics over the entire test
  140.             (data transferred, duration and average rate)
  141.           - Statistics from the equilibrium portion of the test
  142.             (data transferred, duration, average rate, and number
  143.             of equilibrium congestion control cycles)
  144.           - Path property statistics (MTU, Min RTT, max cwnd in
  145.             equilibrium and max cwnd during Slow-start)
  146.           - Statistics from the non-equilibrium portion of the
  147.             test (nature and number of non-equilibrium events).
  148.           - Estimated load/BW/buffering used on the return path.
  149.           - Warnings about data transmission abnormalities.
  150.             (e.g packets out-of-order)
  151.           - Warning about conditions which may effect metric
  152.             accuracy. (e.g insufficient tester buffering)
  153.           - Alarms about serious data transmission abnormalities.
  154.             (e.g. data duplicated in the network)
  155.           - Alarms about tester internal inconsistencies and events
  156.             which might invalidate the results.
  157.           - IP address/name of the responding target.
  158.           - TReno version.
  159.  
  160.         Method: Run the treno program on the tester with the chosen
  161.           packet type addressed to the target.  Record both the 
  162.           BTC and the ancillary results.
  163.  
  164.         Manual calibration checks.  (See detailed explanations below).
  165.           - Verify that the tester and target have sufficient raw
  166.             bandwidth to sustain the test.
  167.           - Verify that the tester and target have sufficient
  168.             buffering to support the window needed by the test.
  169.           - Verify that there is not any other system activity on the
  170.             tester or target.
  171.           - Verify that the return path is not a bottleneck at the
  172.             load needed to sustain the test.
  173.           - Verify that the IP address reported in the replies is some
  174.             interface of the selected target.
  175.  
  176.         Version control:
  177.          - Record the precise TReno version (-V switch)
  178.          - Record the precise tester OS version, CPU version and
  179.             speed, interface type and version.
  180.  
  181.         Discussion:
  182.  
  183.      We do not use existing TCP implementations due to a number of
  184.      problems which make them difficult to calibrate as metrics.  The
  185.      Reno congestion control algorithms are subject to a number of
  186.      chaotic or turbulent behaviors which introduce non-uniform
  187.      performance [Floyd95, Hoe95, mathis96].  Non-uniform performance
  188.      introduces substantial non-calibratable uncertainty when used as
  189.      a metric.  Furthermore a number of people [Paxon:testing,
  190.      Comer:testing, ??others??] have observed extreme diversity
  191.      between different TCP implementations, raising doubts about
  192.      repeatability and consistency between different TCP based
  193.      measures.
  194.  
  195.      There are many possible reasons why a TReno measurement might not
  196.      agree with the performance obtained by a TCP based application.
  197.      Some key ones include: older TCP's missing key algorithms such as
  198.      MTU discovery, support for large windows or SACK, or mistuning of
  199.      either the data source or sink.  Some network conditions which
  200.      need the newer TCP algorithms are detected by TReno and reported
  201.      in the ancillary results.  Other documents will cover methods to
  202.      diagnose the difference between TReno and TCP performance.
  203.  
  204.      Note that the BTC metric is defined specifically to be the
  205.      average data rate between the source and destination hosts.  The
  206.      ancillary results are designed to detect a number of possible
  207.      measurement problems, and in a few case pathological behaviors in
  208.      the network.  The ancillary results should not be used as metrics
  209.      in their own right.  The discussion below assumes that the TReno
  210.      algorithm is implemented as a user mode program running under a
  211.      standard operating system.  Other implementations, such as a
  212.      dedicated measurement instrument, can have stronger builtin
  213.      calibration checks.
  214.  
  215.      The raw performance (bandwidth) limitations of both the tester
  216.      and target SHOULD be measured by running TReno in a controlled
  217.      environment (e.g. a bench test).  Ideally the observed
  218.      performance limits should be validated by diagnosing the nature
  219.      of the bottleneck and verifying that it agrees with other
  220.      benchmarks of the tester and target (e.g. That TReno performance
  221.      agrees with direct measures of backplane or memory bandwidth or
  222.      other bottleneck as appropriate.)  These raw performance
  223.      limitations MAY be obtained in advance and recorded for later
  224.      reference.  Currently no routers are reliable targets, although
  225.      under some conditions they can be used for meaningful
  226.      measurements.  For most people testing between a pair of modern
  227.      computer systems at a few megabits per second or less, the tester
  228.      and target are unlikely to be the bottleneck.
  229.  
  230.      TReno may not be accurate, and SHOULD NOT be used as a formal
  231.      metric at rates above half of the known tester or target limits.
  232.      This is because during Slow-start TReno needs to be able to send
  233.      bursts which are twice the average data rate.
  234.  
  235.      [need exception if the 1st hop LAN is the limit in all cases?]
  236.  
  237.      Verifying that the tester and target have sufficient buffering is
  238.      difficult.  If they do not have sufficient buffer space, then
  239.      losses at their own queues may contribute to the apparent losses
  240.      along the path.  There several difficulties in verifying the
  241.      tester and target buffer capacity.  First, there are no good
  242.      tests of the target's buffer capacity at all.  Second, all
  243.      validation of the testers buffering depend in some way on the
  244.      accuracy of reports by the tester's own operating system.  Third,
  245.      there is the confusing result that in many circumstances
  246.      (particularly when there is more than sufficient average
  247.      performance) where insufficient buffering does not adversely
  248.      impact measured performance.
  249.  
  250.      TReno separately instruments the performance of the equilibrium
  251.      and non-equilibrium portions of the test.  This is because
  252.      TReno's behavior is intrinsicly more accurate during equilibrium.
  253.      If TReno can not sustain equilibrium, it either suggests serious
  254.      problems with the network or that the expected performance is
  255.      lower than can be accurately measures by TReno.
  256.  
  257.      TReno reports (as calibration alarms) any events where transmit
  258.      packets were refused due to insufficient buffer space.  It
  259.      reports a warning if the maximum measured congestion window is
  260.      larger than the reported buffer space.  Although these checks are
  261.      likely to be sufficient in most cases they are probably not
  262.      sufficient in all cases, and will be subject of future research.
  263.  
  264.      Note that on a timesharing or multi-tasking system, other
  265.      activity on the tester introduces burstyness due to operating
  266.      system scheduler latency.  Therefore, it is very important that
  267.      there be no other system activity during a test.  This SHOULD be
  268.      confirmed with other operating system specific tools.
  269.  
  270.      In traceroute mode, TReno computes and reports the load on the
  271.      return path.  Unlike real TCP, TReno can not distinguish between
  272.      losses on the forward and return paths, so idealy we want the
  273.      return path to introduce as little loss as possible.  The best
  274.      way to test the return path is with TReno ICMP mode using ACK
  275.      sized messages, and verify that the measured packet rate is
  276.      improved by a factor of two.  [More research needed]
  277.  
  278.      In ICMP mode TReno measures the net effect of both the forward
  279.      and return paths on a single data stream.  Bottlenecks and packet
  280.      losses in the forward and return paths are treated equally.
  281.  
  282.      It would raise the accuracy of TReno traceroute mode if the ICMP
  283.      TTL execeded messages were generated at the target and
  284.      transmitted along the return path with elevated priority (reduced
  285.      losses and queuing delays).
  286.  
  287.      People using the TReno metric as part of procurement documents
  288.      should be aware that in many circumstances MTU has an intrinsic
  289.      and large impact on overall path performance.  Under some
  290.      conditions the difficulty in meeting a given performance
  291.      specifications is inversely proportional to the square of the
  292.      path MTU.  (e.g. halving the specified MTU makes meeting the
  293.      bandwidth specification 4 times harder.)
  294.  
  295.      In metric mode, TReno presents exactly the same load to the
  296.      network as a properly tuned state-of-the-art TCP between the same
  297.      pair of hosts.  Although the connection is not transferring
  298.      useful data, it is no more wasteful than fetching an un-wanted
  299.      web page takes the same time to transfer.
  300.  
  301.   References
  302.  
  303.      [RFC2018] Mathis, M., Mahdavi, J. Floyd, S., Romanow, A., "TCP
  304.      Selective Acknowledgment Options",
  305.      ftp://ds.internic.net/rfc/rfc2018.txt
  306.  
  307.      [Jacobson88] Jacobson, V., "Congestion Avoidance and Control",
  308.      Proceedings of SIGCOMM '88, Stanford, CA., August 1988.
  309.  
  310.      [Stevens94] Stevens, W., "TCP/IP Illustrated, Volume 1: The
  311.      Protocols", Addison-Wesley, 1994.
  312.  
  313.      [Stevens96] Stevens, W., "TCP Slow Start, Congestion Avoidance,
  314.      Fast Retransmit, and Fast Recovery Algorithms", Work in progress
  315.      ftp://ietf.org/internet-drafts/draft-stevens-tcpca-spec-01.txt
  316.  
  317.      [Floyd95] Floyd, S., "TCP and successive fast retransmits",
  318.      February 1995, Obtain via ftp://ftp.ee.lbl.gov/papers/fastretrans.ps.
  319.  
  320.      [Hoe95] Hoe, J., "Startup dynamics of TCP's congestion control
  321.      and avoidance schemes".  Master's thesis, Massachusetts Institute
  322.      of Technology, June 1995.
  323.  
  324.      [mathis96] Mathis, M. and Mahdavi, J. "Forward acknowledgment:
  325.      Refining tcp congestion control",  Proceedings of ACM SIGCOMM '96,
  326.      Stanford, CA., August 1996.
  327.  
  328.   Author's Address
  329.  
  330.      Matt Mathis
  331.      email: mathis@psc.edu
  332.      Pittsburgh Supercomputing Center
  333.      4400 Fifth Ave.
  334.      Pittsburgh PA 15213
  335.  
  336.   ----------------------------------------------------------------
  337.   Appendix A:
  338.  
  339.      Currently the best existing description of the algorithm is in
  340.      the "FACK technical note" below http://www.psc.edu/networking/tcp.html.
  341.      Within TReno, all invocations of "bounding parameters" will be
  342.      reported as warnings.
  343.  
  344.      The FACK technical note will be revised for TReno, supplemented by a
  345.      code fragment and included here.
  346.  
  347.