Internet Engineering Task Force                   Integrated Services WG
INTERNET-DRAFT                              Shenker/Partridge/Wroclawski
draft-ietf-intserv-control-del-svc-01.txt                  Xerox/BBN/MIT
                                                              June, 1995
                                                       Expires: 12/25/95



          Specification of Controlled Delay Quality of Service


Status of this Memo


   This document is an Internet-Draft.  Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups.  Note that other groups may also distribute
   working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as ``work in progress.''

   To learn the current status of any Internet-Draft, please check the
   ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).

   This document is a product of the Integrated Services working group
   of the Internet Engineering Task Force.  Comments are solicited and
   should be addressed to the working group's mailing list at int-
   serv@isi.edu and/or the author(s).


Abstract


      This memo describes the network element behavior required to
      implement the Controlled Delay traffic handling service. The
      controlled delay service is designed for service-adaptive and
      delay-adaptive applications; i.e., applications that are prepared
      to dynamically adapt to changing packet transmission delays and to
      dynamically change the level of packet delivery delay control they
      request from the network when their current level of service is
      not adequate.  The controlled delay service imposes relatively
      minimal requirements on network components which implement it, and



Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 1]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


      is intended to be usable in situations ranging from small
      centrally managed private IP networks to the global Internet.


Introduction


   This memo is one of a series of documents which specify network
   element behavior in IP internetworks which provides multiple
   qualities of service to their clients. 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
   [xxx]. Please refer to that document for definitions and additional
   information about the specification of qualities of service within
   the IP protocol family.


Motivation


   Controlled delay service is designed for service-adaptive and delay-
   adaptive applications. These applications are sensitive to packet
   delivery delay, but are prepared to adapt to dynamically changing
   delays, and to change their service request at any time if the
   current level of service received from the network is not adequate.
   This flexibility allows such applications to operate successfully and
   efficiently over a wide range of network conditions.

   Many applications which transmit interactive data, such as audio and
   video conferencing sessions, are well suited to operation with the
   controlled delay service. Applications which desire proven guarantees
   on packet delivery time, such as real-time control and servoing
   systems, are generally not in this category.

   The controlled delay service does not provide any quantified level of
   assurance about packet delays.  Instead, it merely promises to avoid
   overloads by turning excess traffic away.  Criteria for determining
   when a resource is overloaded are not specified in this definition,
   but are left to the individual vendor.  Thus, while this service
   offers some control over packet delay, it does not meet the stricter
   condition of offering a guaranteed or statistical bound.

   The end-to-end behavior obtained with controlled delay service
   provides a middle ground between the employment of adaptive
   applications in a pure best-effort network and the employment of a
   network which rigidly controls delay.  Strengths of this middle



Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 2]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


   ground are that applications can obtain some load control and
   delivery preference for their packets while still benefiting from
   their adaptive behavior; that the service can be usefully deployed in
   large, unstructured internetworks; and that the specification is
   amenable to highly efficient implementation and use of network
   resources.

   One important model for the use of controlled delay may be thought of
   as "best-effort with a floor"; applications suited for use with this
   service may choose to operate with no QoS control at all much of the
   time, requesting controlled-delay service from the network only when
   the uncontrolled service slips below acceptable minimums.


Network Element Data Handling Requirements


   The network element must assure that the packet delays are
   controlled.  This must be accomplished through active admission
   control.  In particular, overprovisioning is not sufficient to
   deliver controlled delay service; the element must be able to turn
   flows away if accepting them would cause the element to have
   excessive queueing delays.  However, no quantitative specification of
   average, statistical, or maximal delays is required.

   There are three different logical levels of service. A network
   element may internally implement fewer (or more) actual levels of
   service, but must map them into three logical levels at the
   controlled delay service invocation interface.  The levels have
   different degrees of delay control, with level 1 having the most
   tightly controlled delay, and level 3 having the least tightly
   controlled delay.  The different levels do not have to give strictly
   ordered delays for each packet; that is, the network element need not
   ensure that every packet given level 1 service experiences less delay
   than if it were given level 2 service.  The element need only ensure
   that the typical delays are no greater in level 1 than in level 2
   (and similarly for levels 2 and 3).

   All three levels of service should be given better service, i.e. more
   tightly controlled delay, than uncontrolled best effort traffic.

   The controlled delay service must maintain a very low level of packet
   loss. Although packet losses may occur, any noticeable loss
   represents a "failure" of the admission control algorithm.

   The controlled delay service definition does not require any control
   of short-term packet jitter (variation in network element transit
   delay between different packets in the flow) beyond the control



Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 3]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


   already exercised on delay. Network element implementors who find it
   advantageous to do so may use resource scheduling algorithms which
   exercise some jitter control.


