RFC 2211 PROPOSED STANDARD QOS · INTEGRATED SERVICES · ADMISSION CONTROL

Controlled-Load Service: Specification of the Controlled-Load Network Element Service

What a router must do to give a flow the experience of a lightly loaded network, even when the network is busy.

On rfc-editor.org ↗
PUBLISHED
September 1997
AUTHORS
J. Wroclawski
STREAM
IETF
SERVICE NAME
5
TOKEN_BUCKET_TSPEC PARAMETER
General parameter number 127
BUCKET RATE RANGE
1 byte per second to 40 terabytes per second
BUCKET DEPTH RANGE
1 byte to 250 gigabytes
CONFORMANCE BOUND
Data sent must not exceed rT+b over any period T
BURST TIME
Time to transmit the maximum size data burst at the requested rate
DOI
10.17487/RFC2211

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                      J. Wroclawski
Request For Comments: 2211                                       MIT LCS
Category: Standards Track                                 September 1997



      Specification of the Controlled-Load Network Element Service


Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Abstract

   This memo specifies the network element behavior required to deliver
   Controlled-Load service in the Internet.  Controlled-load service
   provides the client data flow with a quality of service closely
   approximating the QoS that same flow would receive from an unloaded
   network element, but uses capacity (admission) control to assure that
   this service is received even when the network element is overloaded.

1. Introduction

   This document defines the requirements for network elements that
   support the Controlled-Load service.  This memo is one of a series of
   documents that specify the network element behavior required to
   support various qualities of service in IP internetworks.  Services
   described in these documents are useful both in the global Internet
   and private IP networks.

   This document is based on the service specification template given in
   [1]. Please refer to that document for definitions and additional
   information about the specification of qualities of service within
   the IP protocol family.

2. End-to-End Behavior

   The end-to-end behavior provided to an application by a series of
   network elements providing controlled-load service tightly
   approximates the behavior visible to applications receiving best-
   effort service *under unloaded conditions* from the same series of
   network elements.  Assuming the network is functioning correctly,
   these applications may assume that:

     - A very high percentage of transmitted packets will be
     successfully delivered by the network to the receiving end-nodes.
     (The percentage of packets not successfully delivered must closely
     approximate the basic packet error rate of the transmission
     medium).

     - The transit delay experienced by a very high percentage of the
     delivered packets will not greatly exceed the minimum transmit
     delay experienced by any successfully delivered packet. (This
     minimum transit delay includes speed-of-light delay plus the fixed
     processing time in routers and other communications devices along
     the path.)

   To ensure that these conditions are met, clients requesting
   controlled-load service provide the intermediate network elements
   with a estimation of the data traffic they will generate; the TSpec.
   In return, the service ensures that network element resources
   adequate to process traffic falling within this descriptive envelope
   will be available to the client. Should the client's traffic
   generation properties fall outside of the region described by the
   TSpec parameters, the QoS provided to the client may exhibit
   characteristics indicative of overload, including large numbers of
   delayed or dropped packets. The service definition does not require
   that the precise characteristics of this overload behavior match
   those which would be received by a best-effort data flow traversing
   the same path under overloaded conditions.

      NOTE: In this memo, the term "unloaded" is used in the sense of
      "not heavily loaded or congested" rather than in the sense of "no
      other network traffic whatsoever".

3. Motivation

   The controlled load service is intended to support a broad class of
   applications which have been developed for use in today's Internet,
   but are highly sensitive to overloaded conditions.  Important members
   of this class are the "adaptive real-time applications" currently
   offered by a number of vendors and researchers. These applications
   have been shown to work well on unloaded nets, but to degrade quickly
   under overloaded conditions. A service which mimics unloaded nets
   serves these applications well.

   The controlled-load service is intentionally minimal, in that there
   are no optional functions or capabilities in the specification. The
   service offers only a single function, and system and application
   designers can assume that all implementations will be identical in
   this respect.

   Internally, the controlled-load service is suited to a wide range of
   implementation techniques, including evolving scheduling and
   admission control algorithms that allow implementations to be highly
   efficient in the use of network resources. It is equally amenable to
   extremely simple implementation in circumstances where maximum
   utilization of network resources is not the only concern.

