<?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.36 (Ruby 3.4.9) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cel-nfsv4-rpc-over-quicv1-05" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="RPC over QUIC">Remote Procedure Call over QUIC Version 1</title>
    <seriesInfo name="Internet-Draft" value="draft-cel-nfsv4-rpc-over-quicv1-05"/>
    <author initials="B." surname="Coddington" fullname="Benjamin Coddington">
      <organization>Hammerspace</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>bcodding@hammerspace.com</email>
      </address>
    </author>
    <author initials="S." surname="Mayhew" fullname="Scott Mayhew">
      <organization>Red Hat</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>smayhew@redhat.com</email>
      </address>
    </author>
    <author initials="C." surname="Lever" fullname="Charles Lever" role="editor">
      <organization/>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>cel-ietf@chucklever.net</email>
      </address>
    </author>
    <date year="2026" month="May" day="16"/>
    <area>Transport</area>
    <workgroup>Network File System Version 4</workgroup>
    <abstract>
      <?line 55?>

<t>This document specifies a protocol for conveying Remote Procedure
(RPC) messages via QUIC version 1 connections. It requires no revision
to application RPC protocols or the RPC protocol itself.</t>
    </abstract>
    <note>
      <name>Note</name>
      <?line 61?>

<t>This note is to be removed before publishing as an RFC.</t>
      <t>Discussion of this draft occurs on the <eref target="nfsv4@ietf.org">NFSv4 working group mailing
list</eref>, archived at
<eref target="https://mailarchive.ietf.org/arch/browse/nfsv4/"/>. Working Group
information is available at
<eref target="https://datatracker.ietf.org/wg/nfsv4/about/"/>.</t>
      <t>Submit suggestions and changes as pull requests at
<eref target="https://github.com/chucklever/i-d-rpc-over-quicv1"/>. Instructions
are on that page.</t>
    </note>
  </front>
  <middle>
    <?line 75?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The QUIC version 1 protocol is a secure, reliable connection-oriented
network transport described in <xref target="RFC9000"/>. Its features include
integrated transport layer security, multiple independent streams over
each connection, fast reconnecting, and advanced packet loss recovery
and congestion avoidance mechanisms.</t>
      <t>Open Network Computing Remote Procedure Call (often shortened to "RPC")
is a Remote Procedure Call protocol that runs over a variety of network
transports <xref target="RFC5531"/>. RPC implementations so far use UDP <xref target="RFC0768"/>,
TCP <xref target="RFC9293"/>, or RDMA <xref target="RFC8166"/>. This document specifies how to
transport RPC messages over QUIC version 1.</t>
      <section anchor="motivation-for-a-new-rpc-transport">
        <name>Motivation For a New RPC Transport</name>
        <t>Viewed at a moderate distance, RPC over QUIC provides a similar
feature set as RPC over TCP with TLS (as described in <xref target="RFC9289"/>).
However, a closer look reveals some essential benefits of using
QUIC transports:</t>
        <ul spacing="normal">
          <li>
            <t>Even though the QUIC protocol utilizes the same set of encryption
algorithms as TLSv1.3, the QUIC record protocol encrypts nearly
the entire transport layer header and authenticates each IP packet.
Advanced traffic analysis which was possible with TLS on TCP is no
longer possible. QUIC protects against transport packet spoofing
and downgrade attacks better than TLS on TCP.</t>
          </li>
          <li>
            <t>Because many real IP networks are oversubscribed, packet loss
due to momentary link or switch saturation continues to be likely
even on well-maintained data center-quality network fabrics.  </t>
            <t>
The QUIC protocol utilizes packet loss recovery and congestion
avoidance features that are lacking in TCP. Because TCP protocol
design has ossified, it is unlikely to gain these improvements.
QUIC is more extensible than TCP, meaning future improvements in
this area can be designed and deployed without application
disruption.</t>
          </li>
          <li>
            <t>Further, because QUIC handles packet loss on a per-stream rather
than a per-connection basis, spreading RPC traffic across multiple
streams enables workloads to continue largely unperturbed while
packet recovery proceeds.</t>
          </li>
          <li>
            <t>The QUIC protocol is designed to facilitate secure and automatic
transit of firewalls. Firewall transparency is a foundational
feature of NFSv4 (which is built on RPC).</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="rpc-over-quic-framework">
      <name>RPC-over-QUIC Framework</name>
      <t>RPC is first and foremost a message-passing protocol. This section
covers the implementation details of exchanging RPC messages over
QUIC. Readers should already be familiar with the fundamentals
of ONC RPC <xref target="RFC5531"/>.</t>
      <t>RPC-over-QUIC relies on QUIC version 1 as the underlying transport
