<?xml version="1.0" encoding="us-ascii"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.2) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-cmcc-tcp-sro-03" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="SIO">The Session Identifier Option (SIO)</title>

    <author initials="Z." surname="Luo" fullname="Zhaoyu Luo" role="editor">
      <organization>CMCC</organization>
      <address>
        <postal>
          <street>No. 58 Kunlunshan Road</street>
          <city>Suzhou</city>
          <code>215000</code>
          <country>China</country>
        </postal>
        <email>lluozy@yeah.net</email>
      </address>
    </author>
    <author initials="H." surname="Yan" fullname="Haishuang Yan">
      <organization>CMCC</organization>
      <address>
        <postal>
          <street>No. 58 Kunlunshan Road</street>
          <city>Suzhou</city>
          <code>215000</code>
          <country>China</country>
        </postal>
        <email>yanhaishuang_yewu@cmss.chinamobile.com</email>
      </address>
    </author>

    <date year="2026" month="October" day="21"/>

    <area>Internet</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<?line 64?>

<t>This document defines the Session Identifier Option (SIO), carried as a TCP option for TCP connections and as a UDP option for UDP datagrams. The option lets the endpoints of a connection or flow publish identifiers at the transport layer, where network functions on the path - load balancers, NAT gateways, firewalls - can read them without per-flow state and without payload inspection. Network functions of all kinds can benefit from it: session recovery in load-balancing and NAT clusters, stateless forwarding, connection-tracking recovery, and telemetry. The option adds only a few octets, and only to the packets that carry it; which packets carry it is a deployment choice. Endpoints that do not support it behave as if the option did not exist.</t>



    </abstract>



  </front>

  <middle>


<?line 68?>

<section anchor="introduction"><name>Introduction</name>

<t>Almost every transport option standardized to date serves the two endpoints of a connection: MSS, Window Scale, SACK <xref target="RFC9293"/>, and timestamps <xref target="RFC7323"/> tune the transport between the two stacks. The network between the endpoints has evolved differently. Load balancers, NAT gateways, and firewalls are deployed at scale on virtually every path, and they maintain per-connection state that the endpoints are unaware of; yet no TCP option serves this middle tier, UDP has only recently gained an options mechanism at all <xref target="RFC9868"/>, and the session management of this middle tier is implemented privately by every product. The option defined in this document fills this gap: endpoints voluntarily publish, at the transport layer, the identifier of the endpoint a flow belongs to, so that on-path network functions can consume this information without per-flow state and without payload inspection. This follows the direction the IETF set for middleboxes <xref target="RFC3234"/>: middleboxes are a fact of the Internet, and the alternative to standardizing endpoint-middlebox cooperation is not its absence but its proliferation in private forms. The cooperation stays consensual: identifiers are published voluntarily by the endpoints, are read-only on path, and the end-to-end semantics of the transports are unchanged.</t>

<t>Identifier-based forwarding has already been standardized for QUIC: QUIC-LB <xref target="I-D.draft-ietf-quic-load-balancers"/> encodes routing information in the connection ID, validating the pattern at working-group level, but only for QUIC. TCP and UDP have no corresponding mechanism. The SIO provides one - a standard channel between the endpoints and on-path network functions, on which richer cooperation can be built.</t>

<t>The SIO is carried as a TCP option <xref target="RFC9293"/> and as a UDP option <xref target="RFC9868"/>. On TCP, the client and the server exchange their identifiers during the handshake; afterwards, designated segments carry the identifier of the peer, so that a network function that encounters a connection it does not know can learn, from the segment itself, which endpoint the connection belongs to. On UDP there is no handshake and no retransmission; each endpoint includes the SIO in every datagram, so that a network function that encounters a flow it does not know can learn the same from any datagram. The SIO is lightweight: it adds only a few octets to a packet, whichever carrying mode is used (<xref target="carrying-modes"/>). Beyond session recovery, the channel serves network functions of every kind: a load balancer can read the backend identifier from every packet and forward without any session table at all; on-path measurement can attribute traffic to individual backends from the identifiers alone; a network element can use an identifier as an opaque anchor so that traffic follows a stable path with no per-flow state (<xref target="uses"/>). For session recovery itself, the option lets elastically scaling clusters keep long-lived connections through session loss, and the Available Session Recovery Protocol (ASRP) <xref target="I-D.draft-cmcc-asrp"/> builds full session backup and recovery on it.</t>