4. Network Element Data Handling Requirements

   Each network element accepting a request for controlled-load service
   must ensure that adequate bandwidth and packet processing resources
   are available to handle the requested level of traffic, as given by
   the requestor's TSpec. This must be accomplished through active
   admission control. All resources important to the operation of the
   network element must be considered when admitting a request. Common
   examples of such resources include link bandwidth, router or switch
   port buffer space, and computational capacity of the packet
   forwarding engine.

   The controlled-load service does not accept or make use of specific
   target values for control parameters such as delay or loss. Instead,
   acceptance of a request for controlled-load service is defined to
   imply a commitment by the network element to provide the requestor
   with service closely equivalent to that provided to uncontrolled
   (best-effort) traffic under lightly loaded conditions.

   The definition of "closely equivalent to unloaded best-effort
   service" is necessarily imprecise. It is easiest to define this
   quality of service by describing the events which are expected to
   *not* occur with any frequency. A flow receiving controlled-load
   service at a network element may expect to experience:

     - Little or no average packet queueing delay over all timescales
     significantly larger than the "burst time". The burst time is
     defined as the time required for the flow's maximum size data burst
     to be transmitted at the flow's requested transmission rate, where
     the burst size and rate are given by the flow's TSpec, as described
     below.

     - Little or no congestion loss over all timescales significantly
     larger than the "burst time" defined above.  In this context,
     congestion loss includes packet losses due to shortage of any
     required processing resource, such as buffer space or link
     bandwidth.  Although occasional congestion losses may occur, any
     substantial sustained loss represents a failure of the admission
     control algorithm.

   The basic effect of this language is to establish an expectation on
   the *duration* of a disruption in delivery service. Events of shorter
   duration are viewed as statistical effects which may occur in normal
   operation. Events of longer duration are indicative of failure to
   allocate adequate capacity to the controlled-load flow.

   A network element may employ statistical approaches to decide whether
   adequate capacity is available to accept a service request. For
   example, a network element processing a number of flows with long-
   term characteristics predicted through measurement of past behavior
   may be able to overallocate its resources to some extent without
   reducing the level of service delivered to the flows.

   A network element may employ any appropriate scheduling means to
   ensure that admitted flows receive appropriate service.

      NOTE: The flexibility implied by the above paragraph exists within
      definite limits. Readers should observe that the specification's
      requirement that the delay and loss behavior described above
      imposes concrete requirements on implementations.

      Perhaps the most important requirement is that the implementation
      has to make bandwidth greater than the Tspec token rate available
      to the flow in certain situations. The requirement for the
      availability of extra bandwidth may be derived from the fluid
      model of traffic scheduling (e.g. [7]). If a flow receives exactly
      its promised token rate at all times, queueing caused by an over-
      rate burst arriving at the network element may never clear,
      causing the traffic queueing delay to permanantly increase. This
      will happen if the flow continues to generate traffic at exactly
      the token rate after emitting the burst.

      To control the long-term effects of traffic bursts, a Controlled
      Load implementation has several options. At minimum, a mechanism
      must be present to "borrow" bandwidth needed to clear bursts from
      the network. There are a number of ways to implement such a
      mechanism, ranging from explicit borrowing schemes within the
      traffic scheduler to implicit schemes based on statistical
      multiplexing and measurement-based admission control. The
      specification does not prefer any method over any other, but does
      require that some such mechanism must exist.

      Similarly, the requirement for low congestion loss for in-Tspec
      traffic implies that buffer management must have some flexibility.
      Because the controlled-load service does not reshape traffic to
      its token-bucket parameters at every node, traffic flowing through
      the network will be distorted as it traverses queueing points.
      This distortion is particularly likely to occur during traffic
      bursts, precisely when buffering is most heavily used. In these
      circumstances, rigidly restricting the buffering capacity to a
      size equal to the flow's TSpec burst size may lead to congestion
      loss. An implementaton should be prepared to make additional
      buffering available to bursting flows. Again, this may be
      accomplished in a number of ways. One obvious choice is
      statistical multiplexing of a shared buffer pool.

   Links are not permitted to fragment packets which receive the
   controlled-load service. Packets larger than the MTU of the link must
   be treated as nonconformant to the TSpec. This implies that they will
   be forwarded according to the rules described in the Policing section
   below.

   Implementations of controlled-load service are not required to
   provide any control of short-term packet delay jitter beyond that
   described above. However, the use of packet scheduling algorithms
   that provide additional jitter control is not prohibited by this
   specification.

   Packet losses due to non-congestion-related causes, such as link
   errors, are not bounded by this service.

