<?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.6.11 (Ruby 3.1.2) -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-snip-02" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.10 -->
  <front>
    <title abbrev="Authenticating Incompatible Protocols">Secure Negotiation of Incompatible Protocols in TLS</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-snip-02"/>
    <author initials="M." surname="Thomson" fullname="Martin Thomson">
      <organization>Mozilla</organization>
      <address>
        <email>mt@lowentropy.net</email>
      </address>
    </author>
    <date year="2022" month="June" day="30"/>
    <abstract>
      <t>An extension is defined for TLS that allows a client and server to detect an
attempt to force the use of less-preferred application protocol even where
protocol options are incompatible.  This supplements application-layer protocol
negotiation (ALPN), which allows choices between compatible protocols to be
authenticated.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>With increased diversity in protocol choice, some applications are able to use
one of several semantically-equivalent protocols to achieve their goals.  This
is particularly notable in HTTP where there are currently three distinct
protocols: HTTP/1.1 <xref target="HTTP11"/>, HTTP/2 <xref target="HTTP2"/>, and HTTP/3
<xref target="HTTP3"/>.  This is also true of protocols that support variants based
on both TLS <xref target="TLS"/> and DTLS <xref target="DTLS"/>.</t>
      <t>For protocols that are mutually compatible, Application-Layer Protocol
Negotiation (ALPN; <xref target="ALPN"/>) provides a secure way to negotiate
protocol selection.</t>
      <t>In ALPN, the client offers a list of options in a TLS ClientHello and the server
chooses the option that it most prefers.  A downgrade attack occurs where both
client and server support a protocol that the server prefers more than than the
selected protocol.  ALPN protects against this attack by ensuring that the
options the client offers and the choice the server makes are included in the
TLS handshake.  Confirming the TLS handshake then ensures that the client and
server agree on both the offered options and the server choice, preventing an
attacker from altering either.</t>
      <t>The introduction of semantically-equivalent protocols that use incompatible
handshakes introduces new opportunities for downgrade attack.  ALPN cannot be
used to securely select between incompatible protocols.  For instance, it is not
possible to negotiate the use of HTTP/2 based on an attempt to connect using
HTTP/3.  The former relies on TCP, whereas the latter uses UDP.</t>
      <t>In this example, a client that attempts a connection with HTTP/2 cannot use ALPN
to express that it might want to use HTTP/3.  The client needs to initiate a
QUIC connection <xref target="QUIC"/> if it wants to attempt HTTP/3.  Even if HTTP/3
is preferred, an attacker need only block the HTTP/3 connection attempt to cause
the client and server to use HTTP/2.</t>
      <t>This document defines an extension to TLS that allows clients to discover when a
server supports alternative protocols that are incompatible with the protocol in
use.  This might be used to detect a downgrade attack.</t>
      <t>Downgrade protection for incompatible protocols only works for services provided
by the same logical server (see <xref target="ls"/>). That is, the protection only applies to
servers that operate from the same IP address and port number from the
perspective of the client.</t>
      <t>This extension is motivated by the addition of new protocols such as HTTP/3
<xref target="HTTP3"/> that are semantically equivalent, but incompatible with existing
protocols.</t>
      <t>These downgrade protections are intended to work for any method that a client
might use to discover that a server supports a particular protocol.  Special
considerations for HTTP Alternative Services <xref target="ALTSVC"/> is included in
<xref target="alt-svc"/>.</t>
    </section>
    <section anchor="terminology">
      <name>Terminology</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <t>Two protocols are considered "compatible" if it is possible to negotiate either
using the same connection attempt.  In comparison, protocols are "incompatible"
if they require separate attempts to establish a connection.</t>
    </section>
    <section anchor="selection">
      <name>Incompatible Protocol Selection</name>
      <t>This document extends the authentication protections provided by TLS to cover
negotiation of incompatible protocols.</t>
      <t>This is complementary to ALPN <xref target="ALPN"/>, which protects the negotiation of
compatible protocols.  In ALPN, the client presents a set of compatible options
and the server chooses its most preferred and the server chooses its most
preferred.</t>
      <t>This extension works by having a server offer a list of incompatible protocols
that are available for use on the same logical server (see <xref target="ls"/>).  How clients
use this information will depend on client policy.</t>
      <section anchor="client-policy">
        <name>Client Policy</name>
        <t>A client has to choose between incompatible options before making a connection
