<?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.29 (Ruby 3.3.6) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cel-nfsv4-rpc-over-quicv1-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <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-02"/>
    <author initials="B." surname="Coddington" fullname="Benjamin Coddington">
      <organization>Red Hat</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>bcodding@redhat.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 abbrev="Oracle">Oracle Corporation</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>chuck.lever@oracle.com</email>
      </address>
    </author>
    <date year="2025" month="May" day="02"/>
    <area>Transport</area>
    <workgroup>Network File System Version 4</workgroup>
    <abstract>
      <?line 53?>

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

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

<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="RFC0793"/>, 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 implementaion details of exchanging RPC messages over
QUICv1. Readers should already be familiar with the fundamentals
of ONC RPC (see <xref target="RFC5531"/>).</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, the peer that initiates QUICv1
connection establishment is referred to as an "RPC client" peer.
The peer that passively accepts the connection is referred to a
an "RPC server" peer.</t>
        <t>QUICv1 connections are not defined by the classic 5-tuple (IP proto,
source address, source port, destination address, and destination
port). Rather, each connection is defined by its connection ID.
Thus, 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 to belong to an established
connection.</t>
        <t>As a result, due to network conditions or administrative actions,
an RPC-over-QUICv1 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-QUICv1. A more complete
discussion can be found in <xref section="9" sectionFormat="of" target="RFC9000"/>.</t>
      </section>
      <section anchor="rpc-service-discovery">
        <name>RPC Service Discovery</name>
        <t>Because all QUICv1 traffic goes to a single port and is
demultiplexed on the receiving peer, the usual precursor step of
the RPC client sending an rpcbind query to the RPC server before
an RPC-over-QUICv1 connection is to be established is unneeded.</t>
        <t>Notice that we now have to invent a new way to perform proper
RPC service discovery. The historical method of discovering an RPC
service is to send an rpcbind query to a well-known port number
(port 111). The result of an rpcbind query contains the IP address
and port number of the requested RPC service.</t>
        <t>For QUICv1, the port number is part of the QUICv1 connection, and
is the same for all QUICv1 traffic directed to that network host.</t>
        <section anchor="transport-layer-security">
          <name>Transport Layer Security</name>
          <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 authentication
identity that was used during connection establishment.</t>
          <t>RPC-over-QUICv1 provides peer authentication and encryption services
using a framework based on Transport Layer Security (TLS).
Ergo, RPC-over-QUICv1 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.
Thus, there is no need or use for the STARTTLS mechanism described
in <xref section="4" sectionFormat="of" target="RFC9289"/>.</t>
            </li>
            <li>
              <t>The discussion in <xref target="RFC9289"/> about the opportunistic use of
TLS does not apply to RPC-over-QUICv1.</t>
            </li>
            <li>
              <t>The peer authentication requirements in <xref section="5.2" sectionFormat="of" target="RFC9289"/> do apply to RPC-over-QUICv1.</t>
            </li>
            <li>
              <t>The PKIX Extended Key Usage values defined in <xref target="RFC9289"/> are
also valid for use with RPC-over-QUICv1.</t>
            </li>
            <li>
              <t>The ALPN defined in <xref section="8.2" sectionFormat="of" target="RFC9289"/> is also used
for RPC-over-QUICv1.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="quic-streams">
        <name>QUIC Streams</name>
        <t>RPC-over-QUICv1 connections are mediated entirely by each peer's
RPC layer and are not visible to RPC applications. An RPC client
establishes a QUICv1 connection whenever there are application
RPC requests 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-QUICv1, this
is a stream. As an example, an NFSv4.1 BIND_CONN_TO_SESSION
operation <xref target="RFC8881"/> binds to a QUICv1 stream. As another example,
to signify the loss of an RPC request, an NFS server closes the
QUICv1 stream that received that request, but it does close not the
encompassing QUICv1 connection.</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="rpc-message-framing">
        <name>RPC Message Framing</name>
        <t>RPC-over-QUICv1 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 its Requester/Responder role.</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>Because each QUICv1 stream is an ordered-byte stream, an
RPC-with-QUICv1 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>
      <section anchor="stream-count">
        <name>Stream Count</name>
        <t>Given the above definition of RPC message framing on QUICv1
streams, it is possible for a Requester to create a stream,
send one RPC Call, receive one RPC Reply, then destroy the
stream. That is a degenerate case that might be used for
simple RPC-based protocols like rpcbind.</t>
        <t>For protocols that carry a significant workload, this style of
