<?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.17 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pauly-masque-quic-proxy-04" category="exp" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.14.2 -->
  <front>
    <title abbrev="QUIC Proxy">QUIC-Aware Proxying Using HTTP</title>
    <seriesInfo name="Internet-Draft" value="draft-pauly-masque-quic-proxy-04"/>
    <author initials="T." surname="Pauly" fullname="Tommy Pauly">
      <organization>Apple Inc.</organization>
      <address>
        <postal>
          <street>One Apple Park Way</street>
          <city>Cupertino, California 95014</city>
          <country>United States of America</country>
        </postal>
        <email>tpauly@apple.com</email>
      </address>
    </author>
    <author initials="D." surname="Schinazi" fullname="David Schinazi">
      <organization>Google LLC</organization>
      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>
          <city>Mountain View, California 94043</city>
          <country>United States of America</country>
        </postal>
        <email>dschinazi.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2022" month="September" day="02"/>
    <workgroup>MASQUE</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document defines an extension to UDP Proxying over HTTP
that adds specific optimizations for proxied QUIC connections. This extension
allows a proxy to reuse UDP 4-tuples for multiple connections. It also defines a
mode of proxying in which QUIC short header packets can be forwarded using an
HTTP/3 proxy rather than being re-encapsulated and re-encrypted.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Source for this draft and an issue tracker can be found at
  <eref target="https://github.com/tfpauly/quic-proxy">https://github.com/tfpauly/quic-proxy</eref>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>UDP Proxying over HTTP <xref target="CONNECT-UDP"/>
defines a way to send datagrams through an HTTP proxy, where UDP is used to communicate
between the proxy and a target server. This can be used to proxy QUIC
connections <xref target="QUIC"/>, since QUIC runs over UDP datagrams.</t>
      <t>This document uses the term "target" to refer to the server that a client is
accessing via a proxy. This target may be an origin hosting content, or another
proxy.</t>
      <t>This document extends the UDP proxying protocol to add signalling about QUIC
Connection IDs. QUIC Connection IDs are used to identify QUIC connections in
scenarios where there is not a strict bidirectional mapping between one QUIC
connection and one UDP 4-tuple (pairs of IP addresses and ports). A proxy that
is aware of Connection IDs can reuse UDP 4-tuples between itself and a target
for multiple proxied QUIC connections.</t>
      <t>Awareness of Connection IDs also allows a proxy to avoid re-encapsulation and
re-encryption of proxied QUIC packets once a connection has been established.
When this functionality is present, the proxy can support two modes for handling
QUIC packets:</t>
      <ol spacing="normal" type="1"><li>Tunnelled, in which client &lt;-&gt; target QUIC packets are encapsulated inside
client &lt;-&gt; proxy QUIC packets. These packets use multiple layers of encryption
and congestion control. QUIC long header packets MUST use this mode. QUIC short
header packets MAY use this mode. This is the default mode for UDP proxying.</li>
        <li>Forwarded, in which client &lt;-&gt; target QUIC packets are sent directly over the
client &lt;-&gt; proxy UDP socket. These packets are only encrypted using the
client-target keys, and use the client-target congestion control. This mode MUST
only be used for QUIC short header packets.</li>
      </ol>
      <t>Forwarding is defined as an optimization to reduce CPU processing on clients and
proxies, as well as avoiding MTU overhead for packets on the wire. This makes it
suitable for deployment situations that otherwise relied on cleartext TCP
proxies, which cannot support QUIC and have inferior security and privacy
properties.</t>
      <t>The properties provided by the forwarding mode are as follows:</t>
      <ul spacing="normal">
        <li>All packets sent between the client and the target traverse through the proxy
device.</li>
        <li>The target server cannot know the IP address of the client solely based on the
proxied packets the target receives.</li>
        <li>Observers of either or both of the client &lt;-&gt; proxy link and the proxy &lt;-&gt;
target are not able to learn more about the client &lt;-&gt; target communication than
if no proxy was used.</li>
      </ul>
      <t>It is not a goal of forwarding mode to prevent correlation between client &lt;-&gt;
proxy and the proxy &lt;-&gt; target packets from an entity that can observe both
links. See <xref target="security"/> for further discussion.</t>
      <t>Both clients and proxies can unilaterally choose to disable forwarded mode for
any client &lt;-&gt; target connection.</t>
      <t>The forwarding mode of this extension is only defined for HTTP/3
<xref target="HTTP3"/> and not any earlier versions of HTTP.</t>
      <t>QUIC proxies only need to understand the Header Form bit, and the connection ID
fields from packets in client &lt;-&gt; target QUIC connections. Since these fields
are all in the QUIC invariants header <xref target="INVARIANTS"/>,
QUIC proxies can proxy all versions of QUIC.</t>
      <section anchor="conventions">
        <name>Conventions and Definitions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
      </section>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>This document uses the following terms:</t>
        <ul spacing="normal">
          <li>Client: the client of all QUIC connections discussed in this document.</li>
          <li>Proxy: the endpoint that responds to the UDP proxying request.</li>
          <li>Target: the server that a client is accessing via a proxy.</li>
          <li>Client &lt;-&gt; Proxy HTTP stream: a single HTTP stream established from
