home *** CD-ROM | disk | FTP | other *** search
/ Internet Info 1997 December / Internet_Info_CD-ROM_Walnut_Creek_December_1997.iso / drafts / draft_ietf_i / draft-ietf-intserv-ctrl-load-svc-04.txt < prev    next >
Text File  |  1996-11-26  |  46KB  |  1,043 lines

  1. Internet Engineering Task Force                   Integrated Services WG
  2. INTERNET-DRAFT                                             J. Wroclawski
  3. draft-ietf-intserv-ctrl-load-svc-04.txt                          MIT LCS
  4.                                                           November, 1996
  5.                                                            Expires: 5/97
  6.  
  7.  
  8.  
  9.       Specification of the Controlled-Load Network Element Service
  10.  
  11.  
  12. Status of this Memo
  13.  
  14.  
  15.    This document is an Internet-Draft.  Internet-Drafts are working
  16.    documents of the Internet Engineering Task Force (IETF), its areas,
  17.    and its working groups.  Note that other groups may also distribute
  18.    working documents as Internet-Drafts.
  19.  
  20.    Internet-Drafts are draft documents valid for a maximum of six months
  21.    and may be updated, replaced, or obsoleted by other documents at any
  22.    time.  It is inappropriate to use Internet-Drafts as reference
  23.    material or to cite them other than as "work in progress".
  24.  
  25.    To learn the current status of any Internet-Draft, please check the
  26.    "1id-abstracts.txt" listing contained in the Internet- Drafts Shadow
  27.    Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  28.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  29.    ftp.isi.edu (US West Coast).
  30.  
  31.    This draft is a product of the Integrated Services Working Group of
  32.    the Internet Engineering Task Force.  Comments are solicited and
  33.    should be addressed to the working group's mailing list at int-
  34.    serv@isi.edu and/or the author(s).
  35.  
  36.  
  37. Abstract
  38.  
  39.  
  40.       This memo specifies the network element behavior required to
  41.       deliver Controlled-Load service in the Internet.  Controlled-load
  42.       service provides the client data flow with a quality of service
  43.       closely approximating the QoS that same flow would receive from an
  44.       unloaded network element, but uses capacity (admission) control to
  45.       assure that this service is received even when the network element
  46.       is overloaded.
  47.  
  48.  
  49.  
  50.  
  51.  
  52. J. Wroclawski                 Expires 5/97                      [Page 1]
  53. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  54.  
  55.  
  56. 1. Introduction
  57.  
  58.    This document defines the requirements for network elements that
  59.    support the Controlled-Load service.  This memo is one of a series of
  60.    documents that specify the network element behavior required to
  61.    support various qualities of service in IP internetworks.  Services
  62.    described in these documents are useful both in the global Internet
  63.    and private IP networks.
  64.  
  65.    This document is based on the service specification template given in
  66.    [1]. Please refer to that document for definitions and additional
  67.    information about the specification of qualities of service within
  68.    the IP protocol family.
  69.  
  70. 2. End-to-End Behavior
  71.  
  72.    The end-to-end behavior provided to an application by a series of
  73.    network elements providing controlled-load service tightly
  74.    approximates the behavior visible to applications receiving best-
  75.    effort service *under unloaded conditions* from the same series of
  76.    network elements.  Assuming the network is functioning correctly,
  77.    these applications may assume that:
  78.  
  79.      - A very high percentage of transmitted packets will be
  80.      successfully delivered by the network to the receiving end-nodes.
  81.      (The percentage of packets not successfully delivered must closely
  82.      approximate the basic packet error rate of the transmission
  83.      medium).
  84.  
  85.      - The transit delay experienced by a very high percentage of the
  86.      delivered packets will not greatly exceed the minimum transmit
  87.      delay experienced by any successfully delivered packet. (This
  88.      minimum transit delay includes speed-of-light delay plus the fixed
  89.      processing time in routers and other communications devices along
  90.      the path.)
  91.  
  92.    To ensure that these conditions are met, clients requesting
  93.    controlled-load service provide the intermediate network elements
  94.    with a estimation of the data traffic they will generate; the TSpec.
  95.    In return, the service ensures that network element resources
  96.    adequate to process traffic falling within this descriptive envelope
  97.    will be available to the client. Should the client's traffic
  98.    generation properties fall outside of the region described by the
  99.    TSpec parameters, the QoS provided to the client may exhibit
  100.    characteristics indicative of overload, including large numbers of
  101.    delayed or dropped packets. The service definition does not require
  102.    that the precise characteristics of this overload behavior match
  103.    those which would be received by a best-effort data flow traversing
  104.  
  105.  
  106.  
  107. J. Wroclawski                 Expires 5/97                      [Page 2]
  108. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  109.  
  110.  
  111.    the same path under overloaded conditions.
  112.  
  113.       NOTE: In this memo, the term "unloaded" is used in the sense of
  114.       "not heavily loaded or congested" rather than in the sense of "no
  115.       other network traffic whatsoever".
  116.  
  117. 3. Motivation
  118.  
  119.    The controlled load service is intended to support a broad class of
  120.    applications which have been developed for use in today's Internet,
  121.    but are highly sensitive to overloaded conditions.  Important members
  122.    of this class are the "adaptive real-time applications" currently
  123.    offered by a number of vendors and researchers. These applications
  124.    have been shown to work well on unloaded nets, but to degrade quickly
  125.    under overloaded conditions. A service which mimics unloaded nets
  126.    serves these applications well.
  127.  
  128.    The controlled-load service is intentionally minimal, in that there
  129.    are no optional functions or capabilities in the specification. The
  130.    service offers only a single function, and system and application
  131.    designers can assume that all implementations will be identical in
  132.    this respect.
  133.  
  134.    Internally, the controlled-load service is suited to a wide range of
  135.    implementation techniques, including evolving scheduling and
  136.    admission control algorithms that allow implementations to be highly
  137.    efficient in the use of network resources. It is equally amenable to
  138.    extremely simple implementation in circumstances where maximum
  139.    utilization of network resources is not the only concern.
  140.  
  141. 4. Network Element Data Handling Requirements
  142.  
  143.    Each network element accepting a request for controlled-load service
  144.    must ensure that adequate bandwidth and packet processing resources
  145.    are available to handle the requested level of traffic, as given by
  146.    the requestor's TSpec. This must be accomplished through active
  147.    admission control. All resources important to the operation of the
  148.    network element must be considered when admitting a request. Common
  149.    examples of such resources include link bandwidth, router or switch
  150.    port buffer space, and computational capacity of the packet
  151.    forwarding engine.
  152.  
  153.    The controlled-load service does not accept or make use of specific
  154.    target values for control parameters such as delay or loss. Instead,
  155.    acceptance of a request for controlled-load service is defined to
  156.    imply a commitment by the network element to provide the requestor
  157.    with service closely equivalent to that provided to uncontrolled
  158.    (best-effort) traffic under lightly loaded conditions.
  159.  
  160.  
  161.  
  162. J. Wroclawski                 Expires 5/97                      [Page 3]
  163. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  164.  
  165.  
  166.    The definition of "closely equivalent to unloaded best-effort
  167.    service" is necessarily imprecise. It is easiest to define this
  168.    quality of service by describing the events which are expected to
  169.    *not* occur with any frequency. A flow receiving controlled-load
  170.    service at a network element may expect to experience:
  171.  
  172.      - Little or no average packet queueing delay over all timescales
  173.      significantly larger than the "burst time". The burst time is
  174.      defined as the time required for the flow's maximum size data burst
  175.      to be transmitted at the flow's requested transmission rate, where
  176.      the burst size and rate are given by the flow's TSpec, as described
  177.      below.
  178.  
  179.      - Little or no congestion loss over all timescales significantly
  180.      larger than the "burst time" defined above.  In this context,
  181.      congestion loss includes packet losses due to shortage of any
  182.      required processing resource, such as buffer space or link
  183.      bandwidth.  Although occasional congestion losses may occur, any
  184.      substantial sustained loss represents a failure of the admission
  185.      control algorithm.
  186.  
  187.    The basic effect of this language is to establish an expectation on
  188.    the *duration* of a disruption in delivery service. Events of shorter
  189.    duration are viewed as statistical effects which may occur in normal
  190.    operation. Events of longer duration are indicative of failure to
  191.    allocate adequate capacity to the controlled-load flow.
  192.  
  193.    A network element may employ statistical approaches to decide whether
  194.    adequate capacity is available to accept a service request. For
  195.    example, a network element processing a number of flows with long-
  196.    term characteristics predicted through measurement of past behavior
  197.    may be able to overallocate its resources to some extent without
  198.    reducing the level of service delivered to the flows.
  199.  
  200.    A network element may employ any appropriate scheduling means to
  201.    ensure that admitted flows receive appropriate service.
  202.  
  203.       NOTE: The flexibility implied by the above paragraph exists within
  204.       definite limits. Readers should observe that the specification's
  205.       requirement that the delay and loss behavior described above
  206.       imposes concrete requirements on implementations.
  207.  
  208.       Perhaps the most important requirement is that the implementation
  209.       has to make bandwidth greater than the Tspec token rate available
  210.       to the flow in certain situations. The requirement for the
  211.       availability of extra bandwidth may be derived from the fluid
  212.       model of traffic scheduling (e.g. [7]). If a flow receives exactly
  213.       its promised token rate at all times, queueing caused by an over-
  214.  
  215.  
  216.  
  217. J. Wroclawski                 Expires 5/97                      [Page 4]
  218. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  219.  
  220.  
  221.       rate burst arriving at the network element may never clear,
  222.       causing the traffic queueing delay to permanantly increase. This
  223.       will happen if the flow continues to generate traffic at exactly
  224.       the token rate after emitting the burst.
  225.  
  226.       To control the long-term effects of traffic bursts, a Controlled
  227.       Load implementation has several options. At minimum, a mechanism
  228.       must be present to "borrow" bandwidth needed to clear bursts from
  229.       the network. There are a number of ways to implement such a
  230.       mechanism, ranging from explicit borrowing schemes within the
  231.       traffic scheduler to implicit schemes based on statistical
  232.       multiplexing and measurement-based admission control. The
  233.       specification does not prefer any method over any other, but does
  234.       require that some such mechanism must exist.
  235.  
  236.       Similarly, the requirement for low congestion loss for in-Tspec
  237.       traffic implies that buffer management must have some flexibility.
  238.       Because the controlled-load service does not reshape traffic to
  239.       its token-bucket parameters at every node, traffic flowing through
  240.       the network will be distorted as it traverses queueing points.
  241.       This distortion is particularly likely to occur during traffic
  242.       bursts, precisely when buffering is most heavily used. In these
  243.       circumstances, rigidly restricting the buffering capacity to a
  244.       size equal to the flow's TSpec burst size may lead to congestion
  245.       loss. An implementaton should be prepared to make additional
  246.       buffering available to bursting flows. Again, this may be
  247.       accomplished in a number of ways. One obvious choice is
  248.       statistical multiplexing of a shared buffer pool.
  249.  
  250.    Links are not permitted to fragment packets which receive the
  251.    controlled-load service. Packets larger than the MTU of the link must
  252.    be treated as nonconformant to the TSpec. This implies that they will
  253.    be forwarded according to the rules described in the Policing section
  254.    below.
  255.  
  256.    Implementations of controlled-load service are not required to
  257.    provide any control of short-term packet delay jitter beyond that
  258.    described above. However, the use of packet scheduling algorithms
  259.    that provide additional jitter control is not prohibited by this
  260.    specification.
  261.  
  262.    Packet losses due to non-congestion-related causes, such as link
  263.    errors, are not bounded by this service.
  264.  
  265. 5. Invocation Information
  266.  
  267.    The controlled-load service is invoked by specifying the data flow's
  268.    desired traffic parameters (TSpec) to the network element. Requests
  269.  
  270.  
  271.  
  272. J. Wroclawski                 Expires 5/97                      [Page 5]
  273. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  274.  
  275.  
  276.    placed for a new flow will be accepted if the network element has the
  277.    capacity to forward the flow's packets as described above. Requests
  278.    to change the TSpec for an existing flow should be treated as a new
  279.    invocation, in the sense that admission control must be reapplied to
  280.    the flow. Requests that reduce the TSpec for an existing flow (in the
  281.    sense that the new TSpec is strictly smaller than the old TSpec
  282.    according to the ordering rules given below) should never be denied
  283.    service.
  284.  
  285.    The Controlled-Load service uses the TOKEN_BUCKET_TSPEC defined in
  286.    Reference [5] to describe a data flow's traffic parameters. This
  287.    TSpec takes the form of a token bucket specification plus a peak rate
  288.    (p), a minimum policed unit (m) and a maximum packet size (M).
  289.  
  290.    The token bucket specification includes a bucket rate r and a bucket
  291.    depth, b.  Both r and b must be positive.  The rate, r, is measured
  292.    in bytes of IP datagrams per second. Values of this parameter may
  293.    range from 1 byte per second to 40 terabytes per second. Network
  294.    elements MUST return an error for requests containing values outside
  295.    this range. Network elements MUST return an error for any request
  296.    containing a value within this range which cannot be supported by the
  297.    element. In practice, only the first few digits of the r parameter
  298.    are significant, so the use of floating point representations,
  299.    accurate to at least 0.1% is encouraged.
  300.  
  301.    The bucket depth, b, is measured in bytes. Values of this parameter
  302.    may range from 1 byte to 250 gigabytes. Network elements MUST return
  303.    an error for requests containing values outside this range. Network
  304.    elements MUST return an error for any request containing a value
  305.    within this range which cannot be supported by the element. In
  306.    practice, only the first few digits of the b parameter are
  307.    significant, so the use of floating point representations, accurate
  308.    to at least 0.1% is encouraged.
  309.  
  310.    The range of values allowed for these parameters is intentionally
  311.    large to allow for future network technologies. Any given network
  312.    element is not expected to support the full range of values.
  313.  
  314.    The peak rate, p, is measured in bytes of IP datagrams per second and
  315.    has the same range and suggested representation as the bucket rate.
  316.    The peak rate parameter exists in this version of the specification
  317.    primarily for TSpec compatability with other QoS control services and
  318.    the shared TOKEN_BUCKET_TSPEC parameter. While some admission control
  319.    and buffer allocation algorithms may find the peak rate value useful,
  320.    the field may always be ignored by a Controlled-Load service
  321.    conforming to this version of the specification. That is, the service
  322.    module at a network element may always assume that the peak data rate
  323.    arriving at that element is the line rate of the incoming interface,
  324.  
  325.  
  326.  
  327. J. Wroclawski                 Expires 5/97                      [Page 6]
  328. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  329.  
  330.  
  331.    and the service's evaluation criteria do not require a network
  332.    element to consider the peak rate value. More explicit use of the
  333.    peak-rate parameter by a Controlled-Load service module may be added
  334.    to the specification in the future.
  335.  
  336.    The minimum policed unit, m, is an integer measured in bytes.  All IP
  337.    datagrams less than size m will be counted against the token bucket
  338.    as being of size m. The maximum packet size, M, is the biggest packet
  339.    that will conform to the traffic specification; it is also measured
  340.    in bytes.  Network elements MUST reject a service request if the
  341.    requested maximum packet size is larger than the MTU of the link.
  342.    Both m and M must be positive, and m must be less then or equal to M.
  343.  
  344.    The preferred concrete representation for the TSpec is three floating
  345.    point numbers in single-precision IEEE floating point format followed
  346.    by two 32-bit integers in network byte order.  The first value is the
  347.    rate (r), the second value is the bucket size (b), the third is the
  348.    peak rate (p), the fourth is the minimum policed unit (m), and the
  349.    fifth is the maximum packet size (M). For the parameters (r) and (b),
  350.    only bit-patterns which represent valid non-negative floating point
  351.    numbers are allowed. Negative numbers (including "negative zero),
  352.    infinities, and NAN's are not allowed.  For the parameter (p) only
  353.    bit-patterns which represent valid non-negative floating point
  354.    numbers or positive infinity are allowed. Positive infinity is
  355.    represented with an exponent of all ones (255) and a sign bit and
  356.    mantissa of all zeroes. Negative numbers (including "negative zero"),
  357.    negative infinity, and NAN's are not allowed.
  358.  
  359.       NOTE: An implementation which utilizes general-purpose hardware or
  360.       software IEEE floating-point support may wish to verify that
  361.       arriving parameters meet this requirement before using the
  362.       parameters in floating-point computations, in order to avoid
  363.       unexpected exceptions or traps.
  364.  
  365.    The controlled-load service is assigned service_name 5.
  366.  
  367.    The TOKEN_BUCKET_TSPEC parameter used by the Controlled-Load service
  368.    is general parameter number 127, as indicated in [RFCGP].
  369.  
  370. 6. Exported Information
  371.  
  372.    The controlled-load service has no required characterization
  373.    parameters. Individual implementations may export appropriate
  374.    implementation-specific measurement and monitoring information.
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382. J. Wroclawski                 Expires 5/97                      [Page 7]
  383. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  384.  
  385.  
  386. 7. Policing
  387.  
  388.    The controlled-load service is provided to a flow on the basis that
  389.    the flow's traffic conforms to a TSpec given at flow setup time. This
  390.    section defines the meaning of conformance to the controlled-load
  391.    TSpec, describes the circumstances under which a controlled-load
  392.    flow's traffic might *not* conform to the TSpec, and specifies the
  393.    network element's action in those circumstances.
  394.  
  395.    Controlled-load service modules provide QoS control for traffic
  396.    conforming to the TSpec given at setup time.  The TSpec's token
  397.    bucket parameters require that traffic must obey the rule that over
  398.    all time periods, the amount of data sent does not exceed rT+b, where
  399.    r and b are the token bucket parameters and T is the length of the
  400.    time period.  For the purposes of this accounting, links must count
  401.    packets that are smaller than the minimal policing unit m to be of
  402.    size m.  Packets that arrive at an element and cause a violation of
  403.    the the rT+b bound are considered nonconformant.
  404.  
  405.    Additionally, packets bigger than the outgoing link MTU are
  406.    considered nonconformant.  It is expected that this situation will
  407.    not arise with any frequency, because flow setup mechanisms are
  408.    expected to notify the sending application of the appropriate path
  409.    MTU.
  410.  
  411.    In the presence of nonconformant packets arriving for one or more
  412.    controlled-load flows, each network element must ensure locally that
  413.    the following requirements are met:
  414.  
  415.      1) The network element MUST continue to provide the contracted
  416.      quality of service to those controlled-load flows not experiencing
  417.      excess traffic.
  418.  
  419.      2) The network element SHOULD prevent excess controlled-load
  420.      traffic from unfairly impacting the handling of arriving best-
  421.      effort traffic.  This requirement is discussed further in Section 9
  422.      of this document (Guidelines for Implementors).
  423.  
  424.      3) Consistent with points 1 and 2, the network element MUST attempt
  425.      to forward the excess traffic on a best-effort basis if sufficient
  426.      resources are available.
  427.  
  428.    Network elements must not assume that that arrival of nonconformant
  429.    traffic for a specific controlled-load flow will be unusual, or
  430.    indicative of error.  In certain circumstances (particularly, routers
  431.    acting as the "split points" of a multicast distribution tree
  432.    supporting a shared reservation) large numbers of packets will fail
  433.    the conformance test *as a matter of normal operation*.
  434.  
  435.  
  436.  
  437. J. Wroclawski                 Expires 5/97                      [Page 8]
  438. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  439.  
  440.  
  441.    Network elements must not assume that data sources or upstream
  442.    elements have taken action to "police" controlled-load flows by
  443.    limiting their traffic to conform to the flow's TSpec.  Each network
  444.    element providing controlled-load service MUST independently ensure
  445.    that the requirements given above are met in the presence of
  446.    nonconformant arriving traffic for one or more controlled-load flows.
  447.  
  448.    Network elements may use any appropriate implementation mechanism to
  449.    meet the requirements given above.  Examples of such mechanisms
  450.    include token-bucket policing filters and per-flow scheduling
  451.    algorithms.  However, it is insufficient to simply place all
  452.    controlled-load flows into the same shared resource pool, without
  453.    first ensuring that non-conformant flows are prevented from starving
  454.    conformant flows of the necessary processing resources.
  455.  
  456.    Further discussion of this issue may be found in Section 11 of this
  457.    note.
  458.  
  459.    Beyond requirements 2 and 3 above, the controlled-load service does
  460.    not define the QoS behavior delivered to flows with non-conformant
  461.    arriving traffic.  Specifically, it is permissible either to degrade
  462.    the service delivered to all of the flow's packets equally, or to
  463.    sort the flow's packets into a conformant set and a nonconformant set
  464.    and deliver different levels of service to the two sets. This point
  465.    is discussed further in Section 9 of this note.
  466.  
  467.    When resources are available, network elements at points within the
  468.    interior of the network SHOULD be prepared to accommodate packet
  469.    bursts somewhat larger than the actual TSpec. This requirement
  470.    derives from the traffic distortion effect described in Section 4. As
  471.    described there, it may be met either through explicit means or
  472.    statistical multiplexing of shared buffering resources.
  473.  
  474.    When handling such traffic, it is permissible to allow some delaying
  475.    of a packet if that delay would allow it to pass the policing
  476.    function.  (In other words, to reshape the traffic).  However, the
  477.    overall requirement for limiting the duration of any such traffic
  478.    distortion must be considered. The challenge is to define a viable
  479.    reshaping function.
  480.  
  481.    Intuitively, a plausible approach is to allow a delay of (roughly) up
  482.    to the maximum queueing delay experienced by completely conforming
  483.    packets before declaring that a packet has failed to pass the
  484.    policing function. The merit of this approach, and the precise
  485.    wording of the specification that describes it, require further
  486.    study.
  487.  
  488.  
  489.  
  490.  
  491.  
  492. J. Wroclawski                 Expires 5/97                      [Page 9]
  493. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  494.  
  495.  
  496. 8. Ordering and Merging
  497.  
  498.    The controlled-load service TSpec is ordered according to the
  499.    following rule: TSpec A is a substitute for ("as good or better than"
  500.    or "greater than or equal to") TSpec B if and only if:
  501.  
  502.      (1) the token bucket rate r for TSpec A is greater than or equal to
  503.      that of TSpec B,
  504.  
  505.      (2) the token bucket depth b for TSpec A is greater than or equal
  506.      to that of TSpec B,
  507.  
  508.      (3) the peak rate p for TSpec A is greater than or equal to that of
  509.      TSpec B,
  510.  
  511.      (4) the minimum policed unit m for TSpec A is less than or equal to
  512.      that of TSpec B,
  513.  
  514.      (5) the maximum packet size M of TSpec A is greater than or equal
  515.      to that of TSpec B.
  516.  
  517.    Note that not all TSpecs can be ordered with respect to each other.
  518.    If two TSpecs differ but not all five of the points above are true,
  519.    then the TSpecs are unordered.
  520.  
  521.    A merged TSpec is the TSpec used by the RSVP protocol when merging a
  522.    set of TSpecs to create a "merged" reservation. TSpec merging is
  523.    described further in [4] and [3]. The TSpec merge operation addresses
  524.    two requirements:
  525.  
  526.      - The "merged" TSpec parameters are used as the traffic flow's
  527.      TSpec at the local node.
  528.  
  529.      - The merged parameters are passed upstream to traffic source(s) to
  530.      describe characteristics of the actually installed reservation
  531.      along the data path.
  532.  
  533.    For the controlled-load service, a merged TSpec may be calculated
  534.    over a set of TSpecs by taking:
  535.  
  536.      (1) the largest token bucket rate r;
  537.  
  538.      (2) the largest token bucket size b;
  539.  
  540.      (3) the largest peak rate p;
  541.  
  542.      (4) the smallest minimal policed unit m;
  543.  
  544.  
  545.  
  546.  
  547. J. Wroclawski                 Expires 5/97                     [Page 10]
  548. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  549.  
  550.  
  551.      (5) the *smallest* maximum packet size M;
  552.  
  553.    across all members of the set.
  554.  
  555.    A Least Common TSpec is a TSpec adequate to describe the traffic from
  556.    any one of a number of traffic flows. The least common TSpec may be
  557.    useful when creating a shared reservation for a number of flows using
  558.    SNMP or another management protocol. This differs from the merged
  559.    TSpec described above in that the computed parameters are not passed
  560.    upstream to the sources of traffic.
  561.  
  562.    For the controlled-load service, the Least Common TSpec may be
  563.    calculated over a set of TSpecs by taking:
  564.  
  565.      (1) the largest token bucket rate r;
  566.  
  567.      (2) the largest token bucket size b;
  568.  
  569.      (3) the largest peak rate p;
  570.  
  571.      (4) the smallest minimal policed unit m;
  572.  
  573.      (5) the largest maximum packet size M;
  574.  
  575.    across all members of the set.
  576.  
  577.    The sum of n controlled-load service TSpecs is used when computing
  578.    the TSpec for a shared reservation of n flows. It is computed by
  579.    taking:
  580.  
  581.      - The sum across all TSpecs of the token bucket rate parameter r.
  582.  
  583.      - The sum across all TSpecs of the token bucket size parameter b.
  584.  
  585.      - The sum across all TSpecs of the peak rate parameter p.
  586.  
  587.      - The minimum across all TSpecs of the minimum policed unit
  588.      parameter m.
  589.  
  590.      - The maximum across all TSpecs of the maximum packet size
  591.      parameter M.
  592.  
  593.    The minimum of two TSpecs differs according to whether the TSpecs can
  594.    be ordered according to the "greater than or equal to" rule above.
  595.    If one TSpec is less than the other TSpec, the smaller TSpec is the
  596.    minimum.  For unordered TSpecs, a different rule is used.  The
  597.    minimum of two unordered TSpecs is determined by comparing the
  598.    respective values in the two TSpecs and choosing:
  599.  
  600.  
  601.  
  602. J. Wroclawski                 Expires 5/97                     [Page 11]
  603. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  604.  
  605.  
  606.      (1) the smaller token bucket rate r;
  607.  
  608.      (2) the *larger* token bucket size b;
  609.  
  610.      (3) the smaller peak rate p;
  611.  
  612.      (4) the *smaller* minimum policed unit m;
  613.  
  614.      (5) the smaller maximum packet size M;
  615.  
  616. 9. Guidelines for Implementors
  617.  
  618.    REQUIREMENTS PLACED ON ADMISSION CONTROL ALGORITHM: The intention of
  619.    this service specification is that network elements deliver a level
  620.    of service closely approximating best-effort service under unloaded
  621.    conditions. As with best-effort service under these conditions, it is
  622.    not required that every single packet must be successfully delivered
  623.    with zero queueing delay. Network elements providing controlled-load
  624.    service are permitted to oversubscribe the available resources to
  625.    some extent, in the sense that the bandwidth and buffer requirements
  626.    indicated by summing the TSpec token buckets of all controlled-load
  627.    flows may exceed the maximum capabilities of the network element.
  628.    However, this oversubscription may only be done in cases where the
  629.    element is quite sure that actual utilization is less than the sum of
  630.    the token buckets would suggest, so that the implementor's
  631.    performance goals will be met. This information may come from
  632.    measurement of the aggregate traffic flow, specific knowledge of
  633.    application traffic statistics, or other means. The most conservative
  634.    approach, rejection of new flows whenever the addition of their
  635.    traffic would cause the strict sum of the token buckets to exceed the
  636.    capacity of the network element (including consideration of resources
  637.    needed to maintain the delay and loss characteristics specified by
  638.    the service) may be appropriate in other circumstances.
  639.  
  640.    Specific issues related to this subject are discussed in the
  641.    "Evaluation Criteria" and "Examples of Implementation" sections
  642.    below.
  643.  
  644.    INTERACTION WITH BEST-EFFORT TRAFFIC: Implementors of this service
  645.    should clearly understand that in certain circumstances (routers
  646.    acting as the "split points" of a multicast distribution tree
  647.    supporting a shared reservation) large numbers of a flow's packets
  648.    may fail the TSpec conformance test *as a matter of normal
  649.    operation*.  According to the requirements of Section 7, these
  650.    packets should be forwarded on a best-effort basis if resources
  651.    permit.
  652.  
  653.    If the network element's best-effort queueing algorithm does not
  654.  
  655.  
  656.  
  657. J. Wroclawski                 Expires 5/97                     [Page 12]
  658. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  659.  
  660.  
  661.    distinguish between these packets and elastic best-effort traffic
  662.    such as TCP flows, THE EXCESS CONTROLLED-LOAD PACKETS WILL "BACK OFF"
  663.    THE ELASTIC TRAFFIC AND DOMINATE THE BEST-EFFORT BANDWIDTH USAGE. The
  664.    integrated services framework does not currently address this issue.
  665.    However, several possible solutions to the problem are known [RED,
  666.    xFQ].  Network elements supporting the controlled load service should
  667.    implement some mechanism in their best-effort queueing path to
  668.    discriminate between classes of best-effort traffic and provide
  669.    elastic traffic with protection from inelastic best-effort flows.
  670.  
  671.    Two basic approaches are available to meet this requirement. The
  672.    network element can maintain separate resource allocations for
  673.    different classes of best-effort traffic, so that no one class will
  674.    excessively dominate the loaded best-effort mix. Alternatively, an
  675.    element can process excess controlled-load traffic at somewhat lower
  676.    priority than elastic best-effort traffic, so as to completely avoid
  677.    the back-off effect discussed above.
  678.  
  679.    If most or all controlled-load traffic arises from non-rate-adaptive
  680.    real-time applications, the use of priority mechanisms might be
  681.    desirable. If most controlled-load traffic arises from rate-adaptive
  682.    realtime or elastic applications attempting to establish a bounded
  683.    minimum level of service, the use of separate resource classes might
  684.    be preferable. However, this is not a firm guideline. In practice,
  685.    the network element designer's choice of mechanism will depend
  686.    heavily on both the goals of the design and the implementation
  687.    techniques appropriate for the designer's platform. This version of
  688.    the service specification does not specify one or the other behavior,
  689.    but leaves the choice to the implementor.
  690.  
  691.    FORWARDING BEHAVIOR IN PRESENCE OF NONCONFORMANT TRAFFIC: As
  692.    indicated in Section 7, the controlled-load service does not define
  693.    the QoS behavior delivered to flows with non-conformant arriving
  694.    traffic.  It is permissible either to degrade the service delivered
  695.    to all of the flow's packets equally, or to sort the flow's packets
  696.    into a conformant set and a nonconformant set and deliver different
  697.    levels of service to the two sets.
  698.  
  699.    In the first case, expected queueing delay and packet loss
  700.    probability will rise for all packets in the flow, but packet
  701.    delivery reordering will, in general, remain at low levels. This
  702.    behavior is preferable for those applications or transport protocols
  703.    which are sensitive to excessive packet reordering. A possible
  704.    example is an unmodified TCP connection, which would see reordering
  705.    as lost packets, triggering duplicate acks and hence excessive
  706.    retransmissions.
  707.  
  708.    In the second case, some subset of the flow's packets will be
  709.  
  710.  
  711.  
  712. J. Wroclawski                 Expires 5/97                     [Page 13]
  713. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  714.  
  715.  
  716.    delivered with low loss and delay, while some other subset will be
  717.    delivered with higher loss and potentially higher delay. The delayed
  718.    packets will appear to the receiver to have been reordered in the
  719.    network, while the non-delayed packets will, on average, arrive in a
  720.    more timely fashion than if all packets were treated equally. This
  721.    might be preferable for applications which are highly time-sensitive,
  722.    such as interactive conferencing tools.
  723.  
  724. 10. Evaluation Criteria
  725.  
  726.    The basic requirement placed on an implementation of controlled-load
  727.    service is that, under all conditions, it provide accepted data flows
  728.    with service closely similar to the service that same flow would
  729.    receive using best-effort service under unloaded conditions.
  730.  
  731.    This suggests a simple two-step evaluation strategy. Step one is to
  732.    compare the service given best-effort traffic and controlled-load
  733.    traffic under underloaded conditions.
  734.  
  735.      - Measure the packet loss rate and delay characteristics of a test
  736.      flow using best-effort service and with no load on the network
  737.      element.
  738.  
  739.      - Compare those measurements with measurements of the same flow
  740.      receiving controlled-load service with no load on the network
  741.      element.
  742.  
  743.      Closer measurements indicate higher evaluation ratings. A
  744.      substantial difference in the delay characteristics, such as the
  745.      smoothing which would be seen in an implementation which scheduled
  746.      the controlled-load flow using a fixed, constant-bitrate algorithm,
  747.      should result in a somewhat lower rating.
  748.  
  749.    Step two is to observe the change in service received by a
  750.    controlled-load flow as the load increases.
  751.  
  752.      - Increase the background traffic load on the network element,
  753.      while continuing to measuring the loss and delay characteristics of
  754.      the controlled-load flow. Characteristics which remain essentially
  755.      constant as the element is driven into overload indicate a high
  756.      evaluation rating. Minor changes in the delay distribution indicate
  757.      a somewhat lower rating. Significant increases in delay or loss
  758.      indicate a poor evaluation rating.
  759.  
  760.    This simple model is not adequate to fully evaluate the performance
  761.    of controlled-load service. Three additional variables affect the
  762.    evaluation. The first is the short-term burstiness of the traffic
  763.    stream used to perform the tests outlined above. The second is the
  764.  
  765.  
  766.  
  767. J. Wroclawski                 Expires 5/97                     [Page 14]
  768. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  769.  
  770.  
  771.    degree of long-term change in the controlled-load traffic within the
  772.    bounds of its TSpec.  (Changes in this characteristic will have great
  773.    effect on the effectiveness of certain admission control algorithms.)
  774.    The third is the ratio of controlled-load traffic to other traffic at
  775.    the network element (either best effort or other controlled
  776.    services).
  777.  
  778.    The third variable should be specifically evaluated using the
  779.    following procedure.
  780.  
  781.      With no controlled-load flows in place, overload the network
  782.      element with best-effort traffic (as indicated by substantial
  783.      packet loss and queueing delay).
  784.  
  785.      Execute requests for controlled-load service giving TSpecs with
  786.      increasingly large rate and burst parameters. If the request is
  787.      accepted, verify that traffic matching the TSpec is in fact handled
  788.      with characteristics closely approximating the unloaded
  789.      measurements taken above.
  790.  
  791.      Repeat these experiments to determine the range of traffic
  792.      parameter (rate, burst size) values successfully handled by the
  793.      network element. The useful range of each parameter must be
  794.      determined for several settings of the other parameter, to map out
  795.      a two-dimensional "region" of successfully handled TSpecs. When
  796.      compared with network elements providing similar capabilities, this
  797.      region indicates the relative ability of the elements to provide
  798.      controlled-load service under high load. A larger region indicates
  799.      a higher evaluation rating.
  800.  
  801. 11. Examples of Implementation
  802.  
  803.    One possible implementation of controlled-load service is to provide
  804.    a queueing mechanism with two priority levels; a high priority one
  805.    for controlled-load and a lower priority one for best effort service.
  806.    An admission control algorithm is used to limit the amount of traffic
  807.    placed into the high-priority queue. This algorithm may be based
  808.    either on the specified characteristics of the high-priority flows
  809.    (using information provided by the TSpecs), or on the measured
  810.    characteristics of the existing high-priority flows and the TSpec of
  811.    the new request.
  812.  
  813.    Another possible implementation of controlled-load service is based
  814.    on the existing capabilities of network elements which support
  815.    "traffic classes" based on mechanisms such as weighted fair queueing
  816.    or class-based queueing [6]. In this case, it is sufficient to map
  817.    data flows accepted for controlled-load service into an existing
  818.    traffic class with adequate capacity to avoid overload. This
  819.  
  820.  
  821.  
  822. J. Wroclawski                 Expires 5/97                     [Page 15]
  823. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  824.  
  825.  
  826.    requirement is enforced by an admission control algorithm which
  827.    considers the characteristics of the traffic class, the
  828.    characteristics of the traffic already admitted to the class, and the
  829.    TSpec of the new flow requesting service. Again, the admission
  830.    control algorithm may be based either on the TSpec-specified or the
  831.    measured characteristics of the existing traffic.
  832.  
  833.    A specific case of the above approach is to employ a scheduler which
  834.    implements weighted fair queueing or similar load-management scheme,
  835.    allocating a separate scheduling queue with correctly chosen weight
  836.    to each individual controlled-load flow.  In this circumstance, the
  837.    traffic scheduler also plays the role of the policing function, by
  838.    ensuring that nonconformant traffic arriving for one controlled-load
  839.    flow does not affect either other controlled-load flows or the best-
  840.    effort traffic. This elimination of mechanism is balanced by the
  841.    drawback that the approach does not benefit from any performance or
  842.    resource usage gain arising from statistical aggregation of several
  843.    flows into a single queueing class.
  844.  
  845.    Admission control algorithms based on specified characteristics are
  846.    likely be appropriate when the number of flows in the high-priority
  847.    class is small, or the traffic characteristics of the flows appear
  848.    highly variable. In these situations the measured behavior of the
  849.    aggregate controlled-load traffic stream may not serve as an
  850.    effective predictor of future traffic, leading a measurement-based
  851.    admission control algorithm to produce incorrect results. Conversely,
  852.    in situations where the past behavior of the aggregate controlled-
  853.    load traffic *is* a good predictor of future behavior, a measurement-
  854.    based admission control algorithm may allow more traffic to be
  855.    admitted to the controlled-load service class with no degradation in
  856.    performance. An implementation may choose to switch between these two
  857.    approaches depending on the nature of the traffic stream at a given
  858.    time.
  859.  
  860.    A variety of techniques may be used to provide the desired isolation
  861.    between excess (nonconformant) controlled-load traffic and other
  862.    best-effort traffic. Use of a low priority queue for nonconformant
  863.    controlled-load traffic is simple, but other approaches may provide
  864.    superior service or fit better into existing architectures.  Variants
  865.    of fair queueing or weighted fair queueing may be used to allocate a
  866.    percentage of the available resources to different best-effort
  867.    traffic classes. One approach would be to allocate each controlled-
  868.    load flow a a 1/N "fair share" percentage of the available best-
  869.    effort bandwidth for its excess traffic. An alternate approach would
  870.    be to provide a single WFQ resource class for all excess controlled-
  871.    load traffic.  Finally, alternate mechanisms such as RED [xxx] may be
  872.    used to provide the same overall function.
  873.  
  874.  
  875.  
  876.  
  877. J. Wroclawski                 Expires 5/97                     [Page 16]
  878. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  879.  
  880.  
  881. 12. Examples of Use
  882.  
  883.    The controlled-load service may be used by any application which can
  884.    make use of best-effort service, but is best suited to those
  885.    applications which can usefully characterize their traffic
  886.    requirements.  Applications based on the transport of "continuous
  887.    media" data, such as digitized audio or video, are an important
  888.    example of this class.
  889.  
  890.    The controlled-load service is not isochronous and does not provide
  891.    any explicit information about transmission delay. For this reason,
  892.    applications with end-to-end timing requirements, including the
  893.    continuous-media class mentioned above, provide an application-
  894.    specific timing recovery mechanism, similar or identical to the
  895.    mechanisms required when these applications use best-effort service.
  896.    A protocol useful to applications requiring this capability is the
  897.    IETF Real-Time Transport Protocol [2].
  898.  
  899.    Load-sensitive applications may choose to request controlled-load
  900.    service whenever they are run. Alternatively, these applications may
  901.    monitor their own performance and request controlled-load service
  902.    from the network only when best-effort service is not providing
  903.    acceptable performance. The first strategy provides higher assurance
  904.    that the level of quality delivered to the user will not change over
  905.    the lifetime of an application session. The second strategy provides
  906.    greated flexibility and offers cost savings in environments where
  907.    levels of service above best-effort incur a charge.
  908.  
  909. 13. Security Considerations
  910.  
  911.    Security considerations are not discussed in this memo.
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932. J. Wroclawski                 Expires 5/97                     [Page 17]
  933. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  934.  
  935.  
  936. Appendix 1: Use of the Controlled-Load service with RSVP
  937.  
  938.    The use of Controlled-Load service in conjunction with the RSVP
  939.    resource reservation setup protocol is specified in reference [4].
  940.    This document gives the format of RSVP FLOWSPEC, SENDER_TSPEC, and
  941.    ADSPEC objects needed to support applications desiring Controlled-
  942.    Load service and gives information about how RSVP processes those
  943.    objects. The RSVP protocol itself is specified in Reference [3].
  944.  
  945. References
  946.  
  947.    [1] S. Shenker and J. Wroclawski. "Network Element QoS Control
  948.    Service Specification Template". Internet Draft, July 1996, <draft-
  949.    ietf-intserv-svc-template-03.txt>
  950.  
  951.    [2] H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson.  "RTP:
  952.    A Transport Protocol for Real-Time Applications", Internet Draft,
  953.    March 1995, <draft-ietf-avt-svc-rtp-07.txt>
  954.  
  955.    [3] B. Braden, et. al. "Resource Reservation Protocol (RSVP) -
  956.    Version 1 Functional Specification", Internet Draft, October 1996,
  957.    <draft-ietf-rsvp-spec-14.txt>
  958.  
  959.    [4] J. Wroclawski. "The use of RSVP with IETF Integrated Services",
  960.    Internet Draft, October 1996, <draft-ietf-intserv-rsvp-use-01.txt>
  961.  
  962.    [5] S. Shenker and J. Wroclawski. "General Characterization
  963.    Parameters for Integrated Service Network Elements", Internet Draft,
  964.    September 1996, <draft-ietf-intserv-charac-02.txt>
  965.  
  966.    [6] S. Floyd, and V. Jacobson.  "Link-sharing and Resource Management
  967.    Models for Packet Networks," IEEE/ACM Transactions on Networking,
  968.    Vol. 3 No. 4, pp. 365-386, August 1995.
  969.  
  970.    [7] A. K. J. Parekh. "A Generalized Processor Sharing Approach to
  971.    Flow Control in Integrated Service Networks". MIT Laboratory for
  972.    Information and Decision Systems, Report LIDS-TH-2089, February 1992
  973.  
  974. Authors' Address:
  975.  
  976.    John Wroclawski
  977.    MIT Laboratory for Computer Science
  978.    545 Technology Sq.
  979.    Cambridge, MA  02139
  980.    jtw@lcs.mit.edu
  981.    617-253-7885
  982.    617-253-2673 (FAX)
  983.  
  984.  
  985.  
  986.  
  987. J. Wroclawski                 Expires 5/97                     [Page 18]
  988. INTERNET-DRAFT   draft-ietf-intserv-ctrl-load-svc-04.txt  November, 1996
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.  
  1041.  
  1042. J. Wroclawski                 Expires 5/97                     [Page 19]
  1043.