attempt.  Thefore, this document does not define a negotiation mechanism, it
only provides authenticated information that a client can use to validate
information it acquires from other sources, such as <xref target="SVCB"/>.</t>
        <t>Importantly, detecting a potential downgrade between incompatible protocols does
not automatically imply that a client abandon a connection attempt.  It only
provides the client with authenticated information that can help with making a
decision.  What a client does with this information is left to client policy.</t>
        <t>For a protocol like HTTP/3, this might not result in the client choosing to use
HTTP/3, even if HTTP/3 is preferred and the server indicates that a service
endpoint supporting HTTP/3 is available.  Blocking of UDP or QUIC is known to be
widespread.  As a result, clients might adopt a policy of tolerating a downgrade
to a TCP-based version of HTTP, even if HTTP/3 were preferred.  However, as
blocking of UDP is highly correlated by access network, clients that are able to
establish HTTP/3 connections to some servers might choose to apply a stricter
policy when a server that indicates HTTP/3 support is unreachable.</t>
      </section>
      <section anchor="ls">
        <name>Logical Servers</name>
        <t>This document relies on the notion of a logical server for determining how a
client interprets information about incompatible protocols.</t>
        <t>Clients can assume availability of incompatible protocols across the set of
endpoints that share an IP version, IP address, and port number with the TLS
server that provides the incompatible_protocols extension.</t>
        <t>This definition includes a port number that is independent of the protocol that
is used.  Any protocol that defines a port number is considered to be
equivalent.  In particular, incompatible protocols can be deployed to TCP, UDP,
SCTP, or DCCP ports as long as the IP address and port number is the same.</t>
        <t>This determination is made from the perspective of a client.  This means that
server operators need to be aware of all instances that might answer to the same
IP address and port; see <xref target="operational"/>.</t>
      </section>
    </section>
    <section anchor="extension">
      <name>Authenticating Incompatible Protocols</name>
      <t>The incompatible_protocols(TBD) TLS extension provides clients with information
about the incompatible protocols that are supported by the same logical server;
see <xref target="ls"/> for a definition of a logical server.</t>
      <sourcecode type="tls-syntax"><![CDATA[
enum {
    incompatible_protocols(TBD), (65535)
} ExtensionType;
]]></sourcecode>
      <t>A client that supports the extension advertises an empty extension.  In
response, a server that supports this extension includes a list of application
protocol identifiers.  The "extension_data" field of the server extension uses
the <tt>ProtocolName</tt> type defined in <xref target="ALPN"/>.  This syntax is shown in
<xref target="fig-syntax"/>.</t>
      <figure anchor="fig-syntax">
        <name>TLS Syntax for incompatible_protocols Extension</name>
        <sourcecode type="tls-syntax"><![CDATA[
opaque ProtocolName<1..2^8-1>;  // From RFC 7301
ProtocolName IncompatibleProtocol;

struct {
  select (Handshake.msg_type) {
    case client_hello:
      Empty;
    case encrypted_extensions:
      IncompatibleProtocol incompatible_protocols<3..2^16-1>;
  };
} IncompatibleProtocols;
]]></sourcecode>
      </figure>
      <t>This extension only applies to the ClientHello and EncryptedExtensions messages.
An implementation that receives this extension in any other handshake message
MUST send a fatal illegal_parameter alert.</t>
      <t>Clients and servers MUST include the application_layer_protocol_negotiation
extension if they include an incompatible_protocols extension.  An endpoint that
receives an incompatible_protocols extension without an
application_layer_protocol_negotiation extension MUST send a fatal
missing_extension alert.</t>
      <t>A client offers an empty extension to indicate that it wishes to receive
information about incompatible protocols supported by the (logical) server.</t>
      <t>A server deployment that supports multiple incompatible protocols MAY advertise
all protocols that are supported by the same logical server.  A server needs to
ensure that protocols advertised in this fashion are available to the client.</t>
      <t>A server SHOULD omit any compatible protocols from this extension.  That is, any
protocol that the server might be able to select, had the client offered the
protocol in the application_layer_protocol_negotiation extension.  In
comparison, clients are expected to include all compatible protocols in the
application_layer_protocol_negotiation extension.  This recommendation exists
only so that implementations choose a consistent - and smaller - encoding;
clients MUST NOT abort a handshake if the server lists a compatible protocol.</t>
      <t>Information presented by the server is only valid at the time it is provided.  A