stream allocation would generate needless overhead. Moreover,
stream identifiers cannot be re-used on one QUICv1 connection,
so eventually a QUICv1 connection can no longer create a new
stream for each RPC XIDs. And finally, a connection peer may
advertise a max_streams value that is significantly lower than
2 ^ 60.</t>
        <t>Instead, RPC clients may create as many streams as is convenient
to their design, but should reuse streams on each connection
efficiently.</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 session.</t>
        <t>Servers that implement RPC-over-QUICv1 must be mindful 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
this.</t>
        <aside>
          <t>bfields: Open question whether we should do something more
 complicated that adds RDMA-like features or at least provides some
 minimal help with data alignment.  Possibilities might include a
 single additional integer giving the offset of a payload, serving
 only as a hint; or reference additional streams in the same
 connection for payloads; or even looking into full RDMA--long-term
 there may be interest in supporting RDMA over QUIC, and we may be
 able to piggyback on that effort.</t>
          <t>cel: Direct data placement over TCP can already be accomplished
 today using MPA/DDP protocols (formerly known as iWARP). Using a
 software iWARP implementation means no special hardware is
 necessary. Likewise, if MPA/DDP can be made to support QUIC, much of
 the need for a separate RPC-over-QUIC is moot. In addition, it would
 automatically bring transport layer security to other RDMA-enabled
 protocols (such as RPC-over-RDMA).</t>
          <t>cel: I will say however that it should be possible to create a
  "chunk" abstraction (similar to RPC-over-RDMA) where the
  RPC-over-QUICv1 protocol header identifies octet ranges of an RPC
  message that are to be sent via other QUIC streams. This would
  assume 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>
          <t>lars: If changes to the RPC-over-QUIC binding might be desired in
  the future, how would they be negotiated/expressed? Should a
  versioned ALPN be used instead of the one from
  <xref target="RFC9289"/>?</t>
        </aside>
        <aside>
          <t>NFS requirement on resends: QUIC allows reconnecting using the same
 connection ID, so isn't breaking/reconnection somewhat ambiguous?
 When can a server drop or a client resend? Any advice needed for
 server-side DRC implementations?</t>
          <t>lars: I'm not sure I understand what is meant by "reconnecting"
  above. Is this referring to connection migration? Or a 0-RTT
  repeated connection instance? Something else?</t>
          <t>lars: Also, I'm not sure if the use of streams is fully specified by
  the above. Is the intent here to leave it to callers to decide if
  they want to use a fresh stream for each RPC, or reuse an existing
  stream for a series of RPCs?</t>
          <t>cel: We need to define a server backpressure mechanism akin to the
  TCP window.</t>
          <t>cel: Still not clear how RPC program/version discovery will work
  in a world with no endpoint port numbers.</t>
          <t>cel: Should we limit each stream to carry only on RPC program and
  version combination? Doing so would delegate demultiplexing of
  ingress RPC traffic to QUIC -- eg, NFSACL and NFS would be required
  to flow over separate streams.</t>
        </aside>
      </section>
    </section>
    <section anchor="rpc-authentication-flavors">
      <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 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-QUICv1 as
described in this document.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Readers should refer to the discussion of QUIC's transport layer
security in <xref section="21" sectionFormat="of" target="RFC9000"/>.</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="netids-for-rpc-over-quic">
        <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>
        <aside>
          <t>lars: Why one per IP address family? This seems common practice with
  netids, but also seems to be a layering violation?</t>
          <t>cel: That question might be out of scope for this document.
  netids very nearly amount to technical debt at this point.</t>
        </aside>
      </section>
      <section anchor="alpn-identifier-for-sunrpc-on-quicv1">
        <name>ALPN Identifier for SunRPC on QUICv1</name>
        <t>RPC-over-QUICv1 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>
  </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="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="RFC0793">
          <front>
            <title>Transmission Control Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="September" year="1981"/>
          </front>
          <seriesInfo name="RFC" value="793"/>
          <seriesInfo name="DOI" value="10.17487/RFC0793"/>
        </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>
      </references>
    </references>
    <?line 467?>