Invocation Information


   The controlled delay service is invoked by specifying the flow's
   proposed traffic pattern (TSpec) and service request (RSpec) to the
   network element.

   The TSpec takes the form of a token bucket, with bucket depth b and
   token rate r.  Both b and r must be positive.

   The rate r is measured in bytes per 1/100th of a second, and can
   range from 1 to 10^12.  This range allows data rates as small as 800
   bits per second (a reasonable minimum) as well as data rates as large
   as 400 terabits per second (or 5 times what is believed to be the
   maximum theoretical bandwidth of a single strand of fiber) to be
   requested. The representation of this value should be precise to at
   least 0.1 percent of the value.  The use of floating point
   representations in implementations is encouraged.

   The bucket depth b is measured in bytes and can range from 1 byte to
   125 gigabytes.  Again, the representation of this value should be
   precise to at least 0.1 percent of the value, and the use of floating
   point representations is encouraged.

   The range of values is intentionally large to allow for the future
   bandwidths.  The range is not intended to imply that a network
   element must support the entire range.

   The RSpec is a service level.  The service level is specified by one
   of the integers 1, 2, or 3.  Implementations should internally choose
   representations which leave a range of at least 256 service levels
   undefined, for possible extension in the future.

   The TSpec can be represented by two 16-bit values each using the
   following form.

                    15        10 9                 0
                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                    | Exponent  |     Value         |
                    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   In this format, the 6 most significant bits of the word encode an
   exponent (E), and the 10 LSB's encode a value (V).  This format



Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 4]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


   encodes a number, of the form V * (2**E).  This format is chosen to
   allow easy representation of a wide range of values, while avoiding
   over-precise representations. The 16-bit word is placed into packets
   in network byte order.

   The first value is the rate (r) and the second value is the bucket
   size (b).

   The RSpec may be represented as an unsigned 16-bit integer carried in
   network byte order.


Exported Information


   Each controlled delay service module exports at least the following
   information. All of the data elements described below are
   characterization parameters.

   For each level of service, the network element exports three
   measurements of delay (thus making nine quantities in total).  Each
   of these characterization parameters is the maximal packet transit
   delay experienced over a previous time interval T.  The three time
   intervals T are 1 second, 60 seconds, and 3600 seconds.  The exported
   parameters can be somewhat stale, in that they can reflect
   measurements taken as long as time 2T ago.  However, they may also be
   updated more frequently, and can also reflect any subsequent packet
   delays that exceed the current advertised quantity.

   There is no requirement that these characterization parameters be
   based on exact measurements.  In particular, these delay measurements
   can be based on estimates of packet delays or aggregate measurements
   of queue loading.  This looseness is allowed to avoid placing undue
   burdens on network element designs in which obtaining precise delay
   measurements is difficult.

   These delay parameters have an additive composition rule. For each
   parameter the composition function computes the sum, enabling a setup
   protocol to deliver the cumulative sum along the path to the end
   nodes.

   The delays are measured in units of one microsecond.  An individual
   element can advertise a delay value between 1 and 2**28 (somewhat
   over two minutes) and the total delay added across all elements can
   range as high as 2**32-1.  Should the sum of the different elements
   delay exceed 2**32-1, the end-to-end advertised delay should be
   2**32-1.




Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 5]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


   Note that while the granularity of measurement is microseconds, a
   conforming element is free to measure delays more loosely.  The
   minimum requirement is that the element estimate its delay accurately
   to the nearest 100 microsecond granularity.  Elements that can
   measure more accurately are, of course, encouraged to do so.

      NOTE: Measuring in milliseconds is not acceptable, because if the
      minimum delay value is a millisecond, a path with several hops
      will lead to a composed delay of at least several milliseconds,
      which is likely to be misleading.

   The characterization parameters may be represented as a sequence of
   nine 32-bit unsigned integers in network byte order.  The first three
   integers are the parameters for T=1, T=60 and T=3600 for level 1, the
   next three integers are for T=1, T=60, T=3600 for level 2, and the
   last three integers are for T=1, T=60, T=3600 for level 3.

   The following values are assigned from the characterization parameter
   namespace.

   The controlled delay service is service_name 1.

   The delay characterization parameters receive parameter_number's one
   through nine, in the order given above. That is,

      parameter_name          definition

      1                       Service Level = 1, T = 1
      2                       Service Level = 1, T = 60
      3                       Service Level = 1, T = 3600
      4                       Service Level = 2, T = 1
      5                       Service Level = 2, T = 60
      6                       Service Level = 2, T = 3600
      7                       Service Level = 3, T = 1
      8                       Service Level = 3, T = 60
      9                       Service Level = 3, T = 3600


   The end-to-end composed results are assigned parameter_names N+10,
   where N is the value of the per-hop name given above.

   No other exported data is required by this specification.