<xref target="RFC9000"/>. The use of other QUIC transport versions with RPC <bcp14>MAY</bcp14>
be defined by future specifications.</t>
      <section anchor="establishing-a-connection">
        <name>Establishing a Connection</name>
        <t>When a network host wishes to send RPC requests to a remote
service via QUICv1, it must first find an established QUICv1
connection, or establish a new one.</t>
        <t>For the purpose of explanation, this document refers to the
peer that initiates QUICv1 connection establishment as an
"RPC client" peer. This document refers to the peer that
passively accepts an incoming connection request as an
"RPC server" peer.</t>
        <t>QUICv1 connections are not completely defined by the classic
5-tuple (IP proto, source address, source port, destination
address, and destination port). Each connection is also defined
by its QUIC connection ID. For instance, if the IP address of
either peer should change, or a NAT/PAT binding and the source
UDP port changes, the receiver can still recognize an ingress
QUICv1 packet as belonging to an established connection.</t>
        <t>As a result, due to network conditions or administrative actions,
an RPC-over-QUIC connection can be replaced (a reconnect event)
or migrated (a failover event) without interrupting the operation
of an upper layer protocol such as RPC-over-QUIC. A more complete
discussion can be found in <xref section="9" sectionFormat="of" target="RFC9000"/>.</t>
        <section anchor="connection-transport-parameters">
          <name>Connection Transport Parameters</name>
          <t>When establishing a connection, peers exchange transport
parameters, as described in <xref section="7.4" sectionFormat="of" target="RFC9000"/>.</t>
          <section anchor="initial-flow-control-limits">
            <name>Initial Flow Control Limits</name>
            <t>These limits control the amount of data that each peer may send
on a newly-created stream. The limits are used for flow control
and cap the amount of memory needed by both peers to keep data
flowing on the connection. The value of these limits are typically
based on the bandwidth-delay of the physical link between the
peers, and are not exposed to RPC applications.</t>
          </section>
          <section anchor="number-of-streams-per-connection">
            <name>Number of Streams Per Connection</name>
            <t>Each QUICv1 peer can limit the number of streams per
connection; see <xref section="4.6" sectionFormat="of" target="RFC9000"/>.</t>
            <t>Given the definition of RPC message framing in <xref target="sec-framing"/>,
it is possible for an RPC client to create a stream, send one
RPC Call, receive one RPC Reply, then destroy the stream. That
usage might be common with simple RPC-based protocols like
rpcbind.</t>
            <t>For protocols that carry a more intensive workload, this style of
stream allocation generates needless overhead. Moreover, stream
identifiers cannot be re-used on a single QUICv1 connection,
so eventually a QUICv1 connection can no longer create a new
stream for each RPC XID. Finally, a connection peer can
advertise a max_streams value that is significantly lower than
2 ^ 60.</t>
            <t>Instead, RPC clients can create enough streams to maximize
workload parallelism, and ought to avoid sending only a few RPCs
on each stream before creating a new one.</t>
            <t>For example, an RPC client could allocate a handful of streams
per CPU core to reduce contention for the streams and their
associated data structures. Or, an RPC client could create a
set of streams whose count is the same as the number of slots
in an NFSv4.1 session.</t>
            <t>Even so, to provide a framework that makes implementing
RPC-over-QUIC as fast and simple as possible, this specification
needs to focus on enabling the use of as few as a single stream
per connection.</t>
            <t>Servers that implement RPC-over-QUIC need to recognize that each
additional stream amounts to incremental overhead. RPC servers
<bcp14>MAY</bcp14> deny the creation of new streams if an RPC client already
has many active streams. RPC clients need to be prepared for
that behavior.</t>
          </section>
          <section anchor="maximum-frame-size">
            <name>Maximum Frame Size</name>
            <t>This size is the largest QUIC frame that can appear in any
stream on this connection. The QUIC framing protocol is not
visible to the RPC application. The RPC client and server
can therefore negotiate a frame size that enables efficient
transit of RPC traffic with minimal internal memory
fragmentation.</t>
          </section>
        </section>
      </section>
      <section anchor="rpc-service-discovery">
        <name>RPC Service Discovery</name>
        <t>For RPC, the destination port is special. RPC services may use
a standardized destination port that is bound to an RPC program
number. Such ports are assigned in the IANA Service Name and
Transport Protocol Port Number registry <xref target="IANA"/>.</t>
        <t>For example, the rpcbind program, which is RPC program 100000,
listens on port 111. This is done so that RPC clients can always
contact the rpcbind service and discover the other RPC services
that are operating on that network peer.</t>
        <t>In other cases, an RPC service might use any available port. The
RPC server registers its port number with the local rpcbind service
so that RPC clients can contact that service.</t>
        <t>This mechanism is no different for RPC-over-QUIC than it is for