<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,
and Martin Thomson
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>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA6Vc23bbSHZ9r6+oqB9ankXKlm9taybtkSWrWzO2rFjy9Mzq
NfECgSKJGAQYFCCameX5lnxLvix7n1OFC0VnkpV+cJMgUHXqXPe5QNPp1Jgm
bwp3Yj+4VdU4e11Xqcva2tmzpChsdedq+y8fL8/sn1zt86q0xyaZzWp3hyeu
z/rfTValZbLCQlmdzJtp6oppOfd3T6f1Op3ytum/t3l6dzx99NikSeMWVb09
sb7JTL6uT2xTt755/OjRS/yc1C45sbd1Uvp1VTdmU9WfF3XVrk/slWv4zV7k
hbM3W9+4VUfZU1PNfFW4xvkT066zRD74JimzT0lRlaBt67zx7WyVez7RbNe4
dvnm9sKs8xP7a1OlE+uxY+3mHp+2K/2Ao62S9TovF381JmmbZVWfGDM11uqJ
X7vy35JVXtqzKstwV1OV+K2qF+RqZn9OGnxNq7ZseOSPZd7g6k1D+mw1t6cr
V+dpgnvcKsmLEztLdZ3f1y5bJs1RWq0Gu92kVdPYd8l26Tb/r238StbYv8vZ
MqkLPPjWQXS4WldUEpflTVXHXd/XSQoxnFU1xJQ0uRw7aof++H+jKF226eej
glv+vpLnhSpTVvUK69+5E9z74eLs+MWTJ+Hjs0fPnsePz54cx4/Pnz8LH18+
evSo/xhvePn4+fPu44uXEGdeznd2efTD8xfdx5dxwx9ePn0cPr447hZ58eLF
MXViOgUDfAPaG2Nul7mn8rQrVzbWr12az3McPbHruoKyVYXFnmBQeee2kPc9
GzSHsLEHduW8TxZ48C5P1BjvojHy4dKl5L0/speNrR3MrMa9ZYXPdzlvM01l
ob8FeM0bxXAjBRBEbZulG120eeNdMT/SA5Wg6dMV/gkn4neL/2PVmcMmK1h3
ho84i7PrdlbkfsnTJDhpSeZgnfPcp60YHQXfCGPoJ2yVpm0NIkoh4teri5u7
p5YmzhXE6C11A98M1m3+eihO5fe5a+ZHUMIHE5vU6TInBdD/X/96uGyatT95
+JBPhZ+O4t0PeeHhrK423j2UhR4+OLK/hN1+4m69HoAkUJnccZ0Z1Hy8PLxL
QjF/dnW//GYRVk1mVdtgbWNu6G0g/HYBAYqYwJQMmp6UlCh4tG7hZyk2/O53
dlnkzbKd0Qgeim2IaTzMp9muV8UxLkvoXauqQBeqPE0au4buBFGu8iyDUZrv
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
oZIAv+AqL+fd8HPfXxuoTuz9dsiN4buWNCHMJ+rA10SGTBVSSSI5o2IuKun1
Zw/dlzW7TC57ZW/C6AQeD/OmWE0KrREX5oo1Yl2fmIpZHh4YVHRfDT0/a0OD
QrOVujPhLE4oxyAi2PjR0HGw/L3O7/KcrXpwtfweh4Y86PQe9k+zzwFZbUQJ
VrN80Vatf2WsFFjE6cRSVVZXa+2mh9CndL0Cdtty4pldP+1DSkwLj015Lnv+
4d6Q8Kuh6L5fidA957MubSt5fyOuNKgEPVDDivHB8OAH8loIRAx/4BUla4El
1/b74JDa5sanV0A3OMOj6YfbW75+4tZOQuWwI1Xq0C8k3MVWV3g3JPm08NVk
THiYTAidmC4qeYkug1IojhEUbki7RhgcUs28spKo07B4EEhdsFEFrU3J0Xyu
a2zthpxppFwvPSrnl3YP0J5o/JS7WBlle0RmWQf3iqxz9RN4JMhIHN0vrkMv
ml73isGwJjbR1oMZdktNC5bI9otMQZdZtRl4zxsOVQgD04KZPw0vvC4Caa0e
xinurhet3laGqaRhlPBzoaOWjE9dqW3QxPXDDdViN5yKZS1PmBMrrlVwR4I7
+rdZSIm0eTsrJ8SahamWV/a8on7AxtRlZK5wCxkd76cJJLGdC8k6MjKcxYzl
jenUusWEsPj07K3gCPqCTQwiwSmQDAIWOAEFB12g7IujWmU9HXevLorkrgLM
NTc9XLrvlVeCI1ggnAvS0gH7nW7sXJdiU6KrvalX5aN44NPpx9ufP328uvzz
RMdDYzdRsoImXzkOr2iAGT148+bs0083NzgD/gU2YJppD5kCPtjtxnXv9xAk
zht5bWHnNGZfb0ReZgqvngTOyaRqnFiSeQoNJGKpA5Pm8khVO+QpueoOVfPB
MfhcTQ9ghiva3RWl/h0focut1nH9fkCDMIDTg/IiC8GLvt/VdeE5JxBG2KX1
Lv47tDWgfTSQfQKfhClpbt31u2dwsat+2JdZZZklgvpDx20HH6bJWoCuVDpL
yEWb26FxrmFLy7fxmFKWJBN+YtECVtA1zuM8z+mgNXcdrPCSGHwObGwPscj0
9PryQTd9EMK7DKHuFgD5Lh/fPRHnRWxP/yX9KM4uMdoU2zFSjFB7+J5HG1N3
k0EGLh53KILdiYN7b8bIucOioggHTeGnwBR8cac+iKfpBtX4JuneI/E9Qx2D
spdjYfA1yNaHV+r87ujQ/+6tutGzsYKrdQQuzpNrLrF7PgU6psOjo/lCrjls
83UzBnAIfBI4uVFXqR09EXfpmuk53+jrzLMbvpDXHfFQUozarjouwdcp9U0i
F35dRwvdJTpOUPfMkhfGpCsvfRqfe6WUr/TGii0DsUSD4D7kdTMNGE4acEZe
RNQmyMUZHfM1k22n7zkK2JWybd6dmvUDCh7aQce3Y2UEBn2nhj9uGfDgiRUq
BtdCGo/iewUsCUwkMkq6yW6xEY8IQShs4PhWaFkO31BcC7ojMAppR5i7YfYG
+JcZ7CbcYLEJnEfeVccEoYPwgYdJcK1SutFKI0chWXGK9RAp+iH1LSplRPdy
5D0Fq0P9KpYx+klmaegDh3pdtOeyBprdlVhTFBgk+h4nAsCqb2r2bta1O1I/
GsMX0+y82hmWyLPQZOa0xHj6umt3N+Mhl36+ZyeJNV0SOx4ziLX7fkrSXp5e
nd7f/+LMvpF3rk+YSmuqxcxCsEw7C6YAwa1VZ8MYKdee3r4+l4Ci845YKRT4
aCjxfY4xL8bq2C1JVyTFr0ALzsnXgaNzGr/WwB5AG4O49BquXJPDL90bCQh9
nDK849ezjmE/0jjsUfGug5KrHRDPgAdeGrhayuVXVa5+AlFcDN8W//o13MLX
22MW1oeUwZuK0SdOOHUCv1Uzn9ztf0y60WQ1Ran3h4gY5hudVnHlBb8JS5z0
HaElpJTvvB/eD7XQGEQdYlnZjAV/cKU8qN2C48bb7vQhGz+Ig/96n4n37Q+6
z58/+/r1xJi///3vAK387+rsk0RF/HfA14sPxtefx+vPD+ShIIJSxSyhc9Bw
EW/Zs9dDtf18G0RgRsNa/4OVSnxQYnQjen8NlbKRoITL67unkf1SM/TWrcJb
XhHQ7RF5eFVHTyQkY6Hng4WOVBrBCbReVd50kjsM1vYgVtL7+mcs7FPJHT2w
G1eQQ5r6y3Irms5OwWBkXl7x2L6Kr5Y49pmr1Ur8PitRqU6T8Y82CPO1xyFT
YXq3cihRZ0SW3OWVtmwHOaO00LridVd34aAeE+QU8DScY+Q346ZWMj59gzSU
8sWzIMMsZRA5c7NGMYT0B3N1ut9pCeaya3DJHjdtGbraob14f+jk3puwsk6w
7lAElLb/7dsbicP31T764R92Zup6K4hkBQR0EwpZJ9Y++vLDE/7zDP88d/z0
mP884tcn9vDAtyW8z8GDaBrfNvFkoCdgWK9FM3Ei4qDF8gNTBq/t0uijsXNi
coDCpzrheh0ntq5CTUzKlmTVg+43e3nuey8S/kQAywSMR6cpA2zhsoUYJ3Q2
xA+X/fNBWR181dfs9M+hyDCZqGxsubk1i/B0oSxFD5tcpoMiMWD/4ci+rtkR
u5B2CvtUAmJkbCFfsN8Y9jHdH4/o1HBUYd4oOuBfBpiFMe63MDD7ZrFw4QWC
OCBuxn9kIhrqsKMUb7X3o4OCkfD3UOho5O0MaXRV5jWrH6+Tz+zj/gT22neg
AQo1MR/ylDV5e5MugfSQU5GuiYzCv+O0bwljrFaeyXtEUDjMulXSQ0kee5ub
UOFnz/Qz7dyc8kVX7U6ATz9VLJFcJHm9RPrdTMzVxc2fno7/1AX/xktee/Ma
Ia6018mGFcvPOakxZ8uabxKsGa8uyyTNK6Fy7zKwptrxbWdD4iG3n5Ntify0
P8KiDS8Uy1uKUp6Bkzky/w0ZT+GzgEgAAA==

-->

</rfc>