client can act on that information immediately, but it cannot retain the
information on the expectation that it will be valid later.  A server therefore
only needs to consider providing information that is current for a period that
would allow the client to act, which might amount to a few seconds.</t>
      <section anchor="validation">
        <name>Validation</name>
        <t>A client detects a likely downgrade attack if:</t>
        <ul spacing="normal">
          <li>the client has discovered server endpoints for a preferred protocol that point
to a logical server,</li>
          <li>an attempt to connect using the preferred protocol is unsuccessful,</li>
          <li>an attempt to connect to the same logical server using a protocol that is
incompatible with the preferred protocol is successful, and</li>
          <li>an incompatible_protocols extension that lists the preferred protocol is
received on the successful connection attempt.</li>
        </ul>
        <t>In response to detecting a potential downgrade attack, a client might abandon
the current connection attempt and report an error.</t>
        <t>These steps can occur in a different order.  For instance, a client might
support an incompatible protocol, but choose not to attempt to make a connection
with that protocol under normal conditions.  That client might instead make a
connection attempt or initiate discovery for that protocol when it learns that
the preferred protocol is available by some means.  Such a client then detects a
downgrade attack when the connection attempt fails.</t>
      </section>
      <section anchor="quic">
        <name>QUIC Version Negotiation</name>
        <t>QUIC enables the definition of incompatible protocols that share a port.  The
incompatible_protocols extension can be used to authenticate the choice of
application protocols across incompatible QUIC version.  QUIC version
negotiation <xref target="QUIC-VN"/> is used to
authenticate the choice of QUIC version.</t>
        <t>As there are two potentially competing sets of preferences at different protocol
layers, clients need to set preferences for QUIC version and application
protocol are consistent.</t>
        <t>For example, if application protocol A exclusively uses QUIC version X and
application protocol B exclusively uses QUIC version Y, setting a preference for
both A and Y will result in one or other option not being selected.  This would
result in failure if the client applied a policy that regarded either downgrade
as an error.</t>
      </section>
      <section anchor="alt-svc">
        <name>HTTP Alternative Services</name>
        <t>It is possible to select incompatible protocols based on an established
connection.  The Alternative Services <xref target="ALTSVC"/> bootstrapping in
HTTP/3 <xref target="HTTP3"/> is not vulnerable to downgrade as the signal is exchanged over
an authenticated connection.  A server can advertise the presence of an endpoint
that supports HTTP/3 using an HTTP/2 or HTTP/1.1 connection.</t>
        <t>A client MAY choose to ignore incompatible protocols when attempting to use an
alternative service.</t>
      </section>
    </section>
    <section anchor="operational">
      <name>Operational Considerations</name>
      <t>By listing incompatible protocols a server needs to be certain that the
incompatible protocols are available.  Ensuring that this information is correct
might need some amount of coordination in server deployments.  In particular,
coordination is important if a load balancer distributes load for a single IP
address to multiple server instances, or where anycast <xref target="BCP126"/> is used.</t>
      <t>Incompatible protocols can only be listed in the incompatible_protocols
extension when those protocols are deployed across all server instances.  A
client might regard lack of availability for an advertised protocol as a
downgrade attack, which could lead to service outages for those clients.</t>
      <t>Server deployments can choose not to provide information about incompatible
protocols might avoid the operational complexity of providing accurate
information.  If a server does not list incompatible protocols, clients cannot
gain authenticated information about their availability and so cannot detect
downgrade attacks against those protocols.</t>
      <t>During rollout of a new, incompatible protocol, until the deployment is stable
and not at risk of being disabled, servers SHOULD NOT advertise the existence of
the new protocol.</t>
      <t>Protocol deployments that are in the process of being disabled first need to be
