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-guaranteed-svc-06.txt < prev    next >
Text File  |  1996-08-14  |  49KB  |  1,063 lines

  1.  
  2.  
  3. Internet Engineering Task Force                   Integrated Services WG
  4. INTERNET-DRAFT                         S. Shenker/C. Partridge/R. Guerin
  5. draft-ietf-intserv-guaranteed-svc-06.txt                   Xerox/BBN/IBM
  6.                                                           13 August 1996
  7.                                                         Expires: 2/13/97
  8.  
  9.  
  10.  
  11.              Specification of Guaranteed Quality of Service
  12.  
  13.  
  14. Status of this Memo
  15.  
  16.    This document is an Internet-Draft.  Internet-Drafts are working
  17.    documents of the Internet Engineering Task Force (IETF), its areas,
  18.    and its working groups.  Note that other groups may also distribute
  19.    working documents as Internet-Drafts.
  20.  
  21.    Internet-Drafts are draft documents valid for a maximum of six months
  22.    and may be updated, replaced, or obsoleted by other documents at any
  23.    time.  It is inappropriate to use Internet- Drafts as reference
  24.    material or to cite them other than as ``work in progress.''
  25.  
  26.    To learn the current status of any Internet-Draft, please check the
  27.    ``1id-abstracts.txt'' listing contained in the Internet- Drafts
  28.    Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
  29.    munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
  30.    ftp.isi.edu (US West Coast).
  31.  
  32.    This document is a product of the Integrated Services working group
  33.    of the Internet Engineering Task Force.  Comments are solicited and
  34.    should be addressed to the working group's mailing list at int-
  35.    serv@isi.edu and/or the author(s).
  36.  
  37.    This draft reflects minor changes from the IETF meeting in Los
  38.    Angeles and comments received after circulating draft 5.
  39.  
  40. Abstract
  41.  
  42.    This memo describes the network element behavior required to deliver
  43.    a guaranteed service (guaranteed delay and bandwidth) in the
  44.    Internet.  Guaranteed service provides firm (mathematically provable)
  45.    bounds on end-to-end datagram queueing delays.  This service makes it
  46.    possible to provide a service that guarantees both delay and
  47.    bandwidth.  This specification follows the service specification
  48.    template described in [1].
  49.  
  50.  
  51.  
  52.  
  53.  
  54. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 1]
  55.  
  56. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  57.  
  58.  
  59. Introduction
  60.  
  61.    This document defines the requirements for network elements that
  62.    support guaranteed service.  This memo is one of a series of
  63.    documents that specify the network element behavior required to
  64.    support various qualities of service in IP internetworks.  Services
  65.    described in these documents are useful both in the global Internet
  66.    and private IP networks.
  67.  
  68.    This document is based on the service specification template given in
  69.    [1]. Please refer to that document for definitions and additional
  70.    information about the specification of qualities of service within
  71.    the IP protocol family.
  72.  
  73.  
  74. End-to-End Behavior
  75.  
  76.    The end-to-end behavior provided by a series of network elements that
  77.    conform to this document is an assured level of bandwidth that, when
  78.    used by a policed flow, produces a delay-bounded service with no
  79.    queueing loss for all conforming datagrams (assuming no failure of
  80.    network components or changes in routing during the life of the
  81.    flow).
  82.  
  83.    The end-to-end behavior conforms to the fluid model (described under
  84.    Network Element Data Handling below) in that the delivered queueing
  85.    delays do not exceed the fluid delays by more than the specified
  86.    error bounds.  More precisely, the end-to-end delay bound is [(b-
  87.    M)/R*(p-R)/(p-r)]+(M+Ctot)/R+Dtot for p>R>=r, and (M+Ctot)/R+Dtot for
  88.    r<=p<=R, (where b, r, p, M, R, Ctot, and Dtot are defined later in
  89.    this document).
  90.  
  91.       NOTE: While the per-hop error terms needed to compute the end-to-
  92.       end delays are exported by the service module (see Exported
  93.       Information below), the mechanisms needed to collect per-hop
  94.       bounds and make the end-to-end quantities Ctot and Dtot known to
  95.       the applications are not described in this specification.  These
  96.       functions are provided by reservation setup protocols, routing
  97.       protocols or other network management functions and are outside
  98.       the scope of this document.
  99.  
  100.    The maximum end-to-end queueing delay (as characterized by Ctot and
  101.    Dtot) and bandwidth (characterized by R) provided along a path will
  102.    be stable.  That is, they will not change as long as the end-to-end
  103.    path does not change.
  104.  
  105.    Guaranteed service does not control the minimal or average delay of
  106.    datagrams, merely the maximal queueing delay.  Furthermore, to
  107.  
  108.  
  109.  
  110. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 2]
  111.  
  112. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  113.  
  114.  
  115.    compute the maximum delay a datagram will experience, the latency of
  116.    the path MUST be determined and added to the guaranteed queueing
  117.    delay.  (However, as noted below, a conservative bound of the latency
  118.    can be computed by observing the delay experienced by any one
  119.    packet).
  120.  
  121.    This service is subject to admission control.
  122.  
  123. Motivation
  124.  
  125.    Guaranteed service guarantees that datagrams will arrive within the
  126.    guaranteed delivery time and will not be discarded due to queue
  127.    overflows, provided the flow's traffic stays within its specified
  128.    traffic parameters.  This service is intended for applications which
  129.    need a firm guarantee that a datagram will arrive no later than a
  130.    certain time after it was transmitted by its source.  For example,
  131.    some audio and video "play-back" applications are intolerant of any
  132.    datagram arriving after their play-back time.  Applications that have
  133.    hard real-time requirements will also require guaranteed service.
  134.  
  135.    This service does not attempt to minimize the jitter (the difference
  136.    between the minimal and maximal datagram delays); it merely controls
  137.    the maximal queueing delay.  Because the guaranteed delay bound is a
  138.    firm one, the delay has to be set large enough to cover extremely
  139.    rare cases of long queueing delays.  Several studies have shown that
  140.    the actual delay for the vast majority of datagrams can be far lower
  141.    than the guaranteed delay.  Therefore, authors of playback
  142.    applications should note that datagrams will often arrive far earlier
  143.    than the delivery deadline and will have to be buffered at the
  144.    receiving system until it is time for the application to process
  145.    them.
  146.  
  147.    This service represents one extreme end of delay control for
  148.    networks.  Most other services providing delay control provide much
  149.    weaker assurances about the resulting delays.  In order to provide
  150.    this high level of assurance, guaranteed service is typically only
  151.    useful if provided by every network element along the path (i.e. by
  152.    both routers and the links that interconnect the routers).  Moreover,
  153.    as described in the Exported Information section, effective provision
  154.    and use of the service requires that the set-up protocol or other
  155.    mechanism used to request service provides service characterizations
  156.    to intermediate routers and to the endpoints.
  157.  
  158.  
  159. Network Element Data Handling Requirements
  160.  
  161.    The network element MUST ensure that the service approximates the
  162.    "fluid model" of service.  The fluid model at service rate R is
  163.  
  164.  
  165.  
  166. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 3]
  167.  
  168. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  169.  
  170.  
  171.    essentially the service that would be provided by a dedicated wire of
  172.    bandwidth R between the source and receiver.  Thus, in the fluid
  173.    model of service at a fixed rate R, the flow's service is completely
  174.    independent of that of any other flow.
  175.  
  176.    The flow's level of service is characterized at each network element
  177.    by a bandwidth (or service rate) R and a buffer size B.  R represents
  178.    the share of the link's bandwidth the flow is entitled to and B
  179.    represents the buffer space in the network element that the flow may
  180.    consume.  The network element MUST ensure that its service matches
  181.    the fluid model at that same rate to within a sharp error bound.
  182.  
  183.    The definition of guaranteed service relies on the result that the
  184.    fluid delay of a flow obeying a token bucket (r,b) and being served
  185.    by a line with bandwidth R is bounded by b/R as long as R is no less
  186.    than r.  Guaranteed service with a service rate R, where now R is a
  187.    share of bandwidth rather than the bandwidth of a dedicated line,
  188.    approximates this behavior.
  189.  
  190.    Consequently, the network element MUST ensure that the queueing delay
  191.    of any datagram be less than b/R+C/R+D, where C and D describe the
  192.    maximal local deviation away from the fluid model.  It is important
  193.    to emphasize that C and D are maximums.  So, for instance, if an
  194.    implementation has occasional gaps in service (perhaps due to
  195.    processing routing updates), D needs to be large enough to account
  196.    for the time a datagram may lose during the gap in service.  (C and D
  197.    are described in more detail in the section on Exported Information).
  198.  
  199.       NOTE: Strictly speaking, this memo requires only that the service
  200.       a flow receives is never worse than it would receive under this
  201.       approximation of the fluid model.  It is perfectly acceptable to
  202.       give better service.  For instance, if a flow is currently not
  203.       using its share, R, algorithms such as Weighted Fair Queueing that
  204.       temporarily give other flows the unused bandwidth, are perfectly
  205.       acceptable (indeed, are encouraged).
  206.  
  207.    Links are not permitted to fragment datagrams as part of guaranteed
  208.    service.  Datagrams larger than the MTU of the link MUST be policed
  209.    as nonconformant which means that they will be policed according to
  210.    the rules described in the Policing section below.
  211.  
  212. Invocation Information
  213.  
  214.    Guaranteed service is invoked by specifying the traffic (TSpec) and
  215.    the desired service (RSpec) to the network element.  A service
  216.    request for an existing flow that has a new TSpec and/or RSpec SHOULD
  217.    be treated as a new invocation, in the sense that admission control
  218.    SHOULD be reapplied to the flow.  Flows that reduce their TSpec
  219.  
  220.  
  221.  
  222. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 4]
  223.  
  224. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  225.  
  226.  
  227.    and/or their RSpec (i.e., their new TSpec/RSpec is strictly smaller
  228.    than the old TSpec/RSpec according to the ordering rules described in
  229.    the section on Ordering below) SHOULD never be denied service.
  230.  
  231.    The TSpec takes the form of a token bucket plus a peak rate (p), a
  232.    minimum policed unit (m), and a maximum datagram size (M).
  233.  
  234.    The token bucket has a bucket depth, b, and a bucket rate, r.  Both b
  235.    and r MUST be positive.  The rate, r, is measured in bytes of IP
  236.    datagrams per second, and can range from 1 byte per second to as
  237.    large as 40 terabytes per second (or close to what is believed to be
  238.    the maximum theoretical bandwidth of a single strand of fiber).
  239.    Clearly, particularly for large bandwidths, only the first few digits
  240.    are significant and so the use of floating point representations,
  241.    accurate to at least 0.1% is encouraged.
  242.  
  243.    The bucket depth, b, is also measured in bytes and can range from 1
  244.    byte to 250 gigabytes.  Again, floating point representations
  245.    accurate to at least 0.1% are encouraged.
  246.  
  247.    The range of values is intentionally large to allow for the future
  248.    bandwidths.  The range is not intended to imply that a network
  249.    element has to support the entire range.
  250.  
  251.    The peak rate, p, is measured in bytes of IP datagrams per second and
  252.    has the same range and suggested representation as the bucket rate.
  253.    The peak rate is the maximum rate at which the source and any
  254.    reshaping points (reshaping points are defined below) may inject
  255.    bursts of traffic into the network.  More precisely, it is a
  256.    requirement that for all time periods the amount of data sent cannot
  257.    exceed M+pT where M is the maximum datagram size and T is the length
  258.    of the time period.  Furthermore, p MUST be greater than or equal to
  259.    the token bucket rate, r.  If the peak rate is unknown or
  260.    unspecified, then p MUST be set to infinity.
  261.  
  262.    The minimum policed unit, m, is an integer measured in bytes.  All IP
  263.    datagrams less than size m will be counted, when policed and tested
  264.    for conformance to the TSpec, as being of size m.  The maximum
  265.    datagram size, M, is the biggest datagram that will conform to the
  266.    traffic specification; it is also measured in bytes.  The flow MUST
  267.    be rejected if the requested maximum datagram size is larger than the
  268.    MTU of the link.  Both m and M MUST be positive, and m MUST be less
  269.    than or equal to M.
  270.  
  271.       The guaranteed service uses the general TOKEN_BUCKET_TSPEC
  272.       parameter defined in Reference [8] to describe a data flow's
  273.       traffic characteristics. The description above is of that
  274.       parameter.  The TOKEN_BUCKET_TSPEC is general parameter number
  275.  
  276.  
  277.  
  278. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 5]
  279.  
  280. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  281.  
  282.  
  283.       127. Use of this parameter for the guaranteed service TSpec
  284.       simplifies the use of guaranteed Service in a multi-service
  285.       environment.
  286.  
  287.    The RSpec is a rate R and a slack term S, where R MUST be greater
  288.    than or equal to r and S MUST be nonnegative.  The RSpec rate can be
  289.    bigger than the TSpec rate because higher rates will reduce queueing
  290.    delay.  The slack term signifies the difference between the desired
  291.    delay and the delay obtained by using a reservation level R.  This
  292.    slack term can be utilized by the network element to reduce its
  293.    resource reservation for this flow. When a network element chooses to
  294.    utilize some of the slack in the RSpec, it MUST follow specific rules
  295.    in updating the R and S fields of the RSpec; these rules are
  296.    specified in the Ordering and Merging section.  If at the time of
  297.    service invocation no slack is specified, the slack term, S, is set
  298.    to zero.  No buffer specification is included in the RSpec because
  299.    the network element is expected to derive the required buffer space
  300.    to ensure no queueing loss from the token bucket and peak rate in the
  301.    TSpec, the reserved rate and slack in the RSpec, the exported
  302.    information received at the network element, i.e., Ctot and Dtot or
  303.    Csum and Dsum, combined with internal information about how the
  304.    element manages its traffic.
  305.  
  306.    The TSpec can be represented by three floating point numbers in
  307.    single-precision IEEE floating point format followed by two 32-bit
  308.    integers in network byte order.  The first floating point value is
  309.    the rate (r), the second floating point value is the bucket size (b),
  310.    the third floating point is the peak rate (p), the first integer is
  311.    the minimum policed unit (m), and the second integer is the maximum
  312.    datagram size (M).
  313.  
  314.    The RSpec rate term, R, can also be represented using single-
  315.    precision IEEE floating point.
  316.  
  317.    The Slack term, S, can be represented as a 32-bit integer.
  318.  
  319.    When r, b, p, and R terms are represented as IEEE floating point
  320.    values, the sign bit MUST be zero (all values MUST be non-negative).
  321.    Exponents less than 127 (i.e., 0) are prohibited.  Exponents greater
  322.    than 162 (i.e., positive 35) are discouraged, except for specifying a
  323.    peak rate of infinity.  Infinity is represented with an exponent of
  324.    all ones (255) and a sign bit and mantissa of all zeroes.
  325.  
  326. Exported Information
  327.  
  328.    Each guaranteed service module MUST export at least the following
  329.    information.  All of the parameters described below are
  330.    characterization parameters.
  331.  
  332.  
  333.  
  334. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 6]
  335.  
  336. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  337.  
  338.  
  339.    A network element's implementation of guaranteed service is
  340.    characterized by two error terms, C and D, which represent how the
  341.    element's implementation of the guaranteed service deviates from the
  342.    fluid model.  These two parameters have an additive composition rule.
  343.  
  344.    The error term C is the rate-dependent error term.  It represents the
  345.    delay a datagram in the flow might experience due to the rate
  346.    parameters of the flow.  An example of such an error term is the need
  347.    to account for the time taken serializing a datagram broken up into
  348.    ATM cells, with the cells sent at a frequency of 1/r.
  349.  
  350.       NOTE: It is important to observe that when computing the delay
  351.       bound, parameter C is divided by the reservation rate R.  This
  352.       division is done because, as with the example of serializing the
  353.       datagram, the effect of the C term is a function of the
  354.       transmission rate.  Implementors should take care to confirm that
  355.       their C values, when divided by various rates, give appropriate
  356.       results.  Delay values that are not dependent on the rate SHOULD
  357.       be incorporated into the value for the D parameter.
  358.  
  359.    The error term D is the rate-independent, per-element error term and
  360.    represents the worst case non-rate-based transit time variation
  361.    through the service element.  It is generally determined or set at
  362.    boot or configuration time.  An example of D is a slotted network, in
  363.    which guaranteed flows are assigned particular slots in a cycle of
  364.    slots.  Some part of the per-flow delay may be determined by which
  365.    slots in the cycle are allocated to the flow.  In this case, D would
  366.    measure the maximum amount of time a flow's data, once ready to be
  367.    sent, might have to wait for a slot.  (Observe that this value can be
  368.    computed before slots are assigned and thus can be advertised.  For
  369.    instance, imagine there are 100 slots.  In the worst case, a flow
  370.    might get all of its N slots clustered together, such that if a
  371.    packet was made ready to send just after the cluster ended, the
  372.    packet might have to wait 100-N slot times before transmitting.  In
  373.    this case one can easily approximate this delay by setting D to 100
  374.    slot times).
  375.  
  376.    If the composition function is applied along the entire path to
  377.    compute the end-to-end sums of C and D (Ctot and Dtot) and the
  378.    resulting values are then provided to the end nodes (by presumably
  379.    the setup protocol), the end nodes can compute the maximal datagram
  380.    queueing delays.  Moreover, if the partial sums (Csum and Dsum) from
  381.    the most recent reshaping point (reshaping points are defined below)
  382.    downstream towards receivers are handed to each network element then
  383.    these network elements can compute the buffer allocations necessary
  384.    to achieve no datagram loss, as detailed in the section Guidelines
  385.    for Implementors.  The proper use and provision of this service
  386.    requires that the quantities Ctot and Dtot, and the quantities Csum
  387.  
  388.  
  389.  
  390. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 7]
  391.  
  392. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  393.  
  394.  
  395.    and Dsum be computed.  Therefore, we assume that usage of guaranteed
  396.    service will be primarily in contexts where these quantities are made
  397.    available to end nodes and network elements.
  398.  
  399.    The error term C is measured in units of bytes.  An individual
  400.    element can advertise a C value between 1 and 2**28 (a little over
  401.    250 megabytes) and the total added over all elements can range as
  402.    high as (2**32)-1.  Should the sum of the different elements delay
  403.    exceed (2**32)-1, the end-to-end error term MUST be set to (2**32)-1.
  404.  
  405.    The error term D is measured in units of one microsecond.  An
  406.    individual element can advertise a delay value between 1 and 2**28
  407.    (somewhat over two minutes) and the total delay added over all
  408.    elements can range as high as (2**32)-1.  Should the sum of the
  409.    different elements delay exceed (2**32)-1, the end-to-end delay MUST
  410.    be set to (2**32)-1.
  411.  
  412.    The guaranteed service is service_name 2.
  413.  
  414.    The RSpec parameter is numbered 130.
  415.  
  416.    Error characterization parameters C and D are numbered 131 and 132.
  417.    The end-to-end composed values for C and D (Ctot and Dtot) are
  418.    numbered 133 and 134.  The since-last-reshaping point composed values
  419.    for C and D (Csum and Dsum) are numbered 135 and 136.
  420.  
  421.  
  422. Policing
  423.  
  424.    There are two forms of policing in guaranteed service.  One form is
  425.    simple policing (hereafter just called policing to be consistent with
  426.    other documents), in which arriving traffic is compared against a
  427.    TSpec.  The other form is reshaping, where an attempt is made to
  428.    restore (possibly distorted) traffic's shape to conform to the TSpec,
  429.    and the fact that traffic is in violation of the TSpec is discovered
  430.    because the reshaping fails (the reshaping buffer overflows).
  431.  
  432.    Policing is done at the edge of the network.  Reshaping is done at
  433.    all heterogeneous source branch points and at all source merge
  434.    points.  A heterogeneous source branch point is a spot where the
  435.    multicast distribution tree from a source branches to multiple
  436.    distinct paths, and the TSpec's of the reservations on the various
  437.    outgoing links are not all the same.  Reshaping need only be done if
  438.    the TSpec on the outgoing link is "less than" (in the sense described
  439.    in the Ordering section) the TSpec reserved on the immediately
  440.    upstream link.  A source merge point is where the distribution paths
  441.    or trees from two different sources (sharing the same reservation)
  442.    merge.  It is the responsibility of the invoker of the service (a
  443.  
  444.  
  445.  
  446. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 8]
  447.  
  448. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  449.  
  450.  
  451.    setup protocol, local configuration tool, or similar mechanism) to
  452.    identify points where policing is required.  Reshaping may be done at
  453.    other points as well as those described above.  Policing MUST not be
  454.    done except at the edge of the network.
  455.  
  456.    The token bucket and peak rate parameters require that traffic MUST
  457.    obey the rule that over all time periods, the amount of data sent
  458.    cannot exceed M+min[pT, rT+b-M], where r and b are the token bucket
  459.    parameters, M is the maximum datagram size, and T is the length of
  460.    the time period (note that when p is infinite this reduces to the
  461.    standard token bucket requirement).  For the purposes of this
  462.    accounting, links MUST count datagrams which are smaller than the
  463.    minimum policing unit to be of size m.  Datagrams which arrive at an
  464.    element and cause a violation of the the M+min[pT, rT+b-M] bound are
  465.    considered non-conformant.
  466.  
  467.    At the edge of the network, traffic is policed to ensure it conforms
  468.    to the token bucket.  Non-conforming datagrams SHOULD be treated as
  469.    best-effort datagrams.  [If and when a marking ability becomes
  470.    available, these non-conformant datagrams SHOULD be ''marked'' as
  471.    being non-compliant and then treated as best effort datagrams at all
  472.    subsequent routers.]
  473.  
  474.    Best effort service is defined as the default service a network
  475.    element would give to a datagram that is not part of a flow and was
  476.    sent between the flow's source and destination.  Among other
  477.    implications, this definition means that if a flow's datagram is
  478.    changed to a best effort datagram, all flow control (e.g., RED [2])
  479.    that is normally applied to best effort datagrams is applied to that
  480.    datagram too.
  481.  
  482.       NOTE: There may be situations outside the scope of this document,
  483.       such as when a service module's implementation of guaranteed
  484.       service is being used to implement traffic sharing rather than a
  485.       quality of service, where the desired action is to discard non-
  486.       conforming datagrams.  To allow for such uses, implementors SHOULD
  487.       ensure that the action to be taken for non-conforming datagrams is
  488.       configurable.
  489.  
  490.    Inside the network, policing does not produce the desired results,
  491.    because queueing effects will occasionally cause a flow's traffic
  492.    that entered the network as conformant to be no longer conformant at
  493.    some downstream network element.  Therefore, inside the network,
  494.    network elements that wish to police traffic MUST do so by reshaping
  495.    traffic to the token bucket.  Reshaping entails delaying datagrams
  496.    until they are within conformance of the TSpec.
  497.  
  498.    Reshaping is done by combining a buffer with a token bucket and peak
  499.  
  500.  
  501.  
  502. Shenker/Partridge/Guerin    Expires 2/13/97                     [Page 9]
  503.  
  504. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  505.  
  506.  
  507.    rate regulator and buffering data until it can be sent in conformance
  508.    with the token bucket and peak rate parameters.  (The token bucket
  509.    regulator MUST start with its token bucket full of tokens).  Under
  510.    guaranteed service, the amount of buffering required to reshape any
  511.    conforming traffic back to its original token bucket shape is
  512.    b+Csum+(Dsum*r), where Csum and Dsum are the sums of the parameters C
  513.    and D between the last reshaping point and the current reshaping
  514.    point.  Note that the knowledge of the peak rate at the reshapers can
  515.    be used to reduce these buffer requirements (see the section on
  516.    "Guidelines for Implementors" below).  A network element MUST provide
  517.    the necessary buffers to ensure that conforming traffic is not lost
  518.    at the reshaper.
  519.  
  520.    If a datagram arrives to discover the reshaping buffer is full, then
  521.    the datagram is non-conforming.  Observe this means that a reshaper
  522.    is effectively policing too.  As with a policer, the reshaper SHOULD
  523.    relegate non-conforming datagrams to best effort.  [If marking is
  524.    available, the non-conforming datagrams SHOULD be marked]
  525.  
  526.       NOTE: As with policers, it SHOULD be possible to configure how
  527.       reshapers handle non-conforming datagrams.
  528.  
  529.  
  530.    Note that while the large buffer makes it appear that reshapers add
  531.    considerable delay, this is not the case.  Given a valid TSpec that
  532.    accurately describes the traffic, reshaping will cause little extra
  533.    actual delay at the reshaping point (and will not affect the delay
  534.    bound at all).  Furthermore, in the normal case, reshaping will not
  535.    cause the loss of any data.
  536.  
  537.    However, (typically at merge or branch points), it may happen that
  538.    the TSpec is smaller than the actual traffic.  If this happens,
  539.    reshaping will cause a large queue to develop at the reshaping point,
  540.    which both causes substantial additional delays and forces some
  541.    datagrams to be treated as non-conforming.  This scenario makes an
  542.    unpleasant denial of service attack possible, in which a receiver who
  543.    is successfully receiving a flow's traffic via best effort service is
  544.    pre-empted by a new receiver who requests a reservation for the flow,
  545.    but with an inadequate TSpec and RSpec.  The flow's traffic will now
  546.    be policed and possibly reshaped.  If the policing function was
  547.    chosen to discard datagrams, the best-effort receiver would stop
  548.    receiving traffic.  For this reason, in the normal case, policers are
  549.    simply to treat non-conforming datagrams as best effort (and marking
  550.    them if marking is implemented).  While this protects against denial
  551.    of service, it is still true that the bad TSpec may cause queueing
  552.    delays to increase.
  553.  
  554.       NOTE: To minimize problems of reordering datagrams, reshaping
  555.  
  556.  
  557.  
  558. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 10]
  559.  
  560. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  561.  
  562.  
  563.       points may wish to forward a best-effort datagram from the front
  564.       of the reshaping queue when a new datagram arrives and the
  565.       reshaping buffer is full.
  566.  
  567.       Readers should also observe that reclassifying datagrams as best
  568.       effort (as opposed to dropping the datagrams) also makes support
  569.       for elastic flows easier.  They can reserve a modest token bucket
  570.       and when their traffic exceeds the token bucket, the excess
  571.       traffic will be sent best effort.
  572.  
  573.    A related issue is that at all network elements, datagrams bigger
  574.    than the MTU of the network element MUST be considered non-conformant
  575.    and SHOULD be classified as best effort (and will then either be
  576.    fragmented or dropped according to the element's handling of best
  577.    effort traffic).  [Again, if marking is available, these reclassified
  578.    datagrams SHOULD be marked.]
  579.  
  580. Ordering and Merging
  581.  
  582.    TSpec's are ordered according to the following rules.
  583.  
  584.    TSpec A is a substitute ("as good or better than") for TSpec B if (1)
  585.    both the token rate r and bucket depth b for TSpec A are greater than
  586.    or equal to those of TSpec B; (2) the peak rate p is at least as
  587.    large in TSpec A as it is in TSpec B; (3) the minimum policed unit m
  588.    is at least as small for TSpec A as it is for TSpec B; and (4) the
  589.    maximum datagram size M is at least as large for TSpec A as it is for
  590.    TSpec B.
  591.  
  592.    TSpec A is "less than or equal" to TSpec B if (1) both the token rate
  593.    r and bucket depth b for TSpec A are less than or equal to those of
  594.    TSpec B; (2) the peak rate p in TSpec A is at least as small as the
  595.    peak rate in TSpec B; (3) the minimum policed unit m is at least as
  596.    large for TSpec A as it is for TSpec B; and (4) the maximum datagram
  597.    size M is at least as small for TSpec A as it is for TSpec B.
  598.  
  599.    A merged TSpec may be calculated over a set of TSpecs by taking (1)
  600.    the largest token bucket rate, (2) the largest bucket size, (3) the
  601.    largest peak rate, (4) the smallest minimum policed unit, and (5) the
  602.    largest maximum datagram size across all members of the set.  This
  603.    use of the word "merging" is similar to that in the RSVP protocol
  604.    [10]; a merged TSpec is one which is adequate to describe the traffic
  605.    from any one of constituent TSpecs.
  606.  
  607.    A summed TSpec may be calculated over a set of TSpecs by computing
  608.    (1) the sum of the token bucket rates, (2) the sum of the bucket
  609.    sizes, (3) the sum of the peak rates, (4) the smallest minimum
  610.    policed unit, and (5) the maximum packet size parameter.
  611.  
  612.  
  613.  
  614. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 11]
  615.  
  616. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  617.  
  618.  
  619.    The minimum of two TSpecs differs according to whether the TSpecs can
  620.    be ordered.  If one TSpec is less than the other TSpec, the smaller
  621.    TSpec is the minimum.  Otherwise, the minimum TSpec of two TSpecs is
  622.    determined by comparing the respective values in the two TSpecs and
  623.    choosing (1) the smaller token bucket rate, (2) the larger token
  624.    bucket size (3) the smaller peak rate, (4) the smaller minimum
  625.    policed unit, and (5) the smaller maximum packet size.
  626.  
  627.    The RSpec's are merged in a similar manner as the TSpecs, i.e. a set
  628.    of RSpecs is merged onto a single RSpec by taking the largest rate R,
  629.    and the smallest slack S.  More precisely, RSpec A is a substitute
  630.    for RSpec B if the value of reserved service rate, R, in RSpec A is
  631.    greater than or equal to the value in RSpec B, and the value of the
  632.    slack, S, in RSpec A is smaller than or equal to that in RSpec B.
  633.  
  634.    Each network element receives a service request of the form (TSpec,
  635.    RSpec), where the RSpec is of the form (Rin, Sin).  The network
  636.    element processes this request and performs one of two actions:
  637.  
  638.     a. it accepts the request and returns a new Rspec of the form
  639.        (Rout, Sout);
  640.     b. it rejects the request.
  641.  
  642.    The processing rules for generating the new RSpec are governed by the
  643.    delay constraint:
  644.  
  645.           Sout + b/Rout + Ctoti/Rout <= Sin + b/Rin + Ctoti/Rin,
  646.  
  647.    where Ctoti is the cumulative sum of the error terms, C, for all the
  648.    network elements that are upstream of the current element, i.  In
  649.    other words, this element consumes (Sin - Sout) of slack and can use
  650.    it to reduce its reservation level, provided that the above
  651.    inequality is satisfied.  Rin and Rout MUST also satisfy the
  652.    constraint:
  653.  
  654.                              r <= Rout <= Rin.
  655.  
  656.    When several RSpec's, each with rate Rj, j=1,2..., are to be merged
  657.    at a split point, the value of Rout is the maximum over all the rates
  658.    Rj, and the value of Sout is the minimum over all the slack terms Sj.
  659.  
  660.       NOTE: The various TSpec functions described above are used by
  661.       applications which desire to combine TSpecs.  It is important to
  662.       observe, however, that the properties of the actual reservation
  663.       are determined by combining the TSpec with the RSpec rate (R).
  664.  
  665.       Because the guaranteed reservation requires both the TSpec and the
  666.       RSpec rate, there exist some difficult problems for shared
  667.  
  668.  
  669.  
  670. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 12]
  671.  
  672. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  673.  
  674.  
  675.       reservations in RSVP, particularly where two or more source
  676.       streams meet.  Upstream of the meeting point, it would be
  677.       desirable to reduce the TSpec and RSpec to use only as much
  678.       bandwidth and buffering as is required by the individual source's
  679.       traffic.  (Indeed, it may be necessary if the sender is
  680.       transmitting over a low bandwidth link).
  681.  
  682.       However, the RSpec's rate is set to achieve a particular delay
  683.       bound (and is notjust a function of the TSpec), so changing the
  684.       RSpec may cause the reservation to fail to meet the receiver's
  685.       delay requirements.  At the same time, not adjusting the RSpec
  686.       rate means that "shared" RSVP reservations using guaranteed
  687.       service will fail whenever the bandwidth available at a particular
  688.       link is less than the receiver's requested rate R, even if the
  689.       bandwidth is adequate to support the number of senders actually
  690.       using the link.  At this time, this limitation is an open problem
  691.       in using the guaranteed service with RSVP.
  692.  
  693.  
  694.  Guidelines for Implementors
  695.  
  696.    This section discusses a number of important implementation issues in
  697.    no particular order.
  698.  
  699.    It is important to note that individual subnetworks are network
  700.    elements and both routers and subnetworks MUST support the guaranteed
  701.    service model to achieve guaranteed service.  Since subnetworks
  702.    typically are not capable of negotiating service using IP-based
  703.    protocols, as part of providing guaranteed service, routers will have
  704.    to act as proxies for the subnetworks they are attached to.
  705.  
  706.    In some cases, this proxy service will be easy.  For instance, on
  707.    leased line managed by a WFQ scheduler on the upstream node, the
  708.    proxy need simply ensure that the sum of all the flows' RSpec rates
  709.    does not exceed the bandwidth of the line, and needs to advertise the
  710.    rate-based and non-rate-based delays of the link as the values of C
  711.    and D.
  712.  
  713.    In other cases, this proxy service will be complex.  In an ATM
  714.    network, for example, it may require establishing an ATM VC for the
  715.    flow and computing the C and D terms for that VC.  Readers may
  716.    observe that the token bucket and peak rate used by guaranteed
  717.    service map directly to the Sustained Cell Rate, Burst Size, and Peak
  718.    Cell Rate of ATM's Q.2931 QoS parameters for Variable Bit Rate
  719.    traffic.
  720.  
  721.    The assurance that datagrams will not be lost is obtained by setting
  722.    the router buffer space B to be equal to the token bucket b plus some
  723.  
  724.  
  725.  
  726. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 13]
  727.  
  728. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  729.  
  730.  
  731.    error term (described below).
  732.  
  733.    Another issue related to subnetworks is that the TSpec's token bucket
  734.    rates measure IP traffic and do not (and cannot) account for link
  735.    level headers.  So the subnetwork network elements MUST adjust the
  736.    rate and possibly the bucket size to account for adding link level
  737.    headers.  Tunnels MUST also account for the additional IP headers
  738.    that they add.
  739.  
  740.    For datagram networks, a maximum header rate can usually be computed
  741.    by dividing the rate and bucket sizes by the minimum policed unit.
  742.    For networks that do internal fragmentation, such as ATM, the
  743.    computation may be more complex, since one MUST account for both
  744.    per-fragment overhead and any wastage (padding bytes transmitted) due
  745.    to mismatches between datagram sizes and fragment sizes.  For
  746.    instance, a conservative estimate of the additional data rate imposed
  747.    by ATM AAL5 plus ATM segmentation and reassembly is
  748.  
  749.                          ((r/48)*5)+((r/m)*(8+52))
  750.  
  751.  
  752.    which represents the rate divided into 48-byte cells multiplied by
  753.    the 5-byte ATM header, plus the maximum datagram rate (r/m)
  754.    multiplied by the cost of the 8-byte AAL5 header plus the maximum
  755.    space that can be wasted by ATM segmentation of a datagram (which is
  756.    the 52 bytes wasted in a cell that contains one byte).  But this
  757.    estimate is likely to be wildly high, especially if m is small, since
  758.    ATM wastage is usually much less than 52 bytes.  (ATM implementors
  759.    should be warned that the token bucket may also have to be scaled
  760.    when setting the VC parameters for call setup and that this example
  761.    does not account for overhead incurred by encapsulations such as
  762.    those specified in RFC 1483).
  763.  
  764.    To ensure no loss, network elements will have to allocate some
  765.    buffering for bursts.  If every hop implemented the fluid model
  766.    perfectly, this buffering would simply be b (the token bucket size).
  767.    However, as noted in the discussion of reshaping earlier,
  768.    implementations are approximations and we expect that traffic will
  769.    become more bursty as it goes through the network.  However, as with
  770.    shaping the amount of buffering required to handle the burstiness is
  771.    bounded by b+Csum+Dsum*R.  If one accounts for the peak rate, this
  772.    can be further reduced to
  773.  
  774.                   M + (b-M)(p-X)/(p-r) + (Csum/R + Dsum)X
  775.  
  776.    where X is set to r if (b-M)/(p-r) is less than Csum/R+Dsum and X is
  777.    R if (b-M)/(p-r) is greater than or equal to Csum/R+Dsum and p>R;
  778.    otherwise, X is set to p.  This reduction comes from the fact that
  779.  
  780.  
  781.  
  782. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 14]
  783.  
  784. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  785.  
  786.  
  787.    the peak rate limits the rate at which the burst, b, can be placed in
  788.    the network.  Conversely, if a non-zero slack term, Sout, is returned
  789.    by the network element, the buffer requirements are increased by
  790.    adding Sout to Dsum.
  791.  
  792.    While sending applications are encouraged to set the peak rate
  793.    parameter and reshaping points are required to conform to it, it is
  794.    always acceptable to ignore the peak rate for the purposes of
  795.    computing buffer requirements and end-to-end delays.  The result is
  796.    simply an overestimate of the buffering and delay.  As noted above,
  797.    if the peak rate is unknown (and thus potentially infinite), the
  798.    buffering required is b+Csum+Dsum*R.  The end-to-end delay without
  799.    the peak rate is b/R+Ctot/R+Dtot.
  800.  
  801.    The parameter D for each network element SHOULD be set to the maximum
  802.    datagram transfer delay variation (independent of rate and bucket
  803.    size) through the network element.  For instance, in a simple router,
  804.    one might compute the difference between the worst case and best case
  805.    times it takes for a datagram to get through the input interface to
  806.    the processor, and add it to any variation that may occur in how long
  807.    it would take to get from the processor to the outbound link
  808.    scheduler (assuming the queueing schemes work correctly).
  809.  
  810.    For datagramized weighted fair queueing, D is set to the link MTU
  811.    divided by the link bandwidth, to account for the possibility that a
  812.    packet arrives just as a maximum-sized packet begins to be
  813.    transmitted, and that the arriving packet should have departed before
  814.    the maximum-sized packet.  For a frame-based, slotted system such as
  815.    Stop and Go queueing, D is the maximum number of slots a datagram may
  816.    have to wait before getting a chance to be transmitted.
  817.  
  818.    Note that multicasting may make determining D more difficult.  In
  819.    many subnets, ATM being one example, the properties of the subnet may
  820.    depend on the path taken from the multicast sender to the receiver.
  821.    There are a number of possible approaches to this problem.  One is to
  822.    choose a representative latency for the overall subnet and set D to
  823.    the (non-negative) difference from that latency.  Another is to
  824.    estimate subnet properties at exit points from the subnet, since the
  825.    exit point presumably is best placed to compute the properties of its
  826.    path from the source.
  827.  
  828.       NOTE: It is important to note that there is no fixed set of rules
  829.       about how a subnet determines its properties, and each subnet
  830.       technology will have to develop its own set of procedures to
  831.       accurately compute C and D and slack values.
  832.  
  833.    D is intended to be distinct from the latency through the network
  834.    element.  Latency is the minimum time through the device (the speed
  835.  
  836.  
  837.  
  838. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 15]
  839.  
  840. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  841.  
  842.  
  843.    of light delay in a fiber or the absolute minimum time it would take
  844.    to move a packet through a router), while parameter D is intended to
  845.    bound the variability in non-rate-based delay.  In practice, this
  846.    distinction is sometimes arbitrary (the latency may be minimal) -- in
  847.    such cases it is perfectly reasonable to combine the latency with D
  848.    and to advertise any latency as zero.
  849.  
  850.       NOTE: It is implicit in this scheme that to get a complete
  851.       guarantee of the maximum delay a packet might experience, a user
  852.       of this service will need to know both the queueing delay
  853.       (provided by C and D) and the latency.  The latency is not
  854.       advertised by this service but is a general characterization
  855.       parameter (advertised as specified in [8]).
  856.  
  857.       However, even if latency is not advertised, this service can still
  858.       be used.  The simplest approach is to measure the delay
  859.       experienced by the first packet (or the minimum delay of the first
  860.       few packets) received and treat this delay value as an upper bound
  861.       on the latency.
  862.  
  863.    The parameter C is the data backlog resulting from the vagaries of
  864.    how a specific implementation deviates from a strict bit-by-bit
  865.    service. So, for instance, for datagramized weighted fair queueing, C
  866.    is set to M to account for packetization effects.
  867.  
  868.    If a network element uses a certain amount of slack, Si, to reduce
  869.    the amount of resources that it has reserved for a particular flow,
  870.    i, the value Si SHOULD be stored at the network element.
  871.    Subsequently, if reservation refreshes are received for flow i, the
  872.    network element MUST use the same slack Si without any further
  873.    computation. This guarantees consistency in the reservation process.
  874.  
  875.    As an example for the use of the slack term, consider the case where
  876.    the required end-to-end delay, Dreq, is larger than the maximum delay
  877.    of the fluid flow system. The latter is obtained by setting R=r in
  878.    the fluid delay formula (for stability, R>=r must be true), and is
  879.    given by
  880.  
  881.                            b/r + Ctot/r + Dtot.
  882.  
  883.    In this case the slack term is
  884.  
  885.                      S = Dreq - (b/r + Ctot/r + Dtot).
  886.  
  887.    The slack term may be used by the network elements to adjust their
  888.    local reservations, so that they can admit flows that would otherwise
  889.    have been rejected. A network element at an intermediate network
  890.    element that can internally differentiate between delay and rate
  891.  
  892.  
  893.  
  894. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 16]
  895.  
  896. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  897.  
  898.  
  899.    guarantees can now take advantage of this information to lower the
  900.    amount of resources allocated to this flow. For example, by taking an
  901.    amount of slack s <= S, an RCSD scheduler [5] can increase the local
  902.    delay bound, d, assigned to the flow, to d+s. Given an RSpec, (Rin,
  903.    Sin), it would do so by setting Rout = Rin and Sout = Sin - s.
  904.  
  905.    Similarly, a network element using a WFQ scheduler can decrease its
  906.    local reservation from Rin to Rout by using some of the slack in the
  907.    RSpec. This can be accomplished by using the transformation rules
  908.    given in the previous section, that ensure that the reduced
  909.    reservation level will not increase the overall end-to-end delay.
  910.  
  911.  
  912. Evaluation Criteria
  913.  
  914.    The scheduling algorithm and admission control algorithm of the
  915.    element MUST ensure that the delay bounds are never violated and
  916.    datagrams are not lost, when a source's traffic conforms to the
  917.    TSpec.  Furthermore, the element MUST ensure that misbehaving flows
  918.    do not affect the service given to other flows.  Vendors are
  919.    encouraged to formally prove that their implementation is an
  920.    approximation of the fluid model.
  921.  
  922.  Examples of Implementation
  923.  
  924.    Several algorithms and implementations exist that approximate the
  925.    fluid model.  They include Weighted Fair Queueing (WFQ) [2], Jitter-
  926.    EDD [3], Virtual Clock [4] and a scheme proposed by IBM [5].  A nice
  927.    theoretical presentation that shows these schemes are part of a large
  928.    class of algorithms can be found in [6].
  929.  
  930.  Examples of Use
  931.  
  932.    Consider an application that is intolerant of any lost or late
  933.    datagrams.  It uses the advertised values Ctot and Dtot and the TSpec
  934.    of the flow, to compute the resulting delay bound from a service
  935.    request with rate R. Assuming R < p, it then sets its playback point
  936.    to [(b-M)/R*(p-R)/(p-r)]+(M+Ctot)/R+Dtot.
  937.  
  938. Security Considerations
  939.  
  940.    This memo discusses how this service could be abused to permit denial
  941.    of service attacks.  The service, as defined, does not allow denial
  942.    of service (although service may degrade under certain
  943.    circumstances).
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 17]
  951.  
  952. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  953.  
  954.  
  955. Appendix 1: Use of the Guaranteed service with RSVP
  956.  
  957.    The use of guaranteed service in conjunction with the RSVP resource
  958.    reservation setup protocol is specified in reference [9]. This
  959.    document gives the format of RSVP FLOWSPEC, SENDER_TSPEC, and ADSPEC
  960.    objects needed to support applications desiring guaranteed service
  961.    and gives information about how RSVP processes those objects. The
  962.    RSVP protocol itself is specified in Reference [10].
  963.  
  964. References
  965.  
  966.    [1] S. Shenker and J. Wroclawski. "Network Element QoS Control
  967.    Service Specification Template". Internet Draft, July 1996, <draft-
  968.    ietf-intserv-svc-template-03.txt>
  969.  
  970.    [2] A. Demers, S. Keshav and S. Shenker, "Analysis and Simulation of
  971.    a Fair Queueing Algorithm," in Internetworking: Research and
  972.    Experience, Vol 1, No. 1., pp. 3-26.
  973.  
  974.    [3] L. Zhang, "Virtual Clock: A New Traffic Control Algorithm for
  975.    Packet Switching Networks," in Proc. ACM SIGCOMM '90, pp. 19-29.
  976.  
  977.    [4] D. Verma, H. Zhang, and D. Ferrari, "Guaranteeing Delay Jitter
  978.    Bounds in Packet Switching Networks," in Proc. Tricomm '91.
  979.  
  980.    [5] L. Georgiadis, R. Guerin, V. Peris, and K. N. Sivarajan,
  981.    "Efficient Network QoS Provisioning Based on per Node Traffic
  982.    Shaping," IBM Research Report No. RC-20064.
  983.  
  984.    [6] P. Goyal, S.S. Lam and H.M. Vin, "Determining End-to-End Delay
  985.    Bounds in Heterogeneous Networks," in Proc. 5th Intl. Workshop on
  986.    Network and Operating System Support for Digital Audio and Video,
  987.    April 1995.
  988.  
  989.    [7] A.K.J. Parekh, A Generalized Processor Sharing Approach to Flow
  990.    Control in Integrated Services Networks, MIT Laboratory for
  991.    Information and Decision Systems, Report LIDS-TH-2089, February 1992.
  992.  
  993.    [8] S. Shenker and J. Wroclawski. "General Characterization
  994.    Parameters for Integrated Service Network Elements", Internet Draft,
  995.    July 1996, <draft-ietf-intserv-charac-02.txt>
  996.  
  997.    [9] J. Wroclawski, "Use of RSVP with IETF Integrated Services",
  998.    Internet Draft, July 1996, <draft-ietf-intserv-rsvp-use-00.txt>
  999.  
  1000.    [10] B. Braden, et. al. "Resource Reservation Protocol (RSVP) -
  1001.    Version 1 Functional Specification", Internet Draft, July 1996,
  1002.    <draft-ietf-rsvp-spec-13.txt>
  1003.  
  1004.  
  1005.  
  1006. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 18]
  1007.  
  1008. INTERNET-DRAFT  draft-ietf-intserv-guaranteed-svc-06.txt  13 August 1996
  1009.  
  1010.  
  1011. Authors' Addresses:
  1012.  
  1013.    Scott Shenker
  1014.    Xerox PARC
  1015.    3333 Coyote Hill Road
  1016.    Palo Alto, CA  94304-1314
  1017.  
  1018.    email: shenker@parc.xerox.com
  1019.    415-812-4840
  1020.    415-812-4471 (FAX)
  1021.  
  1022.  
  1023.    Craig Partridge
  1024.    BBN
  1025.    2370 Amherst St
  1026.    Palo Alto CA 94306
  1027.  
  1028.    email: craig@bbn.com
  1029.  
  1030.  
  1031.    Roch Guerin
  1032.    IBM T.J. Watson Research Center
  1033.    Yorktown Heights, NY 10598
  1034.  
  1035.    email: guerin@watson.ibm.com
  1036.    914-784-7038
  1037.    914-784-6318 (FAX)
  1038.  
  1039.  
  1040.  
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.  
  1047.  
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062. Shenker/Partridge/Guerin    Expires 2/13/97                    [Page 19]
  1063.