the client to the proxy.</li>
          <li>Socket: a UDP 4-tuple (local IP address, local UDP port, remote IP address,
remote UDP port). In some implementations, this is referred to as a "connected"
socket.</li>
          <li>Client-facing socket: the socket used to communicate between the client and
the proxy.</li>
          <li>Target-facing socket: the socket used to communicate between the proxy and
the target.</li>
          <li>Client Connection ID: a QUIC Connection ID that is chosen by the client, and
is used in the Destination Connection ID field of packets from the target to
the client.</li>
          <li>Target Connection ID: a QUIC Connection ID that is chosen by the target, and
is used in the Destination Connection ID field of packets from the client to
the target.</li>
          <li>Virtual Target Connection ID: a fake QUIC Connection ID that is chosen by the
proxy that the client MUST use when sending QUIC packets in forwarding mode.</li>
        </ul>
      </section>
      <section anchor="virtual-target-connection-id">
        <name>Virtual Target Connection ID</name>
        <t>QUIC allows each endpoint of a connection to choose the connection IDs they
receive with. Load balancing strategies such as those described in
<xref target="QUIC-LB"/> may choose to take advantage of this
by encoding routing information in the connection ID. When operating in
forwarding mode, clients send QUIC packets destined for the Target directly to
the Proxy. Since these packets are generated using the Target Connection ID,
load balancers may not be able to route packets to the correct Proxy.</t>
        <t>The Virtual Target Connection ID is a connection ID chosen by the Proxy that the
Client uses when sending forwarded mode packets. The Proxy replaces the Virtual
Target Connection ID with the Target Connection ID prior to forwarding the
packet to the Target. This is only necessary in the Client-&gt;Target direction
because the Proxy is otherwise the only receiver of QUIC packets with connection
IDs it did not generate.</t>
        <t>Clients and Proxies not implementing forwarding mode do not need to consider
the Virtual Target Connection ID since all Client-&gt;Target datagrams will be
encapsulated within the Client&lt;-&gt;Proxy connection.</t>
      </section>
    </section>
    <section anchor="mappings">
      <name>Required Proxy State</name>
      <t>In the methods defined in this document, the proxy is aware of the QUIC
Connection IDs being used by proxied connections, along with the sockets
used to communicate with the client and the target. Tracking Connection IDs in
this way allows the proxy to reuse target-facing sockets for multiple
connections and support the forwarding mode of proxying.</t>
      <t>QUIC packets can be either tunnelled within an HTTP proxy connection using
HTTP Datagram frames <xref target="HTTP-DGRAM"/>, or be forwarded
directly alongside an HTTP/3 proxy connection on the same set of IP addresses and UDP
ports. The use of forwarded mode requires the consent of both the client and the
proxy.</t>
      <t>In order to correctly route QUIC packets in both tunnelled and forwarded modes,
the proxy needs to maintain mappings between several items. There are three
required unidirectional mappings, described below.</t>
      <section anchor="stream-mapping">
        <name>Stream Mapping</name>
        <t>Each client &lt;-&gt; proxy HTTP stream MUST be mapped to a single target-facing socket.</t>
        <artwork><![CDATA[
(Client <-> Proxy HTTP Stream) => Target-facing socket
]]></artwork>
        <t>Multiple streams can map to the same target-facing socket, but a
single stream cannot be mapped to multiple target-facing sockets.</t>
        <t>This mapping guarantees that any HTTP Datagram using a stream sent
from the client to the proxy in tunnelled mode can be sent to the correct
target.</t>
      </section>
      <section anchor="virtual-target-connection-id-mapping">
        <name>Virtual Target Connection ID Mapping</name>
        <t>Each pair of Virtual Target Connection ID and client-facing socket MUST map to a
single target-facing socket and Target Connection ID.</t>
        <artwork><![CDATA[
(Client-facing socket + Virtual Target Connection ID)
    => (Target-facing socket + Target Connection ID)
]]></artwork>
        <t>Multiple pairs of Connection IDs and client-facing sockets can map to the
same target-facing socket.</t>
        <t>This mapping guarantees that any QUIC packet containing the Virtual Target
Connection ID sent from the client to the proxy in forwarded mode can be sent to
the correct target with the correct Target Connection ID. Thus, a proxy that
does not allow forwarded mode does not need to maintain this mapping.</t>
      </section>
      <section anchor="client-connection-id-mappings">
        <name>Client Connection ID Mappings</name>
        <t>Each pair of Client Connection ID and target-facing socket MUST map to a single
