<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY bom    "&#65279;">
  <!ENTITY wd     "&#x2011;">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902"
     docName="draft-li-tsvwg-inference-transport-00"
     category="std" submissionType="IETF" consensus="true" version="3"
     xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Inference Transport">Transport Considerations for Large-Scale Distributed Inference Networks</title>
    <seriesInfo name="Internet-Draft" value="draft-li-tsvwg-inference-transport-00"/>

    <author fullname="Zhiqiang Li" initials="Z." surname="Li">
      <organization>China Mobile</organization>
      <address>
        <postal><city>Beijing</city><code>100053</code>
        <country>China</country></postal>
        <email>lizhiqiangyjy@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Zongpeng Du" initials="Z." surname="Du">
      <organization>China Mobile</organization>
      <address>
        <postal><city>Beijing</city><code>100053</code>
        <country>China</country></postal>
        <email>duzongpeng@chinamobile.com</email>
      </address>
    </author>
    <author fullname="Junjie Wang" initials="J." surname="Wang">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>wangjj@centec.com</email>
      </address>
    </author>
    <author fullname="Wei Cheng" initials="W." surname="Cheng">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>chengw@centec.com</email>
      </address>
    </author>
    <author fullname="Guoying Zhang" initials="G." surname="Zhang">
      <organization>Centec</organization>
      <address>
        <postal><city>Shanghai</city><code>201203</code>
        <country>China</country></postal>
        <email>zhanggy@centec.com</email>
      </address>
    </author>
    <author fullname="Xun Sun" initials="X." surname="Sun">
      <organization>Inesa</organization>
      <address>
        <postal><city>Shanghai</city><code>200030</code>
        <country>China</country></postal>
        <email>sunxun@inesa.com</email>
      </address>
    </author>
    <author fullname="Chunhao Zhao" initials="C." surname="Zhao">
      <organization>SAIA</organization>
      <address>
        <postal><city>Shanghai</city><code>200125</code>
        <country>China</country></postal>
        <email>chunhao.zhao@sh-aia.com</email>
      </address>
    </author>

    <date year="2026" month="July" day="4"/>
    <area>TSV</area>
    <workgroup>TSVWG</workgroup>
    <keyword>inference</keyword>
    <keyword>RDMA</keyword>
    <keyword>ECMP</keyword>
    <keyword>load balancing</keyword>
    <keyword>AI workload</keyword>
    <keyword>transport</keyword>
    <abstract>
      <t>Large-scale distributed inference systems generate traffic patterns that differ from both traditional data center workloads and distributed training workloads. Disaggregated prefill/decode serving transfers key-value cache state between server pools, and expert-parallel architectures generate all-to-all traffic among expert groups. These flows are typically carried over a small number of RDMA connections, producing low-entropy traffic that is prone to uneven link utilization under Equal-Cost Multipath (ECMP) forwarding.</t>
      <t>This document specifies transport considerations for such networks, covering path load awareness, path steering through ECMP entropy variation, ordering tolerance at the receiver, and differentiated reliability for data with different loss sensitivity. The discussion builds on existing IETF building blocks; this document does not define new protocol elements.</t>
    </abstract>
  </front>

  <middle>