</section>
<section anchor="terminology"><name>Terminology</name>

<t>The key words &quot;MUST&quot;, &quot;MUST NOT&quot;, &quot;REQUIRED&quot;, &quot;SHALL&quot;, &quot;SHALL NOT&quot;,
&quot;SHOULD&quot;, &quot;SHOULD NOT&quot;, &quot;RECOMMENDED&quot;, &quot;NOT RECOMMENDED&quot;, &quot;MAY&quot;, and
&quot;OPTIONAL&quot; 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>

<t>&quot;SIO&quot; refers to one of the two Session Identifier options defined in this document: the LOCAL-ID option, which carries the identifier of its sender, and the PEER-ID option, which carries the identifier of the sender&#39;s peer. &quot;Client&quot; refers to the endpoint that initiates a connection or flow: the active open side of a TCP connection, or the sender of the first datagram of a UDP flow. &quot;Server&quot; refers to the other endpoint. &quot;Network node&quot; refers to an on-path device (e.g., a load balancer, a NAT gateway, or a firewall) that forwards packets; in the session-recovery use, it also participates in session backup and recovery. &quot;Client identifier&quot; and &quot;server identifier&quot; refer to values that identify the client or the server within a cluster. The length of an identifier is configurable, from 0 to 8 octets. &quot;Session backup&quot; refers to session state information stored on an endpoint for the purpose of session recovery.</t>

</section>
<section anchor="the-sio-option"><name>The SIO Option</name>

<t>The SIO comes in two kinds, so that each option is self-describing: the LOCAL-ID option carries the identifier of its sender, and the PEER-ID option carries the identifier of the sender&#39;s peer. On TCP, the options are negotiated during the handshake, similar to other TCP options, e.g., the Window Scale option <xref target="RFC7323"/>, SACK <xref target="RFC9293"/>, the Authentication Option (TCP-AO) <xref target="RFC5925"/>, and TCP Fast Open <xref target="RFC7413"/>: a client includes the LOCAL-ID option in the SYN segment, a server that supports the SIO includes the LOCAL-ID option in the SYN-ACK segment, and the options are in effect only if both segments carry one. After the handshake, an endpoint includes the PEER-ID option, carrying the identifier of the peer it stored during the handshake: a client carries the server identifier, and a server carries the client identifier. On UDP there is no handshake; each endpoint includes the options in every datagram according to the rules in <xref target="option-semantics"/>.</t>

<section anchor="option-formats"><name>Option Formats</name>

<t>Each SIO carries one identifier: the LOCAL-ID option carries the identifier of its sender, and the PEER-ID option carries the identifier of the sender&#39;s peer. The identifier length is configurable, from 0 to 8 octets. Each option is 2 + N octets long: 1 octet for the Kind, 1 octet for the Length (Length = N + 2), and N octets for the identifier. A zero-length identifier indicates that the endpoint supports the SIO but has no identifier. On TCP, the options are TCP options; on UDP, they are carried as UDP options <xref target="RFC9868"/> in the datagram&#39;s option area.</t>

<figure title="The LOCAL-ID and PEER-ID Options" anchor="SIO-OPT"><artwork><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                |      Kind     |    Length     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~                         Identifier (N octets)                 ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork></figure>

</section>
<section anchor="option-semantics"><name>Option Semantics</name>