stream on a single client &lt;-&gt; proxy HTTP stream. Additionally, when supporting
forwarding mode, the pair of Client Connection ID and target-facing socket MUST
map to a single client-facing socket.</t>
        <artwork><![CDATA[
(Target-facing socket + Client Connection ID) => (Client <-> Proxy HTTP Stream)
(Target-facing socket + Client Connection ID) => Client-facing socket
]]></artwork>
        <t>Multiple pairs of Connection IDs and target-facing sockets can map to the same
HTTP stream or client-facing socket.</t>
        <t>These mappings guarantee that any QUIC packet sent from a target to the proxy
can be sent to the correct client, in either tunnelled or forwarded mode. Note
that this mapping becomes trivial if the proxy always opens a new target-facing
socket for every client request with a unique stream. The mapping is
critical for any case where target-facing sockets are shared or reused.</t>
      </section>
      <section anchor="conflicts">
        <name>Detecting Connection ID Conflicts</name>
        <t>In order to be able to route packets correctly in both tunnelled and forwarded
mode, proxies check for conflicts before creating a new mapping. If a conflict
is detected, the proxy will reject the client's request, as described in
<xref target="response"/>.</t>
        <t>Two sockets conflict if and only if all members of the 4-tuple (local IP
address, local UDP port, remote IP address, and remote UDP port) are identical.</t>
        <t>Two Connection IDs conflict if and only if one Connection ID is equal to or a
prefix of another. For example, a zero-length Connection ID conflicts with all
connection IDs. This definition of a conflict originates from the fact that
QUIC short headers do not carry the length of the Destination Connection ID
field, and therefore if two short headers with different Destination Connection
IDs are received on a shared socket, one being a prefix of the other prevents
the receiver from identifying which mapping this corresponds to.</t>
        <t>The proxy treats two mappings as being in conflict when a conflict is detected
for all elements on the left side of the mapping diagrams above.</t>
        <t>Since very short Connection IDs are more likely to lead to conflicts,
particularly zero-length Connection IDs, a proxy MAY choose to reject all
requests for very short Connection IDs as conflicts, in anticipation of future
conflicts.</t>
      </section>
    </section>
    <section anchor="connection-id-capsule-types">
      <name>Connection ID Capsule Types</name>
      <t>Proxy awareness of QUIC Connection IDs relies on using capsules (<xref target="HTTP-DGRAM"/>)
to signal the addition and removal of Client and Target Connection IDs.</t>
      <t>Note that these capsules do not register contexts. QUIC packets are encoded
using HTTP Datagrams with the context ID set to zero as defined in
<xref target="CONNECT-UDP"/>.</t>
      <t>The capsules used for QUIC-aware proxying allow a client to register connection
IDs with the proxy, and for the proxy to acknowledge or reject the connection
ID mappings.</t>
      <t>The REGISTER_CLIENT_CID and REGISTER_TARGET_CID capsule types (see
<xref target="iana-capsule-types"/> for the capsule type values) allow a client to inform
the proxy about a new Client Connection ID or a new Target Connection ID,
respectively. These capsule types MUST only be sent by a client.</t>
      <t>The ACK_CLIENT_CID and ACK_TARGET_CID capsule types (see <xref target="iana-capsule-types"/>
for the capsule type values) are sent by the proxy to the client to indicate
that a mapping was successfully created for a registered connection ID as well
as provide the Virtual Target Connection ID that may be used in forwarding mode.
These capsule types MUST only be sent by a proxy.</t>
      <t>The CLOSE_CLIENT_CID and CLOSE_TARGET_CID capsule types (see
<xref target="iana-capsule-types"/> for the capsule type values) allow either a client
or a proxy to remove a mapping for a connection ID. These capsule types
MAY be sent by either a client or the proxy. If a proxy sends a
CLOSE_CLIENT_CID without having sent an ACK_CLIENT_CID, or if a proxy
sends a CLOSE_TARGET_CID without having sent an ACK_TARGET_CID,
it is rejecting a Connection ID registration.</t>
      <t>All capsule types except for ACK_TARGET_CID are formatted as follows:</t>
      <figure anchor="fig-capsule-cid">
        <name>Connection ID Capsule Format</name>
        <artwork><![CDATA[
Connection ID Capsule {
  Type (i) = 0xffe200..0xffe202, 0xffe204..0xffe205
  Length (i),
  Connection ID (0..2040),
}
]]></artwork>
      </figure>
      <dl>
        <dt>Connection ID:</dt>
        <dd>
          <t>A connection ID being registered or acknowledged, which is between 0 and
255 bytes in length. The length of the connection ID is implied by the
length of the capsule. Note that in QUICv1, the length of the Connection ID
is limited to 20 bytes, but QUIC invariants allow up to 255 bytes.</t>
        </dd>
      </dl>
      <t>The ACK_TARGET_CID capsule type includes the Virtual Target Connection ID