RPC on other network transports. rpcbind clients specify an RPC
program number and either the "quic" or "quic6" netid when
requesting information about a QUIC-based RPC service. More detail
is available in <xref target="sec-netids"/>.</t>
        <section anchor="sec-tls">
          <name>Transport Layer Security</name>
          <t>During connection establishment, the client peer indicates
RPC-over-QUIC support by presenting the ALPN token "sunrpc" in
the TLS handshake. Support for other application-layer protocols
<bcp14>MAY</bcp14> be offered in the same handshake.</t>
          <t>As part of establishing a QUICv1 connection, the two connecting
peers authenticate to each other and choose encryption parameters
to establish a confidential channel of communication. All traffic
on one QUICv1 connection is thus bound to the authenticated
identities that were presented during connection establishment.
These peer identities apply to the streams and RPC messages
carried by that connection.</t>
          <t>RPC-over-QUIC provides peer authentication and encryption services
using a framework based on Transport Layer Security (TLS). Ergo,
RPC-over-QUIC inherently fulfills many of the requirements of
<xref target="RFC9289"/>. The details of QUIC's use of TLS are specified in
<xref target="RFC9001"/>. In particular:</t>
          <ul spacing="normal">
            <li>
              <t>With QUICv1, security at the transport layer is always enabled.
Therefore, the discussion in <xref target="RFC9289"/> about the opportunistic
use of TLS does not apply to RPC-over-QUIC, and the STARTTLS
mechanism described in <xref section="4" sectionFormat="of" target="RFC9289"/> <bcp14>MUST NOT</bcp14> be used
on RPC-over-QUIC connections.</t>
            </li>
            <li>
              <t>The peer authentication requirements in <xref section="5.2" sectionFormat="of" target="RFC9289"/> apply to RPC-over-QUIC.</t>
            </li>
            <li>
              <t>The PKIX Extended Key Usage values defined in <xref target="RFC9289"/> are
valid for use with RPC-over-QUIC.</t>
            </li>
            <li>
              <t>The ALPN defined in <xref section="7.2" sectionFormat="of" target="RFC9289"/> is also used
for RPC-over-QUIC.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="sec-streams">
        <name>QUIC Streams</name>
        <t>RPC-over-QUIC connections are mediated entirely by each peer's
RPC layer and, aside from authentication and connection transport
parameters, are not otherwise visible to RPC applications. An RPC
client establishes an RPC-over-QUIC connection whenever there are
application RPC transactions to be executed.</t>
        <t>QUICv1 provides a "stream" abstraction, described in <xref section="2" sectionFormat="of" target="RFC9000"/>. A QUICv1 connection carries one or more streams. Once a
QUICv1 connection has been established, either connection peer may
create a stream. Typically, the RPC client peer creates the first
stream on a connection.</t>
        <t>Unless explicitly specified, when RPC upper-layer protocol
specifications refer to a "connection", for RPC-over-QUIC, this
is a QUIC stream. For instance, when NFSv4.1 layered on
RPC-over-QUIC uses BIND_CONN_TO_SESSION <xref target="RFC8881"/> to associate
a "connection" with a session, the bound entity is a QUICv1
stream rather than the encompassing QUICv1 connection.</t>
        <t>A peer that closes a QUICv1 stream signals that any RPC request
still in flight on that stream is to be treated as lost. Closing
a stream does not affect the encompassing QUICv1 connection or
any other stream within it.</t>
        <t>In terms of TI-RPC semantic labels, a QUICv1 stream behaves as a
"tpi_cots_ord" transport: connection-oriented and in order.</t>
      </section>
      <section anchor="sec-framing">
        <name>RPC Message Framing</name>
        <t>RPC-over-QUIC uses only bidirectional streams.</t>
        <t>When a connection peer creates a QUICv1 stream, that peer's stream
endpoint is referred to as a "Requester", and <bcp14>MUST</bcp14> emit only RPC
Call messages on that stream.
The other endpoint is referred to as a "Responder", and <bcp14>MUST</bcp14> emit
only RPC Reply messages on that stream.
Receivers <bcp14>MUST</bcp14> silently discard RPC messages whose direction field
does not match their Requester or Responder role. A receiver <bcp14>MAY</bcp14>
also signal the violation to the peer by closing the offending
stream with a RESET_STREAM frame (<xref section="19.4" sectionFormat="of" target="RFC9000"/>)
carrying an application error code; specific error code values
and an extension process for defining additional codes are left
to a future revision of this specification.</t>
        <t>Requesters and Responders match RPC Calls to RPC Replies using
the XID carried in each RPC message. Responders <bcp14>MUST</bcp14> send RPC
Replies on the same stream on which they received the matching
RPC Call.</t>
        <t>Each QUICv1 stream provides reliable in-order delivery of bytes.
