Internet Draft Paul Ferguson March 10, 1998 cisco Systems, Inc. Expires in six months Simple Differential Services: IP TOS and Precedence, Delay Indication, and Drop Preference draft-ferguson-delay-drop-01.txt Status of this Memo This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress." To learn the current status of any Internet-Draft, please check the "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US West Coast). Abstract Recent opinions and sentiments expressed in the Internet Service Provider (ISP) community, as well as the Internet community at-large, have voiced concern over the applicability and scalability of RSVP and the Integrated Service model in the global Internet infrastructure. Convincing arguments have been made for a differential services model which offers packet delivery services better than traditional best effort, especially in the face of congestion, yet not as resource intensive as RSVP. As a result, the Differentiated Service (diffserv) working group in the IETF has been examining methods to provide simpler, less resource intensive methods of offering differentiated services. This draft provides a practical method to use bit values expressed in the IP Type or Service (TOS) and IP precedence subfields of the TOS byte in the IP packet header for delay indication and packet drop preference, respectively. draft-ferguson-delay-drop-00.txt [Page 1] INTERNET-DRAFT Simple Differential Services March 10, 1998 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 2 2. Background . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Architectural Significance . . . . . . . . . . . . . . . . 4 3.1 Delay Indication . . . . . . . . . . . . . . . . . . . 5 3.2 Queuing Packets with Delay Indication . . . . . . . . 5 3.3 Drop Preference . . . . . . . . . . . . . . . . . . . 7 3.4 Preferential Drop Mechanism at Intermediate Nodes . . 7 3.5 Passive and Active admission . . . . . . . . . . . . . 8 4. Summary. . . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Security Considerations. . . . . . . . . . . . . . . . . . 9 6. Acknowledgments . . . . . . . . . . . . . . . . . . . . . 9 7. References . . . . . . . . . . . . . . . . . . . . . . . . 9 8. Author's Address . . . . . . . . . . . . . . . . . . . . . 10 1. Introduction Differentiated Quality of Service (QoS) has become a watchword in the Internet community, at the expense of differentiated definitions of the concept. While many had hoped that RSVP would prove to be the mechanism to provide this functionality, a large contingent of Internet Service Providers (ISP's) have expressed concern over the amount of computational and memory overhead, as well as other system resources which might be consumed by managing thousands, or perhaps hundreds of thousands, of flows. As a result, the Differentiated Services (diffserv) working group has been examining several methods to define less resource intensive mechanisms to provide differentiated services -- somewhere between the traditional best effort model and the guaranteed [1] and controlled-load [2] service models defined in the Integrated Services architecture [3]. This draft focuses on two fundamental issues -- a simplistic method to signify a "delay indicator" in packets, as well as a "drop preference" to indicate the relative priority of a particular packet as it is transited through the network. 2. Background One of the first questions that becomes immediately apparent in this scheme is, "What are we trying to accomplish?" As mentioned previously, there is a need for a QoS traffic scheme which provides reasonable levels of differentiation, but yet which does not impose the path and resource reservation state maintenance required by RSVP [4]. draft-ferguson-delay-drop-01.txt [Page 2] INTERNET-DRAFT Simple Differential Services March 10, 1998 The first order of business is to examine methods which provide a simpler, less resource intensive method of differentiating traffic, but at the same time requires no fundamental change in deployed protocols, implementation, and only a modification in the interpreted semantics of bit values in the IP TOS and precedence fields, when used in conjunction with a differentiated services implementation. Without adding a new signaling protocol (which has, in and of itself, been a topic of much dissension), the most logical place to consider for placing indicators for differentiation is in the IP packet header. If we examine the IP header, we find the 8 bit TOS field could indeed be used to convey differential service information [Figure 1] [5]. This is due to the fact that this byte has historically not been widely used in the Internet. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Example IPv4 Datagram Header [5] [Figure 1] 0 1 2 3 4 5 6 7 +-----+-----+-----+-----+-----+-----+-----+-----+ | | | | | PRECEDENCE | TOS | MBZ | | | | | +-----+-----+-----+-----+-----+-----+-----+-----+ Type of Service Byte [6] [Figure 2] draft-ferguson-delay-drop-01.txt [Page 3] INTERNET-DRAFT Simple Differential Services March 10, 1998 As it exists today, RFC701 [5] suggests using the following semantics of bit values which might be contained in the precedence field, as depicted in [Figure 2]: 111 - Network Control 110 - Internetwork Control 101 - CRITIC/ECP 100 - Flash Override 011 - Flash 010 - Immediate 001 - Priority 000 - Routine Additionally, RFC1349 [6] describes the semantics of the bit values which might be contained in the 4 bit TOS field, also depicted in [Figure 2]: 1000 -- minimize delay 0100 -- maximize throughput 0010 -- maximize reliability 0001 -- minimize monetary cost 0000 -- normal service This proposal suggests modifying the semantics of the values of both of these fields when used in a differential services implementation. It should be noted that as both of these bit value semantics are currently defined in RFC791 and RFC1349, neither is (arguably) widely used for traffic differentiation in practice today. 3. Architectural Significance The objective in this approach is to provide a simplistic method in which to indicate the intrinsic value and relative priority of each packet presented to the network for transmission. Consider the following topology: | h1---->+ | h2---->+-->r--->R---->R--->R-----> [towards destination] | Consider h1 and h2 as the "hosts" which desire some sort of "better-then-best-effort" service -- h1 may send traffic which is somewhat delay sensitive (for example, real-time loss-tolerant video), and h2 may send traffic which is not delay sensitive (for example, batch ftp traffic), but is considered to be of higher relative priority than traditional best effort traffic (e.g. e-mail). draft-ferguson-delay-drop-01.txt [Page 4] INTERNET-DRAFT Simple Differential Services March 10, 1998 Each of the tools mentioned in this draft have very specific architectural significance, or in other words, the effectiveness each tool is dependent on where & how it is used at various locations in the network topology. 3.1 Delay Indication It should be again be mentioned that this approach does not provide a priori knowledge of end-to-end network delay or maximal queuing delay, as done with the Integrated Services guaranteed service model. What it does attempt to provide, however, is a mechanism to identify packets which belong to traffic flows for which predictable queuing behavior is desired. The following semantics (Delay Indication) is proposed for differential services implementations, effectively modifying existing RFC1349 TOS subfield semantics: Bit Delay Value Indication 11__ High delay sensitivity 10__ Medium delay sensitivity 01__ Low delay sensitivity 00__ No delay sensitivity The low-order two bits (indicated by underscores in the chart above) are not used in this scheme in the interest of coding efficiency and should be values of zero (0). It is believed that three levels of delay indication (high, medium, low delay sensitivity), in addition to "no delay sensitivity," is sufficient for preferential non-FIFO queuing and preferential transmission servicing schemes. In any event, the reserved low-order two bits may be used in the future for expansion of this scheme should it be determined that more levels of delay indication is required. 3.2 Queuing Packets with Delay Indication There are perhaps several methods which could be used to map packets with the delay indication (expressed in Section 3.1) to specific queues as a mechanism to provide predicable transmission behavior. This relies on the queuing discipline used, as well as the queue servicing and transmission algorithm. The most interesting, and perhaps most effective, method of doing this is to map packets to different CBQ (Class Based Queuing) [7] queues. It should be noted that to provide effective differentiation for packets with non-zero (e.g. high, medium, low delay sensitivity) draft-ferguson-delay-drop-01.txt [Page 5] INTERNET-DRAFT Simple Differential Services March 10, 1998 delay indication, a consistent CBQ model should be deployed on each router in the end-to-end traffic path. Simple Delay Indication to CBQ mapping example: delay +-----------------------------+ sensitivity | CBQ queue depth | | | | | | +-------------------+ | 0100-+ | +->| |-+ | | | | +-------------------+ | | towards | | | | | destinations +-------+ +----------------+ +--------> 1000----------->| |----------------> +-------+ +----------------+ +-------> | | | | | | | | +--------+ | | 1100-+ | +->| |-------------+ | | +--------+ | | | +-----------------------------+ Router Incoming packets with CBQ queue delay depths proportional indication to relative transmission priority The CBQ queue servicing algorithm may be implementation specific, but it is important to note that the desired functionality is for packets with a "higher" delay sensitivity indication to be transmitted prior to those with "lower" delay sensitivity indication. It is also important to note that this is simply an example of how the delay indication bits could be used, not a mandatory implementation. We believe it is prudent to allow implementors to determine how these mechanics will be deployed -- it is arguably only important at this point to agree on the bit value semantics. draft-ferguson-delay-drop-01.txt [Page 6] INTERNET-DRAFT Simple Differential Services March 10, 1998 3.3 Drop Preference There is at least one known implementation of preferential packet drop which uses the values expressed in the IP precedence subfield of the TOS byte, as described in [5], and this draft effectively modifies the semantics of the existing IP precedence values defined below [5]. Instead, a suggested interpretation of these values is provided below which modifies the existing semantics when used in conjunction with a differential services implementation: Bit RFC701 Relative Value Semantics Drop Preference 111 - Network Control Lowest 110 - Internetwork Control . 101 - CRITIC/ECP . 100 - Flash Override . 011 - Flash . 010 - Immediate . 001 - Priority . 000 - Routine Highest The values which fall between 110 (Internetwork Control) and 001 (Priority) can be used to represent any arbitrary incremental drop preference between "lowest" and "highest" drop preference values, 111 and 000 respectively. This is could be considered a matter of local policy. 3.4 Preferential Drop Mechanism at Intermediate Nodes It is important to note that if congestion is not experienced at an intermediate transit node, then no action (e.g. packet discard) is taken -- packets are forwarded in the order in which they are received, unless the packet contains a non-zero delay indication. The concept of preferential drop, or packet discard, only becomes an issue should congestion be imminent. The most effective method of mitigating congestion is to use Random Early Detection (RED) [8], such that congestion and global synchronization [9] (and ultimately congestion collapse) is avoided to the maximum extent possible. However, basic RED functionality can be considered to be somewhat "fair," in that packets are pseudo-randomly selected for discard as the queue depth(s) reaches an arbitrary, administratively-defined threshold. What is needed is a more draft-ferguson-delay-drop-01.txt [Page 7] INTERNET-DRAFT Simple Differential Services March 10, 1998 "unfair," or preferential, method of selecting packets for discard when the queue depth(s) exceed the threshold, thus providing a prejudicial mechanism for providing differentiated services. A modified RED behavior is discussed in [10], whereas the relative priority of packets (as discussed in Section 3.2) is considered in the packet discard decision process. This "unfair," or "enhanced," RED should be implemented on each node (R) in the traffic transit path. Again, it is also important to note that this is simply an example of how the drop preference bits could be used, not a mandatory implementation. It is prudent to allow implementors to determine how these mechanics will be deployed -- again, it is only important to agree on the bit value semantics. 3.5 Passive and Active admission There are two possible scenarios for how packets are marked as they enter the network. The hosts (for example h1 and h2) could set the TOS subfield values (delay indication) and IP precedence subfield values (drop preference) in their IP packets as they see fit, and the first-hop ingress router (r) could simply accept traffic "as is" without examining or policing it, and simply forward it on it's way unimpeded. This is passive admission. The alternative approach is for the first-hop ingress router (r) to actively profile, monitor, and police traffic which is presented to it for transit. The method of performing this active admission control can be implementation-specific, but there is at least one method that we understand, and which works well. This is the use of a token-bucket implemented on (r), or perhaps multiple token-buckets, which uses thresholds to mark packets based upon their compliance or non-compliance (or both) to a bit rate threshold. A similar method for marking packets in this fashion is discussed in [11]. The ingress router is also an ideal point in the topology to mark packet indicators insofar as host address or application (TCP or UDP port). 4. Summary The mechanisms discussed in this proposal are simple and effective methods to provide reasonably predictable service differentiation for traffic presented to the network. It should be noted, however, that the effectiveness of the deployment of these tools relies somewhat on the engineering of the network architecture, in that if the network is drastically under-provisioned and severely congested, these tools become noticeably less effective. This is the intrinsic difference between service quality and quality of service (QoS), in draft-ferguson-delay-drop-01.txt [Page 8] INTERNET-DRAFT Simple Differential Services March 10, 1998 that if the network is poorly provisioned or excessively unstable (poor service quality), the effectiveness of any tool that attempts to provide service differentiation (QoS) is effectively diminished. Having said that, however, traffic entering the network will indeed be provided preferential queuing and transmission if the delay indication bits are set accordingly, and traffic will be discarded at intermediate nodes, based on congestion (queue occupancy) in accordance with the drop preference indicated in the packets themselves. These use of delay indication and drop preference are not necessarily reliant upon one another -- they can be used independently or in conjunction with one another. However, use of the delay indication bits requires the use of preferential queuing and transmission at each router in the transit path, and likewise, use of the drop preference bits requires that a preferential drop mechanism, similar to the ones discussed above, be used on each intermediate node in the transit path, in order for these mechanisms to be effective. 5. Security Considerations Inherently, it may be necessary to provide some sort of policy mechanism at the network ingress node to ensure that only "authorized" entities or applications can obtain preferential use of network resources. This is a local policy matter, and the implementation of such policy mechanisms are not discussed in this memo. 6. Acknowledgments Special thanks to Juha Heinanen (Telia) for his assistance in reviewing the *-00.txt revision memo. 7. References [1] RFC2212, "Specification of Guaranteed Quality of Service," S. Shenker, C. Partridge, R. Guerin, September 1997. [2] RFC2211, "Specification of the Controlled-Load Network Element Service," J. Wroclawski, September 1997. [3] RFC1633, "Integrated Services in the Internet Architecture: An Overview," R. Braden, D. Clark, S. Shenker, June 1994. [4] RFC2205, "Resource ReSerVation Protocol (RSVP) Version 1 Functional Specification," R. Braden, L. Zhang, S. Berson, S. Herzog, S. Jamin, September 1997. draft-ferguson-delay-drop-01.txt [Page 9] INTERNET-DRAFT Simple Differential Services March 10, 1998 [5] RFC791, "INTERNET PROTOCOL, DARPA INTERNET PROGRAM PROTOCOL SPECIFICATION," September 1981. [6] RFC1349, "Type of Service in the Internet Protocol Suite," P. Almquist. July 1992. [7] "Link-sharing and Resource Management Models for Packet Networks," Floyd, S., and Jacobson, V., IEEE/ACM Transactions on Networking, Vol. 3 No. 4, pp. 365-386, August 1995. http://ftp.ee.lbl.gov/floyd/cbq.html [8] "Random Early Detection Gateways for Congestion Avoidance," S. Floyd, V. Jacobson, IEEE/ACM Transactions on Networking, v.1, n.4, August 1993. http://www-nrg.ee.lbl.gov/floyd/red.html [9] "Oscillating Behavior of Network Traffic: A Case Study Simulation," L. Zhang, D. Clark, Internetwork: Research and Experience, Volume 1, Number 2, John Wiley & Sons, 1990, pages 101-112. [10] "Understanding TCP Dynamics in an Integrated Services Internet," W. Feng, D. Kandlur, D. Saha, K. Shin, NOSSDAV '97, May 1997. http://www.eecs.umich.edu/~wuchang/work/nossdav97.ps.Z [11] "Adaptive Packet Marking for Providing Differentiated Services in the Internet," W. Feng, D. Kandlur, D. Saha, K. Shin, U. Michigan CSE-TR-347-97, October 1997. http://www.eecs.umich.edu/~wuchang/work/pmg.ps.Z 8. Author's address Paul Ferguson cisco Systems, Inc. 400 Herndon Parkway Herndon, VA USA 20170 Email: ferguson@cisco.com draft-ferguson-delay-drop-01.txt [Page 10]