<?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-mazilu-tcpm-packet-trimming-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="false" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="TCP Trimming">TCP Packet Trimming Extension</title>
    <seriesInfo name="Internet-Draft" value="draft-mazilu-tcpm-packet-trimming-00"/>
    <author initials="F." surname="Mazilu" fullname="Flavius Romeo Mazilu">
      <organization>POLITEHNICA Bucharest</organization>
      <address>
        <email>flavius.mazilu@stud.acs.upb.ro</email>
      </address>
    </author>
    <author initials="V." surname="Bobaru" fullname="Valentin Ionut Bobaru">
      <organization>POLITEHNICA Bucharest</organization>
      <address>
        <email>valentin.bobaru@stud.acs.upb.ro</email>
      </address>
    </author>
    <author initials="C." surname="Raiciu" fullname="Costin Raiciu">
      <organization>POLITEHNICA Bucharest / Broadcom Inc.</organization>
      <address>
        <email>costin.raiciu@upb.ro</email>
      </address>
    </author>
    <date year="2026" month="July" day="06"/>
    <area>Transport</area>
    <abstract>
<t>This document specifies a TCP extension that enables TCP endpoints in data center networks or similarly controlled administrative domains to use packet trimming information when it is available. When switch buffers exceed a threshold, rather than silently dropping a packet, the switch trims the payload and forwards the header. This allows the destination to issue a deterministic Negative Acknowledgment (NACK), enabling faster, more deterministic loss recovery.</t>
    </abstract>
  </front>
  <middle>