However, each stream makes no guarantees about delivery order with
regard to bytes on other streams on the same connection.</t>
        <t>The stream data containing RPC records is carried by QUIC STREAM
frames, but this framing is invisible to the RPC layer. The
transport layer buffers and orders received stream data, exposing
only a reliable byte stream to the RPC layer. Although QUIC permits
out-of-order delivery within a stream, RPC-over-QUIC does not make
use of this feature.</t>
        <t>Because each QUICv1 stream is an ordered-byte stream, an
RPC-over-QUIC stream carries only a sequence of complete RPC
messages. Although data from multiple streams can be interleaved
on a single QUICv1 connection, RPC messages <bcp14>MUST NOT</bcp14> be interleaved
on one stream.</t>
        <t>Just as with RPC on a TCP socket, each RPC message is an ordered
sequence of one or more records on a single stream. Such RPC records
bear no relationship to QUIC stream frames; in fact, stream frames
as defined in <xref target="RFC9000"/> are not visible to RPC endpoints.</t>
        <t>Each RPC record begins with a four-octet record marker. A record
marker contains the count of octets in the record in its lower 31
bits, and a flag that indicates whether the record is the last
record in the RPC message in the highest order bit. See
<xref section="11" sectionFormat="of" target="RFC5531"/> for a comparison with TCP record markers.</t>
        <section anchor="receiver-data-placement-assistance">
          <name>Receiver Data Placement Assistance</name>
          <t>One recurring weakness with RPC on TCP is that large payloads (for
instance, in NFS WRITEs) can land at arbitrary offsets in receive
buffers, limiting the ability for receivers to handle the payloads
with zero-touch tactics such as direct I/O.</t>
          <t>It remains an open question whether RPC-over-QUIC should implement
RDMA-like features or features that simply provide help with data
placement on receivers. Possibilities include:</t>
          <ul spacing="normal">
            <li>
              <t>A single additional integer giving the offset of a payload, serving
only as a hint;</t>
            </li>
            <li>
              <t>Include references to separate streams in the same connection that
contain opaque payloads, similar to RDMA chunks; this would presume
that it is valid for some streams on a QUIC connection to carry
traffic that is not in the form of an RPC message sequence.</t>
            </li>
          </ul>
          <t>Long-term there could be interest in supporting RDMA over QUIC. Direct
data placement over TCP can already be accomplished today using MPA/DDP
protocols (formerly known as iWARP; see <xref target="RFC5040"/>). Using a software
iWARP implementation means no special hardware is required.</t>
          <t>If the MPA/DDP protocols themselves can be made to operate directly on
QUIC transports, much of the need for a separate RPC-over-QUIC becomes
moot. It would bring transport layer security to other RDMA-enabled
protocols, such as RPC-over-RDMA <xref target="RFC8166"/>.</t>
        </section>
      </section>
      <section anchor="sec-errcodes">
        <name>Application Error Codes</name>
        <t>Receivers signal certain stream- or connection-level conditions
by closing the affected stream or connection with a QUICv1
application error code, conveyed in a RESET_STREAM
(<xref section="19.4" sectionFormat="of" target="RFC9000"/>) or CONNECTION_CLOSE
(<xref section="19.19" sectionFormat="of" target="RFC9000"/>) frame. RPC-over-QUIC defines a
set of named application error codes for this purpose; numeric
values are TBD.</t>
        <dl>
          <dt>PROTOCOL_VIOLATION</dt>
          <dd>
            <t>Signaled by a peer that has detected a violation of this
specification, such as an RPC message whose direction field
does not match the receiver's Requester or Responder role.</t>
          </dd>
          <dt>SERVER_BUSY</dt>
          <dd>
            <t>Signaled by a Responder that is unable to accept additional
RPC traffic at this time. Used as the backpressure indication
for RPC-over-QUIC.</t>
          </dd>
          <dt>REQUEST_DROPPED</dt>
          <dd>
            <t>Signaled by a Responder that has discarded an RPC Call before
generating an RPC Reply.</t>
          </dd>
        </dl>
        <t>Additional code points are allocated through the registry
described in <xref target="sec-iana-errcodes"/>.</t>
      </section>
      <section anchor="quic-load-balancing">
        <name>QUIC Load Balancing</name>
        <t>The discussion in this section is preliminary. A complete
specification of how load balancing applies to RPC-over-QUICv1
is left to a future revision of this document.</t>
        <t>The QUIC Load Balancing specification