and a Stateless Reset Token.</t>
      <figure anchor="fig-capsule-virtual-cid">
        <name>Virtual Target Connection ID Capsule Format</name>
        <artwork><![CDATA[
Virtual Target Connection ID Capsule {
  Type (i) = 0xffe203,
  Length (i)
  Connection ID Length (i)
  Connection ID (0..2040),
  Virtual Target Connection ID Length (i)
  Virtual Target Connection ID (0..2040),
  Stateless Reset Token Length (i),
  Stateless Reset Token (..),
}
]]></artwork>
      </figure>
      <dl>
        <dt>Connection ID Length</dt>
        <dd>
          <t>The length of the connection ID being acknowledged, which is between 0 and
255. Note that in QUICv1, the length of the Connection ID is limited to 20
bytes, but QUIC invariants allow up to 255 bytes.</t>
        </dd>
        <dt>Connection ID</dt>
        <dd>
          <t>A connection ID being acknowledged whose length is equal to Connection ID
Length. This is the real Target Connection ID.</t>
        </dd>
        <dt>Virtual Target Connection ID Length</dt>
        <dd>
          <t>The length of the connection ID being provided to the client. This must be a
valid connection ID length for the QUIC version used in the client&lt;-&gt;proxy QUIC
connection. When forwarding mode is not negotiated, the length MUST be zero.</t>
        </dd>
        <dt>Virtual Target Connection ID</dt>
        <dd>
          <t>The Proxy-chosen connection ID that the client MUST use when sending packets
in forwarding mode. The proxy rewrites forwarding mode packets to contain the
correct Target Connection ID prior to forwarding them on to the Target.</t>
        </dd>
        <dt>Stateless Reset Token Length</dt>
        <dd>
          <t>The length of the stateless reset token that may be sent by the proxy
in response to forwarded mode packets in order to reset the Client&lt;-&gt;Target
QUIC connection. When forwarding mode is not negotiated, the length MUST be
zero. Proxies choosing not to support stateless resets MAY set the length to
zero. Clients receiving a zero-length stateless reset token MUST ignore it.</t>
        </dd>
        <dt>Stateless Reset Token</dt>
        <dd>
          <t>A Stateless Reset Token provided by the Proxy to the Client allowing the
Proxy to reset the Client&lt;-&gt;Target connection in response to Client-&gt;Target
forwarding mode packets.</t>
        </dd>
      </dl>
    </section>
    <section anchor="request">
      <name>Client Request Behavior</name>
      <t>A client initiates UDP proxying via a CONNECT request as defined
in <xref target="CONNECT-UDP"/>. Within its request, it includes the "Proxy-QUIC-Forwarding"
header to indicate whether or not the request should support forwarding.
If this header is not included, the client MUST NOT send any connection ID
capsules.</t>
      <t>The "Proxy-QUIC-Forwarding" is an Item Structured Header <xref target="RFC8941"/>. Its
value MUST be a Boolean. Its ABNF is:</t>
      <artwork><![CDATA[
    Proxy-QUIC-Forwarding = sf-boolean
]]></artwork>
      <t>If the client wants to enable QUIC packet forwarding for this request, it sets
the value to "?1". If it doesn't want to enable forwarding, but instead only
provide information about QUIC Connection IDs for the purpose of allowing
the proxy to share a target-facing socket, it sets the value to "?0".</t>
      <t>If the proxy supports QUIC-aware proxying, it will include the
"Proxy-QUIC-Forwarding" header in successful HTTP responses. The value
indicates whether or not the proxy supports forwarding. If the client does
not receive this header in responses, the client SHALL assume that the proxy
does not understand how to parse Connection ID capsules, and MUST NOT send any
Connection ID capsules.</t>
      <t>The client sends a REGISTER_CLIENT_CID capsule whenever it advertises a new
Client Connection ID to the target, and a REGISTER_TARGET_CID capsule when
it has received a new Target Connection ID for the target. Note that the
initial REGISTER_CLIENT_CID capsule MAY be sent prior to receiving an
HTTP response from the proxy.</t>
      <section anchor="new-proxied-connection-setup">
        <name>New Proxied Connection Setup</name>
        <t>To initiate QUIC-aware proxying, the client sends a REGISTER_CLIENT_CID
capsule containing the initial Client Connection ID that the client has
advertised to the target.</t>
        <t>If the mapping is created successfully, the client will receive a
ACK_CLIENT_CID capsule that contains the same connection ID that was
requested.</t>
        <t>Since clients are always aware whether or not they are using a QUIC proxy,
clients are expected to cooperate with proxies in selecting Client Connection
IDs. A proxy detects a conflict when it is not able to create a unique mapping
using the Client Connection ID (<xref target="conflicts"/>). It can reject requests that
would cause a conflict and indicate this to the client by replying with a
CLOSE_CLIENT_CID capsule. In order to avoid conflicts, clients SHOULD select
Client Connection IDs of at least 8 bytes in length with unpredictable values.
A client also SHOULD NOT select a Client Connection ID that matches the ID used
for the QUIC connection to the proxy, as this inherently creates a conflict.</t>
        <t>If the rejection indicated a conflict due to the Client Connection ID, the