5. Invocation Information

   The controlled-load service is invoked by specifying the data flow's
   desired traffic parameters (TSpec) to the network element. Requests
   placed for a new flow will be accepted if the network element has the
   capacity to forward the flow's packets as described above. Requests
   to change the TSpec for an existing flow should be treated as a new
   invocation, in the sense that admission control must be reapplied to
   the flow. Requests that reduce the TSpec for an existing flow (in the
   sense that the new TSpec is strictly smaller than the old TSpec
   according to the ordering rules given below) should never be denied
   service.

   The Controlled-Load service uses the TOKEN_BUCKET_TSPEC defined in
   Reference [5] to describe a data flow's traffic parameters. This
   TSpec takes the form of a token bucket specification plus a peak rate
   (p), a minimum policed unit (m) and a maximum packet size (M).

   The token bucket specification includes a bucket rate r and a bucket
   depth, b.  Both r and b must be positive.  The rate, r, is measured
   in bytes of IP datagrams per second. Values of this parameter may
   range from 1 byte per second to 40 terabytes per second. Network
   elements MUST return an error for requests containing values outside
   this range. Network elements MUST return an error for any request
   containing a value within this range which cannot be supported by the
   element. In practice, only the first few digits of the r parameter
   are significant, so the use of floating point representations,
   accurate to at least 0.1% is encouraged.

   The bucket depth, b, is measured in bytes. Values of this parameter
   may range from 1 byte to 250 gigabytes. Network elements MUST return
   an error for requests containing values outside this range. Network
   elements MUST return an error for any request containing a value
   within this range which cannot be supported by the element. In
   practice, only the first few digits of the b parameter are
   significant, so the use of floating point representations, accurate
   to at least 0.1% is encouraged.

   The range of values allowed for these parameters is intentionally
   large to allow for future network technologies. Any given network
   element is not expected to support the full range of values.

   The peak rate, p, is measured in bytes of IP datagrams per second and
   has the same range and suggested representation as the bucket rate.
   The peak rate parameter exists in this version of the specification
   primarily for TSpec compatability with other QoS control services and
   the shared TOKEN_BUCKET_TSPEC parameter. While some admission control
   and buffer allocation algorithms may find the peak rate value useful,
   the field may always be ignored by a Controlled-Load service
   conforming to this version of the specification. That is, the service
   module at a network element may always assume that the peak data rate
   arriving at that element is the line rate of the incoming interface,
   and the service's evaluation criteria do not require a network
   element to consider the peak rate value. More explicit use of the
   peak-rate parameter by a Controlled-Load service module may be added
   to the specification in the future.

   The minimum policed unit, m, is an integer measured in bytes.  All IP
   datagrams less than size m will be counted against the token bucket
   as being of size m. The maximum packet size, M, is the biggest packet
   that will conform to the traffic specification; it is also measured
   in bytes.  Network elements MUST reject a service request if the
   requested maximum packet size is larger than the MTU of the link.
   Both m and M must be positive, and m must be less then or equal to M.

   The preferred concrete representation for the TSpec is three floating
   point numbers in single-precision IEEE floating point format followed
   by two 32-bit integers in network byte order.  The first value is the
   rate (r), the second value is the bucket size (b), the third is the
   peak rate (p), the fourth is the minimum policed unit (m), and the
   fifth is the maximum packet size (M). For the parameters (r) and (b),
   only bit-patterns which represent valid non-negative floating point
   numbers are allowed. Negative numbers (including "negative zero),
   infinities, and NAN's are not allowed.  For the parameter (p) only
   bit-patterns which represent valid non-negative floating point
   numbers or positive infinity are allowed. Positive infinity is
   represented with an exponent of all ones (255) and a sign bit and
   mantissa of all zeroes. Negative numbers (including "negative zero"),
   negative infinity, and NAN's are not allowed.

      NOTE: An implementation which utilizes general-purpose hardware or
      software IEEE floating-point support may wish to verify that
      arriving parameters meet this requirement before using the
      parameters in floating-point computations, in order to avoid
      unexpected exceptions or traps.

   The controlled-load service is assigned service_name 5.

   The TOKEN_BUCKET_TSPEC parameter used by the Controlled-Load service
   is general parameter number 127, as indicated in [5].

6. Exported Information

   The controlled-load service has no required characterization
   parameters. Individual implementations may export appropriate
   implementation-specific measurement and monitoring information.

7. Policing

   The controlled-load service is provided to a flow on the basis that
   the flow's traffic conforms to a TSpec given at flow setup time. This
   section defines the meaning of conformance to the controlled-load
   TSpec, describes the circumstances under which a controlled-load
   flow's traffic might *not* conform to the TSpec, and specifies the
   network element's action in those circumstances.

   Controlled-load service modules provide QoS control for traffic
   conforming to the TSpec given at setup time.  The TSpec's token
   bucket parameters require that traffic must obey the rule that over
   all time periods, the amount of data sent does not exceed rT+b, where
   r and b are the token bucket parameters and T is the length of the
   time period.  For the purposes of this accounting, links must count
   packets that are smaller than the minimal policing unit m to be of
   size m.  Packets that arrive at an element and cause a violation of
   the the rT+b bound are considered nonconformant.

   Additionally, packets bigger than the outgoing link MTU are
   considered nonconformant.  It is expected that this situation will
   not arise with any frequency, because flow setup mechanisms are
   expected to notify the sending application of the appropriate path
   MTU.

   In the presence of nonconformant packets arriving for one or more
   controlled-load flows, each network element must ensure locally that
   the following requirements are met:

     1) The network element MUST continue to provide the contracted
     quality of service to those controlled-load flows not experiencing
     excess traffic.

     2) The network element SHOULD prevent excess controlled-load
     traffic from unfairly impacting the handling of arriving best-
     effort traffic.  This requirement is discussed further in Section 9
     of this document (Guidelines for Implementors).

     3) Consistent with points 1 and 2, the network element MUST attempt
     to forward the excess traffic on a best-effort basis if sufficient
     resources are available.

   Network elements must not assume that that arrival of nonconformant
   traffic for a specific controlled-load flow will be unusual, or
   indicative of error.  In certain circumstances (particularly, routers
   acting as the "split points" of a multicast distribution tree
   supporting a shared reservation) large numbers of packets will fail
   the conformance test *as a matter of normal operation*.

   Network elements must not assume that data sources or upstream
   elements have taken action to "police" controlled-load flows by
   limiting their traffic to conform to the flow's TSpec.  Each network
   element providing controlled-load service MUST independently ensure
   that the requirements given above are met in the presence of
   nonconformant arriving traffic for one or more controlled-load flows.

   Network elements may use any appropriate implementation mechanism to
   meet the requirements given above.  Examples of such mechanisms
   include token-bucket policing filters and per-flow scheduling
   algorithms.  However, it is insufficient to simply place all
   controlled-load flows into the same shared resource pool, without
   first ensuring that non-conformant flows are prevented from starving
   conformant flows of the necessary processing resources.

   Further discussion of this issue may be found in Section 11 of this
   note.

   Beyond requirements 2 and 3 above, the controlled-load service does
   not define the QoS behavior delivered to flows with non-conformant
   arriving traffic.  Specifically, it is permissible either to degrade
   the service delivered to all of the flow's packets equally, or to
   sort the flow's packets into a conformant set and a nonconformant set
   and deliver different levels of service to the two sets. This point
   is discussed further in Section 9 of this note.

   When resources are available, network elements at points within the
   interior of the network SHOULD be prepared to accommodate packet
   bursts somewhat larger than the actual TSpec. This requirement
   derives from the traffic distortion effect described in Section 4. As
   described there, it may be met either through explicit means or
   statistical multiplexing of shared buffering resources.

   When handling such traffic, it is permissible to allow some delaying
   of a packet if that delay would allow it to pass the policing
   function.  (In other words, to reshape the traffic).  However, the
   overall requirement for limiting the duration of any such traffic
   distortion must be considered. The challenge is to define a viable
   reshaping function.

   Intuitively, a plausible approach is to allow a delay of (roughly) up
   to the maximum queueing delay experienced by completely conforming
   packets before declaring that a packet has failed to pass the
   policing function. The merit of this approach, and the precise
   wording of the specification that describes it, require further
   study.

8. Ordering and Merging

   The controlled-load service TSpec is ordered according to the
   following rule: TSpec A is a substitute for ("as good or better than"
   or "greater than or equal to") TSpec B if and only if:

     (1) the token bucket rate r for TSpec A is greater than or equal to
     that of TSpec B,

     (2) the token bucket depth b for TSpec A is greater than or equal
     to that of TSpec B,

     (3) the peak rate p for TSpec A is greater than or equal to that of
     TSpec B,

     (4) the minimum policed unit m for TSpec A is less than or equal to
     that of TSpec B,

     (5) the maximum packet size M of TSpec A is greater than or equal
     to that of TSpec B.

   Note that not all TSpecs can be ordered with respect to each other.
   If two TSpecs differ but not all five of the points above are true,
   then the TSpecs are unordered.

   A merged TSpec is the TSpec used by the RSVP protocol when merging a
   set of TSpecs to create a "merged" reservation. TSpec merging is
   described further in [4] and [3]. The TSpec merge operation addresses
   two requirements:

     - The "merged" TSpec parameters are used as the traffic flow's
     TSpec at the local node.

     - The merged parameters are passed upstream to traffic source(s) to
     describe characteristics of the actually installed reservation
     along the data path.

   For the controlled-load service, a merged TSpec may be calculated
   over a set of TSpecs by taking:

     (1) the largest token bucket rate r;

     (2) the largest token bucket size b;

     (3) the largest peak rate p;

     (4) the smallest minimal policed unit m;

     (5) the *smallest* maximum packet size M;

   across all members of the set.

   A Least Common TSpec is a TSpec adequate to describe the traffic from
   any one of a number of traffic flows. The least common TSpec may be
   useful when creating a shared reservation for a number of flows using
   SNMP or another management protocol. This differs from the merged
   TSpec described above in that the computed parameters are not passed
   upstream to the sources of traffic.

   For the controlled-load service, the Least Common TSpec may be
   calculated over a set of TSpecs by taking:

     (1) the largest token bucket rate r;

     (2) the largest token bucket size b;

     (3) the largest peak rate p;

     (4) the smallest minimal policed unit m;

     (5) the largest maximum packet size M;

   across all members of the set.

   The sum of n controlled-load service TSpecs is used when computing
   the TSpec for a shared reservation of n flows. It is computed by
   taking:

     - The sum across all TSpecs of the token bucket rate parameter r.

     - The sum across all TSpecs of the token bucket size parameter b.

     - The sum across all TSpecs of the peak rate parameter p.

     - The minimum across all TSpecs of the minimum policed unit
       parameter m.

     - The maximum across all TSpecs of the maximum packet size
       parameter M.

   The minimum of two TSpecs differs according to whether the TSpecs can
   be ordered according to the "greater than or equal to" rule above.
   If one TSpec is less than the other TSpec, the smaller TSpec is the
   minimum.  For unordered TSpecs, a different rule is used.  The
   minimum of two unordered TSpecs is determined by comparing the
   respective values in the two TSpecs and choosing:

     (1) the smaller token bucket rate r;

     (2) the *larger* token bucket size b;

     (3) the smaller peak rate p;

     (4) the *smaller* minimum policed unit m;

     (5) the smaller maximum packet size M;