<xref target="I-D.ietf-quic-load-balancers-21"/> defines methods for encoding
routing information in QUIC connection IDs, so that a load
balancer can route packets to a particular backend server with
minimal per-connection state, even when a client's network
address changes due to NAT rebinding or migration. Because
RPC-over-QUIC may carry multiple streams over one connection
(see <xref target="sec-streams"/>), routing at the connection-ID layer keeps
all streams of a given connection on the same backend.</t>
        <t>The connection ID length self-encoding feature of QUIC-LB
assists hardware cryptographic offload devices that look up
connection-specific keys.</t>
        <t>RPC-over-QUIC implementations <bcp14>MAY</bcp14> use QUIC-LB. A full
specification of its use with RPC-over-QUIC is out of scope for
this document. QUIC-LB requires no support from QUIC clients
beyond conformance to <xref target="RFC9000"/>.</t>
      </section>
    </section>
    <section anchor="sec-auth">
      <name>RPC Authentication Flavors</name>
      <t>Streams in a QUIC connection may use different RPC authentication
flavors. One stream might use RPC_AUTH_UNIX, while at the same time,
another might use RPCSEC_GSS.</t>
      <t>GSS mutual (peer) authentication occurs only after a QUIC connection
has been established. It is a separate process, and is unchanged by
the use of QUIC. Additionally, authentication of RPCSEC_GSS users is
unchanged by the use of QUIC.</t>
      <t>RPCSEC_GSS can optionally perform per-RPC integrity or confidentiality
protection. When operating within a QUIC connection, these GSS services
become largely redundant.  An RPC implementation capable of concurrently
using QUIC and RPCSEC_GSS <bcp14>MUST</bcp14> use Generic Security Service Application
Program Interface (GSS-API) channel binding, as defined in <xref target="RFC5056"/>,
to determine when an underlying transport already provides a sufficient
degree of confidentiality.</t>
      <t>RPC-over-QUIC implementations <bcp14>MUST</bcp14> provide the "tls-exporter" channel
binding type, as defined in <xref section="2" sectionFormat="of" target="RFC9266"/>.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section is to be removed before publishing as an RFC.</t>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of this
Internet-Draft, and is based on a proposal described in
<xref target="RFC7942"/>. The description of implementations in this section is
intended to assist the IETF in its decision processes in progressing
drafts to RFCs.</t>
      <t>Please note that the listing of any individual implementation here
does not imply endorsement by the IETF. Furthermore, no effort has
been spent to verify the information presented here that was supplied
by IETF contributors. This is not intended as, and must not be
construed to be, a catalog of available implementations or their
features. Readers are advised to note that other implementations may
exist.</t>
      <t>There are no known implementations of RPC-over-QUIC as
described in this document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>RPC-over-QUIC inherits the transport-layer security properties of
QUIC version 1, including always-on encryption, authentication,
and integrity protection of QUIC packets, and the connection
migration protections discussed in <xref section="21" sectionFormat="of" target="RFC9000"/> and
<xref section="9" sectionFormat="of" target="RFC9001"/>. Implementers should be familiar with
that material.</t>
      <t>Because QUIC integrates TLS into the transport handshake, the
peer identities established during connection establishment apply
to every stream and RPC message carried on that connection, as
described in <xref target="sec-tls"/>. The peer authentication, PKIX Extended
Key Usage, and certificate-handling considerations in
<xref section="6" sectionFormat="of" target="RFC9289"/> apply equally to RPC-over-QUIC.</t>
      <t>When RPCSEC_GSS is used concurrently with RPC-over-QUIC, the GSS
confidentiality and integrity services are largely redundant with
the protection supplied by the QUIC connection. To detect this
condition, implementations use the GSS-API channel-binding
mechanism <xref target="RFC5056"/>, as required by <xref target="sec-auth"/>. The
"tls-exporter" binding type <xref target="RFC9266"/> ties the GSS context to
the specific TLS handshake of the underlying QUIC connection; a
successful binding check confirms that the GSS context and the
RPC traffic share the same protected channel.</t>
      <t>QUIC permits the use of 0-RTT data, which is replayable as
described in <xref section="9.2" sectionFormat="of" target="RFC9001"/>. RPC procedures are
generally not idempotent, so the same replay hazard that motivates
the 0-RTT prohibition in <xref section="6" sectionFormat="of" target="RFC9289"/> applies to
RPC-over-QUIC. RPC-over-QUIC implementations <bcp14>MUST NOT</bcp14> use 0-RTT
data.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>RFC Editor: In the following subsections, please replace RFC-TBD with
the RFC number assigned to this document. Furthermore, please remove
this Editor's Note before this document is published.</t>
      <section anchor="sec-netids">
        <name>Netids for RPC-over-QUIC</name>
        <t>Each new RPC transport is assigned one or more RPC "netid" strings.