<t>Each endpoint decides whether to use the SIO. On TCP, the options are in effect only when both endpoints have offered them; on UDP, there is no negotiation and the UDP rules below apply unilaterally.</t>

<section anchor="tcp"><name>TCP</name>

<t>A client MAY include the LOCAL-ID option in a SYN segment; the client decides whether to use the SIO.</t>

<t>A server that supports the SIO and receives a SYN segment with the LOCAL-ID option SHOULD include the LOCAL-ID option in the SYN-ACK segment, carrying its own identifier.</t>

<t>A server MUST NOT include the LOCAL-ID option in a SYN-ACK segment if the corresponding SYN segment did not include the LOCAL-ID option.</t>

<t>A client that receives a SYN-ACK segment without the LOCAL-ID option MUST NOT include the PEER-ID option in subsequent segments of that connection.</t>

<t>The length of an identifier is configurable, from 0 to 8 octets; each endpoint determines the length of its own identifier. The Length field MUST equal the identifier length plus 2.</t>

<t>A client that receives the LOCAL-ID option in a SYN-ACK segment SHOULD store the server identifier at least for the lifetime of the connection.</t>

<t>A server that receives the LOCAL-ID option in a SYN segment SHOULD store the client identifier at least for the lifetime of the connection.</t>

<t>After the handshake, each endpoint conveys the stored identifier of the peer in the PEER-ID option, in the segments designated by its carrying mode (<xref target="carrying-modes"/>).</t>

</section>
<section anchor="udp"><name>UDP</name>

<t>UDP has no handshake and no retransmission: any datagram may be the one that arrives after a session is lost, so an endpoint includes the SIO in every datagram it sends. The two kinds make each option self-describing, and their use follows three rules:</t>

<t><list style="numbers" type="1">
  <t>An endpoint includes the LOCAL-ID option, carrying its own identifier, in every datagram it sends.</t>
  <t>Once an endpoint has learned the peer&#39;s identifier from the peer&#39;s LOCAL-ID option, it additionally includes the PEER-ID option, carrying the peer&#39;s identifier, in every datagram it sends.</t>
  <t>A PEER-ID option carrying the endpoint&#39;s own identifier is an echo: it proves the peer has learned the identifier. An endpoint that has received an echo MAY stop including the LOCAL-ID option; once it stops, its datagrams carry only the PEER-ID option.</t>
</list></t>

<t>A datagram MAY carry both options during the transition. An endpoint of a one-way flow never receives anything from the peer: it never learns the peer&#39;s identifier and continues to carry the LOCAL-ID option indefinitely, which is the intended behavior - the peer still needs to be taught. Recovery for such flows falls back to the network node&#39;s local handling, since the forward path never carries the peer&#39;s identifier.</t>

</section>
</section>
<section anchor="identifier-management"><name>Identifier Management</name>

<t>An identifier is an opaque octet string carried in the SIO. This document defines how identifiers are carried; it assigns them no meaning and does not standardize how they are generated. Identifiers serve many uses - session recovery, routing, packet marking, measurement - and each use imposes its own requirements on generation. How identifiers are generated, managed, and assigned is decided by the deployment; see the Security Considerations for how the choice of derivation affects exposure.</t>

<t>Only a function that interprets identifiers - resolves them to endpoints, routes, or classes - needs to know how they are generated in the deployment it serves; a function that merely uses an identifier as an opaque value, e.g., for hashing, marking, or counting, needs no such knowledge. In a load-balancing deployment, for example, a load balancer that recovers sessions by identifier needs to know how the backends generate their identifiers. When the SIO is used with a mechanism that resolves identifiers to endpoint addresses, e.g., ASRP <xref target="I-D.draft-cmcc-asrp"/>, the deployment MUST ensure that the network nodes can perform this resolution.</t>

<t>A future specification may standardize the generation of identifiers for a specific use, as QUIC-LB <xref target="I-D.draft-ietf-quic-load-balancers"/> standardizes the encoding of routing information in the QUIC connection ID.</t>

