| rfc9956v1.txt | rfc9956.txt | |||
|---|---|---|---|---|
| skipping to change at line 20 ¶ | skipping to change at line 20 ¶ | |||
| A Non-Queue-Building Per-Hop Behavior (NQB PHB) for Differentiated | A Non-Queue-Building Per-Hop Behavior (NQB PHB) for Differentiated | |||
| Services | Services | |||
| Abstract | Abstract | |||
| This document specifies characteristics of a Non-Queue-Building Per- | This document specifies characteristics of a Non-Queue-Building Per- | |||
| Hop Behavior (NQB PHB). The NQB PHB provides a shallow-buffered, | Hop Behavior (NQB PHB). The NQB PHB provides a shallow-buffered, | |||
| best-effort service as a complement to a Default deep-buffered, best- | best-effort service as a complement to a Default deep-buffered, best- | |||
| effort service for Internet services. The purpose of this NQB PHB is | effort service for Internet services. The purpose of this NQB PHB is | |||
| to provide a separate queue that enables smooth (i.e., non-bursty), | to provide a separate queue that enables smooth (i.e., non-bursty), | |||
| low-data-rate, application-limited traffic microflows, which would | low-data-rate, application-limited traffic microflows, to avoid the | |||
| ordinarily share a queue with bursty and capacity-seeking traffic, to | delay, delay variation and loss that would ordinarily be caused by | |||
| avoid the delay, delay variation and loss caused by such traffic. | sharing a queue with bursty, capacity-seeking traffic. This PHB is | |||
| This PHB is implemented without prioritization and can be implemented | implemented without prioritization and can be implemented without | |||
| without rate policing, making it suitable for environments where the | rate policing, making it suitable for environments where the use of | |||
| use of these features is restricted. The NQB PHB has been developed | these features is restricted. The NQB PHB has been developed | |||
| primarily for use by access network segments, where queuing delay and | primarily for use by access network segments, where queuing delay and | |||
| queuing loss caused by Queue-Building (QB) protocols are manifested; | queuing loss caused by Queue-Building (QB) protocols are manifested; | |||
| however, its use is not limited to such segments. In particular, the | however, its use is not limited to such segments. In particular, the | |||
| application of NQB PHB to cable broadband links, Wi-Fi links, and | application of NQB PHB to cable broadband links, Wi-Fi links, and | |||
| mobile network radio and core segments are discussed. This document | mobile network radio/core segments are discussed in this document. | |||
| recommends a specific Differentiated Services Code Point (DSCP) to | This document recommends a specific Differentiated Services Code | |||
| identify Non-Queue-Building microflows and updates the guidance in | Point (DSCP) to identify NQB microflows and updates the guidance in | |||
| RFC 8325 on mapping differentiated services (Diffserv) to IEEE 802.11 | RFC 8325 on mapping Differentiated Services (Diffserv or DS) to IEEE | |||
| for this codepoint. | 802.11 for this codepoint. | |||
| Status of This Memo | Status of This Memo | |||
| This is an Internet Standards Track document. | This is an Internet Standards Track document. | |||
| This document is a product of the Internet Engineering Task Force | This document is a product of the Internet Engineering Task Force | |||
| (IETF). It represents the consensus of the IETF community. It has | (IETF). It represents the consensus of the IETF community. It has | |||
| received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
| Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
| skipping to change at line 70 ¶ | skipping to change at line 70 ¶ | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Revised BSD License text as described in Section 4.e of the | include Revised BSD License text as described in Section 4.e of the | |||
| Trust Legal Provisions and are provided without warranty as described | Trust Legal Provisions and are provided without warranty as described | |||
| in the Revised BSD License. | in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction | 1. Introduction | |||
| 2. Requirements Language | 2. Requirements Language | |||
| 3. Context | 3. Context | |||
| 3.1. Non-Queue-Building Behavior | 3.1. NQB Behavior | |||
| 3.2. Relationship to the Diffserv Architecture | 3.2. Relationship to the Diffserv Architecture | |||
| 3.3. Relationship to L4S | 3.3. Relationship to L4S | |||
| 3.4. Applicability | 3.4. Applicability | |||
| 4. Non-Queue-Building Sender Requirements | 4. NQB Sender Requirements | |||
| 5. Non-Queue-Building PHB Requirements | 5. NQB PHB Requirements | |||
| 5.1. Primary Requirements | 5.1. Primary Requirements | |||
| 5.2. Traffic Protection | 5.2. Traffic Protection | |||
| 5.3. Limiting Packet Bursts from Links | 5.3. Limiting Packet Bursts from Links | |||
| 5.4. Treatment of the Explicit Congestion Notification Field | 5.4. Treatment of the Explicit Congestion Notification Field | |||
| 6. Operational Considerations | 6. Operational Considerations | |||
| 6.1. NQB Traffic Identification | 6.1. NQB Traffic Identification | |||
| 6.2. Aggregation of the NQB DSCP into Another Diffserv PHB | 6.2. Aggregation of the NQB DSCP into Another Diffserv PHB | |||
| 6.3. Aggregation of Other DSCPs into the NQB PHB | 6.3. Aggregation of Other DSCPs into the NQB PHB | |||
| 6.4. Cross-Domain Usage and DSCP Re-marking | 6.4. Cross-Domain Usage and DSCP Re-marking | |||
| 6.4.1. Interoperability with Non-DS-Capable Domains | 6.4.1. Interoperability with Non-DS-Capable Domains | |||
| skipping to change at line 102 ¶ | skipping to change at line 102 ¶ | |||
| 7.3.1. Interoperability with Existing Wi-Fi Networks | 7.3.1. Interoperability with Existing Wi-Fi Networks | |||
| 7.3.2. The Updates to RFC 8325 | 7.3.2. The Updates to RFC 8325 | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| 9. Security Considerations | 9. Security Considerations | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| 10.2. Informative References | 10.2. Informative References | |||
| Appendix A. DSCP Re-marking Policies | Appendix A. DSCP Re-marking Policies | |||
| Appendix B. Comparison with Expedited Forwarding | Appendix B. Comparison with Expedited Forwarding | |||
| Appendix C. Impact on Higher Layer Protocols | Appendix C. Impact on Higher Layer Protocols | |||
| Appendix D. Alternative Diffserv Code Points | Appendix D. Alternative Diffserv Codepoints | |||
| Acknowledgements | Acknowledgements | |||
| Authors' Addresses | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a Differentiated Services per-hop behavior | This document defines a Diffserv PHB called the "Non-Queue-Building | |||
| (PHB) called the "Non-Queue-Building Per-Hop Behavior" (or "NQB | Per-Hop Behavior" (or "NQB PHB"). The NQB PHB isolates traffic | |||
| PHB"), which isolates traffic microflows (application-to-application | microflows (application-to-application flows, see Section 1.2 of | |||
| flows, see Section 1.2 of [RFC2475]) that are relatively low data | [RFC2475]) that have relatively low data rates and that do not, | |||
| rate and that do not themselves materially contribute to queuing | themselves, materially contribute to queuing delay and loss. This | |||
| delay and loss, allowing them to avoid the queuing delay and losses | isolation allows these traffic microflows to avoid the queuing delay | |||
| caused by other traffic. Non-Queue-Building microflows such as | and losses caused by other traffic. | |||
| interactive voice, game sync packets, certain machine-to-machine | ||||
| applications, DNS lookups, and some real-time Internet of Things | NQB microflows such as interactive voice, game sync packets, certain | |||
| (IoT) analytics data are low-data-rate, application-limited | machine-to-machine applications, DNS lookups, and some real-time | |||
| microflows. These can be distinguished from bursty traffic | Internet of Things (IoT) analytics data are low-data-rate, | |||
| microflows and high-data-rate traffic microflows managed by a classic | application-limited microflows. These can be distinguished from | |||
| congestion control algorithm (both of which cause queuing delay and | bursty traffic microflows and high-data-rate traffic microflows | |||
| loss). The term "classic congestion control" is defined in [RFC9330] | managed by a classic congestion control algorithm (both of which | |||
| to mean congestion control that coexists with standard Reno | cause queuing delay and loss). The term "classic congestion control" | |||
| congestion control [RFC5681]. In this document, we will use "Queue- | is defined in [RFC9330] to mean congestion control that coexists with | |||
| Building" (or "QB") to refer to microflows that cause queuing delay | standard Reno congestion control [RFC5681]. In this document, we | |||
| and loss. See Section 1.2 of [RFC2475] for definitions of other | will use "Queue-Building" (or "QB") to refer to microflows that cause | |||
| terminology used in this document. | queuing delay and loss. See Section 1.2 of [RFC2475] for definitions | |||
| of other terminology used in this document. | ||||
| In accordance with IETF guidance in [RFC2914] and [RFC8085], most | In accordance with IETF guidance in [RFC2914] and [RFC8085], most | |||
| packets carried by access networks are managed by an end-to-end | packets carried by access networks are managed by an end-to-end | |||
| congestion control algorithm. Many of the commonly deployed | congestion control algorithm. Many of the commonly deployed | |||
| congestion control algorithms, such as Reno [RFC5681], Cubic | congestion control algorithms, such as Reno [RFC5681], CUBIC | |||
| [RFC9438], or BBR [BBR-CC], are designed to seek the available | [RFC9438], or BBR [BBR-CC], are designed to seek the available | |||
| capacity of the path from sender to receiver (which can frequently be | capacity of the path from sender to receiver (which can frequently be | |||
| the access network link capacity). In doing so, they generally | the access network link capacity). In doing so, they generally | |||
| overshoot the available capacity, causing a queue to build up at the | overshoot the available capacity, causing a queue to build up at the | |||
| bottleneck link. This queue buildup results in variable delay and | bottleneck link. This queue buildup results in variable delay and | |||
| packet loss that can affect all the applications that are sharing the | packet loss that can affect all the applications that are sharing the | |||
| bottleneck link. Moreover, many bottleneck links implement a | bottleneck link. Moreover, many bottleneck links implement a | |||
| relatively deep buffer (100 ms or more) (see [Gettys2012], | relatively deep buffer (100 ms or more) (see [Gettys2012], | |||
| [Cardwell2017], [WikipediaBufferbloat], and [BBR-CC]) in order to | [Cardwell2017], [WikipediaBufferbloat], and [BBR-CC]) in order to | |||
| enable these congestion control algorithms to use the link | enable these congestion control algorithms to use the link | |||
| efficiently, which exacerbates the delay and delay variation | efficiently, which exacerbates the delay and delay variation | |||
| experienced. | experienced. | |||
| In contrast to applications that frequently cause queuing delay, | In contrast to applications that frequently cause queuing delay, | |||
| there are a variety of relatively low data rate applications that do | there are a variety of relatively low data rate applications that do | |||
| not materially contribute to queuing delay and loss; nonetheless, | not materially contribute to queuing delay and loss; nonetheless, | |||
| they are subjected to it by sharing the same bottleneck link in the | they are subjected to it by sharing the same bottleneck link. Many | |||
| access network. Many of these applications can be sensitive to delay | of these applications can be sensitive to delay or delay variation, | |||
| or delay variation, as well as packet loss; thus, they produce a poor | as well as packet loss; thus, they produce a poor Quality of | |||
| quality of experience in such conditions. | Experience (QoE) in such conditions. | |||
| Active Queue Management (AQM) mechanisms intended for single queues | Active Queue Management (AQM) mechanisms intended for single queues | |||
| (such as Proportional Integral Controller Enhanced (PIE) [RFC8033], | (such as Proportional Integral Controller Enhanced (PIE) [RFC8033], | |||
| DOCSIS-PIE [RFC8034], PI2 [RFC9332], or CoDel [RFC8289]) can improve | DOCSIS-PIE [RFC8034], PI2 [RFC9332], or CoDel [RFC8289]) can improve | |||
| the quality of experience for delay-sensitive applications, but there | the QoE for delay-sensitive applications, but there are practical | |||
| are practical limits to the amount of improvement that can be | limits to the amount of improvement that can be achieved without | |||
| achieved without impacting the throughput of capacity-seeking | impacting the throughput of capacity-seeking applications. For | |||
| applications. For example, AQMs generally allow a significant amount | example, AQMs generally allow a significant amount of queue depth | |||
| of queue depth variation to accommodate the behaviors of congestion | variation to accommodate the behaviors of congestion control | |||
| control algorithms such as Reno and Cubic. If the AQM attempted to | algorithms such as Reno and CUBIC. If the AQM attempted to control | |||
| control the queue depth much more tightly, applications using those | the queue depth much more tightly, applications using those | |||
| algorithms would not fully utilize the link. Alternatively, flow- | algorithms would not fully utilize the link. Alternatively, flow- | |||
| queuing systems, such as fq_codel [RFC8290] can be employed to | queuing systems, such as fq_codel [RFC8290] can be employed to | |||
| isolate microflows from one another; however, they are not | isolate microflows from one another; however, they are not | |||
| appropriate for all bottleneck links due to reasons that include | appropriate for all bottleneck links due to reasons that include | |||
| complexity. | complexity. | |||
| The NQB PHB supports differentiating between these two classes of | The NQB PHB supports differentiating between these two classes of | |||
| traffic in bottleneck links and queuing them separately so that both | traffic in bottleneck links and queuing them separately so that both | |||
| classes can deliver satisfactory quality of experience for their | classes can deliver satisfactory QoE for their applications. In | |||
| applications. In particular, the NQB PHB provides a shallow- | particular, the NQB PHB provides a shallow-buffered, best-effort | |||
| buffered, best-effort service as a complement to a Default (see | service as a complement to a Default (see [RFC2474]) deep-buffered, | |||
| [RFC2474]) deep-buffered, best-effort service. This PHB is designed | best-effort service. This PHB is designed for broadband access | |||
| for broadband access network links, where there is minimal | network links (where there is minimal aggregation of traffic), | |||
| aggregation of traffic, and especially when buffers are deep (see | especially when buffers are deep (see Section 3.4). The | |||
| Section 3.4). The applicability of this PHB to lower-speed links is | applicability of this PHB to lower-rate links is discussed in | |||
| discussed in Section 6.6. | Section 6.6. | |||
| To be clear, a network implementing the NQB PHB solely provides | To be clear, a network implementing the NQB PHB solely provides | |||
| isolation for traffic classified as behaving in conformance with the | isolation for traffic classified as behaving in conformance with the | |||
| behaviors discussed in Section 3.1. A node supporting the NQB PHB | behaviors discussed in Section 3.1. A node supporting the NQB PHB | |||
| makes no guarantees on delay or data rate for NQB-marked microflows | makes no guarantees on delay or data rate for NQB-marked microflows | |||
| (beyond the delay bound provided by the shallow buffer), it is the | (beyond the delay bound provided by the shallow buffer), it is the | |||
| NQB senders' behavior itself that results in low delay and low loss. | NQB senders' behavior itself that results in low delay and low loss. | |||
| Sections 6 and 7 of this document provide guidance for network | Sections 6 and 7 of this document provide guidance for network | |||
| operators regarding appropriate forwarding of traffic marked with the | operators regarding appropriate forwarding of traffic marked with the | |||
| NQB Differentiated Services Code Point (DSCP). The guidance includes | NQB DSCP. The guidance includes recommendations for the | |||
| recommendations for the configuration of network nodes that support | configuration of network nodes that support the NQB PHB as well as | |||
| the NQB PHB as well as for network nodes that do not support the PHB; | for network nodes that do not support the PHB; this allows NQB | |||
| this allows NQB traffic to be forwarded in a way that aligns with the | traffic to be forwarded in a way that aligns with the goals for NQB | |||
| goals for NQB treatment and supports the use of this code point by | treatment and supports the use of this codepoint by other nodes and | |||
| other nodes and other networks. | other networks. | |||
| 2. Requirements Language | 2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 3. Context | 3. Context | |||
| 3.1. Non-Queue-Building Behavior | 3.1. NQB Behavior | |||
| There are applications that send traffic at relatively low data rates | There are applications that send traffic at relatively low data rates | |||
| and/or in a fairly smooth and consistent manner such that they are | and/or in a fairly smooth and consistent manner such that they are | |||
| unlikely to exceed the available capacity of the network path between | unlikely to exceed the available capacity of the network path between | |||
| sender and receiver, even at an inter-packet timescale. Some of | sender and receiver, even at an inter-packet timescale. Some of | |||
| these applications are transactional in nature; they might only send | these applications are transactional in nature; they might only send | |||
| one packet (or a few packets) per RTT. These applications might | one packet (or a few packets) per RTT. These applications might | |||
| themselves only cause very small, transient queues to form in network | themselves only cause very small, transient queues to form in network | |||
| buffers; nonetheless, they can be subjected to delay and delay | buffers; nonetheless, they can be subjected to delay and delay | |||
| variation as a result of sharing a network buffer with applications | variation as a result of sharing a network buffer with applications | |||
| that tend to cause large and/or standing queues to form. These | that tend to cause large and/or standing queues to form. These | |||
| applications typically implement a response to network congestion | applications typically implement a response to network congestion | |||
| that consists of discontinuing (or significantly reducing) | that consists of discontinuing (or significantly reducing) | |||
| transmissions. These applications can be negatively affected by | transmissions. These applications can be negatively affected by | |||
| excessive delay and delay variation. Such applications are ideal | excessive delay and delay variation. Such applications are ideal | |||
| candidates to be queued separately from the applications that are the | candidates to be queued separately from the applications that are the | |||
| cause of queue buildup, delay, and loss. | cause of queue buildup, delay, and loss. | |||
| In contrast, Queue-Building (QB) microflows include those that probe | In contrast, QB microflows include those that probe for link capacity | |||
| for link capacity and induce delay and loss as a result, for example, | and induce delay and loss as a result, for example, microflows that | |||
| microflows that use Cubic, Reno, or other TCP/QUIC congestion control | use CUBIC, Reno, or other TCP/QUIC congestion control algorithms in a | |||
| algorithms in a capacity-seeking manner. Other types of QB | capacity-seeking manner. Other types of QB microflows include those | |||
| microflows include those that send at a high burst rate even if the | that send at a high burst rate even if the long-term average data | |||
| long-term average data rate is much lower. | rate is much lower. | |||
| 3.2. Relationship to the Diffserv Architecture | 3.2. Relationship to the Diffserv Architecture | |||
| The IETF has defined the Differentiated Services architecture | The IETF has defined the Diffserv architecture [RFC2475] with the | |||
| [RFC2475] with the intention that it allows traffic to be marked in a | intention that it allows traffic to be marked in a manner that | |||
| manner that conveys the performance requirements of that traffic | conveys the performance requirements of that traffic either | |||
| either qualitatively or in a relative sense (e.g., priority). The | qualitatively or in a relative sense (e.g., priority). The | |||
| architecture defines the use of the Diffserv field [RFC2474] for this | architecture defines the use of the DSCP field [RFC2474] for this | |||
| purpose, and numerous RFCs have been written that describe | purpose, and numerous RFCs have been written that describe | |||
| recommended interpretations of the values (Diffserv Code Points | recommended interpretations of the values (Diffserv Codepoints | |||
| [RFC2474]) of the field, and standardized treatments (traffic | [RFC2474]) of the field, and standardized treatments (traffic | |||
| conditioning and per-hop-behaviors [RFC2475]) that can be implemented | conditioning and per-hop-behaviors [RFC2475]) that can be implemented | |||
| to satisfy the performance requirements of traffic so marked. | to satisfy the performance requirements of traffic so marked. | |||
| While this architecture is powerful and flexible enough to be | While this architecture is powerful and flexible enough to be | |||
| configured to meet the performance requirements of a variety of | configured to meet the performance requirements of a variety of | |||
| applications and traffic categories, or to achieve differentiated | applications and traffic categories, or to achieve differentiated | |||
| service offerings, meeting the performance requirements of an | service offerings, meeting the performance requirements of an | |||
| application across the entire sender-to-receiver path involves all | application across the entire sender-to-receiver path involves all | |||
| the networks in the path agreeing on what those requirements are and | the networks in the path agreeing on what those requirements are and | |||
| skipping to change at line 286 ¶ | skipping to change at line 287 ¶ | |||
| Default traffic. As a result, the NQB PHB does not aim to meet | Default traffic. As a result, the NQB PHB does not aim to meet | |||
| specific application performance requirements. Instead, the sole | specific application performance requirements. Instead, the sole | |||
| goal of the NQB PHB is to isolate NQB traffic from other traffic that | goal of the NQB PHB is to isolate NQB traffic from other traffic that | |||
| causes an increase in loss, delay, and/or delay-variation, given that | causes an increase in loss, delay, and/or delay-variation, given that | |||
| the NQB traffic is, itself, only an insignificant contributor to | the NQB traffic is, itself, only an insignificant contributor to | |||
| those degradations. The PHB is also designed to reduce the | those degradations. The PHB is also designed to reduce the | |||
| incentives for a sender to mis-mark its traffic since neither higher | incentives for a sender to mis-mark its traffic since neither higher | |||
| capacity nor reserved capacity are being offered. These attributes | capacity nor reserved capacity are being offered. These attributes | |||
| eliminate many of the trade-offs that underlie the handling of | eliminate many of the trade-offs that underlie the handling of | |||
| differentiated service classes in the Diffserv architecture as it has | differentiated service classes in the Diffserv architecture as it has | |||
| traditionally been defined. These attributes also significantly | previously been defined. These attributes also significantly | |||
| simplify access control and admission control functions, reducing | simplify access control and admission control functions, reducing | |||
| them to simple verification of behavior. This aspect is discussed | them to simple verification of behavior. This aspect is discussed | |||
| further in Sections 4 and 5.2. | further in Sections 4 and 5.2. | |||
| Therefore, the NQB PHB is intended for the situation where the | Therefore, the NQB PHB is intended for the situation where the | |||
| performance requirements of applications cannot be assured across the | performance requirements of applications cannot be assured across the | |||
| whole sender-to-receiver path; as a result, applications cannot | whole sender-to-receiver path; as a result, applications cannot | |||
| feasibly place requirements on the network. Instead, many | feasibly place requirements on the network. Instead, many | |||
| applications have evolved to make the best out of the network | applications have evolved to make the best out of the network | |||
| environment that they find themselves in. In this context, the NQB | environment that they find themselves in. In this context, the NQB | |||
| PHB is intended to provide a better network environment for | PHB is intended to provide a better network environment for | |||
| applications that send data at relatively low and non-bursty data | applications that send data at relatively low and non-bursty data | |||
| rates. | rates. | |||
| In regard to a comparison between the NQB PHB and other standardized | In regard to a comparison between the NQB PHB and other standardized | |||
| PHBs in the Diffserv series, the closest similarity is to the | PHBs in the Diffserv series, the closest similarity is to the | |||
| Expedited Forwarding (EF) PHB [RFC3246], which also intends to enable | Expedited Forwarding (EF) PHB [RFC3246], which also intends to enable | |||
| services that provide low loss, low delay, and low delay variation. | services that provide low loss, low delay, and low-delay variation. | |||
| Unlike EF, NQB has no requirement for a guaranteed minimum rate, nor | Unlike EF, NQB has no requirement for a guaranteed minimum rate, nor | |||
| does have a requirement to police incoming traffic to such a rate: | does have a requirement to police incoming traffic to such a rate: | |||
| NQB is expected to be given the same forwarding preference as Default | NQB is expected to be given the same forwarding preference as Default | |||
| traffic. See Appendix B for a more detailed comparison of the NQB | traffic. See Appendix B for a more detailed comparison of the NQB | |||
| and EF PHBs. | and EF PHBs. | |||
| In nodes that support multiple DiffServ Service Classes, NQB traffic | In nodes that support multiple Diffserv Service Classes, NQB traffic | |||
| is intended to be treated as a part of the Default treatment. | is intended to be handled as a part of the Default treatment. | |||
| Traffic assigned to this class does not receive better forwarding | Traffic assigned to this class does not receive better forwarding | |||
| treatment (e.g., prioritization) with respect to other classes, AFxx, | treatment (e.g., prioritization) with respect to other classes, AFxx, | |||
| EF, etc. Of course, traffic marked as NQB could (like other Default | EF, etc. Of course, traffic marked as NQB could (like other Default | |||
| traffic) receive better forwarding treatment with respect to Lower- | traffic) receive better forwarding treatment with respect to Lower- | |||
| Effort (LE) [RFC8622] (e.g., the NQB queue could be emptied in a | Effort (LE) [RFC8622] (e.g., the NQB queue could be emptied in a | |||
| priority sequence before the LE queue). | priority sequence before the LE queue). | |||
| 3.3. Relationship to L4S | 3.3. Relationship to L4S | |||
| In this document, the NQB DSCP and PHB have been defined to operate | In this document, the NQB DSCP and PHB have been defined to operate | |||
| skipping to change at line 335 ¶ | skipping to change at line 336 ¶ | |||
| NQB DSCP is intended to be compatible with L4S [RFC9330], with the | NQB DSCP is intended to be compatible with L4S [RFC9330], with the | |||
| result being that NQB traffic and L4S traffic can share the low- | result being that NQB traffic and L4S traffic can share the low- | |||
| latency queue in an L4S DualQ node [RFC9332]. A network node's | latency queue in an L4S DualQ node [RFC9332]. A network node's | |||
| compliance with the DualQ Coupled AQM requirements (see Section 2.5 | compliance with the DualQ Coupled AQM requirements (see Section 2.5 | |||
| of [RFC9332]) is considered sufficient to support the NQB PHB | of [RFC9332]) is considered sufficient to support the NQB PHB | |||
| requirement of fair allocation of capacity between the QB and NQB | requirement of fair allocation of capacity between the QB and NQB | |||
| queues (Section 5). Note that these requirements, in turn, require | queues (Section 5). Note that these requirements, in turn, require | |||
| compliance with all the requirements in Section 5 of [RFC9331]. | compliance with all the requirements in Section 5 of [RFC9331]. | |||
| Applications that comply with both the NQB sender requirements in | Applications that comply with both the NQB sender requirements in | |||
| Section 4 and the L4S "Prague" requirements in Section 4 of [RFC9331] | Section 4 and the "Prague L4S requirements" in Section 4 of [RFC9331] | |||
| could mark their packets both with the NQB DSCP and with the ECT(1) | could mark their packets both with the NQB DSCP and with the ECT(1) | |||
| value. | value. | |||
| In nodes that support both the NQB PHB and L4S, the L4S network | In nodes that support both the NQB PHB and L4S, the L4S network | |||
| functions SHOULD treat packets marked with the NQB DSCP and ECT(1) or | functions SHOULD treat packets marked with the NQB DSCP and ECT(1) or | |||
| CE the same as packets marked with the Default DSCP and the same | Congestion Experienced (CE) the same as packets marked with the | |||
| Explicit Congestion Notification (ECN) value. Here, "L4S network | Default DSCP and the same Explicit Congestion Notification (ECN) | |||
| functions" refers to the L4S Network Node functions (see Section 5 of | value. Here, "L4S network functions" refers to the L4S Network Node | |||
| [RFC9331]), and any mechanisms designed to protect the L4S queue | functions (see Section 5 of [RFC9331]), and any mechanisms designed | |||
| (such as those discussed in Section 8.2 of [RFC9330]). The | to protect the L4S queue (such as those discussed in Section 8.2 of | |||
| processing by an L4S node of an ECT(0) packet that is classified to | [RFC9330]). The processing by an L4S node of an ECT(0) packet that | |||
| the L queue (e.g., as a result of being marked with a NQB DSCP) is | is classified to the L queue (e.g., as a result of being marked with | |||
| specified in Section 5.4.1.1 of [RFC9331] and Section 2.5.1.1 of | a NQB DSCP) is specified in Section 5.4.1.1 of [RFC9331] and | |||
| [RFC9332]. | Section 2.5.1.1 of [RFC9332]. | |||
| Additionally, Section 5.4 places requirements on treatment of ECN- | Additionally, Section 5.4 places requirements on treatment of ECN- | |||
| marked packets by a node that supports the NQB PHB. | marked packets by a node that supports the NQB PHB. | |||
| 3.4. Applicability | 3.4. Applicability | |||
| This PHB is primarily applicable for high-speed broadband access | This PHB is primarily applicable for high-speed broadband access | |||
| network links, where there is minimal aggregation of traffic and deep | network links, where there is minimal aggregation of traffic and deep | |||
| buffers are common. | buffers are common. | |||
| In many other links, forwarding NQB-marked packets using the Default | In many other links, forwarding NQB-marked packets using the Default | |||
| treatment might be sufficient to preserve the loss, delay, and delay- | treatment might be sufficient to preserve the loss, delay, and delay- | |||
| variation performance for NQB traffic. This is generally true in | variation performance for NQB traffic. This is generally true in | |||
| links that do not typically experience congestion (for example, many | links that do not typically experience congestion (for example, many | |||
| backbone and core network links) and in highly aggregated links | backbone and core network links) and in highly aggregated links | |||
| (links designed to carry a large number of simultaneous microflows) | (links designed to carry a large number of simultaneous microflows) | |||
| where individual microflow burstiness is averaged out and, thus, is | where individual microflow burstiness is averaged out and, thus, is | |||
| unlikely to cause much actual delay. Section 6.2 provides | unlikely to cause much actual delay. Section 6.2 provides | |||
| recommendations for configuration of network nodes in such cases. | recommendations for configuration of network nodes in such cases. | |||
| 4. Non-Queue-Building Sender Requirements | 4. NQB Sender Requirements | |||
| Microflows that are eligible to be marked with the NQB DSCP are ones | Microflows that are eligible to be marked with the NQB DSCP are ones | |||
| that send non-bursty traffic at a low data rate relative to typical | that send non-bursty traffic at a low data rate relative to typical | |||
| network path capacities. Here, the data rate is limited by the | network path capacities. Here, the data rate is limited by the | |||
| application itself rather than by network capacity: these microflows | application itself rather than by network capacity: these microflows | |||
| send at a data rate of no more than about 1% of the "typical" network | send at a data rate of no more than about 1% of the "typical" network | |||
| path capacity. In addition, these microflows are required to be sent | path capacity. In addition, these microflows are required to be sent | |||
| in a smooth (i.e., paced) manner, where the number of IP bytes sent | in a smooth (i.e., paced) manner, where the number of IP bytes sent | |||
| in any time interval "T" is less than or equal to (R * T) + MTU, | in any time interval "T" is less than or equal to (R * T) + MTU, | |||
| where "R" is the maximum rate described in the preceding sentence, | where "R" is the maximum rate described in the preceding sentence, | |||
| skipping to change at line 397 ¶ | skipping to change at line 398 ¶ | |||
| more microflows in each direction). For a particular application, it | more microflows in each direction). For a particular application, it | |||
| could be the case that some of its microflows are eligible to be | could be the case that some of its microflows are eligible to be | |||
| marked with the NQB DSCP while others are not. For example, an | marked with the NQB DSCP while others are not. For example, an | |||
| interactive video streaming application might consist of a high- | interactive video streaming application might consist of a high- | |||
| bandwidth video stream (not eligible for NQB marking) in one | bandwidth video stream (not eligible for NQB marking) in one | |||
| direction and a low-bandwidth control stream (eligible for NQB | direction and a low-bandwidth control stream (eligible for NQB | |||
| marking) in the other. | marking) in the other. | |||
| Microflows marked with the NQB DSCP are expected to comply with | Microflows marked with the NQB DSCP are expected to comply with | |||
| existing guidance for safe deployment on the Internet, including the | existing guidance for safe deployment on the Internet, including the | |||
| guidance around response to network congestion, for example the | guidance related to response to network congestion, for example the | |||
| requirements in [RFC8085] and Section 2 of [RFC3551] (also see the | requirements in [RFC8085] and Section 2 of [RFC3551] (also see the | |||
| circuit breaker limits in Section 4.3 of [RFC8083] and the | circuit breaker limits in Section 4.3 of [RFC8083] and the | |||
| description of inelastic pseudowires in Section 4 of [RFC7893]). The | description of inelastic pseudowires in Section 4 of [RFC7893]). The | |||
| fact that a microflow's data rate is low relative to typical network | fact that a microflow's data rate is low relative to typical network | |||
| capacities is no guarantee that sufficient capacity exists in any | capacities is no guarantee that sufficient capacity exists in any | |||
| particular network, and it is the responsibility of the application | particular network, and it is the responsibility of the application | |||
| to detect and react appropriately if the network capacity is | to detect and react appropriately if the network capacity is | |||
| insufficient. To be clear, the description of NQB-marked microflows | insufficient. To be clear, the description of NQB-marked microflows | |||
| in this document is not to be interpreted as suggesting that | in this document is not to be interpreted as suggesting that | |||
| applications generating such microflows are in any way exempt from | applications generating such microflows are in any way exempt from | |||
| this responsibility. One way that an application marking its traffic | this responsibility. One way that an application marking its traffic | |||
| as NQB can handle this is to implement a scalable congestion control | as NQB can handle this is to implement a scalable congestion control | |||
| mechanism as described in [RFC9331]. | mechanism as described in [RFC9331]. | |||
| The Diffserv field specification requires the definition of a | The DS field specification requires the definition of a recommended | |||
| recommended DSCP to be associated with each standardized PHB (see | DSCP to be associated with each standardized PHB (see Section 5 of | |||
| Section 5 of [RFC2474]). In accordance with this, applications are | [RFC2474]). In accordance with this, applications are RECOMMENDED to | |||
| RECOMMENDED to use the Diffserv Code Point (DSCP) 45 (decimal) to | use the DSCP value 45 (decimal) to mark microflows as NQB. The | |||
| mark microflows as NQB. The choice of the DSCP value 45 (decimal) is | choice of the DSCP value 45 (decimal) is motivated, in part, by the | |||
| motivated, in part, by the desire to achieve separate queuing in | desire to achieve separate queuing in existing Wi-Fi networks (see | |||
| existing Wi-Fi networks (see Section 7.3) and by the desire to make | Section 7.3) and by the desire to make implementation of the PHB | |||
| implementation of the PHB simpler in network equipment that has the | simpler in network equipment that has the ability to classify traffic | |||
| ability to classify traffic based on ranges of DSCP values (see | based on ranges of DSCP values (see Section 6.3 for further | |||
| Section 6.3 for further discussion). | discussion). | |||
| The two primary considerations for whether an application chooses to | The two primary considerations for whether an application chooses to | |||
| mark its traffic as NQB involve the risks of being subjected to a | mark its traffic as NQB involve the risks of being subjected to a | |||
| traffic protection algorithm (see Section 5.2) and/or to the | traffic protection algorithm (see Section 5.2) and/or to the | |||
| consequences of overrunning the NQB shallow buffer if (in either | consequences of overrunning the NQB shallow buffer if (in either | |||
| case) the traffic contributes to the formation of a queue in a node | case) the traffic contributes to the formation of a queue in a node | |||
| that supports the PHB. In both cases, the result could be that | that supports the PHB. In both cases, the result could be that | |||
| excess traffic is discarded or queued separately as Default traffic | excess traffic is discarded or queued separately as Default traffic | |||
| (and, thus, potentially is delivered out of order). To avoid these | (and, thus, potentially is delivered out of order). To avoid these | |||
| risks, if a microflow's traffic exceeds the rate equation provided in | risks, if a microflow's traffic exceeds the rate equation provided in | |||
| skipping to change at line 445 ¶ | skipping to change at line 446 ¶ | |||
| as described in [RFC9331]. | as described in [RFC9331]. | |||
| The sender requirements outlined in this section are all related to | The sender requirements outlined in this section are all related to | |||
| observable attributes of the packet stream, which makes it possible | observable attributes of the packet stream, which makes it possible | |||
| for network elements (including nodes implementing the PHB) to | for network elements (including nodes implementing the PHB) to | |||
| monitor for inappropriate usage of the DSCP and take action (such as | monitor for inappropriate usage of the DSCP and take action (such as | |||
| discarding or re-marking) on traffic that does not comply. This | discarding or re-marking) on traffic that does not comply. This | |||
| functionality, when implemented as part of the PHB, is described in | functionality, when implemented as part of the PHB, is described in | |||
| Section 5.2. | Section 5.2. | |||
| 5. Non-Queue-Building PHB Requirements | 5. NQB PHB Requirements | |||
| For the NQB PHB to become widely deployed, it is important that | For the NQB PHB to become widely deployed, it is important that | |||
| incentives are aligned correctly, i.e., that there is a benefit to | incentives are aligned correctly, i.e., that there is a benefit to | |||
| the application in marking its packets correctly and a disadvantage | the application in marking its packets correctly and a disadvantage | |||
| (or at least no benefit) to an application in intentionally mis- | (or at least no benefit) to an application in intentionally mis- | |||
| marking its traffic. Thus, a useful property of nodes (i.e., network | marking its traffic. Thus, a useful property of nodes (i.e., network | |||
| switches and routers) that support separate queues for NQB and QB | switches and routers) that support separate queues for NQB and QB | |||
| microflows is that for microflows consistent with the NQB sender | microflows is that each queue tends to be the better choice for the | |||
| requirements in Section 4, the NQB queue would likely be a better | traffic it is designed for: the NQB queue for microflows consistent | |||
| choice than the QB queue; and for microflows inconsistent with those | with the NQB sender requirements in Section 4 and the QB queue for | |||
| requirements, the QB queue would likely be a better choice than the | those that are not. By adhering to these principles, there is little | |||
| NQB queue. By adhering to these principles, there is little | ||||
| incentive for senders to mis-mark their traffic as NQB. | incentive for senders to mis-mark their traffic as NQB. | |||
| This principle of incentive alignment ensures a system is robust to | This principle of incentive alignment ensures a system is robust to | |||
| the behavior of the large majority of individuals and organizations | the behavior of the large majority of individuals and organizations | |||
| who can be expected to act in their own interests (including | who can be expected to act in their own interests (including | |||
| application developers and service providers who act in the interests | application developers and service providers who act in the interests | |||
| of their users). Malicious behavior is not necessarily based on | of their users). Malicious behavior is not necessarily based on | |||
| rational self-interest, so incentive alignment is not a sufficient | rational self-interest, so incentive alignment is not a sufficient | |||
| defense, but the large majority of users do not act out of malice. | defense, but the large majority of users do not act out of malice. | |||
| Protection against malicious attacks (and accidents) is addressed in | Protection against malicious attacks (and accidents) is addressed in | |||
| Section 5.2 and summarized in Section 9. As mentioned previously, | Section 5.2 and summarized in Section 9. As mentioned previously, | |||
| the NQB designation and marking is intended to convey verifiable | the NQB designation and marking is intended to convey verifiable | |||
| traffic behavior, as opposed to simply a desire for differentiated | traffic behavior, as opposed to simply a desire for differentiated | |||
| treatment. As a result, any mis-marking can be identified by the | treatment. As a result, any mis-marking can be identified by the | |||
| network. | network. | |||
| 5.1. Primary Requirements | 5.1. Primary Requirements | |||
| A node supporting the NQB PHB MUST provide a queue for Non-Queue- | A node supporting the NQB PHB MUST provide a queue for NQB traffic | |||
| Building traffic separate from the queue used for Default traffic. | separate from the queue used for Default traffic. | |||
| A node supporting the NQB PHB SHOULD NOT rate limit or rate police | A node supporting the NQB PHB SHOULD NOT rate limit or rate police | |||
| the aggregate of NQB traffic separately from Default traffic. An | the aggregate of NQB traffic separately from Default traffic. An | |||
| exception to this recommendation for traffic sent towards a non-DS- | exception to this recommendation for traffic sent towards a non-DS- | |||
| capable domain is discussed in Section 6.4.1. Note also that | capable domain is discussed in Section 6.4.1. Note also that | |||
| Section 5.2 discusses potential uses of per-microflow (rather than | Section 5.2 discusses potential uses of per-microflow (rather than | |||
| aggregate) rate policing. | aggregate) rate policing. | |||
| The NQB queue SHOULD be given equivalent forwarding preference | The NQB queue SHOULD be given equivalent forwarding preference | |||
| compared to the Default queue. The node SHOULD provide a scheduler | compared to the Default queue. The node SHOULD provide a scheduler | |||
| skipping to change at line 515 ¶ | skipping to change at line 515 ¶ | |||
| them could result in a discernible benefit for mis-marked traffic (to | them could result in a discernible benefit for mis-marked traffic (to | |||
| the detriment of other traffic). In network nodes that are rarely | the detriment of other traffic). In network nodes that are rarely | |||
| bottlenecks, these recommendations are less critical. | bottlenecks, these recommendations are less critical. | |||
| In the DRR example above, equal scheduling weights is only an | In the DRR example above, equal scheduling weights is only an | |||
| example. Ideally, the DRR weight would be chosen to match the | example. Ideally, the DRR weight would be chosen to match the | |||
| highest fraction of capacity that NQB-compliant flows are likely to | highest fraction of capacity that NQB-compliant flows are likely to | |||
| use on a particular network segment. Given that NQB-compliant flows | use on a particular network segment. Given that NQB-compliant flows | |||
| are not capacity seeking (in contrast to QB flows, which can be), and | are not capacity seeking (in contrast to QB flows, which can be), and | |||
| since DRR allows unused capacity in one class to be used by traffic | since DRR allows unused capacity in one class to be used by traffic | |||
| in the other, providing a higher-than-necessary NQB scheduler weight | in the other, providing a higher-than-needed NQB scheduler weight | |||
| could be considered less problematic than the reverse. That said, | could be considered less problematic than the reverse. That said, | |||
| providing a higher-than-needed NQB scheduler weight does increase the | providing a higher-than-needed NQB scheduler weight does increase the | |||
| likelihood that a non-compliant microflow mis-marked as NQB is able | likelihood that a non-compliant microflow mis-marked as NQB is able | |||
| to use more than its fair share of network capacity. NQB microflows | to use more than its fair share of network capacity. NQB microflows | |||
| are expected to each consume no more than 1% of the link capacity, | are expected to each consume no more than 1% of the link capacity, | |||
| and in low stat-mux environments (such as at the edge of the network) | and in low stat-mux environments (such as at the edge of the network) | |||
| would be unlikely in aggregate to consume 50% of the link capacity. | would be unlikely in aggregate to consume 50% of the link capacity. | |||
| Thus, 50% seems a reasonable upper bound on the weight for the NQB | Thus, 50% seems a reasonable upper bound on the weight for the NQB | |||
| PHB in these environments. | PHB in these environments. | |||
| By default, a node supporting the NQB PHB SHOULD by classify packets | By default, a node supporting the NQB PHB SHOULD classify packets | |||
| marked with the NQB DSCP 45 (decimal) into the queue for Non-Queue- | marked with the DSCP value 45 (decimal) into the queue for NQB | |||
| Building traffic. In accordance with the requirement in Section 3 of | traffic. In accordance with the requirement in Section 3 of | |||
| [RFC2474], a node supporting the NQB PHB MUST support the ability to | [RFC2474], a node supporting the NQB PHB MUST support the ability to | |||
| configure the DSCP that is used to classify packets into the queue | configure the DSCP that is used to classify packets into the queue | |||
| for Non-Queue-Building traffic. A node supporting the NQB PHB MAY | for NQB traffic. A node supporting the NQB PHB MAY support the | |||
| support the ability to configure multiple DSCPs that are used to | ability to configure multiple DSCPs that are used to classify packets | |||
| classify packets into the queue for Non-Queue-Building traffic. | into the queue for NQB traffic. | |||
| Support for the NQB PHB is advantageous at bottleneck nodes. Many | Support for the NQB PHB is advantageous at bottleneck nodes. Many | |||
| bottleneck nodes have a relatively deep buffer for Default traffic | bottleneck nodes have a relatively deep buffer for Default traffic | |||
| (e.g., roughly equal to the base RTT of the expected connections, | (e.g., roughly equal to the base RTT of the expected connections, | |||
| which could be tens or hundreds of milliseconds). Providing a | which could be tens or hundreds of milliseconds). Providing a | |||
| similarly deep buffer for the NQB queue would be at cross purposes to | similarly deep buffer for the NQB queue would be at cross purposes to | |||
| providing very low queueing delay and would erode the incentives for | providing very low queueing delay and would erode the incentives for | |||
| QB traffic to be marked correctly at such a bottleneck node. The NQB | QB traffic to be marked correctly at such a bottleneck node. The NQB | |||
| queue MUST have a buffer size that is significantly smaller than the | queue MUST have a buffer size that is significantly smaller than the | |||
| buffer provided for Default traffic. It is RECOMMENDED to configure | buffer provided for Default traffic. It is RECOMMENDED to configure | |||
| skipping to change at line 597 ¶ | skipping to change at line 597 ¶ | |||
| supporting an NQB service; see Section 7.3.1 for details and an | supporting an NQB service; see Section 7.3.1 for details and an | |||
| example where this is particularly important. A similar approach | example where this is particularly important. A similar approach | |||
| might prove to be useful in other network environments. | might prove to be useful in other network environments. | |||
| 5.2. Traffic Protection | 5.2. Traffic Protection | |||
| It is possible that, due to an implementation error or | It is possible that, due to an implementation error or | |||
| misconfiguration, a QB microflow could end up being mis-marked as NQB | misconfiguration, a QB microflow could end up being mis-marked as NQB | |||
| or vice versa. It is also possible that a malicious actor could | or vice versa. It is also possible that a malicious actor could | |||
| introduce a QB microflow marked as NQB with the intention of causing | introduce a QB microflow marked as NQB with the intention of causing | |||
| disruptions. In the case of a low data rate microflow that isn't | disruptions. In the case of a low-data-rate microflow that isn't | |||
| marked as NQB and therefore ends up in the QB queue, it would only | marked as NQB and therefore ends up in the QB queue, it would only | |||
| impact its own quality of service (QoS); therefore, it seems to be of | impact its own Quality of Service (QoS); therefore, it seems to be of | |||
| lesser concern. However, a QB microflow that is mis-marked as NQB is | lesser concern. However, a QB microflow that is mis-marked as NQB is | |||
| able to contribute to NQB queue formation at a network node that | able to contribute to NQB queue formation at a network node that | |||
| would cause queuing delay and/or loss for all the other microflows | would cause queuing delay and/or loss for all the other microflows | |||
| that are sharing the NQB queue. | that are sharing the NQB queue. | |||
| To prevent this situation from harming the performance of the | To prevent this situation from harming the performance of the | |||
| microflows that comply with the requirements in Section 4, network | microflows that comply with the requirements in Section 4, network | |||
| elements that support the NQB PHB SHOULD support a "traffic | elements that support the NQB PHB SHOULD support a "traffic | |||
| protection" function that can identify microflows or packets that are | protection" function that can identify microflows or packets that are | |||
| inconsistent with the sender requirements in Section 4 and either | inconsistent with the sender requirements in Section 4 and either | |||
| reclassify those microflows/packets to the QB queue or discard the | reclassify those microflows/packets to the QB queue or discard the | |||
| offending traffic. In the case of a traffic protection algorithm | offending traffic. In the case of a traffic protection algorithm | |||
| that reclassifies offending traffic, the implementation MAY provide | that reclassifies offending traffic, the implementation MAY provide | |||
| an option to additionally re-mark such traffic to Default (or | an option to additionally re-mark such traffic to Default (or | |||
| possibly to another local use code point) so that the result of the | possibly to another local use codepoint) so that the result of the | |||
| traffic protection decision can be used by further hops. This sort | traffic protection decision can be used by further hops. This sort | |||
| of re-marking could provide a limited layer of protection in | of re-marking could provide a limited layer of protection in | |||
| situations where downstream network nodes support separate queuing | situations where downstream network nodes support separate queuing | |||
| for NQB-marked packets but lack support for traffic protection. | for NQB-marked packets but lack support for traffic protection. | |||
| If traffic protection is not supported or is not effective in | If traffic protection is not supported or is not effective in | |||
| preventing queue formation and growth in the NQB queue, then QB | preventing queue formation and growth in the NQB queue, then QB | |||
| traffic that is mis-marked as NQB is able to form a queue that | traffic that is mis-marked as NQB is able to form a queue that | |||
| overflows the shallow buffer provided for NQB traffic; this is | overflows the shallow buffer provided for NQB traffic; this is | |||
| expected to result in redirecting the excess packets to the QB queue | expected to result in redirecting the excess packets to the QB queue | |||
| skipping to change at line 644 ¶ | skipping to change at line 644 ¶ | |||
| considered. This is the motivation for the "SHOULD" requirement to | considered. This is the motivation for the "SHOULD" requirement to | |||
| support traffic protection (in the previous paragraph). An NQB PHB | support traffic protection (in the previous paragraph). An NQB PHB | |||
| implementation that does not support traffic protection risks being | implementation that does not support traffic protection risks being | |||
| limited to deployment situations where traffic protection is | limited to deployment situations where traffic protection is | |||
| potentially not necessary. One example of such a situation could be | potentially not necessary. One example of such a situation could be | |||
| a controlled environment (e.g., enterprise LAN) where a network | a controlled environment (e.g., enterprise LAN) where a network | |||
| administrator is expected to manage the usage of DSCPs. | administrator is expected to manage the usage of DSCPs. | |||
| As it is defined here, traffic protection differs from Traffic | As it is defined here, traffic protection differs from Traffic | |||
| Conditioning implemented in other Diffserv contexts. Traffic | Conditioning implemented in other Diffserv contexts. Traffic | |||
| Conditioning is commonly performed at the edge of a Diffserv domain | Conditioning is commonly performed at the edge of a DS domain (either | |||
| (either ingress or egress, depending on Traffic Conditioning | ingress or egress, depending on Traffic Conditioning Agreements | |||
| Agreements (TCAs) in place). In contrast, traffic protection is | (TCAs) in place). In contrast, traffic protection is intended to be | |||
| intended to be implemented in the nodes that implement the PHB. By | implemented in the nodes that implement the PHB. By placing the | |||
| placing the traffic protection at the PHB node, an implementation can | traffic protection at the PHB node, an implementation can monitor the | |||
| monitor the actual NQB queue and take action only if a queue begins | actual NQB queue and take action only if a queue begins to form. | |||
| to form. Implementation of traffic protection at PHB nodes that are | Implementation of traffic protection at PHB nodes that are most | |||
| most likely to be a bottleneck is particularly important because | likely to be a bottleneck is particularly important because these are | |||
| these are the nodes that would be expected to show the most queue | the nodes that would be expected to show the most queue buildup in | |||
| buildup in the presence of QB traffic mis-marked as NQB. | the presence of QB traffic mis-marked as NQB. | |||
| This specification does not mandate a particular algorithm for | This specification does not mandate a particular algorithm for | |||
| traffic protection. This is intentional since this will probably be | traffic protection. This is intentional since this will probably be | |||
| an area where implementers innovate. The specifics of traffic | an area where implementers innovate. The specifics of traffic | |||
| protection could need to be different in different network equipment | protection could need to be different in different network equipment | |||
| and in different network contexts. Instead, this specification | and in different network contexts. Instead, this specification | |||
| provides guidelines and some examples of traffic protection | provides guidelines and some examples of traffic protection | |||
| algorithms that could be employed. | algorithms that could be employed. | |||
| The traffic protection function SHOULD NOT base its decisions upon | The traffic protection function SHOULD NOT base its decisions upon | |||
| skipping to change at line 683 ¶ | skipping to change at line 683 ¶ | |||
| alternative is to use a traffic protection algorithm that bases its | alternative is to use a traffic protection algorithm that bases its | |||
| decisions on the detection of actual queuing (i.e., by monitoring the | decisions on the detection of actual queuing (i.e., by monitoring the | |||
| queuing delay experienced by packets in the NQB queue) in correlation | queuing delay experienced by packets in the NQB queue) in correlation | |||
| with the arrival of packets for each microflow. While a per- | with the arrival of packets for each microflow. While a per- | |||
| microflow rate policer is conceptually simpler (and is based directly | microflow rate policer is conceptually simpler (and is based directly | |||
| on the NQB sender requirements), it could often end up being more | on the NQB sender requirements), it could often end up being more | |||
| strict than is necessary (for example, by policing a flow that | strict than is necessary (for example, by policing a flow that | |||
| exceeds the rate equation even when the link is underutilized). One | exceeds the rate equation even when the link is underutilized). One | |||
| example traffic protection algorithm based on the detection of actual | example traffic protection algorithm based on the detection of actual | |||
| queuing can be found in [RFC9957]. This algorithm maintains per- | queuing can be found in [RFC9957]. This algorithm maintains per- | |||
| microflow state for a certain number of simultaneous "queue-building" | microflow state for a certain number of simultaneous QB microflows | |||
| microflows (e.g., 32), and shared state for any additional microflows | (e.g., 32), and shared state for any additional microflows above that | |||
| above that number. | number. | |||
| In the case of a traffic protection algorithm that reclassifies | In the case of a traffic protection algorithm that reclassifies | |||
| offending traffic, different levels of hysteresis could be | offending traffic, different levels of hysteresis could be | |||
| considered. For example, the reclassify decision could be made on a | considered. For example, the reclassify decision could be made on a | |||
| packet-by-packet basis, which could result in significant out-of- | packet-by-packet basis, which could result in significant out-of- | |||
| order delivery for offending microflows as some portion of the | order delivery for offending microflows as some portion of the | |||
| microflow's packets remain in the NQB queue and some are reclassified | microflow's packets remain in the NQB queue and some are reclassified | |||
| to the Default queue. Alternatively, a traffic protection function | to the Default queue. Alternatively, a traffic protection function | |||
| could employ a certain level of hysteresis to prevent borderline | could employ a certain level of hysteresis to prevent borderline | |||
| microflows from being reclassified capriciously, thus causing less | microflows from being reclassified capriciously, thus causing less | |||
| skipping to change at line 716 ¶ | skipping to change at line 716 ¶ | |||
| communications caused by the packet being discarded are likely to be | communications caused by the packet being discarded are likely to be | |||
| greater than the degradation caused by out-of-order delivery. | greater than the degradation caused by out-of-order delivery. | |||
| The traffic protection function described here might require that the | The traffic protection function described here might require that the | |||
| network element maintain microflow state. The traffic protection | network element maintain microflow state. The traffic protection | |||
| function MUST be designed such that the node implementing the NQB PHB | function MUST be designed such that the node implementing the NQB PHB | |||
| does not fail (e.g., crash) in the case that the microflow state is | does not fail (e.g., crash) in the case that the microflow state is | |||
| exhausted. This might be accomplished simply by controlling/limiting | exhausted. This might be accomplished simply by controlling/limiting | |||
| the resources dedicated to tracking misbehaving flows. | the resources dedicated to tracking misbehaving flows. | |||
| Some networks might prefer to implement a more traditional Traffic | Some networks might prefer to implement a Traffic Conditioning | |||
| Conditioning approach and police the application of the NQB DSCP at | approach that polices the application of the NQB DSCP at the ingress | |||
| the ingress edge so that per-hop traffic protection is not needed. | edge so that per-hop traffic protection is not needed. This could be | |||
| This could be accomplished via the use of a per-microflow rate | accomplished via the use of a per-microflow rate policer that polices | |||
| policer that polices microflows at 1% of the minimum link capacity of | microflows at 1% of the minimum link capacity of the network. This | |||
| the network. This approach would generally be expected to be | approach would generally be expected to be inferior to per-hop | |||
| inferior to per-hop traffic protection because: | traffic protection because: | |||
| * on one hand, it would be difficult for edge nodes to guarantee | * on one hand, it would be difficult for edge nodes to guarantee | |||
| that there would never be more than 100 NQB flows that would share | that there would never be more than 100 NQB flows that would share | |||
| a single internal bottleneck, and | a single internal bottleneck, and | |||
| * on the other hand, there could be internal links that have much | * on the other hand, there could be internal links that have much | |||
| greater capacity than the minimum. | greater capacity than the minimum. | |||
| So, Traffic Conditioning at the edge could simultaneously be too | So, Traffic Conditioning at the edge could simultaneously be too | |||
| lenient and too strict. | lenient and too strict. | |||
| skipping to change at line 752 ¶ | skipping to change at line 752 ¶ | |||
| Optical Networks (PONs), Wi-Fi, LTE/5G, and Data-Over-Cable Service | Optical Networks (PONs), Wi-Fi, LTE/5G, and Data-Over-Cable Service | |||
| Interface Specification (DOCSIS). | Interface Specification (DOCSIS). | |||
| As well as NQB senders needing to limit packet bursts (see | As well as NQB senders needing to limit packet bursts (see | |||
| Section 4), traffic designated for the NQB PHB would benefit from | Section 4), traffic designated for the NQB PHB would benefit from | |||
| configuring these link technologies to limit the burstiness | configuring these link technologies to limit the burstiness | |||
| introduced. This is for three reasons: | introduced. This is for three reasons: | |||
| 1. Burstiness, whether caused by the sender or by a link on the | 1. Burstiness, whether caused by the sender or by a link on the | |||
| path, could cause queuing delay at downstream bottlenecks and, | path, could cause queuing delay at downstream bottlenecks and, | |||
| thus, degrade Quality of Experience. | thus, degrade QoE. | |||
| 2. Burstiness in links typically means that packets have been | 2. Burstiness in links typically means that packets have been | |||
| delayed by a variable amount. That is, for packets that are | delayed by a variable amount. That is, for packets that are | |||
| being aggregated awaiting a transmission opportunity, some | being aggregated awaiting a transmission opportunity, some | |||
| packets would generally have arrived just after the last | packets would generally have arrived just after the last | |||
| transmission opportunity and would have to wait the longest while | transmission opportunity and would have to wait the longest while | |||
| others would generally arrive just in time for the next | others would generally arrive just in time for the next | |||
| transmission opportunity and would wait the least. This | transmission opportunity and would wait the least. This | |||
| manifests as delay variation that can also degrade Quality of | manifests as delay variation that can also degrade QoE for | |||
| Experience for applications that desire NQB treatment. | applications that desire NQB treatment. | |||
| 3. A downstream bottleneck that implements the NQB PHB could have | 3. A downstream bottleneck that implements the NQB PHB could have | |||
| implemented a traffic protection mechanism (Section 5.2) that | implemented a traffic protection mechanism (Section 5.2) that | |||
| responds to queuing delay by re-marking/reclassifying/dropping | responds to queuing delay by re-marking/reclassifying/dropping | |||
| packets. Bursty arrivals caused by an upstream link could | packets. Bursty arrivals caused by an upstream link could | |||
| introduce queuing delay in the NQB queue and these would be more | introduce queuing delay in the NQB queue and these would be more | |||
| likely to be subjected to traffic protection effects. | likely to be subjected to traffic protection effects. | |||
| This document does not set any quantified requirements for links to | This document does not set any quantified requirements for links to | |||
| limit bursts; this is primarily because link technologies are outside | limit bursts; this is primarily because link technologies are outside | |||
| skipping to change at line 803 ¶ | skipping to change at line 803 ¶ | |||
| unmanaged and inter-network scenarios. Additionally, Section 6.2 | unmanaged and inter-network scenarios. Additionally, Section 6.2 | |||
| contains configuration recommendations for nodes that do not support | contains configuration recommendations for nodes that do not support | |||
| the NQB PHB. Section 6.4.1 contains configuration recommendations | the NQB PHB. Section 6.4.1 contains configuration recommendations | |||
| for networks that interconnect with non-DS-capable domains. | for networks that interconnect with non-DS-capable domains. | |||
| 6.1. NQB Traffic Identification | 6.1. NQB Traffic Identification | |||
| As required in Section 5, nodes supporting the NQB PHB provide for | As required in Section 5, nodes supporting the NQB PHB provide for | |||
| the configuration of classifiers that can be used to differentiate | the configuration of classifiers that can be used to differentiate | |||
| between QB and NQB traffic of equivalent importance. The assigned | between QB and NQB traffic of equivalent importance. The assigned | |||
| NQB DSCP (45 decimal) is recommended for use as the default | NQB DSCP value (45 decimal) is recommended for use as the default | |||
| classifier to distinguish NQB traffic from traffic classified as | classifier to distinguish NQB traffic from traffic classified as | |||
| Default (DSCP 0) (see Sections 4 and 5.1). | Default (DSCP 0) (see Sections 4 and 5.1). | |||
| 6.2. Aggregation of the NQB DSCP into Another Diffserv PHB | 6.2. Aggregation of the NQB DSCP into Another Diffserv PHB | |||
| It is RECOMMENDED that networks and nodes that do not support the NQB | It is RECOMMENDED that networks and nodes that do not support the NQB | |||
| PHB be configured to treat traffic marked with the NQB DSCP the same | PHB be configured to treat traffic marked with the NQB DSCP the same | |||
| as traffic with the Default DSCP. This includes networks (such as | as traffic with the Default DSCP. This includes networks (such as | |||
| MPLS) and nodes that aggregate service classes as discussed in | MPLS) and nodes that aggregate service classes as discussed in | |||
| [RFC5127] and [RFC8100]; in this case, this recommendation would | [RFC5127] and [RFC8100]; in this case, this recommendation would | |||
| skipping to change at line 847 ¶ | skipping to change at line 847 ¶ | |||
| Aggregating traffic marked with the NQB DSCP into a PHB designed for | Aggregating traffic marked with the NQB DSCP into a PHB designed for | |||
| real-time, delay-sensitive traffic (e.g., the Real-Time Treatment | real-time, delay-sensitive traffic (e.g., the Real-Time Treatment | |||
| Aggregate [RFC5127] or the Bulk Real-Time Treatment Aggregate | Aggregate [RFC5127] or the Bulk Real-Time Treatment Aggregate | |||
| [RFC8100]), might better preserve the loss, delay, and delay- | [RFC8100]), might better preserve the loss, delay, and delay- | |||
| variation performance in the presence of congestion; however, it | variation performance in the presence of congestion; however, it | |||
| would need to be done with consideration of the risk of creating an | would need to be done with consideration of the risk of creating an | |||
| incentive for non-compliant traffic to be mis-marked as NQB. | incentive for non-compliant traffic to be mis-marked as NQB. | |||
| 6.3. Aggregation of Other DSCPs into the NQB PHB | 6.3. Aggregation of Other DSCPs into the NQB PHB | |||
| The Differentiated Services model provides flexibility for operators | The Diffserv model provides flexibility for operators to control the | |||
| to control the way they choose to aggregate traffic marked with a | way they choose to aggregate traffic marked with a specific DSCP. | |||
| specific DSCP. Operators of nodes that support the NQB PHB could | Operators of nodes that support the NQB PHB could choose to aggregate | |||
| choose to aggregate other service classes into the NQB queue. This | other service classes into the NQB queue. This is particularly | |||
| is particularly useful in cases where specialized PHBs for these | useful in cases where specialized PHBs for these other service | |||
| other service classes had not been provided at a potential | classes had not been provided at a potential bottleneck, perhaps | |||
| bottleneck, perhaps because it was too complex to manage traffic | because it was too complex to manage traffic contracts and | |||
| contracts and conditioning. Candidate service classes for this | conditioning. Candidate service classes for this aggregation would | |||
| aggregation would include those that carry low-data-rate inelastic | include those that carry low-data-rate inelastic traffic that has low | |||
| traffic that has low to very-low tolerance for loss, delay, and/or | to very-low tolerance for loss, delay, and/or delay variation. | |||
| delay variation. Operators would need to use their own judgment | Operators would need to use their own judgment based on the actual | |||
| based on the actual traffic characteristics in their networks in | traffic characteristics in their networks in deciding whether or not | |||
| deciding whether or not to aggregate other service classes / DSCPs | to aggregate other service classes / DSCPs with NQB. For networks | |||
| with NQB. For networks that use the service class definitions from | that use the service class definitions from [RFC4594], this could | |||
| [RFC4594], this could include Telephony (EF/VA), Signaling (CS5), and | include Telephony (EF/VA), Signaling (CS5), and possibly Real-Time | |||
| possibly Real-Time Interactive (CS4) (depending on data rate). In | Interactive (CS4) (depending on data rate). In the preceding | |||
| the preceding sentence, "VA" and "CSx" refer to Voice-Admit | sentence, "VA" and "CSx" refer to VOICE-ADMIT ([RFC5865]) and Class | |||
| ([RFC5865]) and Class Selector ([RFC2474]), respectively. In some | Selector ([RFC2474]), respectively. In some networks, equipment | |||
| networks, equipment limitations may necessitate aggregating a range | limitations may necessitate aggregating a range of DSCPs (e.g., | |||
| of DSCPs (e.g., traffic marked with DSCPs 40-47 (decimal), i.e., | traffic marked with DSCPs 40-47 (decimal), i.e., those whose three | |||
| those whose three most significant bits are 0b101). As noted in | most significant bits are 0b101). As noted in Section 4, the choice | |||
| Section 4, the choice of the DSCP value 45 (decimal) is motivated in | of the DSCP value 45 (decimal) is motivated in part by the desire to | |||
| part by the desire to make this aggregation simpler in network | make this aggregation simpler in network equipment that can classify | |||
| equipment that can classify packets via comparing the DSCP value to a | packets via comparing the DSCP value to a range of configured values. | |||
| range of configured values. | ||||
| A node providing only a NQB queue and a Default queue may obtain an | A node providing only a NQB queue and a Default queue may obtain an | |||
| NQB performance similar to that of EF, for example, as described by | NQB performance similar to that of EF, for example, as described by | |||
| Appendix A.3.1 of [RFC2598]. Some caveats and differences are | Appendix A.3.1 of [RFC2598]. Some caveats and differences are | |||
| discussed in Appendix B. | discussed in Appendix B. | |||
| [NOTE: this section references the obsoleted RFC 2598 instead of its | ||||
| replacement (RFC 3246) because the former contains the description of | ||||
| EF performance.] | ||||
| 6.4. Cross-Domain Usage and DSCP Re-marking | 6.4. Cross-Domain Usage and DSCP Re-marking | |||
| In contrast to some existing standard PHBs, which are typically only | In contrast to some existing standard PHBs, which are typically only | |||
| used within a Diffserv Domain (e.g., an AS or an enterprise network), | used within a DS domain (e.g., an Autonomous System (AS) or an | |||
| this PHB is expected to be used across the Internet, wherever | enterprise network), this PHB is expected to be used across the | |||
| suitable operator agreements apply. Under the model described in | Internet, wherever suitable operator agreements apply. Under the | |||
| [RFC2474], this requires that the corresponding DSCP is recognized | model described in [RFC2474], this requires that the corresponding | |||
| and mapped across network boundaries accordingly. | DSCP is recognized and mapped across network boundaries accordingly. | |||
| If NQB support is extended across a DiffServ domain boundary, the | If NQB support is extended across a DS domain boundary, the | |||
| interconnected networks agreeing to support NQB SHOULD use the DSCP | interconnected networks agreeing to support NQB SHOULD use the DSCP | |||
| value 45 (decimal) for NQB at network interconnection, unless a | value 45 (decimal) for NQB at network interconnection, unless a | |||
| different DSCP is explicitly documented in the TCA (Traffic | different DSCP is explicitly documented in the TCA (see [RFC2475]) | |||
| Conditioning Agreement, see [RFC2475]) for that interconnection. If | for that interconnection. If a Diffserv-Intercon Interconnection | |||
| [RFC8100] is operational between interconnected domains, the | Class (see Section 4 of [RFC8100]) is operational between | |||
| receiving domain may prefer a different DSCP for NQB traffic that | interconnected domains, the receiving domain may prefer a different | |||
| allows for a DSCP range-based classification for the Default / | DSCP for NQB traffic that allows for a DSCP range-based | |||
| Elastic Treatment Aggregate. Similar to the handling of DSCPs for | classification for the Default / Elastic Treatment Aggregate. | |||
| other PHBs (and as discussed in [RFC2475]), networks can re-mark NQB | Similar to the handling of DSCPs for other PHBs (and as discussed in | |||
| traffic to a DSCP value other than 45 (decimal) for internal usage. | [RFC2475]), networks can re-mark NQB traffic to a DSCP value other | |||
| To ensure reliable NQB PHB treatment on the entire path, the | than 45 (decimal) for internal usage. To ensure reliable NQB PHB | |||
| appropriate NQB DSCP would need to be restored when forwarding to | treatment on the entire path, the appropriate NQB DSCP would need to | |||
| another network. | be restored when forwarding to another network. | |||
| 6.4.1. Interoperability with Non-DS-Capable Domains | 6.4.1. Interoperability with Non-DS-Capable Domains | |||
| As discussed in Section 4 of [RFC2475], there may be cases where a | As discussed in Section 4 of [RFC2475], there may be cases where a | |||
| network operator that supports Diffserv is delivering traffic to | network operator that supports Diffserv is delivering traffic to | |||
| another network domain (e.g., a network outside of their | another network domain (e.g., a network outside of their | |||
| administrative control) where there is an understanding that the | administrative control) where there is an understanding that the | |||
| downstream domain does not support Diffserv or there is no knowledge | downstream domain does not support Diffserv or there is no knowledge | |||
| of the traffic management capabilities of the downstream domain, and | of the traffic management capabilities of the downstream domain, and | |||
| no agreement in place. In such cases, Section 4 of [RFC2475] | no agreement in place. In such cases, Section 4 of [RFC2475] | |||
| suggests that the upstream domain opportunistically re-mark traffic | suggests that the upstream domain opportunistically re-mark traffic | |||
| with a Class Selector codepoint or DSCP 0 (Default) under the | with a Class Selector Codepoint or DSCP 0 (Default) under the | |||
| assumption that traffic so marked would be handled in a predictable | assumption that traffic so marked would be handled in a predictable | |||
| way by the downstream domain. | way by the downstream domain. | |||
| In the case of a network that supports the NQB PHB (and carries | In the case of a network that supports the NQB PHB (and carries | |||
| traffic marked with the recommended NQB DSCP value), the same | traffic marked with the recommended DSCP value 45 (decimal)), the | |||
| concerns apply. In particular, since the recommended NQB DSCP value | same concerns apply. In particular, since the recommended NQB DSCP | |||
| could be given high priority in some non-DS-compliant network | value 45 (decimal) could be given high priority in some non-DS- | |||
| equipment (e.g., legacy Wi-Fi APs as described in Section 7.3.1), it | compliant network equipment (e.g., legacy Wi-Fi APs as described in | |||
| is RECOMMENDED that the operator of the upstream domain implement one | Section 7.3.1), it is RECOMMENDED that the operator of the upstream | |||
| of the following safeguards before delivering traffic into a non-DS- | domain implement one of the following safeguards before delivering | |||
| capable domain: | traffic into a non-DS-capable domain: | |||
| 1. One option for such a safeguard is to re-mark NQB traffic to DSCP | 1. One option for such a safeguard is to re-mark NQB traffic to DSCP | |||
| 0 (Default) (or another Class Selector DSCP) before delivering | 0 (Default) (or another Class Selector DSCP) before delivering | |||
| traffic into a non-DS-capable domain, in accordance with the | traffic into a non-DS-capable domain, in accordance with the | |||
| suggestion in Section 4 of [RFC2475]. Network equipment designed | suggestion in Section 4 of [RFC2475]. Network equipment designed | |||
| for such environments SHOULD, by default, re-mark NQB traffic to | for such environments SHOULD, by default, re-mark NQB traffic to | |||
| DSCP 0 (Default) and SHOULD support the ability to change and | DSCP 0 (Default) and SHOULD support the ability to change and | |||
| disable this re-marking. Re-marking NQB traffic to DSCP 0 | disable this re-marking. Re-marking NQB traffic to DSCP 0 | |||
| (Default) could be considered the "safest" approach since the | (Default) could be considered the "safest" approach since the | |||
| upstream domain can thereby ensure that NQB traffic is not given | upstream domain can thereby ensure that NQB traffic is not given | |||
| skipping to change at line 959 ¶ | skipping to change at line 954 ¶ | |||
| In the case that a traffic protection function is used, it MUST | In the case that a traffic protection function is used, it MUST | |||
| either re-mark offending traffic to DSCP 0 (or another Class | either re-mark offending traffic to DSCP 0 (or another Class | |||
| Selector DSCP) or discard it. Note that a traffic protection | Selector DSCP) or discard it. Note that a traffic protection | |||
| function, as defined in this document, might only provide | function, as defined in this document, might only provide | |||
| protection from issues occurring in subsequent network hops if | protection from issues occurring in subsequent network hops if | |||
| the device implementing the traffic protection function is the | the device implementing the traffic protection function is the | |||
| bottleneck link on the path, so it might not be a solution for | bottleneck link on the path, so it might not be a solution for | |||
| all situations. | all situations. | |||
| In the case that a traffic policing function or a rate shaping | In the case that a traffic policing function or a rate-shaping | |||
| function is applied to the aggregate of NQB traffic destined to | function is applied to the aggregate of NQB traffic destined to | |||
| such a downstream domain, the policer/shaper rate SHOULD be set | such a downstream domain, the policer/shaper rate SHOULD be set | |||
| to either 5% of the interconnection data rate or 5% of the | to either 5% of the interconnection data rate or 5% of the | |||
| typical rate for such interconnections, whichever is greater, | typical rate for such interconnections, whichever is greater, | |||
| with excess traffic being re-marked and classified for Default | with excess traffic being re-marked and classified for Default | |||
| forwarding (or dropped, as a last resort). A traffic policing | forwarding (or dropped, as a last resort). A traffic policing | |||
| function SHOULD allow approximately 100 ms of burst tolerance | function SHOULD allow approximately 100 ms of burst tolerance | |||
| (e.g., a token bucket depth equal to 100 ms multiplied by the | (e.g., a token bucket depth equal to 100 ms multiplied by the | |||
| policer rate). A traffic shaping function SHOULD allow | policer rate). A traffic-shaping function SHOULD allow | |||
| approximately 10 ms of burst tolerance and no more than 50 ms of | approximately 10 ms of burst tolerance and no more than 50 ms of | |||
| buffering. The burst tolerance values recommended here are | buffering. The burst tolerance values recommended here are | |||
| intended to reduce the degradation that could be introduced to | intended to reduce the degradation that could be introduced to | |||
| delay- and loss-sensitive traffic marked NQB without | delay- and loss-sensitive traffic marked NQB without | |||
| significantly degrading Default traffic and that could be | significantly degrading Default traffic and that could be | |||
| adjusted based on local network policy. Increasing the burst | adjusted based on local network policy. Increasing the burst | |||
| tolerance would further reduce the potential for degradation | tolerance would further reduce the potential for degradation | |||
| (increased loss or increased delay) of traffic marked NQB but | (increased loss or increased delay) of traffic marked NQB but | |||
| would come at the cost of an increased risk of degradation | would come at the cost of an increased risk of degradation | |||
| (increased loss or increased delay) of Default traffic. | (increased loss or increased delay) of Default traffic. | |||
| skipping to change at line 991 ¶ | skipping to change at line 986 ¶ | |||
| assumption that internal links in the downstream domain could | assumption that internal links in the downstream domain could | |||
| have data rates as low as one tenth of the interconnect rate; in | have data rates as low as one tenth of the interconnect rate; in | |||
| which case, if the entire aggregate of NQB traffic traversed a | which case, if the entire aggregate of NQB traffic traversed a | |||
| single instance of such a link, the aggregate would consume no | single instance of such a link, the aggregate would consume no | |||
| more than 50% of that link's capacity. The limit for NQB traffic | more than 50% of that link's capacity. The limit for NQB traffic | |||
| SHOULD be adjusted based on any knowledge of the local network | SHOULD be adjusted based on any knowledge of the local network | |||
| environment that is available. | environment that is available. | |||
| 6.5. The NQB DSCP and Tunnels | 6.5. The NQB DSCP and Tunnels | |||
| [RFC2983] discusses tunnel models that support Diffserv. It | [RFC2983] discusses tunnel models that support DS. It describes a | |||
| describes a "uniform model" in which the inner DSCP is copied to the | "uniform model" in which the inner DSCP is copied to the outer header | |||
| outer header at encapsulation and the outer DSCP is copied to the | at encapsulation and the outer DSCP is copied to the inner header at | |||
| inner header at decapsulation. It also describes a "pipe model" in | decapsulation. It also describes a "pipe model" in which the outer | |||
| which the outer DSCP is not copied to the inner header at | DSCP is not copied to the inner header at decapsulation. Both models | |||
| decapsulation. Both models can be used in conjunction with the NQB | can be used in conjunction with the NQB PHB. In the case of the pipe | |||
| PHB. In the case of the pipe model, any DSCP manipulation (re- | model, any DSCP manipulation (re-marking) of the outer header by | |||
| marking) of the outer header by intermediate nodes would be discarded | intermediate nodes would be discarded at tunnel egress. In some | |||
| at tunnel egress. In some cases, this could improve the possibility | cases, this could improve the possibility of achieving NQB treatment | |||
| of achieving NQB treatment in subsequent nodes; in other cases, it | in subsequent nodes; in other cases, it could degrade that | |||
| could degrade that possibility (e.g., if the re-marking was designed | possibility (e.g., if the re-marking was designed specifically to | |||
| specifically to preserve NQB treatment in downstream domains). | preserve NQB treatment in downstream domains). | |||
| As is discussed in [RFC2983], tunnel protocols that are sensitive to | As is discussed in [RFC2983], tunnel protocols that are sensitive to | |||
| reordering (such as IPsec [RFC4301] or Layer 2 Tunneling Protocol | reordering (such as IPsec [RFC4301] or Layer 2 Tunneling Protocol | |||
| (L2TP) [RFC2661]) can result in undesirable interactions if multiple | (L2TP) [RFC2661]) can result in undesirable interactions if multiple | |||
| DSCP PHBs are signaled for traffic within a tunnel instance. This is | DSCP PHBs are signaled for traffic within a tunnel instance. This is | |||
| true for tunnels containing a mix of QB and NQB traffic. | true for tunnels containing a mix of QB and NQB traffic. | |||
| Additionally, since networks supporting the NQB PHB could implement a | Additionally, since networks supporting the NQB PHB could implement a | |||
| traffic protection mechanism (see Section 5.2) and/or responses to | traffic protection mechanism (see Section 5.2) and/or responses to | |||
| NQB buffer overrun that result in out-of-order delivery for traffic | NQB buffer overrun that result in out-of-order delivery for traffic | |||
| marked with the NQB DSCP, even tunnels solely containing NQB traffic | marked with the NQB DSCP, even tunnels solely containing NQB traffic | |||
| skipping to change at line 1063 ¶ | skipping to change at line 1058 ¶ | |||
| This section provide recommendations for the support of the NQB PHB | This section provide recommendations for the support of the NQB PHB | |||
| in certain use cases. This section is not exhaustive. | in certain use cases. This section is not exhaustive. | |||
| 7.1. DOCSIS Access Networks | 7.1. DOCSIS Access Networks | |||
| Residential cable broadband Internet services are commonly configured | Residential cable broadband Internet services are commonly configured | |||
| with a single bottleneck link (the access network link) upon which | with a single bottleneck link (the access network link) upon which | |||
| the service definition is applied. The service definition, typically | the service definition is applied. The service definition, typically | |||
| an upstream/downstream data rate tuple, is implemented as a | an upstream/downstream data rate tuple, is implemented as a | |||
| configured pair of rate shapers that are applied to the user's | configured pair of rate shapers that are applied to the user's | |||
| traffic. In such networks, the quality of service that each | traffic. In such networks, the QoS that each application receives, | |||
| application receives, and as a result, the quality of experience that | and as a result, the QoE that it generates for the user is influenced | |||
| it generates for the user is influenced by the characteristics of the | by the characteristics of the access network link. | |||
| access network link. | ||||
| To support the NQB PHB, cable broadband services would need to be | To support the NQB PHB, cable broadband services would need to be | |||
| configured to provide a separate queue for traffic marked with the | configured to provide a separate queue for traffic marked with the | |||
| NQB DSCP. The NQB queue would need to be configured to share the | NQB DSCP. The NQB queue would need to be configured to share the | |||
| service's rate shaped capacity with the queue for QB traffic. | service's rate-shaped capacity with the queue for QB traffic. | |||
| Further discussion about support of the NQB PHB in DOCSIS networks | Further discussion about support of the NQB PHB in DOCSIS networks | |||
| can be found in [LOW_LATENCY_DOCSIS]. | can be found in [LOW_LATENCY_DOCSIS]. | |||
| 7.2. Mobile Networks | 7.2. Mobile Networks | |||
| Historically, 3GPP mobile networks have utilized "bearers" to | Historically, 3GPP mobile networks have utilized "bearers" to | |||
| encapsulate each user's user plane traffic through the radio and core | encapsulate each user's user plane traffic through the radio access | |||
| networks. A "dedicated bearer" can be allocated a Quality of Service | and core networks. Bearers are also associated with a QoS that | |||
| (QoS) to apply any prioritization to its microflows at queues and | determines how packets are prioritized at queues and radio | |||
| radio schedulers. Typically, an LTE operator provides a dedicated | schedulers. In LTE networks, these are Evolved Packet System (EPS) | |||
| bearer for IP Multimedia Subsystems (IMS) VoLTE (Voice over LTE) | bearers, part of the EPS, which comprises the core and access network | |||
| traffic, which is prioritized in order to meet regulatory obligations | architecture. Typically, an LTE operator provides a dedicated EPS | |||
| for call completion rates, and a "best effort" default bearer for | bearer for IP Multimedia Subsystem (IMS) Voice over LTE (VoLTE) | |||
| Internet traffic. The "best effort" bearer provides no guarantees; | traffic to meet regulatory obligations for call completion rates and | |||
| hence, its buffering characteristics are not compatible with low- | a best-effort default EPS bearer for Internet traffic. This default | |||
| latency traffic. The 5G radio and core systems offer more | EPS bearer is typically non-Guaranteed Bit Rate (non-GBR) and | |||
| flexibility over bearer allocation, meaning bearers can be allocated | provides no guarantees; its buffering characteristics generally are | |||
| per traffic type (e.g., loss-tolerant, low-latency, etc.); hence, | not compatible with low-latency traffic. In 5G networks, similar | |||
| they support more suitable treatment of Internet real-time | functionality is provided using QoS flows within a PDU Session in the | |||
| microflows. | core network, which are mapped to Data Radio Bearers (DRBs) on the | |||
| radio network. 5G systems offer more flexibility in QoS handling, | ||||
| allowing traffic to be treated according to type (e.g., loss- | ||||
| tolerant, low-latency); hence, they support more suitable treatment | ||||
| of Internet real-time microflows. | ||||
| To support the NQB PHB, the mobile network could be configured to | To support the NQB PHB, an LTE network could be configured to provide | |||
| give User Equipment (UE, the mobile device used by the subscriber) a | the User Equipment (UE, the subscriber's device) with a dedicated | |||
| dedicated, low-latency, non-GBR (non-Guaranteed Bit Rate), EPS | low-latency, non-GBR EPS bearer, in addition to the default EPS | |||
| (Evolved Packet System, the core and access network architecture used | bearer. For example, this dedicated EPS bearer could use QCI 7 (QoS | |||
| in LTE) bearer, e.g., one with QCI 7 (QoS Class Identifier 7, which | Class Identifier 7), which is typically used for low-latency, non-GBR | |||
| is typically used for low-latency, non-GBR services), in addition to | services. Alternatively, in a 5G system, a Data Radio Bearer (DRB) | |||
| the default EPS bearer. Alternatively, in a 5G system, a Data Radio | with 5QI 7 (5G QoS Identifier 7, also used for low-latency traffic), | |||
| Bearer with 5QI 7 (5G QoS Identifier 7), similarly used for low- | could be provisioned (see Table 5.7.4-1: Standardized 5QI to QoS | |||
| latency traffic, could be provisioned (see Table 5.7.4-1: | characteristics mapping in [SA-5G]). | |||
| Standardized 5QI to QoS characteristics mapping in [SA-5G]). | ||||
| A packet carrying the NQB DSCP could then be routed through this | A packet carrying the NQB DSCP could then be routed through this | |||
| dedicated low-latency EPS bearer, while a packet that has no | dedicated low-latency path, while packets without the NQB marking | |||
| associated NQB marking would be routed through the default EPS | would be routed through the default bearer. | |||
| bearer. | ||||
| 7.3. Wi-Fi Networks | 7.3. Wi-Fi Networks | |||
| Wi-Fi networking equipment compliant with 802.11e/n/ac/ax | Wi-Fi networking equipment compliant with 802.11e/n/ac/ax | |||
| [IEEE802-11] generally supports either four or eight transmit queues | [IEEE802-11] generally supports either four or eight transmit queues | |||
| and four sets of associated Enhanced Distributed Channel Access | and four sets of associated EDCA parameters (corresponding to the | |||
| (EDCA) parameters (corresponding to the four Wi-Fi Multimedia (WMM) | four Wi-Fi Multimedia (WMM) Access Categories) that are used to | |||
| Access Categories) that are used to enable differentiated medium | enable differentiated medium access characteristics. The four WMM | |||
| access characteristics. The four WMM Access Categories, referred to | Access Categories, referred to as Voice Access Category (AC_VO), | |||
| as Voice Access Category (AC_VO), Video Access Category (AC_VI), Best | Video Access Category (AC_VI), Best Effort Access Category (AC_BE), | |||
| Effort Access Category (AC_BE), and Background Access Category | and Background Access Category (AC_BK), provide four levels of | |||
| (AC_BK), provide four levels of prioritized access to the wireless | prioritized access to the wireless medium. As discussed in | |||
| medium. As discussed in [RFC8325], it has been a common practice for | [RFC8325], it has been a common practice for Wi-Fi implementations to | |||
| Wi-Fi implementations to use a default DSCP to User Priority (UP) | use a default DSCP to User Priority (UP) mapping that utilizes the | |||
| mapping that utilizes the most significant three bits of the Diffserv | most significant three bits of the DSCP field to select "User | |||
| Field to select "User Priority", which is then mapped to the four WMM | Priority", which is then mapped to the four WMM Access Categories. | |||
| Access Categories. [RFC8325] also provides an alternative mapping | [RFC8325] also provides an alternative mapping that more closely | |||
| that more closely aligns with the DSCP recommendations provided by | aligns with the DSCP recommendations provided by the IETF. In the | |||
| the IETF. In the case of some managed Wi-Fi equipment, this mapping | case of some managed Wi-Fi equipment, this mapping can be controlled | |||
| can be controlled by the network operator, e.g., via TR-369 [TR-369]. | by the network operator, e.g., via TR-369 [TR-369]. | |||
| In addition to the requirements provided in other sections of this | In addition to the requirements provided in other sections of this | |||
| document, to support the NQB PHB, Wi-Fi equipment (including | document, to support the NQB PHB, Wi-Fi equipment (including | |||
| equipment compliant with [RFC8325]) SHOULD map the NQB DSCP 45 | equipment compliant with [RFC8325]) SHOULD map the DSCP value 45 | |||
| (decimal) into a separate queue in the same Access Category as the | (decimal) into a separate queue in the same Access Category as the | |||
| queue that carries Default traffic (i.e., the Best Effort Access | queue that carries Default traffic (i.e., the Best Effort Access | |||
| Category). It is RECOMMENDED that Wi-Fi equipment provide a separate | Category). It is RECOMMENDED that Wi-Fi equipment provide a separate | |||
| queue in UP 0 and map the NQB DSCP 45 (decimal) to that queue. If a | queue in UP 0 and map the DSCP value 45 (decimal) to that queue. If | |||
| separate queue in UP 0 cannot be provided (due to hardware | a separate queue in UP 0 cannot be provided (due to hardware | |||
| limitations, etc.), a Wi-Fi device MAY map the NQB DSCP 45 (decimal) | limitations, etc.), a Wi-Fi device MAY map the DSCP value 45 | |||
| to UP 3. | (decimal) to UP 3. | |||
| 7.3.1. Interoperability with Existing Wi-Fi Networks | 7.3.1. Interoperability with Existing Wi-Fi Networks | |||
| While some existing Wi-Fi equipment might be capable (in some cases | While some existing Wi-Fi equipment might be capable (in some cases | |||
| via firmware update) of supporting the NQB PHB requirements, many | via firmware update) of supporting the NQB PHB requirements, many | |||
| currently deployed devices cannot be configured in this way. As a | currently deployed devices cannot be configured in this way. As a | |||
| result, the remainder of this section discusses interoperability with | result, the remainder of this section discusses interoperability with | |||
| these existing Wi-Fi networks, as opposed to PHB compliance. | these existing Wi-Fi networks, as opposed to PHB compliance. | |||
| Since this equipment is widely deployed, and the Wi-Fi link can | Since this equipment is widely deployed, and the Wi-Fi link can | |||
| skipping to change at line 1165 ¶ | skipping to change at line 1161 ¶ | |||
| not both) of the following characteristics: | not both) of the following characteristics: | |||
| * the NQB PHB requirement for separate queuing of NQB traffic from | * the NQB PHB requirement for separate queuing of NQB traffic from | |||
| Default traffic (Section 5.1) | Default traffic (Section 5.1) | |||
| * the recommendation to treat NQB traffic with forwarding preference | * the recommendation to treat NQB traffic with forwarding preference | |||
| equal to that used for Default traffic (Section 5.1) | equal to that used for Default traffic (Section 5.1) | |||
| The DSCP value 45 (decimal) is recommended for NQB (see Section 4). | The DSCP value 45 (decimal) is recommended for NQB (see Section 4). | |||
| This maps NQB to UP 5 using the default mapping, which is in the | This maps NQB to UP 5 using the default mapping, which is in the | |||
| "Video" Access Category. While this choice of DSCP enables these Wi- | Video Access Category. While this choice of DSCP enables these Wi-Fi | |||
| Fi systems to support the NQB PHB requirement for separate queuing, | systems to support the NQB PHB requirement for separate queuing, | |||
| existing Wi-Fi devices generally utilize EDCA parameters that result | existing Wi-Fi devices generally utilize EDCA parameters that result | |||
| in statistical prioritization of the "Video" Access Category above | in statistical prioritization of the Video Access Category above the | |||
| the "Best Effort" Access Category. In addition, this equipment does | Best Effort Access Category. In addition, this equipment does not | |||
| not support the remaining NQB PHB recommendations in Section 5. The | support the remaining NQB PHB recommendations in Section 5. The | |||
| rationale for the choice of DSCP 45 (decimal) as well as its | rationale for the choice of DSCP value 45 (decimal) as well as its | |||
| ramifications and remedies for its limitations are discussed further | ramifications and remedies for its limitations are discussed further | |||
| below. | below. | |||
| The choice of separated queuing rather than equal forwarding | The choice of separated queuing rather than equal forwarding | |||
| preference in existing Wi-Fi networks was motivated by the following: | preference in existing Wi-Fi networks was motivated by the following: | |||
| * Separate queuing is necessary in order to provide a benefit for | * Separate queuing is necessary in order to provide a benefit for | |||
| traffic marked with the NQB DSCP. | traffic marked with the NQB DSCP. | |||
| * The arrangement of queues in Wi-Fi equipment is typically fixed, | * The arrangement of queues in Wi-Fi equipment is typically fixed, | |||
| skipping to change at line 1206 ¶ | skipping to change at line 1202 ¶ | |||
| * Several existing client applications that are compatible with the | * Several existing client applications that are compatible with the | |||
| NQB sender requirements already select the Video Access Category; | NQB sender requirements already select the Video Access Category; | |||
| thus, they would not see a degradation in performance by | thus, they would not see a degradation in performance by | |||
| transitioning to the NQB DSCP, regardless of whether the network | transitioning to the NQB DSCP, regardless of whether the network | |||
| supported the PHB. | supported the PHB. | |||
| * Application instances on Wi-Fi client devices are already free to | * Application instances on Wi-Fi client devices are already free to | |||
| choose any Access Category that they wish, regardless of their | choose any Access Category that they wish, regardless of their | |||
| sending behavior, without any policing of usage. So, the choice | sending behavior, without any policing of usage. So, the choice | |||
| of using DSCP 45 (decimal) for NQB creates no new avenues for non- | of using DSCP value 45 (decimal) for NQB creates no new avenues | |||
| NQB-compliant client applications to exploit the prioritization | for non-NQB-compliant client applications to exploit the | |||
| function in Wi-Fi. | prioritization function in Wi-Fi. | |||
| * For application traffic that originates outside of the Wi-Fi | * For application traffic that originates outside of the Wi-Fi | |||
| network, and, thus, is transmitted by the Access Point, the choice | network, and, thus, is transmitted by the Access Point, the choice | |||
| of DSCP 45 does create a potential for abuse by non-compliant | of DSCP value 45 (decimal) does create a potential for abuse by | |||
| applications. However, opportunities exist in the network | non-compliant applications. However, opportunities exist in the | |||
| components upstream of the Wi-Fi Access Point to police the usage | network components upstream of the Wi-Fi Access Point to police | |||
| of the NQB DSCP and potentially re-mark traffic that is considered | the usage of the NQB DSCP and potentially re-mark traffic that is | |||
| non-compliant, as is recommended in Section 6.4.1. Furthermore, | considered non-compliant, as is recommended in Section 6.4.1. | |||
| it is reasonable to expect that ISPs currently manage the DSCPs on | Furthermore, it is reasonable to expect that ISPs currently manage | |||
| traffic destined to their customers' networks and will continue to | the DSCPs on traffic destined to their customers' networks and | |||
| do so whether or not they support NQB. This includes the practice | will continue to do so whether or not they support NQB. This | |||
| in residential broadband networks of re-marking the Diffserv field | includes the practice in residential broadband networks of re- | |||
| to zero on all traffic. Any change to these practices done to | marking the DSCP field to zero on all traffic. Any change to | |||
| enable the NQB DSCP to pass through could be done alongside the | these practices done to enable the NQB DSCP to pass through could | |||
| implementation of the recommendations in Section 6.4.1. | be done alongside the implementation of the recommendations in | |||
| Section 6.4.1. | ||||
| The choice of Video Access Category rather than the Voice Access | The choice of Video Access Category rather than the Voice Access | |||
| Category was motivated by the desire to minimize the potential for | Category was motivated by the desire to minimize the potential for | |||
| degradation of Best Effort Access Category traffic. The choice of | degradation of Best Effort Access Category traffic. The choice of | |||
| Video Access Category rather than the Background Access Category was | Video Access Category rather than the Background Access Category was | |||
| motivated by the much greater potential of degradation to NQB traffic | motivated by the much greater potential of degradation to NQB traffic | |||
| that would be caused by the vast majority of traffic in most Wi-Fi | that would be caused by the vast majority of traffic in most Wi-Fi | |||
| networks, which utilizes the Best Effort Access Category. | networks, which utilizes the Best Effort Access Category. | |||
| As stated above, the use of DSCP 45 (decimal) for NQB is not expected | As stated above, the use of DSCP value 45 (decimal) for NQB is not | |||
| to create incentives for abuse by non-compliant applications in the | expected to create incentives for abuse by non-compliant applications | |||
| Wi-Fi uplink direction. The fact that the NQB DSCP brings with it | in the Wi-Fi uplink direction. The fact that the NQB DSCP brings | |||
| the potential for degradation of non-compliant applications (traffic | with it the potential for degradation of non-compliant applications | |||
| protection and/or a shallow queue resulting in reordering and/or | (traffic protection and/or a shallow queue resulting in reordering | |||
| packet loss at some hop along the path) plus the existence of | and/or packet loss at some hop along the path) plus the existence of | |||
| multiple other DSCP values that don't carry the risk of degradation | multiple other DSCP values that don't carry the risk of degradation | |||
| and that could be readily used to obtain prioritization (AC_VI or | and that could be readily used to obtain prioritization (AC_VI or | |||
| even AC_VO) leads to the conclusion that NQB non-compliant | even AC_VO) leads to the conclusion that NQB non-compliant | |||
| applications that are seeking prioritization in the Wi-Fi uplink | applications that are seeking prioritization in the Wi-Fi uplink | |||
| would be better off selecting one of those other DSCPs. This | would be better off selecting one of those other DSCPs. This | |||
| conclusion is not expected to be disturbed by network support for NQB | conclusion is not expected to be disturbed by network support for NQB | |||
| increasing the likelihood of DSCP 45 traffic traversing network | increasing the likelihood of DSCP value 45 (decimal) traffic | |||
| boundaries without change to the DSCP, as that likelihood of | traversing network boundaries without change to the DSCP, as that | |||
| increased network boundary traversal is balanced by a likelihood of | likelihood of increased network boundary traversal is balanced by a | |||
| NQB traffic encountering the traffic-limiting aspects of NQB support, | likelihood of NQB traffic encountering the traffic-limiting aspects | |||
| traffic protection, and shallow buffers, which limit the potential | of NQB support, traffic protection, and shallow buffers, which limit | |||
| for abuse. | the potential for abuse. | |||
| In the case of traffic originating outside of the Wi-Fi network, the | In the case of traffic originating outside of the Wi-Fi network, the | |||
| prioritization of traffic marked with the NQB DSCP via the Video | prioritization of traffic marked with the NQB DSCP via the Video | |||
| Access Category (if left unchanged) could potentially erode the | Access Category (if left unchanged) could potentially erode the | |||
| principle of alignment of incentives discussed in Section 5. In | principle of alignment of incentives discussed in Section 5. In | |||
| order to preserve the incentives principle for NQB, Wi-Fi systems MAY | order to preserve the incentives principle for NQB, Wi-Fi systems MAY | |||
| be configured such that the EDCA parameters for the Video Access | be configured such that the EDCA parameters for the Video Access | |||
| Category match those of the Best Effort Access Category, which will | Category match those of the Best Effort Access Category, which will | |||
| mean AC_VI is at the same priority level as AC_BE. These changes | mean AC_VI is at the same priority level as AC_BE. These changes | |||
| might not be possible on all Access Points; in any case, the | might not be possible on all Access Points; in any case, the | |||
| requirements and recommendations in Section 6.4.1 would apply in this | requirements and recommendations in Section 6.4.1 would apply in this | |||
| situation. | situation. | |||
| Systems that utilize [RFC8325] but cannot provide a separate AC_BE | Systems that utilize [RFC8325] but cannot provide a separate AC_BE | |||
| queue for NQB traffic SHOULD map the NQB DSCP 45 (decimal) (or the | queue for NQB traffic SHOULD map the DSCP value 45 (decimal) (or the | |||
| locally determined alternative) to UP 5 in the "Video" Access | locally determined alternative) to UP 5 in the Video Access Category | |||
| Category as well (see Section 7.3.2). | as well (see Section 7.3.2). | |||
| 7.3.2. The Updates to RFC 8325 | 7.3.2. The Updates to RFC 8325 | |||
| Section 4.2.9 of [RFC8325] describes the recommendation for the | Section 4.2.9 of [RFC8325] describes the recommendation for the | |||
| handling of Standard service class traffic that carries the Default | handling of Standard service class traffic that carries the Default | |||
| DSCP. This update to [RFC8325] changes the title of Section 4.2.9 of | DSCP. This update to [RFC8325] changes the title of Section 4.2.9 of | |||
| [RFC8325] from "Standard" to "Standard and Non-Queue-Building". This | [RFC8325] from "Standard" to "Standard and Non-Queue-Building". This | |||
| update additionally adds a paragraph at the end of Section 4.2.9 of | update additionally adds a paragraph at the end of Section 4.2.9 of | |||
| [RFC8325] as follows: | [RFC8325] as follows: | |||
| | RFC 9956 defines a shallow-buffered, best-effort service for | | RFC 9956 defines a shallow-buffered, best-effort service for | |||
| | traffic marked with the NQB DSCP 45 (decimal) and recommends the | | traffic described as Non-Queue-Building and recommends the | |||
| | following treatment in Wi-Fi equipment. It is RECOMMENDED that | | following treatment in Wi-Fi equipment. It is RECOMMENDED that | |||
| | Wi-Fi equipment map the NQB DSCP 45 (decimal) into a separate | | Wi-Fi equipment map Non-Queue-Building traffic into a separate | |||
| | queue in the same Access Category as the queue that carries | | queue in the same Access Category as the queue that carries | |||
| | Default traffic (i.e., the Best Effort Access Category). It is | | Default traffic (i.e., the Best Effort Access Category). It is | |||
| | RECOMMENDED that Wi-Fi equipment provide a separate queue in UP 0 | | RECOMMENDED that Wi-Fi equipment provide a separate queue in UP 0 | |||
| | and map the NQB DSCP 45 (decimal) to that queue. If a separate | | and map Non-Queue-Building traffic to that queue. If a separate | |||
| | queue in UP 0 cannot be provided (due to hardware limitations, | | queue in UP 0 cannot be provided (due to hardware limitations, | |||
| | etc.), a Wi-Fi device MAY map the NQB DSCP 45 (decimal) to UP 3. | | etc.), a Wi-Fi device MAY map Non-Queue-Building traffic to UP 3. | |||
| | If neither of these options provides a separate queue from Default | | If neither of these options provides a separate queue from Default | |||
| | traffic, it is RECOMMENDED that Wi-Fi equipment map the NQB DSCP | | traffic, it is RECOMMENDED that Wi-Fi equipment map Non-Queue- | |||
| | 45 (decimal) to UP 5 (which corresponds to the default mapping | | Building traffic to UP 5 (which corresponds to the default mapping | |||
| | described in Section 2.3). RFC 9956 provides additional | | described in Section 2.3). RFC 9956 provides additional | |||
| | recommendations and requirements for support of the NQB PHB that | | recommendations and requirements for support of the NQB PHB that | |||
| | aren't available in the QoS model described in Section 6 but | | aren't available in the QoS model described in Section 6 but | |||
| | nonetheless could be supported in implementations. | | nonetheless could be supported in implementations. | |||
| In another update to [RFC8325] captured below, a new row for "Non- | In another update to [RFC8325] captured below, a new row for "Non- | |||
| Queue-Building" traffic is inserted between the existing "Low-Latency | Queue-Building" traffic is inserted between the existing "Low-Latency | |||
| Data" and "OAM" rows in Figure 1 of [RFC8325] as follows: | Data" and "OAM" rows in Figure 1 of [RFC8325] as follows: | |||
| +===============+======+==========+==================================+ | ||||
| | IETF Diffserv | PHB |Reference | IEEE 802.11 | | ||||
| | Service Class | | RFC |User Priority| Access Category | | ||||
| |===============+======+==========+=============+====================| | ||||
| | ... | ... | ... | ... | ... | | ||||
| +---------------+------+----------+-------------+--------------------+ | +---------------+------+----------+-------------+--------------------+ | |||
| | Low- | AF21 | | | | | | Low- | AF21 | | | | | |||
| | Latency | AF22 | RFC 2597 | 3 | AC_BE (Best Effort)| | | Latency | AF22 | RFC 2597 | 3 | AC_BE (Best Effort)| | |||
| | Data | AF23 | | | | | | Data | AF23 | | | | | |||
| +---------------+------+----------+-------------+--------------------+ | +---------------+------+----------+-------------+--------------------+ | |||
| | Non- | | | 0, 3 | AC_BE (Best Effort)| | | Non- | | | 0, 3 | AC_BE (Best Effort)| | |||
| | Queue- | NQB | RFC 9956 | OR | | | Queue- | NQB | RFC 9956 | OR | | |||
| | Building | | | 5 | AC_VI (Video) | | | Building | | | 5 | AC_VI (Video) | | |||
| | | | | See Section 4.2.9 | | | | | | See Section 4.2.9 | | |||
| +---------------+------+----------+-------------+--------------------+ | +---------------+------+----------+-------------+--------------------+ | |||
| | OAM | CS2 | RFC 2474 | 0 | AC_BE (Best Effort)| | | OAM | CS2 | RFC 2474 | 0 | AC_BE (Best Effort)| | |||
| +---------------+------+----------+-------------+--------------------+ | +---------------+------+----------+-------------+--------------------+ | |||
| A third update adds the following sentence to the end of the first | A third update adds the following sentence to the end of the first | |||
| paragraph in Section 5.3 of [RFC8325]: | paragraph in Section 5.3 of [RFC8325]: | |||
| | An exception to this is the NQB DSCP 45 (decimal), which encodes | | An exception to this is the NQB DSCP value 45 (decimal), which | |||
| | for best-effort service. | | encodes for best-effort service. | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| IANA has assigned the Differentiated Services Field Codepoint (DSCP) | IANA has assigned the Differentiated Services Field Codepoint (DSCP) | |||
| 45 from the "Differentiated Services Field Codepoints (DSCP)" | 45 from the "Differentiated Services Field Codepoints (DSCP)" | |||
| registry (https://www.iana.org/assignments/dscp-registry/) ("DSCP | registry (https://www.iana.org/assignments/dscp-registry/) ("DSCP | |||
| Pool 3 Codepoints", Codepoint Space xxxx01, Standards Action | Pool 3 Codepoints", Codepoint Space xxxx01, Standards Action | |||
| ([RFC8126]) for Non-Queue-Building behavior. | ([RFC8126]) for NQB behavior. | |||
| IANA has updated this registry as follows: | IANA has updated this registry as follows: | |||
| Name: NQB | Name: NQB | |||
| Value (Binary): 101101 | Value (Binary): 101101 | |||
| Value (Decimal): 45 | Value (Decimal): 45 | |||
| Reference: RFC 9956 | Reference: RFC 9956 | |||
| 9. Security Considerations | 9. Security Considerations | |||
| The security considerations for the NQB PHB relate to the potential | The security considerations for the NQB PHB relate to the potential | |||
| to impact the capacity available or delay experienced by other flows | to impact the capacity available or delay experienced by other flows | |||
| that share a bottleneck on the path with traffic that is marked with | that share a bottleneck on the path with traffic that is marked with | |||
| the recommended NQB DSCP. | the recommended NQB DSCP. | |||
| Full support for the NQB PHB in bottleneck links limits the | Full support for the NQB PHB in bottleneck links limits the | |||
| incentives for a Queue-Building application to mis-mark its packets | incentives for a QB application to mis-mark its packets as NQB, | |||
| as NQB, particularly for implementations that support traffic | particularly for implementations that support traffic protection. If | |||
| protection. If a Queue-Building microflow were to mis-mark its | a QB microflow were to mis-mark its packets as NQB, it would be | |||
| packets as NQB, it would be unlikely to receive a benefit by doing | unlikely to receive a benefit by doing so, and it would usually | |||
| so, and it would usually experience a degradation, in contrast to | experience a degradation, in contrast to mis-marking its packets for | |||
| mis-marking its packets for a higher-priority PHB, e.g., the EF PHB | a higher-priority PHB, e.g., the EF PHB [RFC3246]. The nature of the | |||
| [RFC3246]. The nature of the degradation would depend on the | degradation would depend on the specifics of the PHB implementation, | |||
| specifics of the PHB implementation, including response to NQB buffer | including response to NQB buffer overflow (and on the presence or | |||
| overflow (and on the presence or absence of a traffic protection | absence of a traffic protection function) but could include excessive | |||
| function) but could include excessive packet loss, excessive delay | packet loss, excessive delay variation, and/or excessive out-of-order | |||
| variation, and/or excessive out-of-order delivery. If a Non-Queue- | delivery. If an NQB microflow were to fail to mark its packets as | |||
| Building microflow were to fail to mark its packets as NQB, it could | NQB, it could suffer the delay and loss typical of sharing a queue | |||
| suffer the delay and loss typical of sharing a queue with capacity- | with capacity-seeking traffic. | |||
| seeking traffic. | ||||
| To preserve low-delay performance for NQB traffic, networks that | To preserve low-delay performance for NQB traffic, networks that | |||
| support the NQB PHB will need to ensure that mechanisms are in place | support the NQB PHB will need to ensure that mechanisms are in place | |||
| to prevent malicious traffic marked with the NQB DSCP from causing | to prevent malicious traffic marked with the NQB DSCP from causing | |||
| excessive queue delay. Section 5.2 recommends the implementation of | excessive queue delay. Section 5.2 recommends the implementation of | |||
| a traffic protection mechanism to achieve this goal. The | a traffic protection mechanism to achieve this goal. The | |||
| recommendations on traffic protection mechanisms in this document | recommendations on traffic protection mechanisms in this document | |||
| presume that some type of "flow" state be maintained in order to | presume that some type of "flow" state be maintained in order to | |||
| differentiate between microflows that are causing queuing delay and | differentiate between microflows that are causing queuing delay and | |||
| those that aren't. Since this flow state is likely finite, this | those that aren't. Since this flow state is likely finite, this | |||
| skipping to change at line 1393 ¶ | skipping to change at line 1394 ¶ | |||
| shallow buffer) as intended motivates limiting the effects of shallow | shallow buffer) as intended motivates limiting the effects of shallow | |||
| buffer overrun via per-user provisioning limits that prevent queue | buffer overrun via per-user provisioning limits that prevent queue | |||
| overrun effects from affecting other users (see Section 5.1). | overrun effects from affecting other users (see Section 5.1). | |||
| Notwithstanding the above, the choice of DSCP for NQB does allow | Notwithstanding the above, the choice of DSCP for NQB does allow | |||
| existing Wi-Fi networks to readily (and by default) support some of | existing Wi-Fi networks to readily (and by default) support some of | |||
| the PHB requirements, but without a traffic protection function, and | the PHB requirements, but without a traffic protection function, and | |||
| (when left in the default state) by giving NQB traffic higher | (when left in the default state) by giving NQB traffic higher | |||
| priority than QB traffic. This is not considered to be a compliant | priority than QB traffic. This is not considered to be a compliant | |||
| implementation of the PHB. These existing Wi-Fi networks currently | implementation of the PHB. These existing Wi-Fi networks currently | |||
| provide priority to half of the DSCP space, whether or not 45 | provide priority to half of the DSCP space, whether or not the DSCP | |||
| (decimal) is assigned to the NQB DSCP. While the NQB DSCP value | value 45 (decimal) is assigned to the NQB DSCP. While the DSCP value | |||
| could also be abused to gain priority on such links, the potential | 45 (decimal) could also be abused to gain priority on such links, the | |||
| presence of traffic protection functions in other hops along the path | potential presence of traffic protection functions in other hops | |||
| (which likely act on the NQB DSCP value alone) would make it less | along the path (which likely act on the DSCP value 45 (decimal) | |||
| attractive for such abuse than any of the other 31 DSCP values that | alone) would make it less attractive for such abuse than any of the | |||
| are given priority. | other 31 DSCP values that are given priority. | |||
| This document discusses the potential use of the NQB DSCP and NQB PHB | This document discusses the potential use of the NQB DSCP and NQB PHB | |||
| in network technologies that are standardized in other SDOs. Any | in network technologies that are standardized in other SDOs. Any | |||
| security considerations that relate to deployment and operation of | security considerations that relate to deployment and operation of | |||
| NQB solely in specific network technologies are not discussed here. | NQB solely in specific network technologies are not discussed here. | |||
| NQB uses the Diffserv field. The design of Diffserv does not include | NQB uses the DS field. The design of Diffserv does not include | |||
| integrity protection for the DSCP; thus, it is possible for the DSCP | integrity protection for the DSCP; thus, it is possible for the DSCP | |||
| to be changed by an on-path attacker. The NQB PHB and associated | to be changed by an on-path attacker. The NQB PHB and associated | |||
| DSCP don't change this. While re-marking DSCPs is permitted for | DSCP don't change this. While re-marking DSCPs is permitted for | |||
| various reasons (some are discussed in this document, others can be | various reasons (some are discussed in this document, others can be | |||
| found in [RFC2474] and [RFC2475]), if done maliciously, this might | found in [RFC2474] and [RFC2475]), if done maliciously, this might | |||
| negatively affect the QoS of the tampered microflow. Nonetheless, an | negatively affect the QoS of the tampered microflow. Nonetheless, an | |||
| on-path attacker can also alter other mutable fields in the IP header | on-path attacker can also alter other mutable fields in the IP header | |||
| (e.g., the TTL), which can wreak much more havoc than just altering | (e.g., the TTL), which can wreak much more havoc than just altering | |||
| QoS treatment. | QoS treatment. | |||
| skipping to change at line 1485 ¶ | skipping to change at line 1486 ¶ | |||
| the Internet", Communications of the ACM, vol. 55, no. 1, | the Internet", Communications of the ACM, vol. 55, no. 1, | |||
| pp. 57-65, DOI 10.1145/2063176.2063196, January 2012, | pp. 57-65, DOI 10.1145/2063176.2063196, January 2012, | |||
| <https://doi.org/10.1145/2063176.2063196>. | <https://doi.org/10.1145/2063176.2063196>. | |||
| [IEEE802-11] | [IEEE802-11] | |||
| IEEE, "IEEE Standard for Information Technology -- | IEEE, "IEEE Standard for Information Technology -- | |||
| Telecommunications and Information Exchange between | Telecommunications and Information Exchange between | |||
| Systems - Local and Metropolitan Area Networks -- Specific | Systems - Local and Metropolitan Area Networks -- Specific | |||
| Requirements - Part 11: Wireless LAN Medium Access Control | Requirements - Part 11: Wireless LAN Medium Access Control | |||
| (MAC) and Physical Layer (PHY) Specifications", IEEE | (MAC) and Physical Layer (PHY) Specifications", IEEE | |||
| Std 802.11-2020, DOI 10.1109/IEEESTD.2021.9363693, | Std 802.11-2024, DOI 10.1109/IEEESTD.2025.10979691, April | |||
| February 2021, | 2025, <https://ieeexplore.ieee.org/document/10979691>. | |||
| <https://ieeexplore.ieee.org/document/9363693>. | ||||
| [LOW_LATENCY_DOCSIS] | [LOW_LATENCY_DOCSIS] | |||
| CableLabs, "Low Latency DOCSIS: Technology Overview", | CableLabs, "Low Latency DOCSIS: Technology Overview", | |||
| February 2019, <https://cablela.bs/low-latency-docsis- | February 2019, <https://cablela.bs/low-latency-docsis- | |||
| technology-overview-february-2019>. | technology-overview-february-2019>. | |||
| [QOS_TRAFFIC_TYPE] | [QOS_TRAFFIC_TYPE] | |||
| Microsoft, Corporation, "QOS_TRAFFIC_TYPE enumeration | Microsoft, Corporation, "QOS_TRAFFIC_TYPE enumeration | |||
| (qos2.h)", January 2022, <https://learn.microsoft.com/en- | (qos2.h)", January 2022, <https://learn.microsoft.com/en- | |||
| us/windows/win32/api/qos2/ne-qos2-qos_traffic_type>. | us/windows/win32/api/qos2/ne-qos2-qos_traffic_type>. | |||
| skipping to change at line 1634 ¶ | skipping to change at line 1634 ¶ | |||
| "CUBIC for Fast and Long-Distance Networks", RFC 9438, | "CUBIC for Fast and Long-Distance Networks", RFC 9438, | |||
| DOI 10.17487/RFC9438, August 2023, | DOI 10.17487/RFC9438, August 2023, | |||
| <https://www.rfc-editor.org/info/rfc9438>. | <https://www.rfc-editor.org/info/rfc9438>. | |||
| [RFC9957] Briscoe, B., Ed. and G. White, "The DOCSIS(r) Queue | [RFC9957] Briscoe, B., Ed. and G. White, "The DOCSIS(r) Queue | |||
| Protection Algorithm to Preserve Low Latency", RFC 9957, | Protection Algorithm to Preserve Low Latency", RFC 9957, | |||
| DOI 10.17487/RFC9957, April 2026, | DOI 10.17487/RFC9957, April 2026, | |||
| <https://www.rfc-editor.org/info/rfc9957>. | <https://www.rfc-editor.org/info/rfc9957>. | |||
| [SA-5G] 3GPP, "System Architecture for the 5G System (5GS)", | [SA-5G] 3GPP, "System Architecture for the 5G System (5GS)", | |||
| Version 18.6.0, Release 18, 3GPP TS 23.501, June 2024, | Version 20.1.0, Release 20, 3GPP TS 23.501, March 2026, | |||
| <https://portal.3gpp.org/desktopmodules/Specifications/ | <https://portal.3gpp.org/desktopmodules/Specifications/ | |||
| SpecificationDetails.aspx?specificationId=3144>. | SpecificationDetails.aspx?specificationId=3144>. | |||
| [TR-369] Broadband Forum, "The User Services Platform", Issue: 1 | [TR-369] Broadband Forum, "The User Services Platform", Issue: 1 | |||
| Amendment 4 Corrigendum 2, July 2025, | Amendment 4 Corrigendum 2, July 2025, | |||
| <https://usp.technology/specification/index.html>. | <https://usp.technology/specification/index.html>. | |||
| [WikipediaBufferbloat] | [WikipediaBufferbloat] | |||
| Wikipedia, "Bufferbloat", May 2025, | Wikipedia, "Bufferbloat", May 2025, | |||
| <https://en.wikipedia.org/w/ | <https://en.wikipedia.org/w/ | |||
| index.php?title=Bufferbloat&oldid=1292250296>. | index.php?title=Bufferbloat&oldid=1292250296>. | |||
| Appendix A. DSCP Re-marking Policies | Appendix A. DSCP Re-marking Policies | |||
| Some network operators typically bleach (zero out) the Diffserv field | Some network operators typically bleach (zero out) the DSCP field on | |||
| on ingress into their network (see [RFC9435], [Custura], and [Barik]) | ingress into their network (see [RFC9435], [Custura], and [Barik]) | |||
| and, in some cases, apply their own DSCP for internal use. Bleaching | and, in some cases, apply their own DSCP for internal use. Bleaching | |||
| the NQB DSCP is not expected to cause harm to Default traffic, but it | the DSCP value 45 (decimal) is not expected to cause harm to Default | |||
| will severely limit the ability to provide NQB treatment. Reports on | traffic, but it will severely limit the ability to provide NQB | |||
| existing deployments of DSCP manipulation (see [Custura] and [Barik]) | treatment. Reports on existing deployments of DSCP manipulation (see | |||
| categorize the re-marking behaviors into the following policies: | [Custura] and [Barik]) categorize the re-marking behaviors into the | |||
| bleach all traffic (set DSCP to zero); set the top three bits (the | following policies: bleach all traffic (set DSCP to zero); set the | |||
| former Precedence bits) on all traffic to 0b000, 0b001, or 0b010; set | top three bits (the former Precedence bits) on all traffic to 0b000, | |||
| the low three bits on all traffic to 0b000; or re-mark all traffic to | 0b001, or 0b010; set the low three bits on all traffic to 0b000; or | |||
| a particular (non-zero) DSCP value. | re-mark all traffic to a particular (non-zero) DSCP value. | |||
| Regarding the DSCP value 45 (decimal), there were no observations of | Regarding the DSCP value 45 (decimal), there were no observations of | |||
| DSCP manipulation reported in which traffic was marked 45 (decimal) | DSCP manipulation reported in which traffic was marked with the DSCP | |||
| by any of these policies. Thus, it appears that these re-marking | value 45 (decimal) by any of these policies. Thus, it appears that | |||
| policies would be unlikely to result in QB traffic being marked as | these re-marking policies would be unlikely to result in QB traffic | |||
| NQB (45). In terms of the fate of traffic marked with the NQB DSCP | being marked as NQB. In terms of the fate of traffic marked with the | |||
| that is subjected to one of these policies, it would be | DSCP value 45 (decimal) that is subjected to one of these policies, | |||
| indistinguishable from some subset (possibly all) of other traffic. | it would be indistinguishable from some subset (possibly all) of | |||
| In the policies where all traffic is re-marked using the same (zero | other traffic. In the policies where all traffic is re-marked using | |||
| or non-zero) DSCP, the ability for a subsequent network hop to | the same (zero or non-zero) DSCP value, the ability for a subsequent | |||
| differentiate NQB traffic via DSCP would clearly be lost entirely. | network hop to differentiate NQB traffic via DSCP would clearly be | |||
| lost entirely. | ||||
| In the policies where the top three bits are overwritten (see | In the policies where the top three bits are overwritten (see | |||
| Section 4.2 of [RFC9435]), the NQB DSCP (45) would receive the same | Section 4.2 of [RFC9435]), the DSCP value 45 (decimal) would receive | |||
| marking as would the currently unassigned Pool 3 DSCPs (5, 13, 21, | the same marking as would the currently unassigned Pool 3 DSCP values | |||
| 29, 37, 53, and 61), with all of these DSCPs getting re-marked to | (5, 13, 21, 29, 37, 53, and 61), with all of these DSCP values | |||
| DSCP = 5, 13, or 21 (depending on the overwrite value used). Since | getting re-marked to DSCP value = 5, 13, or 21 (depending on the | |||
| none of the DSCPs in the preceding lists are currently assigned by | overwrite value used). Since none of the DSCP values in the | |||
| IANA, and they all are reserved for Standards Action, it is believed | preceding lists are currently assigned by IANA, and they all are | |||
| that they are not widely used currently; however, this could vary | reserved for Standards Action, it is believed that they are not | |||
| based on local-usage and could change in the future. If networks in | widely used currently; however, this could vary based on local-usage | |||
| which this sort of re-marking occurs or networks downstream classify | and could change in the future. If networks in which this sort of | |||
| the resulting DSCP (i.e., 5, 13, or 21) to the NQB PHB or re-mark | re-marking occurs or networks downstream classify the resulting DSCP | |||
| such traffic as 45 (decimal), they risk giving NQB treatment to other | (i.e., 5, 13, or 21) to the NQB PHB or re-mark such traffic with DSCP | |||
| traffic that was not originally marked as NQB. In addition, as | value 45 (decimal), they risk giving NQB treatment to other traffic | |||
| described in Section 6 of [RFC9435] future assignments of these | that was not originally marked as NQB. In addition, as described in | |||
| 0bxxx101 DSCPs would need to be made with consideration of the | Section 6 of [RFC9435] future assignments of these 0bxxx101 DSCPs | |||
| potential that they all are treated as NQB in some networks. | would need to be made with consideration of the potential that they | |||
| all are treated as NQB in some networks. | ||||
| For the policy in which the low three bits are set to 0b000, the NQB | For the policy in which the low three bits are set to 0b000, the DSCP | |||
| DSCP value 45 (decimal) would be re-marked to CS5 and would be | value 45 (decimal) would be re-marked to CS5 and would be | |||
| indistinguishable from CS5, VA, and EF (and the currently unassigned | indistinguishable from CS5, VA, and EF (and the currently unassigned | |||
| DSCPs 41, 42, and 43). Traffic marked using the existing | DSCP values 41, 42, and 43). Traffic marked using the existing | |||
| standardized DSCPs in this list are likely to share the same general | standardized DSCPs in this list are likely to share the same general | |||
| properties as NQB traffic (non-capacity-seeking and very low data | properties as NQB traffic (non-capacity-seeking and very low data | |||
| rate, relatively low data rate, and consistent data rate). | rate, relatively low data rate, and consistent data rate). | |||
| Similarly, any future recommended usage for DSCPs 41, 42, 43 would | Similarly, any future recommended usage for DSCP values 41, 42, 43 | |||
| likely be somewhat compatible with NQB treatment, assuming that IP | would likely be somewhat compatible with NQB treatment, assuming that | |||
| Precedence compatibility (see Section 1.5.4 of [RFC4594]) is | IP Precedence compatibility (see Section 1.5.4 of [RFC4594]) is | |||
| maintained in the future. Here there might be an opportunity for a | maintained in the future. Here there might be an opportunity for a | |||
| node to provide the NQB PHB or the CS5 PHB to CS5-marked traffic and | node to provide the NQB PHB or the CS5 PHB to CS5-marked traffic and | |||
| retain some of the benefits of NQB marking. This could be another | retain some of the benefits of NQB marking. This could be another | |||
| motivation to classify CS5-marked traffic into the NQB queue (as | motivation to classify CS5-marked traffic into the NQB queue (as | |||
| discussed in Section 6.3). | discussed in Section 6.3). | |||
| Appendix B. Comparison with Expedited Forwarding | Appendix B. Comparison with Expedited Forwarding | |||
| The Expedited Forwarding definition [RFC3246] provides the following | The EF definition [RFC3246] provides the following text to describe | |||
| text to describe the EF PHB forwarding behavior: | the EF PHB forwarding behavior: | |||
| | This specification defines a PHB in which EF packets are | | This specification defines a PHB in which EF packets are | |||
| | guaranteed to receive service at or above a configured rate | | guaranteed to receive service at or above a configured rate | |||
| and | and | |||
| | the rate at which EF traffic is served at a given output interface | | the rate at which EF traffic is served at a given output interface | |||
| | should be at least the configured rate R, over a suitably defined | | should be at least the configured rate R, over a suitably defined | |||
| | interval, independent of the offered load of non-EF traffic to | | interval, independent of the offered load of non-EF traffic to | |||
| | that interface. | | that interface. | |||
| skipping to change at line 1740 ¶ | skipping to change at line 1742 ¶ | |||
| capacity. If such a guaranteed minimum rate is configured for the | capacity. If such a guaranteed minimum rate is configured for the | |||
| Default PHB, it is recommended (Section 5) that NQB traffic share and | Default PHB, it is recommended (Section 5) that NQB traffic share and | |||
| be given equal access to that rate. In such cases, the NQB PHB could | be given equal access to that rate. In such cases, the NQB PHB could | |||
| effectively receive a rate guarantee of (for example) 50% of the rate | effectively receive a rate guarantee of (for example) 50% of the rate | |||
| guaranteed to the combined NQB/Default PHBs; therefore, it | guaranteed to the combined NQB/Default PHBs; therefore, it | |||
| technically complies with the PHB forwarding behavior defined for EF. | technically complies with the PHB forwarding behavior defined for EF. | |||
| However, EF is intended to be a managed service and requires that | However, EF is intended to be a managed service and requires that | |||
| traffic be policed such that the arriving rate of traffic into the EF | traffic be policed such that the arriving rate of traffic into the EF | |||
| PHB doesn't exceed the guaranteed forwarding rate configured for the | PHB doesn't exceed the guaranteed forwarding rate configured for the | |||
| PHB. This ensures that low delay and low delay variation are | PHB. This ensures that low delay and low-delay variation are | |||
| provided. NQB is intended as a best effort service; hence, the | provided. NQB is intended as a best effort service; hence, the | |||
| aggregate of traffic arriving to the NQB PHB queue could exceed the | aggregate of traffic arriving to the NQB PHB queue could exceed the | |||
| forwarding rate available to the PHB. Section 5.2 discusses the | forwarding rate available to the PHB. Section 5.2 discusses the | |||
| recommended mechanism for handling excess traffic in NQB. While EF | recommended mechanism for handling excess traffic in NQB. While EF | |||
| relies on rate policing and dropping of excess traffic at the domain | relies on rate policing and dropping of excess traffic at the domain | |||
| border, this is only one option for NQB. NQB primarily recommends | border, this is only one option for NQB. NQB primarily recommends | |||
| traffic protection located at each potential bottleneck, where actual | traffic protection located at each potential bottleneck, where actual | |||
| queuing can be detected and where excess traffic can be reclassified | queuing can be detected and where excess traffic can be reclassified | |||
| into the Default PHB rather than dropping it. Local traffic | into the Default PHB rather than dropping it. Local traffic | |||
| protection is more feasible for NQB, given the focus is on access | protection is more feasible for NQB, given the focus is on access | |||
| networks, where one node is typically designed to be the known | networks, where one node is typically designed to be the known | |||
| bottleneck where traffic control functions all reside. In contrast, | bottleneck where traffic control functions all reside. In contrast, | |||
| EF is presumed to follow the Diffserv architecture [RFC2475] for core | EF is presumed to follow the Diffserv architecture [RFC2475] for core | |||
| networks, where traffic conditioning is delegated to border nodes in | networks, where traffic conditioning is delegated to border nodes in | |||
| order to simplify high capacity interior nodes. Further, NQB | order to simplify high-capacity interior nodes. Further, NQB | |||
| recommends a microflow-based mechanism to limit the performance | recommends a microflow-based mechanism to limit the performance | |||
| impact of excess traffic to those microflows causing potential | impact of excess traffic to those microflows causing potential | |||
| congestion of the NQB queue, whereas EF ignores microflow properties. | congestion of the NQB queue, whereas EF ignores microflow properties. | |||
| Note that, under congestion, low loss for NQB-conformant flows is | Note that, under congestion, low loss for NQB-conformant flows is | |||
| only ensured if such a mechanism is operational. Note also that this | only ensured if such a mechanism is operational. Note also that this | |||
| mechanism for NQB operates at the available forwarding rate for the | mechanism for NQB operates at the available forwarding rate for the | |||
| PHB (which could vary based on other traffic load) as opposed to a | PHB (which could vary based on other traffic load) as opposed to a | |||
| configured guaranteed rate, as in EF. | configured guaranteed rate, as in EF. | |||
| The lack of a requirement of a guaranteed minimum rate, and the lack | The lack of a requirement of a guaranteed minimum rate, and the lack | |||
| of a requirement to police incoming traffic to such a rate, makes the | of a requirement to police incoming traffic to such a rate, makes the | |||
| NQB PHB suitable for implementation in networks where link capacity | NQB PHB suitable for implementation in networks where link capacity | |||
| is not or cannot be guaranteed. | is not or cannot be guaranteed. | |||
| There are additional distinctions between EF and NQB arising from the | There are additional distinctions between EF and NQB arising from the | |||
| intended usage as described in [RFC4594] and the actual usage in | intended usage as described in [RFC4594] and the actual usage in | |||
| practice in the Internet. In Section 1.5.3 of [RFC4594], EF is | practice in the Internet. In Section 1.5.3 of [RFC4594], EF is | |||
| described as generally being used to carry voice or data that | described as generally being used to carry voice or data that | |||
| requires "wire-like" behavior through the network. The NQB PHB | requires "wire-like" behavior through the network. The NQB PHB | |||
| similarly is useful to carry application traffic requiring wire-like | similarly is useful to carry application traffic requiring wire-like | |||
| performance, characterized by low delay and low delay variation, but | performance, characterized by low delay and low-delay variation, but | |||
| places a pre-condition that each microflow be relatively low data | places a pre-condition that each microflow be relatively low data | |||
| rate and sent in a smooth (non-bursty) manner. In actual practice, | rate and sent in a smooth (non-bursty) manner. In actual practice, | |||
| EF traffic is oftentimes prioritized over Default traffic. This | EF traffic is oftentimes prioritized over Default traffic. This | |||
| contrasts with NQB traffic, which is to be treated with the same | contrasts with NQB traffic, which is to be treated with the same | |||
| forwarding precedence as Default (and sometimes aggregated with | forwarding precedence as Default (and sometimes aggregated with | |||
| Default). | Default). | |||
| Appendix C. Impact on Higher Layer Protocols | Appendix C. Impact on Higher Layer Protocols | |||
| The NQB PHB itself has no impact on higher layer protocols because it | The NQB PHB itself has no impact on higher layer protocols because it | |||
| only isolates NQB traffic from non-NQB. However, traffic protection | only isolates NQB traffic from QB traffic. However, traffic | |||
| of the PHB can have unintended side effects on higher layer | protection of the PHB can have unintended side effects on higher | |||
| protocols. Traffic protection introduces the possibility that | layer protocols. Traffic protection introduces the possibility that | |||
| microflows classified into the NQB queue could experience out-of- | microflows classified into the NQB queue could experience out-of- | |||
| order delivery or packet loss if their behavior is not consistent | order delivery or packet loss if their behavior is not consistent | |||
| with the NQB sender requirements. Out-of-order delivery could be | with the NQB sender requirements. Out-of-order delivery could be | |||
| particularly likely if the traffic protection algorithm makes | particularly likely if the traffic protection algorithm makes | |||
| decisions on a packet-by-packet basis. In this scenario, a microflow | decisions on a packet-by-packet basis. In this scenario, a microflow | |||
| that is (mis-)marked as NQB and that causes a queue to form in this | that is (mis-)marked as NQB and that causes a queue to form in this | |||
| bottleneck link could see some of its packets forwarded by the NQB | bottleneck link could see some of its packets forwarded by the NQB | |||
| queue and some of them either discarded or redirected to the QB | queue and some of them either discarded or redirected to the QB | |||
| queue. In the case of redirection, depending on the queuing delay | queue. In the case of redirection, depending on the queuing delay | |||
| and scheduling within the network element, this could result in | and scheduling within the network element, this could result in | |||
| packets being delivered out of order. As a result, the use of the | packets being delivered out of order. As a result, the use of the | |||
| NQB DSCP by a higher layer protocol carries some risk that an | NQB DSCP by a higher layer protocol carries some risk that an | |||
| increased amount of out-of-order delivery or packet loss will be | increased amount of out-of-order delivery or packet loss will be | |||
| experienced. This characteristic provides one disincentive for | experienced. This characteristic provides one disincentive for | |||
| incorrectly setting the NQB DSCP on traffic that doesn't comply with | incorrectly setting the NQB DSCP on traffic that doesn't comply with | |||
| the NQB sender requirements. | the NQB sender requirements. | |||
| Appendix D. Alternative Diffserv Code Points | Appendix D. Alternative Diffserv Codepoints | |||
| In networks where the DSCP 45 (decimal) is already in use for another | In networks where the DSCP value 45 (decimal) is already in use for | |||
| (e.g., a local-use) purpose or where specialized PHBs are available | another (e.g., a local-use) purpose or where specialized PHBs are | |||
| that can meet specific application requirements (e.g., a guaranteed- | available that can meet specific application requirements (e.g., a | |||
| delay path for voice traffic), use of another DSCP value could be | guaranteed-delay path for voice traffic), use of another DSCP value | |||
| preferred. | could be preferred. | |||
| In end systems where the choice of using DSCP 45 (decimal) is not | In end systems where the choice of using DSCP value 45 (decimal) is | |||
| available to the application, the CS5 DSCP (40 decimal) could be used | not available to the application, the CS5 DSCP (40 decimal) could be | |||
| as a fallback. See Section 6.3 for rationale as to why this choice | used as a fallback. See Section 6.3 for rationale as to why this | |||
| could be fruitful. | choice could be fruitful. | |||
| Acknowledgements | Acknowledgements | |||
| Thanks to Gorry Fairhurst, Diego Lopez, Stuart Cheshire, Brian | Thanks to Gorry Fairhurst, Diego Lopez, Stuart Cheshire, Brian | |||
| Carpenter, Bob Briscoe, Greg Skinner, Toke Hoeiland-Joergensen, Luca | Carpenter, Bob Briscoe, Greg Skinner, Toke Hoeiland-Joergensen, Luca | |||
| Muscariello, David Black, Jerome Henry, Steven Blake, Jonathan | Muscariello, David Black, Jerome Henry, Steven Blake, Jonathan | |||
| Morton, Roland Bless, Kevin Smith, Martin Dolly, and Kyle Rose for | Morton, Roland Bless, Kevin Smith, Martin Dolly, and Kyle Rose for | |||
| their review comments. Thanks also to Gorry Fairhurst and Ana | their review comments. Thanks also to Gorry Fairhurst and Ana | |||
| Custura for their input on selection of appropriate DSCPs. Thanks to | Custura for their input on selection of appropriate DSCPs. Thanks to | |||
| the following for IESG reviews and comments: Mohamed Boucadair, Ketan | the following for IESG reviews and comments: Mohamed Boucadair, Ketan | |||
| End of changes. 91 change blocks. | ||||
| 390 lines changed or deleted | 392 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||