<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-sporeba-mobile-l4s-00" category="bcp" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="Mobile L4S">Best Practices for L4S implementation for Mobile Devices</title>
    <seriesInfo name="Internet-Draft" value="draft-sporeba-mobile-l4s-00"/>
    <author fullname="Sebastian Poreba">
      <organization>Google LLC</organization>
      <address>
        <email>sporeba@google.com</email>
      </address>
    </author>
    <author fullname="Lorenzo Colitti">
      <organization>Google LLC</organization>
      <address>
        <email>lorenzo@google.com</email>
      </address>
    </author>
    <author fullname="Sandeep Irlanki">
      <organization>Samsung R&amp;D</organization>
      <address>
        <email>irlanki.s@samsung.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="30"/>
    <area>Transport</area>
    <workgroup>TSVWG Working Group</workgroup>
    <keyword>L4S</keyword>
    <keyword>Mobile</keyword>
    <keyword>Cellular</keyword>
    <keyword>ECN</keyword>
    <keyword>AccECN</keyword>
    <keyword>NQB</keyword>
    <abstract>
      <?line 53?>

<t>This document documents best practices for deployment of Low Latency, Low Loss, and Scalable Throughput (L4S) in mobile devices. It defines the responsibilities of the host operating system, the link-layer (modem and WiFi) subsystems to ensure successful end-to-end low-latency communication.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://fridek.github.io/draft-sporeba-mobile-l4s/draft-sporeba-mobile-l4s.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-sporeba-mobile-l4s/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/fridek/draft-sporeba-mobile-l4s"/>.</t>
    </note>
  </front>
  <middle>
    <?line 57?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>L4S (Low Latency, Low Loss, Scalable Throughput) <xref target="RFC9330"/> offers a framework to significantly reduce queuing delay while maintaining high throughput. Mobile devices often have to react to quickly changing connectivity conditions and may be subject to variable throughput and connection quality. This can cause large variations in user-perceived latency and greater bufferbloat than in other devices. Deploying L4S in a mobile ecosystem requires co-operation across multiple layers: the network stack, the host operating system (OS), and link-layer drivers and firmware (e.g., Wi-Fi and cellular modem), and the network. This document outlines best current practices for each of these subsystems to achieve reliable, low-latency performance in the field.</t>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="host-operating-system-requirements">
      <name>Host Operating System Requirements</name>
      <t>The host operating system controls application-level network access and hosts the primary TCP and UDP transport stacks.</t>
      <section anchor="socket-apis-for-udp">
        <name>Socket APIs for UDP</name>
        <t>To enable UDP-based transport stacks (such as QUIC) to utilize L4S, the OS <bcp14>MUST</bcp14> provide APIs that allow applications to:</t>
        <ol spacing="normal" type="1"><li>
            <t>Set the ECN codepoint <xref target="RFC9331"/> on outgoing packets.</t>
          </li>
          <li>
            <t>Read the ECN codepoints of incoming packets.</t>
          </li>
        </ol>
        <t>These capabilities <bcp14>MUST</bcp14> be exposed via standard socket APIs (e.g., <tt>IP_TOS</tt> and <tt>IPV6_TCLASS</tt> for setting, and <tt>IP_RECVTOS</tt> and <tt>IPV6_RECVTCLASS</tt> via ancillary data for reading) and <bcp14>MUST NOT</bcp14> be restricted by default security policies for standard application sockets. The APIs <bcp14>MUST</bcp14> allow reading the ECN codepoints on a per-packet basis. and <bcp14>MUST</bcp14> allow setting the ECN codepoints either on a per-socket or per-packet basis. The detailed explanation of configuring UDP sockets for ECN for common platforms is covered in <xref target="I-D.ietf-tsvwg-udp-ecn"/>.</t>
        <t>UDP-based transport stacks <bcp14>SHOULD</bcp14> mark L4S-capable traffic as ECT(1) and <bcp14>MUST NOT</bcp14> mark queue-building traffic (e.g., traffic using legacy congestion controls) as ECT(1). Link layers <bcp14>MUST</bcp14> respond to misbehaving stack as discussed in {#defense-against-misbehaving-traffic}.</t>
      </section>
      <section anchor="tcp-support-detection-and-bootstrapping">
        <name>TCP support detection and bootstrapping</name>
        <t>To allow L4S-capable senders (e.g., Internet servers) to take advantage of L4S, host operating systems and link-layers must negotiate ECN support and verify path integrity as described in Section 1.4 and Section 3 of <xref target="RFC9768"/>.</t>
        <section anchor="per-network-detection-and-latency-mitigation">
          <name>Per-network detection and latency mitigation</name>
          <t>If misconfigured networks or servers drop ECN negotiation packets, and the client does not retry without ECN negotiation, TCP connections will fail. Therefore, clients <bcp14>MUST</bcp14> implement retry strategies that disable ECN negotiation, as described in Section 3.1.4 and Section 3.2.3.2.2 of <xref target="RFC9768"/>. Note that a server replying with Not-ECT is does not require any additional retries and is not considered a failure.</t>
          <t>Latency is critical to mobile applications, and retry strategies dependent on retransmissions and timeouts can lead to a degraded user experience. To ensure that L4S can be safely enabled without degrading the user experience in the presence of networks or servers that drop ECN negotiations or Accurate ECN TCP options, the client <bcp14>SHOULD</bcp14> balance implementing the retry strategies in section 3 of <xref target="RFC9768"/> with mechanisms to reduce the latency impact of retransmissions. A possible strategy is to only attempt ECN negotiation on the first SYN to a new server. Additionally, the host <bcp14>MAY</bcp14> cache ECN negotiation timeouts on a per-host or per-IP-address, or other basis.</t>
          <t>If a host is in a network that blocks all ECN negotiation regardless of destination, all TCP connections will suffer latency impact. This will degrade the user experience even if failures are cached, because any connection to a server that is not in the cache will suffer an additional round trip delay.</t>
          <t>A host system that wants to be resilient to this <bcp14>MAY</bcp14> attempt a connectivity check to a known, L4S-supporting service. In case of check failure, the result can be used to turn off L4S negotiation attempts for a given network, represented by PLMN/APN (in carrier networks) or SSID/BSSID (in Wi-Fi networks).</t>
          <t>When maintaining such lists, entries <bcp14>SHOULD</bcp14> be retired after a reasonable TTL (e.g. 7 days), and <bcp14>SHOULD</bcp14> prefer information from more frequently used destinations.</t>
        </section>
      </section>
    </section>
    <section anchor="link-layer-subsystems-requirements">
      <name>Link-layer Subsystems Requirements</name>
      <t>Link-layer subsystems, such as the cellular modem and Wi-Fi schedule and manage the link-layer transmission over the physical medium interface. These systems typically perform significant queueing on the transmit path, and sometimes on the receive path as well.</t>
      <section anchor="link-layer-inbound-packet-reordering">
        <name>Link-layer inbound packet reordering</name>
        <t>Some link layers provide strong ordering guarantees for inbound packets by assigning a link-layer sequence number to each packet and buffering incoming packets so they can be presented to the host operating system in order. In particular, cellular networks often perform out-of-order packet delivery at the physical layer, but require the cellular modem to deliver received packets to the host operating system in order. When packets are received out of order on the air interface, the modem waits up to a network-configurable timeout to receive all previous packets. This causes out-of-order packets to be delayed until all previous packets have been received, and causes latency spikes when packets are lost due to transmission errors.</t>
        <t>Delaying received packets increases latency, which is contrary to the low-latency goals of L4S. Also, by artificially introducing delays that were not imposed by the network, it reduces the accuracy of protocol rate estimation. The additional delays do not benefit contemporary protocol stacks, which are generally well-equipped to handle out-of-order packets.</t>
        <t>L4S-aware protocol stacks <bcp14>MUST</bcp14> be prepared to receive out-of-order packets.</t>
        <t>Link-layers <bcp14>MUST NOT</bcp14> buffer inbound L4S packets in a way that imposes measurable latency to the protocol stack.</t>
      </section>
      <section anchor="multi-queue-scheduling-and-bounded-latency-queueing">
        <name>Multi-Queue Scheduling and Bounded Latency Queueing</name>
        <t>Any link layer that supports L4S <bcp14>MUST</bcp14> provide a low-latency queue designated for L4S traffic and Non-Queue-Building traffic (<xref target="RFC9956"/> section 3.3). This queue <bcp14>MUST</bcp14> be bounded as described in {#uplink-aqm} and {#defense-against-misbehaving-traffic}.
Some link-layer systems already support high-priority and low-priority queues. These queues are typically not latency-bounded, and therefore cannot guarantee the low-latency benefits of L4S. If the link layer provides such queues, low-latency queue <bcp14>MUST</bcp14> be distinct from them. An example configuration might be:</t>
        <ul spacing="normal">
          <li>
            <t><strong>Low-Latency Queue:</strong> For L4S and other Non-Queue-Building traffic.</t>
          </li>
          <li>
            <t><strong>High-Priority Queue:</strong> For high priority but potentially queue-building traffic.</t>
          </li>
          <li>
            <t><strong>Low-Priority Queue:</strong> For queue-building traffic (e.g., CUBIC/Reno) and bulk data.</t>
          </li>
        </ul>
        <t>Link layers <bcp14>SHOULD</bcp14> ensure that the L4S queue does not starve the other queues if offered L4S traffic is higher than available bandwidth. Such prioritisation <bcp14>SHOULD</bcp14> use a scheduling algorithm (e.g., Weighted Fair Queueing) and aim to minimize the queue buildup in the Low-Latency queue.</t>
      </section>
      <section anchor="packet-classification">
        <name>Packet Classification</name>
        <t>The link-layer <bcp14>MUST</bcp14> map uplink traffic to the low-latency queue based on ECN markings:</t>
        <ul spacing="normal">
          <li>
            <t>Packets carrying the <tt>ECT(1)</tt> or <tt>CE</tt> bits in the IP header <bcp14>MUST</bcp14> be steered to the low-latency queue.</t>
          </li>
          <li>
            <t>The link-layer <bcp14>SHOULD</bcp14> also support mapping to the low-latency queue based on the Non-Queue-Building (NQB) DSCP value (45) <xref target="RFC9956"/> as an alternative or supplementary classifier. Because DSCP markings are frequently bleached at carrier interconnect boundaries, ECN mapping remains the most reliable end-to-end classifier for mobile networks.</t>
          </li>
        </ul>
        <t>Link-layer networks <bcp14>MUST NOT</bcp14> attempt to dynamically classify packets for the low-latency queue using heuristic traffic inference or Deep Packet Inspection (DPI). Classification <bcp14>MUST</bcp14> rely solely on the explicit packet markings set by the application endpoints. This ensures compatibility with fully encrypted payloads and aligns with the end-to-end principle and permissionless innovation, as discussed in the ISP deployment observations in <xref target="I-D.livingood-low-latency-deployment"/> (which also contains details on Wi-Fi link-layer queuing considerations).</t>
      </section>
      <section anchor="uplink-aqm">
        <name>Uplink Active Queue Management (AQM)</name>
        <t>The link-layer uplink buffer is often a bottleneck due to cellular grant scheduling. When the uplink queue builds up, the link-layer <bcp14>MUST</bcp14> perform ECN marking:</t>
        <ul spacing="normal">
          <li>
            <t>If the sojourn time of a packet in the L4S queue exceeds a shallow threshold (e.g., 1 ms to 5 ms), the link-layer <bcp14>MUST</bcp14> mark the packet as <tt>CE</tt> in the IP header before transmitting it, rather than dropping it.</t>
          </li>
          <li>
            <t>Packets <bcp14>MUST</bcp14> only be dropped if the queue reaches the maximum designated size.</t>
          </li>
        </ul>
      </section>
      <section anchor="defense-against-misbehaving-traffic">
        <name>Defense Against Misbehaving Traffic (Queue Protection)</name>
        <t>Applications may mark their traffic as NQB or <tt>ECT(1)</tt> without implementing L4S congestion control, causing queue build-up in the low-latency queue.</t>
        <ul spacing="normal">
          <li>
            <t>The link-layer <bcp14>MUST</bcp14> enforce a strict size limit on the Low-Latency Queue. If the queue is full, incoming packets <bcp14>MUST</bcp14> be dropped.</t>
          </li>
          <li>
            <t>The link-layer <bcp14>SHOULD</bcp14> monitor queue build-up and latency contributions of individual flows within the L4S queue.</t>
          </li>
          <li>
            <t>If a flow is detected to be queue-building (e.g. contributing to sustained queue latency above the marking threshold without responding to CE marks), the link-layer <bcp14>SHOULD</bcp14> demote the flow and redirect its packets to a different queue.</t>
          </li>
        </ul>
      </section>
      <section anchor="transparency-and-bleach-prevention">
        <name>Transparency and Bleach Prevention</name>
        <t>The link-layer <bcp14>MUST NOT</bcp14> modify the ECN bits, DSCP flags, or AccECN TCP options (172 and 174) on low-latency-queue transit traffic, except for performing standard CE marking in the event of queue buildup.</t>
      </section>
    </section>
    <section anchor="on-path-node-requirements">
      <name>On-Path Node Requirements</name>
      <t>On-Path Nodes <bcp14>MUST NOT</bcp14> perform network-based classification or rewrite ECN/DSCP markings based on traffic heuristics or DPI. In accordance with <xref target="I-D.livingood-low-latency-deployment"/>, active classification decisions <bcp14>MUST</bcp14> be left to the application endpoints, and on-path devices <bcp14>MUST</bcp14> restrict their role to marking the ECN bits in the event of a queue forming.</t>
      <section anchor="ecn-and-accecn-transparency">
        <name>ECN and AccECN Transparency</name>
        <t>On-Path Nodes <bcp14>MUST NOT</bcp14> clear (bleach) ECN bits, in accordance with <xref target="RFC3168"/>. They <bcp14>MUST</bcp14> preserve <tt>ECT(0)</tt>, <tt>ECT(1)</tt>, and <tt>CE</tt> markings on all IP packets, except in the event of queue forming, where appropriate codepoints should be marked. Similarly, On-Path Nodes <bcp14>MUST NOT</bcp14> strip, modify, or drop packets containing TCP options 172 or 174.</t>
        <t>Non-compliant behaviour can lead to timeouts and retransmits in the TCP handshake, and consequently to a degraded user experience.</t>
      </section>
      <section anchor="handshake-forwarding">
        <name>Handshake Forwarding</name>
        <t>On-Path Nodes <bcp14>MUST</bcp14> transparently forward <tt>SYN</tt> and <tt>SYN-ACK</tt> packets that negotiate ECN or AccECN. On-Path Nodes <bcp14>MUST NOT</bcp14> drop TCP handshake packets solely due to the presence of ECN negotiation flags or AccECN TCP options.</t>
      </section>
      <section anchor="mitigation-against-non-compliant-prioritization">
        <name>Mitigation Against Non-Compliant Prioritization</name>
        <t>On-Path Nodes <bcp14>MUST NOT</bcp14> act on <tt>ECT(1)</tt> flags to prioritize traffic in alternative, non-compliant ways unless a valid end-to-end feedback loop is actively maintained—where the network nodes execute compliant congestion marking and the transport endpoints record and reflect those markings in line with the transport-specific requirements specified in Section 4.2 of <xref target="RFC9331"/>.</t>
        <t>Network deployments <bcp14>MUST NOT</bcp14> be marketed or operated as supporting L4S if they prioritize traffic via alternative heuristics (such as bandwidth allocation multipliers). The risk of such alternative mechanisms is incentivising marking <tt>ECT(1)</tt> codepoints in flows to be allocated into prioritised queues, without implementing full L4S congestion control as described in {#defense-against-misbehaving-traffic}. The convergence point of such behaviour would be a prevalence of <tt>ECT(1)</tt> marked traffic that does not respond to <tt>CE</tt> markings and congestion in the incorrectly prioritised queues.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>L4S introduces potential abuse vectors where applications mark queue-building traffic as low-latency. As described in {#defense-against-misbehaving-traffic}, the link-layer subsystem <bcp14>MUST</bcp14> deploy queue protection mechanisms to defend the low-latency queue from starvation and latency degradation.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC3168">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishnan"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo specifies the incorporation of ECN (Explicit Congestion Notification) to TCP and IP, including ECN's use of two bits in the IP header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3168"/>
          <seriesInfo name="DOI" value="10.17487/RFC3168"/>
        </reference>
        <reference anchor="RFC8311">
          <front>
            <title>Relaxing Restrictions on Explicit Congestion Notification (ECN) Experimentation</title>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="January" year="2018"/>
            <abstract>
              <t>This memo updates RFC 3168, which specifies Explicit Congestion Notification (ECN) as an alternative to packet drops for indicating network congestion to endpoints. It relaxes restrictions in RFC 3168 that hinder experimentation towards benefits beyond just removal of loss. This memo summarizes the anticipated areas of experimentation and updates RFC 3168 to enable experimentation in these areas. An Experimental RFC in the IETF document stream is required to take advantage of any of these enabling updates. In addition, this memo makes related updates to the ECN specifications for RTP in RFC 6679 and for the Datagram Congestion Control Protocol (DCCP) in RFCs 4341, 4342, and 5622. This memo also records the conclusion of the ECN nonce experiment in RFC 3540 and provides the rationale for reclassification of RFC 3540 from Experimental to Historic; this reclassification enables new experimental use of the ECT(1) codepoint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8311"/>
          <seriesInfo name="DOI" value="10.17487/RFC8311"/>
        </reference>
        <reference anchor="RFC9330">
          <front>
            <title>Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service: Architecture</title>
            <author fullname="B. Briscoe" initials="B." role="editor" surname="Briscoe"/>
            <author fullname="K. De Schepper" initials="K." surname="De Schepper"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="G. White" initials="G." surname="White"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>This document describes the L4S architecture, which enables Internet applications to achieve low queuing latency, low congestion loss, and scalable throughput control. L4S is based on the insight that the root cause of queuing delay is in the capacity-seeking congestion controllers of senders, not in the queue itself. With the L4S architecture, all Internet applications could (but do not have to) transition away from congestion control algorithms that cause substantial queuing delay and instead adopt a new class of congestion controls that can seek capacity with very little queuing. These are aided by a modified form of Explicit Congestion Notification (ECN) from the network. With this new architecture, applications can have both low latency and high throughput.</t>
              <t>The architecture primarily concerns incremental deployment. It defines mechanisms that allow the new class of L4S congestion controls to coexist with 'Classic' congestion controls in a shared network. The aim is for L4S latency and throughput to be usually much better (and rarely worse) while typically not impacting Classic performance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9330"/>
          <seriesInfo name="DOI" value="10.17487/RFC9330"/>
        </reference>
        <reference anchor="RFC9331">
          <front>
            <title>The Explicit Congestion Notification (ECN) Protocol for Low Latency, Low Loss, and Scalable Throughput (L4S)</title>
            <author fullname="K. De Schepper" initials="K." surname="De Schepper"/>
            <author fullname="B. Briscoe" initials="B." role="editor" surname="Briscoe"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>This specification defines the protocol to be used for a new network service called Low Latency, Low Loss, and Scalable throughput (L4S). L4S uses an Explicit Congestion Notification (ECN) scheme at the IP layer that is similar to the original (or 'Classic') ECN approach, except as specified within. L4S uses 'Scalable' congestion control, which induces much more frequent control signals from the network, and it responds to them with much more fine-grained adjustments so that very low (typically sub-millisecond on average) and consistently low queuing delay becomes possible for L4S traffic without compromising link utilization. Thus, even capacity-seeking (TCP-like) traffic can have high bandwidth and very low delay at the same time, even during periods of high traffic load.</t>
              <t>The L4S identifier defined in this document distinguishes L4S from 'Classic' (e.g., TCP-Reno-friendly) traffic. Then, network bottlenecks can be incrementally modified to distinguish and isolate existing traffic that still follows the Classic behaviour, to prevent it from degrading the low queuing delay and low loss of L4S traffic. This Experimental specification defines the rules that L4S transports and network elements need to follow, with the intention that L4S flows neither harm each other's performance nor that of Classic traffic. It also suggests open questions to be investigated during experimentation. Examples of new Active Queue Management (AQM) marking algorithms and new transports (whether TCP-like or real time) are specified separately.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9331"/>
          <seriesInfo name="DOI" value="10.17487/RFC9331"/>
        </reference>
        <reference anchor="RFC9768">
          <front>
            <title>More Accurate Explicit Congestion Notification (AccECN) Feedback in TCP</title>
            <author fullname="B. Briscoe" initials="B." surname="Briscoe"/>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="R. Scheffenegger" initials="R." surname="Scheffenegger"/>
            <date month="April" year="2026"/>
            <abstract>
              <t>Explicit Congestion Notification (ECN) is a mechanism by which network nodes can mark IP packets instead of dropping them to indicate incipient congestion to the endpoints. Receivers with an ECN-capable transport protocol feed back this information to the sender. ECN was originally specified for TCP in such a way that only one feedback signal can be transmitted per Round-Trip Time (RTT). More recently defined mechanisms like Congestion Exposure (ConEx), Data Center TCP (DCTCP), or Low Latency, Low Loss, and Scalable Throughput (L4S) need more accurate ECN feedback information whenever more than one marking is received in one RTT. This document updates the original ECN specification defined in RFC 3168 by specifying a scheme that provides more than one feedback signal per RTT in the TCP header, called More Accurate ECN (AccECN). Given TCP header space is scarce, it allocates a reserved header bit previously assigned to the ECN-nonce. It also overloads the two existing ECN flags in the TCP header. The resulting extra space is additionally exploited to feed back the IP-ECN field received during the TCP connection establishment. Supplementary feedback information can optionally be provided in two new TCP Option alternatives, which are never used on the TCP SYN. The document also specifies the treatment of this updated TCP wire protocol by middleboxes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9768"/>
          <seriesInfo name="DOI" value="10.17487/RFC9768"/>
        </reference>
        <reference anchor="RFC9956">
          <front>
            <title>A Non-Queue-Building Per-Hop Behavior (NQB PHB) for Differentiated Services</title>
            <author fullname="G. White" initials="G." surname="White"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="R. Geib" initials="R." surname="Geib"/>
            <date month="May" year="2026"/>
            <abstract>
              <t>This document specifies characteristics of a Non-Queue-Building Per-Hop Behavior (NQB PHB). The NQB PHB provides a shallow-buffered, best-effort service as a complement to a Default deep-buffered, best-effort service for Internet services. The purpose of this NQB PHB is to provide a separate queue that enables smooth (i.e., non-bursty), low-data-rate, application-limited traffic microflows, to avoid the delay, delay variation and loss that would ordinarily be caused by sharing a queue with bursty, capacity-seeking traffic. This PHB is implemented without prioritization and can be implemented without rate policing, making it suitable for environments where the use of these features is restricted. The NQB PHB has been developed primarily for use by access network segments, where queuing delay and queuing loss caused by Queue-Building (QB) protocols are manifested; however, its use is not limited to such segments. In particular, the application of NQB PHB to cable broadband links, Wi-Fi links, and mobile network radio/core segments are discussed in this document. This document recommends a specific Differentiated Services Code Point (DSCP) to identify NQB microflows and updates the guidance in RFC 8325 on mapping Differentiated Services (Diffserv or DS) to IEEE 802.11 for this codepoint.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9956"/>
          <seriesInfo name="DOI" value="10.17487/RFC9956"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.livingood-low-latency-deployment">
          <front>
            <title>ISP Dual Queue Networking Deployment Observations</title>
            <author fullname="Jason Livingood" initials="J." surname="Livingood">
              <organization>Comcast</organization>
            </author>
            <date day="17" month="April" year="2026"/>
            <abstract>
              <t>   The IETF's Transport and Services Working Group (TSVWG) has finalized
   experimental RFCs for Low Latency, Low Loss, Scalable Throughput
   (L4S) and new Non-Queue-Building (NQB) per hop behavior.  These
   documents describe a new architecture and protocol for deploying low
   latency networking.  Since deployment decisions are left to
   implementers, this document explores some of the implications of
   those decisions and makes suggestions that can help drive adoption
   and acceptance of L4S and NQB based on observations from the world's
   first large scale deployment.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-livingood-low-latency-deployment-16"/>
        </reference>
        <reference anchor="I-D.ietf-tsvwg-udp-ecn">
          <front>
            <title>Configuring UDP Sockets for ECN for Common Platforms</title>
            <author fullname="Martin Duke" initials="M." surname="Duke">
              <organization>Google</organization>
            </author>
            <date day="4" month="May" year="2026"/>
            <abstract>
              <t>   Explicit Congestion Notification (ECN) applies to all transport
   protocols in principle.  However, it had limited deployment for UDP
   until QUIC became widely adopted.  As a result, documentation of UDP
   socket APIs for ECN on various platforms is sparse.  This document
   records the results of experimenting with these APIs in order to get
   ECN working on UDP for Chromium on Apple, Linux, and Windows
   platforms.

   This document provides a snapshot of ECN state of affairs as
   supported by these platforms at the time of writing.  Readers should
   refer to the documentations of the various platforms for an up-to-
   date information on the matter.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tsvwg-udp-ecn-08"/>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA51b624bx5L+z6folYGFZHDoKHbiWDg458iSHRNHlmRTThAs
FnFzpkn20dwyPUOaMQzsQ+wD7LPso+yT7FdV3XMhKa+xPxINZ/pal6++qm5H
UTSqbZ2aM3X00rha3VY6rm1snFoUlbp6NlM2K1OTmbzWtS1yfv22mNvUqEuz
ppZHIz2fV2aNIfwHdDsaxbo2y6Lanql5XI6SIs51hmmSSi/qyJVFZeY6yrhD
lD5z0XffjVwzz6xzmKbelmg7fXX3epQ32dxUZ6ME452N4iJ3JneNO1N11ZgR
Zn060pXRZ+qu0jmNW482RXW/rIqmxMvZL7/+rH7FC5sv1c/0cnRvtmiRnI1U
REulP7JwerowadqkuqLnVxfX9Oc8jv3T9buXo7XJGyzkkVL9Kei3LHo4F1rZ
etXMIZxFZRNz/+QhARyhbYo9uhptV3VdurMnT6TPRMaY2OLB3g9+mKzqLD0a
jXRTr4qK9ox5lFo0aSoKmaG9q63O1S335c9FtdS5/ZNVfqZ+LoolqfXqgj+a
TNv0TPm5/r7kr5O4yPYHv0KT/M9CXRSprWv7zWOn0u+rY890nhhTqmmV6vz+
0NgznbkGqnj/r5f9wa10mLi/O2nA44/yosrQcQ3lKvX+9cXT0x9/8o8/PT09
9Y8vnj79rnts3z5v27548cOPZ6ORzRf98abR5SS1axhGUSRRWmwi0nUeb6PE
lGmxJQcL7aypF1Ht1ptl1CRlZOIc400mk1EURUrPXU0+OhrdraxT8KuG+rYP
Ts3Jj8uBH3dzqGIBpWzUlcw+lh+Fc2MFcapZrFM9hz7uVjDf5apsanUMHzlR
NldiVBiM3X6ippjVLGyOSeqVUZWBReTOopGtLV5iKnq/KrCeojQVhAFluK2r
TTbmT6nN7yGIranUcVYkJuNF/Gpf2xMFMJCmGL1Q5POVwcsYUzsYAd4kUV1E
+KN64lRQZdbkNmYTmIxYZplNEng3fHSa11WRNDF9HI0I3o4fkMYBSZyoz5+9
BXz5gt0tTOWUVosK5kiQQ+t0dpnbBabP63QLkWAuo/5oTENbTwz2qjYrkiJM
EZBqc3q/sssV5BHmmQSA9ZLGVFieWum1oSkAdnFND380Nr7HLPFK50saB+CY
G+xtbWsSRJ5Y2qdjoWaYeU4CnP/TSPe1rizvsJuZW4ZRAPZ/NBq63E4U2xo2
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

-->

</rfc>