<t>Uniqueness: Whether identifiers need to be unique depends on the use. In the session-recovery use, an identifier SHOULD be unique among the endpoints of the cluster it serves, because the network node locates the backup holder by the identifier.</t>

<t>Stability: An identifier MUST remain stable for the lifetime of the connections that carry it, and SHOULD remain stable across reboots. Session recovery relies on the identifier of the backup holder: an identifier that changes after a restart leaves the backups associated with the earlier identifier unreachable.</t>

</section>
</section>
<section anchor="sio-option-operation"><name>SIO Option Operation</name>

<section anchor="flow-establishment"><name>Flow Establishment</name>

<t>On TCP, the client and the server exchange the LOCAL-ID option during the handshake according to the rules in <xref target="option-semantics"/>. After the handshake, each endpoint has stored the identifier of the peer and conveys it in the segments designated by its carrying mode (<xref target="carrying-modes"/>). On UDP, there is no handshake: each endpoint begins including the LOCAL-ID option in the first datagram it sends, and the option use follows the rules in <xref target="option-semantics"/> as the flow progresses.</t>

</section>
<section anchor="carrying-modes"><name>Carrying Modes</name>

<t>On TCP, the identifier of the peer is conveyed in one of two modes. Which mode applies is a deployment choice:</t>

<t>Retransmission mode: The identifier is carried only in segments sent on timeout retransmission; normal data segments carry no overhead at all.</t>

<t>Per-segment mode: The identifier is carried in every segment of the connection. This is the enabling mode for stateless forwarding (<xref target="uses"/>): a load balancer that forwards segments without any session table needs the identifier on every segment. It adds 2 + N octets to every segment.</t>

<t>Deployments that consume the identifier on the forwarding path, e.g., stateless load balancing, SHOULD use the per-segment mode; for session recovery alone, the retransmission mode suffices.</t>

<t>UDP has a single carrying mode: every datagram carries the SIO (<xref target="option-semantics"/>). UDP has no retransmission, so any datagram may be the one that arrives after a session is lost, and the identifier must be present on it.</t>

</section>
</section>
<section anchor="uses"><name>Uses</name>

<t>The SIO defines how identifiers are exchanged and carried, not what consumes them. The uses below are independent of each other, and none is required by the option itself. Session recovery, the use for which the option was first proposed, is described first.</t>

<section anchor="session-recovery"><name>Session Recovery</name>

<t>On TCP, an endpoint conveys the identifier on timeout retransmission.</t>

<t>In a load-balancing cluster, where the session state is backed up to the server, a client conveys the server identifier on timeout retransmission. The network node uses the identifier to locate the server holding the backup and recover the session.</t>

<figure title="Session recovery in a load-balancing cluster" anchor="SIO-REC"><artwork><![CDATA[
                          load-balancing
client                     network node                    server
|                               |                               |
| ------ SYN + Client-ID -----> | ----- SYN + Client-ID ------> |
| <---- SYN-ACK + Server-ID --- | <--- SYN-ACK + Server-ID ---- |
|                               |                               |
| <---------- data -----------> | <---------- data -----------> |
|                               |                               |
|   - - - (session lost) - - - x|x - - - (session lost) - - -   |
|                               |                               |
|                               |                               |
|        retransmission         |                               |
| ------------ + -------------> |                               |
|           Server-ID           |                               |
|                               |                               |
|                               | ------ recovery query ------> |
|                               | <----- session state -------- |
|                               |     (session recovered)       |
|                               |                               |
| <---------- data -----------> | <---------- data -----------> |
]]></artwork></figure>

<t><xref target="SIO-REC"/> shows the recovery flow in a load-balancing cluster, where the client conveys the server identifier. The flow in a SNAT cluster is symmetric: the server conveys the client identifier, and the network node locates the client holding the backup. The detailed recovery procedures are described in the Available Session Recovery Protocol (ASRP) <xref target="I-D.draft-cmcc-asrp"/>.</t>