removed from the incompatible_protocols extension.  If a disabled protocol is
advertised to clients, clients might regard this as a downgrade attack.  Though
the incompatible_protocols extension only applies at the time of the TLS
handshake, clients might take some time to act on the information.  If an
incompatible protocol is removed from deployment between when the client
completes a handshake and when it acts, this could be treated as an error by the
client.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This design depends on the integrity of the TLS handshake across all forms,
including TLS <xref target="RFC8446"/>, DTLS <xref target="DTLS"/>, and QUIC
<xref target="QUIC-TLS"/>.  Similarly, integrity is necessary across all
TLS versions that a client is willing to negotiate.  An attacker that can modify
a TLS handshake in any one of these protocols or versions can cause a client to
believe that other options do not exist.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>IANA is requested to assign a new value from the "TLS ExtensionType Values" registry:</t>
      <dl>
        <dt>Value:</dt>
        <dd>
          <t>TBD</t>
        </dd>
        <dt>Extension Name:</dt>
        <dd>
          <t>incompatible_protocols</t>
        </dd>
        <dt>TLS 1.3:</dt>
        <dd>
          <t>CH, EE</t>
        </dd>
        <dt>DTLS-Only:</dt>
        <dd>
          <t>N</t>
        </dd>
        <dt>Recommended:</dt>
        <dd>
          <t>Y</t>
        </dd>
        <dt>Reference:</dt>
        <dd>
          <t>this document, <xref target="extension"/></t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="ALPN">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl">
              <organization/>
            </author>
            <author fullname="A. Popov" initials="A." surname="Popov">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="E. Stephan" initials="E." surname="Stephan">
              <organization/>
            </author>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="ALTSVC">
          <front>
            <title>HTTP Alternative Services</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="P. McManus" initials="P." surname="McManus">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." surname="Reschke">
              <organization/>
            </author>
            <date month="April" year="2016"/>
            <abstract>
              <t>This document specifies "Alternative Services" for HTTP, which allow an origin's resources to be authoritatively available at a separate network location, possibly accessed with a different protocol configuration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7838"/>
          <seriesInfo name="DOI" value="10.17487/RFC7838"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
        <name>Informative References</name>
        <reference anchor="SVCB">
          <front>
            <title>Service binding and parameter specification via the DNS (DNS SVCB and HTTPS RRs)</title>
            <author fullname="Ben Schwartz">
              <organization>Google</organization>
            </author>
            <author fullname="Mike Bishop">
              <organization>Akamai Technologies</organization>
            </author>
            <author fullname="Erik Nygren">
              <organization>Akamai Technologies</organization>
            </author>
            <date day="24" month="May" year="2022"/>
            <abstract>
              <t>   This document specifies the "SVCB" and "HTTPS" DNS resource record
   (RR) types to facilitate the lookup of information needed to make
   connections to network services, such as for HTTP origins.  SVCB
   records allow a service to be provided from multiple alternative
   endpoints, each with associated parameters (such as transport
   protocol configuration and keys for encrypting the TLS ClientHello).
   They also enable aliasing of apex domains, which is not possible with
   CNAME.  The HTTPS RR is a variation of SVCB for use with HTTP [HTTP].
   By providing more information to the client before it attempts to
   establish a connection, these records offer potential benefits to
   both performance and privacy.

   TO BE REMOVED: This document is being collaborated on in Github at:
   https://github.com/MikeBishop/dns-alt-svc
   (https://github.com/MikeBishop/dns-alt-svc).  The most recent working
   version of the document, open issues, etc. should all be available
   there.  The authors (gratefully) accept pull requests.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-dnsop-svcb-https-10"/>
        </reference>
        <reference anchor="HTTP11">
          <front>
            <title>HTTP/1.1</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document specifies the HTTP/1.1 message syntax, message parsing, connection management, and related security concerns. </t>
              <t>This document obsoletes portions of RFC 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="99"/>
          <seriesInfo name="RFC" value="9112"/>
          <seriesInfo name="DOI" value="10.17487/RFC9112"/>
        </reference>
        <reference anchor="HTTP2">
          <front>
            <title>HTTP/2</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <author fullname="C. Benfield" initials="C." role="editor" surname="Benfield">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2). HTTP/2 enables a more efficient use of network resources and a reduced latency by introducing field compression and allowing multiple concurrent exchanges on the same connection.</t>
              <t>This document obsoletes RFCs 7540 and 8740.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9113"/>
          <seriesInfo name="DOI" value="10.17487/RFC9113"/>
        </reference>
        <reference anchor="HTTP3">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment.  This document describes a mapping of HTTP semantics over QUIC.  This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="TLS">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="DTLS">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla">
              <organization>RTFM, Inc.</organization>
            </author>
            <author fullname="Hannes Tschofenig">
              <organization>Arm Limited</organization>
            </author>
            <author fullname="Nagendra Modadugu">
              <organization>Google, Inc.</organization>
            </author>
            <date day="30" month="April" year="2021"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.

 The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability. Datagram semantics of the underlying transport are preserved by the DTLS protocol.

 This document obsoletes RFC 6347.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-dtls13-43"/>
        </reference>
        <reference anchor="QUIC">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <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="QUIC-VN">
          <front>
            <title>Compatible Version Negotiation for QUIC</title>
            <author fullname="David Schinazi">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Eric Rescorla">
              <organization>Mozilla</organization>
            </author>
            <date day="8" month="June" year="2022"/>
            <abstract>
              <t>   QUIC does not provide a complete version negotiation mechanism but
   instead only provides a way for the server to indicate that the
   version the client chose is unacceptable.  This document describes a
   version negotiation mechanism that allows a client and server to
   select a mutually supported version.  Optionally, if the client's
   chosen version and the negotiated version share a compatible first
   flight format, the negotiation can take place without incurring an
   extra round trip.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-version-negotiation-08"/>
        </reference>
        <referencegroup anchor="BCP126" target="https://www.rfc-editor.org/info/bcp126">
          <!-- reference.RFC.4786.xml -->