9. Guidelines for Implementors

   REQUIREMENTS PLACED ON ADMISSION CONTROL ALGORITHM: The intention of
   this service specification is that network elements deliver a level
   of service closely approximating best-effort service under unloaded
   conditions. As with best-effort service under these conditions, it is
   not required that every single packet must be successfully delivered
   with zero queueing delay. Network elements providing controlled-load
   service are permitted to oversubscribe the available resources to
   some extent, in the sense that the bandwidth and buffer requirements
   indicated by summing the TSpec token buckets of all controlled-load
   flows may exceed the maximum capabilities of the network element.
   However, this oversubscription may only be done in cases where the
   element is quite sure that actual utilization is less than the sum of
   the token buckets would suggest, so that the implementor's
   performance goals will be met. This information may come from
   measurement of the aggregate traffic flow, specific knowledge of
   application traffic statistics, or other means. The most conservative
   approach, rejection of new flows whenever the addition of their
   traffic would cause the strict sum of the token buckets to exceed the
   capacity of the network element (including consideration of resources
   needed to maintain the delay and loss characteristics specified by
   the service) may be appropriate in other circumstances.

   Specific issues related to this subject are discussed in the
   "Evaluation Criteria" and "Examples of Implementation" sections
   below.

   INTERACTION WITH BEST-EFFORT TRAFFIC: Implementors of this service
   should clearly understand that in certain circumstances (routers
   acting as the "split points" of a multicast distribution tree
   supporting a shared reservation) large numbers of a flow's packets
   may fail the TSpec conformance test *as a matter of normal
   operation*.  According to the requirements of Section 7, these
   packets should be forwarded on a best-effort basis if resources
   permit.

   If the network element's best-effort queueing algorithm does not
   distinguish between these packets and elastic best-effort traffic
   such as TCP flows, THE EXCESS CONTROLLED-LOAD PACKETS WILL "BACK OFF"
   THE ELASTIC TRAFFIC AND DOMINATE THE BEST-EFFORT BANDWIDTH USAGE. The
   integrated services framework does not currently address this issue.
   However, several possible solutions to the problem are known [RED,
   xFQ].  Network elements supporting the controlled load service should
   implement some mechanism in their best-effort queueing path to
   discriminate between classes of best-effort traffic and provide
   elastic traffic with protection from inelastic best-effort flows.

   Two basic approaches are available to meet this requirement. The
   network element can maintain separate resource allocations for
   different classes of best-effort traffic, so that no one class will
   excessively dominate the loaded best-effort mix. Alternatively, an
   element can process excess controlled-load traffic at somewhat lower
   priority than elastic best-effort traffic, so as to completely avoid
   the back-off effect discussed above.

   If most or all controlled-load traffic arises from non-rate-adaptive
   real-time applications, the use of priority mechanisms might be
   desirable. If most controlled-load traffic arises from rate-adaptive
   realtime or elastic applications attempting to establish a bounded
   minimum level of service, the use of separate resource classes might
   be preferable. However, this is not a firm guideline. In practice,
   the network element designer's choice of mechanism will depend
   heavily on both the goals of the design and the implementation
   techniques appropriate for the designer's platform. This version of
   the service specification does not specify one or the other behavior,
   but leaves the choice to the implementor.

   FORWARDING BEHAVIOR IN PRESENCE OF NONCONFORMANT TRAFFIC: As
   indicated in Section 7, the controlled-load service does not define
   the QoS behavior delivered to flows with non-conformant arriving
   traffic.  It is permissible either to degrade the service delivered
   to all of the flow's packets equally, or to sort the flow's packets
   into a conformant set and a nonconformant set and deliver different
   levels of service to the two sets.

   In the first case, expected queueing delay and packet loss
   probability will rise for all packets in the flow, but packet
   delivery reordering will, in general, remain at low levels. This
   behavior is preferable for those applications or transport protocols
   which are sensitive to excessive packet reordering. A possible
   example is an unmodified TCP connection, which would see reordering
   as lost packets, triggering duplicate acks and hence excessive
   retransmissions.

   In the second case, some subset of the flow's packets will be
   delivered with low loss and delay, while some other subset will be
   delivered with higher loss and potentially higher delay. The delayed
   packets will appear to the receiver to have been reordered in the
   network, while the non-delayed packets will, on average, arrive in a
   more timely fashion than if all packets were treated equally. This
   might be preferable for applications which are highly time-sensitive,
   such as interactive conferencing tools.

