home *** CD-ROM | disk | FTP | other *** search
/ Internet Core Protocols / Oreilly-InternetCoreProtocols.iso / RFCs / rfc2638.txt < prev    next >
Encoding:
Text File  |  1999-10-14  |  72.5 KB  |  1,460 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          K. Nichols
  8. Request for Comments: 2638                                    V. Jacobson
  9. Category: Informational                                             Cisco
  10.                                                                  L. Zhang
  11.                                                                      UCLA
  12.                                                                 July 1999
  13.  
  14.  
  15.     A Two-bit Differentiated Services Architecture for the Internet
  16.  
  17. Status of this Memo
  18.  
  19.    This memo provides information for the Internet community.  It does
  20.    not specify an Internet standard of any kind.  Distribution of this
  21.    memo is unlimited.
  22.  
  23. Copyright Notice
  24.  
  25.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  26.  
  27. Abstract
  28.  
  29.    This document was originally submitted as an internet draft in
  30.    November of 1997. As one of the documents predating the formation of
  31.    the IETF's Differentiated Services Working Group, many of the ideas
  32.    presented here, in concert with Dave Clark's subsequent presentation
  33.    to the December 1997 meeting of the IETF Integrated Services Working
  34.    Group, were key to the work which led to RFCs 2474 and 2475 and the
  35.    section on allocation remains a timely proposal. For this reason, and
  36.    to provide a reference, it is being submitted in its original form.
  37.    The forwarding path portion of this document is intended as a record
  38.    of where we were at in late 1997 and not as an indication of future
  39.    direction.
  40.  
  41.    The postscript version of this document includes Clark's slides as an
  42.    appendix. The postscript version of this document also includes many
  43.    figures that aid greatly in its readability.
  44.  
  45. 1. Introduction
  46.  
  47.    This document presents a differentiated services architecture for the
  48.    internet. Dave Clark and Van Jacobson each presented work on
  49.    differentiated services at the Munich IETF meeting [2,3]. Each
  50.    explained how to use one bit of the IP header to deliver a new kind
  51.    of service to packets in the internet. These were two very different
  52.    kinds of service with quite different policy assumptions. Ensuing
  53.    discussion has convinced us that both service types have merit and
  54.    that both service types can be implemented with a set of very similar
  55.  
  56.  
  57.  
  58. Nichols, et al.              Informational                      [Page 1]
  59.  
  60. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  61.  
  62.  
  63.    mechanisms. We propose an architectural framework that permits the
  64.    use of both of these service types and exploits their similarities in
  65.    forwarding path mechanisms. The major goals of this architecture are
  66.    each shared with one or both of those two proposals: keep the
  67.    forwarding path simple, push complexity to the edges of the network
  68.    to the extent possible, provide a service that avoids assumptions
  69.    about the type of traffic using it, employ an allocation policy that
  70.    will be compatible with both long-term and short-term provisioning,
  71.    make it possible for the dominant Internet traffic model to remain
  72.    best-effort.
  73.  
  74.    The major contributions of this document are to present two distinct
  75.    service types, a set of general mechanisms for the forwarding path
  76.    that can be used to implement a range of differentiated services and
  77.    to propose a flexible framework for provisioning a differentiated
  78.    services network. It is precisely this kind of architecture that is
  79.    needed for expedient deployment of differentiated services: we need a
  80.    framework and set of primitives that can be implemented in the
  81.    short-term and provide interoperable services, yet can provide a
  82.    "sandbox" for experimentation and elaboration that can lead in time
  83.    to more levels of differentiation within each service as needed.
  84.  
  85.    At the risk of belaboring an analogy, we are motivated to provide
  86.    services tiers in somewhat the same fashion as the airlines do with
  87.    first class, business class and coach class. The latter also has
  88.    tiering built in due to the various restrictions put on the purchase.
  89.    A part of the analogy we want to stress is that best effort traffic,
  90.    like coach class seats on an airplane, is still expected to make up
  91.    the bulk of internet traffic. Business and first class carry a small
  92.    number of passengers, but are quite important to the economics of the
  93.    airline industry. The various economic forces and realities combine
  94.    to dictate the relative allocation of the seats and to try to fill
  95.    the airplane. We don't expect that differentiated services will
  96.    comprise all the traffic on the internet, but we do expect that new
  97.    services will lead to a healthy economic and service environment.
  98.  
  99.    This document is organized into sections describing service
  100.    architecture, mechanisms, the bandwidth allocation architecture, how
  101.    this architecture might interoperate with RSVP/int-serv work, and
  102.    gives recommendations for deployment.
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Nichols, et al.              Informational                      [Page 2]
  115.  
  116. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  117.  
  118.  
  119. 2. Architecture
  120.  
  121. 2.1 Background
  122.  
  123.    The current internet delivers one type of service, best-effort, to
  124.    all traffic. A number of proposals have been made concerning the
  125.    addition of enhanced services to the Internet. We focus on two
  126.    particular methods of adding a differentiated level of service to IP,
  127.    each designated by one bit [1,2,3]. These services represent a
  128.    radical departure from the Internet's traditional service, but they
  129.    are also a radical departure from traditional "quality of service"
  130.    architectures which rely on circuit-based models. Both these
  131.    proposals seek to define a single common mechanism that is used by
  132.    interior network routers, pushing most of the complexity and state of
  133.    differentiated services to the network edges. Both use bandwidth as
  134.    the resource that is being requested and allocated. Clark and
  135.    Wroclawski defined an "Assured" service that follows "expected
  136.    capacity" usage profiles that are statistically provisioned [3]. The
  137.    assurance that the user of such a service receives is that such
  138.    traffic is unlikely to be dropped as long as it stays within the
  139.    expected capacity profile. The exact meaning of "unlikely" depends on
  140.    how well provisioned the service is. An Assured service traffic flow
  141.    may exceed its Profile, but the excess traffic is not given the same
  142.    assurance level. Jacobson defined a "Premium" service that is
  143.    provisioned according to peak capacity Profiles that are strictly not
  144.    oversubscribed and that is given its own high-priority queue in
  145.    routers [2]. A Premium service traffic flow is shaped and hard-
  146.    limited to its provisioned peak rate and shaped so that bursts are
  147.    not injected into the network. Premium service presents a "virtual
  148.    wire" where a flow's bursts may queue at the shaper at the edge of
  149.    the network, but thereafter only in proportion to the indegree of
  150.    each router. Despite their many similarities, these two approaches
  151.    result in fundamentally different services. The former uses buffer
  152.    management to provide a "better effort" service while the latter
  153.    creates a service with little jitter and queueing delay and no need
  154.    for queue management on the Premium packets's queue.
  155.  
  156.    An Assured service was introduced in [3] by Clark and Wroclawski,
  157.    though we have made some alterations in its specification for our
  158.    architecture. Further refinements and an "Expected Capacity"
  159.    framework are given in Clark and Fang [10].  This framework is
  160.    focused on "providing different levels of best-effort service at
  161.    times of network congestion" but also mentions that it is possible to
  162.    have a separate router queue to implement a "guaranteed" level of
  163.    assurance.  We believe this framework and our Two-bit architecture
  164.    are compatible but this needs further exploration.  As Premium
  165.    service has not been documented elsewhere, we describe it next and
  166.    follow this with a description of the two-bit architecture.
  167.  
  168.  
  169.  
  170. Nichols, et al.              Informational                      [Page 3]
  171.  
  172. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  173.  
  174.  
  175. 2.2 Premium service
  176.  
  177.    In [2], a Premium service was presented that is fundamentally
  178.    different from the Internet's current best effort service. This
  179.    service is not meant to replace best effort but primarily to meet an
  180.    emerging demand for a commercial service that can share the network
  181.    with best effort traffic. This is desirable economically, since the
  182.    same network can be used for both kinds of traffic. It is expected
  183.    that Premium traffic would be allocated a small percentage of the
  184.    total network capacity, but that it would be priced much higher. One
  185.    use of such a service might be to create "virtual leased lines",
  186.    saving the cost of building and maintaining a separate network.
  187.    Premium service, not unlike a standard telephone line, is a capacity
  188.    which the customer expects to be there when the receiver is lifted,
  189.    although it may, depending on the household, be idle a good deal of
  190.    the time.  Provisioning Premium traffic in this way reduces the
  191.    capacity of the best effort internet by the amount of Premium
  192.    allocated, in the worst case, thus it would have to be priced
  193.    accordingly. On the other hand, whenever that capacity is not being
  194.    used it is available to best effort traffic. In contrast to normal
  195.    best effort traffic which is bursty and requires queue management to
  196.    deal fairly with congestive episodes, this Premium service by design
  197.    creates very regular traffic patterns and small or nonexistent
  198.    queues.
  199.  
  200.    Premium service levels are specified as a desired peak bit-rate for a
  201.    specific flow (or aggregation of flows). The user contract with the
  202.    network is not to exceed the peak rate. The network contract is that
  203.    the contracted bandwidth will be available when traffic is sent.
  204.    First-hop routers (or other edge devices) filter the packets entering
  205.    the network, set the Premium bit of those that match a Premium
  206.    service specification, and perform traffic shaping on the flow that
  207.    smooths all traffic bursts before they enter the network. This
  208.    approach requires no changes in hosts. A compliant router along the
  209.    path needs two levels of priority queueing, sending all packets with
  210.    the Premium bit set first. Best-effort traffic is unmarked and queued
  211.    and sent at the lower priority. This results in two "virtual
  212.    networks": one which is identical to today's Internet with buffers
  213.    designed to absorb traffic bursts; and one where traffic is limited
  214.    and shaped to a contracted peak-rate, but packets move through a
  215.    network of queues where they experience almost no queueing delay.
  216.  
  217.    In this architecture, forwarding path decisions are made separately
  218.    and more simply than the setting up of the service agreements and
  219.    traffic profiles. With the exception of policing and shaping at
  220.    administrative or "trust" boundaries, the only actions that need to
  221.    be handled in the forwarding path are to classify a packet into one
  222.    of two queues on a single bit and to service the two queues using
  223.  
  224.  
  225.  
  226. Nichols, et al.              Informational                      [Page 4]
  227.  
  228. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  229.  
  230.  
  231.    simple priority. Shaping must include both rate and burst parameters;
  232.    the latter is expected to be small, in the one or two packet range.
  233.    Policing at boundaries enforces rate compliance, and may be
  234.    implemented by a simple token bucket. The admission and set-up
  235.    procedures are expected to evolve, in time, to be dynamically
  236.    configurable and fairly complex while the mechanisms in the
  237.    forwarding path remain simple.
  238.  
  239.    A Premium service built on this architecture can be deployed in a
  240.    useful way once the forwarding path mechanisms are in place by making
  241.    static allocations. Traffic flows can be designated for special
  242.    treatment through network management configuration. Traffic flows
  243.    should be designated by the source, the destination, or any
  244.    combination of fields in the packet header. First-hop (of leaf)
  245.    routers will filter flows on all or part of the header tuple
  246.    consisting of the source IP address, destination IP address, protocol
  247.    identifier, source port number, and destination port number. Based on
  248.    this classification, a first-hop router performs traffic shaping and
  249.    sets the designated Premium bit of the precedence field. End-hosts
  250.    are thus not required to be "differentiated services aware", though
  251.    if and when end-systems become universally "aware", they might do
  252.    their own shaping and first-hop routers merely police.
  253.  
  254.    Adherence to the subscribed rate and burst size must be enforced at
  255.    the entry to the network, either by the end-system or by the first-
  256.    hop router. Within an intranet, administrative domain, or "trust
  257.    region" the packets can then be classified and serviced solely on the
  258.    Premium bit. Where packets cross a boundary, the policing function is
  259.    critical. The entered region will check the prioritized packet flow
  260.    for conformance to a rate the two regions have agreed upon,
  261.    discarding packets that exceed the rate. It is thus in the best
  262.    interests of a region to ensure conformance to the agreed-upon rate
  263.    at the egress. This requirement means that Premium traffic is burst-
  264.    free and, together with the no oversubscription rule, leads directly
  265.    to the observation that Premium queues can easily be sized to prevent
  266.    the need to drop packets and thus the need for a queue management
  267.    policy. At each router, the largest queue size is related to the in-
  268.    degree of other routers and is thus quite small, on the order of ten
  269.    packets.
  270.  
  271.    Premium bandwidth allocations must not be oversubscribed as they
  272.    represent a commitment by the network and should be priced
  273.    accordingly. Note that, in this architecture, Premium traffic will
  274.    also experience considerably less delay variation than either best
  275.    effort traffic or the Assured data traffic of [3]. Premium rates
  276.    might be configured on a subscription basis in the near-term, or on-
  277.    demand when dynamic set-up or signaling is available.
  278.  
  279.  
  280.  
  281.  
  282. Nichols, et al.              Informational                      [Page 5]
  283.  
  284. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  285.  
  286.  
  287.    Figure 1 shows how a Premium packet flow is established within a
  288.    particular administrative domain, Company A, and sent across the
  289.    access link to Company A's ISP. Assume that the host's first-hop
  290.    router has been configured to match a flow from the host's IP address
  291.    to a destination IP address that is reached through ISP. A Premium
  292.    flow is configured from a host with a rate which is both smaller than
  293.    the total Premium allocation Company A has from the ISP, r bytes per
  294.    second, and smaller than the amount of that allocation has been
  295.    assigned to other hosts in Company A. Packets are not marked in any
  296.    special way when they leave the host. The first-hop router clears the
  297.    Premium bit on all arriving packets, sets the Premium bit on all
  298.    packets in the designated flow, shapes packets in the Premium flow to
  299.    a configured rate and burst size, queues best-effort unmarked packets
  300.    in the low priority queue and shaped Premium packets in the high
  301.    priority queue, and sends packets from those two queues at simple
  302.    priority. Intermediate routers internal to Company A enqueue packets
  303.    in one of two output queues based on the Premium bit and service the
  304.    queues with simple priority. Border routers perform quite different
  305.    tasks, depending on whether they are processing an egress flow or an
  306.    ingress flow. An egress border router may perform some reshaping on
  307.    the aggregate Premium traffic to conform to rate r, depending on the
  308.    number of Premium flows aggregated. Ingress border routers only need
  309.    to perform a simple policing function that can be implemented with a
  310.    token bucket. In the example, the ISP accepts all Premium packets
  311.    from A as long as the flow does not exceed r bytes per second.
  312.  
  313.    Figure 1. Premium traffic flow from end-host to organization's ISP
  314.  
  315. 2.3 Two-bit differentiated services architecture
  316.  
  317.    Clark's and Jacobson's proposals are markedly similar in the location
  318.    and type of functional blocks that are needed to implement them.
  319.    Furthermore, they implement quite different services which are not
  320.    incompatible in a network. The Premium service implements a
  321.    guaranteed peak bandwidth service with negligible queueing delay that
  322.    cannot starve best effort traffic and can be allocated in a fairly
  323.    straightforward fashion. This service would seem to have a strong
  324.    appeal for commercial applications, video broadcasts, voice-over-IP,
  325.    and VPNs. On the other hand, this service may prove both too
  326.    restrictive (in its hard limits) and overdesigned (no overallocation)
  327.    for some applications. The Assured service implements a service that
  328.    has the same delay characteristics as (undropped) best effort packets
  329.    and the firmness of its guarantee depends on how well individual
  330.    links are provisioned for bursts of Assured packets. On the other
  331.    hand, it permits traffic flows to use any additional available
  332.    capacity without penalty and occasional dropped packets for short
  333.    congestive periods may be acceptable to many users. This service
  334.    might be what an ISP would provide to individual customers who are
  335.  
  336.  
  337.  
  338. Nichols, et al.              Informational                      [Page 6]
  339.  
  340. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  341.  
  342.  
  343.    willing to pay a bit more for internet service that seems unaffected
  344.    by congestive periods. Both services are only as good as their
  345.    admission control schemes, though this can be more difficult for
  346.    traffic which is not peak-rate allocated.
  347.  
  348.    There may be some additional benefits of deploying both services. To
  349.    the extent that Premium service is a conservative allocation of
  350.    resources, unused bandwidth that had been allocated to Premium might
  351.    provide some "headroom" for underallocated or burst periods of
  352.    Assured traffic or for best effort. Network elements that deploy both
  353.    services will be performing RED queue management on all non-Premium
  354.    traffic, as suggested in [4], and the effects of mixing the Premium
  355.    streams with best effort might serve to reduce burstiness in the
  356.    latter. A strength of the Assured service is that it allows bursts to
  357.    happen in their natural fashion, but this also makes the
  358.    provisioning, admission control and allocation problem more difficult
  359.    so it may take more time and experimentation before this admission
  360.    policy for this service is completely defined. A Premium service
  361.    could be deployed that employs static allocations on peak rates with
  362.    no statistical sharing.
  363.  
  364.    As there appear to be a number of advantages to an architecture that
  365.    permits these two types of service and because, as we shall see, they
  366.    can be made to share many of the same mechanisms, we propose
  367.    designating two bit-patterns from the IP header precedence field. We
  368.    leave the explicit designation of these bit-patterns to the standards
  369.    process thus we use the shorthand notation of denoting each pattern
  370.    by a bit, one we will call the Premium or P-bit, the other we call
  371.    the assurance or A-bit. It is possible for a network to implement
  372.    only one of these services and to have network elements that only
  373.    look at the one applicable bit, but we focus on the two service
  374.    architecture. Further, we assume the case where no changes are made
  375.    in the hosts, appropriate packet marking all being done in the
  376.    network, at the first-hop, or leaf, router. We describe the
  377.    forwarding path architecture in this section, assuming that the
  378.    service has been allocated through mechanisms we will discuss in
  379.    section 4.
  380.  
  381.    In a more general sense, Premium service denotes packets that are
  382.    enqueued at a higher priority than the ordinary best-effort queue.
  383.    Similarly, Assured service denotes packets that are treated
  384.    preferentially with respect to the dropping probability within the
  385.    "normal" queue. There are a number of ways to add more service levels
  386.    within each of these service types [7], but this document takes the
  387.    position of specifying the base-level services of Premium and
  388.    Assured.
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Nichols, et al.              Informational                      [Page 7]
  395.  
  396. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  397.  
  398.  
  399.    The forwarding path mechanisms can be broken down into those that
  400.    happen at the input interface, before packet forwarding, and those
  401.    that happen at the output interface, after packet forwarding.
  402.    Intermediate routers only need to implement the post packet
  403.    forwarding functions, while leaf and border routers must perform
  404.    functions on arriving packets before forwarding. We describe the
  405.    mechanisms this way for illustration; other ways of composing their
  406.    functions are possible.
  407.  
  408.    Leaf routers are configured with a traffic profile for a particular
  409.    flow based on its packet header. This functionality has been defined
  410.    by the RSVP Working Group in RFC 2205. Figure 2 shows what happens to
  411.    a packet that arrives at the leaf router, before it is passed to the
  412.    forwarding engine. All arriving packets must have both the A-bit and
  413.    the P-bit cleared after which packets are classified on their header.
  414.    If the header does not match any configured values, it is immediately
  415.    forwarded. Matched flows pass through individual Markers that have
  416.    been configured from the usage profile for that flow: service class
  417.    (Premium or Assured), rate (peak for Premium, "expected" for
  418.    Assured), and permissible burst size (may be optional for Premium).
  419.    Assured flow packets emerge from the Marker with their A-bits set
  420.    when the flow is in conformance to its Profile, but the flow is
  421.    otherwise unchanged. For a Premium flow, the Marker will hold packets
  422.    when necessary to enforce their configured rate. Thus Premium flow
  423.    packets emerge from the Marker in a shaped flow with their P-bits
  424.    set. (It is possible for Premium flow packets to be dropped inside of
  425.    the Marker as we describe below.) Packets are passed to the
  426.    forwarding engine when they emerge from Markers. Packets that have
  427.    either their P or A bits set we will refer to as Marked packets.
  428.  
  429.    Figure 2. Block diagram of leaf router input functionality
  430.  
  431.    Figure 3 shows the inner workings of the Marker. For both Assured and
  432.    Premium packets, a token bucket "fills" at the flow rate that was
  433.    specified in the usage profile. For Assured service, the token bucket
  434.    depth is set by the Profile's burst size. For Premium service, the
  435.    token bucket depth must be limited to the equivalent of only one or
  436.    two packets. (We suggest a depth of one packet in early deployments.)
  437.    When a token is present, Assured flow packets have their A-bit set to
  438.    one, otherwise the packet is passed to the forwarding engine. For
  439.    Premium-configured Marker, arriving packets that see a token present
  440.    have their P-bits set and are forwarded, but when no token is
  441.    present, Premium flow packets are held until a token arrives. If a
  442.    Premium flow bursts enough to overflow the holding queue, its packets
  443.    will be dropped. Though the flow set up data can be used to configure
  444.    a size limit for the holding queue (this would be the meaning of a
  445.    "burst" in Premium service), it is not necessary. Unconfigured
  446.    holding queues should be capable of holding at least two bandwidth-
  447.  
  448.  
  449.  
  450. Nichols, et al.              Informational                      [Page 8]
  451.  
  452. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  453.  
  454.  
  455.    delay products, adequate for TCP connections. A smaller value might
  456.    be used to suit delay requirements of a specific application.
  457.  
  458.    Figure 3. Markers to implement the two different services
  459.  
  460.    In practice, the token bucket should be implemented in bytes and a
  461.    token is considered to be present if the number of bytes in the
  462.    bucket is equal or larger to the size of the packet. For Premium, the
  463.    bucket can only be allowed to fill to the maximum packet size; while
  464.    Assured may fill to the configured burst parameter. Premium traffic
  465.    is held until a sufficient byte credit has accumulated and this
  466.    holding buffer provides the only real queue the flow sees in the
  467.    network. For Assured, traffic, we just test if the bytes in the
  468.    bucket are sufficient for the packet size and set A if so. If not,
  469.    the only difference is that A is not set. Assured traffic goes into a
  470.    queue following this step and potentially sees a queue at every hop
  471.    along its path.
  472.  
  473.    Each output interface of a router must have two queues and must
  474.    implement a test on the P-bit to select a packet's output queue. The
  475.    two queues must be serviced by simple priority, Premium packets
  476.    first. Each output interface must implement the RED-based RIO
  477.    mechanism described in [3] on the lower priority queue. RIO uses two
  478.    thresholds for when to begin dropping packets, a lower one based on
  479.    total queue occupancy for ordinary best effort traffic and one based
  480.    on the number of packets enqueued that have their A-bit set. This
  481.    means that any action preferential to Assured service traffic will
  482.    only be taken when the queue's capacity exceeds the threshold value
  483.    for ordinary best effort service. In this case, only unmarked packets
  484.    will be dropped (using the RED algorithm) unless the threshold value
  485.    for Assured service is also reached. Keeping an accurate count of the
  486.    number of A-bit packets currently in a queue requires either testing
  487.    the A-bit at both entry and exit of the queue or some additional
  488.    state in the router. Figure 4 is a block diagram of the output
  489.    interface for all routers.
  490.  
  491.    Figure 4. Router output interface for two-bit architecture
  492.  
  493.    The packet output of a leaf router is thus a shaped stream of packets
  494.    with P-bits set mingled with an unshaped best effort stream of
  495.    packets, some of which may have A-bits set. Premium service clearly
  496.    cannot starve best effort traffic because it is both burst and
  497.    bandwidth controlled. Assured service might rely only on a
  498.    conservative allocation to prevent starvation of unmarked traffic,
  499.    but bursts of Assured traffic might then close out best-effort
  500.    traffic at bottleneck queues during congestive periods.
  501.  
  502.  
  503.  
  504.  
  505.  
  506. Nichols, et al.              Informational                      [Page 9]
  507.  
  508. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  509.  
  510.  
  511.    After [3], we designate the forwarding path objects that test flows
  512.    against their usage profiles "Profile Meters". Border routers will
  513.    require Profile Meters at their input interfaces. The bilateral
  514.    agreement between adjacent administrative domains must specify a peak
  515.    rate on all P traffic and a rate and burst for A traffic (and
  516.    possibly a start time and duration). A Profile Meter is required at
  517.    the ingress of a trust region to ensure that differentiated service
  518.    packet flows are in compliance with their agreed-upon rates. Non-
  519.    compliant packets of Premium flows are discarded while non-compliant
  520.    packets of Assured flows have their A-bits reset. For example, in
  521.    figure 1, if the ISP has agreed to supply Company A with r bytes/sec
  522.    of Premium service, P-bit marked packets that enter the ISP through
  523.    the link from Company A will be dropped if they exceed r. If instead,
  524.    the service in figure 1 was Assured service, the packets would simply
  525.    be unmarked, forwarded as best effort.
  526.  
  527.    The simplest border router input interface is a Profile Meter
  528.    constructed from a token bucket configured with the contracted rate
  529.    across that ingress link (see figure 5). Each type, Premium or
  530.    Assured, and each interface must have its own profile meter
  531.    corresponding to a particular class across a particular boundary.
  532.    (This is in contrast to models where every flow that crosses the
  533.    boundary must be separately policed and/or shaped.) The exact
  534.    mechanisms required at a border router input interface depend on the
  535.    allocation policy deployed; a more complex approach is presented in
  536.    section 4.
  537.  
  538.    Figure 5. Border router input interface Profile Meters
  539.  
  540. 3. Mechanisms
  541.  
  542. 3.1 Forwarding Path Primitives
  543.  
  544.    Section 2.3 introduced the forwarding path objects of Markers and
  545.    Profile Meters. In this section we specify the primitive building
  546.    blocks required to compose them. The primitives are: general
  547.    classifier, bit-pattern classifier, bit setter, priority queues,
  548.    policing token bucket and shaping token bucket. These primitives can
  549.    compose a Marker (either a policing or a shaping token bucket plus a
  550.    bit setter) and a Profile Meter (a policing token bucket plus a
  551.    dropper or bit setter).
  552.  
  553.    General Classifier: Leaf or first-hop routers must perform a
  554.    transport-level signature matching based on a tuple in the packet
  555.    header, a functionality which is part of any RSVP-capable router.  As
  556.    described above, packets whose tuples match one of the configured
  557.    flows are conformance tested and have the appropriate service bit
  558.    set.  This function is memory- and processing-intensive, but is kept
  559.  
  560.  
  561.  
  562. Nichols, et al.              Informational                     [Page 10]
  563.  
  564. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  565.  
  566.  
  567.    at the edges of the network where there are fewer flows.
  568.  
  569.    Bit-pattern classifier: This primitive comprises a simple two-way
  570.    decision based on whether a particular bit-pattern in the IP header
  571.    is set or not. As in figure 4, the P-bit is tested when a packet
  572.    arrives at a non-leaf router to determine whether to enqueue it in
  573.    the high priority output queue or the low priority packet queue. The
  574.    A-bit of packets bound for the low priority queue is tested to 1)
  575.    increment the count of Assured packets in the queue if set and 2)
  576.    determine which drop probability will be used for that packet.
  577.    Packets exiting the low priority queue must also have the A-bit
  578.    tested so that the count of enqueued Assured packets can be
  579.    decremented if necessary.
  580.  
  581.    Bit setter: The A-bits and P-bits must be set or cleared in several
  582.    places. A functional block that sets the appropriate bits of the IP
  583.    header to a configured bit-pattern would be the most general.
  584.  
  585.    Priority queues: Every network element must include (at least) two
  586.    levels of simple priority queueing. The high priority queue is for
  587.    the Premium traffic and the service rule is to send packets in that
  588.    queue first and to exhaustion. Recall that Premium traffic must never
  589.    be oversubscribed, thus Premium traffic should see little or no
  590.    queue.
  591.  
  592.    Shaping token bucket:This is the token bucket required at the leaf
  593.    router for Premium traffic and shown in figure 3. As we shall see,
  594.    shaping is also useful at egress points of a trust region. An
  595.    arriving packet is immediately forwarded if there is a token present
  596.    in the bucket, otherwise the packet is enqueued until the bucket
  597.    contains tokens sufficient to send it. Shaping requires clocking
  598.    mechanisms, packet memory, and some state block for each flow and is
  599.    thus a memory and computation-intensive process.
  600.  
  601.    Policing token bucket: This is the token bucket required for Profile
  602.    Meters and shown in figure 5. Policing token buckets never hold
  603.    arriving packets, but check on arrival to see if a token is available
  604.    for the packet's service class. If so, the packet is forwarded
  605.    immediately. If not, the policing action is taken, dropping for
  606.    Premium and reclassifying or unmarking for Assured.
  607.  
  608. 3.2 Passing configuration information
  609.  
  610.     Clearly, mechanisms are required to communicate the information
  611.    about the request to the leaf router. This configuration information
  612.    is the rate, burst, and whether it is a Premium or Assured type.
  613.    There may also need to be a specific field to set or clear this
  614.    configuration. This information can be passed in a number of ways,
  615.  
  616.  
  617.  
  618. Nichols, et al.              Informational                     [Page 11]
  619.  
  620. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  621.  
  622.  
  623.    including using the semantics of RSVP, SNMP, or directly set by a
  624.    network administrator in some other way. There must be some
  625.    mechanisms for authenticating the sender of this information. We
  626.    expect configuration to be done in a variety of ways in early
  627.    deployments and a protocol and mechanism for this to be a topic for
  628.    future standards work.
  629.  
  630. 3.3 Discussion
  631.  
  632.    The requirements of shapers motivate their placement at the edges of
  633.    the network where the state per router can be smaller than in the
  634.    middle of a network. The greatest burden of flow matching and shaping
  635.    will be at leaf routers where the speeds and buffering required
  636.    should be less than those that might be required deeper in the
  637.    network. This functionality is not required at every network element
  638.    on the path. Routers that are internal to a trust region will not
  639.    need to shape traffic. Border routers may need or desire to shape the
  640.    aggregate flow of Marked packets at their egress in order to ensure
  641.    that they will not burst into non-compliance with the policing
  642.    mechanism at the ingress to the other domain (though this may not be
  643.    necessary if the in-degree of the router is low). Further, the
  644.    shaping would be applied to an aggregation of all the Premium flows
  645.    that exit the domain via that path, not to each flow individually.
  646.  
  647.    These mechanisms are within reach of today's technology and it seems
  648.    plausible to us that Premium and Assured services are all that is
  649.    needed in the Internet. If, in time, these services are found
  650.    insufficient, this architecture provides a migration path for
  651.    delivering other kinds of service levels to traffic. The A- and P-
  652.    bits would continue to be used to identify traffic that gets Marked
  653.    service, but further filter matching could be done on packet headers
  654.    to differentiate service levels further. Using the bits this way
  655.    reduces the number of packets that have to have further matching done
  656.    on them rather than filtering every incoming packet. More queue
  657.    levels and more complex scheduling could be added for P-bit traffic
  658.    and more levels of drop priority could be added for A-bit traffic if
  659.    experience shows them to be necessary and processing speeds are
  660.    sufficient. We propose that the services described here be considered
  661.    as "at least" services. Thus, a network element should at least be
  662.    capable of mapping all P-bit traffic to Premium service and of
  663.    mapping all A-bit traffic to be treated with one level of priority in
  664.    the "best effort" queue (it appears that the single level of A-bit
  665.    traffic should map to a priority that is equivalent to the best level
  666.    in a multi-level element that is also in the path).
  667.  
  668.    On the other hand, what is the downside of deploying an architecture
  669.    for both classes of service if later experience convinces us that
  670.    only one of them is needed? The functional blocks of both service
  671.  
  672.  
  673.  
  674. Nichols, et al.              Informational                     [Page 12]
  675.  
  676. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  677.  
  678.  
  679.    classes are similar and can be provided by the same mechanism,
  680.    parameterized differently. If Assured service is not used, very
  681.    little is lost. A RED-managed best effort queue has been strongly
  682.    recommended in [4] and, to the extent that the deployment of this
  683.    architecture pushes the deployment of RED-managed best effort queues,
  684.    it is clearly a positive. If Premium service goes unused, the two-
  685.    queues with simple priority service is not required and the shaping
  686.    function of the Marker may be unused, thus these would impose an
  687.    unnecessary implementation cost.
  688.  
  689. 4. The Architectural Framework for Marked Traffic Allocation
  690.  
  691.    Thus far we have focused on the service definitions and the
  692.    forwarding path mechanisms. We now turn to the problem of allocating
  693.    the level of Marked traffic throughout the Internet. We observe that
  694.    most organizations have fixed portions of their budgets, including
  695.    data communications, that are determined on an annual or quarterly
  696.    basis. Some additional monies might be attached to specific projects
  697.    for discretionary costs that arise in the shorter term. In turn,
  698.    service providers (ISPs and NSPs) must do their planning on annual
  699.    and quarterly bases and thus cannot be expected to provide
  700.    differentiated services purely "on call". Provisioning sets up static
  701.    levels of Marked traffic while call set-up creates an allocation of
  702.    Marked traffic for a single flow's duration. Static levels can be
  703.    provisioned with time-of-day specifications, but cannot be changed in
  704.    response to a dynamic message. We expect both kinds of bandwidth
  705.    allocation to be important. The purchasers of Marked services can
  706.    generally be expected to work on longer-term budget cycles where
  707.    these services will be accounted for similarly to many information
  708.    services today. A mail-order house may wish to purchase a fixed
  709.    allocation of bandwidth in and out of its web-server to give
  710.    potential customers a "fast" feel when browsing their site. This
  711.    allocation might be based on hit rates of the previous quarter or
  712.    some sort of industry-based averages. In addition, there needs to be
  713.    a dynamic allocation capability to respond to particular events, such
  714.    as a demonstration, a network broadcast by a company's CEO, or a
  715.    particular network test. Furthermore, a dynamic capability may be
  716.    needed in order to meet a precommitted service level when the
  717.    particular source or destination is allowed to be "anywhere on the
  718.    Internet". "Dynamic" covers the range from a telephoned or e-mailed
  719.    request to a signalling type model. A strictly statically allocated
  720.    scenario is expected to be useful in initial deployment of
  721.    differentiated services and to make up a major portion of the Marked
  722.    traffic for the forseeable future.
  723.  
  724.    Without a "per call" dynamic set up, the preconfiguring of usage
  725.    profiles can always be construed as "paying for bits you don't use"
  726.    whether the type of service is Premium or Assured. We prefer to think
  727.  
  728.  
  729.  
  730. Nichols, et al.              Informational                     [Page 13]
  731.  
  732. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  733.  
  734.  
  735.    of this as paying for the level of service that one expects to have
  736.    available at any time, for example paying for a telephone line. A
  737.    customer might pay an additional flat fee to have the privilege of
  738.    calling a wide local area for no additional charge or might pay by
  739.    the call. Although a customer might pay on a "per call" basis for
  740.    every call made anywhere, it generally turns out not to be the most
  741.    economical option for most customers. It's possible similar pricing
  742.    structures might arise in the internet.
  743.  
  744.    We use Allocation to refer to the process of making Marked traffic
  745.    commitments anywhere along this continuum from strictly preallocated
  746.    to dynamic call set-up and we require an Allocation architecture
  747.    capable of encompassing this entire spectrum in any mix. We further
  748.    observe that Allocation must follow organizational hierarchies, that
  749.    is each organization must have complete responsibility for the
  750.    Allocation of the Marked traffic resource within its domain. Finally,
  751.    we observe that the only chance of success for incremental deployment
  752.    lies in an Allocation architecture that is made up of bilateral
  753.    agreements, as multilateral agreements are much too complex to
  754.    administer. Thus, the Allocation architecture is made up of
  755.    agreements across boundaries as to the amount of Marked traffic that
  756.    will be allowed to pass. This is similar to "settlement" models used
  757.    today.
  758.  
  759. 4.1 Bandwidth Brokers: Allocating and Controlling Bandwidth Shares
  760.  
  761.    The goal of differentiated services is controlled sharing of some
  762.    organization's Internet bandwidth. The control can be done
  763.    independently by individuals, i.e., users set bit(s) in their packets
  764.    to distinguish their most important traffic, or it can be done by
  765.    agents that have some knowledge of the organization's priorities and
  766.    policies and allocate bandwidth with respect to those policies.
  767.    Independent labeling by individuals is simple to implement but
  768.    unlikely to be sufficient since it's unreasonable to expect all
  769.    individuals to know all their organization's priorities and current
  770.    network use and always mark their traffic accordingly.  Thus this
  771.    architecture is designed with agents called bandwidth brokers (BB)
  772.    [2], that can be configured with organizational policies, keep track
  773.    of the current allocation of marked traffic, and interpret new
  774.    requests to mark traffic in light of the policies and current
  775.    allocation.
  776.  
  777.    We note that such agents are inherent in any but the most trivial
  778.    notions of sharing.  Neither individuals nor the routers their
  779.    packets transit have the information necessary to decide which
  780.    packets are most important to the organization.  Since these agents
  781.    must exist, they can be used to allocate bandwidth for end-to-end
  782.    connections with far less state and simpler trust relationships than
  783.  
  784.  
  785.  
  786. Nichols, et al.              Informational                     [Page 14]
  787.  
  788. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  789.  
  790.  
  791.    deploying per flow or per filter guarantees in all network elements
  792.    on an end-to-end path. BBs make it possible for bandwidth allocation
  793.    to follow organizational hierarchies and, in concert with the
  794.    forwarding path mechanisms discussed in section 3, reduce the state
  795.    required to set up and maintain a flow over architectures that
  796.    require checking the full flow header at every network element.
  797.    Organizationally, the BB architecture is motivated by the observation
  798.    that multilateral agreements rarely work and this architecture allows
  799.    end-to-end services to be constructed out of purely bilateral
  800.    agreements. BBs only need to establish relationships of limited trust
  801.    with their peers in adjacent domains, unlike schemes that require the
  802.    setting of flow specifications in routers throughout an end-to-end
  803.    path. In practical technical terms, the BB architecture makes it
  804.    possible to keep state on an administrative domain basis, rather than
  805.    at every router and the service definitions of Premium and Assured
  806.    service make it possible to confine per flow state to just the leaf
  807.    routers.
  808.  
  809.    BBs have two responsibilities. Their primary one is to parcel out
  810.    their region's Marked traffic allocations and set up the leaf routers
  811.    within the local domain. The other is to manage the messages that are
  812.    sent across boundaries to adjacent regions' BBs. A BB is associated
  813.    with a particular trust region, one per domain. A BB has a policy
  814.    database that keeps the information on who can do what when and a
  815.    method of using that database to authenticate requesters. Only a BB
  816.    can configure the leaf routers to deliver a particular service to
  817.    flows, crucial for deploying a secure system. If the deployment of
  818.    Differentiated Services has advanced to the stage where dynamically
  819.    allocated, marked flows are possible between two adjacent domains,
  820.    BBs also provide the hook needed to implement this. Each domain's BB
  821.    establishes a secure association with its peer in the adjacent domain
  822.    to negotiate or configure a rate and a service class (Premium or
  823.    Assured) across the shared boundary and through the peer's domain. As
  824.    we shall see, it is possible for some types of service and
  825.    particularly in early implementations, that this "secure association"
  826.    is not automatic but accomplished through human negotiation and
  827.    subsequent manual configuration of the adjacent BBs according to the
  828.    negotiated agreement. This negotiated rate is a capability that a BB
  829.    controls for all hosts in its region.
  830.  
  831.    When an allocation is desired for a particular flow, a request is
  832.    sent to the BB. Requests include a service type, a target rate, a
  833.    maximum burst, and the time period when service is required. The
  834.    request can be made manually by a network administrator or a user or
  835.    it might come from another region's BB. A BB first authenticates the
  836.    credentials of the requester, then verifies there exists unallocated
  837.    bandwidth sufficient to meet the request. If a request passes these
  838.    tests, the available bandwidth is reduced by the requested amount and
  839.  
  840.  
  841.  
  842. Nichols, et al.              Informational                     [Page 15]
  843.  
  844. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  845.  
  846.  
  847.    the flow specification is recorded. In the case where the flow has a
  848.    destination outside this trust region, the request must fall within
  849.    the class allocation through the "next hop" trust region that was
  850.    established through a bilateral agreement of the two trust regions.
  851.    The requester's BB informs the adjacent region's BB that it will be
  852.    using some of this rate allocation. The BB configures the appropriate
  853.    leaf router with the information about the packet flow to be given a
  854.    service at the time that the service is to commence. This
  855.    configuration is "soft state" that the BB will periodically refresh.
  856.    The BB in the adjacent region is responsible for configuring the
  857.    border router to permit the allocated packet flow to pass and for any
  858.    additional configurations and negotiations within and across its
  859.    borders that will allow the flow to reach its final destination.
  860.  
  861.    At DMZs, there must be an unambiguous way to determine the local
  862.    source of a packet. An interface's source could be determined from
  863.    its MAC address which would then be used to classify packets as
  864.    coming across a logical link directly from the source domain
  865.    corresponding to that MAC address. Thus with this understanding we
  866.    can continue to use figures illustrating a single pipe between two
  867.    different domains.
  868.  
  869.    In this way, all agreements and negotiations are performed between
  870.    two adjacent domains. An initial request might cause communication
  871.    between BBs on several domains along a path, but each communication
  872.    is only between two adjacent BBs. Initially, these agreements will be
  873.    prenegotiated and fairly static. Some may become more dynamic as the
  874.    service evolves.
  875.  
  876. 4.2 Examples
  877.  
  878.    This section gives examples of BB transactions in a non-trivial,
  879.    multi-transit-domain Internet. The BB framework allows operating
  880.    points across a spectrum from "no signalling across boundaries" to
  881.    "each flow set up dynamically". We might expect to move across this
  882.    spectrum over time, as the necessary mechanisms are ubiquitously
  883.    deployed and BBs become more sophisticated, but the statically
  884.    allocated portions of the spectrum should always have uses. We
  885.    believe the ability to support this wide spectrum of choices
  886.    simultaneously will be important both in incremental deployment and
  887.    in allowing ISPs to make a wide range of offerings and pricings to
  888.    users. The examples of this section roughly follow the spectrum of
  889.    increasing sophistication. Note that we assume that domains contract
  890.    for some amount of Marked traffic which can be requested as either
  891.    Assured or Premium in each individual flow setup transaction. The
  892.    examples say "Marked" although actual transactions would have to
  893.    specify either Assured or Premium.
  894.  
  895.  
  896.  
  897.  
  898. Nichols, et al.              Informational                     [Page 16]
  899.  
  900. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  901.  
  902.  
  903.    A statically configured example with no BB messages exchanged: Here
  904.    all allocations are statically preallocated through purely bilateral
  905.    agreements between users (individual TCPs, individual hosts, campus
  906.    networks, or whole ISPs) [6]. The allocations are in the form of
  907.    usage profiles of rate, burst, and a time during which that profile
  908.    is to be active. Users and providers negotiate these Profiles which
  909.    are then installed in the user domain BB and in the provider domain
  910.    BB. No BB messages cross the boundary; we assume this negotiation is
  911.    done by human representatives of each domain. In this case, BBs only
  912.    have to perform one of their two functions, that of allocating this
  913.    Profile within their local domain. It is even possible to set all of
  914.    this suballocations up in advance and then the BB only needs to set
  915.    up and tear down the Profile at the proper time and to refresh the
  916.    soft state in the leaf routers. From the user domain BB, the Profile
  917.    is sent as soft state to the first hop router of the flow during the
  918.    specified time. These Profiles might be set using RSVP, a variant of
  919.    RSVP, SNMP, or some vendor-specific mechanism. Although this static
  920.    approach can work for all Marked traffic, due to the strictly not
  921.    oversubscribed requirement, it is only appropriate for Premium
  922.    traffic as long as it is kept to a small percentage of the bottleneck
  923.    path through a domain or is otherwise constrained to a well-known
  924.    behavior. Similar restrictions might hold for Assured depending on
  925.    the expectation associated with the service.
  926.  
  927.    In figure 6, we show an example of setting a Profile in a leaf
  928.    router. A usage profile has been negotiated with the ISP for the
  929.    entire domain and the BB parcels it out among individual flows as
  930.    requested. The leaf router mechanism is that shown in figure 3, with
  931.    the token bucket set to the parameters from the usage profile. The
  932.    ISP's BB would configure its own Profile Meter at the ingress router
  933.    from that customer to ensure the Profile was maintained. This
  934.    mechanism was shown in figure 5. We assume that the time duration and
  935.    start times for any Profile to be active are maintained in the BB.
  936.    The Profile is sent to the ingress device or cleared from the ingress
  937.    device by messages sent from the BB. In this example, we assume that
  938.    van@lbl wants to talk to ddc@mit. The LBL-BB is sent a request from
  939.    Van asking that premium service be assigned to a flow that is
  940.    designated as having source address "V:4" and going to destination
  941.    address "D:8". This flow should be configured for a rate of 128kb/sec
  942.    and allocated from 1pm to 3pm. The request must be "signed" in a
  943.    secure, verifiable manner. The request might be sent as data to the
  944.    LBL-BB, an e-mail message to a network administrator, or in a phone
  945.    call to a network administrator. The LBL-BB receives this message,
  946.    verifies that there is 128kb/sec of unused Premium service for the
  947.    domain from 1-3pm, then sends a message to Leaf1 that sets up an
  948.    appropriate Profile Meter. The message to Leaf1 might be an RSVP
  949.    message, or SNMP, or some proprietary method. All the domains passed
  950.    must have sufficient reserve capacity to meet this request.
  951.  
  952.  
  953.  
  954. Nichols, et al.              Informational                     [Page 17]
  955.  
  956. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  957.  
  958.  
  959.    Figure 6. Bandwidth Broker setting Profiles in leaf routers
  960.  
  961.    A statically configured example with BB messages exchanged: Next we
  962.    present an example where all allocations are statically preallocated
  963.    but BB messages are exchanged for greater flexibility. Figure 7 shows
  964.    an end-to-end example for Marked traffic in a statically allocated
  965.    internet. The numbers at the trust region boundaries indicate the
  966.    total statically allocated Marked packet rates that will be accepted
  967.    across those boundaries. For example, 100kbps of Marked traffic can
  968.    be sent from LBL to ESNet; a Profile Meter at the ESNet egress
  969.    boundary would have a token bucket set to rate 100kbps. (There MAY be
  970.    a shaper set at LBL's egress to ensure that the Marked traffic
  971.    conforms to the aggregate Profile.) The tables inside the transit
  972.    network "bubbles" show their policy databases and reflect the values
  973.    after the transaction is complete. In Figure 7, V wants to transmit a
  974.    flow from LBL to D at MIT at 10 Kbps. As in figure 6, a request for
  975.    this profile is made of LBL's BB. LBL's BB authenticates the request
  976.    and checks to see if there is 10kbps left in its Marked allocation
  977.    going in that direction. There is, so the LBL-BB passes a message to
  978.    the ESNet-BB saying that it would like to use 10kbps of its Marked
  979.    allocation for this flow. ESNet authenticates the message, checks its
  980.    database and sees that it has a 10kbps Marked allocation to NEARNet
  981.    (the next region in that direction) that is being unused. The policy
  982.    is that ESNet-BB must always inform ("ask") NEARNet-BB when it is
  983.    about to use part of its allocation. NEARNET-BB authenticates the
  984.    message, checks its database and discovers that 20kbps of the
  985.    allocation to MIT is unused and the policy at that boundary is to not
  986.    inform MIT when part of the allocation is about to be used ("<50 ok"
  987.    where the total allocation is 50). The dotted lines indicate the
  988.    "implied" transaction, that is the transaction that would have
  989.    happened if the policy hadn't said "don't ask me". Now each BB can
  990.    pass an "ok" message to this request across its boundary. This allows
  991.    V to send to D, but not vice versa. It would also be possible for the
  992.    request to originate from D.
  993.  
  994.    Figure 7. End-to-end example with static allocation.
  995.  
  996.    Consider the same example where the ESNet-BB finds all of its Marked
  997.    allocation to NEARNet, 10 kbps, in use. With static allocations,
  998.    ESNet must transmit a "no" to this request back to the LBL-BB.
  999.    Presumably, the LBL-BB would record this information to complain to
  1000.    ESNet about the overbooking at the end of the month! One solution to
  1001.    this sort of "busy signal" is for ESNet to get better at anticipating
  1002.    its customers needs or require long advance bookings for every flow,
  1003.    but it's also possible for bandwidth brokerage decisions to become
  1004.    dynamic.
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Nichols, et al.              Informational                     [Page 18]
  1011.  
  1012. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  1013.  
  1014.  
  1015.    Figure 8. End-to-end static allocation example with no remaining
  1016.    allocation
  1017.  
  1018.    Dynamic Allocation and additional mechanism: As we shall see, dynamic
  1019.    allocation requires more complex BBs as well as more complex border
  1020.    policing, including the necessity to keep more state. However, it
  1021.    enables an important service with a small increase in state.
  1022.  
  1023.    The next set of figures (starting with figure 9) show what happens in
  1024.    the case of dynamic allocation. As before, V requests 10kbps to talk
  1025.    to D at MIT. Since the allocation is dynamic, the border policers do
  1026.    not have a preset value, instead being set to reflect the current
  1027.    peak value of Marked traffic permitted to cross that boundary. The
  1028.    request is sent to the LBL-BB.
  1029.  
  1030.    Figure 9. First step in end-to-end dynamic allocation example.
  1031.  
  1032.    In figure 10, note that ESNet has no allocation set up to NEARNet.
  1033.    This system is capable of dynamic allocations in addition to static,
  1034.    so it asks NEARNet if it can "add 10" to its allocation from ESNet.
  1035.    As in the figure 7 example, MIT's policy is set to "don't ask" for
  1036.    this case, so the dotted lines represent "implicit transactions"
  1037.    where no messages were exchanged. However, NEARNet does update its
  1038.    table to indicate that it is now using 20kbps of the Marked
  1039.    allocation to MIT.
  1040.  
  1041.    Figure 10. Second step in end-to-end dynamic allocation example
  1042.  
  1043.    In figure 11, we see the third step where MIT's "virtual ok" allows
  1044.    the NEARNet-BB to tell its border router to increase the Marked
  1045.    allocation across the ESNet-NEARNet boundary by 10 kbps.
  1046.  
  1047.    Figure 11. Third step in end-to-end dynamic allocation example
  1048.  
  1049.    Figure 11 shows NEARNet-BB's "ok" for that request transmitted back
  1050.    to ESNet-BB. This causes ESNet-BB to send its border router a message
  1051.    to create a 10 kbps subclass for the flow "V->D". This is required in
  1052.    order to ensure that the 10kpbs that has just been dynamically
  1053.    allocated gets used only for that connection. Note that this does
  1054.    require that the per flow state be passed from LBL-BB to ESNet-BB,
  1055.    but this is the only boundary that needs that level of flow
  1056.    information and this further classification will only need to be done
  1057.    at that one boundary router and only on packets coming from LBL. Thus
  1058.    dynamic allocation requires more complex Profile Metering than that
  1059.    shown in figure 5.
  1060.  
  1061.    Figure 12. Fourth step in end-to-end dynamic allocation example.
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Nichols, et al.              Informational                     [Page 19]
  1067.  
  1068. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  1069.  
  1070.  
  1071.    In figure 12, the ESNet border router gives the "ok" that a subclass
  1072.    has been created, causing the ESNet-BB to send an "ok" to the LBL-BB
  1073.    which lets V know the request has been approved.
  1074.  
  1075.    Figure 13. Final step in end-to-end dynamic allocation example
  1076.  
  1077.    For dynamic allocation, a basic version of a CBQ scheduler [5] would
  1078.    have all the required functionality to set up the subclasses. RSVP
  1079.    currently provides a way to move the TSpec for the flow.
  1080.  
  1081.    For multicast flows, we assume that packets that are bound for at
  1082.    least one egress can be carried through a domain at that level of
  1083.    service to all egress points. If a particular multicast branch has
  1084.    been subscribed to at best-effort when upstream branches are Marked,
  1085.    it will have its bit settings cleared before it crosses the boundary.
  1086.    The information required for this flow identification is used to
  1087.    augment the existing state that is already kept on this flow because
  1088.    it is a multicast flow. We note that we are already "catching" this
  1089.    flow, but now we must potentially clear the bit-pattern.
  1090.  
  1091. 5. RSVP/int-serv and this architecture
  1092.  
  1093.    Much work has been done in recent years on the definition of related
  1094.    integrated services for the internet and the specification of the
  1095.    RSVP signalling protocol. The two-bit architecture proposed in this
  1096.    work can easily interoperate with those specifications. In this
  1097.    section we first discuss how the forwarding mechanisms described in
  1098.    section 3 can be used to support integrated services. Second, we
  1099.    discuss how RSVP could interoperate with the administrative structure
  1100.    of the BBs to provide better scaling.
  1101.  
  1102. 5.1 Providing Controlled-Load and Guaranteed Service
  1103.  
  1104.    We believe that the forwarding path mechanisms described in section 3
  1105.    are general enough that they can also be used to provide the
  1106.    Controlled-Load service [8] and a version of the Guaranteed Quality
  1107.    of Service [9], as developed by the int-serv WG. First note that
  1108.    Premium service can be thought of as a constrained case of
  1109.    Controlled-Load service where the burst size is limited to one packet
  1110.    and where non-conforming packets are dropped. A network element that
  1111.    has implemented the mechanisms to support premium service can easily
  1112.    support the more general controlled-load service by making one or
  1113.    more minor parameter adjustments, e.g. by lifting the constraint on
  1114.    the token bucket size, or configuring the Premium service rate with
  1115.    the peak traffic rate parameter in the Controlled-Load specification,
  1116.    and by changing the policing action on out-of-profile packets from
  1117.    dropping to sending the packets to the Best-effort queue.
  1118.  
  1119.  
  1120.  
  1121.  
  1122. Nichols, et al.              Informational                     [Page 20]
  1123.  
  1124. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  1125.  
  1126.  
  1127.    It is also possible to implement Guaranteed Quality of Service using
  1128.    the mechanisms of Premium service. From RFC 2212 [9]: "The definition
  1129.    of guaranteed service relies on the result that the fluid delay of a
  1130.    flow obeying a token bucket (r, b) and being served by a line with
  1131.    bandwidth R is bounded by b/R as long as R is no less than r.
  1132.    Guaranteed service with a service rate R, where now R is a share of
  1133.    bandwidth rather than the bandwidth of a dedicated line approximates
  1134.    this behavior." The service model of Premium clearly fits this model.
  1135.    RFC 2212 states that "Non-conforming datagrams SHOULD be treated as
  1136.    best-effort datagrams." Thus, a policing Profile Meter that drops
  1137.    non-conforming datagrams would be acceptable, but it's also possible
  1138.    to change the action for non-compliant packets from a drop to sending
  1139.    to the best-effort queue.
  1140.  
  1141. 5.2 RSVP and BBs
  1142.  
  1143.    In this section we discuss how RSVP signaling can be used in
  1144.    conjunction with the BBs described in section 4 to deliver a more
  1145.    scalable end-to-end resource set up for Integrated Services. First we
  1146.    note that the BB architecture has three major differences with the
  1147.    original RSVP resource set up model:
  1148.  
  1149.    1. There exist apriori bilateral business relations between BBs of
  1150.    adjacent trust regions before one can set up end-to-end resource
  1151.    allocation; real-time signaling is used only to activate/confirm the
  1152.    availability of pre-negotiated Marked bandwidth, and to dynamically
  1153.    readjust the allocation amount when necessary. We note that this
  1154.    real-time signaling across domains is not required, but depends on
  1155.    the nature of the bilateral agreement (e.g., the agreement might
  1156.    state "I'll tell you whenever I'm going to use some of my allocation"
  1157.    or not).
  1158.  
  1159.    2. A few bits in the packet header, i.e. the P-bit and A-bit, are
  1160.    used to mark the service class of each packet, therefore a full
  1161.    packet classification (by checking all relevant fields in the header)
  1162.    need be done only once at the leaf router; after that packets will be
  1163.    served according to their class bit settings.
  1164.  
  1165.    3. RSVP resource set up assumes that resources will be reserved hop-
  1166.    by-hop at each router along the entire end-to-end path.
  1167.  
  1168.    RSVP messages sent to leaf routers by hosts can be intercepted and
  1169.    sent to the local domain's BB. The BB processes the message and, if
  1170.    the request is approved, forwards a message to the leaf router that
  1171.    sets up appropriate per-flow packet classification. A message should
  1172.    also be sent to the egress border router to add to the aggregate
  1173.    Marked traffic allocation for packet shaping by the Profile Meter on
  1174.    outbound traffic. (Its possible that this is always set to the full
  1175.  
  1176.  
  1177.  
  1178. Nichols, et al.              Informational                     [Page 21]
  1179.  
  1180. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  1181.  
  1182.  
  1183.    allocation.) An RSVP message must be sent across the boundary to
  1184.    adjacent ISP's border router, either from the local domain's border
  1185.    router or from the local domain's BB. If the ISP is also implementing
  1186.    the RSVP with a BB and diff-serv framework, its border router
  1187.    forwards the message to the ISP's local BB. A similar process (to
  1188.    what happened in the first domain) can be carried out in the ISP
  1189.    domain, then an RSVP message gets forwarded to the next ISP along the
  1190.    path. Inside a domain, packets are served solely according to the
  1191.    Marked bits. The local BB knows exactly how much Premium traffic is
  1192.    permitted to enter at each border router and from which border router
  1193.    packets exit.
  1194.  
  1195. 6. Recommendations
  1196.  
  1197.    This document has presented a reference architecture for
  1198.    differentiated services. Several variations can be envisioned,
  1199.    particularly for early and partial deployments, but we do not
  1200.    enumerate all of these variations here. There has been a great market
  1201.    demand for differentiated services lately. As one of the many efforts
  1202.    to meet that demand this memo sketches out the framework of a
  1203.    flexible architecture for offering differential services, and in
  1204.    particular defines a simple set of packet forwarding path mechanisms
  1205.    to support two basic types of differential services. Although there
  1206.    remain a number of issues and parameters that need further
  1207.    exploration and refinement, we believe it is both possible and
  1208.    feasible at this time to start deployment of differentiated services
  1209.    incrementally. First, given that the basic mechanisms required in the
  1210.    packet forwarding path are clearly understood, both Assured and
  1211.    Premium services can be implemented today with manually configured
  1212.    BBs and static resource allocation. Initially we recommend
  1213.    conservative choices on the amount of Marked traffic that is admitted
  1214.    into the network. Second, we plan to continue the effort started with
  1215.    this memo and the experimental work of the authors to define and
  1216.    deploy increasingly sophisticated BBs. We hope to turn the experience
  1217.    gained from in-progress trial implementations on ESNet and CAIRN into
  1218.    future proposals to the IETF.
  1219.  
  1220.    Future revisions of this memo will present the receiver-based and
  1221.    multicast flow allocations in detail.    After this step is finished,
  1222.    we believe the basic picture of an scalable, robust, secure resource
  1223.    management and allocation system will be completed. In this memo, we
  1224.    described how the proposed architecture supports two services that
  1225.    seem to us to provide at least a good starting point for trial
  1226.    deployment of differentiated services. Our main intent is to define
  1227.    an architecture with three services, Premium, Assured, and Best
  1228.    effort, that can be determined by specific bit- patterns, but not to
  1229.    preclude additional levels of differentiation within each service. It
  1230.    seems that more experimentation and experience is required before we
  1231.  
  1232.  
  1233.  
  1234. Nichols, et al.              Informational                     [Page 22]
  1235.  
  1236. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  1237.  
  1238.  
  1239.    could standardize more than one level per service class. Our base-
  1240.    level approach says that everyone has to provide "at least" Premium
  1241.    service and Assured service as documented. We feel rather strongly
  1242.    about both 1) that we should not try to define, at this time,
  1243.    something beyond the minimalist two service approach and 2) that the
  1244.    architecture we define must be open-ended so that more levels of
  1245.    differentiation might be standardized in the future. We believe this
  1246.    architecture is completely compatible with approaches that would
  1247.    define more levels of differentiation within a particular service, if
  1248.    the benefits of doing so become well understood.
  1249.  
  1250. 7. Acknowledgments
  1251.  
  1252.    The authors have benefited from many discussions, both in person and
  1253.    electronically and wish to particularly thank Dave Clark who has been
  1254.    responsible for the genesis of many of the ideas presented here,
  1255.    though he does not agree with all of the content this document. We
  1256.    also thank Sally Floyd for comments on an earlier draft. A comment
  1257.    from Jon Crowcroft was partially responsible for our including
  1258.    section 5. Comments from Fred Baker made us try to make it clearer
  1259.    that we are defining two base-level services, irrespective of the bit
  1260.    patterns used to encode them.
  1261.  
  1262. 8. Security Considerations
  1263.  
  1264.    There are no security considerations associated with this document.
  1265.  
  1266. 9. References
  1267.  
  1268.    [1] D. Clark, "Adding Service Discrimination to the Internet",
  1269.        Proceedings of the 23rd Annual Telecommunications Policy Research
  1270.        Conference (TPRC), Solomons, MD, October 1995.
  1271.  
  1272.    [2] V. Jacobson, "Differentiated Services Architecture", talk in the
  1273.        Int-Serv WG at the Munich IETF, August, 1997.
  1274.  
  1275.    [3] Clark, D. and J. Wroclawski, "An Approach to Service Allocation
  1276.        in the Internet", Work in Progress, also talk by D. Clark in the
  1277.        Int-Serv WG at the Munich IETF, August, 1997.
  1278.  
  1279.    [4] Braden, et al., "Recommendations on Queue Management and
  1280.        Congestion Avoidance in the Internet", RFC 2309, April 1998.
  1281.  
  1282.    [4] Braden, R., Zhang, L., Berson, S., Herzog, S. and S. Jamin,
  1283.        "Resource Reservation Protocol (RSVP) - Version 1 Functional
  1284.        Specification", RFC 2205, September 1997.
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290. Nichols, et al.              Informational                     [Page 23]
  1291.  
  1292. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  1293.  
  1294.  
  1295.    [5] S. Floyd and V. Jacobson, "Link-sharing and Resource Management
  1296.        Models for Packet Networks", IEEE/ACM Transactions on Networking,
  1297.        pp 365-386, August 1995.
  1298.  
  1299.    [6] D. Clark, private communication, October 26, 1997.
  1300.  
  1301.    [7] "Advanced QoS Services for the Intelligent Internet", Cisco
  1302.        Systems White Paper, 1997.
  1303.  
  1304.    [8] Wroclawski, J., "Specification of the Controlled-Load Network
  1305.        Element Service", RFC 2211, September 1997.
  1306.  
  1307.    [9] Shenker, S., Partirdge, C. and R. Guerin, "Specification of
  1308.        Guaranteed Quality of Service", RFC 2212, September 1997.
  1309.  
  1310.    [10] D. Clark and W. Fang, "Explicit Allocation of Best Effort packet
  1311.        Delivery Service", IEEE/ACM Transactions on Networking, August,
  1312.        1998, Vol6, No 4, pp. 362-373. also at: http://
  1313.        diffserv.lcs.mit.edu/Papers/exp-alloc-ddc-wf.pdf
  1314.  
  1315. Authors' Addresses
  1316.  
  1317.    Kathleen Nichols
  1318.    Cisco Systems, Inc.
  1319.    170 West Tasman Drive
  1320.    San Jose, CA 95134-1706
  1321.  
  1322.    Phone: 408-525-4857
  1323.    EMail:   kmn@cisco.com
  1324.  
  1325.  
  1326.    Van Jacobson
  1327.    Cisco Systems, Inc.
  1328.    170 West Tasman Drive
  1329.    San Jose, CA 95134-1706
  1330.  
  1331.    EMail: van@cisco.com
  1332.  
  1333.  
  1334.    Lixia Zhang
  1335.    UCLA
  1336.    4531G Boelter Hall
  1337.    Los Angeles, CA  90095
  1338.  
  1339.    Phone: 310-825-2695
  1340.    EMail: lixia@cs.ucla.edu
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346. Nichols, et al.              Informational                     [Page 24]
  1347.  
  1348. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  1349.  
  1350.  
  1351. Appendix: A Combined Approach to Differential Service in the Internet by
  1352.           David D. Clark
  1353.  
  1354.    After the draft-nichols-diff-svc-00 was submitted, the co-authors had
  1355.    a discussion with Dave Clark and John Wroclawski which resulted in
  1356.    Clark's using the presentation slot for the draft at the December
  1357.    1997 IETF Integrated Services Working Group meeting. A reading of the
  1358.    slides shows that it was Clark's proposal on "mechanisms",
  1359.    "services", and "rules" and how to proceed in the standards process
  1360.    that has guided much of the process in the subsequently formed IETF
  1361.    Differentiated Services Working Group. We believe Dave Clark's talk
  1362.    gave us a solid approach for bringing quality of service to the
  1363.    Internet in a manner that is compatible with its strengths.
  1364.  
  1365.    The slides presented at the December 1997 IETF Integrated Services
  1366.    Working Group are included with the Postscript version.
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402. Nichols, et al.              Informational                     [Page 25]
  1403.  
  1404. RFC 2638      Two-bit Differentiated Services Architecture     July 1999
  1405.  
  1406.  
  1407. Full Copyright Statement
  1408.  
  1409.    Copyright (C) The Internet Society (1999).  All Rights Reserved.
  1410.  
  1411.    This document and translations of it may be copied and furnished to
  1412.    others, and derivative works that comment on or otherwise explain it
  1413.    or assist in its implementation may be prepared, copied, published
  1414.    and distributed, in whole or in part, without restriction of any
  1415.    kind, provided that the above copyright notice and this paragraph are
  1416.    included on all such copies and derivative works.  However, this
  1417.    document itself may not be modified in any way, such as by removing
  1418.    the copyright notice or references to the Internet Society or other
  1419.    Internet organizations, except as needed for the purpose of
  1420.    developing Internet standards in which case the procedures for
  1421.    copyrights defined in the Internet Standards process must be
  1422.    followed, or as required to translate it into languages other than
  1423.    English.
  1424.  
  1425.    The limited permissions granted above are perpetual and will not be
  1426.    revoked by the Internet Society or its successors or assigns.
  1427.  
  1428.    This document and the information contained herein is provided on an
  1429.    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
  1430.    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
  1431.    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
  1432.    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
  1433.    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
  1434.  
  1435. Acknowledgement
  1436.  
  1437.    Funding for the RFC Editor function is currently provided by the
  1438.    Internet Society.
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458. Nichols, et al.              Informational                     [Page 26]
  1459.  
  1460.