client MUST select a new Connection ID before sending a new request, and
generate a new packet. For example, if a client is sending a QUIC Initial
packet and chooses a Connection ID that conflicts with an existing mapping
to the same target server, it will need to generate a new QUIC Initial.</t>
      </section>
      <section anchor="adding-new-client-connection-ids">
        <name>Adding New Client Connection IDs</name>
        <t>Since QUIC connection IDs are chosen by the receiver, an endpoint needs to
communicate its chosen connection IDs to its peer before the peer can start
using them. In QUICv1, this is performed using the NEW_CONNECTION_ID frame.</t>
        <t>Prior to informing the target of a new chosen client connection ID, the client
MUST send a REGISTER_CLIENT_CID capsule request containing the new Client
Connection ID.</t>
        <t>The client should only inform the target of the new Client Connection ID once an
ACK_CLIENT_CID capsule is received that contains the echoed connection ID.</t>
      </section>
      <section anchor="sending-with-forwarded-mode">
        <name>Sending With Forwarded Mode</name>
        <t>Support for forwarding mode is determined by the "Proxy-QUIC-Forwarding" header,
see <xref target="response"/>.</t>
        <t>Once the client has learned the target server's Connection ID, such as in the
response to a QUIC Initial packet, it can send a REGISTER_TARGET_CID capsule
containing the Target Connection ID to request the ability to forward packets.</t>
        <t>The client MUST wait for an ACK_TARGET_CID capsule that contains the echoed
connection ID before using forwarded mode.</t>
        <t>Prior to receiving the proxy server response, the client MUST send short header
packets tunnelled in HTTP Datagram frames. The client MAY also choose to tunnel
some short header packets even after receiving the successful response.</t>
        <t>If the Target Connection ID registration is rejected, for example with a
CLOSE_TARGET_CID capsule, it MUST NOT forward packets to the requested Target
Connection ID, but only use tunnelled mode. The request might also be rejected
if the proxy does not support forwarded mode or has it disabled by policy.</t>
        <t>QUIC long header packets MUST NOT be forwarded. These packets can only be
tunnelled within HTTP Datagram frames to avoid exposing unnecessary connection
metadata.</t>
        <t>When forwarding, the client sends a QUIC packet with the Virtual Target
Connection ID in the QUIC short header, using the same socket between client and
proxy that was used for the main QUIC connection between client and proxy.</t>
        <t>If the Virtual Target Connection ID is smaller than the Target Connection ID,
the client MUST only write the Virtual Target Connection ID bytes over the start
of the Target Connection ID, leaving the remainder of the Target Connection ID
unmodified.</t>
        <artwork><![CDATA[
| 0  | 1  | 2  | 3  | 4  | 5  | 6  | 7  |

  aa   bb   cc   aa   bb   cc   aa  bb    <--- Target Connection ID
  11   22   33                            <--- Virtual Target Connection ID
  11   22   33   aa   bb   cc   aa  bb    <--- Resulting Connection ID Bytes
]]></artwork>
        <t>If the Virtual Target Connection ID is larger than the Target Connection ID,
the client MUST extend the length of the packet by the difference between the
two lengths, to include the entire Virtual Target Connection ID.</t>
        <t>Clients supporting forwarding mode MUST be able to handle Virtual Target
Connection IDs of different lengths than the corresponding Target Connection
IDs.</t>
      </section>
      <section anchor="receiving-with-forwarded-mode">
        <name>Receiving With Forwarded Mode</name>
        <t>If the client has indicated support for forwarding with the "Proxy-QUIC-Forwarding"
header, the proxy MAY use forwarded mode for any Client Connection ID for which
it has a valid mapping.</t>
        <t>Once a client has sent "Proxy-QUIC-Forwarding" with a value of "?1", it MUST be
prepared to receive forwarded short header packets on the socket between itself
and the proxy for any Client Connection ID that it has registered with a
REGISTER_CLIENT_CID capsule. The client uses the Destination Connection ID field
of the received packet to determine if the packet was originated by the proxy,
or merely forwarded from the target.</t>
      </section>
    </section>
    <section anchor="response">
      <name>Proxy Response Behavior</name>
      <t>Upon receipt of a CONNECT request that includes the "Proxy-QUIC-Forwarding"
header, the proxy indicates to the client that it supports QUIC-aware proxying
by including a "Proxy-QUIC-Forwarding" header in a successful response.
If it supports QUIC packet forwarding, it sets the value to "?1"; otherwise,
it sets it to "?0".</t>
      <t>Upon receipt of a REGISTER_CLIENT_CID or REGISTER_TARGET_CID capsule,