<t>How the network node recovers a session is out of the scope of this document. It is suggested that the node use the Available Session Recovery Protocol (ASRP) <xref target="I-D.draft-cmcc-asrp"/> to recover the session; however, the SIO does not depend on ASRP.</t>

<t>On UDP, every datagram carries the identifier (<xref target="option-semantics"/>): a network node that encounters a datagram of a flow it does not hold can recover the flow from that datagram alone, without waiting for a retransmission.</t>

</section>
<section anchor="stateless-forwarding"><name>Stateless Forwarding</name>

<t>In deployments where the load balancer forwards only the client-to-server direction (e.g., DSR and one-way DNAT), the load balancer can read the backend identifier from every packet and forward accordingly, with no session table at all; this greatly simplifies its implementation. It requires the per-segment mode (<xref target="carrying-modes"/>) on TCP, so that the identifier is present on every segment; on UDP, every datagram carries an option by definition. In deployments that keep a session table for other processing, the table is reduced to a cache that accelerates the common case: on a miss, the packet is still forwarded correctly.</t>

</section>
<section anchor="connection-tracking-recovery"><name>Connection-Tracking Recovery</name>

<t>A firewall or NAT gateway that loses its connection table normally drops established connections and flows. With the SIO, a packet carrying the identifier lets the middlebox rebuild its entry, or locate the backup as in the recovery flow of <xref target="session-recovery"/>.</t>

</section>
<section anchor="per-backend-telemetry"><name>Per-Backend Telemetry</name>

<t>On-path measurement can attribute traffic to individual backends from the identifiers alone, without inspecting the application payload.</t>

</section>
<section anchor="opaque-affinity"><name>Opaque Affinity</name>

<t>A network element need not resolve an identifier to an endpoint at all: it can use the identifier as an opaque anchor, e.g., as a hash key that assigns flows to nodes, so that traffic carrying the same identifier follows a stable path without any per-flow state or mapping to maintain.</t>

</section>
<section anchor="elastic-virtual-network-functions"><name>Elastic Virtual Network Functions</name>

<t>Virtualized middleboxes - load balancers, NAT gateways, firewalls, virtual switches, SD-WAN gateways, service-chain classifiers - are created, rescheduled, and replaced at high frequency, and any per-connection state they must maintain turns instance replacement into a state-migration problem. With the SIO providing the index, instances can obtain the connection context and be replaced freely. These functions can benefit from the option once it is available; the uses above apply to them as they apply to their physical counterparts.</t>

</section>
</section>
<section anchor="compatibility"><name>Compatibility</name>

<t>Clients that do not support the SIO do not include the LOCAL-ID option in the SYN segment, and servers that do not support it do not include the LOCAL-ID option in the SYN-ACK segment. Such connections behave exactly as connections without the SIO, and session recovery falls back to the mechanisms implemented by the network node. Similarly, if the SIO is removed by an intermediate device, the endpoints operate without identifiers. On UDP, no negotiation is needed: a receiver that does not support UDP options ignores the datagram&#39;s option area, and a receiver that supports UDP options but not the SIO ignores them, so an endpoint that includes the options affects no one. The SIO is designed for the common deployment where a single tier of SNAT or LB nodes sits between the client and the server; in multi-tier deployments, only the tier closest to the client or the server can use the SIO.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>The SIO only exchanges endpoint identifiers. It carries no session state and no authentication information; the SIO itself performs no validation and promises none. Connections that require integrity protection can use TCP-AO <xref target="RFC5925"/> alongside the SIO; the two are independent and can coexist on the same connection.</t>

<t>The security of mechanisms built on the identifiers relies on the validation performed by the framework that consumes them. When the SIO is used with ASRP <xref target="I-D.draft-cmcc-asrp"/>, the message validation described there applies: a network node verifies that a recovery response matches its outstanding request (cookie-based validation) and that the session referenced by the message is legitimate (session-legitimacy validation).</t>