These strings are an rpcbind <xref target="RFC1833"/> string naming the underlying
transport protocol, appropriate message framing, and the format of
service addresses and ports, among other things.</t>
        <t>This document requests that IANA allocate
the following "Netid" registry strings in the "ONC RPC Netid"
registry, as defined in <xref target="RFC5665"/>:</t>
        <artwork><![CDATA[
      NC_QUIC    "quic"
      NC_QUIC6   "quic6"
]]></artwork>
        <t>These netids <bcp14>MUST</bcp14> be used for any transport satisfying the
requirements described in this document. The "quic" netid is
to be used when IPv4 addressing is employed by the underlying
transport, and "quic6" for IPv6 addressing. IANA should use this
document (RFC-TBD) as the reference for the new entries.</t>
      </section>
      <section anchor="sec-alpn">
        <name>ALPN Identifier for SunRPC on QUIC</name>
        <t>RPC-over-QUIC utilizes the same ALPN string as RPC-with-TLS
does, as defined in <xref section="7.2" sectionFormat="of" target="RFC9289"/>:</t>
        <artwork><![CDATA[
   Identification Sequence:  0x73 0x75 0x6e 0x72 0x70 0x63 ("sunrpc")
]]></artwork>
        <t>This document requests that a reference to (RFC-TBD) be added to
the SunRPC protocol entry in the "TLS Application-Layer Protocol
Negotiation (ALPN) Protocol IDs" registry.</t>
      </section>
      <section anchor="sec-iana-errcodes">
        <name>RPC-over-QUIC Application Error Codes Registry</name>
        <t>This document requests that IANA establish a new registry titled
"RPC-over-QUIC Application Error Codes". The allocation policy
for this registry is to be specified by a future revision of
this document.</t>
        <t>Each registry entry comprises a numeric code point, a symbolic