<reference anchor="RFC4786" target="https://www.rfc-editor.org/info/rfc4786">
            <front>
              <title>Operation of Anycast Services</title>
              <author fullname="J. Abley" initials="J." surname="Abley">
                <organization/>
              </author>
              <author fullname="K. Lindqvist" initials="K." surname="Lindqvist">
                <organization/>
              </author>
              <date month="December" year="2006"/>
              <abstract>
                <t>As the Internet has grown, and as systems and networked services within enterprises have become more pervasive, many services with high availability requirements have emerged.  These requirements have increased the demands on the reliability of the infrastructure on which those services rely.</t>
                <t>Various techniques have been employed to increase the availability of services deployed on the Internet.  This document presents commentary and recommendations for distribution of services using anycast.  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="126"/>
            <seriesInfo name="RFC" value="4786"/>
            <seriesInfo name="DOI" value="10.17487/RFC4786"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol.  TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961.  This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="QUIC-TLS">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="Martin Thomson">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Sean Turner">
              <organization>sn3rd</organization>
            </author>
            <date day="14" month="January" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-tls-34"/>
        </reference>
        <reference anchor="URI">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee">
              <organization/>
            </author>
            <author fullname="R. Fielding" initials="R." surname="Fielding">
              <organization/>
            </author>
            <author fullname="L. Masinter" initials="L." surname="Masinter">
              <organization/>
            </author>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
      </references>
    </references>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Benjamin Schwartz provided significant input into the design of the mechanism
and helped simplify the overall design.</t>
    </section>
    <section anchor="defining-logical-servers">
      <name>Defining Logical Servers</name>
      <t>As incompatible protocols use different protocol stacks, they also use different
endpoints. In other words, it is impossible for a single endpoint to support
multiple incompatible protocols.  Thus, it is necessary to understand the set of
endpoints at a server that offer the incompatible protocols.</t>
      <t>Thus, the definition of where incompatible protocols needs to encompass multiple
endpoints somehow.</t>
      <t>A number of choices are possible here (this list is not exhaustive):</t>
      <ul spacing="normal">
        <li>The set of endpoints that are authoritative for the same domain name.</li>
        <li>The set of endpoints that are authoritative for the same "authority" as defined
in RFC 3986 <xref target="URI"/>, which is in effect domain name plus port number.</li>
        <li>The set of endpoints that are referenced by the same SVCB ServiceMode record;
see <xref section="2.4.3" sectionFormat="of" target="SVCB"/>.</li>
        <li>The set of endpoints that share an IP address.</li>
        <li>The set of endpoints that share an IP address and port number.</li>
      </ul>
      <t>The challenge with options based on domain name is that it might prevent the use
of multiple service providers. This is a common practice for HTTP, where the
same domain name can be operated by multiple CDN operators.</t>
      <t>Having multiple service operators also rules out using SVCB ServiceMode records
also as different records might be used to identify different operators.</t>
      <t>Hosts on the same IP address might work, but common deployment practices include
use of different ports for entirely different services.  These can have
different operational constraints, such as deployment schedules.  Including
different ports in the same scope could force all services on the same host to
support a consistent set of protocols.</t>
      <t>This leaves IP and port.  There is still a risk that the same port number is
used for completely different purposes depending on the choice of protocol.
This practice is sufficiently rare that it is not anticipated to be a problem.
A deployment with no ability to coordinate the deployment of protocols that
share an IP and port can choose not to advertise the availability of
incompatible protocols.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
QgAA

-->

</rfc>