<t>A forged identifier cannot recover a non-existent session, because recovery succeeds only if the session backup actually exists on the identified endpoint. A segment carrying an identifier triggers at most one recovery query, which is no more than the number of queries triggered by other recovery mechanisms.</t>

<t>How a network node maps an identifier to an endpoint address is an implementation matter. A node SHOULD ignore an identifier that it cannot map to a known endpoint.</t>

<t>How an identifier is derived is a deployment choice: it MAY be random, a keyed function of the address, or the address itself. Deriving it directly from the address is simple and functional, but exposes internal addressing information to on-path observers; where that exposure matters, a random or keyed assignment avoids it.</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>IANA is requested to allocate two TCP option Kind numbers from the TCP option kind registry for the Session Identifier options:</t>

<texttable>
      <ttcol align='left'>Kind</ttcol>
      <ttcol align='left'>Length</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>TBD</c>
      <c>variable</c>
      <c>SIO LOCAL-ID</c>
      <c>This document</c>
      <c>TBD</c>
      <c>variable</c>
      <c>SIO PEER-ID</c>
      <c>This document</c>
</texttable>

<t>and two UDP option Kind numbers from the &quot;UDP Option Kind Numbers&quot; registry <xref target="RFC9868"/>:</t>

<texttable>
      <ttcol align='left'>Kind</ttcol>
      <ttcol align='left'>Length</ttcol>
      <ttcol align='left'>Meaning</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>TBD</c>
      <c>variable</c>
      <c>SIO LOCAL-ID</c>
      <c>This document</c>
      <c>TBD</c>
      <c>variable</c>
      <c>SIO PEER-ID</c>
      <c>This document</c>
</texttable>

<section anchor="experimental-use"><name>Experimental Use</name>

<t>Prior to IANA assignment of permanent option Kind values, implementations deployed for experimentation or interoperability testing SHOULD use the option Kind values reserved for experimental use, together with an Experiment Identifier (ExID), as described in <xref target="RFC6994"/> for TCP and <xref target="RFC9868"/> for UDP.</t>

</section>
</section>


  </middle>

  <back>


<references title='References' anchor="sec-combined-references">

    <references title='Normative References' anchor="sec-normative-references">



<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>
<reference anchor="RFC9293">
  <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="RFC9868">
  <front>
    <title>Transport Options for UDP</title>
    <author fullname="J. Touch" initials="J." surname="Touch"/>
    <author fullname="C. Heard" initials="C." role="editor" surname="Heard"/>
    <date month="October" year="2025"/>
    <abstract>
      <t>Transport protocols are extended through the use of transport header options. This document updates RFC 768 (UDP) by indicating the location, syntax, and semantics for UDP transport layer options within the surplus area after the end of the UDP user data but before the end of the IP datagram.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="9868"/>
  <seriesInfo name="DOI" value="10.17487/RFC9868"/>
</reference>



    </references>

    <references title='Informative References' anchor="sec-informative-references">



<reference anchor="RFC3234">
  <front>
    <title>Middleboxes: Taxonomy and Issues</title>
    <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
    <author fullname="S. Brim" initials="S." surname="Brim"/>
    <date month="February" year="2002"/>
    <abstract>
      <t>This document is intended as part of an IETF discussion about "middleboxes" - defined as any intermediary box performing functions apart from normal, standard functions of an IP router on the data path between a source host and destination host. This document establishes a catalogue or taxonomy of middleboxes, cites previous and current IETF work concerning middleboxes, and attempts to identify some preliminary conclusions. It does not, however, claim to be definitive. This memo provides information for the Internet community.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="3234"/>
  <seriesInfo name="DOI" value="10.17487/RFC3234"/>
