<?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-tsvwg-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-tsvwg-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="July" day="01"/>
    <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-tsvwg-mobile-l4s/draft-sporeba-tsvwg-mobile-l4s.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-sporeba-tsvwg-mobile-l4s/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/fridek/draft-sporeba-tsvwg-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:
H4sIAAAAAAAAA51b624bR5b+z6eolYGFZLDpKHbiRBjMjCzZMbGyJJtygmCx
iIvdRbJGfUtXN2nGMLAPMQ8wz7KPsk+y3zmnqi8k5Rj7I1Gzu67n8p3vnCpH
UTSqbZ2aM3X0wrha3VY6rm1snFoUlbp6NlM2K1OTmbzWtS1yfv2mmNvUqEuz
ppZHIz2fV2aNIfwHdDsaxbo2y6Lanql5XI6SIs51hmmSSi/qyJVFZeY6qt16
s4wy7halz1z0zTcj18wz6xwmq7clekxf3r0a5U02N9XZKMGoZ6O4yJ3JXePO
VF01ZoS5n450ZfSZuqt0TqPXo01R3S+roinxcvbzLz+pX/DC5kv1E70c3Zst
WiRnIxXRgumPLJ+eLkyaNqmu6PnlxTX9OY9j/3T99sVobfIGC3mkVH8K+i2L
Hs6FVrZeNXOIaFHZxNw/+bIYjtAjxU5djR6rui7d2ZMn0nMiI01s8Sdj/Mnn
yarO0qPRSDf1qqhICphTqUWTpqKoGXq52upc3fII/Lmoljq3f7ApnKmfimJJ
6r664I8m0zY9U37Gvy/56yQusv3Br9Ak/6NQF0Vq69p+9dip9Pvi2DOdJ8aU
alqlOr8/NPZMZ66Bct79+2V/cCsdJu7vThrw+KO8qDJ0XEPdSr17dfH09Psf
/OMPT09P/eOPT59+0z22b5+3bX/88bvvz0Yjmy/6402jy0lq1zCVokiitNhE
pPc83kaJKdNiS44X2llTL7wem6SMTJxjvMlkMoqiSOm5q8l3R6O7lXUK/tZQ
3/bBqTn5dznw724OVSyglI26ktnH8qNwbqwgTjWLdarn0MfdCga9XJVNrY7h
NSfK5kqMCoMxHEzUFLOahc0xSb0yqjKwiNxZNLK1xUtMRe9XBdZTlKaCMKAM
t3W1ycb8KbX5PQSxNZU6zorEZLyIX+wre6IAD9IUoxeKUKAyeBljagcjwJsk
qosIf1RPnAqqzJrcxmwCkxHLLLNJAn+H107zuiqSJqaPoxHB3vED0jggiRP1
6ZO3gM+fsbuFqZzSalHBHAmEaJ3OLnO7wPR5nW4hEsxl1O+NaWjricFe1WZF
UoQpAmptTu9XdrmCPMI8kwC8XtKYCstTK702NAXgL67p4ffGxveYJV7pfEnj
AC5zg72tbU2CyBNL+3Qs1Awzz0mA838Y6b7WleUddjNzyzAKgsDvjYYutxPF
toZN4b/GQW+6WhoZQGaAdeB9FUHLsYHJJyrog0ZcYsk1dDxvSGbztNBYABZN
3QrYQdXZ1CVbKm2GY1IO+XqzM3Eh9gABYOewNqw08naFteq4guJU1qS1RSRT
bFYUOGBnualZQa7W8f34YatUxzezE/GEnmkmFXZUiRgXtso2iEDq2EyWkzFs
NXplRWw+lCg2ZD9Kb3IvxNZhi6ZO2XfYX+Omqujt0G+h6ZV3I2d2PAKfrFmT
26WsxvHADbAxxp8c5gcp0joW1qQJPOLRI8BxjsDWGcclubEYC+GKUQiaiqKm
Q6x/P7s7GstfdX3Dz+9evn0/fffykp5nr8+vrtqHkW8xe33z/uqye+p6Xty8
efPy+lI6460avBodvTn/9UiEd3Rzeze9uT6/OpIt9KVHKoAQ5rQ7mFZZmRpG
p90oMS6u7Bw/0OfFxe3//Ov0Gfz23+C4356e/gjHlR8/nD5/hh+blclltiJP
t/4npLUd6bI00CaZYJrC7ktb65Rg0im3KjbwR1MZiPPxf5Jk/utM/QX85/TZ
X/0L2vDgZZDZ4CXLbP/NXmcR4oFXB6ZppTl4vyPp4XrPfx38DnLvvfzL38hY
VXT6w9/+OiIkfU3+c9P6z0z85524JgcisaTDfgaMARCnsL6yTD1YRynMOW19
VTPSs2poDIkxZWUzXW3V3cUtf3l/eQtm6JmguLcTE58V8b2p1fntVFwJLbEg
CiSMefgZgffATHa7q2MEmRWpGfq6OCEra2qEtD+Y7wp43MwU67isijXImswC
RKvJVhBCersiX0X4Pp2AaNXcGewS+0dILmC6bUg5pZCSEyosCxJUqWn92Ax6
vjM62e/KAdbmCHiD9iR1gAUMVreRmBcLXzEfy4L2vLaadpsnukqU60nKo9qH
6e1vdzezDyxj/Pj5+9/uLq7OZ3hDsnSmJmWOw+ffYFg/77TnV74PTQcksmlK
ugO11zwMokKCYU64V/AZWiawva5sTB493xLH0AB1zAqQpMhWgkzG1kNku42e
zP2WHEGuVw4PL8rx0x4UKMWbkuIYS1PBQixGadcnA/jtHxrAWA5n7Thetljn
/qi0tsSAA6TYJzQDUiqrh1rhHwu7xHYxDdm43xDvmKakv8R00Br9aoJ6BGGK
iIhUgn2fPh3mkp8/w0a+YP4eV+Bm92TwERsSsQSkGSA25BgvL+6OT3fUxu2J
6Jho3thUJOy7eKsKPxtHH1Oz1MzX8iXUTfsOoHDSzTFRV4jDPpbLZEIzE/JL
pI9zA1rEwEKrp46JdXHjnBfCI1gPuKOJ9BJky9VRr0/kF/RZEIMwxTUlywJ6
8RSINjkvippYd1miF6OIGEJfPMhTE1qj3+uUohKgDO8rIg+MI7W+N0ona5BD
Df5EVJwQ5SBEuh0WQswGzXLk2kjWarG8sFxqilnsAs6h6xXHxCX7CgmkHxFn
flunk2dC+P3vp7QawSKkMp9FJI/ULaw2APJQJoFoZECYpRY+PV2QSoLtYkLf
1SkGDRYE2FRR8uLDVmhEj14daYpTK1kN3Dwvami9BnRs4F5AyN3uY9Zdx1sd
GiJmL+Ba7GaVgYOAIMmg3o7aeocfmxQMqVnjkRx2xIrdm+shkT6d7Al18u2E
/vt2V7jquqiNDxheMFhFmTLxpU1SgwguoJjztDLg4IopoNdEyL1Oefm0aprZ
SkuqmyAukQo0i6FhquLTHAYKWAfQMmU3EoLdD1qiiD3BAOfIzIm95vwV2OFr
ODJ/bTMDBUmukHLYgrOg37LSCVZDSQJhHWwVKzHQTpvasTSI9FNXylT0woCR
SbxOWtXLUAF+d8YLVBd00PFvyP2QDYqCDxgitzqPEWiCi5FlFaUXSs8yPUzO
kSXyxMGawsr2ZIeluQecTVSeGUrkrBN671NHzpKD2rKSMj/03RH9RJ0jKOKZ
gUimZC1jHKa1ugailHt+Q1qUzKACtMx+vRZt5WbjJYWBWztLt73ECYwReopX
e+7RWUAbAwXeJAJObyNYLrQDYeKVJH8SDxk+tAxvnaR+AXpYX8gbKT4RG9+d
tEIsqZDiO+ZECcWTPHgrmh9EB8fJ6I5wfZLGDbzRHrQzMFVkr4vgW47zERZI
MobxSpZMftpLplm23tl5Q95Zvc2KOPtLgx/03bxoyMEqW0odAQI7F2l5Ts1j
bjQBnGRGWJcVY6XYQ/sitQVb0DvlgpWJ72WN9znSmzFHNx9gOCxh5ZZcdkpV
AMe+JZ28EMahCkRkzTtxwxQDszcV8RoOeAPN+dUIs9FqaUmwXu1jwkT2ZM8E
b6/eXD85v71Wx5bWUEEZVevfJ2RQs9n08skL+j+3key8bQGR/YIEb1B7YbKf
WkfBBxMxkgbfZi+2jKILql9o4o6ukAzi7u5Kgr16Dkq7dT7j932xblJhWwWk
inpVZMBaGMqCkNxwhYgF1DNYzl6Y9Pjiw6xL+ofJVa9NVxgYq5C8sEkNShK+
tkYScWSoDWE+V4ZyYiM79bg+wKhCbBbAuto6DhuZSWyTSfK90IzkUqMIBYpt
Se3SthLRr4wJTyTpewDyk9XMXkSOrsgMYYkLbSrDlSUhONjgBpsT4taThM3n
7CaeaVemqBAGmbXNMCBvMLDJkLwBMAtaim+plo3GcmrjE4zhkI7sUDveDNrq
vsgcaxXoIIcYXLakAo5fDDNJ9mzquZu4YcNcdwie0xk+O+9DiTRV0Gjh7Jal
hqvGpPFxp/su/nEVMagDGB0Vi4g7hxUCV6jSRfFiqG3eH4Ct6UjIAfvCQv0I
QVmd1L5yE+yeoQ9hajsQxX4gjqzXm4S2VWeBAj+yko226N+UIZ6xBKJATCWd
kTgloVYsi0IFxL62RePafDqUPuGo7pDQAtgyJhPDAQVIDw4lBdy5MXm7KzF1
P3iIRK609/i52RVFSrJLGq57DbzTVFVREXBc0hpIrnvih7URdHWzjKkMDdvk
nBGwR4m511G/jLgsdOp8ogIykLpizA4AO4MrW3Zw62vqbYXb86sN+KcEuEyq
DujYq4eOla09yxG00ky7MCmmg2/WRVwg6hEPI3gUEJWsuRcV/YRJwTPNTW4W
lvkvhZWCt9WOJQlu2DmJdIn2FW+C0CQi0y5LcTlQMRCKgxqf8MlBpLkOvDN6
W2qB9uGOMlYwsIcG6yV5XRlEOEBAH4qbnTJh1Bu99SyCpYv0EPr1th205xU6
XKJg5hsqk0dvCYfVTKIB4xmmekETYuEhW3jrwRp8A4SmQ1CZ3jMExyscFMX0
wJIY8inSATk1wVo4d27rCpj6ushlTdGLvRqC8OUfv/sefLkl0pOnJ95DZfwg
/bnfw26u9ulRUzJi69+zzzzl11YI2vARwD5k6SnVk7ZtKk5nOVFZ2ULSb386
1b7gZboQLeWXFLPbgEmGHA4H/T7avFgyWYoR1KqNVHt+6x2hc93pog3wXnte
TU4Yg6xkfEBlQaTIh4HZyD+Yx2CwDIAA8PmoKfVpK1bCdTJIgdzxbDQaPVbq
8eMrjDswqLPHj9UrbwJcfudU4GEDmMg4r0m8t0Gag5H4FK0VNMWqElk24Jil
erg0NelWd3jQL1e0Lt6/mF48eWfy4sSH9/Se65veqwPV8KSwn+mSNmjv3i9C
jg8XrdaiT5GINxHkGnzgaJKB08DwadvijICFNag4Q8Acy9nYpF5NwCDjVi7W
iX78gjhLCWyQ/T9dUrNV1p5vGdIkZn1FwTZAgexW20yqcLnNqDxOi5btsLwQ
fn1q01c+NxAMuhXWcZESn1r40oOcGvQcje0v06USz223fiBa+cm5rolNUpZI
ZUks2J2xHd56BKXcYRsy9Q9SavxA+cOHi5cf1NwKyNLH6a1awb/DOqguAX+r
Olq2Nz+b1M4evLgRS4sWKDIpJ37FPujzAcc4vn774kRdzpDcrnWKDsfPvgtH
1AKT2nEOmVIpkm8icA0E8/uLPgiOsRc+ka8XPm/lIYPgGJx6CQuMi9Nc4ogh
BWMO5rNJgV5NedTYa0D2WdHti9x5lubq9uCyf5LfLYfjg69MBQo7iJUdsW1j
ZkhtiYhuc515QPWDbtsASkMflrmUplemqQjt4s7PcvI9rihV6pJunXjjneau
9MHo+PJ2img0NOdQs8YyXJHSH69QKviDQdWBe7fydnRCIEypf6QB6cgZg493
giXE3jJkRHLpQgqkfEWGCmdxtS1rJoHbtNCJVOh0igDspCGvoxM+MCKP+eyc
GoKke4LJdRWLiLPuVUD7VXZ2lNnt4JrJnOoF3e0AOY34sxswsNljz87IVYjG
sc3IMQmngpLA9nwrXK4INU+Zk3J9wpj3AhrnMZu/8J03nPDyMo/P3745GbKC
PQDyuBMIWUikNCy9rlME2vg+0PI2IVpSXO4Bq89suJQkw/WAkjKVvfswQqV8
stZDMgEyH85d8Y+CKiuUzFCo18GaAvC2AcZ8jI0hE1BuJYcX9QrmsyrSJED9
qZLK43f4e3J4PXzIw5TSp7ROEHMPLOfCU0Jez8mercdE59tgRfXXUj5M+uDM
M3HZklgHNSIrW/TCS8UQ5KFEf7RZk/WZpUMwkghzKdROnQu1U296B0Z3IZSL
UdyCJIsjn3wlJwQf7h/z0gWbIB9b9Y/LgNMcW0KcCaXsQc2YK997Z2FjTg7p
e89eoi6yHog+B8IPS9RQKSrmeM+HqywmtKKyS7Efp1kqLW+U2WH7hC3j/eJF
SxJFXV+IgVmR2zoQq24//SMl3rsFgZOCPB1yJwCOpEG+t8COBb12TXzi/UJz
Gz444QMrCdVzs0vlpHbXzSWh2DWOIAedZIHtNaZ54WmZ98Oe/wR9+pNJP9LF
S256wJW8JBKTySmQkRXLiUtiK4qiREF6BQYNwGX6F4pn/siSD2911d60esHR
GcZs/P2ew3SKD2yLhGJiOMQm0jOW0L9I9VLq83IXtn8Goo5Pn3/LU50+f3ZC
htNHcpEZez2syrvAmMEHYXkhhwCEaP7EVk7uvaSkKiZBae2vKg7oJJdGb/Lo
VvMBGVLMYUW0/6nHCgKIhjKQ8Kp4GKb5OsIG1Jel8WRIgTom5p26JQh8XoS4
z+U3HcdI7fk4iMPr18Y8BFQJTztrSkxs5WgtuFdqFnUgjAfJQbjKFHGVNNwf
DOfm4veCTwAXDlmdOXd2sKcG7RXhVSfGR61ptmAkPVt8UBdxSneqjoVEnvQM
zx4Sn7+ESwemd1Qa9eUFw4cogqffnHwYt8jqL6RQRGp1V8j9LYSm9ozZm+Nh
W/NbpCoR1a8gZUBaxSfuvXsecPwGnj8XOADgqRmAFJGfTske2DuJH3Fe/I7d
i08gg5d7ssOhqedv5G5oCm+D1CkLIMIH4pxTek0RCQRgcNraHsCFE1wJwa1S
aXAqboEH3JtxuPHpWoL/5QNb1vzr0J1S5A1cmKtDB7ZdtzZBIy+ksfow+/Xa
XxXCU3R+8R8fOqyj3Hh4yaHFoclDkmU5DvbVq6oz6Q5l052z4d1zREa+w8Dn
y2btbYeWU5BOLlqd+CqCv4L+oB/wOW7eUQKZGCsMefofppd79FO4scoHRrCh
8mcjHF1TImiTPqdfgPXN6WZMWkBGCIoCNem2PQQzyf/+9z/F2PtXZXNesPlo
4oZNP8zX4ygBOsKdje4qUYtHVPos6HIW2+Ii5avHq8KZzkGxPb5a2GYk7TAR
pVYEh+HQQe63+7fDyxfP+pcs+DYduUt7cyWArRvcM2PfJYJAR9F8KCElw96p
J99CXsjJzAHd8M22Xn7dCwztNcK2FMO3hjxi+2vKlq4GSVEb/e5pC9KtN2bv
XgCfi8cU2deWWWFQQWtIPYyyuWdLQn/85Cy2nqG5QHWoMH6ImBLje4CdHiiv
flUxlfcb0x3kasmuKFchw+Y7XNsElNV8mqLT4LjtfgV+u6IQX+zoLsy0V8WG
QcGDXtiOR0ZitRWxr3R7QDzMPmbhDuLFINuUf0oQDkIwe1t5BHGkksoaoxaV
64JKP294+OIc5NsjDRN1/v+S9x4Bbc+LxRvEPXz8K9s8aOdCCs+UPFA34Zow
1y713g0xiSXh32M8UtPz6/M9+Q3vxq80KVBa6jjgL/1TDsKy0f8BRyi/MM42
AAA=

-->

</rfc>