the proxy validates the registration, tries to establish the appropriate
mappings as described in <xref target="mappings"/>.</t>
      <t>The proxy MUST reply to each REGISTER_CLIENT_CID capsule with either
an ACK_CLIENT_CID or CLOSE_CLIENT_CID capsule containing the
Connection ID that was in the registration capsule.</t>
      <t>Similarly, the proxy MUST reply to each REGISTER_TARGET_CID capsule with
either an ACK_TARGET_CID or CLOSE_TARGET_CID capsule containing the
Connection ID that was in the registration capsule.</t>
      <t>The proxy then determines the target-facing socket to associate with the
client's request. This will generally involve performing a DNS lookup for
the target hostname in the CONNECT request, or finding an existing target-facing
socket to the authority. The target-facing socket might already be open due to a
previous request from this client, or another. If the socket is not already
created, the proxy creates a new one. Proxies can choose to reuse target-facing
sockets across multiple UDP proxying requests, or have a unique target-facing socket
for every UDP proxying request.</t>
      <t>If a proxy reuses target-facing sockets, it SHOULD store which authorities
(which could be a domain name or IP address literal) are being accessed over a
particular target-facing socket so it can avoid performing a new DNS query and
potentially choosing a different target server IP address which could map to a
different target server.</t>
      <t>Target-facing sockets MUST NOT be reused across QUIC and non-QUIC UDP proxy
requests, since it might not be possible to correctly demultiplex or direct
the traffic. Any packets received on a target-facing socket used for proxying
QUIC that does not correspond to a known Connection ID MUST be dropped.</t>
      <t>When the proxy recieves a REGISTER_CLIENT_CID capsule, it is receiving a
request to be able to route traffic back to the client using that Connection ID.
If the pair of this Client Connection ID and the selected target-facing socket
does not create a conflict, the proxy creates the mapping and responds with a
ACK_CLIENT_CID capsule. After this point, any packets received by the proxy from the
target-facing socket that match the Client Connection ID can to be sent to the
client. The proxy MUST use tunnelled mode (HTTP Datagram frames) for any long
header packets. The proxy SHOULD forward directly to the client for any matching
short header packets if forwarding is supported by the client, but the proxy MAY
tunnel these packets in HTTP Datagram frames instead. If the mapping would
create a conflict, the proxy responds with a CLOSE_CLIENT_CID capsule.</t>
      <t>When the proxy recieves a REGISTER_TARGET_CID capsule, it is receiving a
request to allow the client to forward packets to the target. The proxy
generates a Virtual Target Connection ID for the client to use when sending
packets in forwarding mode. If forwarding mode is not supported, the proxy MUST
NOT send a Virtual Target Connection ID by setting the length to zero. If
forwarding mode is supported, the proxy MUST use a Virtual Target Connection ID
that does not introduce a conflict with any other Connection ID on the
client-facing socket. The proxy creates the mapping and responds with an
ACK_TARGET_CID capsule. Once the successful response is sent, the proxy will
forward any short header packets received on the client-facing socket that use
the Virtual Target Connection ID using the correct target-facing socket after
first rewriting the Virtual Target Connection ID to be the correct Target
Connection ID.</t>
      <t>A proxy that supports forwarding mode but chooses not to support rewriting the
Virtual Target Connection ID to the Target Connection ID may opt to simply let
them be equal. If the proxy does wish to choose a Virtual Target Connection ID,
it MUST be able to replace the Virtual Target Connection ID with the Target
Connection ID and correctly handle length differences between the two.</t>
      <t>If the proxy does not support forwarded mode, or does not allow forwarded mode
for a particular client or authority by policy, it can reject all REGISTER_TARGET_CID
requests with CLOSE_TARGET_CID capsule.</t>
      <t>The proxy MUST only forward non-tunnelled packets from the client that are QUIC
short header packets (based on the Header Form bit) and have mapped Virtual Target
Connection IDs. Packets sent by the client that are forwarded SHOULD be
considered as activity for restarting QUIC's Idle Timeout <xref target="QUIC"/>.</t>
      <section anchor="removing-mapping-state">
        <name>Removing Mapping State</name>
        <t>For any registration capsule for which the proxy has sent an acknowledgement, any
mappings last until either endpoint sends a close capsule or the either side of the
HTTP stream closes.</t>
        <t>A client that no longer wants a given Connection ID to be forwarded by the
proxy sends a CLOSE_CLIENT_CID or CLOSE_TARGET_CID capsule.</t>
        <t>If a client's connection to the proxy is terminated for any reason, all
mappings associated with all requests are removed.</t>
        <t>A proxy can close its target-facing socket once all UDP proxying requests mapped to
that socket have been removed.</t>
      </section>
      <section anchor="handling-connection-migration">
        <name>Handling Connection Migration</name>
        <t>If a proxy supports QUIC connection migration, it needs to ensure that a migration