</reference>
<reference anchor="RFC5925">
  <front>
    <title>The TCP Authentication Option</title>
    <author fullname="J. Touch" initials="J." surname="Touch"/>
    <author fullname="A. Mankin" initials="A." surname="Mankin"/>
    <author fullname="R. Bonica" initials="R." surname="Bonica"/>
    <date month="June" year="2010"/>
    <abstract>
      <t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5). TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5. TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints. The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes. TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously. TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5. [STANDARDS-TRACK]</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="5925"/>
  <seriesInfo name="DOI" value="10.17487/RFC5925"/>
</reference>
<reference anchor="RFC6994">
  <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="RFC7323">
  <front>
    <title>TCP Extensions for High Performance</title>
    <author fullname="D. Borman" initials="D." surname="Borman"/>
    <author fullname="B. Braden" initials="B." surname="Braden"/>
    <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
    <author fullname="R. Scheffenegger" initials="R." role="editor" surname="Scheffenegger"/>
    <date month="September" year="2014"/>
    <abstract>
      <t>This document specifies a set of TCP extensions to improve performance over paths with a large bandwidth * delay product and to provide reliable operation over very high-speed paths. It defines the TCP Window Scale (WS) option and the TCP Timestamps (TS) option and their semantics. The Window Scale option is used to support larger receive windows, while the Timestamps option can be used for at least two distinct mechanisms, Protection Against Wrapped Sequences (PAWS) and Round-Trip Time Measurement (RTTM), that are also described herein.</t>
      <t>This document obsoletes RFC 1323 and describes changes from it.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7323"/>
  <seriesInfo name="DOI" value="10.17487/RFC7323"/>
</reference>
<reference anchor="RFC7413">
  <front>
    <title>TCP Fast Open</title>
    <author fullname="Y. Cheng" initials="Y." surname="Cheng"/>
    <author fullname="J. Chu" initials="J." surname="Chu"/>
    <author fullname="S. Radhakrishnan" initials="S." surname="Radhakrishnan"/>
    <author fullname="A. Jain" initials="A." surname="Jain"/>
    <date month="December" year="2014"/>
    <abstract>
      <t>This document describes an experimental TCP mechanism called TCP Fast Open (TFO). TFO allows data to be carried in the SYN and SYN-ACK packets and consumed by the receiving end during the initial connection handshake, and saves up to one full round-trip time (RTT) compared to the standard TCP, which requires a three-way handshake (3WHS) to complete before data can be exchanged. However, TFO deviates from the standard TCP semantics, since the data in the SYN could be replayed to an application in some rare circumstances. Applications should not use TFO unless they can tolerate this issue, as detailed in the Applicability section.</t>
    </abstract>
  </front>
  <seriesInfo name="RFC" value="7413"/>
  <seriesInfo name="DOI" value="10.17487/RFC7413"/>
</reference>

<reference anchor="I-D.draft-ietf-quic-load-balancers">
   <front>
      <title>QUIC-LB: Generating Routable QUIC Connection IDs</title>
      <author fullname="Martin Duke" initials="M." surname="Duke">
         <organization>Google</organization>
      </author>
      <author fullname="Nick Banks" initials="N." surname="Banks">
         <organization>Microsoft</organization>
      </author>
      <author fullname="Christian Huitema" initials="C." surname="Huitema">
         <organization>Private Octopus Inc.</organization>
      </author>
      <date day="27" month="August" year="2025"/>
      <abstract>
	 <t>   QUIC address migration allows clients to change their IP address
   while maintaining connection state.  To reduce the ability of an
   observer to link two IP addresses, clients and servers use new
   connection IDs when they communicate via different client addresses.
   This poses a problem for traditional &quot;layer-4&quot; load balancers that
   route packets via the IP address and port 4-tuple.  This
   specification provides a standardized means of securely encoding
   routing information in the server&#x27;s connection IDs so that a properly
   configured load balancer can route packets with migrated addresses
   correctly.  As it proposes a structured connection ID format, it also
   provides a means of connection IDs self-encoding their length to aid
   some hardware offloads.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-ietf-quic-load-balancers-21"/>
   