name, and a reference to a stable specification defining the
semantics of the code. Initial entries are:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Code</th>
              <th align="left">Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD</td>
              <td align="left">PROTOCOL_VIOLATION</td>
              <td align="left">(RFC-TBD)</td>
            </tr>
            <tr>
              <td align="left">TBD</td>
              <td align="left">SERVER_BUSY</td>
              <td align="left">(RFC-TBD)</td>
            </tr>
            <tr>
              <td align="left">TBD</td>
              <td align="left">REQUEST_DROPPED</td>
              <td align="left">(RFC-TBD)</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC1833">
          <front>
            <title>Binding Protocols for ONC RPC Version 2</title>
            <author fullname="R. Srinivasan" initials="R." surname="Srinivasan"/>
            <date month="August" year="1995"/>
            <abstract>
              <t>This document describes the binding protocols used in conjunction with the ONC Remote Procedure Call (ONC RPC Version 2) protocols. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1833"/>
          <seriesInfo name="DOI" value="10.17487/RFC1833"/>
        </reference>
        <reference anchor="RFC5056">
          <front>
            <title>On the Use of Channel Bindings to Secure Channels</title>
            <author fullname="N. Williams" initials="N." surname="Williams"/>
            <date month="November" year="2007"/>
            <abstract>
              <t>The concept of channel binding allows applications to establish that the two end-points of a secure channel at one network layer are the same as at a higher layer by binding authentication at the higher layer to the channel at the lower layer. This allows applications to delegate session protection to lower layers, which has various performance benefits.</t>
              <t>This document discusses and formalizes the concept of channel binding to secure channels. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5056"/>
          <seriesInfo name="DOI" value="10.17487/RFC5056"/>
        </reference>
        <reference anchor="RFC5531">
          <front>
            <title>RPC: Remote Procedure Call Protocol Specification Version 2</title>
            <author fullname="R. Thurlow" initials="R." surname="Thurlow"/>
            <date month="May" year="2009"/>
            <abstract>
              <t>This document describes the Open Network Computing (ONC) Remote Procedure Call (RPC) version 2 protocol as it is currently deployed and accepted. This document obsoletes RFC 1831. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5531"/>
          <seriesInfo name="DOI" value="10.17487/RFC5531"/>
        </reference>
        <reference anchor="RFC5665">
          <front>
            <title>IANA Considerations for Remote Procedure Call (RPC) Network Identifiers and Universal Address Formats</title>
            <author fullname="M. Eisler" initials="M." surname="Eisler"/>
            <date month="January" year="2010"/>
            <abstract>
              <t>This document lists IANA Considerations for Remote Procedure Call (RPC) Network Identifiers (netids) and RPC Universal Network Addresses (uaddrs). This document updates, but does not replace, RFC 1833. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5665"/>
          <seriesInfo name="DOI" value="10.17487/RFC5665"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="RFC9266">
          <front>
            <title>Channel Bindings for TLS 1.3</title>
            <author fullname="S. Whited" initials="S." surname="Whited"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document defines a channel binding type, tls-exporter, that is compatible with TLS 1.3 in accordance with RFC 5056, "On the Use of Channel Bindings to Secure Channels". Furthermore, it updates the default channel binding to the new binding for versions of TLS greater than 1.2. This document updates RFCs 5801, 5802, 5929, and 7677.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9266"/>
          <seriesInfo name="DOI" value="10.17487/RFC9266"/>
        </reference>
        <reference anchor="RFC9289">
          <front>
            <title>Towards Remote Procedure Call Encryption by Default</title>
            <author fullname="T. Myklebust" initials="T." surname="Myklebust"/>
            <author fullname="C. Lever" initials="C." role="editor" surname="Lever"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document describes a mechanism that, through the use of opportunistic Transport Layer Security (TLS), enables encryption of Remote Procedure Call (RPC) transactions while they are in transit. The proposed mechanism interoperates with Open Network Computing (ONC) RPC implementations that do not support it. This document updates RFC 5531.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9289"/>
          <seriesInfo name="DOI" value="10.17487/RFC9289"/>
        </reference>
        <reference anchor="IANA" target="https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.txt">
          <front>
            <title>IANA Service Name and Transport Protocol Port Number registry</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC0768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </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="RFC5040">
          <front>
            <title>A Remote Direct Memory Access Protocol Specification</title>
            <author fullname="R. Recio" initials="R." surname="Recio"/>
            <author fullname="B. Metzler" initials="B." surname="Metzler"/>
            <author fullname="P. Culley" initials="P." surname="Culley"/>
            <author fullname="J. Hilland" initials="J." surname="Hilland"/>
            <author fullname="D. Garcia" initials="D." surname="Garcia"/>
            <date month="October" year="2007"/>
            <abstract>
              <t>This document defines a Remote Direct Memory Access Protocol (RDMAP) that operates over the Direct Data Placement Protocol (DDP protocol). RDMAP provides read and write services directly to applications and enables data to be transferred directly into Upper Layer Protocol (ULP) Buffers without intermediate data copies. It also enables a kernel bypass implementation. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5040"/>
          <seriesInfo name="DOI" value="10.17487/RFC5040"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8166">
          <front>
            <title>Remote Direct Memory Access Transport for Remote Procedure Call Version 1</title>
            <author fullname="C. Lever" initials="C." role="editor" surname="Lever"/>
            <author fullname="W. Simpson" initials="W." surname="Simpson"/>
            <author fullname="T. Talpey" initials="T." surname="Talpey"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>This document specifies a protocol for conveying Remote Procedure Call (RPC) messages on physical transports capable of Remote Direct Memory Access (RDMA). This protocol is referred to as the RPC-over- RDMA version 1 protocol in this document. It requires no revision to application RPC protocols or the RPC protocol itself. This document obsoletes RFC 5666.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8166"/>
          <seriesInfo name="DOI" value="10.17487/RFC8166"/>
        </reference>
        <reference anchor="RFC8881">
          <front>
            <title>Network File System (NFS) Version 4 Minor Version 1 Protocol</title>
            <author fullname="D. Noveck" initials="D." role="editor" surname="Noveck"/>
            <author fullname="C. Lever" initials="C." surname="Lever"/>
            <date month="August" year="2020"/>
            <abstract>
              <t>This document describes the Network File System (NFS) version 4 minor version 1, including features retained from the base protocol (NFS version 4 minor version 0, which is specified in RFC 7530) and protocol extensions made subsequently. The later minor version has no dependencies on NFS version 4 minor version 0, and is considered a separate protocol.</t>
              <t>This document obsoletes RFC 5661. It substantially revises the treatment of features relating to multi-server namespace, superseding the description of those features appearing in RFC 5661.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8881"/>
          <seriesInfo name="DOI" value="10.17487/RFC8881"/>
        </reference>
        <reference anchor="I-D.ietf-quic-load-balancers-21">
          <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 "layer-4" 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'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>
      </references>
    </references>
    <?line 600?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors express their deepest appreciation for the
contributions of J. Bruce Fields who was an original author
of this document.
In addition, we are indebted to Lars Eggert and the QUIC
working group for the creation of the QUIC transport protocol.</t>
      <t>The editor is grateful to
Bill Baker,
Greg Marsden,
Richard Scheffenegger,
Martin Thomson,
and
Long Xin
for their input and support.</t>
      <t>Special thanks to
Area Director
Gorry Fairhurst,
NFSV4 Working Group Chairs
Brian Pawlowski
and
Christopher Inacio,
and
NFSV4 Working Group Secretary
Thomas Haynes
for their guidance and oversight.</t>
    </section>
    <section numbered="false" anchor="open-issues">
      <name>Open Issues</name>
      <t>This appendix is to be removed before publishing as an RFC.</t>
      <t>Open design questions identified during the development of this