event does not end up sending too many tunnelled or proxied packets on a new
path prior to path validation.</t>
        <t>Specifically, the proxy MUST limit the number of packets that it will proxy
to an unvalidated client address to the size of an initial congestion window.
Proxies additionally SHOULD pace the rate at which packets are sent over a new
path to avoid creating unintentional congestion on the new path.</t>
      </section>
    </section>
    <section anchor="example">
      <name>Example</name>
      <t>Consider a client that is establishing a new QUIC connection through the proxy.
It has selected a Client Connection ID of 0x31323334. In order to inform a proxy
of the new QUIC Client Connection ID, the client also sends a
REGISTER_CLIENT_CID capsule.</t>
      <t>The client will also send the initial QUIC packet with the Long Header form in
an HTTP datagram.</t>
      <artwork><![CDATA[
Client                                             Server

STREAM(44): HEADERS             -------->
  :method = CONNECT
  :protocol = connect-udp
  :scheme = https
  :path = /target.example.com/443/
  :authority = proxy.example.org
  proxy-quic-forwarding = ?1
  capsule-protocol = ?1

STREAM(44): DATA                -------->
  Capsule Type = REGISTER_CLIENT_CID
  Connection ID = 0x31323334

DATAGRAM                        -------->
  Quarter Stream ID = 11
  Context ID = 0
  Payload = Encapsulated QUIC initial

           <--------  STREAM(44): HEADERS
                        :status = 200
                        proxy-quic-forwarding = ?1
                        capsule-protocol = ?1

           <--------  STREAM(44): DATA
                        Capsule Type = ACK_CLIENT_CID
                        Connection ID = 0x31323334

/* Wait for target server to respond to UDP packet. */

           <--------  DATAGRAM
                        Quarter Stream ID = 11
                        Context ID = 0
                        Payload = Encapsulated QUIC initial
]]></artwork>
      <t>Once the client learns which Connection ID has been selected by the target
server, it can send a new request to the proxy to establish a mapping for
forwarding. In this case, that ID is 0x61626364. The client sends the
following capsule:</t>
      <artwork><![CDATA[
STREAM(44): DATA                -------->
  Capsule Type = REGISTER_TARGET_CID
  Connection ID = 0x61626364

           <--------  STREAM(44): DATA
                        Capsule Type = ACK_TARGET_CID
                        Connection ID = 0x61626364
                        Virtual Target Connection ID = 0x123412341234
                        Stateless Reset Token = Token
]]></artwork>
      <t>Upon receiving an ACK_TARGET_CID capsule, the client starts sending Short Header
packets with a Destination Connection ID of 0x123412341234 directly to the proxy
(not tunnelled), and these are rewritten by the proxy to have the Destination
Connection ID 0x61626364 prior to being forwarded directly to the target. In the
reverse direction, Short Header packets from the target with a Destination
Connection ID of 0x31323334 are forwarded directly to the client without
modification.</t>
    </section>
    <section anchor="packet-size-considerations">
      <name>Packet Size Considerations</name>
      <t>Since Initial QUIC packets must be at least 1200 bytes in length, the HTTP
Datagram frames that are used for a QUIC-aware proxy MUST be able to carry at least
1200 bytes.</t>
      <t>Additionally, clients that connect to a proxy for purpose of proxying QUIC
SHOULD start their connection with a larger packet size than 1200 bytes, to
account for the overhead of tunnelling an Initial QUIC packet within an
HTTP Datagram frame. If the client does not begin with a larger packet size than
1200 bytes, it will need to perform Path MTU (Maximum Transmission Unit)
discovery to discover a larger path size prior to sending any tunnelled Initial
QUIC packets.</t>
      <t>Once a proxied QUIC connections moves into forwarded mode, the client SHOULD
initiate Path MTU discovery to increase its end-to-end MTU.</t>
    </section>
    <section anchor="security">
      <name>Security Considerations</name>
      <t>Proxies that support this extension SHOULD provide protections to rate-limit
or restrict clients from opening an excessive number of proxied connections, so
as to limit abuse or use of proxies to launch Denial-of-Service attacks.</t>
      <t>Sending QUIC packets by forwarding through a proxy without tunnelling exposes
some QUIC header metadata to onlookers, and can be used to correlate packet
flows if an attacker is able to see traffic on both sides of the proxy.
Tunnelled packets have similar inference problems. An attacker on both sides
of the proxy can use the size of ingress and egress packets to correlate packets
belonging to the same connection. (Absent client-side padding, tunneled packets
will typically have a fixed amount of overhead that is removed before their
HTTP Datagram contents are written to the target.)</t>
      <t>Since proxies that forward QUIC packets do not perform any cryptographic
integrity check, it is possible that these packets are either malformed,
replays, or otherwise malicious. This may result in proxy targets rate limiting
or decreasing the reputation of a given proxy.</t>
    </section>
    <section anchor="iana">
      <name>IANA Considerations</name>
      <section anchor="iana-header">
        <name>HTTP Header</name>
        <t>This document registers the "Proxy-QUIC-Forwarding" header in the "Permanent Message