</reference>

<reference anchor="I-D.draft-cmcc-asrp">
   <front>
      <title>Available Session Recovery Protocol</title>
      <author fullname="Zhaoyu Luo" initials="Z." surname="Luo">
         <organization>CMCC</organization>
      </author>
      <author fullname="Haishuang Yan" initials="H." surname="Yan">
         <organization>CMCC</organization>
      </author>
      <date day="14" month="September" year="2026"/>
      <abstract>
	 <t>   This document describes an experimental protocol named the Available
   Session Recovery Protocol (ASRP).  The protocol is designed to
   optimize high-availability network cluster architectures, providing a
   superior high-availability solution for clusters offering stateful
   network services such as load balancing and Network Address
   Translation (NAT [RFC4787]).  ASRP defines the procedures for session
   backup and recovery, as well as the message formats used during these
   interactions, enabling efficient and streamlined session state
   management.

   In contrast to traditional high-availability techniques that back up
   session state within the cluster itself, the core innovation of ASRP
   lies in its distributed backup of state information to the client or
   server side.  This approach offers multiple advantages: theoretically
   unlimited elastic scaling capacity; support for rapid recovery from
   multi-point failures; reduction of resource redundancy through the
   elimination of centralized backup nodes; and significant
   simplification of cluster implementation complexity.

   The ASRP protocol provides a standardized method for constructing
   elastic service clusters, facilitating broader participation from
   software and hardware developers in building elastic cloud network
   service clusters.

	 </t>
      </abstract>
   </front>
   <seriesInfo name="Internet-Draft" value="draft-cmcc-asrp-08"/>
   
</reference>



    </references>

</references>


<?line 265?>

<section anchor="implementation-status"><name>Implementation Status</name>

<t>Note to the RFC Editor: Please remove this section before publication.</t>

<t>The SIO has been implemented twice and the implementations have been interoperability tested on a three-node testbed (client, load balancer, server):</t>

<t><list style="symbols">
  <t>An eBPF implementation based on traffic-control programs on the endpoints: LOCAL-ID option insertion in the SYN and SYN-ACK, per-connection storage of the peer identifier, and the retransmission mode, where the PEER-ID option is carried in retransmitted segments, verified on the wire; on UDP, per-datagram option insertion with the LOCAL-ID/PEER-ID rules of <xref target="option-semantics"/>.</t>
  <t>A Linux kernel module extending IPVS on the load balancer: extraction of the identifiers from packets and resolution to the backend for session recovery.</t>
</list></t>

<t>The testbed exercised session recovery after load-balancer session-table loss and the identifier conveyance described in <xref target="carrying-modes"/>.</t>

</section>
<section anchor="acknowledgments"><name>Acknowledgments</name>

<t>The authors would like to thank all individuals who have provided valuable feedback and contributions during the development of this document, especially Mike Heard and Michael Tuexen for their detailed review comments.</t>

</section>
<section anchor="changes-since-draft-cmcc-tcp-sro-02"><name>Changes since draft-cmcc-tcp-sro-02</name>

<t>Added UDP support via UDP options <xref target="RFC9868"/>, with per-datagram carrying and no negotiation; split the option into the LOCAL-ID and PEER-ID kinds so that each option is self-describing on both transports; restructured the document around the option as a general channel between endpoints and on-path network functions, with session recovery as the first of several uses; added the QUIC-LB precedent, an implementation status section, and applicability to virtual network functions; reworked the Introduction around the standard-channel positioning and softened the identifier-derivation wording. Renamed the option from the Session Recovery (SR) option to the Session Identifier Option (SIO).</t>

</section>


  </back>

<!-- ##markdown-source:
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

-->

</rfc>