<section anchor="introduction">
      <name>Introduction</name>
      <t>TCP's congestion control relies primarily on packet loss as a signal of congestion, or Explicit Congestion Notification (ECN) <xref target="RFC3168"/> as a proactive measure. The accuracy and speed of these signals are vital for a mechanism to adapt quickly and utilize available bandwidth efficiently.</t>
      <t>It is widely recognized that falling back to a Retransmission Timeout (RTO) <xref target="RFC6298"/> is undesirable. RTOs are overly conservative, drastically reduce the congestion window to one segment, and impose a high latency penalty (traditionally bounded to a 1-second minimum, though modern implementations often use around 300 ms).</t>
      <t>For these reasons, fast retransmit <xref target="RFC5681"/> is always preferred, as it recovers from loss much faster. The duplicate acknowledgment (DupAck) heuristic was the first method introduced to achieve this, but it suffers in environments with high packet reordering, short flows, or when packets at the end of a flight are lost (tail loss). RACK-TLP <xref target="RFC8985"/> represents a more modern approach, utilizing a Tail Loss Probe (TLP) for tail losses and replacing sequence-based DupAck counting with time-based inferences derived from per-segment transmit timestamps.</t>
      <t>However, because these approaches are fundamentally heuristics, they can fail to detect lost packets in time (forcing an RTO) or trigger false retransmissions, particularly in networks with significant packet reordering.</t>
      <t>Packet Trimming offers a deterministic alternative. Originally introduced in the Ultra Ethernet Consortium's specifications <xref target="UEC-SPEC"/>, this approach is gaining support in modern network switch hardware. When switch buffers get full or exceed a certain threshold (as in Active Queue Management), rather than silently dropping the packet, the switch trims the payload. It retains only the bytes up to the transport header and forwards this "trimmed" packet to the destination.</t>
      <t>By using Differentiated Services Code Point (DSCP) markings <xref target="RFC2474"/>, the network can inform the destination of the trimming event. The destination then issues a Negative Acknowledgment (NACK) carrying the specific sequence number of the affected packet, eliminating the need for the data sender to rely on heuristics to determine what to retransmit.</t>
      <t>This document defines the TCP signaling and endpoint behavior needed to use this information in data center networks or similarly controlled administrative domains. It does not specify how a network is configured for packet trimming, which packets a switch chooses to trim, or how DSCP values are provisioned inside such a domain. That network-side configuration is outside the scope of this document; deployments can refer to the Ultra Ethernet Consortium specifications <xref target="UEC-SPEC"/>.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 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>
    </section>
    <section anchor="tcp-extensions-for-packet-trimming">
      <name>TCP Extensions for Packet Trimming</name>
      <t>All additional state and signaling required between the two communicating hosts are carried as TCP options.</t>
      <section anchor="capability-negotiation-trimming-permitted">
        <name>Capability Negotiation (Trimming Permitted)</name>
        <t>If both endpoints support packet trimming, they SHOULD set the DSCP_TRIMMABLE codepoint on all data packets. However, to prevent a scenario where a sender marks packets as trimmable but the receiver does not understand how to process trimmed packets or issue NACKs, capability negotiation is required.</t>
        <t>A new TCP option, Trimming Permitted, MUST be exchanged during the three-way handshake. Only if both the SYN and SYN+ACK packets carry this option will the subsequent data packets be considered trimmable. This option MUST NOT be set on non-SYN packets. It is similar in this regard to the SACK Permitted option <xref target="RFC2018"/>.</t>
        <t>TCP Trimming Permitted Option Format:</t>
        <figure anchor="fig-trimming-permitted-option">
          <artwork type="ascii-art"><![CDATA[
    +----------+----------+
    | Kind=TBD | Length=2 |
    +----------+----------+
]]></artwork>
        </figure>
      </section>
      <section anchor="trimming-nack-option">
        <name>Trimming NACK Option</name>
        <t>When congestion occurs at a network switch along the path, the switch trims the payload of trimmable packets, updates the IP header to DSCP_TRIMMED, and forwards the header to the data receiver.</t>
        <t>Upon receiving a packet, the data receiver inspects the DSCP field. If the packet is marked as DSCP_TRIMMED, the receiver MUST immediately issue a new TCP packet with no data payload, carrying the Trimming NACK option. This option contains the sequence number of the trimmed packet. The receiver MAY include other options in this packet (e.g., SACK blocks <xref target="RFC2018"/>); there is not any requirement for NACK to be the only option set.</t>
        <t>Trimming NACK Option Format:</t>
        <figure anchor="fig-trimming-nack-option-format">
          <artwork type="ascii-art"><![CDATA[
 Kind: TBD
 Length: 6 bytes
 Payload: 4 bytes (NACK sequence number)
    +-----------+---------+------------+
    | Kind= TBD | Length=6| Payload 4B |
    +-----------+---------+------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="basic-trimming-packet-flow">
        <name>Basic Trimming Packet Flow</name>
        <t>The following diagram illustrates the flow of packets when congestion occurs and a packet is trimmed:</t>
        <figure anchor="fig-basic-trimming-packet-flow">
          <artwork type="ascii-art"><![CDATA[
Event  TCP DATA SENDER                     TCP DATA RECEIVER
_____  ____________________________________________________________
  1.   [Sends Full Packet]        -->   [Receives Header Only]
        Format: IP|TCP|Payload              Format: IP|TCP
        DSCP:   DSCP_TRIMMABLE              DSCP:   DSCP_TRIMMED
        SEQ:    X                           SEQ:    X

                                          (Receiver detects Payload
                                          removal via DSCP change)

                                  <--    [Sends NACK Signal]
                                            Format: IP|TCP
                                            Options: NACK X

  2.   Receive NACK X
        (Triggers instant recovery
        of original payload)

        Retransmit segment X      -->    [Receives Full Packet]
        Format: IP|TCP|Payload              Format: IP|TCP|Payload
        DSCP:   DSCP_TRIMMABLE              DSCP:   DSCP_TRIMMABLE
        SEQ:    X                           SEQ:    X
]]></artwork>
        </figure>
      </section>
      <section anchor="effects-of-trimming-on-tcp-checksum-and-payload">
        <name>Effects of Trimming on TCP Checksum and Payload</name>
        <t>When a switch trims a packet, it updates the relevant IP header fields, including Total Length, Time to Live, Differentiated Services Code Point (DSCP), and IP Checksum. However, to avoid the high computational cost of parsing transport-layer headers, the switch does not update the TCP header <xref target="RFC9293"/>. Consequently, the TCP checksum remains calculated against the original, full payload, rendering it invalid for the trimmed packet.</t>
        <t>Switches may not trim the payload precisely at the TCP header boundary, as doing so requires parsing variable-length TCP headers to locate the data offset. Therefore, a trimmed packet may still contain a partial payload fragment. Since the TCP checksum is invalid, the integrity of this data cannot be verified.</t>
      </section>
    </section>
    <section anchor="data-receiver-behavior-upon-receiving-a-trimmed-packet">
      <name>Data Receiver Behavior upon Receiving a Trimmed Packet</name>
      <section anchor="bypassing-tcp-checksum-validation">
        <name>Bypassing TCP Checksum Validation</name>
        <t>When a TCP data receiver identifies a trimmed packet by observing the DSCP_TRIMMED codepoint in the IP header, it MUST skip the standard TCP checksum verification for that packet, because trimming removes payload bytes that were covered by the original checksum. The receiver MUST process the packet only according to the trimmed-packet rules in this section; it MUST NOT treat the packet as ordinary TCP data.</t>
        <t>The checksum effects of trimming are described in <xref target="effects-of-trimming-on-tcp-checksum-and-payload"/>. Security considerations for bypassing checksum validation are discussed in <xref target="risks-of-bypassing-the-tcp-checksum"/>.</t>
      </section>
      <section anchor="ignoring-remaining-payload">
        <name>Ignoring Remaining Payload</name>
        <t>A trimmed packet may still contain payload bytes after the TCP header. The data receiver MUST NOT process, acknowledge, or deliver any payload data remaining in the trimmed packet.</t>
      </section>
      <section anchor="generating-the-nack-packet">
        <name>Generating the NACK Packet</name>
        <t>Upon processing a valid trimmed packet, the data receiver SHOULD immediately generate and transmit a new TCP packet to the data sender. This packet MUST NOT contain any payload data. It MUST include the NACK TCP option.</t>
        <t>The NACK option payload is 4 bytes in length and MUST contain the sequence number extracted from the received trimmed packet.</t>
      </section>
    </section>
    <section anchor="data-sender-behavior-upon-receiving-a-nack">
      <name>Data Sender Behavior upon Receiving a NACK</name>
      <section anchor="identifying-and-retransmitting-the-lost-segment">
        <name>Identifying and Retransmitting the Lost Segment</name>
        <t>Upon receiving a TCP packet containing a NACK option, the data sender should extract the sequence number from the NACK option payload and locate the corresponding unacknowledged data segment in its retransmission queue.</t>
        <t>Due to mechanisms such as TCP Segmentation Offload (TSO) or middlebox fragmentation, the sequence number reported in the NACK might not match the exact starting sequence number of a segment in the data sender's queue. The data sender should identify the segment where the sequence space covers the NACKed sequence number (i.e., Segment.SEQ &lt;= NACK.SEQ &lt; Segment.SEQ + Segment.LEN).</t>
        <t>Once the appropriate segment is identified, the data sender MUST mark it as lost and SHOULD retransmit a SMSS starting from NACK sequence number immediately, subject to congestion window and flow control limits. If no unacknowledged segment covers the sequence number provided in the NACK (e.g., the segment has already been acknowledged or the NACK was spurious), the data sender MUST ignore the NACK and MUST NOT proceed to <xref target="entering-fast-recovery"/>.</t>
      </section>
      <section anchor="entering-fast-recovery">
        <name>Entering Fast Recovery</name>
        <t>If the sender successfully identifies and marks a segment as lost based on a NACK, it MUST enter Fast Recovery (as defined in <xref target="RFC5681"/>), provided it is not already in a recovery phase.</t>
        <t>A trimmed packet is an explicit signal of network congestion and packet loss. The data sender should anticipate that other packets within the same flight may have also been trimmed or dropped, which will be subsequently detected via additional NACKs, Duplicate ACKs, or RACK-TLP <xref target="RFC8985"/> timer expirations. By entering Fast Recovery, the data sender ensures that the congestion window is appropriately updated just once for the entire loss episode, conforming to the principle that losses, regardless of the detection mechanism, constitute a unified indication of congestion.</t>
      </section>
    </section>
    <section anchor="dscp-marking-strategy">
      <name>DSCP Marking Strategy</name>
      <t>This specification introduces the use of specific DSCP values to manage trimming behavior:</t>
      <ul spacing="normal">
        <li>
          <t>DSCP_TRIMMABLE: Applied by the sender to data packets eligible for trimming.</t>
        </li>
        <li>
          <t>DSCP_TRIMMED: Applied by a network switch after removing a packet's payload.</t>
        </li>
      </ul>
      <t>Ideally, network switches should utilize at least two queues per port: a standard queue for DSCP_TRIMMABLE and regular traffic, and a high-priority queue for DSCP_TRIMMED and other control packets.</t>
      <t>Return Path DSCP for NACKs:</t>
      <t>A critical consideration is the DSCP value applied to the return NACK packets. These should ideally bypass standard data low priority queue to reach the sender with minimal latency.</t>
      <ul spacing="normal">
        <li>
          <t>Alternative 1 (DSCP_TRIMMED): NACKs could use DSCP_TRIMMED. However, this requires demultiplexing at the sender to differentiate incoming NACKs from inbound data packets that were trimmed on the reverse path.</t>
        </li>
        <li>
          <t>Alternative 2 (DSCP_CONTROL): The optimal approach, echoing Ultra Ethernet Transport protocols, is to map control packets to a dedicated DSCP_CONTROL codepoint. NACKs, pure ACKs, and FINs can utilize this to achieve improved latency.</t>
        </li>
        <li>
          <t>Alternative 3 (DSCP_TRIMMABLE): NACKs are sent with standard data priority. This reduces the number of required DSCP values but sacrifices the latency advantage needed for rapid fast-recovery.</t>
        </li>
      </ul>
    </section>
    <section anchor="interaction-with-existing-loss-detection-mechanisms">
      <name>Interaction with Existing Loss Detection Mechanisms</name>
      <t>In a fully trimming-enabled network topology where every switch is capable of packet trimming, heuristic mechanisms like DupAck and RACK-TLP MAY be disabled. Packet Trimming naturally handles high degrees of packet reordering without generating the false positive retransmissions common to DupAck heuristics.</t>
      <t>This extension is scoped to data center networks or similarly controlled administrative domains where the path can be configured for packet trimming. Outside such a trimming-enabled domain, endpoints MUST NOT assume that the path supports trimming. Consequently, DupAck and RACK-TLP MUST NOT be disabled in those cases. Packet Trimming does not hinder their functionality and can work cooperatively alongside these mechanisms.</t>
      <section anchor="interaction-with-rack-tlp">
        <name>Interaction with RACK-TLP</name>
        <t>Upon receiving a NACK, the data sender enters Fast Retransmit, retransmits the specified packet, and transitions to Fast Recovery. In this state, RACK-TLP continues to monitor for lost packets. RACK-TLP will not falsely retransmit the trimmed packet again because its internal RACK timer (based on rack.RTT + rack.reo_wnd) will not have expired for the newly retransmitted segment.</t>
        <t>Scenario A: Mixed Drop and Trim Events</t>
        <t>If a flight contains both dropped and trimmed packets, NACKs and SACKs cooperatively recover the flight:</t>
        <figure anchor="fig-mixed-drop-and-trim-events">
          <artwork type="ascii-art"><![CDATA[
Event  TCP DATA SENDER                        TCP DATA RECEIVER
 _____  _________________________________________________________
   1.   Send P0, P1, P2, P3          -->
        [P1 dropped by network]
        [P2 trimmed by network]
                                     <--   Receive P0, ACK 0
                                     <--   Receive P2 (Trimmed),
                                                NACK 2, ACK 0
                                     <--   Receive P3, ACK 0, SACK 3

   2.   Receive ACK 0
        Receive NACK 2, ACK 0
        (NACK triggers immediate
         retransmission of P2)
        Retransmit P2                -->
                                     <--          Receive P2, ACK 0,
                                                     SACK 2, 3

   3.   Receive ACK 0, SACK 2, 3
        RACK-TLP timer expires
        [Logic: Now() - P1_ts > RTT + reo_wnd?]
        (Condition = YES)
        Retransmit P1                -->
                                     <--          Receive P1, ACK 3
]]></artwork>
        </figure>
        <t>Scenario B: Delayed NACK / Preemptive SACK</t>
        <t>If a SACK arrives before a NACK, and the rack.RTT + rack.reo_wnd threshold has not been met, no retransmission occurs. When the NACK subsequently arrives, P2 is instantly recovered. The succeeding ACK+SACK for P2 provides the necessary time-lapse evidence for RACK to securely declare P1 lost and trigger its retransmission. This improves the standard RACK-TLP behavior which would otherwise, in this scenario, wait 2 RTTs for sending a TLP probe. By having the NACK trigger a retransmission which would bring more SACK information does the same thing as a TLP probe would do but faster, in only 1 RTT.</t>
        <figure anchor="fig-delayed-nack-preemptive-sack">
          <artwork type="ascii-art"><![CDATA[
Event  TCP DATA SENDER                           TCP DATA RECEIVER
 _____  ____________________________________________________________
   1.   Send P0, P1, P2, P3          -->
        [P1 dropped by network]
        [P2 trimmed by network]
                                     <--   Receive P0, ACK 0
                                     <--   Receive P2 (Trimmed),
                                                ACK 0, NACK 2
                                     <--   Receive P3, ACK 0, SACK 3

   2.   Receive ACK 0
        Receive ACK 0, SACK 3
        [No retransmission yet:
         Thresholds not met]

   3.   Receive NACK 2, ACK 0
        (Immediate recovery of P2)
        Retransmit P2                -->
                                     <--    Receive P2, ACK 0, SACK 2

   4.   Receive ACK 0, SACK 2
        (RACK: Since a later packet
         P2 has been delivered, P1
         is marked lost by time)
        Retransmit P1                -->
                                     <--      Receive P1, ACK 3
                                            (All data now contiguous)
]]></artwork>
        </figure>
        <t>(Implementation Note: To prevent redundant retransmissions in edge cases where a NACK arrives late but RACK has already retransmitted the segment, implementations MAY enforce a rule where NACK-driven retransmissions are ignored if the segment was already retransmitted within the last min_RTT.)</t>
      </section>
    </section>
    <section anchor="congestion-control-considerations">
      <name>Congestion Control Considerations</name>
      <t>A trimmed packet is an explicit and authoritative indication of network congestion: a switch removed the payload precisely because a queue exceeded its threshold. A NACK therefore conveys both a loss to be repaired and a congestion signal. A trimming sender MUST treat the receipt of a NACK as an indication of congestion and reduce its sending rate, as it would for a segment loss detected by other means <xref target="RFC5681"/>.</t>
      <t>The precise magnitude of this reduction is left as future work. Because trimming reports loss on a per-segment basis, a sender learns the exact number of segments lost in a flight rather than merely inferring that at least one was lost, which may permit a more accurate response than a single multiplicative decrease per loss episode. Defining and evaluating such a response is an open item; this document requires only that the reaction to a NACK be no more aggressive than the standard response to an equivalent inferred loss <xref target="RFC5681"/>.</t>
      <t>A retransmission triggered by a NACK is ordinary TCP data: it MUST remain subject to the congestion window and to the count of packets in flight, and MUST NOT bypass these limits. If the congestion window does not currently allow the retransmission, the retransmission is sent once the window permits.</t>
      <t>Because a NACK is generated only after a switch has actually removed a payload, the corresponding loss is never spurious; a sender SHOULD NOT undo a congestion-window reduction caused by a NACK. Reductions caused by inference-based mechanisms that remain enabled follow their own rules; see <xref target="interaction-with-existing-loss-detection-mechanisms"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="tcp-options">
        <name>TCP Options</name>
        <t>This document defines two new TCP options that require assignment from the "TCP Option Kind Numbers" registry <xref target="RFC9293"/>. IANA is requested to assign two values:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Kind</th>
              <th align="left">Length</th>
              <th align="left">Meaning</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">2</td>
              <td align="left">Trimming Permitted</td>
              <td align="left">This document</td>
            </tr>
            <tr>
              <td align="left">TBD2</td>
              <td align="left">6</td>
              <td align="left">Trimming NACK</td>
              <td align="left">This document</td>
            </tr>
          </tbody>
        </table>
        <t>The option formats are specified in <xref target="capability-negotiation-trimming-permitted"/> and <xref target="trimming-nack-option"/>. Prior to the assignment of permanent Kind values, experimental deployments can carry these options using the shared experimental option Kinds and an Experiment Identifier as described in <xref target="RFC6994"/>.</t>
      </section>
      <section anchor="differentiated-services-codepoints">
        <name>Differentiated Services Codepoints</name>
        <t>This document does not request any new assignments from the Differentiated Services Field Codepoints registry. The trimmable, trimmed, and control service classes used in this document (see <xref target="dscp-marking-strategy"/>) are realized with existing Differentiated Services codepoints <xref target="RFC2474"/> selected by local or domain policy. The names DSCP_TRIMMABLE, DSCP_TRIMMED, and DSCP_CONTROL are placeholders for those locally configured codepoints and do not denote new codepoint assignments.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The mechanisms in this document add a new control signal, the NACK, and rely on Differentiated Services markings to convey trimming events. Packet trimming is primarily intended for deployment within a single administrative domain, such as a data center, where the path is largely trusted. The analysis below also notes the residual risks that apply when traffic crosses a less trusted path.</t>
      <section anchor="forged-nack-injection">
        <name>Forged NACK Injection</name>
        <t>An attacker who can inject a TCP segment carrying a forged Trimming NACK option for an existing connection can attempt to force the sender to retransmit a segment, wasting bandwidth and provoking an unwarranted reduction of the congestion window. Several factors bound this attack:</t>
        <ul spacing="normal">
          <li>
            <t>A NACK is acted upon only when it arrives on a segment that passes the connection's normal demultiplexing checks. An off-path attacker must therefore guess the connection's four-tuple, as for any spoofed TCP segment.</t>
          </li>
          <li>
            <t>As required in <xref target="identifying-and-retransmitting-the-lost-segment"/>, the sender MUST ignore a NACK whose sequence number does not correspond to an outstanding unacknowledged segment. A forged NACK is effective only for an in-window sequence number, which confines the attack to the same blind in-window space analyzed in <xref target="RFC5961"/>.</t>
          </li>
          <li>
            <t>A retransmission provoked by a forged NACK carries only data the receiver legitimately expects; it cannot cause the receiver to accept incorrect data. The impact is limited to wasted bandwidth and an unnecessary congestion-window reduction.</t>
          </li>
        </ul>
        <t>To bound the congestion impact, the response to a NACK SHOULD be no larger than the response to an equivalent loss inferred by other means, so that a forged NACK is no more damaging than a forged duplicate acknowledgment. Implementations MAY additionally rate-limit the retransmissions and congestion reactions driven by NACKs.</t>
      </section>
      <section anchor="risks-of-bypassing-the-tcp-checksum">
        <name>Risks of Bypassing the TCP Checksum</name>
        <t>As described in <xref target="bypassing-tcp-checksum-validation"/>, a receiver skips TCP checksum validation for a trimmed packet. This weakens the end-to-end integrity check for the header of that packet, so corruption of those header fields may pass undetected. The consequences are bounded by the restricted use the receiver makes of a trimmed packet. The receiver reads only the connection four-tuple and the sequence number, and MUST NOT deliver any payload from a trimmed packet to the application (see <xref target="ignoring-remaining-payload"/>).</t>
        <t>Undetected corruption can have the following effects:</t>
        <ul spacing="normal">
          <li>
            <t>Corrupted port numbers: If the source or destination port is corrupted, the receiver may fail to find a matching connection socket and discard the packet. If a false match occurs, the receiver will issue a NACK for an unexpected sequence number, which the sender will ignore unless that sequence number matches an unacknowledged packet.</t>
          </li>
          <li>
            <t>Corrupted sequence number: If the sequence number is corrupted, the receiver will issue a NACK for an incorrect sequence number. As with a forged NACK, this is ignored unless it falls within the outstanding window, and even then it can only cause a spurious retransmission, which the receiver disambiguates with a Duplicate SACK <xref target="RFC2883"/>.</t>
          </li>
        </ul>
      </section>
      <section anchor="dscp-remarking-and-priority-abuse">
        <name>DSCP Remarking and Priority Abuse</name>
        <t>This specification places control traffic, including NACKs, and trimmed packets into higher-priority service classes than ordinary trimmable data (see <xref target="dscp-marking-strategy"/>). Where traffic can cross a trust boundary, this raises two DSCP-related concerns:</t>
        <ul spacing="normal">
          <li>
            <t>Priority theft: an attacker that sets the control or trimmed-class codepoint on its own traffic could obtain preferential queueing, claiming an unfair share of capacity or degrading the latency of legitimate control traffic.</t>
          </li>
          <li>
            <t>Trimming evasion: an attacker that clears the trimmable codepoint on its flows could render them ineligible for trimming, escaping the congestion response that trimming imposes and competing unfairly with conforming flows.</t>
          </li>
        </ul>
        <t>Both are instances of the general Differentiated Services trust model <xref target="RFC2474"/> <xref target="RFC2475"/>: DSCP markings arriving from outside a trust boundary cannot be relied upon. A trimming-enabled domain MUST treat its boundary as a trust boundary and police or re-mark the DSCP of ingress traffic, so that the trimmable, trimmed, and control codepoints carry their intended meaning only within the domain that enforces them.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <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" target="https://www.rfc-editor.org/info/rfc8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <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>
        <reference anchor="RFC9293" target="https://www.rfc-editor.org/info/rfc9293" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9293.xml">
          <front>
            <title>Transmission Control Protocol (TCP)</title>
            <author fullname="W. Eddy" initials="W." role="editor" surname="Eddy"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>This document specifies the Transmission Control Protocol (TCP). TCP is an important transport-layer protocol in the Internet protocol stack, and it has continuously evolved over decades of use and growth of the Internet. Over this time, a number of changes have been made to TCP as it was specified in RFC 793, though these have only been documented in a piecemeal fashion. This document collects and brings those changes together with the protocol specification from RFC 793. This document obsoletes RFC 793, as well as RFCs 879, 2873, 6093, 6429, 6528, and 6691 that updated parts of RFC 793. It updates RFCs 1011 and 1122, and it should be considered as a replacement for the portions of those documents dealing with TCP requirements. It also updates RFC 5961 by adding a small clarification in reset handling while in the SYN-RECEIVED state. The TCP header control bits from RFC 793 have also been updated based on RFC 3168.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="7"/>
          <seriesInfo name="RFC" value="9293"/>
          <seriesInfo name="DOI" value="10.17487/RFC9293"/>
        </reference>
        <reference anchor="RFC2474" target="https://www.rfc-editor.org/info/rfc2474" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2474.xml">
          <front>
            <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
            <author fullname="K. Nichols" initials="K." surname="Nichols"/>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2474"/>
          <seriesInfo name="DOI" value="10.17487/RFC2474"/>
        </reference>
        <reference anchor="RFC5681" target="https://www.rfc-editor.org/info/rfc5681" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5681.xml">
          <front>
            <title>TCP Congestion Control</title>
            <author fullname="M. Allman" initials="M." surname="Allman"/>
            <author fullname="V. Paxson" initials="V." surname="Paxson"/>
            <author fullname="E. Blanton" initials="E." surname="Blanton"/>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document defines TCP's four intertwined congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery. In addition, the document specifies how TCP should begin transmission after a relatively long idle period, as well as discussing various acknowledgment generation methods. This document obsoletes RFC 2581. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5681"/>
          <seriesInfo name="DOI" value="10.17487/RFC5681"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC2018" target="https://www.rfc-editor.org/info/rfc2018" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2018.xml">
          <front>
            <title>TCP Selective Acknowledgment Options</title>
            <author fullname="M. Mathis" initials="M." surname="Mathis"/>
            <author fullname="J. Mahdavi" initials="J." surname="Mahdavi"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="A. Romanow" initials="A." surname="Romanow"/>
            <date month="October" year="1996"/>
            <abstract>
              <t>This memo proposes an implementation of SACK and discusses its performance and related issues. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2018"/>
          <seriesInfo name="DOI" value="10.17487/RFC2018"/>
        </reference>
        <reference anchor="RFC2475" target="https://www.rfc-editor.org/info/rfc2475" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2475.xml">
          <front>
            <title>An Architecture for Differentiated Services</title>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <author fullname="M. Carlson" initials="M." surname="Carlson"/>
            <author fullname="E. Davies" initials="E." surname="Davies"/>
            <author fullname="Z. Wang" initials="Z." surname="Wang"/>
            <author fullname="W. Weiss" initials="W." surname="Weiss"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines an architecture for implementing scalable service differentiation in the Internet. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2475"/>
          <seriesInfo name="DOI" value="10.17487/RFC2475"/>
        </reference>
        <reference anchor="RFC2883" target="https://www.rfc-editor.org/info/rfc2883" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2883.xml">
          <front>
            <title>An Extension to the Selective Acknowledgement (SACK) Option for TCP</title>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="J. Mahdavi" initials="J." surname="Mahdavi"/>
            <author fullname="M. Mathis" initials="M." surname="Mathis"/>
            <author fullname="M. Podolsky" initials="M." surname="Podolsky"/>
            <date month="July" year="2000"/>
            <abstract>
              <t>This note defines an extension of the Selective Acknowledgement (SACK) Option for TCP. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2883"/>
          <seriesInfo name="DOI" value="10.17487/RFC2883"/>
        </reference>
        <reference anchor="RFC3168" target="https://www.rfc-editor.org/info/rfc3168" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3168.xml">
          <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="RFC5961" target="https://www.rfc-editor.org/info/rfc5961" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5961.xml">
          <front>
            <title>Improving TCP's Robustness to Blind In-Window Attacks</title>
            <author fullname="A. Ramaiah" initials="A." surname="Ramaiah"/>
            <author fullname="R. Stewart" initials="R." surname="Stewart"/>
            <author fullname="M. Dalal" initials="M." surname="Dalal"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>TCP has historically been considered to be protected against spoofed off-path packet injection attacks by relying on the fact that it is difficult to guess the 4-tuple (the source and destination IP addresses and the source and destination ports) in combination with the 32-bit sequence number(s). A combination of increasing window sizes and applications using longer-term connections (e.g., H-323 or Border Gateway Protocol (BGP) [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5961"/>
          <seriesInfo name="DOI" value="10.17487/RFC5961"/>
        </reference>
        <reference anchor="RFC6298" target="https://www.rfc-editor.org/info/rfc6298" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6298.xml">
          <front>
            <title>Computing TCP's Retransmission Timer</title>
            <author fullname="V. Paxson" initials="V." surname="Paxson"/>
            <author fullname="M. Allman" initials="M." surname="Allman"/>
            <author fullname="J. Chu" initials="J." surname="Chu"/>
            <author fullname="M. Sargent" initials="M." surname="Sargent"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document defines the standard algorithm that Transmission Control Protocol (TCP) senders are required to use to compute and manage their retransmission timer. It expands on the discussion in Section 4.2.3.1 of RFC 1122 and upgrades the requirement of supporting the algorithm from a SHOULD to a MUST. This document obsoletes RFC 2988. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6298"/>
          <seriesInfo name="DOI" value="10.17487/RFC6298"/>
        </reference>
        <reference anchor="RFC6994" target="https://www.rfc-editor.org/info/rfc6994" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6994.xml">
          <front>
            <title>Shared Use of Experimental TCP Options</title>
            <author fullname="J. Touch" initials="J." surname="Touch"/>
            <date month="August" year="2013"/>
            <abstract>
              <t>This document describes how the experimental TCP option codepoints can concurrently support multiple TCP extensions, even within the same connection, using a new IANA TCP experiment identifier. This approach is robust to experiments that are not registered and to those that do not use this sharing mechanism. It is recommended for all new TCP options that use these codepoints.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6994"/>
          <seriesInfo name="DOI" value="10.17487/RFC6994"/>
        </reference>
        <reference anchor="RFC8985" target="https://www.rfc-editor.org/info/rfc8985" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8985.xml">
          <front>
            <title>The RACK-TLP Loss Detection Algorithm for TCP</title>
            <author fullname="Y. Cheng" initials="Y." surname="Cheng"/>
            <author fullname="N. Cardwell" initials="N." surname="Cardwell"/>
            <author fullname="N. Dukkipati" initials="N." surname="Dukkipati"/>
            <author fullname="P. Jha" initials="P." surname="Jha"/>
            <date month="February" year="2021"/>
            <abstract>
              <t>This document presents the RACK-TLP loss detection algorithm for TCP. RACK-TLP uses per-segment transmit timestamps and selective acknowledgments (SACKs) and has two parts. Recent Acknowledgment (RACK) starts fast recovery quickly using time-based inferences derived from acknowledgment (ACK) feedback, and Tail Loss Probe (TLP) leverages RACK and sends a probe packet to trigger ACK feedback to avoid retransmission timeout (RTO) events. Compared to the widely used duplicate acknowledgment (DupAck) threshold approach, RACK-TLP detects losses more efficiently when there are application-limited flights of data, lost retransmissions, or data packet reordering events. It is intended to be an alternative to the DupAck threshold approach.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8985"/>
          <seriesInfo name="DOI" value="10.17487/RFC8985"/>
        </reference>
        <reference anchor="UEC-SPEC" target="https://ultraethernet.org/">
          <front>
            <title>Ultra Ethernet Consortium Specification 1.0</title>
            <author>
              <organization>Ultra Ethernet Consortium</organization>
            </author>
            <date year="2025" month="June"/>
          </front>
        </reference>
      </references>
    </references>
  </back>
  <!-- ##markdown-source:
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
fOUg/hxjAAA=

-->

</rfc>
