<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cel-nfsv4-rpc-over-quicv1-06" category="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.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-06"/>
    <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="July" day="22"/>
    <area>Transport</area>
    <workgroup>Network File System Version 4</workgroup>
    <abstract>
      <?line 59?>

<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 65?>

<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 79?>

<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. This section assumes familiarity 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 first finds 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 can 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 can 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 can
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 the RPC_PROTOCOL_VIOLATION application error code
(<xref target="sec-errcodes"/>).</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 the
following application error codes for this purpose. Their numeric
values are recorded in the registry described in
<xref target="sec-iana-errcodes"/>. Because those frames carry an application
error code whatever the reason for closing, codes are defined both
for a close under normal conditions and for a failure that no other
code describes.</t>
        <t>Application error codes occupy a separate space from the QUIC
transport error codes defined in <xref section="20.1" sectionFormat="of" target="RFC9000"/>. The
names below carry an "RPC_" prefix to keep the two distinct when
a code appears in a packet trace or a diagnostic log.</t>
        <dl>
          <dt>RPC_NO_ERROR</dt>
          <dd>
            <t>Signaled by a peer that is closing a stream or connection
under normal conditions, with no error to report.</t>
          </dd>
          <dt>RPC_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>RPC_SERVER_BUSY</dt>
          <dd>
            <t>Signaled by a Responder that is unable to accept additional
RPC traffic at this time.</t>
          </dd>
          <dt>RPC_REQUEST_DROPPED</dt>
          <dd>
            <t>Signaled by a Responder that has discarded an RPC Call before
generating an RPC Reply.</t>
          </dd>
          <dt>RPC_UNSPECIFIED_ERROR</dt>
          <dd>
            <t>Signaled by a peer that is closing a stream or connection
because of a condition to which no more specific error code
applies.</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 can 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 can 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"/>.</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 two netid strings in the
"ONC RPC Netids (Standards Action)" registry, as defined in
<xref section="5.1" sectionFormat="of" target="RFC5665"/>. The fields of each registration are
as follows:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Netid</th>
              <th align="left">Constant Name</th>
              <th align="left">RFC(s) and Description (if needed)</th>
              <th align="left">Point of Contact</th>
              <th align="left">Cross Reference to Uaddr Format Registry</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">"quic"</td>
              <td align="left">NC_QUIC</td>
              <td align="left">(RFC-TBD), <xref target="RFC9000"/>, <xref target="RFC0791"/></td>
              <td align="left">IESG</td>
              <td align="left">2</td>
            </tr>
            <tr>
              <td align="left">"quic6"</td>
              <td align="left">NC_QUIC6</td>
              <td align="left">(RFC-TBD), <xref target="RFC9000"/>, <xref target="RFC8200"/></td>
              <td align="left">IESG</td>
              <td align="left">3</td>
            </tr>
          </tbody>
        </table>
        <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.</t>
        <t>Because QUIC operates over UDP, the universal address format for
both netids is the format already registered for IPv4 and IPv6
transports in <xref section="5.2.3.3" sectionFormat="of" target="RFC5665"/> and
<xref section="5.2.3.4" sectionFormat="of" target="RFC5665"/>. This document therefore requests
no new entry in the "ONC RPC Uaddr Format Registry", and the
cross reference values above are those of the existing 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 existing SunRPC entry in the "TLS Application-Layer Protocol
Negotiation (ALPN) Protocol IDs" registry. No other field of that
entry changes. The complete entry after the requested update is:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Protocol</th>
              <th align="left">Identification Sequence</th>
              <th align="left">Reference</th>
              <th align="left">Comment</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SunRPC</td>
              <td align="left">0x73 0x75 0x6e 0x72 0x70 0x63 ("sunrpc")</td>
              <td align="left">
                <xref target="RFC9289"/>, (RFC-TBD)</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </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 group
