diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2216.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2216.txt')
-rw-r--r-- | doc/rfc/rfc2216.txt | 1235 |
1 files changed, 1235 insertions, 0 deletions
diff --git a/doc/rfc/rfc2216.txt b/doc/rfc/rfc2216.txt new file mode 100644 index 0000000..cf38710 --- /dev/null +++ b/doc/rfc/rfc2216.txt @@ -0,0 +1,1235 @@ + + + + + + +Network Working Group S. Shenker +Request for Comments: 2216 J. Wroclawski +Category: Informational Xerox PARC/MIT LCS + September 1997 + + + Network Element Service Specification Template + + +Status of this Memo + + This memo provides information for the Internet community. It does + not specify an Internet standard of any kind. Distribution of this + memo is unlimited. + +Abstract + + This document defines a framework for specifying services provided by + network elements, and available to applications, in an internetwork + which offers multiple qualities of service. The document first + provides some necessary context -- including relevant definitions and + suggested data formats -- and then specifies a "template" which + service specification documents should follow. The specification + template includes per-element requirements such as the service's + packet handling behavior, parameters required and made available by + the service, traffic specification and policing requirements, and + traffic ordering relationships. It also includes evaluation criteria + for elements providing the service, and examples of how the service + might be implemented (by network elements) and used (by + applications). + +Introduction + + This document defines the framework used to specify the functionality + of internetwork system components which support the the ability to + provide multiple, dynamically selectable qualities of service to + applications using an internetwork. The behavior of individual + routers and subnetworks is captured as a set of "services", some or + all of which may be offered by each element. The concatenation of + these services along the end-to-end data paths used by an application + provides overall quality of service control. + + The definition of a service states what is required of a router (or, + more generally, any network element; a router, switch, subnet, etc.) + which supports a particular service. The service definition also + + + + + + +Shenker & Wroclawski Informational [Page 1] + +RFC 2216 Network Element Service Template September 1997 + + + specifies parameters used to invoke the service, the relationship + between those parameters and the service delivered, and the end-to- + end behavior obtained by concatenating several instances of the + service. + + Each service definition also specifies the interface between that + service and the environment. This includes the parameters needed to + invoke the service, informational parameters which the service must + make available for use by setup, routing, and management mechanisms, + and information which should be carried between end-nodes and network + elements by those mechanisms in order to achieve the desired end-to- + end behavior. However, a service definition does not describe the + specific protocols or mechanisms used to establish state in the + network elements for flows that use the described service. + + Services defined following the guidelines of this document are + intended for use both within the global Internet and private IP + networks. In certain cases a concatenation of network element + services may be used to provide a range of end-to-end behaviors, some + more suited to a decentralized internet and some more appropriate for + a tightly managed private network. This document points out places + where such distinction may be appropriate. + + This document is comprised of three parts. The first defines some + terms used both in this document and in the various service + specification documents. The second discusses data formats and + representations. The third portion of the document describes the + various components of the service specification template. + +Definitions + + The following terms are used throughout this document. Service + specification documents should employ the same terms to express these + concepts. + + o Quality of Service (QoS) + + In the context of this document, quality of service refers to the + nature of the packet delivery service provided, as described by + parameters such as achieved bandwidth, packet delay, and packet loss + rates. Traditionally, the Internet has offered a single quality of + service, best-effort delivery, with available bandwidth and delay + characteristics dependent on instantaneous load. Control over the + quality of service seen by applications is exercised by adequate + provisioning of the network infrastructure. In contrast, a network + with dynamically controllable quality of service allows individual + application sessions to request network packet delivery + characteristics according to their perceived needs, and may provide + + + +Shenker & Wroclawski Informational [Page 2] + +RFC 2216 Network Element Service Template September 1997 + + + different qualities of service to different applications. It should + be understood that there is a range of useful possibilities between + the two endpoints of providing no dynamic QoS control at all and + providing extremely precise and accurate control of QoS parameters. + + o Network Element + + A "Network Element" (or the equivalent shorter form "Element"), is + any component of an internetwork which directly handles data packets + and thus is potentially capable of exercising QoS control over data + flowing through it. Network elements include routers, subnetworks, + and end-node operating systems. A QoS-capable network element is one + which offers one or more of the services defined according to the + rules given in this document. Note that this definition, by itself, + preclude QoS-capable network elements that meet performance goals + purely through adequate provisioning rather than active admission and + traffic control mechanisms. A "QoS-aware" network element is one + which supports the interfaces (described below) required by the + service definitions. Thus, a QoS-aware network element need not + actually offer any of the services defined according to the format of + this document; it merely needs to know how to deny service requests. + + o Flow + + For the purposes of this document a flow is a set of packets + traversing a network element all of which are covered by the same + request for control of quality of service. At a given network element + a flow may consist of the packets from a single application session, + or it may be an aggregation comprising the combined data traffic from + a number of application sessions. + + NOTE: this definition of a flow is different from that used in + IPv6, where a flow is defined as those packets with the same + source address and FlowID. + + Mechanisms used to associate a request for quality of service control + with the packets covered by that request are beyond the scope of this + document. + + o Service + + The phrase "service" or "QoS Control Service" describes a named, + coordinated set of QoS control capabilities provided by a single + network element. The definition of a service includes a + specification of the functions to be performed by the network + + + + + + +Shenker & Wroclawski Informational [Page 3] + +RFC 2216 Network Element Service Template September 1997 + + + element, the information required by the element to perform these + functions, and the information made available by the element to other + elements of the system. A service is conceptually implemented within + the "service module" contained within the network element. + + NOTE: The above defines a precise meaning for the word "service". + Service is a word which has a variety of meanings throughout the + networking community; the definition of "service" given here + refers specifically to the actions and responses of a single + network element such as a router or subnet. This contrasts with + the more end-to-end oriented definition of the same word seen in + some other networking contexts. + + o Behavior + + A "behavior" is the QoS-related end-to-end performance seen by an + application session. This behavior is the end result of composing the + services offered by each network element along the path of the + application's data flow. + + When each network element along a data flow path offers the same + service, it is frequently possible to explain the resulting end-to- + end behavior in a straightforward fashion. The behavior of a data + flow path comprised of elements using different services is more + complicated, and may in fact be undefined. A future version of this + document may impose additional requirements on the service + specification relating to multi-service concatenation. + + o Characterization + + A characterization is a computed approximation of the actual end-to- + end behavior which would be seen by a flow requesting specific QoS + services from the network. By providing additional information to + the end-nodes before a flow is established, characterizations assist + the end-nodes in choosing the services to be requested from the + network. + + o Characterization Parameters + + Characterizations are computed from a set of characterization + parameters provided by each network element on the flow's path, and a + composition function which computes the end-to-end characterization + from those parameters. The composition function may in practice be + executed in a distributed fashion by the setup or routing protocol, + or the characterization parameters may be gathered to a single point + and the characterization computed at that point. + + + + + +Shenker & Wroclawski Informational [Page 4] + +RFC 2216 Network Element Service Template September 1997 + + + Several characterizations may be computed for a single candidate data + flow. Conversely, a service may provide no characterizations, and + under some conditions no characterizations may be available to the + end-nodes requesting QoS services. + + o Composition Function + + A composition function accepts characterization parameters as input + and computes a characterization, as described above. + + o Traffic Specification (TSpec) + + A Traffic Specification, or TSpec, is a description of the traffic + pattern for which service is being requested. In general, the TSpec + forms one side of a "contract" between the data flow and the service. + Once a service request is accepted, the service module has agreed to + provide a specific QoS as long as the flow's data traffic continues + to be accurately described by the TSpec. + + As examples, this specification might take the form of a token bucket + filter (defined below) or an upper bound on the peak rate. Note that + the traffic specification specifies the flow's *allowed* traffic + pattern, not the flows *actual* traffic pattern. The behavior of a + service when a flow's actual traffic does not conform to the traffic + specification must be defined by the service (see "Policing" below). + + o Service Request Specification (RSpec) + + A Service Request Specification, or RSpec, is a specification of the + quality of service a flow wishes to request from a network element. + The contents of a service request specification is highly specific to + a particular service. As examples, these specifications might contain + information about bandwidth allocated to the flow, maximum delays, or + packet loss rates. + + o Setup Protocol + + A setup protocol is used to carry QoS-related information from the + end-nodes requesting QoS control to network elements which must + exercise that control, and to install and maintain to required QoS + control state in those network elements. A setup protocol may also + be used to collect QoS-related information from interior network + elements along an application's data flow path for ultimate delivery + to end nodes. Examples of protocols which perform setup functions are + RSVP [RFC 2205], ST-II [RFC 1819], and Q.2931. + + + + + + +Shenker & Wroclawski Informational [Page 5] + +RFC 2216 Network Element Service Template September 1997 + + + Note that other mechanisms, such as network management protocols, may + also perform this function. The phrase "setup protocol" + conventionally refers to a protocol with this function as its primary + purpose. + + o Token Bucket + + A Token Bucket is a particular form of traffic specification + consisting of a "token rate" r and a "bucket size" b. Essentially, + the r parameter specifies the continually sustainable data rate, + while the b parameter specifies the extent to which the data rate can + exceed the sustainable level for short periods of time. More + specifically, the traffic must obey the rule that over all time + periods, the amount of data sent cannot exceed rT+b, where T is the + length of the time period. + + Token buckets are further discussed in [PARTRIDGE]. + + o Token Bucket Filter + + A Token Bucket Filter is a filtering or policing function which + differentiates those packets in a traffic flow which conform to a + particular token bucket specification from those packets which do + not. The specific treatment accorded nonconforming packets is not + specified in this definition; common actions are relegating the + packet to best effort service, discarding the packet, or marking the + packet in some fashion. + + o Admission Control + + Admission control is the process of deciding whether a newly arriving + request for service from a network element can be granted. This + action must be performed by any service which wishes to offer + absolute quantitative bounds on overall performance. It is not + necessary for services which provide only relative statements about + performance, such as the Internet's current best-effort service. The + precise criteria for making the admission control decision are a + specific to each particular service. + + o Policing + + Policing is the set of actions triggered when a flow's actual data + traffic characteristics exceed the expected values given in the + flow's traffic specification. Services which require policing + functions to operate correctly must specify both the action to be + + + + + + +Shenker & Wroclawski Informational [Page 6] + +RFC 2216 Network Element Service Template September 1997 + + + taken when such discrepancies occur and the locations in the network + where discrepancies are to be detected. Examples of such actions + might include relegating the packet to best effort service, dropping + packets, reshaping the traffic, or marking non-conforming traffic in + some fashion. + + o Interfaces + + The service module conceptually interacts with other portions of the + network element through a number of interfaces. The service + specification document should clearly define the specific data, + including formats, which moves across each conceptual interface, and + ensure that the mapping between conceptual interfaces and the + specific mechanisms of the service being defined are clear. + + Data Format and Representation + + A service module will import and export a variety of data according + to the specific requirements of the services the network element + supports. Each service definition MUST specify the format of each + such data item in an abstract manner. The information specified must + be sufficient for the designer of a setup protocol to correctly + select an appropriate concrete (packet) format for variables + containing this data. At minimum, the following information must be + given: + + - Type: whether the quantity is an enumeration, a numerical value, + etc. + + - Range: for numerical quantities, the minimum and maximum values + the quantity must be able to represent. For enumerated quantities, + an estimate of the maximum number of items which may need be + enumerated in the future, even if many of the values are currently + unused. + + - Precision: the precision with which a numerical quantity must be + represented, and whether that precision is absolute (calling for an + integer quantity) or a percentage of the value (allowing for a + floating point quantity). + + The service definition SHOULD additionally specify a preferred + concrete format for each data field, in the usual packet-layout + format used in current Internet Standard documents or in some other + accepted specification format. If the service definition contains + these concrete definitions, they should be sufficiently complete and + detailed to allow the service definition to be incorporated by + reference into the specifications for setup protocols and other users + of the specified data. + + + +Shenker & Wroclawski Informational [Page 7] + +RFC 2216 Network Element Service Template September 1997 + + + NOTE: The wording above is intended to encourage the use of common + data formats by all protocols carrying data related to a specific + service, while not mandating this common format or infringing on + the freedom of protocol specification designers to define data + representations using alternative mechanisms such as ASN.1 or XDR. + +Service and Data Element Naming + + End-nodes, network elements, setup protocols, and management entities + within an integrated services internetwork need to exchange + information about services, service invocation parameters, + characterization parameters, and the intermediate variables and end + results of composition functions. To support this requirement, a + single uniform namespace is established for services and their + parameters. + + The namespace is a two-level hierarchy: + + <service_name>.<parameter_name>. + + Each of these elements is a integer numerical quantity. + + <Service Name> is an integer in the range 1 to 254. The number space + is broken into three regions. + + Service number 1 is used to indicate that the associated parameter is + generic", and is not associated with a specific service. This use of + generic parameters is described more fully in [RFC 2215]. + + The range from 2 to 127 used to name services defined by the IETF. + Procedures for allocating service numbers in this region will be + established by the IETF INT-SERV WG and the IANA. Services designed + for public use should obtain a number from this space. The minimum + requirement for doing so is a published RFC following the format + described in this note. + + Service numbers in the region above 127 are reserved for experimental + or private services. Service designers may allocate numbers from this + space at random for local experimental use. A policy for global but + temporary allocation of these numbers may be established in the + future if necessary. + + The value 0 is left unused to allow the direct mapping of parameter + names to MIB object names, as described below. + + The value 255 is reserved to facilitate future expansion of the + service number space, if required. + + + + +Shenker & Wroclawski Informational [Page 8] + +RFC 2216 Network Element Service Template September 1997 + + + <Parameter_name> is a number in the range 1 to 254, allocated on a + per-service basis. Within this range, the values 1 to 127 are + reserved for assignment to parameters with a common, shared meaning + across all services. These parameters are defined in [RFC 2215]. + + Numbers for parameters specific to a service are assigned from the + range 128-254 by the author of the service specification document. + + The value 0 is left unused to allow the direct mapping of parameter + names to MIB object names, as described below. + + The value 255 is reserved to facilitate future expansion of the + parameter number space, if required. + + In addition to their uses within the integrated services framework, + these <service_number>.<parameter_number> pairs should be used as + last two levels of the MIB name when the corresponding values are + made available to network management protocols. + +Specification Document Format + + The following portion of this document describes the layout and + contents of a service specification. Each service specification + document MUST contain the sections marked [required] below, in the + order listed. Each document SHOULD contain each of the remaining + sections in the list below, unless there is a compelling argument + that the presence of the section is not beneficial. Additional + material, including references, should be included at the end of the + document. + + Some of these sections are normative, in that they describe specific + requirements to which conformant implementations must adhere. Other + sections are informational in nature, in that they describe necessary + context and technical considerations important to the implementor of + a service. The sections, and their nature (required or optional, and + informational or normative) are listed below: + + o Components + + The body of a service specification document incorporates the + following sections: + + - End-to-End Behavior [required] [informational] + + - Motivation [required] [informational] + + - Network Element Data Handling Requirements [required] [normative] + + + + +Shenker & Wroclawski Informational [Page 9] + +RFC 2216 Network Element Service Template September 1997 + + + - Invocation Information [required] [normative] + + - Exported Information [required] [normative] + + - Policing [required] [normative] + + - Ordering and Merging [required] [normative] + + - Guidelines for Implementors [optional] [informational] + + - Evaluation Criteria [required] [informational] + + - Examples of Implementation [optional] [informational] + + - Examples of Use [optional] [informational] + + o End-to-end Behavior + + This is a description of the behavior that results if all network + elements along the path offer the same service, invoked with a + defined set of parameters. + + In private networks it will generally be the case that the required + end-to-end behavior is obtained by concatenation of network elements + utilizing the same service and making significant use of + characterizations. + + In the global Internet, this will not always be true. End-to-end + behaviors will frequently be obtained through a concatenation of + network elements supporting different services, including in some + cases elements which exercise no QoS control at all. Mechanisms to + characterize end-to-end behavior in this circumstance are not fully + established at this time. Future versions of this document may impose + additional requirements on service specifications to facilitate + inter-service composition. + + This section is for informational purposes only. + + o Motivation + + This section discusses why this service is being defined. It + describes what kinds of applications might make use of this service, + and why this service might be more appropriate for those applications + than other possible choices. This section is for informational + purposes only. + + + + + + +Shenker & Wroclawski Informational [Page 10] + +RFC 2216 Network Element Service Template September 1997 + + + o Network Element Data Handling Requirements + + This section contains a description of the QoS properties seen by + data packets processed by a network element using this service. The + description must clearly explain what variables are controlled, the + degree of control exercised, and what aspects of the service's + handling model are fixed or assumed. Examples of degree of control + information include "this property must be mathematically assured" + and "this property should be met under most conditions". An example + of a stated assumption is "this service is assumed to have extremely + low packet loss; delay targets must be met using admission control + rather than by discarding packets when overloaded". + + Requirements on packet handling SHOULD, when at all possible, be + expressed as performance requirements rather than by specifying a a + particular packet scheduling algorithm. The performance requirements + might, for example, be a specification of the maximal packet delays + or the minimal bandwidth share given to a flow. + + This section also specifies actions which the packet handling path is + required to take to actively provide feedback to end-nodes about + conditions at the network element. Such actions might include + explicitly generated congestion feedback, indicated either as bits + set in the header of data packets or separate control messages sent. + + When writing this section of the service specification document, the + authors' goal should be to specify the required behavior as precisely + as necessary while still leaving adequate room for the implementation + and architectural tradeoffs appropriate to different circumstances + and classes of network elements. Successfully achieving this balance + may require some care. + + o Invocation Information + + This section describes the set of parameters required by a service + module to invoke the service, and a description of how the parameter + values are used by the service module. For example, a hypothetical + "bounded delay" service might be described as accepting a request + indicating a delay target for the network element and the set of + packets subject to that delay target, and processing packets in the + given set with a delay of the target value or less. + + Necessary invocation information for most services can be broken into + two parts, the Traffic Specification (TSpec) and the Service Request + Specification (RSpec). The TSpec gives characteristics of the data + + + + + + +Shenker & Wroclawski Informational [Page 11] + +RFC 2216 Network Element Service Template September 1997 + + + traffic to be handled, while the Rspec specifies the properties + desired from the service. For example, a service offering a + mathematical bound on delay might accept a TSpec giving the traffic + flow's bandwidth and burstiness specified as a Token Bucket, and an + RSpec giving the maximum tolerable queueing delay. + + A service accepting an invocation request may be thought of as + entering into a "contract" to provide the service described by the + RSpec as long as the flow's traffic continues to be described by the + TSpec. If the flow's traffic pattern falls outside the bounds of the + TSpec, the QoS provided to the flow may change. The precise nature of + this change is also described by the service specification (see + "Policing" below). + + The RSPec and TSpec components of the invocation information should + be specified separately and independently, as they will often be + generated by different elements of the internetwork + + All quantitative information specifications in this section should + follow the guidelines given in the Data Formats section of this + document, above. + + o Exported Information and Characterization Parameters + + This section describes information which must be collected and + exported by the service module. Exported information is available to + other modules of the network element, and by extension to setup + protocols, routing protocols, network management tools, and the like. + + Information exported by service modules may be used in several ways. + For example, quantities such as the amount of link bandwidth + dedicated to the service and the set of data flows currently + receiving the service are appropriate pieces of information to make + available as network management variables. + + A service definition may identify a particular subset of the + information exported by a service module as characterization + parameters. These characterization parameters may be used to compute + or estimate the end-to-end behavior of a data flow traversing a + concatenation of network service elements. They may also be used to + characterize portions of the path for use by network elements (e.g., + in computing the buffer necessary, an element may need to know + something about the service characteristics of the upstream portion + of the path). A service which defines characterization parameters + also specifies the characterizations they are used to generate and + the composition functions used to generate the characterizations. + + + + + +Shenker & Wroclawski Informational [Page 12] + +RFC 2216 Network Element Service Template September 1997 + + + NOTE: Characterization parameters are identified as such by virtue + of being the inputs to a service's defined composition functions. + Because characterization parameters are part of a service's + overall exported data set, they are also available to other + functions, such as network management. The discussion below + relates solely to their use as characterization parameters, and is + not intended to limit other uses. + + Characterization parameters may be relatively static quantities, such + as the bandwidth available on a specific link, or relatively dynamic + quantities, such as a running estimation of current packet delay. + + Support for a service's defined characterization parameters is + mandatory. Any network element offering this service must be able to + measure, compute, or, if allowed by the specification, estimate the + service's characterization parameters. Service designers are + encouraged to understand the implications of specifying + characterization parameters for a service, particularly with respect + to not unduly restricting the choice of hardware and software + architectures used to implement the network element. + + Characterization parameters are used by composing the values exported + by each network element along a data flow's path according to a + composition rule. For each parameter or set of parameters used to + develop a characterization, the service specification must specify + the composition rule to be used. These composition rules should + result in characterizations that are independent of the order in + which the element are composed; commutativity and associativity are + sufficient but not necessary conditions for this. + + Characterization parameters are available through a general + interface, and are provided in response to a request from some other + module, such as a setup protocol or the routing protocol. The + question of exactly how, or if, a specific protocol (e.g., RSVP) uses + characterization parameters to generate characterizations is + described in the specification of that specific protocol. + + The correct use of characterization parameters supplied by service + modules is a function of the setup, routing, or management protocol + controlling the module. There is no absolute guarantee that + characterizations will be available to end-nodes desiring to use a + + QoS control service. Service designers targeting services for the + global Internet may wish to ensure that a service is useful even in + the absence of characterizations, and to exhibit such uses in the + "Examples" sections of the service description document. + + + + + +Shenker & Wroclawski Informational [Page 13] + +RFC 2216 Network Element Service Template September 1997 + + + Conversely, the availability of characterizations may be mandatory in + certain circumstances, particularly for private IP networks providing + tightly controlled qualities of service for specific applications. + Service designers targeting this environment should particularly + ensure that the service provides adequate characterization parameters + and composition functions to meet the needs of target audiences. It + may be appropriate to specify the same basic service with additional + characterizations for meeting specific requirements beyond those of + the global Internet. + + Some useful "general" characterization parameters and corresponding + composition rules are not associated with any specific service. + These include the speed-of-light latency of communication links and + available link bandwidth. These general characterization parameters + are defined in [RFC 2215]. + + Although every conformant implementation of a service is required to + provide that service's characterization parameters, it is still + possible that the desired characterization parameters will not be + available for composition at all network elements in a path. This + situation may arise when different network element services are used + at different points in the end-to-end path, as may be required in a + heterogeneous internetworking environment. For this reason, + characterization parameters and composition function results + conceptually include a "validity flag". A network element which is + unable to provide the characterization parameter must set this flag, + and otherwise leave parameter or composed value unchanged. Once set, + the flag is preserved by the composition function, and serves as an + indicator of the validity of the data when the final composed result + is delivered to its destination. + + Protocols which transport characterization parameters and composition + data must define and support a concrete representation for this + validity flag, as well as for the characterization parameters + themselves. + + NOTE: This service specification template does not allow a service + definition to *require* that a setup or invocation mechanism used + with the service perform any function other than transport of + invocation parameters to the network elements and signalling of + errors generated by the network elements to the end nodes. A notable + example of this is that service specification documents may not + require or assume that characterizations defined in the specification + are actually computed or presented to the end nodes. + + That point notwithstanding, the practical usefulness of a specific + service may be highly dependent on the presence of some additional + behavior in the networked system, such as the computation and + + + +Shenker & Wroclawski Informational [Page 14] + +RFC 2216 Network Element Service Template September 1997 + + + presentation of characterizations to end-nodes or the reliable + assurance that every network element in the path from sender to + receivers supports the given service. Service specification authors + are strongly encouraged to clearly explain the situation of their + service in this regard. Statements such as: + + The characterizations defined by this service serve as useful + hints to the application. However, the service is specifically + intended to be useful even if characterizations are not available. + + or + + The usefulness of this service depends strongly on the delivery of + both characterizations and the knowledge that all network elements + on the path support the service. Requests for this service when + characterizations are not available are likely to lead to + incorrect or misleading results. + + are appropriate. It may also be useful to consider this point in the + "Examples of Use" section described below. + + NOTE: The possibility of modifying the overall architecture to + provide information about the invoking protocol in a service request, + and to allow a service to require that the invocation protocol + support specific additional functionality, is an area of active + study. + + o Policing + + This portion of the service description describes the nature of + policing used to enforce adherence to a flow's Traffic Specification. + The specification document must specify the following points + + - Expected policing action. This is the action taken when packets + not conforming to the TSpec are detected. Example actions include + relegating nonconforming packets to best effort, immediately + dropping nonconforming packets, delaying these packets until they + once again "fit" into the TSpec, or "marking" nonconforming packets + in some way. + + - Legality of alternative policing actions. The section must + specify whether actions not specifically mentioned in + specification's description of policing behavior are legal. For + example, a service description which specifies that nonconforming + packets are to be dropped should state whether an alternate action, + such as delaying these packets, is acceptable. + + + + + +Shenker & Wroclawski Informational [Page 15] + +RFC 2216 Network Element Service Template September 1997 + + + - Location of policing actions in the internetwork. The description + of policing must specify where that policing is done. Possibilities + include "at the edges of the network only", "at every hop", + "heterogeneous branch points" (points where the branches of a + multicast tree converge and have different TSpecs reserved + downstream), and "source merge points" (points where multiple data + streams covered by a single resource reservation converge). The + specification should clearly state requirements about topology + information (for example "this is an edge node" or "this is a + source merge point") which must be available from the setup + protocol or another source. + + In this section the specification should also specify the legality + of policing at additional points in the network, beyond those + listed above. This is important due to technical effects such as + are described in the next paragraph. + + Applicable additional technical considerations. If policing of data + flows is required or legal at points other than the flow's first + entry into the network, the service definition should describe any + additional technical considerations which affect the design of such + policing. For example, many potential services will allow a data + flow to become more bursty as it progresses through the network. If + such a service allows policing at points other than the network + edge, the traffic specification describing the flow will have to be + modified from that given by the application to the network to + account for this growing burstiness. Otherwise, it is likely that + the flow will be overpoliced, with packets being penalized + unnecessarily. + + o Ordering and Merging + + Ordering and merging come into play when a network element receives + several invocation requests covering the same data flow. As examples, + this could occur if several receivers of a multicast data flow + requested QoS services for that flow using the RSVP setup protocol, + or if a flow was subject to both a statically installed permanent + invocation request and a dynamic request from a resource setup + protocol. + + In this situation the service module must be able to answer questions + about the ordering between different invocation requests, and must be + able to generate a single new invocation request which meets the + semantics of the setup protocol and the requirements of all the + original requesters. Operationally, this is achieved by having the + invoking protocol ask the service module, given a set of invocation + requests I1...In, to compute a new request which results in the + desired behavior. + + + +Shenker & Wroclawski Informational [Page 16] + +RFC 2216 Network Element Service Template September 1997 + + + Five operations must be defined in this section. These are: + + - Ordering. The section must define an ordering relationship + between the service's TSpecs and RSpecs. This may be a partial + ordering, in that some TSpecs or RSpecs may be unordered with + respect to each other. + + - Summation. This function computes an invocation request which + represents the sum of N input invocation requests. Typically this + function is used to compute the size of a service request adequate + for a shared reservation for N different flows. It is desirable but + not required that this function compute the "least possible sum". + + - Minimum. This function computes the minimum of two TSpecs. + Typically this function is used to compute the TSpec for an actual + service invocation given a target TSpec for the service request and + a TSpec for the flow's actual traffic pattern. The minimum function + must compute the smallest TSpec adequate to describe the minimum of + the requested TSpec and the flow's actual traffic. + + - RSVP-Merge function. This function computes the invocation + request used to request service at an RSVP [RFC 2205] merge point. + The function must a) compute an appropriate invocation request for + a set of downstream reservations being merged, and b) generate + appropriate reservation parameters to be passed upstream by RSVP. + This function is described further below and in [RFC 2210]. + + - Least Common Request function. This function computes an + invocation request sufficient to provide service at least + equivalent to any one of the original requests passed to the + function. This function differs from the RSVP-merge function in + that it simply computes an upper bound. It does not need to compute + new invocation parameters to be passed upstream by RSVP and cannot + utilize the second option discussed in "Notes on RSVP Merging" + below. + + oo Notes on Ordering + + Typically the ordering relation will be described separately for the + service's TSpec and RSpec. An invocation request is ordered with + respect to another if and only if both its TSpec and its RSpec are + similarly ordered with respect to each other. + + For TSpecs, the basic ordering relation is well defined. TSpec A is + substitutable for TSpec B if and only any flow that is compliant with + TSpec B is also compliant with TSpec A. The service specification + must explain how to compare two TSpecs to determine whether this is + true. + + + +Shenker & Wroclawski Informational [Page 17] + +RFC 2216 Network Element Service Template September 1997 + + + For RSpecs, the ordering relation is dependent on the service. RSpec + A is substitutable for RSpec B if the quality of service invoked by + RSpec A is at least as good as the quality of service invoked by + RSpec B. Since there is no precise mathematical description of + "goodness" of quality of service, these ordering relations must be + spelled out explicitly in the service description. + + oo Notes on RSVP Merging + + The purpose of the RSVP merging function is to compute an invocation + request which will provide service to the merged flow at least + equivalent to that which any of the original requests would obtain + for its corresponding unmerged flow. This equivalence may be obtained + in two ways + + 1) The merged request may be computed as an upper bound on the set + of original (unmerged) invocation requests. In this case, the + service offered by the merged request to any particular traffic + flow is identical to that offered by the largest unmerged request, + by definition. + + 2) The merged request may be computed as a value smaller than the + upper bound on the set of original requests, but the results passed + upstream may restrict the traffic sources to behavior which makes + the merged and unmerged requests behave identically. + + Note that the merging rules for a particular service may apply either + option 1 or option 2 to the different components of a TSpec, as + appropriate. The decision is typically made as follows: + + When a downstream service module instance can tolerate a flow which + exceeds the parameter, the upper bound should be used. For example, + if the service supports policing to protect itself against excess + traffic, the traffic rate supported by a merged reservation might + be an upper bound across the traffic rates supported by each + unmerged reservation. The effect of this will be to install the + merged reservation at the local node and to inform each traffic + source of the largest traffic rate protected by reservation along + any *one* distribution path from the source to a receiver. + + When a downstream service module instance will not function + properly if the parameter is exceeded, the merged function should + select the least agressive value of the parameter to install and + pass upstream. In this case, the traffic sources will be informed + of a parameter value which is appropriate for *all* distribution + paths traversed by the traffic flow. For example, services which + can handle packets of only limited size can incorporate packet size + in the TSpec, and treat the parmeter as described in option 2. The + + + +Shenker & Wroclawski Informational [Page 18] + +RFC 2216 Network Element Service Template September 1997 + + + effect of this will be to limit packet sizes in the flow to those + which can be handled by every instance of the service along the + flow's path. + + This merging calculation must be performed by the service module + because it is specific to a particular service. + + oo Notes on Calculating Upper Bounds + + Both the RSVP-Merge function and the Least Common Request function + may make use of calculated upper bounds on TSpec and RSpec + parameters. + + The calculated upper bound need not be a least upper bound, nor do + the various network elements along the path need to all use the same + choice of upper bound. Any selection of invocation parameters Iu is + compliant as long as it substitutable for each of the parameters + I1...In from which it is calculated. Intuitively, one set of + parameters is substitutable for another if the resulting quality of + service is at least as desirable to all applications. A precise + definition of this "substitutable for" function; the ordering + relation, must be specified in the service definition. (It may be + specified as the empty set, in which case merging of dissimilar + requests will not be allowed). If the ordering function specified in + this section gives a partial order (if it is possible for two RSpecs + or TSpecs to be unordered), then a separate upper bound computation + for the parmeter must be given as well. + + oo Notes on Service Substitution + + This portion of the service description may also note any + relationships with other services which are strictly ordered with + respect to the service being defined. Two services A and B are + strictly ordered if it is always possible to substitute service B for + the service A given a set of invocation parameters for service A. + This ordering information may be used to allow network elements which + provide service B to respond to requests for service A, even if the + element does not provide service A directly. If the service + specification describes such an inter-service ordering, it MUST also + include a description of the invocation parameter mapping function + for that ordering. + + Substitution of of one service for another in cases where they are + not strictly ordered is currently not supported. A future version of + this document may augment the service specification format to support + this capability. + + + + + +Shenker & Wroclawski Informational [Page 19] + +RFC 2216 Network Element Service Template September 1997 + + + o Guidelines for Implementors + + Many services may be defined in a manner which allows the range of + behavior of a compliant network element to be rather broad. This + section should provide some guidance as to what range of behaviors + the author of the service specification expects the community to + desire in their implementations. Because these guidelines depend on + such imprecise and undefinable notions at "typical loads", these + guidelines cannot be incorporated as part of a strict compliance + test. Instead, they are for informational purposes only. + + o Evaluation Criteria + + Specific functional behaviors required of an implementation for + conformance to a service specification is detailed in the previous + sections. However, the service specifications are intended to allow + a wide range of implementations, and these implementations will + differ in performance. This section describes tests that can be used + to evaluate a network element's implementation of a given service. + + Implementors of service modules face a number of tradeoffs, and it is + unlikely that a single implementation would be considered "best" + under all circumstances. For instance, given the same service + specification, an implementation appropriate for a low-speed link + might target extremely high link utilization, while a different + implementation might attempt to reduce non-loaded packet forwarding + delay to the minimum at the expense of somewhat lower utilization of + the link. The intention of the tests specified in this section should + be to probe the tradeoffs made by the implementation designer, and to + provide metrics useful to guide the customer's choice of an + appropriate implementation for her needs. + + The tests specified in this section should be designed to operate on + a single network element in isolation. This enables their use in a + comparative rating system for QoS-aware network elements. In + production networks, users will be more concerned with the end-to-end + behavior obtained, which will depend not just on the particular + network elements selected, but also on other factors such as the + setup protocol and the bandwidth of the links. Some user-relevant + performance factors are the rate of admission control rejections, the + range of services offered, and the packet delay and drop rates in the + various service classes. The form of any standardized end-to-end + metrics and measurement tools for integrated service internetworks is + not specified by this document or by service specification document + which follow the format given here. + + This section is for informational purposes only. + + + + +Shenker & Wroclawski Informational [Page 20] + +RFC 2216 Network Element Service Template September 1997 + + + o Examples of Implementation + + This section describes example instantiations of the service. Often + these will just be references to the literature, or brief sketches of + how the service could be implemented. The purposes of the section + are to to provide a more concrete sense of the service being + specified and to provide pointers and hints to aid the implementor. + However, the descriptions in this section are specifically not + intended to exclude other implementation strategies. + + This section is for informational purposes only. + + o Examples of Use + + In order to provide more a more concrete sense of how this service + might be used, this section describes some example uses of the + service, for informational purposes only. The examples here are not + meant to be exhaustive, and do not exclude in any way other uses of + the service. + + This section is for informational purposes only. + +Security Considerations + + Security considerations are not discussed in this memo. + +References + + [PARTRIDGE] C. Partridge, Gigabit Networking, Addison Wesley + Publishers (1994). + + [RFC 2215] Shenker, S., and J. Wroclawski, "General Characterization + Parameters for Integrated Service Network Elements", RFC 2215, + September 1997. + + [RFC 2205] Braden, R., Ed., et. al., "Resource Reservation Protocol + (RSVP) - Version 1 Functional Specification", RFC 2205, September + 1997. + + [RFC 2212] Shenker, S., Partridge, C., and R. Guerin, "Specification + of Guaranteed Quality of Service", RFC 2212, September 1997. + + [RFC 2211] Wroclawski, J., "Specification of the Controlled Load + Quality of Service", RFC 2211, September 1997. + + [RFC 1819] Delgrossi, L., and L. Berger, Editors, "Internet Stream + Protocol Version 2 (ST2) Protocol Specification - Version ST2+", RFC + 1819, August 1995. + + + +Shenker & Wroclawski Informational [Page 21] + +RFC 2216 Network Element Service Template September 1997 + + + [RFC 2210] Wroclawski, J., "The Use of RSVP with IETF Integrated + Services", RFC 2210, September 1997. + +Authors' Address: + + Scott Shenker + Xerox PARC + 3333 Coyote Hill Road + Palo Alto, CA 94304-1314 + + Phone: 415-812-4840 + Fax: 415-812-4471 + EMail: shenker@parc.xerox.com + + + John Wroclawski + MIT Laboratory for Computer Science + 545 Technology Sq. + Cambridge, MA 02139 + + Phone: 617-253-7885 + Fax: 617-253-2673 + EMail: jtw@lcs.mit.edu + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Shenker & Wroclawski Informational [Page 22] + |