document are tracked as issues in
<eref target="https://github.com/chucklever/i-d-rpc-over-quicv1/issues"/>.
Each item below links the affected section to the GitHub issue
that captures the question.</t>
      <ul spacing="normal">
        <li>
          <t><xref target="sec-streams"/>: <eref target="https://github.com/chucklever/i-d-rpc-over-quicv1/issues/7">#7</eref> - Stream as a control plane for RPC-over-QUIC</t>
        </li>
        <li>
          <t><xref target="sec-streams"/>: <eref target="https://github.com/chucklever/i-d-rpc-over-quicv1/issues/8">#8</eref> - Should each stream carry only one RPC program/version combination?</t>
        </li>
        <li>
          <t><xref target="sec-framing"/>: <eref target="https://github.com/chucklever/i-d-rpc-over-quicv1/issues/9">#9</eref> - Stream lifecycle: reconnection, resend semantics, and stream reuse</t>
        </li>
        <li>
          <t><xref target="sec-framing"/>: <eref target="https://github.com/chucklever/i-d-rpc-over-quicv1/issues/10">#10</eref> - Server backpressure mechanism for RPC-over-QUIC</t>
        </li>
        <li>
          <t><xref target="sec-netids"/>: <eref target="https://github.com/chucklever/i-d-rpc-over-quicv1/issues/11">#11</eref> - Why register a netid per IP address family?</t>
        </li>
        <li>
          <t><xref target="sec-alpn"/>: <eref target="https://github.com/chucklever/i-d-rpc-over-quicv1/issues/12">#12</eref> - Versioning of the RPC-over-QUIC ALPN identifier</t>
        </li>
      </ul>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA6V97XrbRpLu/74KHOVH7H1I2nIcx1b27IwsyYl2bUlHlJPM
k2eOHxBoijgCAS4akMxJPNdyrmWvbOutqm40QDqZ2eRHQpFAd3V1fbz10Z3p
dGpMW7SlPUqu7bpubXLV1JnNu8YmJ2lZJvW9bZL/8/78JPnBNq6oq+TQpItF
Y+/pjauT/neT11mVrmmgvEmX7TSz5bRauvvn02aTTfHY9D+7Irs/nD792mRp
a2/rZnuUuDY3xaY5Stqmc+2zp09fPX1m0samR8lNk1ZuUzeteaibu9um7jZH
yYVt8VfypihtMt+61q4DZc9NvXB1aVvrjky3yVP+4Nq0yj+kZV0RbVvrzKY4
Sn5u62ySOBq8sUtHn7Zr+UCrWKebTVHd/tWYtGtXdXNkzNQkiSzuta3+X7ou
quSkznN6qq0r+q1ubo+S79P1mijZpJmlr7K6q1qs8H1VtDZP5i3ISeplckxP
FVlKz9h1WpRHySKTsf686keYZfU6mnae1W2bvEu3K/vg57umUb9P239uLrfm
Mf7c2HyVtqNZTlZpU9KLby1tF33b1BAMmxdt3fxz02D3C9su/5ytuuyuxHiz
yrbGVHWzTtvi3h7Rw9dvTg5ffvWVfvz66dcv/Mevvzr0H1+8+Fo/vnr69Gn/
0T/w6tmLF+Hjy1f4eH58cYz/JkmbNre2PUpWbbtxR0+ePDw8zIq0SmfEwSep
c8VttbZV654429wXmZ2CEW4KqZtW3XpBu/EbP83aj61MIyqEeZO5PJ5c0OMJ
iV4vx9Atkru6TK7w1wUPkjT2tnDEVmOKajniztNvXrwMa3vVM+q558M3r54/
048vDwMfXr58ydw5n57OsAusedOyTvPpIi3TKiPap88OIdjTaZIuaPo0o825
WRUOGtCBJ4nb2KxYFrTDabLxlBOFJAfVvd2SwO7YDPOIbMLjhPjk0lt68b5I
xXjce+OBlyubtfSHmyXnLS2fiGvo2aqmz/cFHjNtnZASliRSeJANjaeA5K1J
2pUdfJkUrbPlciYLqoimDxf0L10R/k7ovzTqwtIka7JGOX2ktdhk0y3Kwq2w
mpRWWoF/NM5p4bLOMc0k3y0zBnYtqbOsa4iIion4+eLN/P55ApOEEdhIJVAB
+svQuO1fH7ER/DO2AUL3eJKkTbYqQAHp7s9/feRFE2/pTzP/9BN88WTR1A/O
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

-->

</rfc>