10. Evaluation Criteria

   The basic requirement placed on an implementation of controlled-load
   service is that, under all conditions, it provide accepted data flows
   with service closely similar to the service that same flow would
   receive using best-effort service under unloaded conditions.

   This suggests a simple two-step evaluation strategy. Step one is to
   compare the service given best-effort traffic and controlled-load
   traffic under underloaded conditions.

     - Measure the packet loss rate and delay characteristics of a test
     flow using best-effort service and with no load on the network
     element.

     - Compare those measurements with measurements of the same flow
     receiving controlled-load service with no load on the network
     element.

     Closer measurements indicate higher evaluation ratings. A
     substantial difference in the delay characteristics, such as the
     smoothing which would be seen in an implementation which scheduled
     the controlled-load flow using a fixed, constant-bitrate algorithm,
     should result in a somewhat lower rating.

   Step two is to observe the change in service received by a
   controlled-load flow as the load increases.

     - Increase the background traffic load on the network element,
     while continuing to measuring the loss and delay characteristics of
     the controlled-load flow. Characteristics which remain essentially
     constant as the element is driven into overload indicate a high
     evaluation rating. Minor changes in the delay distribution indicate
     a somewhat lower rating. Significant increases in delay or loss
     indicate a poor evaluation rating.

   This simple model is not adequate to fully evaluate the performance
   of controlled-load service. Three additional variables affect the
   evaluation. The first is the short-term burstiness of the traffic
   stream used to perform the tests outlined above. The second is the
   degree of long-term change in the controlled-load traffic within the
   bounds of its TSpec.  (Changes in this characteristic will have great
   effect on the effectiveness of certain admission control algorithms.)
   The third is the ratio of controlled-load traffic to other traffic at
   the network element (either best effort or other controlled
   services).

   The third variable should be specifically evaluated using the
   following procedure.

     With no controlled-load flows in place, overload the network
     element with best-effort traffic (as indicated by substantial
     packet loss and queueing delay).

     Execute requests for controlled-load service giving TSpecs with
     increasingly large rate and burst parameters. If the request is
     accepted, verify that traffic matching the TSpec is in fact handled
     with characteristics closely approximating the unloaded
     measurements taken above.

     Repeat these experiments to determine the range of traffic
     parameter (rate, burst size) values successfully handled by the
     network element. The useful range of each parameter must be
     determined for several settings of the other parameter, to map out
     a two-dimensional "region" of successfully handled TSpecs. When
     compared with network elements providing similar capabilities, this
     region indicates the relative ability of the elements to provide
     controlled-load service under high load. A larger region indicates
     a higher evaluation rating.

11. Examples of Implementation

   One possible implementation of controlled-load service is to provide
   a queueing mechanism with two priority levels; a high priority one
   for controlled-load and a lower priority one for best effort service.
   An admission control algorithm is used to limit the amount of traffic
   placed into the high-priority queue. This algorithm may be based
   either on the specified characteristics of the high-priority flows
   (using information provided by the TSpecs), or on the measured
   characteristics of the existing high-priority flows and the TSpec of
   the new request.

   Another possible implementation of controlled-load service is based
   on the existing capabilities of network elements which support
   "traffic classes" based on mechanisms such as weighted fair queueing
   or class-based queueing [6]. In this case, it is sufficient to map
   data flows accepted for controlled-load service into an existing
   traffic class with adequate capacity to avoid overload. This

   requirement is enforced by an admission control algorithm which
   considers the characteristics of the traffic class, the
   characteristics of the traffic already admitted to the class, and the
   TSpec of the new flow requesting service. Again, the admission
   control algorithm may be based either on the TSpec-specified or the
   measured characteristics of the existing traffic.

   A specific case of the above approach is to employ a scheduler which
   implements weighted fair queueing or similar load-management scheme,
   allocating a separate scheduling queue with correctly chosen weight
   to each individual controlled-load flow.  In this circumstance, the
   traffic scheduler also plays the role of the policing function, by
   ensuring that nonconformant traffic arriving for one controlled-load
   flow does not affect either other controlled-load flows or the best-
   effort traffic. This elimination of mechanism is balanced by the
   drawback that the approach does not benefit from any performance or
   resource usage gain arising from statistical aggregation of several
   flows into a single queueing class.

   Admission control algorithms based on specified characteristics are
   likely be appropriate when the number of flows in the high-priority
   class is small, or the traffic characteristics of the flows appear
   highly variable. In these situations the measured behavior of the
   aggregate controlled-load traffic stream may not serve as an
   effective predictor of future traffic, leading a measurement-based
   admission control algorithm to produce incorrect results. Conversely,
   in situations where the past behavior of the aggregate controlled-
   load traffic *is* a good predictor of future behavior, a measurement-
   based admission control algorithm may allow more traffic to be
   admitted to the controlled-load service class with no degradation in
   performance. An implementation may choose to switch between these two
   approaches depending on the nature of the traffic stream at a given
   time.

   A variety of techniques may be used to provide the desired isolation
   between excess (nonconformant) controlled-load traffic and other
   best-effort traffic. Use of a low priority queue for nonconformant
   controlled-load traffic is simple, but other approaches may provide
   superior service or fit better into existing architectures.  Variants
   of fair queueing or weighted fair queueing may be used to allocate a
   percentage of the available resources to different best-effort
   traffic classes. One approach would be to allocate each controlled-
   load flow a a 1/N "fair share" percentage of the available best-
   effort bandwidth for its excess traffic. An alternate approach would
   be to provide a single WFQ resource class for all excess controlled-
   load traffic.  Finally, alternate mechanisms such as RED [xxx] may be
   used to provide the same overall function.

12. Examples of Use

   The controlled-load service may be used by any application which can
   make use of best-effort service, but is best suited to those
   applications which can usefully characterize their traffic
   requirements.  Applications based on the transport of "continuous
   media" data, such as digitized audio or video, are an important
   example of this class.

   The controlled-load service is not isochronous and does not provide
   any explicit information about transmission delay. For this reason,
   applications with end-to-end timing requirements, including the
   continuous-media class mentioned above, provide an application-
   specific timing recovery mechanism, similar or identical to the
   mechanisms required when these applications use best-effort service.
   A protocol useful to applications requiring this capability is the
   IETF Real-Time Transport Protocol [2].

   Load-sensitive applications may choose to request controlled-load
   service whenever they are run. Alternatively, these applications may
   monitor their own performance and request controlled-load service
   from the network only when best-effort service is not providing
   acceptable performance. The first strategy provides higher assurance
   that the level of quality delivered to the user will not change over
   the lifetime of an application session. The second strategy provides
   greated flexibility and offers cost savings in environments where
   levels of service above best-effort incur a charge.

