home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1633.txt < prev    next >
Text File  |  1996-05-07  |  91KB  |  689 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          R. Braden Request for Comments: 1633                                           ISI Category: Informational                                         D. Clark                                                                      MIT                                                               S. Shenker                                                               Xerox PARC                                                                June 1994 
  8.  
  9.       Integrated Services in the Internet Architecture: an Overview 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo provides information for the Internet community.  This memo    does not specify an Internet standard of any kind.  Distribution of    this memo is unlimited. 
  14.  
  15. Abstract 
  16.  
  17.    This memo discusses a proposed extension to the Internet architecture    and protocols to provide integrated services, i.e., to support real-    time as well as the current non-real-time service of IP.  This    extension is necessary to meet the growing need for real-time service    for a variety of new applications, including teleconferencing, remote    seminars, telescience, and distributed simulation. 
  18.  
  19.    This memo represents the direct product of recent work by Dave Clark,    Scott Shenker, Lixia Zhang, Deborah Estrin, Sugih Jamin, John    Wroclawski, Shai Herzog, and Bob Braden, and indirectly draws upon    the work of many others. 
  20.  
  21. Table of Contents 
  22.  
  23.    1. Introduction ...................................................2    2. Elements of the Architecture ...................................3       2.1 Integrated Services Model ..................................3       2.2 Reference Implementation Framework .........................6    3. Integrated Services Model ......................................11       3.1 Quality of Service Requirements ............................12       3.2 Resource-Sharing Requirements and Service Models ...........16       3.3 Packet Dropping ............................................18       3.4 Usage Feedback .............................................19       3.5 Reservation Model ..........................................19    4. Traffic Control Mechanisms .....................................20       4.1 Basic Functions ............................................20       4.2 Applying the Mechanisms ....................................23       4.3 An example .................................................24    5. Reservation Setup Protocol .....................................25 
  24.  
  25.  
  26.  
  27. Braden, Clark & Shenker                                         [Page 1] 
  28.  RFC 1633            Integrated Services Architecture           June 1994 
  29.  
  30.        5.1 RSVP Overview ..............................................25       5.2 Routing and Reservations ...................................28    6. Acknowledgments ................................................30    References ........................................................31    Security Considerations ...........................................32    Authors' Addresses ................................................33 
  31.  
  32. 1. Introduction 
  33.  
  34.    The multicasts of IETF meetings across the Internet have formed a    large-scale experiment in sending digitized voice and video through a    packet-switched infrastructure.  These highly-visible experiments    have depended upon three enabling technologies.  (1) Many modern    workstations now come equipped with built-in multimedia hardware,    including audio codecs and video frame-grabbers, and the necessary    video gear is now inexpensive.  (2) IP multicasting, which is not yet    generally available in commercial routers, is being provided by the    MBONE, a temporary "multicast backbone".  (3) Highly-sophisticated    digital audio and video applications have been developed. 
  35.  
  36.    These experiments also showed that an important technical element is    still missing: real-time applications often do not work well across    the Internet because of variable queueing delays and congestion    losses.  The Internet, as originally conceived, offers only a very    simple quality of service (QoS), point-to-point best-effort data    delivery.  Before real-time applications such as remote video,    multimedia conferencing, visualization, and virtual reality can be    broadly used, the Internet infrastructure must be modified to support    real-time QoS, which provides some control over end-to-end packet    delays.  This extension must be designed from the beginning for    multicasting; simply generalizing from the unicast (point-to-point)    case does not work. 
  37.  
  38.    Real-time QoS is not the only issue for a next generation of traffic    management in the Internet.  Network operators are requesting the    ability to control the sharing of bandwidth on a particular link    among different traffic classes.  They want to be able to divide    traffic into a few administrative classes and assign to each a    minimum percentage of the link bandwidth under conditions of    overload, while allowing "unused" bandwidth to be available at other    times.  These classes may represent different user groups or    different protocol families, for example.  Such a management facility    is commonly called controlled link-sharing.  We use the term    integrated services (IS) for an Internet service model that includes    best-effort service, real-time service, and controlled link sharing. 
  39.  
  40.    The requirements and mechanisms for integrated services have been the    subjects of much discussion and research over the past several years 
  41.  
  42.  
  43.  
  44. Braden, Clark & Shenker                                         [Page 2] 
  45.  RFC 1633            Integrated Services Architecture           June 1994 
  46.  
  47.     (the literature is much too large to list even a representative    sample here; see the references in [CSZ92, Floyd92, Jacobson91,    JSCZ93, Partridge92, SCZ93, RSVP93a] for a partial list).  This work    has led to the unified approach to integrated services support that    is described in this memo.  We believe that it is now time to begin    the engineering that must precede deployment of integrated services    in the Internet. 
  48.  
  49.    Section 2 of this memo introduces the elements of an IS extension of    the Internet.  Section 3 discusses real-time service models [SCZ93a,    SCZ93b].  Section 4 discusses traffic control, the forwarding    algorithms to be used in routers [CSZ92].  Section 5 discusses the    design of RSVP, a resource setup protocol compatible with the    assumptions of our IS model [RSVP93a, RSVP93b]. 
  50.  
  51. 2. Elements of the Architecture 
  52.  
  53.    The fundamental service model of the Internet, as embodied in the    best-effort delivery service of IP, has been unchanged since the    beginning of the Internet research project 20 years ago [CerfKahn74].    We are now proposing to alter that model to encompass integrated    service.  From an academic viewpoint, changing the service model of    the Internet is a major undertaking; however, its impact is mitigated    by the fact that we wish only to extend the original architecture.    The new components and mechanisms to be added will supplement but not    replace the basic IP service. 
  54.  
  55.    Abstractly, the proposed architectural extension is comprised of two    elements: (1) an extended service model, which we call the IS model,    and (2) a reference implementation framework, which gives us a set of    vocabulary and a generic program organization to realize the IS    model.  It is important to separate the service model, which defines    the externally visible behavior, from the discussion of the    implementation, which may (and should) change during the life of the    service model.  However, the two are related; to make the service    model credible, it is useful to provide an example of how it might be    realized. 
  56.  
  57.    2.1 Integrated Services Model 
  58.  
  59.       The IS model we are proposing includes two sorts of service       targeted towards real-time traffic: guaranteed and predictive       service.  It integrates these services with controlled link-       sharing, and it is designed to work well with multicast as well as       unicast.  Deferring a summary of the IS model to Section 3, we       first discuss some key assumptions behind the model. 
  60.  
  61.  
  62.  
  63.  
  64.  
  65. Braden, Clark & Shenker                                         [Page 3] 
  66.  RFC 1633            Integrated Services Architecture           June 1994 
  67.  
  68.        The first assumption is that resources (e.g., bandwidth) must be       explicitly managed in order to meet application requirements.       This implies that "resource reservation" and "admission control"       are key building blocks of the service.  An alternative approach,       which we reject, is to attempt to support real-time traffic       without any explicit changes to the Internet service model. 
  69.  
  70.       The essence of real-time service is the requirement for some       service guarantees, and we argue that guarantees cannot be       achieved without reservations.  The term "guarantee" here is to be       broadly interpreted; they may be absolute or statistical, strict       or approximate.  However, the user must be able to get a service       whose quality is sufficiently predictable that the application can       operate in an acceptable way over a duration of time determined by       the user.  Again, "sufficiently" and "acceptable" are vague terms.       In general, stricter guarantees have a higher cost in resources       that are made unavailable for sharing with others. 
  71.  
  72.       The following arguments have been raised against resource       guarantees in the Internet. 
  73.  
  74.       o    "Bandwidth will be infinite." 
  75.  
  76.            The incredibly large carrying capacity of an optical fiber            leads some to conclude that in the future bandwidth will be            so abundant, ubiquitous, and cheap that there will be no            communication delays other than the speed of light, and            therefore there will be no need to reserve resources.            However, we believe that this will be impossible in the short            term and unlikely in the medium term.  While raw bandwidth            may seem inexpensive, bandwidth provided as a network service            is not likely to become so cheap that wasting it will be the            most cost-effective design principle.  Even if low-cost            bandwidth does eventually become commonly available, we do            not accept that it will be available "everywhere" in the            Internet.  Unless we provide for the possibility of dealing            with congested links, then real-time services will simply be            precluded in those cases.  We find that restriction            unacceptable. 
  77.  
  78.       o    "Simple priority is sufficient." 
  79.  
  80.            It is true that simply giving higher priority to real-time            traffic would lead to adequate real-time service at some            times and under some conditions.  But priority is an            implementation mechanism, not a service model.  If we define            the service by means of a specific mechanism, we may not get            the exact features we want.  In the case of simple priority, 
  81.  
  82.  
  83.  
  84. Braden, Clark & Shenker                                         [Page 4] 
  85.  RFC 1633            Integrated Services Architecture           June 1994 
  86.  
  87.             the issue is that as soon as there are too many real-time            streams competing for the higher priority, every stream is            degraded.  Restricting our service to this single failure            mode is unacceptable.  In some cases, users will demand that            some streams succeed while some new requests receive a "busy            signal". 
  88.  
  89.       o    "Applications can adapt." 
  90.  
  91.            The development of adaptive real-time applications, such as            Jacobson's audio program VAT, does not eliminate the need to            bound packet delivery time.  Human requirements for            interaction and intelligibility limit the possible range of            adaptation to network delays.  We have seen in real            experiments that, while VAT can adapt to network delays of            many seconds, the users find that interaction is impossible            in these cases. 
  92.  
  93.       We conclude that there is an inescapable requirement for routers       to be able to reserve resources, in order to provide special QoS       for specific user packet streams, or "flows".  This in turn       requires flow-specific state in the routers, which represents an       important and fundamental change to the Internet model.  The       Internet architecture was been founded on the concept that all       flow-related state should be in the end systems [Clark88].       Designing the TCP/IP protocol suite on this concept led to a       robustness that is one of the keys to its success.  In section 5       we discuss how the flow state added to the routers for resource       reservation can be made "soft", to preserve the robustness of the       Internet protocol suite. 
  94.  
  95.       There is a real-world side effect of resource reservation in       routers.  Since it implies that some users are getting privileged       service, resource reservation will need enforcement of policy and       administrative controls.  This in turn will lead to two kinds of       authentication requirements:  authentication of users who make       reservation requests, and authentication of packets that use the       reserved resources.  However, these issues are not unique to "IS";       other aspects of the evolution of the Internet, including       commercialization and commercial security, are leading to the same       requirements.  We do not discuss the issues of policy or security       further in this memo, but they will require attention. 
  96.  
  97.       We make another fundamental assumption, that it is desirable to       use the Internet as a common infrastructure to support both non-       real-time and real-time communication.  One could alternatively       build an entirely new, parallel infrastructure for real-time       services, leaving the Internet unchanged.  We reject this 
  98.  
  99.  
  100.  
  101. Braden, Clark & Shenker                                         [Page 5] 
  102.  RFC 1633            Integrated Services Architecture           June 1994 
  103.  
  104.        approach, as it would lose the significant advantages of       statistical sharing between real-time and non-real-time traffic,       and it would be much more complex to build and administer than a       common infrastructure. 
  105.  
  106.       In addition to this assumption of common infrastructure, we adopt       a unified protocol stack model, employing a single internet-layer       protocol for both real-time and non-real-time service.  Thus, we       propose to use the existing internet-layer protocol (e.g., IP or       CLNP) for real-time data.  Another approach would be to add a new       real-time protocol in the internet layer [ST2-90].  Our unified       stack approach provides economy of mechanism, and it allows us to       fold controlled link-sharing in easily.  It also handles the       problem of partial coverage, i.e., allowing interoperation between       IS-capable Internet systems and systems that have not been       extended, without the complexity of tunneling. 
  107.  
  108.       We take the view that there should be a single service model for       the Internet.  If there were different service models in different       parts of the Internet, it is very difficult to see how any end-       to-end service quality statements could be made.  However, a       single service model does not necessarily imply a single       implementation for packet scheduling or admission control.       Although specific packet scheduling and admission control       mechanisms that satisfy our service model have been developed, it       is quite possible that other mechanisms will also satisfy the       service model.  The reference implementation framework, introduced       below, is intended to allow discussion of implementation issues       without mandating a single design. 
  109.  
  110.       Based upon these considerations, we believe that an IS extension       that includes additional flow state in routers and an explicit       setup mechanism is necessary to provide the needed service.  A       partial solution short of this point would not be a wise       investment.  We believe that the extensions we propose preserve       the essential robustness and efficiency of the Internet       architecture, and they allow efficient management of the network       resources; these will be important goals even if bandwidth becomes       very inexpensive. 
  111.  
  112.    2.2 Reference Implementation Framework 
  113.  
  114.       We propose a reference implementation framework to realize the IS       model.  This framework includes four components: the packet       scheduler, the admission control routine, the classifier, and the       reservation setup protocol.  These are discussed briefly below and       more fully in Sections 4 and 5. 
  115.  
  116.  
  117.  
  118.  Braden, Clark & Shenker                                         [Page 6] 
  119.  RFC 1633            Integrated Services Architecture           June 1994 
  120.  
  121.        In the ensuing discussion, we define the "flow" abstraction as a       distinguishable stream of related datagrams that results from a       single user activity and requires the same QoS.  For example, a       flow might consist of one transport connection or one video stream       between a given host pair.  It is the finest granularity of packet       stream distinguishable by the IS.  We define a flow to be simplex,       i.e., to have a single source but N destinations.  Thus, an N-way       teleconference will generally require N flows, one originating at       each site. 
  122.  
  123.       In today's Internet, IP forwarding is completely egalitarian; all       packets receive the same quality of service, and packets are       typically forwarded using a strict FIFO queueing discipline.  For       integrated services, a router must implement an appropriate QoS       for each flow, in accordance with the service model.  The router       function that creates different qualities of service is called       "traffic control".  Traffic control in turn is implemented by       three components: the packet scheduler, the classifier, and       admission control. 
  124.  
  125.       o    Packet Scheduler 
  126.  
  127.            The packet scheduler manages the forwarding of different            packet streams using a set of queues and perhaps other            mechanisms like timers.  The packet scheduler must be            implemented at the point where packets are queued; this is            the output driver level of a typical operating system, and            corresponds to the link layer protocol.  The details of the            scheduling algorithm may be specific to the particular output            medium.  For example, the output driver will need to invoke            the appropriate link-layer controls when interfacing to a            network technology that has an internal bandwidth allocation            mechanism. 
  128.  
  129.            An experimental packet scheduler has been built that            implements the IS model described in Section 3 and [SCZ93];            this is known as the CSZ scheduler and is discussed further            in Section 4.  We note that the CSZ scheme is not mandatory            to accomplish our service model; indeed for parts of the            network that are known always to be underloaded, FIFO will            deliver satisfactory service. 
  130.  
  131.            There is another component that could be considered part of            the packet scheduler or separate: the estimator [Jacobson91].            This algorithm is used to measure properties of the outgoing            traffic stream, to develop statistics that control packet            scheduling and admission control.  This memo will consider            the estimator to be a part of the packet scheduler. 
  132.  
  133.  
  134.  
  135. Braden, Clark & Shenker                                         [Page 7] 
  136.  RFC 1633            Integrated Services Architecture           June 1994 
  137.  
  138.        o    Classifier 
  139.  
  140.            For the purpose of traffic control (and accounting), each            incoming packet must be mapped into some class; all packets            in the same class get the same treatment from the packet            scheduler.  This mapping is performed by the classifier.            Choice of a class may be based upon the contents of the            existing packet header(s) and/or some additional            classification number added to each packet. 
  141.  
  142.            A class might correspond to a broad category of flows, e.g.,            all video flows or all flows attributable to a particular            organization.  On the other hand, a class might hold only a            single flow.  A class is an abstraction that may be local to            a particular router; the same packet may be classified            differently by different routers along the path.  For            example, backbone routers may choose to map many flows into a            few aggregated classes, while routers nearer the periphery,            where there is much less aggregation, may use a separate            class for each flow. 
  143.  
  144.       o    Admission Control 
  145.  
  146.            Admission control implements the decision algorithm that a            router or host uses to determine whether a new flow can be            granted the requested QoS without impacting earlier            guarantees.  Admission control is invoked at each node to            make a local accept/reject decision, at the time a host            requests a real-time service along some path through the            Internet.  The admission control algorithm must be consistent            with the service model, and it is logically part of traffic            control.  Although there are still open research issues in            admission control, a first cut exists [JCSZ92]. 
  147.  
  148.            Admission control is sometimes confused with policing or            enforcement, which is a packet-by-packet function at the            "edge" of the network to ensure that a host does not violate            its promised traffic characteristics.  We consider policing            to be one of the functions of the packet scheduler. 
  149.  
  150.            In addition to ensuring that QoS guarantees are met,            admission control will be concerned with enforcing            administrative policies on resource reservations.  Some            policies will demand authentication of those requesting            reservations.  Finally, admission control will play an 
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  Braden, Clark & Shenker                                         [Page 8] 
  157.  RFC 1633            Integrated Services Architecture           June 1994 
  158.  
  159.             important role in accounting and administrative reporting. 
  160.  
  161.       The fourth and final component of our implementation framework is       a reservation setup protocol, which is necessary to create and       maintain flow-specific state in the endpoint hosts and in routers       along the path of a flow.  Section  discusses a reservation setup       protocol called RSVP (for "ReSerVation Protocol") [RSVP93a,       RSVP93b].  It may not be possible to insist that there be only one       reservation protocol in the Internet, but we will argue that       multiple choices for reservation protocols will cause confusion.       We believe that multiple protocols should exist only if they       support different modes of reservation. 
  162.  
  163.       The setup requirements for the link-sharing portion of the service       model are far less clear than those for resource reservations.       While we expect that much of this can be done through network       management interfaces, and thus need not be part of the overall       architecture, we may also need RSVP to play a role in providing       the required state. 
  164.  
  165.       In order to state its resource requirements, an application must       specify the desired QoS using a list of parameters that is called       a "flowspec" [Partridge92].  The flowspec is carried by the       reservation setup protocol, passed to admission control for to       test for acceptability, and ultimately used to parametrize the       packet scheduling mechanism. 
  166.  
  167.       Figure  shows how these components might fit into an IP router       that has been extended to provide integrated services.  The router       has two broad functional divisions:  the forwarding path below the       double horizontal line, and the background code above the line. 
  168.  
  169.       The forwarding path of the router is executed for every packet and       must therefore be highly optimized.  Indeed, in most commercial       routers, its implementation involves a hardware assist.  The       forwarding path is divided into three sections: input driver,       internet forwarder, and output driver.  The internet forwarder       interprets the internetworking protocol header appropriate to the       protocol suite, e.g., the IP header for TCP/IP, or the CLNP header       for OSI.  For each packet, an internet forwarder executes a       suite-dependent classifier and then passes the packet and its       class to the appropriate output driver.  A classifier must be both       general and efficient.  For efficiency, a common mechanism should       be used for both resource classification and route lookup. 
  170.  
  171.       The output driver implements the packet scheduler.  (Layerists       will observe that the output driver now has two distinct sections:       the packet scheduler that is largely independent of the detailed 
  172.  
  173.  
  174.  
  175. Braden, Clark & Shenker                                         [Page 9] 
  176.  RFC 1633            Integrated Services Architecture           June 1994 
  177.  
  178.        mechanics of the interface, and the actual I/O driver that is only       concerned with the grittiness of the hardware.  The estimator       lives somewhere in between.  We only note this fact, without       suggesting that it be elevated to a principle.). 
  179.  
  180.          _____________________________________________________________        |         ____________     ____________     ___________       |        |        |            |   | Reservation|   |           |      |        |        |   Routing  |   |    Setup   |   | Management|      |        |        |    Agent   |   |    Agent   |   |  Agent    |      |        |        |______._____|   |______._____|   |_____._____|      |        |               .                .    |          .            |        |               .                .   _V________  .            |        |               .                .  | Admission| .            |        |               .                .  |  Control | .            |        |               V                .  |__________| .            |        |           [Routing ]           V               V            |        |           [Database]     [Traffic Control Database]         |        |=============================================================|        |        |                  |     _______                     |        |        |   __________     |    |_|_|_|_| => o               |        |        |  |          |    |      Packet     |     _____     |        |     ====> |Classifier| =====>   Scheduler   |===>|_|_|_| ===>        |        |  |__________|    |     _______     |               |        |        |                  |    |_|_|_|_| => o               |        | Input  |   Internet       |                                 |        | Driver |   Forwarder      |     O u t p u t   D r i v e r   |        |________|__________________|_________________________________| 
  181.  
  182.              Figure 1: Implementation Reference Model for Routers 
  183.  
  184.        The background code is simply loaded into router memory and       executed by a general-purpose CPU.  These background routines       create data structures that control the forwarding path.  The       routing agent implements a particular routing protocol and builds       a routing database.  The reservation setup agent implements the       protocol used to set up resource reservations; see Section .  If       admission control gives the "OK" for a new request, the       appropriate changes are made to the classifier and packet       scheduler database to implement the desired QoS.  Finally, every       router supports an agent for network management.  This agent must       be able to modify the classifier and packet scheduler databases to       set up controlled link-sharing and to set admission control       policies. 
  185.  
  186.  
  187.  
  188.  
  189.  
  190. Braden, Clark & Shenker                                        [Page 10] 
  191.  RFC 1633            Integrated Services Architecture           June 1994 
  192.  
  193.        The implementation framework for a host is generally similar to       that for a router, with the addition of applications.  Rather than       being forwarded, host data originates and terminates in an       application.  An application needing a real-time QoS for a flow       must somehow invoke a local reservation setup agent.  The best way       to interface to applications is still to be determined.  For       example, there might be an explicit API for network resource       setup, or the setup might be invoked implicitly as part of the       operating system scheduling function.  The IP output routine of a       host may need no classifier, since the class assignment for a       packet can be specified in the local I/O control structure       corresponding to the flow. 
  194.  
  195.       In routers, integrated service will require changes to both the       forwarding path and the background functions.  The forwarding       path, which may depend upon hardware acceleration for performance,       will be the more difficult and costly to change.  It will be vital       to choose a set of traffic control mechanisms that is general and       adaptable to a wide variety of policy requirements and future       circumstances, and that can be implemented efficiently. 
  196.  
  197. 3. Integrated Services Model 
  198.  
  199.    A service model is embedded within the network service interface    invoked by applications to define the set of services they can    request.  While both the underlying network technology and the    overlying suite of applications will evolve, the need for    compatibility requires that this service interface remain relatively    stable (or, more properly, extensible; we do expect to add new    services in the future but we also expect that it will be hard to    change existing services).  Because of its enduring impact, the    service model should not be designed in reference to any specific    network artifact but rather should be based on fundamental service    requirements. 
  200.  
  201.    We now briefly describe a proposal for a core set of services for the    Internet; this proposed core service model is more fully described in    [SCZ93a, SCZ93b].  This core service model addresses those services    which relate most directly to the time-of-delivery of packets.  We    leave the remaining services (such as routing, security, or stream    synchronization) for other standardization venues.  A service model    consists of a set of service commitments; in response to a service    request the network commits to deliver some service.  These service    commitments can be categorized by the entity to whom they are made:    they can be made to either individual flows or to collective entities    (classes of flows).  The service commitments made to individual flows    are intended to provide reasonable application performance, and thus    are driven by the ergonomic requirements of the applications; these 
  202.  
  203.  
  204.  
  205. Braden, Clark & Shenker                                        [Page 11] 
  206.  RFC 1633            Integrated Services Architecture           June 1994 
  207.  
  208.     service commitments relate to the quality of service delivered to an    individual flow.  The service commitments made to collective entities    are driven by resource-sharing, or economic, requirements; these    service commitments relate to the aggregate resources made available    to the various entities. 
  209.  
  210.    In this section we start by exploring the service requirements of    individual flows and propose a corresponding set of services.  We    then discuss the service requirements and services for resource    sharing.  Finally, we conclude with some remarks about packet    dropping. 
  211.  
  212.    3.1 Quality of Service Requirements 
  213.  
  214.       The core service model is concerned almost exclusively with the       time-of-delivery of packets.  Thus, per-packet delay is the       central quantity about which the network makes quality of service       commitments.  We make the even more restrictive assumption that       the only quantity about which we make quantitative service       commitments are bounds on the maximum and minimum delays. 
  215.  
  216.       The degree to which application performance depends on low delay       service varies widely, and we can make several qualitative       distinctions between applications based on the degree of their       dependence.  One class of applications needs the data in each       packet by a certain time and, if the data has not arrived by then,       the data is essentially worthless; we call these real-time       applications.  Another class of applications will always wait for       data to arrive; we call these " elastic" applications.  We now       consider the delay requirements of these two classes separately. 
  217.  
  218.       3.1.1 Real-Time Applications 
  219.  
  220.          An important class of such real-time applications, which are          the only real-time applications we explicitly consider in the          arguments that follow, are "playback" applications.  In a          playback application, the source takes some signal, packetizes          it, and then transmits the packets over the network.  The          network inevitably introduces some variation in the delay of          the delivered packets.  The receiver depacketizes the data and          then attempts to faithfully play back the signal.  This is done          by buffering the incoming data and then replaying the signal at          some fixed offset delay from the original departure time; the          term "playback point" refers to the point in time which is          offset from the original departure time by this fixed delay.          Any data that arrives before its associated playback point can          be used to reconstruct the signal; data arriving after the          playback point is essentially useless in reconstructing the 
  221.  
  222.  
  223.  
  224. Braden, Clark & Shenker                                        [Page 12] 
  225.  RFC 1633            Integrated Services Architecture           June 1994 
  226.  
  227.           real-time signal. 
  228.  
  229.          In order to choose a reasonable value for the offset delay, an          application needs some "a priori" characterization of the          maximum delay its packets will experience.  This "a priori"          characterization could either be provided by the network in a          quantitative service commitment to a delay bound, or through          the observation of the delays experienced by the previously          arrived packets; the application needs to know what delays to          expect, but this expectation need not be constant for the          entire duration of the flow. 
  230.  
  231.          The performance of a playback application is measured along two          dimensions:  latency and fidelity.  Some playback applications,          in particular those that involve interaction between the two          ends of a connection such as a phone call, are rather sensitive          to the latency; other playback applications, such as          transmitting a movie or lecture, are not.  Similarly,          applications exhibit a wide range of sensitivity to loss of          fidelity.  We will consider two somewhat artificially          dichotomous classes: intolerant applications, which require an          absolutely faithful playback, and tolerant applications, which          can tolerate some loss of fidelity.  We expect that the vast          bulk of audio and video applications will be tolerant, but we          also suspect that there will be other applications, such as          circuit emulation, that are intolerant. 
  232.  
  233.          Delay can affect the performance of playback applications in          two ways.  First, the value of the offset delay, which is          determined by predictions about the future packet delays,          determines the latency of the application.  Second, the delays          of individual packets can decrease the fidelity of the playback          by exceeding the offset delay; the application then can either          change the offset delay in order to play back late packets          (which introduces distortion) or merely discard late packets          (which creates an incomplete signal).  The two different ways          of coping with late packets offer a choice between an          incomplete signal and a distorted one, and the optimal choice          will depend on the details of the application, but the          important point is that late packets necessarily decrease          fidelity. 
  234.  
  235.          Intolerant applications must use a fixed offset delay, since          any variation in the offset delay will introduce some          distortion in the playback.  For a given distribution of packet          delays, this fixed offset delay must be larger than the          absolute maximum delay, to avoid the possibility of late          packets.   Such an application can only set its offset delay 
  236.  
  237.  
  238.  
  239. Braden, Clark & Shenker                                        [Page 13] 
  240.  RFC 1633            Integrated Services Architecture           June 1994 
  241.  
  242.           appropriately if it is given a perfectly reliable upper bound          on the maximum delay of each packet.  We call a service          characterized by a perfectly reliable upper bound on delay "          guaranteed service", and propose this as the appropriate          service model for intolerant playback applications. 
  243.  
  244.          In contrast, tolerant applications need not set their offset          delay greater than the absolute maximum delay, since they can          tolerate some late packets.  Moreover, instead of using a          single fixed value for the offset delay, they can attempt to          reduce their latency by varying their offset delays in response          to the actual packet delays experienced in the recent past.  We          call applications which vary their offset delays in this manner          "adaptive" playback applications. 
  245.  
  246.          For tolerant applications we propose a service model called "          predictive service" which supplies a fairly reliable, but not          perfectly reliable, delay bound.  This bound, in contrast to          the bound in the guaranteed service, is not based on worst case          assumptions on the behavior of other flows.  Instead, this          bound might be computed with properly conservative predictions          about the behavior of other flows.  If the network turns out to          be wrong and the bound is violated, the application's          performance will perhaps suffer, but the users are willing to          tolerate such interruptions in service in return for the          presumed lower cost of the service.  Furthermore, because many          of the tolerant applications are adaptive, we augment the          predictive service to also give "minimax" service, which is to          attempt to minimize the ex post maximum delay.  This service is          not trying to minimize the delay of every packet, but rather is          trying to pull in the tail of the delay distribution. 
  247.  
  248.          It is clear that given a choice, with all other things being          equal, an application would perform no worse with absolutely          reliable bounds than with fairly reliable bounds.  Why, then,          do we offer predictive service?  The key consideration here is          efficiency; when one relaxes the service requirements from          perfectly to fairly reliable bounds, this increases the level          of network utilization that can be sustained, and thus the          price of the predictive service will presumably be lower than          that of guaranteed service.  The predictive service class is          motivated by the conjecture that the performance penalty will          be small for tolerant applications but the overall efficiency          gain will be quite large. 
  249.  
  250.          In order to provide a delay bound, the nature of the traffic          from the source must be characterized, and there must be some          admission control algorithm which insures that a requested flow 
  251.  
  252.  
  253.  
  254. Braden, Clark & Shenker                                        [Page 14] 
  255.  RFC 1633            Integrated Services Architecture           June 1994 
  256.  
  257.           can actually be accommodated. A fundamental point of our          overall architecture is that traffic characterization and          admission control are necessary for these real-time delay bound          services.  So far we have assumed that an application's data          generation process is an intrinsic property unaffected by the          network.  However, there are likely to be many audio and video          applications which can adjust their coding scheme and thus can          alter the resulting data generation process depending on the          network service available.  This alteration of the coding          scheme will present a tradeoff between fidelity (of the coding          scheme itself, not of the playback process) and the bandwidth          requirements of the flow.  Such "rate-adaptive" playback          applications have the advantage that they can adjust to the          current network conditions not just by resetting their playback          point but also by adjusting the traffic pattern itself.  For          rate-adaptive applications, the traffic characterizations used          in the service commitment are not immutable.  We can thus          augment the service model by allowing the network to notify          (either implicitly through packet drops or explicitly through          control packets) rate-adaptive applications to change their          traffic characterization. 
  258.  
  259.       3.1.2 Elastic Applications 
  260.  
  261.          While real-time applications do not wait for late data to          arrive, elastic applications will always wait for data to          arrive.  It is not that these applications are insensitive to          delay; to the contrary, significantly increasing the delay of a          packet will often harm the application's performance.  Rather,          the key point is that the application typically uses the          arriving data immediately, rather than buffering it for some          later time, and will always choose to wait for the incoming          data rather than proceed without it.  Because arriving data can          be used immediately, these applications do not require any a          priori characterization of the service in order for the          application to function.  Generally speaking, it is likely that          for a given distribution of packet delays, the perceived          performance of elastic applications will depend more on the          average delay than on the tail of the delay distribution.  One          can think of several categories of such elastic applications:          interactive burst (Telnet, X, NFS), interactive bulk transfer          (FTP), and asynchronous bulk transfer (electronic mail, FAX).          The delay requirements of these elastic applications vary from          rather demanding for interactive burst applications to rather          lax for asynchronous bulk transfer, with interactive bulk          transfer being intermediate between them. 
  262.  
  263.  
  264.  
  265.  
  266.  
  267. Braden, Clark & Shenker                                        [Page 15] 
  268.  RFC 1633            Integrated Services Architecture           June 1994 
  269.  
  270.           An appropriate service model for elastic applications is to          provide "as-soon-as-possible", or ASAP service. (For          compatibility with historical usage, we will use the term          best-effort service when referring to ASAP service.).  We          furthermore propose to offer several classes of best-effort          service to reflect the relative delay sensitivities of          different elastic applications.  This service model allows          interactive burst applications to have lower delays than          interactive bulk applications, which in turn would have lower          delays than asynchronous bulk applications.  In contrast to the          real-time service models, applications using this service are          not subject to admission control. 
  271.  
  272.          The taxonomy of applications into tolerant playback, intolerant          playback, and elastic is neither exact nor complete, but was          only used to guide the development of the core service model.          The resulting core service model should be judged not on the          validity of the underlying taxonomy but rather on its ability          to adequately meet the needs of the entire spectrum of          applications.  In particular, not all real-time applications          are playback applications; for example, one might imagine a          visualization application which merely displayed the image          encoded in each packet whenever it arrived.  However, non-          playback applications can still use either the guaranteed or          predictive real-time service model, although these services are          not specifically tailored to their needs.  Similarly, playback          applications cannot be neatly classified as either tolerant or          intolerant, but rather fall along a continuum; offering both          guaranteed and predictive service allows applications to make          their own tradeoff between fidelity, latency, and cost.          Despite these obvious deficiencies in the taxonomy, we expect          that it describes the service requirements of current and          future applications well enough so that our core service model          can adequately meet all application needs. 
  273.  
  274.    3.2 Resource-Sharing Requirements and Service Models 
  275.  
  276.       The last section considered quality of service commitments; these       commitments dictate how the network must allocate its resources       among the individual flows.  This allocation of resources is       typically negotiated on a flow-by-flow basis as each flow requests       admission to the network, and does not address any of the policy       issues that arise when one looks at collections of flows.  To       address these collective policy issues, we now discuss resource-       sharing service commitments.  Recall that for individual quality       of service commitments we focused on delay as the only quantity of       interest.  Here, we postulate that the quantity of primary       interest in resource-sharing is aggregate bandwidth on individual 
  277.  
  278.  
  279.  
  280. Braden, Clark & Shenker                                        [Page 16] 
  281.  RFC 1633            Integrated Services Architecture           June 1994 
  282.  
  283.        links.  Thus, this component of the service model, called "link-       sharing", addresses the question of how to share the aggregate       bandwidth of a link among various collective entities according to       some set of specified shares.  There are several examples that are       commonly used to explain the requirement of link-sharing among       collective entities. 
  284.  
  285.       Multi-entity link-sharing. -- A link may be purchased and used       jointly by several organizations, government agencies or the like.       They may wish to insure that under overload the link is shared in       a controlled way, perhaps in proportion to the capital investment       of each entity.  At the same time, they might wish that when the       link is underloaded, any one of the entities could utilize all the       idle bandwidth. 
  286.  
  287.       Multi-protocol link-sharing -- In a multi-protocol Internet, it       may be desired to prevent one protocol family (DECnet, IP, IPX,       OSI, SNA, etc.) from overloading the link and excluding the other       families. This is important because different families may have       different methods of detecting and responding to congestion, and       some methods may be more "aggressive" than others. This could lead       to a situation in which one protocol backs off more rapidly than       another under congestion, and ends up getting no bandwidth.       Explicit control in the router may be required to correct this.       Again, one might expect that this control should apply only under       overload, while permitting an idle link to be used in any       proportion. 
  288.  
  289.       Multi-service sharing -- Within a protocol family such as IP, an       administrator might wish to limit the fraction of bandwidth       allocated to various service classes.  For example, an       administrator might wish to limit the amount of real-time traffic       to some fraction of the link, to avoid preempting elastic traffic       such as FTP. 
  290.  
  291.       In general terms, the link-sharing service model is to share the       aggregate bandwidth according to some specified shares.  We can       extend this link-sharing service model to a hierarchical version.       For instance, a link could be divided between a number of       organizations, each of which would divide the resulting allocation       among a number of protocols, each of which would be divided among       a number of services.  Here, the sharing is defined by a tree with       shares assigned to each leaf node. 
  292.  
  293.       An idealized fluid model of instantaneous link-sharing with       proportional sharing of excess is the fluid processor sharing       model (introduced in [DKS89] and further explored in [Parekh92]       and generalized to the hierarchical case) where at every instant 
  294.  
  295.  
  296.  
  297. Braden, Clark & Shenker                                        [Page 17] 
  298.  RFC 1633            Integrated Services Architecture           June 1994 
  299.  
  300.        the available bandwidth is shared between the active entities       (i.e., those having packets in the queue) in proportion to the       assigned shares of the resource.  This fluid model exhibits the       desired policy behavior but is, of course, an unrealistic       idealization.  We then propose that the actual service model       should be to approximate, as closely as possible, the bandwidth       shares produced by this ideal fluid model.  It is not necessary to       require that the specific order of packet departures match those       of the fluid model since we presume that all detailed per-packet       delay requirements of individual flows are addressed through       quality of service commitments and, furthermore, the satisfaction       with the link-sharing service delivered will probably not depend       very sensitively on small deviations from the scheduling implied       by the fluid link-sharing model. 
  301.  
  302.       We previously observed that admission control was necessary to       ensure that the real-time service commitments could be met.       Similarly, admission control will again be necessary to ensure       that the link-sharing commitments can be met.  For each entity,       admission control must keep the cumulative guaranteed and       predictive traffic from exceeding the assigned link-share. 
  303.  
  304.    3.3 Packet Dropping 
  305.  
  306.       So far, we have implicitly assumed that all packets within a flow       were equally important.  However, in many audio and video streams,       some packets are more valuable than others.  We therefore propose       augmenting the service model with a "preemptable" packet service,       whereby some of the packets within a flow could be marked as       preemptable.  When the network was in danger of not meeting some       of its quantitative service commitments, it could exercise a       certain packet's "preemptability option" and discard the packet       (not merely delay it, since that would introduce out-of-order       problems).  By discarding these preemptable packets, a router can       reduce the delays of the not-preempted packets. 
  307.  
  308.       Furthermore, one can define a class of packets that is not subject       to admission control.  In the scenario described above where       preemptable packets are dropped only when quantitative service       commitments are in danger of being violated, the expectation is       that preemptable packets will almost always be delivered and thus       they must included in the traffic description used in admission       control.  However, we can extend preemptability to the extreme       case of "expendable" packets (the term expendable is used to       connote an extreme degree of preemptability), where the       expectation is that many of these expendable packets may not be       delivered.  One can then exclude expendable packets from the       traffic description used in admission control; i.e., the packets 
  309.  
  310.  
  311.  
  312. Braden, Clark & Shenker                                        [Page 18] 
  313.  RFC 1633            Integrated Services Architecture           June 1994 
  314.  
  315.        are not considered part of the flow from the perspective of       admission control, since there is no commitment that they will be       delivered. 
  316.  
  317.    3.4 Usage Feedback 
  318.  
  319.       Another important issue in the service is the model for usage       feedback, also known as "accounting", to prevent abuse of network       resources.   The link-sharing service described earlier can be       used to provide administratively-imposed limits on usage.       However, a more free-market model of network access will require       back-pressure on users for the network resources they reserve.       This is a highly contentious issue, and we are not prepared to say       more about it at this time. 
  320.  
  321.    3.5 Reservation Model 
  322.  
  323.       The "reservation model" describes how an application negotiates       for a QoS level.  The simplest model is that the application asks       for a particular QoS and the network either grants it or refuses.       Often the situation will be more complex.  Many applications will       be able to get acceptable service from a range of QoS levels, or       more generally, from anywhere within some region of the multi-       dimensional space of a flowspec. 
  324.  
  325.       For example, rather than simply refusing the request, the network       might grant a lower resource level and inform the application of       what QoS has been actually granted.  A more complex example is the       "two-pass" reservation model, In this scheme, an "offered"       flowspec is propagated along the multicast distribution tree from       each sender Si to all receivers Rj.  Each router along the path       records these values and perhaps adjusts them to reflect available       capacity.  The receivers get these offers, generate corresponding       "requested" flowspecs, and propagate them back along the same       routes to the senders.  At each node, a local reconciliation must       be performed between the offered and the requested flowspec to       create a reservation, and an appropriately modified requested       flowspec is passed on.  This two-pass scheme allows extensive       properties like allowed delay to be distributed across hops in the       path [Tenet90, ST2-90].  Further work is needed to define the       amount of generality, with a corresponding level of complexity,       that is required in the reservation model. 
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335. Braden, Clark & Shenker                                        [Page 19] 
  336.  RFC 1633            Integrated Services Architecture           June 1994 
  337.  
  338.  4. Traffic Control Mechanisms 
  339.  
  340.    We first survey very briefly the possible traffic control mechanisms.    Then in Section 4.2 we apply a subset of these mechanisms to support    the various services that we have proposed. 
  341.  
  342.    4.1 Basic Functions 
  343.  
  344.       In the packet forwarding path, there is actually a very limited       set of actions that a router can take.  Given a particular packet,       a router must select a route for it; in addition the router can       either forward it or drop it, and the router may reorder it with       respect to other packets waiting to depart.  The router can also       hold the packet, even though the link is idle.  These are the       building blocks from which we must fashion the desired behavior. 
  345.  
  346.       4.1.1 Packet Scheduling 
  347.  
  348.          The basic function of packet scheduling is to reorder the          output queue.  There are many papers that have been written on          possible ways to manage the output queue, and the resulting          behavior.  Perhaps the simplest approach is a priority scheme,          in which packets are ordered by priority, and highest priority          packets always leave first.  This has the effect of giving some          packets absolute preference over others; if there are enough of          the higher priority packets, the lower priority class can be          completely prevented from being sent. 
  349.  
  350.          An alternative scheduling scheme is round-robin or some          variant, which gives different classes of packets access to a          share of the link. A variant called Weighted Fair Queueing, or          WFQ, has been demonstrated to allocate the total bandwidth of a          link into specified shares. 
  351.  
  352.          There are more complex schemes for queue management, most of          which involve observing the service objectives of individual          packets, such as delivery deadline, and ordering packets based          on these criteria. 
  353.  
  354.       4.1.2 Packet Dropping 
  355.  
  356.          The controlled dropping of packets is as important as their          scheduling. 
  357.  
  358.          Most obviously, a router must drop packets when its buffers are          all full.  This fact, however, does not determine which packet          should be dropped.  Dropping the arriving packet, while simple,          may cause undesired behavior. 
  359.  
  360.  
  361.  
  362. Braden, Clark & Shenker                                        [Page 20] 
  363.  RFC 1633            Integrated Services Architecture           June 1994 
  364.  
  365.           In the context of today's Internet, with TCP operating over          best effort IP service, dropping a packet is taken by TCP as a          signal of congestion and causes it to reduce its load on the          network.  Thus, picking a packet to drop is the same as picking          a source to throttle.  Without going into any particular          algorithm, this simple relation suggests that some specific          dropping controls should be implemented in routers to improve          congestion control. 
  366.  
  367.          In the context of real-time services, dropping more directly          relates to achieving the desired quality of service.  If a          queue builds up, dropping one packet reduces the delay of all          the packets behind it in the queue.  The loss of one can          contribute to the success of many.  The problem for the          implementor is to determine when the service objective (the          delay bound) is in danger of being violated.  One cannot look          at queue length as an indication of how long packets have sat          in a queue.  If there is a priority scheme in place, packets of          lower priority can be pre-empted indefinitely, so even a short          queue may have very old packets in it.  While actual time          stamps could be used to measure holding time, the complexity          may be unacceptable. 
  368.  
  369.          Some simple dropping schemes, such as combining all the buffers          in a single global pool, and dropping the arriving packet if          the pool is full, can defeat the service objective of a WFQ          scheduling scheme.  Thus, dropping and scheduling must be          coordinated. 
  370.  
  371.       4.1.3 Packet Classification 
  372.  
  373.          The above discussion of scheduling and dropping presumed that          the packet had been classified into some flow or sequence of          packets that should be treated in a specified way.  A          preliminary to this sort of processing is the classification          itself.  Today a router looks at the destination address and          selects a route.  The destination address is not sufficient to          select the class of service a packet must receive; more          information is needed. 
  374.  
  375.          One approach would be to abandon the IP datagram model for a          virtual circuit model, in which a circuit is set up with          specific service attributes, and the packet carries a circuit          identifier.  This is the approach of ATM as well as protocols          such as ST-II [ST2-90].  Another model, less hostile to IP, is          to allow the classifier to look at more fields in the packet,          such as the source address, the protocol number and the port          fields.  Thus, video streams might be recognized by a 
  376.  
  377.  
  378.  
  379. Braden, Clark & Shenker                                        [Page 21] 
  380.  RFC 1633            Integrated Services Architecture           June 1994 
  381.  
  382.           particular well-known port field in the UDP header, or a          particular flow might be recognized by looking at both the          source and destination port numbers.  It would be possible to          look even deeper into the packets, for example testing a field          in the application layer to select a subset of a          hierarchically-encoded video stream. 
  383.  
  384.          The classifier implementation issues are complexity and          processing overhead.  Current experience suggests that careful          implementation of efficient algorithms can lead to efficient          classification of IP packets.  This result is very important,          since it allows us to add QoS support to existing applications,          such as Telnet, which are based on existing IP headers. 
  385.  
  386.          One approach to reducing the overhead of classification would          be to provide a "flow-id" field in the Internet-layer packet          header.  This flow-id would be a handle that could be cached          and used to short-cut classification of the packet.  There are          a number of variations of this concept, and engineering is          required to choose the best design. 
  387.  
  388.       4.1.4 Admission Control 
  389.  
  390.          As we stated in the introduction, real-time service depends on          setting up state in the router and making commitments to          certain classes of packets.  In order to insure that these          commitments can be met, it is necessary that resources be          explicitly requested, so that the request can be refused if the          resources are not available.  The decision about resource          availability is called admission control. 
  391.  
  392.          Admission control requires that the router understand the          demands that are currently being made on its assets.  The          approach traditionally proposed is to remember the service          parameters of past requests, and make a computation based on          the worst-case bounds on each service.  A recent proposal,          which is likely to provide better link utilization, is to          program the router to measure the actual usage by existing          packet flows, and to use this measured information as a basis          of admitting new flows [JCSZ92]. This approach is subject to          higher risk of overload, but may prove much more effective in          using bandwidth. 
  393.  
  394.          Note that while the need for admission control is part of the          global service model, the details of the algorithm run in each          router is a local matter.  Thus, vendors can compete by          developing and marketing better admission control algorithms,          which lead to higher link loadings with fewer service 
  395.  
  396.  
  397.  
  398. Braden, Clark & Shenker                                        [Page 22] 
  399.  RFC 1633            Integrated Services Architecture           June 1994 
  400.  
  401.           overloads. 
  402.  
  403.    4.2 Applying the Mechanisms 
  404.  
  405.       The various tools described above can be combined to support the       services which were discussed in section 3. 
  406.  
  407.       o    Guaranteed delay bounds 
  408.  
  409.            A theoretical result by Parekh [Parekh92] shows that if the            router implements a WFQ scheduling discipline, and if the            nature of the traffic source can be characterized (e.g. if it            fits within some bound such as a token bucket) then there            will be an absolute upper bound on the network delay of the            traffic in question.  This simple and very powerful result            applies not just to one switch, but to general networks of            routers.  The result is a constructive one; that is, Parekh            displays a source behavior which leads to the bound, and then            shows that this behavior is the worst possible.  This means            that the bound he computes is the best there can be, under            these assumptions. 
  410.  
  411.       o    Link sharing 
  412.  
  413.            The same WFQ scheme can provide controlled link sharing.  The            service objective here is not to bound delay, but to limit            overload shares on a link, while allowing any mix of traffic            to proceed if there is spare capacity.  This use of WFQ is            available in commercial routers today, and is used to            segregate traffic into classes based on such things as            protocol type or application.  For example, one can allocate            separate shares to TCP, IPX and SNA, and one can assure that            network control traffic gets a guaranteed share of the link. 
  414.  
  415.       o    Predictive real-time service 
  416.  
  417.            This service is actually more subtle than guaranteed service.            Its objective is to give a delay bound which is, on the one            hand, as low as possible, and on the other hand, stable            enough that the receiver can estimate it.  The WFQ mechanism            leads to a guaranteed bound, but not necessarily a low bound.            In fact, mixing traffic into one queue, rather than            separating it as in WFQ, leads to lower bounds, so long as            the mixed traffic is generally similar (e.g., mixing traffic            from multiple video coders makes sense, mixing video and FTP            does not). 
  418.  
  419.  
  420.  
  421.  
  422.  
  423. Braden, Clark & Shenker                                        [Page 23] 
  424.  RFC 1633            Integrated Services Architecture           June 1994 
  425.  
  426.             This suggests that we need a two-tier mechanism, in which the            first tier separates traffic which has different service            objectives, and the second tier schedules traffic within each            first tier class in order to meet its service objective. 
  427.  
  428.    4.3 An example: The CSZ scheme 
  429.  
  430.       As a proof of concept, a code package has been implemented which       realizes the services discussed above.  It actually uses a number       of the basic tools, combined in a way specific to the service       needs.  We describe in general terms how it works, to suggest how       services can be realized.  We stress that there are other ways of       building a router to meet the same service needs, and there are in       fact other implementations being used today. 
  431.  
  432.        At the top level, the CSZ code uses WFQ as an isolation mechanism       to separate guaranteed flows from each other, as well as from the       rest of the traffic.  Guaranteed service gets the highest priority       when and only when it needs the access to meets its deadline.  WFQ       provides a separate guarantee for each and every guaranteed flow. 
  433.  
  434.       Predictive service and best effort service are separated by       priority.  Within the predictive service class, a further priority       is used to provide sub-classes with different delay bounds.       Inside each predictive sub-class, simple FIFO queueing is used to       mix the traffic, which seems to produce good overall delay       behavior.  This works because the top-tier algorithm has separated       out the best effort traffic such as FTP. 
  435.  
  436.       Within the best-effort class, WFQ is used to provide link sharing.       Since there is a possible requirement for nested shares, this WFQ       code can be used recursively.  There are thus two different uses       of WFQ in this code, one to segregate the guaranteed classes, and       one to segregate the link shares.  They are similar, but differ in       detail. 
  437.  
  438.       Within each link share of the best effort class, priority is used       to permit more time-sensitive elastic traffic to precede other       elastic traffic, e.g., to allow interactive traffic to precede       asynchronous bulk transfers. 
  439.  
  440.       The CSZ code thus uses both WFQ and priority in an alternating       manner to build a mechanism to support a range of rather       sophisticated service offerings.  This discussion is very brief,       and does not touch on a number of significant issues, such as how       the CSZ code fits real time traffic into the link sharing       objectives.  But the basic building blocks are very simple, and 
  441.  
  442.  
  443.  
  444. Braden, Clark & Shenker                                        [Page 24] 
  445.  RFC 1633            Integrated Services Architecture           June 1994 
  446.  
  447.        very powerful.  In particular, while priority has been proposed as       a key to real-time services, WFQ may be the more general and       powerful of the two schemes.  It, rather than priority, supports       guaranteed service and link sharing. 
  448.  
  449. 5. Reservation Setup Protocol 
  450.  
  451.    There are a number of requirements to be met by the design of a    reservation setuop protocol.  It should be fundamentally designed for    a multicast environment, and it must accommodate heterogeneous    service needs.  It must give flexible control over the manner in    which reservations can be shared along branches of the multicast    delivery trees.  It should be designed around the elementary action    of adding one sender and/or receiver to an existing set, or deleting    one.  It must be robust and scale well to large multicast groups.    Finally, it must provide for advance reservation of resources, and    for the preemption that this implies.  The reservation setup protocol    RSVP has been designed to meet these requirements [RSVP93a, RSVP93b].    This section gives an overview of the design of RSVP. 
  452.  
  453.    5.1 RSVP Overview 
  454.  
  455.       Figure  shows multi-source, multi-destination data delivery for a       particular shared, distributed application.  The arrows indicate       data flow from senders S1 and S2 to receivers R1, R2, and R3, and       the cloud represents the distribution mesh created by the       multicast routing protocol.  Multicasting distribution replicates       each data packet from a sender Si, for delivery to every receiver       Rj.  We treat uncast delivery from S1 to R1 as a special case, and       we call this multicast distribution mesh a session.  A session is       defined by the common IP (multicast) destination address of the       receiver(s). 
  456.  
  457.                   Senders                              Receivers                              _____________________                             (                     ) ===> R1                     S1 ===> (    Multicast        )                             (                     ) ===> R2                             (    distribution     )                     S2 ===> (                     )                             (                     ) ===> R3                             (_____________________) 
  458.  
  459.                    Figure 2: Multicast Distribution Session 
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  Braden, Clark & Shenker                                        [Page 25] 
  466.  RFC 1633            Integrated Services Architecture           June 1994 
  467.  
  468.        5.1.1 Flowspecs and Filter Specs 
  469.  
  470.          In general, an RSVP reservation request specifies the amount of          resources to be reserved for all, or some subset of, the          packets in a particular session.  The resource quantity is          specified by a flowspec, while the packet subset to receive          those resources is specified by a filter spec.  Assuming          admission control succeeds, the flowspec will be used to          parametrize a resource class in the packet scheduler, and the          filter spec will be instantiated in the packet classifier to          map the appropriate packets into this class.  The subset of the          classifier state that selects a particular class is referred to          in RSVP documentation as a (packet) "filter". 
  471.  
  472.          The RSVP protocol mechanisms provide a very general facility          for creating and maintaining distributed reservation state          across the mesh of multicast delivery paths.  These mechanisms          treat flowspecs and filter specs as mostly opaque binary data,          handing them to the local traffic control machinery for          interpretation.  Of course, the service model presented to an          application must specify how to encode flowspecs and filter          specs. 
  473.  
  474.       5.1.2 Reservation Styles 
  475.  
  476.          RSVP offers several different reservation "styles", which          determine the manner in which the resource requirements of          multiple receivers are aggregated in the routers.  These styles          allow the reserved resources to more efficiently meet          application requirements.  Currently there are three          reservation styles, "wildcard", "fixed-filter", and " dynamic-          filter".  A wildcard reservation uses a filter spec that is not          source-specific, so all packets destined for the associated          destination (session) may use a common pool of reserved          resources.  This allows a single resource allocation to be made          across all distribution paths for the group.  The wildcard          reservation style is useful in support of an audio conference,          where at most a small number of sources are active          simultaneously and may share the resource allocation. 
  477.  
  478.          The other two styles use filter specs that select particular          sources.  A receiver may desire to receive from a fixed set of          sources, or instead it may desire the network to switch between          different source, by changing its filter spec(s) dymamically.          A fixed-filter style reservation cannot be changed during its          lifetime without re-invoking admission control.  Dynamic-filter          reservations do allow a receiver to modify its choice of          source(s) over time without additional admission control; 
  479.  
  480.  
  481.  
  482. Braden, Clark & Shenker                                        [Page 26] 
  483.  RFC 1633            Integrated Services Architecture           June 1994 
  484.  
  485.           however, this requires that sufficient resources be allocated          to handle the worst case when all downstream receivers take          input from different sources. 
  486.  
  487.       5.1.3 Receiver Initiation 
  488.  
  489.          An important design question is whether senders or receivers          should have responsibility for initiating reservations.  A          sender knows the qualities of the traffic stream it can send,          while a receiver knows what it wants to (or can) receive.          Perhaps the most obvious choice is to let the sender initiate          the reservation.  However, this scales poorly for large,          dynamic multicast delivery trees and for heterogeneous          receivers. 
  490.  
  491.          Both of these scaling problems are solved by making the          receiver responsible for initiating a reservation.  Receiver          initiation  handles heterogeneous receivers easily; each          receiver simply asks for a reservation appropriate to itself,          and any differences among reservations from different receivers          are resolved ("merged") within the network by RSVP.  Receiver          initiation is also consisent with IP multicast, in which a          multicast group is created implicitly by receivers joining it. 
  492.  
  493.          Although receiver-initiated reservation is the natural choice          for multicast sessions, the justification for receiver          initiateion may appear weaker for unicast sessions, where the          sender may be the logical session initiator.  However, we          expect that every realtime application will have its higher-          level signalling and control protocol, and this protocol can be          used to signal the receiver to initiate a reservation (and          perhaps indicate the flowspec to be used).  For simplicity and          economy, a setup protocol should support only one direction of          initiation, and, and receiver initiation appears to us to be          the clear winner. 
  494.  
  495.          RSVP uses receiver-initiation of rservations [RSVP93b].  A          receiver is assumed to learn the senders' offered flowspecs by          a higher-level mechanism ("out of band"), it then generates its          own desired flowspec and propagates it towards the senders,          making reservations in each router along the way. 
  496.  
  497.       5.1.4 Soft State 
  498.  
  499.          There are two different possible styles for reservation setup          protocols, the "hard state" (HS) approach (also called          "connection-oriented"), and the "soft state" (SS) approach          (also called "connectionless").  In both approaches, multicast 
  500.  
  501.  
  502.  
  503. Braden, Clark & Shenker                                        [Page 27] 
  504.  RFC 1633            Integrated Services Architecture           June 1994 
  505.  
  506.           distribution is performed using flow-specific state in each          router along the path.  Under the HS approach, this state is          created and deleted in a fully deterministic manner by          cooperation among the routers.  Once a host requests a session,          the "network" takes responsibility for creating and later          destroying the necessary state.  ST-II is an example of the HS          approach [ST2-90].  Since management of HS session state is          completely deterministic, the HS setup protocol must be          reliable, with acknowledgments and retransmissions.  In order          to achieve deterministic cleanup of state after a failure,          there must be some mechanism to detect failures, i.e., an          "up/down" protocol.  The router upstream (towards the source)          from a failure takes responsibility for rebuilding the          necessary state on the router(s) along an alternate route. 
  507.  
  508.          RSVP takes the SS approach, which regards the reservation state          as cached information that is installed and periodically          refreshed by the end hosts.  Unused state is timed out by the          routers.  If the route changes, the refresh messages          automatically install the necessary state along the new route.          The SS approach was chosen to obtain the simplicity and          robustness that have been demonstrated by connectionless          protocols such as IP [Clark88]. 
  509.  
  510.    5.2 Routing and Reservations 
  511.  
  512.       There is a fundamental interaction between resource reservation       set up and routing, since reservation requires the installation of       flow state along the route of data packets.  If and when a route       changes, there must be some mechanism to set up a reservation       along the new route. 
  513.  
  514.       Some have suggested that reservation setup necessarily requires       route set up, i.e., the imposition of a virtual-circuit internet       layer.  However, our goal is to simply extend the Internet       architecture, not replace it.  The fundamental connectionless       internet layer [Clark88] has been highly successful, and we wish       to retain it as an architectural foundation.  We propose instead       to modify somewhat the pure datagram forwarding mechanism of the       present Internet to accomodate "IS". 
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526. Braden, Clark & Shenker                                        [Page 28] 
  527.  RFC 1633            Integrated Services Architecture           June 1994 
  528.  
  529.        There are four routing issues faced by a reservation setup       protocol such as RSVP. 
  530.  
  531.       1.   Find a route that supports resource reservation. 
  532.  
  533.            This is simply "type-of-service" routing, a facility that is            already available in some modern routing protocols. 
  534.  
  535.       2.   Find a route that has sufficient unreserved capacity for a            new flow. 
  536.  
  537.            Early experiments on the ARPANET showed that it is difficult            to do load-dependent dynamic routing on a packet-by-packet            basis without instability problems.  However, instability            should not be a problem if load-dependent routing is            performed only at reservation setup time. 
  538.  
  539.            Two different approaches might be taken to finding a route            with enough capacity.  One could modify the routing            protocol(s) and interface them to the traffic control            mechanism, so the route computation can consider the average            recent load.  Alternatively, the routing protocol could be            (re-)designed to provide multiple alternative routes, and            reservation setup could be attempted along each in turn. 
  540.  
  541.       3.   Adapt to a route failure 
  542.  
  543.            When some node or link fails, adaptive routing finds an            alternate path.  The periodic refresh messages of RSVP will            automatically request a reservation along the new path.  Of            course, this reservation may fail because there is            insufficienct available capacity on the new path.  This is a            problem of provisioning and network engineering, which cannot            be solved by the routing or setup protocols. 
  544.  
  545.            There is a problem of timeliness of establishing reservation            state on the new path.  The end-to-end robustness mechanism            of refreshes is limited in frequency by overhead, which may            cause a gap in realtime service when an old route breaks and            a new one is chosen.  It should be possible to engineer RSVP            to sypplement the global refresh mechanism with a local            repair mechanism, using hints about route changes from the            routing mechanism. 
  546.  
  547.       4.   Adapt to a route change (without failure) 
  548.  
  549.            Route changes may occur even without failure in the affected            path.  Although RSVP could use the same repair techniques as 
  550.  
  551.  
  552.  
  553. Braden, Clark & Shenker                                        [Page 29] 
  554.  RFC 1633            Integrated Services Architecture           June 1994 
  555.  
  556.             those described in (3), this case raises a problem with the            robustness of the QoS guarantees.  If it should happen that            admission control fails on the new route, the user will see            service degradation unnecessarily and capriciously, since the            orginal route is still functional. 
  557.  
  558.            To avoid this problem, a mechanism called "route pinning" has            been suggested.  This would modify the routing protocol            implementation and the interface to the classifier, so that            routes associated with resource reservations would be            "pinned".  The routing prootocol would not change a pinned            route if it was still viable. 
  559.  
  560.       It may eventually be possible to fold together the routing and       reservation setup problems, but we do not yet understand enough to       do that.  Furthermore, the reservation protocol needs to coexist       with a number of different routing protocols in use in the       Internet.  Therefore, RSVP is currently designed to work with any       current-generation routing protocol without modification.  This is       a short-term compromise, which may result in an occasional failure       to create the best, or even any, real-time session, or an       occasional service degradation due to a route change.  We expect       that future generations of routing protocols will remove this       compromise, by including hooks and mechanisms that, in conjunction       with RSVP, will solve the problems (1) through (4) just listed.       They will support route pinning, notification of RSVP to trigger       local repair, and selection of routes with "IS" support and       adequate capacity. 
  561.  
  562.       The last routing-related issue is provided by mobile hosts.  Our       conjecture is that mobility is not essentially different from       other route changes, so that the mechanism suggested in (3) and       (4) will suffice.  More study and experimentation is needed to       prove or disprove this conjecture. 
  563.  
  564. 6. ACKNOWLEDGMENTS 
  565.  
  566.    Many Internet researchers have contributed to the work described in    this memo.  We want to especially acknowledge, Steve Casner, Steve    Deering, Deborah Estrin, Sally Floyd, Shai Herzog, Van Jacobson,    Sugih Jamin, Craig Partridge, John Wroclawski, and Lixia Zhang.  This    approach to Internet integrated services was initially discussed and    organized in the End-to-End Research Group of the Internet Research    Taskforce, and we are grateful to all members of that group for their    interesting (and sometimes heated) discussions. 
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  Braden, Clark & Shenker                                        [Page 30] 
  573.  RFC 1633            Integrated Services Architecture           June 1994 
  574.  
  575.  REFERENCES 
  576.  
  577. [CerfKahn74]  Cerf, V., and R. Kahn, "A Protocol for Packet Network     Intercommunication", IEEE Trans on Comm., Vol. Com-22, No. 5, May     1974. 
  578.  
  579. [Clark88]  Clark, D., "The Design Philosophy of the DARPA Internet     Protocols", ACM SIGCOMM '88, August 1988. 
  580.  
  581. [CSZ92]  Clark, D., Shenker, S., and L. Zhang, "Supporting Real-Time     Applications in an Integrated Services Packet Network: Architecture     and Mechanisms", Proc. SIGCOMM '92, Baltimore, MD, August 1992. 
  582.  
  583. [DKS89]  Demers, A., Keshav, S., and S. Shenker.  "Analysis and     Simulation of a Fair Queueing Algorithm", Journal of     Internetworking: Research and Experience, 1, pp. 3-26, 1990.  Also     in Proc. ACM SIGCOMM '89, pp 3-12. 
  584.  
  585. [SCZ93a]  Shenker, S., Clark, D., and L. Zhang, "A Scheduling Service     Model and a Scheduling Architecture for an Integrated Services     Packet Network", submitted to ACM/IEEE Trans. on Networking. 
  586.  
  587. [SCZ93b]  Shenker, S., Clark, D., and L. Zhang, "A Service Model for the     Integrated Services Internet", Work in Progress, October 1993. 
  588.  
  589. [Floyd92]  Floyd, S., "Issues in Flexible Resource Management for     Datagram Networks", Proceedings of the 3rd Workshop on Very High     Speed Networks, March 1992. 
  590.  
  591. [Jacobson91]  Jacobson, V., "Private Communication", 1991. 
  592.  
  593. [JCSZ92]  Jamin, S., Shenker, S., Zhang, L., and D. Clark, "An Admission     Control Algorithm for Predictive Real-Time Service", Extended     abstract, in Proc. Third International Workshop on Network and     Operating System Support for Digital Audio and Video, San Diego, CA,     Nov. 1992, pp.  73-91. 
  594.  
  595. [Parekh92]  Parekh, A., "A Generalized Processor Sharing Approach to     Flow Control in Integrated Services Networks", Technical Report     LIDS-TR-2089, Laboratory for Information and Decision Systems,     Massachusetts Institute of Technology, 1992. 
  596.  
  597. [Partridge92]  Partridge, C., "A Proposed Flow Specification", RFC 1363,     BBN, July 1992. 
  598.  
  599. [RSVP93a]  Zhang, L., Deering, S., Estrin, D., Shenker, S., and D.     Zappala, "RSVP: A New Resource ReSerVation Protocol", Accepted for     publication in IEEE Network, 1993. 
  600.  
  601.  
  602.  
  603. Braden, Clark & Shenker                                        [Page 31] 
  604.  RFC 1633            Integrated Services Architecture           June 1994 
  605.  
  606.  [RSVP93b]  Zhang, L., Braden, R., Estrin, D., Herzog, S., and S. Jamin,     "Resource ReSerVation Protocol (RSVP) - Version 1 Functional     Specification", Work in Progress, 1993. 
  607.  
  608. [ST2-90]  Topolcic, C., "Experimental Internet Stream Protocol: Version     2 (ST-II)", RFC 1190, BBN, October 1990. 
  609.  
  610. [Tenet90]  Ferrari, D., and D. Verma, "A Scheme for Real-Time Channel     Establishment in Wide-Area Networks", IEEE JSAC, Vol. 8, No. 3, pp     368-379, April 1990. 
  611.  
  612. Security Considerations 
  613.  
  614.    As noted in Section 2.1, the ability to reserve resources will create    a requirement for authentication, both of users requesting resource    guarantees and of packets that claim to have the right to use those    guarantees.  These authentication issues are not otherwise addressed    in this memo, but are for further study. 
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648. Braden, Clark & Shenker                                        [Page 32] 
  649.  RFC 1633            Integrated Services Architecture           June 1994 
  650.  
  651.  Authors' Addresses 
  652.  
  653.    Bob Braden    USC Information Sciences Institute    4676 Admiralty Way    Marina del Rey, CA 90292 
  654.  
  655.    Phone: (310) 822-1511    EMail: Braden@ISI.EDU 
  656.  
  657.     David Clark    MIT Laboratory for Computer Science    545 Technology Square    Cambridge, MA 02139-1986 
  658.  
  659.    Phone: (617) 253-6003    EMail: ddc@LCS.MIT.EDU 
  660.  
  661.     Scott Shenker    Xerox Palo Alto Research Center    3333 Coyote Hill Road    Palo Alto, CA 94304 
  662.  
  663.    Phone: (415) 812-4840    EMail: Shenker@PARC.XEROX.COM 
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  Braden, Clark & Shenker                                        [Page 33] 
  688.  
  689.