Header Field Names" &lt;<eref target="https://www.iana.org/assignments/message-headers"/>&gt;.</t>
        <figure anchor="iana-header-type-table">
          <name>Registered HTTP Header</name>
          <artwork><![CDATA[
    +-----------------------+----------+--------+---------------+
    | Header Field Name     | Protocol | Status |   Reference   |
    +-----------------------+----------+--------+---------------+
    | Proxy-QUIC-Forwarding |   http   |  exp   | This document |
    +-----------------------+----------+--------+---------------+
]]></artwork>
        </figure>
      </section>
      <section anchor="iana-capsule-types">
        <name>Capsule Types</name>
        <t>This document registers six new values in the "HTTP Capsule Types"
registry established by <xref target="HTTP-DGRAM"/>.</t>
        <table anchor="iana-capsule-type-table">
          <name>Registered Capsule Types</name>
          <thead>
            <tr>
              <th align="left">Capule Type</th>
              <th align="left">Value</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">REGISTER_CLIENT_CID</td>
              <td align="left">0xffe200</td>
              <td align="left">This Document</td>
            </tr>
            <tr>
              <td align="left">REGISTER_TARGET_CID</td>
              <td align="left">0xffe201</td>
              <td align="left">This Document</td>
            </tr>
            <tr>
              <td align="left">ACK_CLIENT_CID</td>
              <td align="left">0xffe202</td>
              <td align="left">This Document</td>
            </tr>
            <tr>
              <td align="left">ACK_TARGET_CID</td>
              <td align="left">0xffe203</td>
              <td align="left">This Document</td>
            </tr>
            <tr>
              <td align="left">CLOSE_CLIENT_CID</td>
              <td align="left">0xffe204</td>
              <td align="left">This Document</td>
            </tr>
            <tr>
              <td align="left">CLOSE_TARGET_CID</td>
              <td align="left">0xffe205</td>
              <td align="left">This Document</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="CONNECT-UDP">
          <front>
            <title>Proxying UDP in HTTP</title>
            <author fullname="David Schinazi">
              <organization>Google LLC</organization>
            </author>
            <date day="17" month="June" year="2022"/>
            <abstract>
              <t>This document describes how to proxy UDP in HTTP, similar to how the HTTP CONNECT method allows proxying TCP in HTTP.  More specifically, this document defines a protocol that allows an HTTP client to create a tunnel for UDP communications through an HTTP server that acts as a proxy.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-masque-connect-udp-15"/>
        </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="HTTP3">
          <front>
            <title>HTTP/3</title>
            <author fullname="Mike Bishop">
              <organization>Akamai</organization>
            </author>
            <date day="2" month="February" year="2021"/>
            <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="Internet-Draft" value="draft-ietf-quic-http-34"/>
        </reference>
        <reference anchor="INVARIANTS">
          <front>
            <title>Version-Independent Properties of QUIC</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the properties of the QUIC transport protocol that are common to all versions of the protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8999"/>
          <seriesInfo name="DOI" value="10.17487/RFC8999"/>
        </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>
        <reference anchor="HTTP-DGRAM">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="David Schinazi">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Lucas Pardue">
              <organization>Cloudflare</organization>
            </author>
            <date day="17" month="June" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.

 In HTTP/3, HTTP Datagrams can be sent unreliably using the QUIC DATAGRAM extension. When the QUIC DATAGRAM frame is unavailable or undesirable, HTTP Datagrams can be sent using the Capsule Protocol, which is a more general convention for conveying data in HTTP connections.

 HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-masque-h3-datagram-11"/>
        </reference>
        <reference anchor="RFC8941">
          <front>
            <title>Structured Field Values for HTTP</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="P-H. Kamp" initials="P-H." surname="Kamp">
              <organization/>
            </author>
            <date month="February" year="2021"/>
            <abstract>
              <t>This document describes a set of data types and associated algorithms that are intended to make it easier and safer to define and handle HTTP header and trailer fields, known as "Structured Fields", "Structured Headers", or "Structured Trailers". It is intended for use by specifications of new HTTP fields that wish to use a common syntax that is more restrictive than traditional HTTP field values.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8941"/>
          <seriesInfo name="DOI" value="10.17487/RFC8941"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="QUIC-LB">
          <front>
            <title>QUIC-LB: Generating Routable QUIC Connection IDs</title>
            <author fullname="Martin Duke">
              <organization>Google</organization>
            </author>
            <author fullname="Nick Banks">
              <organization>Microsoft</organization>
            </author>
            <author fullname="Christian Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <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-14"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Lucas Pardue, Ryan Hamilton, and Mirja Kuehlewind for their inputs
on this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
4IwLixwPJApoG723Vv4fZw0GZnKFAAA=

-->

</rfc>