13. Security Considerations

   A network element implementing the service described here is
   intentionally and explicitly expected to give preferential treatment
   to selected packet traffic. This memo does not describe the mechanism
   used to indicate which traffic is to receive the preferential
   treatment - rather, the controlled-load service described here may be
   invoked by a number of mechanisms, including RSVP, SNMP network
   management software, or proprietary control software. However, any
   mechanism used to invoke the controlled load service must provide
   security sufficient to guard against use of this preferential
   treatment capability by undesired or unauthorized traffic.  A correct
   implementation of the controlled-load service is *not* susceptable to
   a denial-of-service attack based on maliciously requesting a very
   small resource allocation for the attacked traffic flow. This is
   because the service specification requires that traffic in excess of
   the requested level be carried on a best-effort basis, rather than
   being dropped. This requirement is discussed further in Section 7 of
   this memo.

   Of necessity, giving preferential service to certain traffic flows
   implies giving less service to other traffic flows.  Thus, it is
   possible to conduct a denial of service attack by maliciously
   reconfiguring the controlled-load "admission control algorithm" to
   allow overallocation of available bandwidth or other forwarding
   resources, starving non-controlled-load flows. In general, this is
   unlikely to increase the network's vulnerability to attack, because
   many other reconfigurations of a router or host can cause denial of
   service. It is reasonable to assume that whatever means is used to
   protect against other reconfiguration attacks will be adequate to
   protect against this one as well.

Appendix 1: Use of the Controlled-Load service with RSVP

   The use of Controlled-Load service in conjunction with the RSVP
   resource reservation setup protocol is specified in reference [4].
   This document gives the format of RSVP FLOWSPEC, SENDER_TSPEC, and
   ADSPEC objects needed to support applications desiring Controlled-
   Load service and gives information about how RSVP processes those
   objects. The RSVP protocol itself is specified in Reference [3].

References

   [1] Shenker, S., and J. Wroclawski. "Network Element Service
   Specification Template", RFC 2216, September 1997.

   [2] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson.
   "RTP: A Transport Protocol for Real-Time Applications", RFC 1889,
   January 1996.

   [3] Braden, R., Ed., et. al., "Resource Reservation Protocol (RSVP) -
   Version 1 Functional Specification", RFC 2205, September 1997.

   [4] Wroclawski, J., "The use of RSVP with IETF Integrated Services",
   RFC 2210, September 1997.

   [5] Shenker, S., and J. Wroclawski, "General Characterization
   Parameters for Integrated Service Network Elements", RFC 2215,
   September 1997.

   [6] S. Floyd, and V. Jacobson.  "Link-sharing and Resource Management
   Models for Packet Networks," IEEE/ACM Transactions on Networking,
   Vol. 3 No. 4, pp. 365-386, August 1995.

   [7] A. K. J. Parekh. "A Generalized Processor Sharing Approach to
   Flow Control in Integrated Service Networks". MIT Laboratory for
   Information and Decision Systems, Report LIDS-TH-2089, February 1992

Author's Address

   John Wroclawski
   MIT Laboratory for Computer Science
   545 Technology Sq.
   Cambridge, MA  02139

   Phone: 617-253-7885
   Fax:   617-253-2673 (FAX)
   EMail: jtw@lcs.mit.edu

ISO Plain Language

On this page
PROBLEMReal-time applications such as audio and video work well on a quiet network but fall apart quickly when the network is busy, and best-effort service gives them no protection.
MECHANISMA flow describes the traffic it will send with a TSpec, a token bucket plus a peak rate and packet size limits. Each network element uses admission control to accept only the flows it can carry, then serves accepted flows so that they behave as they would on an unloaded network.
WHY IT MATTERSThe service is intentionally minimal: one function, no optional capabilities, and no numeric delay or loss targets. Traffic that exceeds the flow's TSpec is not dropped outright but forwarded best-effort if resources allow.

§1What the Service Is

RFC 2211 defines the behavior required of network elements that support the Controlled-Load service. It is one of a series of documents that specify the network element behavior required to support various qualities of service in IP internetworks, and the services they describe are useful both in the global Internet and in private IP networks. The document is based on the service specification template given in RFC 2216.

Section 3 gives the motivation. The service is intended to support a broad class of applications developed for use in today's Internet that are highly sensitive to overloaded conditions, in particular the adaptive real-time applications that work well on unloaded networks but degrade quickly under overload. A service that mimics an unloaded network serves those applications well. The service is intentionally minimal, with no optional functions or capabilities in the specification: it offers only a single function, so system and application designers can assume that all implementations are identical in that respect.

Internally, the service suits a wide range of implementation techniques, including evolving scheduling and admission control algorithms that let an implementation use network resources efficiently. It is equally amenable to extremely simple implementation where maximum utilization of network resources is not the only concern.

This is the specification for one of the guaranteed-quality services in IP networks. It is aimed at applications such as live audio and video, which work well on a quiet network and fall apart on a busy one.

§2What an Application May Assume

WHAT A CONTROLLED-LOAD FLOW MAY EXPECT
  • DeliveryA very high percentage of transmitted packets reaches the far end.
  • DelayThe delay of delivered packets stays close to the minimum any packet sees.
  • LossLost packets stay close to the error rate of the transmission medium.
  • Outside the TSpecTraffic beyond the declared envelope may be delayed or dropped.

The end-to-end behavior provided to an application by a series of network elements providing controlled-load service tightly approximates the behavior visible to applications receiving best-effort service under unloaded conditions. Assuming the network is functioning correctly, these applications may assume that a very high percentage of transmitted packets will be successfully delivered by the network to the receiving end-nodes, with the percentage of packets not successfully delivered closely approximating the basic packet error rate of the transmission medium. They may also assume that the transit delay experienced by a very high percentage of the delivered packets will not greatly exceed the minimum transmit delay experienced by any successfully delivered packet, a figure that includes speed-of-light delay plus the fixed processing time in routers and other communications devices along the path.

To make sure those conditions are met, a client requesting controlled-load service gives the intermediate network elements an estimate of the data traffic it will generate, the TSpec. In return, the service ensures that network element resources adequate to process traffic falling within that descriptive envelope will be available to the client. If the client's traffic generation properties fall outside the region described by the TSpec parameters, the quality of service may exhibit characteristics indicative of overload, including large numbers of delayed or dropped packets. The service definition does not require that this overload behaviour match what a best-effort data flow would receive on the same path.

The RFC notes that the term "unloaded" is used in the sense of not heavily loaded or congested, rather than in the sense of no other network traffic whatsoever.