titled "RPC-over-QUIC Parameters", and within it a registry
titled "RPC-over-QUIC Application Error Codes". No existing
registry group is a suitable home for this registry: the ONC RPC
registry groups predate QUIC, and application error codes are
scoped to an ALPN protocol identifier rather than to QUIC as a
whole. A new group also accommodates further RPC-over-QUIC
registries should later revisions of this document require them.</t>
        <t>The "RPC-over-QUIC Application Error Codes" registry governs a
62-bit space, matching the width of a QUIC application error code
(<xref section="20.2" sectionFormat="of" target="RFC9000"/>). This space is divided into three
regions governed by different policies:</t>
        <ul spacing="normal">
          <li>
            <t>Permanent registrations for values between 0x00 and 0x3f
(inclusive), which are assigned using Standards Action or IESG
Approval, as defined in <xref section="4.9" sectionFormat="of" target="RFC8126"/> and
<xref section="4.10" sectionFormat="of" target="RFC8126"/>.</t>
          </li>
          <li>
            <t>Permanent registrations for values larger than 0x3f, which are
assigned using the Specification Required policy <xref target="RFC8126"/>.</t>
          </li>
          <li>
            <t>Provisional registrations for values larger than 0x3f, which
require Expert Review, as defined in <xref section="4.5" sectionFormat="of" target="RFC8126"/>.</t>
          </li>
        </ul>
        <t>Provisional registrations share the range of values larger than
0x3f with some permanent registrations. This is by design, so
that a provisional registration can be converted to a permanent
one without requiring changes in deployed systems, following the
principles set out in <xref section="22" sectionFormat="of" target="RFC9000"/>.</t>
        <t>This division mirrors the "DNS-over-QUIC Error Codes" registry
(<xref section="8.4" sectionFormat="of" target="RFC9250"/>), which governs a comparable space
for another application protocol carried on QUIC.</t>
        <t>Registrations in this registry <bcp14>MUST</bcp14> include the following fields:</t>
        <dl>
          <dt>Value:</dt>
          <dd>
            <t>The assigned code point.</t>
          </dd>
          <dt>Status:</dt>
          <dd>
            <t>"Permanent" or "Provisional".</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>Contact details for the registrant.</t>
          </dd>
        </dl>
        <t>In addition, permanent registrations <bcp14>MUST</bcp14> include:</t>
        <dl>
          <dt>Error:</dt>
          <dd>
            <t>A short mnemonic for the error code.</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>A reference to a publicly available specification for the value.</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A brief description of the error code semantics, which <bcp14>MAY</bcp14> be a
summary if a specification reference is provided.</t>
          </dd>
        </dl>
        <t>Provisional registrations are intended to allow private use of and
experimentation with extensions to RPC-over-QUIC. Such registrations
can be reclaimed and reassigned for other purposes. A provisional
registration need not supply a Specification field. In addition to
the fields listed above, provisional registrations <bcp14>MUST</bcp14> include:</t>
        <dl>
          <dt>Date:</dt>
          <dd>
            <t>The date of the last update to the registration.</t>
          </dd>
        </dl>
        <t>A request to update the date on a provisional registration can be
made without review by the designated expert or experts.</t>
        <t>The initial content of this registry is shown below. All initial