Policing


   Policing is done at the edge of the network and at all source merge



Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 6]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


   points within the interior of the network.  A source merge point is
   any point where data from multiple sources is merged into a single
   flow.  It is the responsibility of the invoker of the service (a
   setup protocol, local configuration tool, or similar mechanism) to
   identify points where policing is required.

   Nonconforming packets are dropped. Other actions, such as delaying
   packets until they fit within the bounds of the policing function,
   are not permitted.

      NOTE: This point is open to discussion. The requirement given
      above may be too strict; it may be better to permit some delaying
      of a packet if that delay would allow it to pass the policing
      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 and dropping it. The merit of
      this approach, and the precise wording of the specification which
      describes it, require further study.

   Implementors should note that traffic entering the network with a
   certain burstiness factor will in many circumstances tend to grow
   more bursty as it traverses the network. Thus, a well-chosen policing
   function for network elements serving as interior source merge points
   will allow for somewhat more traffic burstiness than would be
   suggested by simple consideration of the traffic's TSpec at that
   point.

      NOTE: This modification of the policing function to allow for
      increased burstiness as traffic flows through a network is
      independent of any modification of the TSpec or policing function
      needed to handle the merging of multiple service requests.


Ordering and Merging


   Traffic specifications (TSpecs) presented to a controlled delay
   service module are ordered as follows; TSpec A is substitutable for
   ("as good or better than") TSpec B if both the token bucket depth and
   rate of TSpec A are greater than or equal to the token bucket depth
   and rate of TSpec B.

   A merged TSpec may be calculated over a set of TSpecs by taking the
   largest rate and largest bucket size across all members of the set.
   This use of the word "merging" is similar to that in the RSVP
   protocol; a merged TSpec is one which is adequate to describe the
   traffic from any one of a number of flows.



Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 7]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


   In other circumstances it is necessary to computed the "additive"
   TSpec, which describes the traffic of all of the input flows
   simultaneously. The rate and bucket size parameters of an additive
   TSpec are computed by adding together the rate and bucket size
   parameters of each of the original TSpec's.

   It is possible to combine these functions to compute a TSpec for the
   traffic from any N of a set of M original flows, where N ranges from
   1 to M.

   Service request specifications (RSpecs) are ordered by their
   numerical values (in inverse order); service level 1 is substitutable
   for service level 2, and service level 2 is substitutable for service
   level 3.


Resulting Service


   The resulting end-to-end service is one that offers applications
   several levels of delay to choose from.  Furthermore, this service
   promises that the levels of experienced delays will be controlled,
   such that all three levels of service will have lower average delays
   than best effort service.  However, this service makes no assurances
   about the absolute levels of delay or jitter the receiving
   application will experience.

   This service is designed for use by adaptive playback applications,
   among others. These applications may be willing to accept varying
   degrees of perceived loss due to late packets. At a given level of
   controlled delay service the application can vary the loss rate by
   utilizing a more or less conservative delay adaptation function to
   adjust their "playback point"; the application will compromise
   between minimal playback delay and percentage of packets arriving too
   late to be useful. If the best compromise at a given service level is
   not good enough, the application may select a lower-delay service
   level.


Guidelines for Implementors


   It is expected that the service levels implemented at a particular
   element will offer significantly different levels of delay control.
   There seems little advantage in offering levels which differ only
   slightly in the level of delay control.  So, while a particular
   element may offer less than three levels of service, the levels of
   service it does offer should have notably different queueing delays.



Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 8]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


   An additional service currently being considered is the "predictive"
   service described in [xxx].  It is expected that if an element offers
   both predictive service and controlled delay service, that it need
   not implement both but can use the predictive service as a controlled
   delay service.  This is allowed since (1) the required behavior of
   predictive service meets all of the requirements of controlled delay
   service, (2) the invocations are compatible, and (3) the ordering
   relationships defined in the predictive service specification
   document are such that a given level of predictive service is at
   least as good as the same level of controlled delay service.

      NOTE: The inter-service mapping with predictive service, mentioned
      above, is omitted from the "Ordering and Merging" section of this
      draft of the controlled delay service specification because the
      exact definition of both services is still under discussion.
      Should the final definitions include an inter-service mapping
      function, the Ordering and Merging sections of each document might
      contain words similar to the following:

      "In addition, the controlled delay service is related to the
      predictive service in the sense that a given level of predictive
      service is considered at least as good as the same level of
      controlled delay service.  See additional comments in the
      guidelines section."