An application can expect its packets to arrive almost as quickly and as reliably as they would on an empty network. The price is that the client must first describe the traffic it intends to send.

BEST-EFFORT SERVICE AND CONTROLLED-LOAD SERVICE
AspectBest-effort serviceControlled-Load service
Under load THIS RFCQuality falls as the network fillsAccepted flows behave as they would on an unloaded network
AdmissionNo admission stepResources are reserved for the flow through admission control
Delay and loss targetsNoneNone; the promise is unloaded-like behaviour
Traffic above the requestNot applicableForwarded on a best-effort basis if resources allow

§4What the Network Element Must Do

Each network element accepting a request for controlled-load service must ensure that adequate bandwidth and packet processing resources are available to handle the requested level of traffic, as given by the requestor's TSpec. This must be accomplished through active admission control, and all resources important to the operation of the element must be considered. Common examples are link bandwidth, router or switch port buffer space, and the computational capacity of the packet forwarding engine.

The service does not accept or make use of specific target values for control parameters such as delay or loss. Instead, acceptance of a request implies a commitment by the network element to provide service closely equivalent to that provided to uncontrolled best-effort traffic under lightly loaded conditions. The RFC defines this quality of service by describing the events expected not to occur with any frequency: little or no average packet queueing delay, and little or no congestion loss, over all timescales significantly larger than the burst time. The burst time is the time required for the flow's maximum size data burst to be transmitted at the flow's requested transmission rate. Occasional congestion losses may occur, but any substantial sustained loss represents a failure of the admission control algorithm.

Two obligations follow. The implementation has to make bandwidth greater than the TSpec token rate available to the flow in certain situations, because if a flow received exactly its promised rate at all times, queueing caused by an over-rate burst might never clear and the traffic queueing delay would permanently increase. At minimum, a mechanism must be present to borrow the bandwidth needed to clear bursts, ranging from explicit borrowing schemes within the traffic scheduler to implicit schemes based on statistical multiplexing and measurement-based admission control. Buffer management must likewise have flexibility, because the service does not reshape traffic to its token-bucket parameters at every node, so traffic is distorted as it traverses queueing points, particularly during bursts; an implementation should be prepared to make additional buffering available to bursting flows, for example by statistical multiplexing of a shared buffer pool.

Links are not permitted to fragment packets that receive controlled-load service, and packets larger than the MTU of the link are treated as nonconformant to the TSpec. The service requires no control of short-term packet delay jitter beyond the description above, though the use of scheduling algorithms that add jitter control is not prohibited. Packet losses from non-congestion causes, such as link errors, are not bounded by this service.

Before accepting a flow, a router checks that it has the bandwidth and buffer space to carry it. After accepting, it must make sure the flow is not slowed down or dropped for long periods, and it must be able to lend the flow a little extra bandwidth to absorb a sudden burst.

§5Invocation Information and the TSpec

The service is invoked by specifying the desired traffic parameters of the data flow to the network element. A request for a new flow is accepted if the element has the capacity to forward the flow's packets as described. A request to change the TSpec of an existing flow is treated as a new invocation, so admission control is reapplied, while a request that reduces the TSpec, in the sense that the new TSpec is strictly smaller under the ordering rules, should never be denied service.

The service uses the TOKEN_BUCKET_TSPEC defined in RFC 2215: a token bucket specification plus a peak rate p, a minimum policed unit m and a maximum packet size M. The token bucket has a rate r and a depth b, and both must be positive. The rate is measured in bytes of IP datagrams per second and may range from 1 byte per second to 40 terabytes per second, while the depth is measured in bytes and may range from 1 byte to 250 gigabytes. The element MUST return an error for values outside those ranges, and also for any value inside the range that the element cannot support. The ranges are large on purpose, to allow for future network technologies, and no element is expected to support the full range.

The peak rate p is measured like the bucket rate and has the same range. It exists in this version mainly for TSpec compatibility with other QoS control services, and the field may always be ignored by a conforming service. The minimum policed unit m is an integer measured in bytes, and all IP datagrams smaller than m count against the token bucket as being of size m. The maximum packet size M is the biggest packet that conforms to the traffic specification. Both m and M must be positive, m must be less than or equal to M, and a service request must be rejected if the requested maximum packet size is larger than the MTU of the link.

The preferred concrete representation is three floating point numbers in single-precision IEEE format followed by two 32-bit integers in network byte order: the rate r, the bucket size b, the peak rate p, the minimum policed unit m and the maximum packet size M. Negative numbers, infinities and NANs are not allowed for r and b, and the RFC asks implementations to verify arriving parameters against these rules before using them in floating point computations. The controlled-load service is assigned service_name 5, and the TOKEN_BUCKET_TSPEC parameter used by it is general parameter number 127.

The client describes its traffic with five numbers: the average rate it will send, the size of the bucket that allows short bursts, a peak rate, the smallest packet that will be counted, and the largest packet it will send. A router that cannot meet those numbers rejects the request.

THE FIVE TSPEC PARAMETERS (RFC 2211 SECTION 5)
  • rBucket rate — Bytes of IP datagrams per second; 1 byte per second to 40 terabytes per second.
  • bBucket depth — Bytes; 1 byte to 250 gigabytes.
  • pPeak rate — Bytes per second, same range as r. A conforming service may always ignore it.
  • mMinimum policed unit — Smaller datagrams count against the bucket as if they were this size.
  • MMaximum packet size — Biggest conforming packet. A request above the link MTU must be rejected.

§7Policing and Traffic That Breaks the Rules

The service is provided to a flow on the basis that the flow's traffic conforms to the TSpec given at setup time. The token bucket parameters require that over all time periods the amount of data sent does not exceed rT+b, where r and b are the token bucket parameters and T is the length of the period. For that accounting, links must count packets smaller than the minimal policing unit m as being of size m. Packets that arrive at an element and break the rT+b bound are considered nonconformant, and so are packets bigger than the outgoing link MTU.

In the presence of nonconformant packets, each network element must ensure locally that three requirements are met: it MUST continue to provide the contracted quality of service to the controlled-load flows not experiencing excess traffic; it SHOULD prevent excess controlled-load traffic from unfairly impacting the handling of arriving best-effort traffic; and, consistent with those two, it MUST attempt to forward the excess traffic on a best-effort basis if sufficient resources are available.