entries share the following fields:</t>
        <dl>
          <dt>Status:</dt>
          <dd>
            <t>Permanent</t>
          </dd>
          <dt>Contact:</dt>
          <dd>
            <t>NFSv4 Working Group</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t><xref target="sec-errcodes"/> of (RFC-TBD)</t>
          </dd>
        </dl>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Error</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x0</td>
              <td align="left">RPC_NO_ERROR</td>
              <td align="left">No error</td>
            </tr>
            <tr>
              <td align="left">0x1</td>
              <td align="left">RPC_PROTOCOL_VIOLATION</td>
              <td align="left">A violation of this specification was detected</td>
            </tr>
            <tr>
              <td align="left">0x2</td>
              <td align="left">RPC_SERVER_BUSY</td>
              <td align="left">The Responder cannot accept additional RPC traffic</td>
            </tr>
            <tr>
              <td align="left">0x3</td>
              <td align="left">RPC_REQUEST_DROPPED</td>
              <td align="left">An RPC Call was discarded without a Reply</td>
            </tr>
            <tr>
              <td align="left">0x4</td>
              <td align="left">RPC_UNSPECIFIED_ERROR</td>
              <td align="left">No more specific error code applies</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="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </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/RFC768"/>
        </reference>
        <reference anchor="RFC0791">
          <front>
            <title>Internet Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="791"/>
          <seriesInfo name="DOI" value="10.17487/RFC791"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </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="RFC9250">
          <front>
            <title>DNS over Dedicated QUIC Connections</title>
            <author fullname="C. Huitema" initials="C." surname="Huitema"/>
            <author fullname="S. Dickinson" initials="S." surname="Dickinson"/>
            <author fullname="A. Mankin" initials="A." surname="Mankin"/>
            <date month="May" year="2022"/>
            <abstract>
              <t>This document describes the use of QUIC to provide transport confidentiality for DNS. The encryption provided by QUIC has similar properties to those provided by TLS, while QUIC transport eliminates the head-of-line blocking issues inherent with TCP and provides more efficient packet-loss recovery than UDP. DNS over QUIC (DoQ) has privacy properties similar to DNS over TLS (DoT) specified in RFC 7858, and latency characteristics similar to classic DNS over UDP. This specification describes the use of DoQ as a general-purpose transport for DNS and includes the use of DoQ for stub to recursive, recursive to authoritative, and zone transfer scenarios.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9250"/>
          <seriesInfo name="DOI" value="10.17487/RFC9250"/>
        </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 706?>