Evaluation Criteria


   Evaluating a network element's implementation of controlled delay
   service is somewhat difficult, since the quality of service depends
   on overall traffic load, the traffic pattern presented and the degree
   of delay control implemented.  In this section we sketch out a
   methodology for testing an element's controlled delay service.

   The idea is that one chooses a particular traffic mix (for instance,
   30 percent 1, 10 percent level 2, 20 percent level 3 and 40 percent
   uncontrolled best-effort traffic) and loads the network element with
   progressively higher amounts of this traffic mix (i.e., 40% of
   capacity, then 50% of capacity, on beyond 100% capacity).  For each
   load level, one measures the utilization, mean delays, and the packet
   loss rate for each level of service (including best effort).  Each
   test run at a particular load should involve enough traffic that is a
   reasonable predictor of the performance a long-lived application such
   as a video conference would experience (e.g., an hour or more of
   traffic).

   This memo does not specify particular traffic mixes to test.
   However, we expect in the future that as the nature of real-time



Shenker/Partridge/WroclawskiExpires 12/25/95                    [Page 9]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


   Internet traffic is better understood, the traffic used in these
   tests will be chosen to reflect the current and future Internet load.


Examples of Implementation


   A possible implementation of controlled delay service would be to
   have a queueing mechanism with three priority levels, with level 1
   packets being highest priority and level 3 packets being lowest
   priority.  Each controlled delay service level would be associated
   with a target queue utilization level, say 20% for level 1, 50% for
   the combination of levels 1 and 2, and 70% for the combination of all
   three levels.  The utilization of the link, by each of the three
   levels, would be measured over some relatively short time period
   (say, 5 seconds, or 10000 MTU packet transmission times).  A new flow
   would be admitted to level 1 if the measured usage of level 1, plus
   the token bucket rate of the new flow, was below the target
   utilization of level 1.  Similarly, a new flow would be admitted to
   level 2 if the measured usage of levels 1 and 2, plus the token
   bucket rate of the new flow, was below the target utilization of
   levels 1 and 2.


Examples of Use


   We give two examples of use, both involving an interactive
   application.

   In the first example, we assume that either the receiving application
   is ignoring characterizations or the network is not delivering the
   characterizations to the end-nodes. We further assume that the
   application's data transmission units is timestamped.  The receiver,
   by inspecting the timestamps, can determine the end-to-end delays and
   react if they are excessive.  If so, then the application asks for a
   better level of service.  If the delays are well below the required
   level, the application can ask for a worse level of service.  A
   protocol useful to applications providing this capability is the
   proposed IETF Real-Time Transport Protocol [xxx].

   In the second example, we assume that characterization parameters are
   delivered to the receiving application.  The receiver chooses the
   service level whose characterizations for the maximal delays for all
   intervals are under the required level after network latencies are
   considered. If the actual delays during the course of operation are
   worse than expected, the application can ask for a better level of
   service.



Shenker/Partridge/WroclawskiExpires 12/25/95                   [Page 10]


INTERNET-DRAFT draft-ietf-intserv-control-del-svc-01.txt     March, 1995


Security Considerations

   Security considerations are not discussed in this memo.

Authors' Address:


   Scott Shenker
   Xerox PARC
   3333 Coyote Hill Road
   Palo Alto, CA  94304-1314
   shenker@parc.xerox.com
   415-812-4840
   415-812-4471 (FAX)

   Craig Partridge
   BBN
   2370 Amherst St
   Palo Alto, CA  94306
   craig@bbn.com

   John Wroclawski
   MIT Laboratory for Computer Science
   545 Technology Sq.
   Cambridge, MA  02139
   jtw@lcs.mit.edu
   617-253-7885
   617-253-2673 (FAX)























Shenker/Partridge/WroclawskiExpires 12/25/95                   [Page 11]