Network elements must not assume that the arrival of nonconformant traffic for a controlled-load flow will be unusual or indicative of error. In certain circumstances, particularly routers acting as the split points of a multicast distribution tree supporting a shared reservation, large numbers of packets fail the conformance test as a matter of normal operation. Elements must also not assume that data sources or upstream elements have already policed controlled-load flows, so each element providing the service MUST independently meet the requirements above. Examples of suitable mechanisms include token-bucket policing filters and per-flow scheduling algorithms; placing all controlled-load flows into the same shared resource pool without first ensuring that nonconformant flows cannot starve conformant ones is insufficient.

Beyond those requirements, the service does not define the quality of service delivered to flows with nonconformant arriving traffic. It is permissible either to degrade the service delivered to all of the flow's packets equally, or to sort the flow's packets into a conformant set and a nonconformant set and deliver different levels of service to the two.

If a flow sends more than it promised, the router does not simply throw the extra packets away. It keeps serving the promised rate, and forwards the excess in the background if there is room.

§8Ordering and Merging TSpecs

One TSpec is a substitute for another, meaning as good or better than, if and only if its token bucket rate r is greater than or equal to that of the other, its bucket depth b is greater than or equal, its peak rate p is greater than or equal, its minimum policed unit m is less than or equal, and its maximum packet size M is greater than or equal. Not all TSpecs can be ordered with respect to each other: if two differ but not all five conditions hold, they are unordered.

A merged TSpec is the TSpec used by the RSVP protocol when merging a set of TSpecs to create a merged reservation. The merged parameters are used as the traffic flow's TSpec at the local node, and they are passed upstream to the traffic sources to describe the characteristics of the reservation actually installed along the data path. For controlled-load service, the merged TSpec is calculated over a set of TSpecs by taking the largest token bucket rate, the largest token bucket size, the largest peak rate, the smallest minimum policed unit and the smallest maximum packet size.

A Least Common TSpec is a TSpec adequate to describe the traffic from any one of a number of flows. It can be useful when creating a shared reservation using SNMP or another management protocol. It differs from the merged TSpec in that its computed parameters are not passed upstream to the sources of traffic. It takes the largest token bucket rate, the largest token bucket size, the largest peak rate, the smallest minimum policed unit and the largest maximum packet size.

The sum of n controlled-load service TSpecs is used when computing the TSpec for a shared reservation of n flows. It adds the token bucket rate, the token bucket size and the peak rate across all TSpecs, and takes the minimum of the minimum policed units and the maximum of the maximum packet sizes. The minimum of two TSpecs differs according to whether they can be ordered: for unordered TSpecs it takes the smaller token bucket rate, the larger token bucket size, the smaller peak rate, the smaller minimum policed unit and the smaller maximum packet size.

When several flows share one reservation, their descriptions have to be combined into one. The rules say which numbers to take from which flow, so that every router in the path makes the same choice.

§9Guidelines for Implementors

On admission control, the intention of the service is that network elements deliver a level of service closely approximating best-effort service under unloaded conditions, and it is not required that every single packet be delivered with zero queueing delay. Elements are permitted to oversubscribe resources to some extent, in the sense that the bandwidth and buffer requirements indicated by summing the TSpec token buckets of all controlled-load flows may exceed the maximum capabilities of the element. This may only be done where the element is quite sure that actual utilization is less than that sum suggests, based on measurement of aggregate traffic, knowledge of application traffic statistics or other means. The most conservative approach, rejecting new flows whenever their addition would push the strict sum of the token buckets past the element's capacity, may be appropriate in other circumstances.

On interaction with best-effort traffic, the RFC warns that if the element's best-effort queueing algorithm does not distinguish between excess controlled-load packets and elastic best-effort traffic such as TCP flows, the excess controlled-load packets will back off the elastic traffic and dominate the best-effort bandwidth usage. Two basic approaches are available: the element can maintain separate resource allocations for different classes of best-effort traffic, or it can process excess controlled-load traffic at a somewhat lower priority than elastic best-effort traffic. If most controlled-load traffic comes from non-rate-adaptive real-time applications, priority mechanisms might be desirable; if it comes from rate-adaptive or elastic applications, separate resource classes might be preferable. The choice depends on the design goals and the implementation techniques available, and the specification leaves it to the implementor.

On forwarding behavior with nonconformant traffic, degrading the service to all of the flow's packets equally keeps reordering at low levels, which suits applications and transport protocols sensitive to excessive reordering, such as an unmodified TCP connection that would see reordering as lost packets and trigger duplicate acknowledgements. Sorting the packets into a conformant and a nonconformant set delivers some packets with low loss and delay and others with higher loss and potentially higher delay, which may be preferable for highly time-sensitive applications such as interactive conferencing tools.

The RFC tells implementers how to judge the service: compare the delay and loss of a controlled flow with the same flow on an empty network, then add load and see whether those numbers stay put. It also warns that a router must not let excess controlled-load traffic squeeze out ordinary traffic such as TCP.

§13Security Considerations

A network element implementing the service described here is intentionally and explicitly expected to give preferential treatment to selected packet traffic. This memo does not describe the mechanism used to indicate which traffic is to receive that preferential treatment, because the controlled-load service may be invoked by a number of mechanisms, including RSVP, SNMP network management software, or proprietary control software. However, any mechanism used to invoke the service must provide security sufficient to guard against the use of this preferential treatment capability by undesired or unauthorized traffic.

A correct implementation of the service is not susceptible to a denial-of-service attack based on maliciously requesting a very small resource allocation for the attacked traffic flow, because the specification requires that traffic in excess of the requested level be carried on a best-effort basis rather than being dropped.

Of necessity, giving preferential service to certain traffic flows implies giving less service to other flows. It is therefore possible to conduct a denial of service attack by maliciously reconfiguring the admission control algorithm to allow overallocation of available bandwidth or other forwarding resources, starving non-controlled-load flows. In general the RFC judges this unlikely to increase the network's vulnerability to attack, because many other reconfigurations of a router or host can cause denial of service in the same way, and it is reasonable to assume that whatever protects against other reconfiguration attacks will protect against this one too.

Preferring some traffic over others is the whole point of the service, so the way the preference is requested has to be protected. Otherwise an attacker could ask for the whole link and starve everyone else.

§9References