<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-errcodes"/>: <eref target="https://github.com/chucklever/i-d-rpc-over-quicv1/issues/13">#13</eref> - Should STOP_SENDING carry RPC-over-QUIC application error codes?</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:
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
UdK660Zq5i8glTSQLTIT2I4CqOlcEo5JQAH3dnoweaIBCjcUIFGxZwsqMsI8
+5BXhZiCuJ5Mdm8qHC8OEvE4Z2RNxLZocz0bn93cjm+uz44/aKpmt1X9B296
da099o3XflU67u3V9eXN5cnl+9sfzy/fH6PVo9PgTiTgvvrMml2J9+gT/Oq4
fdOEk6sf7s/uFD++WOG8SQWFYGqkfRNQ/Hx+mniXPS/bnLoSYhQvKmTTjgTj
16qiIKy1EJIoQfuOJ4A4igyY5lYZtlG3ZqQrBHsbGrVzyC7omtEn3PFFuJ2s
SYqiPtY4PS753LJK7lbkdZDMQ97Y6W1X4AVBTYrQ78CD0H/rRk4Va6ruMTtK
+SZEQ9raWHGno++GkV5VTgFFoZG4acw5hjmHlNuE/XEkK3z1Cj7slrQimzFJ
w/RjgslqNvPswKdzLfojIAdS7AMdtMgQ8Izj+0c39zwutLVXAjjS16jGElKH
1axPH1XubRGtqzwjWb63RoMOOb+0zhFufVum3eSQnB0/3tJmwwhqqKd+okJe
aR0tPrKD9MC9kkCcy+jM2V4JRcdlyrKrG9r2PWNotZ2TrIUlc6TF5ScLYF1F
F4c/vTU4Y6jK0/z7SlpWQgMSb4J+VfJI7m0z2JDdLopMfNzY1fQMGgPtfSlO
vEZcbCZIlvNIjqhNN8+XYJMYzcLPf2I/g9zjQfdzk26JnVg/hoigFwd4u+S8
qmgBIqTd5b4ri1sw62E1bbQvlP6+SOt75lv9wMgHXkidVt+1fM+vOp9W0iXY
P3FaDHx+YCb0mxbOyY9K73ybk+bI4HGGpKBfwtchyAdrV/WiFcglH83JNUO1
QqSJdiMyWGsiw3KgZkW64aSCzRyc1rnz5WRwRgcJWsRPvBlOTsHTV+hq4RrS
MTlu4jUbc1ky7KuaE0WPNr0v4eDHvKct7nx4LrAky3QtLby7yLZGvUbsgCc/
XZ/fnLk9aQhg9CFXTeerU1bmM6e4V4VlVJcNpH3Am810knPLOE5dB4+CWEWa
mMWIKySGAf6HrathU4GVkVbOpy701Ih/kZw/u4QDCq5ZMFdAbDAQI1lbiSN9
uj3WK9IkFepwBpMlQ1Tr25ZzNI502s+5dLgOdci5LZaCWG4MWQZ6VGV7vlFy
xWVGHD1vB404Z3TshTYq7fEAEoF7lz9ETowWV1OPn4Fk1XjEQHQiPD3S2c2f
sPC5bCK+IDSHdiQiiG9a/ZdvNYzSk5d4QSN0poTMQJmBn2NhIcc8znS+Ku9J
a7AFeGS8ImO5WljpOW80k9+mVng8JTLP6UbfGzo54HJJOzcXxnzJCXpGIUc+
PqlCzdKLo9eXxBnvq/JuiOBE0whStPYKG8JKS2k2nO0+DhSmd0bJKbOZYSMS
EdiP60gFiEukWDSdsjWSTremytK1+GvJh6vjZ6enV6bt/YCkLdDamtyXaIQm
AuY/HV9f+TYaHRCFt5h81MSpq2bNIxIh/GS/rRfTCOw1aWWPxKrO8LhEBZxe
Q17kXNKjClKnHcUunC0ebLCMCwytECmkKOWdeoKZwvDeBBGm4pBkl8W5Eiza
LXBdVwAnpOBgUxZV1fDYqDDOpO60+vZG7xgWkWaIqyZPW6wONlvuNibGOGA8
jlz1M3bVT+CbJxo1Bl/dRKGPxh5TW7NYCPsOkyrO2QwxHllEvYumF5BI0N26
dJ23vTHUXMP2eGKg07pihLuhjPlqEIPNkCQ5O0G4cnvy/nJ81nvj4E3vFbb8
o77/x04AM4yZVYU2xG0H12m/CRq3pBuZ3V8K/soVz6MbzcqmwaFpy0Oh0hvn
6IzEU5gKj4KqdhCo4fhTXBbfXVV2Zmta6Mg6EGs+BJufOm2QUZoN9AxpHfWL
EwcatdzI5EiPesIz8zHpfd9+Im2laDCXeq7ysGEA/Mlg44+fwCAmlJfrWJb4
9gHxahvtbogCivjdrRnqw/3RQYfQEpLwwDx37z62iEOX9e0ONPos/xRaIX3p
DWOPZNIaKZamglTpzHDCn9oWjHyrlWbkLE/vyspxdqi6k9rS7cXl7dn19eW1
OUrGLGgSbaVR3gxxmIpSulV+zBOUGIhgEeIFM9xgwwVx2Xszlv8KFHP2ghuR
4jRKQ2gM1M2LthqpZ6N+a5YkeBLfuq+mS+Qk47PrH8+ub99+HP914wjtCx6b
K9afnCjivvvIDzGdITCNbpt84TfCIM7Z+Ob29Pry6urs9Nc2Y6RJsogTeCG/
oa1wRpsYpTe9TUnpbh8vxldnJ+fvzs9O/z9wiR+gY4cqcAnQIKmPstJMvhIy
TuawGhFhbX02ZnoJdKTLRTv0kDepwzhtuDeiV3DYpszagtB7tB2+5Tse4O5x
zqJbGmziAR2oWSQEFnlJvjmip9Bm3uFLHB4j0tzVOPHLJ3q8jdIaWSNaubAz
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
RJ/5fwwRcmjMdgAA

-->

</rfc>