<section anchor="introduction" numbered="true" toc="include"><name>Introduction</name>
<t>Early inference serving deployed models on single servers or small clusters, with modest demands on the interconnection network. Current large-scale inference systems are different in several respects. Disaggregated serving separates the prefill phase (processing the input prompt) from the decode phase (generating output tokens) onto distinct server pools. The key-value (KV) cache computed during prefill is transferred over the network to the decode pool, and the latency of this transfer directly affects time-to-first-token. Mixture-of-experts models deploy expert-parallel (EP) groups across many servers. Token routing between experts generates all-to-all communication whose scale grows with the EP group size, regularly crossing leaf and spine tiers of the data center fabric.</t>
<t>This traffic is typically carried by RDMA transports such as RoCEv2 over a small number of connections between any given pair of endpoints. The resulting flows are large and few -- low-entropy traffic from the perspective of flow-based load balancing. With Equal-Cost Multipath (ECMP) forwarding, the hash function maps each flow to one path; with few flows, multiple large flows can hash onto the same link while parallel links remain idle. The operational issues of low-entropy traffic with flow-based load distribution are described in <xref target="RFC7424"/>. In inference fabrics, such collisions translate into jitter and increased tail latency for KV cache transfer and all-to-all exchanges.</t>
<t>This document specifies transport-layer considerations for these networks: how endpoints can become aware of per-path load, how traffic can be steered across paths using existing ECMP mechanisms without network upgrades, what ordering tolerance is required at receivers, and how reliability can be differentiated for data with different loss sensitivity. The intent is to document the considerations and map them to existing IETF building blocks. This document does not define new protocol elements or data plane behavior.</t>
<section anchor="requirements-language" numbered="true" toc="include"><name>Requirements Language</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "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>
<section anchor="terminology" numbered="true" toc="include"><name>Terminology</name>
<dl><dt>Prefill:</dt><dd>The inference phase that processes the input prompt and produces the initial KV cache.</dd>
<dt>Decode:</dt><dd>The inference phase that generates output tokens incrementally, consuming and extending the KV cache.</dd>
<dt>KV Cache:</dt><dd>Intermediate attention state (keys and values) produced during inference. In disaggregated serving, the KV cache is transferred from prefill servers to decode servers.</dd>
<dt>Expert Parallelism (EP):</dt><dd>A parallelization strategy for mixture-of-experts models in which experts are distributed across servers, requiring all-to-all token exchange.</dd>
<dt>Message:</dt><dd>An application-level unit of transfer (e.g., one RDMA operation). A message comprises one or more packets.</dd>
<dt>Entropy:</dt><dd>Variability in the packet header fields used by ECMP hashing to select among equal-cost paths, as discussed in <xref target="RFC7424"/>.</dd></dl>
</section>
<section anchor="problem-statement" numbered="true" toc="include"><name>Problem Statement</name>
<t>Several operational approaches are deployed today to mitigate uneven link utilization caused by low-entropy RDMA traffic. Each involves trade-offs. Increasing the number of connections: spreading traffic over more RDMA connections (queue pairs) increases entropy and reduces the probability that large flows collide on a single link; however, additional queue pairs consume NIC resources and add scheduling overhead. Placement affinity: scheduling communicating workers under the same top-of-rack switch or leaf reduces the volume of traffic crossing the tiers where collisions occur; this reduces exposure but does not change the load-distribution behavior itself. Per-hop dynamic load balancing: switches can forward packets of the same flow across different links based on real-time link load; this achieves fine-grained balance but introduces packet reordering that receivers must tolerate.</t>
<t>A complementary approach is for endpoints to steer traffic across paths using mechanisms that ECMP fabrics already support, informed by an endpoint view of per-path load. The remainder of this document discusses the considerations for this approach.</t>
</section>
<section anchor="transport-considerations" numbered="true" toc="include"><name>Transport Considerations</name>
<section anchor="path-load-awareness" numbered="true" toc="include"><name>Path Load Awareness</name>
<t>Endpoint-driven path steering benefits from knowledge of the relative load of the candidate paths. Two sources of this knowledge are available with existing building blocks. On-path telemetry: in networks where devices support In situ Operations, Administration, and Maintenance (IOAM) <xref target="RFC9197"/>, probe or data packets can collect per-hop information along their forwarding path, including transit delay and queue depth; the export of collected data is described in <xref target="RFC9326"/>. Endpoint estimation: where on-path support is not available, endpoints can estimate relative path load from end-to-end measurements such as round-trip time and delivery rate per path, in the manner familiar from delay-based congestion control.</t>
<t>A sender MAY combine both sources where available. Load information is advisory input to path steering and MUST NOT be interpreted as a congestion signal in the sense of <xref target="RFC3168"/>; existing congestion control behavior is unchanged.</t>
</section>
<section anchor="path-steering" numbered="true" toc="include"><name>Path Steering Using ECMP Entropy</name>
<t>ECMP path selection is a function of packet header fields. For RoCEv2 traffic, the UDP source port is commonly included in the hash input, and varying it changes the selected path without any change to network devices; the fabric continues to perform standard flow-based ECMP. The use of header entropy for load distribution is discussed in <xref target="RFC7424"/>, and an analogous technique using the IPv6 Flow Label is described in <xref target="RFC6438"/>.</t>
<t>A sender that observes uneven path load MAY change the entropy value (e.g., the UDP source port) used for subsequent traffic on a connection, causing that traffic to be hashed onto a different path. Senders SHOULD rate-limit such changes; frequent repathing can itself induce load oscillation across the fabric.</t>
</section>
<section anchor="ordering" numbered="true" toc="include"><name>Ordering Considerations</name>
<t>Changing the path of in-flight traffic reorders packets across the change. The disruption can be confined by aligning path changes with application-level message boundaries: all packets of a given message SHOULD carry the same entropy value, so that each message traverses a single path and arrives in order within itself; the entropy value MAY differ between messages, distributing successive messages across paths. With this alignment, the receiver observes reordering only between messages, not within a message. Receivers of multipath traffic MUST tolerate inter-message arrival reordering. For transports where each message is independently placed in receiver memory (as with RDMA operations carrying explicit placement information), inter-message reordering does not require reassembly buffering.</t>
<t>The message size determines the granularity of load distribution. Smaller messages distribute load more evenly but increase per-message overhead; larger messages reduce overhead but coarsen the distribution. A sender MAY adjust message sizing based on observed path balance, preferring larger messages on lightly loaded paths.</t>
</section>
<section anchor="diff-reliability" numbered="true" toc="include"><name>Differentiated Reliability</name>
<t>Inference traffic is not uniformly sensitive to loss. The sensitivity of model state to perturbation varies with position in the model; loss affecting early-layer data propagates through all subsequent computation, while loss affecting late-layer data has more bounded effect on output quality. This creates an opportunity for differentiated reliability, for which the IETF has established precedents: partial reliability in SCTP <xref target="RFC3758"/> allows a sender to abandon delivery of selected data, and the QUIC DATAGRAM extension <xref target="RFC9221"/> provides unreliable delivery within a reliable connection.</t>
<t>When the application indicates the loss sensitivity of the data it submits (for example, by model layer), the transport MAY apply full retransmission to loss-sensitive data and bounded or no retransmission to loss-tolerant data, particularly under high path load. The mapping from data category to reliability level is an application policy decision; it SHOULD be set so that service quality objectives (such as response accuracy and token latency) are preserved. How the application communicates this indication to the transport is a local interface matter outside the scope of this document.</t>
</section></section>
<section anchor="deployment-considerations" numbered="true" toc="include"><name>Deployment Considerations</name>
<t>The path steering requires only standard ECMP in the fabric and is therefore deployable incrementally: endpoints that implement it coexist with endpoints that do not. On-path telemetry is an optimization, not a dependency; endpoint estimation suffices where IOAM support is absent. Path steering and per-hop dynamic load balancing should not operate on the same traffic simultaneously without coordination, as independent repathing decisions at both the endpoint and the fabric can interact unpredictably. Differentiated reliability should be introduced conservatively, with loss-tolerant treatment applied only where its effect on inference quality has been validated for the model in use.</t>
</section>
<section anchor="security-considerations" numbered="true" toc="include"><name>Security Considerations</name>
<t>Path load information, whether collected via IOAM or estimated at endpoints, reveals aspects of fabric topology and utilization. The security considerations of <xref target="RFC9197"/> and <xref target="RFC9326"/> apply to telemetry collection and export; access to collected data SHOULD be restricted to authorized components.</t>
<t>Entropy-based path steering uses header fields that are part of normal traffic; it does not introduce new spoofing surface beyond that of the underlying transport. However, an endpoint that repaths aggressively can concentrate load deliberately; fabrics serving multiple tenants SHOULD apply the usual per-tenant rate and resource isolation. Differentiated reliability relies on application indications of loss sensitivity. A compromised or misconfigured application could mark loss-sensitive data as tolerant, degrading its own service quality; this is contained within the application's own traffic.</t>
</section>
<section anchor="iana-considerations" numbered="true" toc="include"><name>IANA Considerations</name>
<t>This document has no IANA actions.</t>
</section>
  </middle>

  <back>
      <references title="Normative References">
    <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
      <front>
        <title>Key words for use in RFCs to Indicate Requirement Levels</title>
        <author initials="S." surname="Bradner" fullname="Scott Bradner"/>
        <date year="1997" month="March"/>
      </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">
      <front>
        <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
        <author initials="B." surname="Leiba" fullname="Barry Leiba"/>
        <date year="2017" month="May"/>
      </front>
      <seriesInfo name="BCP" value="14"/>
      <seriesInfo name="RFC" value="8174"/>
      <seriesInfo name="DOI" value="10.17487/RFC8174"/>
    </reference>
    <reference anchor="RFC3168" target="https://www.rfc-editor.org/info/rfc3168">
      <front>
        <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
        <author initials="K." surname="Ramakrishnan" fullname="K. K. Ramakrishnan"/>
        <author initials="S." surname="Floyd" fullname="Sally Floyd"/>
        <author initials="D." surname="Black" fullname="David Black"/>
        <date year="2001" month="September"/>
      </front>
      <seriesInfo name="RFC" value="3168"/>
      <seriesInfo name="DOI" value="10.17487/RFC3168"/>
    </reference>
    <reference anchor="RFC3758" target="https://www.rfc-editor.org/info/rfc3758">
      <front>
        <title>Stream Control Transmission Protocol (SCTP) Partial Reliability Extension</title>
        <author initials="R." surname="Stewart" fullname="Randall Stewart"/>
        <author initials="M." surname="Ramalho" fullname="Michael Ramalho"/>
        <author initials="Q." surname="Xie" fullname="Qiaobing Xie"/>
        <author initials="M." surname="Tuexen" fullname="Michael Tuexen"/>
        <author initials="P." surname="Conrad" fullname="Phillip Conrad"/>
        <date year="2004" month="May"/>
      </front>
      <seriesInfo name="RFC" value="3758"/>
      <seriesInfo name="DOI" value="10.17487/RFC3758"/>
    </reference>
    <reference anchor="RFC6438" target="https://www.rfc-editor.org/info/rfc6438">
      <front>
        <title>Using the IPv6 Flow Label for Equal Cost Multipath Routing and Link Aggregation in Tunnels</title>
        <author initials="B." surname="Carpenter" fullname="Brian Carpenter"/>
        <author initials="S." surname="Amante" fullname="Shane Amante"/>
        <date year="2011" month="November"/>
      </front>
      <seriesInfo name="RFC" value="6438"/>
      <seriesInfo name="DOI" value="10.17487/RFC6438"/>
    </reference>
    <reference anchor="RFC7424" target="https://www.rfc-editor.org/info/rfc7424">
      <front>
        <title>Mechanisms for Optimizing Link Aggregation Group (LAG) and Equal-Cost Multipath (ECMP) Component Link Utilization in Networks</title>
        <author initials="R." surname="Krishnan" fullname="Ram Krishnan"/>
        <author initials="L." surname="Yong" fullname="Luc Yong"/>
        <author initials="A." surname="Ghanwani" fullname="Anoop Ghanwani"/>
        <author initials="N." surname="So" fullname="Ning So"/>
        <author initials="B." surname="Khasnabish" fullname="Bhumip Khasnabish"/>
        <date year="2015" month="January"/>
      </front>
      <seriesInfo name="RFC" value="7424"/>
      <seriesInfo name="DOI" value="10.17487/RFC7424"/>
    </reference>
    <reference anchor="RFC9197" target="https://www.rfc-editor.org/info/rfc9197">
      <front>
        <title>Data Fields for In Situ Operations, Administration, and Maintenance (IOAM)</title>
        <author initials="F." surname="Brockners" fullname="Frank Brockners, Ed."/>
        <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari, Ed."/>
        <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi, Ed."/>
        <date year="2022" month="May"/>
      </front>
      <seriesInfo name="RFC" value="9197"/>
      <seriesInfo name="DOI" value="10.17487/RFC9197"/>
    </reference>
    <reference anchor="RFC9221" target="https://www.rfc-editor.org/info/rfc9221">
      <front>
        <title>An Unreliable Datagram Extension to QUIC</title>
        <author initials="T." surname="Pauly" fullname="Tommy Pauly"/>
        <author initials="E." surname="Kinnear" fullname="Eric Kinnear"/>
        <author initials="D." surname="Schinazi" fullname="David Schinazi"/>
        <date year="2022" month="March"/>
      </front>
      <seriesInfo name="RFC" value="9221"/>
      <seriesInfo name="DOI" value="10.17487/RFC9221"/>
    </reference>
      </references>
      <references title="Informative References">
    <reference anchor="RFC9326" target="https://www.rfc-editor.org/info/rfc9326">
      <front>
        <title>In Situ Operations, Administration, and Maintenance (IOAM) Direct Exporting</title>
        <author initials="H." surname="Song" fullname="Haoyu Song"/>
        <author initials="B." surname="Gafni" fullname="Barak Gafni"/>
        <author initials="F." surname="Brockners" fullname="Frank Brockners"/>
        <author initials="S." surname="Bhandari" fullname="Shwetha Bhandari"/>
        <author initials="T." surname="Mizrahi" fullname="Tal Mizrahi"/>
        <author initials="R." surname="Sivakolundu" fullname="Ramesh Sivakolundu"/>
        <author initials="Z." surname="Li" fullname="Zhiqiang Li"/>
        <author initials="T." surname="Zhou" fullname="Tianran Zhou"/>
        <date year="2022" month="November"/>
      </front>
      <seriesInfo name="RFC" value="9326"/>
      <seriesInfo name="DOI" value="10.17487/RFC9326"/>
    </reference>
      </references>
      <section anchor="acknowledgements" numbered="false" toc="include">
        <name>Acknowledgements</name>
        <t>The authors acknowledge ongoing IETF discussion of AI workload networking, including problem statements on training-network load balancing and congestion, which provides context for the inference-specific considerations in this document.</t>
      </section>
  </back>
</rfc>
