| rfc9956v1.txt | rfc9956.txt | |||
|---|---|---|---|---|
| skipping to change at line 19 ¶ | skipping to change at line 19 ¶ | |||
| 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 separate queue-enabling traffic microflows that are smooth | |||
| low-data-rate, application-limited traffic microflows, which would | (i.e., non-bursty), have a low data rate, and are application limited | |||
| ordinarily share a queue with bursty and capacity-seeking traffic, to | to avoid the delay, delay variation, and loss that would ordinarily | |||
| avoid the delay, delay variation and loss caused by such traffic. | be caused by sharing a queue with bursty, capacity-seeking traffic. | |||
| This PHB is implemented without prioritization and can be implemented | This PHB is implemented without prioritization and can be implemented | |||
| without rate policing, making it suitable for environments where the | without rate policing, making it suitable for environments where the | |||
| use of these features is restricted. The NQB PHB has been developed | use of 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 DS 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 DS 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 | |||
| 6.5. The NQB DSCP and Tunnels | 6.5. The NQB DSCP and Tunnels | |||
| 6.6. Guidance for Lower-Rate Links | 6.6. Guidance for Lower-Rate Links | |||
| 7. Mapping NQB to Standards of Other SDOs | 7. Mapping NQB to Standards of Other SDOs | |||
| 7.1. DOCSIS Access Networks | 7.1. DOCSIS Access Networks | |||
| 7.2. Mobile Networks | 7.2. Mobile Networks | |||
| 7.3. Wi-Fi Networks | 7.3. Wi-Fi Networks | |||
| 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 DS Codepoints | |||
| Acknowledgements | Acknowledgements | |||
| Authors' Addresses | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| This document defines a Differentiated Services per-hop behavior | This document defines a DS PHB called the "Non-Queue-Building Per-Hop | |||
| (PHB) called the "Non-Queue-Building Per-Hop Behavior" (or "NQB | Behavior" (or "NQB PHB"). The NQB PHB isolates traffic microflows | |||
| PHB"), which isolates traffic microflows (application-to-application | (application-to-application flows, see Section 1.2 of [RFC2475]) that | |||
| flows, see Section 1.2 of [RFC2475]) that are relatively low data | have relatively low data rates and that do not, themselves, | |||
| rate and that do not themselves materially contribute to queuing | materially contribute to queuing delay and loss. This isolation | |||
| delay and loss, allowing them to avoid the queuing delay and losses | allows these traffic microflows to avoid the queuing delay and losses | |||
| caused by other traffic. Non-Queue-Building microflows such as | 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 DS Architecture | |||
| The IETF has defined the Differentiated Services architecture | The IETF has defined the DS architecture [RFC2475] with the intention | |||
| [RFC2475] with the intention that it allows traffic to be marked in a | that it allows traffic to be marked in a manner that conveys the | |||
| manner that conveys the performance requirements of that traffic | performance requirements of that traffic either qualitatively or in a | |||
| either qualitatively or in a relative sense (e.g., priority). The | relative sense (e.g., priority). The architecture defines the use of | |||
| architecture defines the use of the Diffserv field [RFC2474] for this | the DS field [RFC2474] for this purpose, and numerous RFCs have been | |||
| purpose, and numerous RFCs have been written that describe | written that describe recommended interpretations of the values (DS | |||
| recommended interpretations of the values (Diffserv Code Points | Codepoints [RFC2474]) of the field, and standardized treatments | |||
| [RFC2474]) of the field, and standardized treatments (traffic | (traffic conditioning and per-hop-behaviors [RFC2475]) that can be | |||
| conditioning and per-hop-behaviors [RFC2475]) that can be implemented | implemented to satisfy the performance requirements of traffic so | |||
| to satisfy the performance requirements of traffic so marked. | 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 | |||
| sharing an interest in meeting them. In many cases, this is made | sharing an interest in meeting them. In many cases, this is made | |||
| more difficult since the performance "requirements" are not strict | more difficult since the performance "requirements" are not strict | |||
| ones (e.g., applications will degrade in some manner as loss, delay, | ones (e.g., applications will degrade in some manner as loss, delay, | |||
| and/or delay-variation increase), so the importance of meeting them | and/or delay-variation increase), so the importance of meeting them | |||
| for any particular application in some cases involves a judgment as | for any particular application in some cases involves a judgment as | |||
| to the value of avoiding some amount of degradation in quality for | to the value of avoiding some amount of degradation in quality for | |||
| that application in exchange for an increase in the degradation of | that application in exchange for an increase in the degradation of | |||
| another application. | another application. | |||
| Further, in many cases, the implementation of Diffserv PHBs has | Further, in many cases, the implementation of DS PHBs has | |||
| historically involved prioritization of service classes with respect | historically involved prioritization of service classes with respect | |||
| to one another, which sets up the zero-sum game alluded to in the | to one another, which sets up the zero-sum game alluded to in the | |||
| previous paragraph and which results in the need to limit access to | previous paragraph and which results in the need to limit access to | |||
| higher priority classes via mechanisms such as access control, | higher priority classes via mechanisms such as access control, | |||
| admission control, traffic conditioning and rate policing, and/or to | admission control, traffic conditioning and rate policing, and/or to | |||
| meter and bill for carriage of such traffic. These mechanisms can be | meter and bill for carriage of such traffic. These mechanisms can be | |||
| difficult or impossible to implement in the Internet. | difficult or impossible to implement in the Internet. | |||
| In contrast, the NQB PHB has been designed with the goal that it | In contrast, the NQB PHB has been designed with the goal that it | |||
| avoids many of these issues; thus, it could conceivably be deployed | avoids many of these issues; thus, it could conceivably be deployed | |||
| skipping to change at line 285 ¶ | skipping to change at line 286 ¶ | |||
| reserved capacity other than any minimum capacity that it shares with | reserved capacity other than any minimum capacity that it shares with | |||
| 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 DS 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 DS series, the closest similarity is to the Expedited | |||
| Expedited Forwarding (EF) PHB [RFC3246], which also intends to enable | Forwarding (EF) PHB [RFC3246], which also intends to enable services | |||
| services that provide low loss, low delay, and low delay variation. | that provide low loss, low delay, and low-delay variation. Unlike | |||
| Unlike EF, NQB has no requirement for a guaranteed minimum rate, nor | EF, NQB has no requirement for a guaranteed minimum rate, nor does | |||
| does have a requirement to police incoming traffic to such a rate: | have a requirement to police incoming traffic to such a rate: NQB is | |||
| NQB is expected to be given the same forwarding preference as Default | 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 DS Service Classes, NQB traffic is | |||
| is intended to be treated as a part of the Default treatment. | intended to be handled as a part of the Default treatment. Traffic | |||
| Traffic assigned to this class does not receive better forwarding | assigned to this class does not receive better forwarding treatment | |||
| treatment (e.g., prioritization) with respect to other classes, AFxx, | (e.g., prioritization) with respect to other classes, AFxx, EF, etc. | |||
| EF, etc. Of course, traffic marked as NQB could (like other Default | Of course, traffic marked as NQB could (like other Default traffic) | |||
| traffic) receive better forwarding treatment with respect to Lower- | receive better forwarding treatment with respect to Lower-Effort (LE) | |||
| Effort (LE) [RFC8622] (e.g., the NQB queue could be emptied in a | [RFC8622] (e.g., the NQB queue could be emptied in a priority | |||
| priority sequence before the LE queue). | 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 | |||
| independently of the Low Latency, Low Loss, and Scalable throughput | independently of the Low Latency, Low Loss, and Scalable throughput | |||
| (L4S) architecture [RFC9330]. Nonetheless, traffic marked with the | (L4S) architecture [RFC9330]. Nonetheless, traffic marked with the | |||
| 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 45 (decimal) to mark microflows as NQB. The choice of | |||
| mark microflows as NQB. The choice of the DSCP value 45 (decimal) is | the DSCP value 45 (decimal) is motivated, in part, by the desire to | |||
| motivated, in part, by the desire to achieve separate queuing in | achieve separate queuing in existing Wi-Fi networks (see Section 7.3) | |||
| existing Wi-Fi networks (see Section 7.3) and by the desire to make | and by the desire to make implementation of the PHB simpler in | |||
| implementation of the PHB simpler in network equipment that has the | network equipment that has the ability to classify traffic based on | |||
| ability to classify traffic based on ranges of DSCP values (see | ranges of DSCP values (see Section 6.3 for further discussion). | |||
| Section 6.3 for further 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 445 ¶ | |||
| 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 for microflows consistent with the NQB sender | |||
| requirements in Section 4, the NQB queue would likely be a better | requirements in Section 4, the NQB queue would likely be a better | |||
| choice than the QB queue; and for microflows inconsistent with those | choice than the QB queue; and for microflows inconsistent with those | |||
| skipping to change at line 476 ¶ | skipping to change at line 476 ¶ | |||
| 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 by classify packets | |||
| marked with the NQB DSCP 45 (decimal) into the queue for Non-Queue- | marked with the NQB DSCP 45 (decimal) into the queue for NQB traffic. | |||
| Building traffic. In accordance with the requirement in Section 3 of | In accordance with the requirement in Section 3 of [RFC2474], a node | |||
| [RFC2474], a node supporting the NQB PHB MUST support the ability to | supporting the NQB PHB MUST support the ability to configure the DSCP | |||
| configure the DSCP that is used to classify packets into the queue | that is used to classify packets into the queue for NQB traffic. A | |||
| for Non-Queue-Building traffic. A node supporting the NQB PHB MAY | node supporting the NQB PHB MAY support the ability to configure | |||
| support the ability to configure multiple DSCPs that are used to | multiple DSCPs that are used to classify packets into the queue for | |||
| classify packets into the queue for Non-Queue-Building traffic. | 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 643 ¶ | skipping to change at line 643 ¶ | |||
| service in the absence of a traffic protection function needs to be | service in the absence of a traffic protection function needs to be | |||
| 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 DS contexts. Traffic Conditioning | |||
| Conditioning is commonly performed at the edge of a Diffserv domain | is commonly performed at the edge of a DS domain (either ingress or | |||
| (either ingress or egress, depending on Traffic Conditioning | egress, depending on Traffic Conditioning Agreements (TCAs) in | |||
| Agreements (TCAs) in place). In contrast, traffic protection is | 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 | |||
| the remit of Diffserv specifications. However, it would not seem | the remit of DS specifications. However, it would not seem necessary | |||
| necessary to limit bursts lower than roughly 10% of the minimum base | to limit bursts lower than roughly 10% of the minimum base RTT | |||
| RTT expected in the typical deployment scenario (e.g., 250 µs burst | expected in the typical deployment scenario (e.g., 250 µs burst | |||
| duration for links within the public Internet). This observation | duration for links within the public Internet). This observation | |||
| aligns with a similar one in Section 5.5 of [RFC9331]. | aligns with a similar one in Section 5.5 of [RFC9331]. | |||
| 5.4. Treatment of the Explicit Congestion Notification Field | 5.4. Treatment of the Explicit Congestion Notification Field | |||
| NQB network functions MUST treat packets marked with the NQB DSCP | NQB network functions MUST treat packets marked with the NQB DSCP | |||
| uniformly, regardless of the value of the ECN field. Here, the term | uniformly, regardless of the value of the ECN field. Here, the term | |||
| "NQB network functions" refers to the traffic protection function | "NQB network functions" refers to the traffic protection function | |||
| (defined in Section 5.2) and any re-marking/traffic policing function | (defined in Section 5.2) and any re-marking/traffic policing function | |||
| designed to protect unmanaged networks (as described in | designed to protect unmanaged networks (as described in | |||
| skipping to change at line 807 ¶ | skipping to change at line 807 ¶ | |||
| 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 (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 DS 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 | |||
| result in traffic marked with the NQB DSCP being aggregated into the | result in traffic marked with the NQB DSCP being aggregated into the | |||
| Elastic Treatment Aggregate (for networks as described in [RFC5127]) | Elastic Treatment Aggregate (for networks as described in [RFC5127]) | |||
| or the Default / Elastic Treatment Aggregate (for networks as | or the Default / Elastic Treatment Aggregate (for networks as | |||
| described in [RFC8100]). | described in [RFC8100]). | |||
| 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 DS model provides flexibility for operators to control the way | |||
| to control the way they choose to aggregate traffic marked with a | 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 Section 4 of [RFC8100] is operational | |||
| [RFC8100] is operational between interconnected domains, the | between interconnected domains, the receiving domain may prefer a | |||
| receiving domain may prefer a different DSCP for NQB traffic that | different DSCP for NQB traffic that allows for a DSCP range-based | |||
| allows for a DSCP range-based classification for the Default / | classification for the Default / Elastic Treatment Aggregate. | |||
| Elastic Treatment Aggregate. Similar to the handling of DSCPs for | Similar to the handling of DSCPs for other PHBs (and as discussed in | |||
| other PHBs (and as discussed in [RFC2475]), networks can re-mark NQB | [RFC2475]), networks can re-mark NQB traffic to a DSCP value other | |||
| traffic to a DSCP value other than 45 (decimal) for internal usage. | than 45 (decimal) for internal usage. To ensure reliable NQB PHB | |||
| To ensure reliable NQB PHB treatment on the entire path, the | treatment on the entire path, the appropriate NQB DSCP would need to | |||
| appropriate NQB DSCP would need to be restored when forwarding to | be restored when forwarding to another network. | |||
| 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 DS is delivering traffic to another | |||
| another network domain (e.g., a network outside of their | network domain (e.g., a network outside of their administrative | |||
| administrative control) where there is an understanding that the | control) where there is an understanding that the downstream domain | |||
| downstream domain does not support Diffserv or there is no knowledge | does not support DS or there is no knowledge of the traffic | |||
| of the traffic management capabilities of the downstream domain, and | management capabilities of the downstream domain, and no agreement in | |||
| no agreement in place. In such cases, Section 4 of [RFC2475] | place. In such cases, Section 4 of [RFC2475] suggests that the | |||
| suggests that the upstream domain opportunistically re-mark traffic | upstream domain opportunistically re-mark traffic with a Class | |||
| with a Class Selector codepoint or DSCP 0 (Default) under the | Selector Codepoint or DSCP 0 (Default) under the assumption that | |||
| assumption that traffic so marked would be handled in a predictable | traffic so marked would be handled in a predictable way by the | |||
| way by the downstream domain. | 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 NQB DSCP value), the same | |||
| concerns apply. In particular, since the recommended NQB DSCP value | concerns apply. In particular, since the recommended NQB DSCP value | |||
| could be given high priority in some non-DS-compliant network | could be given high priority in some non-DS-compliant network | |||
| equipment (e.g., legacy Wi-Fi APs as described in Section 7.3.1), it | equipment (e.g., legacy Wi-Fi APs as described in Section 7.3.1), it | |||
| is RECOMMENDED that the operator of the upstream domain implement one | is RECOMMENDED that the operator of the upstream domain implement one | |||
| of the following safeguards before delivering traffic into a non-DS- | of the following safeguards before delivering traffic into a non-DS- | |||
| capable domain: | capable domain: | |||
| skipping to change at line 959 ¶ | skipping to change at line 953 ¶ | |||
| 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 985 ¶ | |||
| 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 1057 ¶ | |||
| 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 DS 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 NQB DSCP 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 NQB DSCP 45 (decimal) to that queue. If a | |||
| separate queue in UP 0 cannot be provided (due to hardware | 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 NQB DSCP 45 (decimal) | |||
| skipping to change at line 1165 ¶ | skipping to change at line 1160 ¶ | |||
| 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 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. | |||
| skipping to change at line 1220 ¶ | skipping to change at line 1215 ¶ | |||
| * 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 45 does create a potential for abuse by non-compliant | |||
| applications. However, opportunities exist in the network | applications. However, opportunities exist in the network | |||
| components upstream of the Wi-Fi Access Point to police the usage | components upstream of the Wi-Fi Access Point to police the usage | |||
| of the NQB DSCP and potentially re-mark traffic that is considered | of the NQB DSCP and potentially re-mark traffic that is considered | |||
| non-compliant, as is recommended in Section 6.4.1. Furthermore, | non-compliant, as is recommended in Section 6.4.1. Furthermore, | |||
| it is reasonable to expect that ISPs currently manage the DSCPs on | it is reasonable to expect that ISPs currently manage the DSCPs on | |||
| traffic destined to their customers' networks and will continue to | traffic destined to their customers' networks and will continue to | |||
| do so whether or not they support NQB. This includes the practice | do so whether or not they support NQB. This includes the practice | |||
| in residential broadband networks of re-marking the Diffserv field | in residential broadband networks of re-marking the DS field to | |||
| to zero on all traffic. Any change to these practices done to | zero on all traffic. Any change to these practices done to enable | |||
| enable the NQB DSCP to pass through could be done alongside the | the NQB DSCP to pass through could be done alongside the | |||
| implementation of the recommendations in Section 6.4.1. | 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. | |||
| skipping to change at line 1266 ¶ | skipping to change at line 1261 ¶ | |||
| 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 NQB DSCP 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: | |||
| skipping to change at line 1300 ¶ | skipping to change at line 1295 ¶ | |||
| | 45 (decimal) to UP 5 (which corresponds to the default mapping | | 45 (decimal) 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)| | |||
| skipping to change at line 1325 ¶ | skipping to change at line 1323 ¶ | |||
| | An exception to this is the NQB DSCP 45 (decimal), which encodes | | An exception to this is the NQB DSCP 45 (decimal), which encodes | |||
| | for best-effort service. | | 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 1406 ¶ | skipping to change at line 1403 ¶ | |||
| presence of traffic protection functions in other hops along the path | presence of traffic protection functions in other hops along the path | |||
| (which likely act on the NQB DSCP value alone) would make it less | (which likely act on the NQB DSCP value alone) would make it less | |||
| attractive for such abuse than any of the other 31 DSCP values that | attractive for such abuse than any of the other 31 DSCP values that | |||
| are given priority. | 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 DS does not include integrity | |||
| integrity protection for the DSCP; thus, it is possible for the DSCP | protection for the DSCP; thus, it is possible for the DSCP to be | |||
| to be changed by an on-path attacker. The NQB PHB and associated | changed by an on-path attacker. The NQB PHB and associated DSCP | |||
| DSCP don't change this. While re-marking DSCPs is permitted for | don't change this. While re-marking DSCPs is permitted for various | |||
| various reasons (some are discussed in this document, others can be | reasons (some are discussed in this document, others can be found in | |||
| found in [RFC2474] and [RFC2475]), if done maliciously, this might | [RFC2474] and [RFC2475]), if done maliciously, this might negatively | |||
| negatively affect the QoS of the tampered microflow. Nonetheless, an | affect the QoS of the tampered microflow. Nonetheless, an on-path | |||
| on-path attacker can also alter other mutable fields in the IP header | attacker can also alter other mutable fields in the IP header (e.g., | |||
| (e.g., the TTL), which can wreak much more havoc than just altering | the TTL), which can wreak much more havoc than just altering QoS | |||
| QoS treatment. | treatment. | |||
| 10. References | 10. References | |||
| 10.1. Normative References | 10.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at line 1485 ¶ | skipping to change at line 1482 ¶ | |||
| 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 1630 ¶ | |||
| "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 DS 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 NQB DSCP is not expected to cause harm to Default traffic, but it | |||
| will severely limit the ability to provide NQB treatment. Reports on | will severely limit the ability to provide NQB treatment. Reports on | |||
| existing deployments of DSCP manipulation (see [Custura] and [Barik]) | existing deployments of DSCP manipulation (see [Custura] and [Barik]) | |||
| categorize the re-marking behaviors into the following policies: | categorize the re-marking behaviors into the following policies: | |||
| bleach all traffic (set DSCP to zero); set the top three bits (the | bleach all traffic (set DSCP to zero); set the top three bits (the | |||
| former Precedence bits) on all traffic to 0b000, 0b001, or 0b010; set | former Precedence bits) on all traffic to 0b000, 0b001, or 0b010; set | |||
| the low three bits on all traffic to 0b000; or re-mark all traffic to | the low three bits on all traffic to 0b000; or re-mark all traffic to | |||
| a particular (non-zero) DSCP value. | a particular (non-zero) DSCP value. | |||
| skipping to change at line 1707 ¶ | skipping to change at line 1703 ¶ | |||
| likely be somewhat compatible with NQB treatment, assuming that IP | likely be somewhat compatible with NQB treatment, assuming that IP | |||
| Precedence compatibility (see Section 1.5.4 of [RFC4594]) is | 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 1736 ¶ | |||
| 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 DS 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 | |||
| skipping to change at line 1807 ¶ | skipping to change at line 1803 ¶ | |||
| 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 DS Codepoints | |||
| In networks where the DSCP 45 (decimal) is already in use for another | In networks where the DSCP 45 (decimal) is already in use for another | |||
| (e.g., a local-use) purpose or where specialized PHBs are available | (e.g., a local-use) purpose or where specialized PHBs are available | |||
| that can meet specific application requirements (e.g., a guaranteed- | that can meet specific application requirements (e.g., a guaranteed- | |||
| delay path for voice traffic), use of another DSCP value could be | delay path for voice traffic), use of another DSCP value could be | |||
| preferred. | preferred. | |||
| In end systems where the choice of using DSCP 45 (decimal) is not | In end systems where the choice of using DSCP 45 (decimal) is not | |||
| available to the application, the CS5 DSCP (40 decimal) could be used | available to the application, the CS5 DSCP (40 decimal) could be used | |||
| as a fallback. See Section 6.3 for rationale as to why this choice | as a fallback. See Section 6.3 for rationale as to why this choice | |||
| End of changes. 71 change blocks. | ||||
| 325 lines changed or deleted | 321 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||