Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Differentiated services
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Networking architecture for prioritizing traffic}} {{About|communication networks|the design pattern for business applications|Differentiated service (design pattern)}} {{Use American English|date=April 2015}} '''Differentiated services''' or '''DiffServ''' is a [[computer networking]] architecture that specifies a mechanism for classifying and managing network traffic and providing [[quality of service]] (QoS) on modern [[Internet Protocol|IP]] networks. DiffServ can, for example, be used to provide [[Network delay|low-latency]] to critical network traffic such as [[Voice over IP|voice]] or [[streaming media]] while providing [[best-effort service]] to non-critical services such as [[web traffic]] or [[file transfer]]s. DiffServ uses a 6-bit '''differentiated services code point''' ('''DSCP''') in the 6-bit '''differentiated services field''' ('''DS field''') in the IP header<!--Link to [[IP header]] requires disambiguation. Links to [[IPv4 header]] and [[IPv6 header]] appear below--> for packet classification purposes. The DS field, together with the ECN field, replaces the outdated [[Type of service|IPv4 TOS]] field.{{Ref RFC|3260}} ==Background== Modern data networks carry many different types of services, including voice, video, streaming music, web pages and email. Many of the proposed QoS mechanisms that allowed these services to co-exist were both complex and failed to scale to meet the demands of the [[public Internet]]. In December 1998, the [[IETF]] replaced the ''TOS'' and ''IP precedence'' fields in the [[IPv4 header]] with the ''DS field'', which was later split to refer to only the top 6 bits with the ''ECN field'' in the bottom two bits.{{Ref RFC|2474}}{{Ref RFC|3168}} In the [[IPv6 header]] the ''DS field'' is part of the ''Traffic Class'' field where it occupies the 6 most significant bits.{{Ref RFC|2474}} In the DS field, a range of eight values (class selectors) is used for backward compatibility with the former IPv4 ''IP precedence'' field. Today, DiffServ has largely supplanted [[Type of service|TOS]] and other [[layer-3]] QoS mechanisms, such as [[integrated services]] (IntServ), as the primary architecture [[Router (computing)|router]]s use to provide QoS. ==Traffic management mechanisms== DiffServ is a ''coarse-grained'', ''class-based'' mechanism for traffic management. In contrast, IntServ is a ''fine-grained'', ''flow-based'' mechanism. DiffServ relies on a mechanism to ''classify'' and ''mark'' packets as belonging to a specific class. DiffServ-aware routers implement [[per-hop behavior]]s (PHBs), which define the packet-forwarding properties associated with a class of traffic. Different PHBs may be defined to offer, for example, [[Packet loss|low-loss]] or [[Network delay|low-latency]] service. Rather than differentiating network traffic based on the requirements of an individual flow, DiffServ operates on the principle of [[traffic classification]], placing each data packet into one of a limited number of traffic classes. Each router on the network is then configured to differentiate traffic based on its class. Each traffic class can be managed differently, ensuring preferential treatment for higher-priority traffic on the network. The premise of Diffserv is that complicated functions such as packet classification and policing can be carried out at the edge of the network by edge routers. Since no classification and policing is required in the core routers, functionality there can then be kept simple. Core routers simply apply PHB treatment to packets based on their markings. PHB treatment is achieved by core routers using a combination of scheduling policy and queue management policy. A group of routers that implement common, administratively defined DiffServ policies are referred to as a ''DiffServ domain''.<ref>{{citation |url=http://enterprise.huawei.com/ilink/enenterprise/download/HW_134362 |title=S3700HI Ethernet Switches Configuration Guide - QoS |page=7 |publisher=[[Huawei]] |access-date=2016-10-07 |quote=A DiffServ domain is composed of a group of interconnected DiffServ nodes that use the same service policy and PHBs.}}</ref> While DiffServ does recommend a standardized set of traffic classes,{{Ref RFC|4594}} the DiffServ architecture does not incorporate predetermined judgments of what types of traffic should be given priority treatment. DiffServ simply provides a framework to allow classification and differentiated treatment. The standard traffic classes (discussed below) serve to simplify interoperability between different networks and different vendors' equipment. ==Classification and marking== Network traffic entering a DiffServ domain is subjected to classification and conditioning. A traffic classifier may inspect many different parameters in incoming packets, such as source address, destination address or traffic type and assign individual packets to a specific traffic class. Traffic classifiers may honor any DiffServ markings in received packets or may elect to ignore or override those markings. For tight control over volumes and type of traffic in a given class, a network operator may choose not to honor markings at the ingress to the DiffServ domain. Traffic in each class may be further conditioned by subjecting the traffic to [[Rate limiting|rate limiters]], [[Traffic policing (communications)|traffic policers]] or [[Traffic shaping|shapers]].{{Ref RFC|2597|rsection=3}} The per-hop behavior is determined by the DS and ECN fields in the IP header. The DS field contains the 6-bit DSCP value.{{Ref RFC|2474}} [[Explicit Congestion Notification]] (ECN) occupies the least-significant 2 bits of the IPv4 TOS field and IPv6 traffic class (TC) field.{{Ref RFC|6088}}<ref>{{cite web|author=Worldwide |url=http://www.cisco.com/en/US/tech/tk543/tk757/technologies_tech_note09186a00800949f2.shtml |title=Implementing Quality of Service Policies with DSCP |publisher=Cisco |access-date=2010-10-16}}</ref><ref>[https://blog.wireshark.org/2009/09/filtering-dscp/ Filtering DSCP] {{webarchive |url=https://web.archive.org/web/20160729035642/https://blog.wireshark.org/2009/09/filtering-dscp/ |date=July 29, 2016 }}</ref> In theory, a network could have up to 64 different traffic classes using the 64 available DSCP values. The DiffServ RFCs recommend, but do not require, certain encodings. This gives a network operator great flexibility in defining traffic classes. In practice, however, most networks use the following commonly defined per-hop behaviors: *''Default Forwarding'' (DF) PHB β which is typically best-effort traffic *''Expedited Forwarding'' (EF) PHB β dedicated to low-loss, low-latency traffic *''Assured Forwarding'' (AF) PHB β gives assurance of delivery under prescribed conditions *''Class Selector'' PHBs β which maintain backward compatibility with the IP precedence field. ===Default Forwarding=== A default forwarding (DF) PHB is the only required behavior. Essentially, any traffic that does not meet the requirements of any of the other defined classes uses DF. Typically, DF has best-effort forwarding characteristics. The recommended DSCP for DF is 0.<ref name="rfc4594"/> ===Expedited Forwarding=== The IETF defines Expedited Forwarding (EF) behavior in {{IETF RFC|3246}}. The EF PHB has the characteristics of low delay, low loss and low jitter. These characteristics are suitable for voice, video and other realtime services. EF traffic is often given [[strict priority queuing]] above all other traffic classes. Because an overload of EF traffic will cause queuing delays and affect the jitter and delay tolerances within the class, [[admission control]], [[Traffic policing (communications)|traffic policing]] and other mechanisms may be applied to EF traffic. The recommended DSCP for EF is 101110<sub>B</sub> (46 or 2E<sub>H</sub>). ===Voice Admit=== The IETF defines Voice Admit behavior in {{IETF RFC|5865}}. The Voice Admit PHB has identical characteristics to the Expedited Forwarding PHB. However, Voice Admit traffic is also admitted by the network using a [[Call Admission Control]] (CAC) procedure. The recommended DSCP for voice admit is 101100<sub>B</sub> (44 or 2C<sub>H</sub>). ===Assured Forwarding=== The IETF defines the Assured Forwarding (AF) behavior in {{IETF RFC|2597}} and {{IETF RFC|3260}}. Assured forwarding allows the operator to provide assurance of delivery as long as the traffic does not exceed some subscribed rate. Traffic that exceeds the subscription rate faces a higher probability of being dropped if congestion occurs. The AF behavior group defines four separate AF classes with all traffic within one class having the same priority. Within each class, packets are given a drop precedence (high, medium or low, where higher precedence means ''more'' dropping). The combination of classes and drop precedence yields twelve separate DSCP encodings from AF11 through AF43 (see table). {| class="wikitable" |+ Assured Forwarding behavior group !Drop<br>probability ! Class 1 !! Class 2 !! Class 3 !! Class 4 |- ! Low | AF11 (DSCP 10) 001010 || AF21 (DSCP 18) 010010 || AF31 (DSCP 26) 011010 || AF41 (DSCP 34) 100010 |- ! Medium | AF12 (DSCP 12) 001100 || AF22 (DSCP 20) 010100 || AF32 (DSCP 28) 011100 || AF42 (DSCP 36) 100100 |- ! High | AF13 (DSCP 14) 001110 || AF23 (DSCP 22) 010110 || AF33 (DSCP 30) 011110 || AF43 (DSCP 38) 100110 |} Some measure of priority and proportional fairness is defined between traffic in different classes. Should congestion occur ''between'' classes, the traffic in the higher class is given priority. Rather than using strict priority queuing, more balanced queue servicing algorithms such as [[fair queuing]] or [[weighted fair queuing]] are likely to be used. If congestion occurs ''within'' a class, the packets with the higher drop precedence are discarded first. Re-marking a packet is sometimes used to increase its drop precedence if a stream's bandwidth exceeds a certain threshold. For example, a stream whose rate is above the Committed Information Rate (CIR) as defined in {{IETF RFC|2697}} causes the stream to be marked with a higher AF drop precedence. This allows the decision as to when to shape the stream to devices further downstream if they encounter congestion. To prevent issues associated with [[tail drop]], more sophisticated drop selection algorithms such as [[random early detection]] are often used. ===Class Selector=== {| class="wikitable" |+ Class Selector mapping<ref name=classselector/> ! Service class ! DSCP Name ! DSCP Value ! [[IP precedence]] ! Examples of application |- | Standard | CS0 (DF) | 0 | 0 (000) | [[Network Time Protocol|NTP]]<ref name=ntp/> |- | Low-priority data | CS1 | 8 | 1 (001) | File transfer ([[FTP]], [[Server Message Block|SMB]]) |- | Network [[operations, administration and management]] (OAM) | CS2 | 16 | 2 (010) | [[SNMP]], [[SSH]], [[Ping (networking utility)|Ping]], [[Telnet]], [[syslog]] |- | Broadcast video | CS3 | 24 | 3 (011) | {{Unbulleted list|[[RTSP]] broadcast TV|streaming of live audio and video events|[[video surveillance]]|[[video-on-demand]]}} |- | Real-time interactive | CS4 | 32 | 4 (100) | Gaming, low priority video conferencing |- | Signaling | CS5 | 40 | 5 (101) | Peer-to-peer ([[Session Initiation Protocol|SIP]], [[H.323]]), client-server IP telephony signaling ([[H.248]], [[MEGACO]], [[Media Gateway Control Protocol|MGCP]], [[Skinny Client Control Protocol|SCCP]]) |- | Network control | CS6 | 48 | 6 (110) | Routing protocols ([[OSPF]], [[BGP]], [[IS-IS]], [[RIP]]) |- | Reserved for future use | CS7 | 56 | 7 (111) | |- |} DF= Default Forwarding Prior to DiffServ, IPv4 networks could use the [[IP precedence]] field in the [[Type of service|TOS]] byte of the IPv4 header to mark priority traffic. The TOS octet and IP precedence were not widely used. The IETF agreed to reuse the TOS octet as the DS field for DiffServ networks, later splitting it into the DS field and ECN field. In order to maintain backward compatibility with network devices that still use the Precedence field, DiffServ defines the ''Class Selector'' PHB. The Class Selector code points are of the binary form 'xxx000'. The first three bits are the former IP precedence bits. Each IP precedence value can be mapped into a DiffServ class. IP precedence 0 maps to CS0, IP precedence 1 to CS1, and so on. If a packet is received from a non-DiffServ-aware router that used IP precedence markings, the DiffServ router can still understand the encoding as a Class Selector code point. Specific recommendations for use of Class Selector code points are given in {{IETF RFC|4594}}. ===Configuration guidelines=== {{IETF RFC|4594}} offers detailed and specific recommendations for the use and configuration of code points. Other RFCs such as {{IETF RFC|8622}} have updated these recommendations. {| class="wikitable" |+ IETF {{IETF RFC|4594}} recommendations ! Service class ! DSCP Name !DSCP Value ! Conditioning at DS edge ! PHB ! [[Network scheduler|Queuing]] ! [[Active queue management|AQM]] |- |Low-latency data | AF21, AF22, AF23 |18, 20, 22 | Using single-rate, three-color marker (such as {{IETF RFC|2697}}) | {{IETF RFC|2597}} | Rate | Yes per DSCP |- |High-throughput data | AF11, AF12, AF13 |10, 12, 14 | Using two-rate, three-color marker (such as {{IETF RFC|2698}}) | {{IETF RFC|2597}} | Rate | Yes per DSCP |- | Network control || CS6 |48|| [[RFC:4594#section-3.1|See section 3.1]] || {{IETF RFC|2474}} || Rate || Yes |- | Telephony || EF |46|| Police using sr+bs || {{IETF RFC|3246}} || Priority || No |- | Signaling || CS5 |40|| Police using sr+bs || {{IETF RFC|2474}} || Rate || No |- | Multimedia conferencing | AF41, AF42, AF43 |34, 36, 38 | Using two-rate, three-color marker (such as {{IETF RFC|2698}}) | {{IETF RFC|2597}} | Rate | Yes per DSCP |- | Real-time interactive | CS4 |32 | Police using sr+bs | {{IETF RFC|2474}} | Rate | No |- | Multimedia streaming | AF31, AF32, AF33 |26, 28, 30 | Using two-rate, three-color marker (such as {{IETF RFC|2698}}) | {{IETF RFC|2597}} | Rate | Yes per DSCP |- | Broadcast video || CS3 |24|| Police using sr+bs || {{IETF RFC|2474}} || Rate || No |- | OAM || CS2 |16|| Police using sr+bs || {{IETF RFC|2474}} || Rate || Yes |- | Standard || DF |0|| Not applicable || {{IETF RFC|2474}} || Rate || Yes |- | Lower-effort | LE |1 | Not applicable | {{IETF RFC|8622}} | Priority | Yes |- |} sr+bs = single rate with burst size control (such as a [[token bucket]]). ==Design considerations== Under DiffServ, all the policing and classifying are done at the boundaries between DiffServ domains. This means that in the core of the Internet, routers are unhindered by the complexities of collecting payment or enforcing agreements. That is, in contrast to [[IntServ]], DiffServ requires no advance setup, no reservation, and no time-consuming end-to-end negotiation for each flow. The details of how individual routers deal with the DS field are configuration specific, therefore it is difficult to predict end-to-end behavior. This is complicated further if a packet crosses two or more DiffServ domains before reaching its destination. From a commercial viewpoint, this means that it is impossible to sell different classes of end-to-end connectivity to end users, as one provider's Gold packet may be another's Bronze. DiffServ or any other IP-based QoS marking does not ensure the quality of the service or a specified [[service-level agreement]] (SLA). By marking the packets, the sender indicates that it wants the packets to be treated as a specific service, but there is no guarantee this happens. It is up to all the service providers and their routers in the path to ensure that their policies will take care of the packets in an appropriate fashion. ==Bandwidth broker== A [[Bandwidth Broker]] in the framework of DiffServ is an agent that has some knowledge of an organization's priorities and policies and allocates bandwidth with respect to those policies.<ref name=rfc2638>{{Cite IETF |rfc=2638 |title=A Two-bit Differentiated Services Architecture for the Internet |author1=K. Nichols |author2=V. Jacobson |author3=L. Zhang |publisher=IETF |date=July 1999}}</ref> In order to achieve an end-to-end allocation of resources across separate domains, the Bandwidth Broker managing a domain will have to communicate with its adjacent peers, which allows end-to-end services to be constructed out of purely bilateral agreements. ==DiffServ RFCs== * {{IETF RFC|2474}} β Definition of the differentiated services field (DS field) in the [[IPv4#Packet structure|IPv4]] and [[IPv6 packet#Fixed header|IPv6 headers]]. Note that the DS field of 8 bits (the bottom two unused) in {{Ref RFC|2474}} was later split into the current 6-bit DS field and a separate 2-bit ECN field.{{Ref RFC|3168}} * {{IETF RFC|2475}} β An architecture for differentiated services. * {{IETF RFC|2597}} β Assured forwarding PHB group. * {{IETF RFC|2983}} β Differentiated services and tunnels. * {{IETF RFC|3086}} β Definition of differentiated services per-domain behaviors and rules for their specification. * {{IETF RFC|3140}} β Per hop behavior identification codes. (Obsoletes {{IETF RFC|2836}}. * {{IETF RFC|3246}} β An expedited forwarding PHB. (Obsoletes {{IETF RFC|2598}}.) * {{IETF RFC|3247}} β Supplemental information for the new definition of the EF PHB (expedited forwarding per-hop behavior). * {{IETF RFC|3260}} β New Terminology and Clarifications for Diffserv. (Updates {{IETF RFC|2474}}, {{IETF RFC|2475}} and {{IETF RFC|2597}}.) * {{IETF RFC|4594}} β Configuration Guidelines for DiffServ Service Classes. * {{IETF RFC|5865}} β A differentiated services code point (DSCP) for capacity-admitted traffic. (Updates {{IETF RFC|4542}} and {{IETF RFC|4594}}.) * {{IETF RFC|8622}} β A Lower-Effort Per-Hop Behavior (LE PHB) for Differentiated Services. (Updates {{IETF RFC|4594}} and {{IETF RFC|8325}}, obsoletes {{IETF RFC|3662}}.) ===DiffServ Management RFCs=== * {{IETF RFC|3289}} β Management information base for the differentiated services architecture. * {{IETF RFC|3290}} β An informal management model for differentiated services routers. * {{IETF RFC|3317}} β Differentiated services quality of service policy information base. ==See also== * [[Class of service]] * [[Teletraffic engineering]] ==References== {{Reflist|refs= <ref name=classselector>{{Cite IETF|rfc=4594|section=1.5.4|title=Class Selector}}</ref> <ref name=ntp>{{Cite IETF|rfc=4594|section=5.2|title=Mapping for NTP}} suggests (emphasis added): * When NTP is used for providing high-accuracy timing within an administrator's (carrier's) network or to end users/clients, the '''Telephony service class should be used, and NTP packets should be marked with EF DSCP value.''' * For applications that require "wall clock" timing accuracy, the Standard service class should be used, and packets should be marked with DF DSCP.</ref> }} ==Further reading== * {{cite book|title=Deploying IP and MPLS QoS for Multiservice Networks: Theory and Practice |author1=John Evans |author2=Clarence Filsfils |publisher=Morgan Kaufmann |date=2007 |isbn=978-0-12-370549-5}} * {{cite book |title=Differentiated services for the Internet |author=Kalevi Kilkki |publisher=Macmillan Technical Publishing |date=1999 |isbn=1-57870-132-5 |url=https://archive.org/details/differentiatedse00kale |url-access=registration }} ==External links== * IETF [https://datatracker.ietf.org/wg/diffserv/charter/ DiffServ Working Group] page * Cisco Whitepaper β [http://www.cisco.com/en/US/technologies/tk543/tk766/technologies_white_paper09186a00800a3e2f.html DiffServ-The Scalable End-to-End Quality of Service Model] * ACM SIGCOMM'09 paper-[https://web.archive.org/web/20120217002534/http://ccr.sigcomm.org/online/?q=node%2F489 Modeling and Understanding End-to-End Class of Service Policies in Operational Networks]: proposes a practical model for extracting DiffServ policies * [http://www.cisco.com/en/US/tech/tk543/tk757/technologies_tech_note09186a00800949f2.shtml Cisco: Implementing Quality of Service Policies with DSCP] * [https://www.iana.org/assignments/dscp-registry/dscp-registry.xhtml Differentiated Services Field Codepoints registry] at [[Internet Assigned Numbers Authority]] {{DEFAULTSORT:Differentiated services}} [[Category:Internet architecture]] [[Category:Internet Standards]] [[Category:Quality of service]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:Citation
(
edit
)
Template:Cite IETF
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:IETF RFC
(
edit
)
Template:Ref RFC
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Unbulleted list
(
edit
)
Template:Use American English
(
edit
)
Template:Webarchive
(
edit
)