<?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.39 (Ruby 3.2.2) -->
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-wing-cidfi-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="CIDFI">CID Flow Indicator (CIDFI)</title>
    <seriesInfo name="Internet-Draft" value="draft-wing-cidfi-02"/>
    <author fullname="Dan Wing">
      <organization abbrev="Cloud Software Group">Cloud Software Group, Inc.</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>danwing@gmail.com</email>
      </address>
    </author>
    <author fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <city>Bangalore</city>
          <region>Karnataka</region>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author fullname="Mohamed Boucadair">
      <organization>Orange</organization>
      <address>
        <postal>
          <street>Rennes</street>
          <code>35000</code>
          <country>France</country>
        </postal>
        <email>mohamed.boucadair@orange.com</email>
      </address>
    </author>
    <date year="2023" month="September" day="13"/>
    <area>Network</area>
    <workgroup>Network Working Group</workgroup>
    <keyword>user experience</keyword>
    <keyword>bandwidth</keyword>
    <keyword>priority</keyword>
    <keyword>enriched feedback</keyword>
    <keyword>media streaming</keyword>
    <keyword>realtime media</keyword>
    <keyword>QoS</keyword>
    <keyword>5G</keyword>
    <keyword>Wi-Fi</keyword>
    <keyword>WiFi</keyword>
    <keyword>DTLS Connection Identifier</keyword>
    <keyword>DTLS-SRTP</keyword>
    <keyword>QUIC Connection Identifier</keyword>
    <keyword>QUIC</keyword>
    <abstract>
      <?line 122?>

<t>Conveying metadata about network conditions and metadata about
individual packets can improve the user experience especially on
wireless networks which suffer bandwidth and delay variability.</t>
      <t>This document describes how clients and servers can cooperate with
network elements so their QUIC and DTLS streams can be augmented with
information about network conditions and packet importance.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://danwing.github.io/cidfi/draft-wing-cidfi.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-wing-cidfi/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        ART Area Working Group mailing list (<eref target="mailto:art@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/art/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/art/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/danwing/cidfi"/>.</t>
    </note>
  </front>
  <middle>
    <?line 132?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>Senders rely on ramping up their transmission rate until they encounter
packet loss or see <xref target="ECN"/> indicating they should level off or
slow down their transmission rate.  This feedback takes time and contributes
to poor user experience when the sender over- or under-shoots the actual
available bandwidth, especially if the sender changes fidelity of the
content (e.g., improves video quality which consumes more bandwidth which
then gets dropped by the network).</t>
      <t>Due to network constraints a network element will need to drop or even
prioritize a packet ahead of other packets.  The decision of which packet
to drop or prioritize is improved if the network element knows the
importance of the packet.  Metadata carried in each packet can influence
that decision to improve the user experience.</t>
      <t>This document defines CIDFI (pronounced "sid fye") which is a system
of several protocols that allow communicating about a <xref target="QUIC"/>
connection or a DTLS connection <xref target="DTLS-CID"/> from the network to the
server and the server to the network.  The information exchanged
allows the server to know about network conditions and allows the
server to signal packet importance.</t>
      <t><xref target="fig-arch"/> provides a sample network diagram of a CIDFI system showing two
bandwidth-constrained networks (or links) depicted by "B" and
CIDFI-aware devices immediately upstream of those links, and another
bandwidth-constrained link between a smartphone handset and its Radio
Access Network (RAN).  This diagram shows the same protocol and same mechanism
can operate with or without 5G, and can operate with different administrative
domains such as Wi-Fi, an ISP edge router, and a 5G RAN.</t>
      <figure anchor="fig-arch">
        <name>Network Diagram</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="528" viewBox="0 0 528 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 8,48 L 8,112" fill="none" stroke="black"/>
              <path d="M 8,176 L 8,256" fill="none" stroke="black"/>
              <path d="M 64,48 L 64,112" fill="none" stroke="black"/>
              <path d="M 88,176 L 88,256" fill="none" stroke="black"/>
              <path d="M 96,48 L 96,144" fill="none" stroke="black"/>
              <path d="M 152,48 L 152,144" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,80" fill="none" stroke="black"/>
              <path d="M 168,112 L 168,216" fill="none" stroke="black"/>
              <path d="M 168,232 L 168,304" fill="none" stroke="black"/>
              <path d="M 184,48 L 184,128" fill="none" stroke="black"/>
              <path d="M 184,176 L 184,256" fill="none" stroke="black"/>
              <path d="M 240,48 L 240,128" fill="none" stroke="black"/>
              <path d="M 240,176 L 240,256" fill="none" stroke="black"/>
              <path d="M 264,80 L 264,112" fill="none" stroke="black"/>
              <path d="M 264,208 L 264,240" fill="none" stroke="black"/>
              <path d="M 320,80 L 320,112" fill="none" stroke="black"/>
              <path d="M 320,208 L 320,240" fill="none" stroke="black"/>
              <path d="M 344,32 L 344,88" fill="none" stroke="black"/>
              <path d="M 344,104 L 344,216" fill="none" stroke="black"/>
              <path d="M 344,232 L 344,304" fill="none" stroke="black"/>
              <path d="M 360,144 L 360,176" fill="none" stroke="black"/>
              <path d="M 376,96 L 376,144" fill="none" stroke="black"/>
              <path d="M 376,176 L 376,224" fill="none" stroke="black"/>
              <path d="M 416,144 L 416,176" fill="none" stroke="black"/>
              <path d="M 432,32 L 432,152" fill="none" stroke="black"/>
              <path d="M 432,168 L 432,304" fill="none" stroke="black"/>
              <path d="M 448,112 L 448,208" fill="none" stroke="black"/>
              <path d="M 520,112 L 520,208" fill="none" stroke="black"/>
              <path d="M 8,48 L 64,48" fill="none" stroke="black"/>
              <path d="M 96,48 L 152,48" fill="none" stroke="black"/>
              <path d="M 184,48 L 240,48" fill="none" stroke="black"/>
              <path d="M 264,80 L 320,80" fill="none" stroke="black"/>
              <path d="M 240,96 L 264,96" fill="none" stroke="black"/>
              <path d="M 320,96 L 376,96" fill="none" stroke="black"/>
              <path d="M 8,112 L 64,112" fill="none" stroke="black"/>
              <path d="M 264,112 L 320,112" fill="none" stroke="black"/>
              <path d="M 448,112 L 520,112" fill="none" stroke="black"/>
              <path d="M 184,128 L 240,128" fill="none" stroke="black"/>
              <path d="M 96,144 L 152,144" fill="none" stroke="black"/>
              <path d="M 360,144 L 416,144" fill="none" stroke="black"/>
              <path d="M 416,160 L 448,160" fill="none" stroke="black"/>
              <path d="M 8,176 L 88,176" fill="none" stroke="black"/>
              <path d="M 184,176 L 240,176" fill="none" stroke="black"/>
              <path d="M 360,176 L 416,176" fill="none" stroke="black"/>
              <path d="M 264,208 L 320,208" fill="none" stroke="black"/>
              <path d="M 448,208 L 520,208" fill="none" stroke="black"/>
              <path d="M 96,224 L 128,224" fill="none" stroke="black"/>
              <path d="M 144,224 L 184,224" fill="none" stroke="black"/>
              <path d="M 240,224 L 264,224" fill="none" stroke="black"/>
              <path d="M 320,224 L 376,224" fill="none" stroke="black"/>
              <path d="M 264,240 L 320,240" fill="none" stroke="black"/>
              <path d="M 8,256 L 88,256" fill="none" stroke="black"/>
              <path d="M 184,256 L 240,256" fill="none" stroke="black"/>
              <g class="text">
                <text x="36" y="68">CIDFI-</text>
                <text x="124" y="68">CIDFI-</text>
                <text x="212" y="68">CIDFI-</text>
                <text x="32" y="84">aware</text>
                <text x="120" y="84">aware</text>
                <text x="208" y="84">aware</text>
                <text x="36" y="100">client</text>
                <text x="80" y="100">-B-</text>
                <text x="120" y="100">Wi-Fi</text>
                <text x="168" y="100">-B-</text>
                <text x="204" y="100">edge</text>
                <text x="292" y="100">router</text>
                <text x="124" y="116">access</text>
                <text x="212" y="116">router</text>
                <text x="120" y="132">point</text>
                <text x="484" y="132">CIDFI-</text>
                <text x="480" y="148">aware</text>
                <text x="388" y="164">router</text>
                <text x="476" y="164">QUIC</text>
                <text x="508" y="164">or</text>
                <text x="476" y="180">DTLS</text>
                <text x="44" y="196">CIDFI-</text>
                <text x="212" y="196">CIDFI-</text>
                <text x="484" y="196">server</text>
                <text x="40" y="212">aware</text>
                <text x="208" y="212">aware</text>
                <text x="44" y="228">client</text>
                <text x="136" y="228">B</text>
                <text x="200" y="228">RAN</text>
                <text x="292" y="228">router</text>
                <text x="48" y="244">(handset)</text>
                <text x="212" y="244">router</text>
                <text x="384" y="292">transit</text>
                <text x="476" y="292">server</text>
                <text x="44" y="308">user</text>
                <text x="96" y="308">network</text>
                <text x="216" y="308">ISP</text>
                <text x="264" y="308">network</text>
                <text x="384" y="308">network</text>
                <text x="480" y="308">network</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
                    |                     |          |
+------+   +------+ | +------+            |          |
|CIDFI-|   |CIDFI-| | |CIDFI-|            |          |
|aware |   |aware | | |aware |  +------+  |          |
|client+-B-+Wi-Fi +-B-+edge  +--+router+------+      |
+------+   |access| | |router|  +------+  |   |      | +--------+
           |point | | +------+            |   |      | | CIDFI- |
           +------+ |                     | +-+----+ | | aware  |
                    |                     | |router+---+ QUIC or|
+---------+         | +------+            | +-+----+ | | DTLS   |
| CIDFI-  |         | |CIDFI-|            |   |      | | server |
| aware   |         | |aware |  +------+  |   |      | +--------+
| client  +-----B-----+RAN   +--+router+------+      |
|(handset)|         | |router|  +------+  |          |
+---------+         | +------+            |          |
                    |                     |          |
                    |                     | transit  |  server
   user network     |    ISP network      | network  |  network
]]></artwork>
        </artset>
      </figure>
      <t>The CIDFI-aware client establishes a TLS connection with the
CIDFI-aware network elements (Wi-Fi access point, edge router, and RAN
router in the above diagram).  Over this connection it receives
network performance information and it sends mapping of (QUIC or DTLS)
Destination CIDs to packet importance.</t>
      <t>The design creates new state in the CIDFI-aware network elements for
mapping from the QUIC Destination CID or DTLS Destination CID to the
packet importance, bandwidth information for that connection towards
the client, and for the TLS-encrypted communication with the client.</t>
      <t><xref target="network-to-server"/> describes network-to-server signaling
similar to the use case described in <xref section="2" sectionFormat="of" target="I-D.joras-sadcdn"/>, with metadata
relaying through the client.</t>
      <t><xref target="server-to-network"/> describes server-to-network
metadata signaling similar to the use cases described in <xref section="3" sectionFormat="of" target="I-D.joras-sadcdn"/>.  The server-to-network metadata signaling can
also benefit <xref target="I-D.ietf-avtcore-rtp-over-quic"/> and <xref target="DTLS-CID"/>.</t>
      <t>A discussion of extending CIDFI to other protocols is provided in <xref target="extending"/>.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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?>

<dl>
        <dt>CID:</dt>
        <dd>
          <t>Connection Identifier used by <xref target="QUIC"/> or by <xref target="DTLS-CID"/>.</t>
        </dd>
        <dt>CNE:</dt>
        <dd>
          <t>CIDFI-aware Network Element, a network element that
supports this CIDFI specification.  This is usually a router.</t>
        </dd>
      </dl>
      <section anchor="notations">
        <name>Notations</name>
        <t>For discussion purposes, JSON is used in the examples to give a flavor of the
data that the client retrieves from a CNE.  The authors
anticipate using a more efficient encoding such as <xref target="CBOR"/>.</t>
      </section>
    </section>
    <section anchor="design-goals">
      <name>Design Goals</name>
      <t>This section highlights the design goals of this specification.</t>
      <dl>
        <dt>Client Authorization:</dt>
        <dd>
          <t>The client authorizes each CIDFI-aware network element (CNE) to participate in CIDFI
for each QUIC or DTLS flow.</t>
        </dd>
        <dt>Same Server:</dt>
        <dd>
          <t>Communication about the network metadata arrives over the primary QUIC or
DTLS connection which ensures it arrives at the same server instance even through
local network translators (NAT) or server-side load balancers.</t>
        </dd>
        <dt>Privacy:</dt>
        <dd>
          <t>The packet importance is only known by CIDFI-aware network
elements (CNE).  The network performance data is protected by TLS.</t>
        </dd>
        <dt>Integrity:</dt>
        <dd>
          <t>The packet importance is mapped to Destination CIDs which are
integrity protected by QUIC (or DTLS) itself and cannot be modified by on-path
network elements.  The communication between client, server, and
network element is protected by TLS.</t>
        </dd>
        <dt>Internet Survival:</dt>
        <dd>
          <t>The QUIC (or DTLS) communications between the client
and server are not changed so CIDFI is expected to work wherever QUIC
(or DTLS) works.  The elements involved are only the QUIC (or DTLS)
client and server and with the participating CIDFI network elements.</t>
        </dd>
      </dl>
    </section>
    <section anchor="network-preparation">
      <name>Network Preparation</name>
      <t>The network is configured to advertise its support for CIDFI.</t>
      <t>For this step, four mechanisms are described in this document: DNS
SVCB records, IPv6 Provisioning Domains (PvD), DHCP, and 3GPP PCO.
These are described below.</t>
      <ul empty="true">
        <li>
          <t>Standardizing on all or some of these mechanisms is for further discussion.</t>
        </li>
      </ul>
      <section anchor="dns-svcb-records">
        <name>DNS SVCB Records</name>
        <t>This document defines a new DNS Service Binding "cidfi-aware" in
<xref target="iana-svcb"/> and a new Special-Use Domain Name "cifi.arpa" in
<xref target="iana-sudn"/>.</t>
        <t>The local network is configured to respond to DNS SVCB
<xref target="I-D.ietf-dnsop-svcb-https"/> queries with ServiceMode (<xref section="2.4.3" sectionFormat="of" target="I-D.ietf-dnsop-svcb-https"/>) for _cidfi-aware.cidfi.arpa with
the DNS names of that network's and upstream network's CIDFI-aware
network elements (CNEs).  If upstream networks also support CIDFI (e.g., the
ISP network) those SVCB records are aggregated into the local DNS
server's response by the local network's recursive DNS resolvers.  For
example, a query for _cidfi-aware.cidfi.arpa might return two answers
for the two CNEs on the local network, one belonging
to the local ISP (example.net) and the other belonging to the local
Wi-Fi network (example.com),</t>
        <artwork><![CDATA[
_cidfi-aware.cidfi.arpa. 7200 IN SVCB 0 service-cidfi.example.net. (
    alpn=h3 cidfipathauth=/path-auth-query {?cidfi}
    cidfimetadata=/cidfi-metadata
    )
_cidfi-aware.cidfi.arpa. 7200 IN SVCB 0 wifi.example.com. (
    alpn=h3 cidfipathauth=/path-auth-query {?cidfi}
    cidfimetadata=/cidfi-metadata
    )
]]></artwork>
        <t>When multihoming, the multihome-capable CPE aggregates all upstream
networks' _cidfi-aware.cidfi.arpa responses into the response sent to
its locally-connected clients.</t>
      </section>
      <section anchor="provisioning-domains">
        <name>Provisioning Domains</name>
        <t>The CIDFI networks are configured to set the H-flag so clients can
request PvD Additional Information (<xref section="4.1" sectionFormat="of" target="RFC8801"/>).</t>
        <t>The application/pvd+json returned looks like this when there are two
CIDFI-aware network elements, service-cidfi and wi-fi,</t>
        <artwork><![CDATA[
{"cidfi":[
  {"cidfinode": "service-cidfi.example.net",
   "cidfipathauth": "/path-auth-query {?cidfi}",
   "cidfimetadata": "/cidfi-metadata"},
  {"cidfinode": "wi-fi.example.net",
   "cidfipathauth": "/path-auth-query {?cidfi}",
   "cidfimetadata": "/cidfi-metadata"}]}
]]></artwork>
        <t>Multiple CIDFI-aware network elements on a network path will require
propagating the Provisioning Domain Additional Information.  For
example, a CIDFI-aware Wi-Fi access point connected to a CIDFI-aware
5G network will require the information for both CIDFI networks be available
to the client, in a single Provisioning Domain Additional Information
request.  This means the Wi-Fi access point has to obtain that information
so the Wi-Fi access point can provide both the 5G network's information
and the Wi-Fi access point's information.</t>
      </section>
      <section anchor="dhcp-or-3gpp-pco">
        <name>DHCP or 3GPP PCO</name>
        <t>The network is configured to respond to DHCPv6, DHCPv4 sub-option,
or 3GPP PCO (Protocol Configuration Option)
Information Element.</t>
      </section>
    </section>
    <section anchor="attach">
      <name>Client Operation on Network Attach or Topology Change</name>
      <t>On initial network attach topology change (see <xref target="topology"/>),
the client learns if the network supports CIDFI (<xref target="discovery"/>) and
authorizes those network elements (<xref target="client-authorizes"/>).</t>
      <section anchor="discovery">
        <name>Client Learns Local Network Supports CIDFI</name>
        <t>For this step, four mechanisms are identified: DNS SVCB records, IPv6
Provisioning Domains (PvD), DHCP, or 3GPP PCO.  These are described
below.</t>
        <ul empty="true">
          <li>
            <t>Standardizing on all or some of these mechanisms is for further discussion.</t>
          </li>
        </ul>
        <t>In all cases below,</t>
        <ul spacing="normal">
          <li>if the discovery succeeds (i.e., the client concludes that the local
and/or ISP network support CIDFI) client processing proceeds to
<xref target="client-authorizes"/>.</li>
          <li>if the discovery failed (i.e., the client concludes that the local
network and ISP do not support CIDFI) client processing stops.</li>
        </ul>
        <section anchor="client-learns-using-dns-svcb">
          <name>Client Learns Using DNS SVCB</name>
          <t>The client determines if the local network provides CIDFI service by
issuing a query to the local DNS server for
"_cidfi-aware.cidfi.arpa." with the SVCB resource record type (64)
<xref target="I-D.ietf-dnsop-svcb-https"/>.</t>
        </section>
        <section anchor="client-learns-using-provisioning-domain">
          <name>Client Learns Using Provisioning Domain</name>
          <t>The client determines if the local network supports CIDFI by
querying https://&lt;PvD-ID&gt;/.well-known/pvd as described in <xref section="4.1" sectionFormat="of" target="RFC8801"/>.</t>
        </section>
        <section anchor="client-learns-using-dhcp-or-3gpp-pco">
          <name>Client Learns Using DHCP or 3GPP PCO</name>
          <t>The client determines that a local network is CIDFI-capable if the
client receives an explicit signal from the network, e.g., via a
dedicated DHCP option or a 3GPP PCO (Protocol Configuration Option)
Information Element. An example of explicit signal would be a DHCPv6
option or DHCPv4 sub-option that that is returned as part of
<xref target="RFC7839"/>.</t>
        </section>
      </section>
      <section anchor="client-authorizes">
        <name>Client Authorizes CIDFI Network Elements</name>
        <t>The response from the previous step in <xref target="discovery"/> will contain one or more
CNEs.</t>
        <t>The client authorizes each of the CNEs using
a local policy.  This policy is implementation specific.  An
implementation example might have the users authorize their ISP's CIDFI server
(e.g., allow "cidfi.example.net" if a user's ISP is configured with
"example.net").  Similarly, if none of the CNEs are recognized by the client, the client
might silently avoid using CIDFI on that network.</t>
        <t>After authorizing that subset of CNEs, the
client makes a new HTTPS connection to each of those CNEs
and performs PKIX validation of their certificates.
The client <bcp14>MAY</bcp14> have to authenticate itself to the CIDFI network
element.</t>
        <t>The client then obtains the CIDFI nonce and CIDFI HMAC
secret from each network element used later in <xref target="ownership"/> to prove
the client owns its UDP 4-tuple.</t>
        <artwork><![CDATA[
  {"cidfi-path-authentication":[
    {"nonce":"ddqwohxGZysgy0BySNh7sNHV5IH9RbE7rqXmg9wb9Npo",
     "hmac-secret":"jLNsCvuU59mt3F4/ePD9jbZ932TfsLSOP2Nx3XnUqc8v"}]}
]]></artwork>
      </section>
    </section>
    <section anchor="client-operation-on-each-connection-to-a-quic-server">
      <name>Client Operation on Each Connection to a QUIC Server</name>
      <t>When a QUIC client (or {DTLS-CID}) client connects to a QUIC (or {DTLS-CID}) server, the client:</t>
      <ol spacing="normal" type="1"><li>learns the server supports CIDFI
and obtains its mapping of transmitted destinations CID to metadata.</li>
        <li>proves ownership of its UDP 4-tuple to
the on-path network elements.</li>
        <li>performs initial metadata exchange
with the CIDFI network element and server, and server and network element.</li>
        <li>continually updates the server and the CIDFI network element whenever
new information is received from the other party.</li>
      </ol>
      <t>These steps are described in more detail below.</t>
      <ul empty="true">
        <li>
          <t>Note: the client is also a sender, and can also perform all these
functions in its direction.  This functionality will be expanded in
later versions of this document.  For example, a mobile device
connected to Wi-Fi with 5G backhaul might be running an interactive
audio/video application and want to indicate to its internal Wi-Fi
driver and to the 5G modem its mapping from its transmitted QUIC
Destination CID to per-packet metadata and the application can benefit
from receiving network performance metrics.</t>
        </li>
      </ul>
      <section anchor="server-supports-cidfi">
        <name>Client Learns Server Supports CIDFI</name>
        <t>On initial connection to a QUIC server, the client includes a new QUIC
transport parameter CIDFI (<xref target="iana-tp"/>) which is remembered for 0-RTT.</t>
        <t>If the server does not indicate CIDFI support, CIDFI processing stops.</t>
        <t>If the server indicates CIDFI support, then the server creates a
new Server-Initiated, Bidirectional QUIC stream which is dedicated to
CIDFI communication.  This stream number is communicated in the
CIDFI transport response during the QUIC handshake.  TODO: specify
how CIDFI stream number is communicated to client.</t>
        <t>The QUIC client and QUIC server exchange CIDFI information over
this CIDFI-dedicated stream as described in <xref target="initial-metadata-exchange"/>.</t>
      </section>
      <section anchor="ownership">
        <name>Client Proves Ownership of its UDP 4-Tuple</name>
        <t>To ensure that the client messages to the CNE
pertain only to the client's own UDP 4-tuple, the client sends the
CIDFI nonce protected by the HMAC secret it obtained from
<xref target="client-authorizes"/> over the QUIC UDP 4-tuple it is using with the
QUIC server.  The ability to transmit that packet on the same UDP
4-tuple as the QUIC connection indicates ownership of that IP address
and UDP port.  The nonce and HMAC are sent in a <xref target="STUN"/> indication (STUN
class of 0b01) containing one or more CIDFI-NONCE attributes
(<xref target="iana-stun"/>).  If there are multiple CNE
the single STUN indication contains a CIDFI-NONCE attribute from each of
them.  This message is discarded by the QUIC server.</t>
        <t>The figure below shows a summarized message flow obtaining
the nonce and HMAC secret from the CNE then later
sending the nonce and HMAC in the same UDP 4-tuple towards the QUIC server:</t>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="416" width="512" viewBox="0 0 512 416" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
              <path d="M 24,64 L 24,144" fill="none" stroke="black"/>
              <path d="M 24,176 L 24,400" fill="none" stroke="black"/>
              <path d="M 320,96 L 320,144" fill="none" stroke="black"/>
              <path d="M 320,248 L 320,272" fill="none" stroke="black"/>
              <path d="M 320,376 L 320,400" fill="none" stroke="black"/>
              <path d="M 472,64 L 472,144" fill="none" stroke="black"/>
              <path d="M 472,176 L 472,240" fill="none" stroke="black"/>
              <path d="M 472,272 L 472,400" fill="none" stroke="black"/>
              <path d="M 24,96 L 312,96" fill="none" stroke="black"/>
              <path d="M 32,128 L 320,128" fill="none" stroke="black"/>
              <path d="M 24,208 L 464,208" fill="none" stroke="black"/>
              <path d="M 24,240 L 464,240" fill="none" stroke="black"/>
              <path d="M 24,336 L 312,336" fill="none" stroke="black"/>
              <path d="M 32,368 L 472,368" fill="none" stroke="black"/>
              <path d="M 32,400 L 320,400" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="472,240 460,234.4 460,245.6" fill="black" transform="rotate(0,464,240)"/>
              <polygon class="arrowhead" points="472,208 460,202.4 460,213.6" fill="black" transform="rotate(0,464,208)"/>
              <polygon class="arrowhead" points="320,336 308,330.4 308,341.6" fill="black" transform="rotate(0,312,336)"/>
              <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(0,312,96)"/>
              <polygon class="arrowhead" points="40,400 28,394.4 28,405.6" fill="black" transform="rotate(180,32,400)"/>
              <polygon class="arrowhead" points="40,368 28,362.4 28,373.6" fill="black" transform="rotate(180,32,368)"/>
              <polygon class="arrowhead" points="40,128 28,122.4 28,133.6" fill="black" transform="rotate(180,32,128)"/>
              <g class="text">
                <text x="28" y="36">QUIC</text>
                <text x="312" y="36">CIDFI-aware</text>
                <text x="468" y="36">QUIC</text>
                <text x="28" y="52">client</text>
                <text x="284" y="52">edge</text>
                <text x="332" y="52">router</text>
                <text x="468" y="52">server</text>
                <text x="320" y="68">|</text>
                <text x="68" y="84">HTTPS:</text>
                <text x="124" y="84">Enroll</text>
                <text x="176" y="84">CIDFI</text>
                <text x="228" y="84">router</text>
                <text x="268" y="84">to</text>
                <text x="328" y="84">participate</text>
                <text x="68" y="116">HTTPS:</text>
                <text x="112" y="116">Ok.</text>
                <text x="184" y="116">nonce=12345</text>
                <text x="24" y="164">:</text>
                <text x="320" y="164">:</text>
                <text x="472" y="164">:</text>
                <text x="320" y="180">|</text>
                <text x="60" y="196">QUIC</text>
                <text x="116" y="196">Initial,</text>
                <text x="192" y="196">transport</text>
                <text x="296" y="196">parameter=CIDFI</text>
                <text x="60" y="228">STUN</text>
                <text x="128" y="228">Indication,</text>
                <text x="228" y="228">nonce=12345,</text>
                <text x="324" y="228">hmac=e8FEc</text>
                <text x="472" y="260">discarded</text>
                <text x="196" y="292">"I</text>
                <text x="224" y="292">saw</text>
                <text x="252" y="292">my</text>
                <text x="292" y="292">nonce,</text>
                <text x="340" y="292">HMAC</text>
                <text x="372" y="292">is</text>
                <text x="412" y="292">valid"</text>
                <text x="320" y="308">|</text>
                <text x="68" y="324">HTTPS:</text>
                <text x="116" y="324">"Map</text>
                <text x="172" y="324">DCID=xyz</text>
                <text x="220" y="324">as</text>
                <text x="252" y="324">high</text>
                <text x="320" y="324">importance"</text>
                <text x="320" y="340">|</text>
                <text x="60" y="356">QUIC</text>
                <text x="116" y="356">Initial,</text>
                <text x="192" y="356">transport</text>
                <text x="296" y="356">parameter=CIDFI</text>
                <text x="68" y="388">HTTPS:</text>
                <text x="108" y="388">Ok</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
 QUIC                            CIDFI-aware            QUIC
client                           edge router           server
  |                                    |                  |
  |  HTTPS: Enroll CIDFI router to participate            |
  +----------------------------------->|                  |
  |  HTTPS: Ok.  nonce=12345           |                  |
  |<-----------------------------------+                  |
  |                                    |                  |
  :                                    :                  :
  |                                    |                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  +------------------------------------------------------>|
  |  STUN Indication, nonce=12345, hmac=e8FEc             |
  +------------------------------------------------------>|
  |                                    |              discarded
  |                                    |                  |
  |                    "I saw my nonce, HMAC is valid"    |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  |<------------------------------------------------------+
  |  HTTPS: Ok                         |                  |
  |<-----------------------------------+                  |
]]></artwork>
        </artset>
        <t>Because multiple QUIC clients will use the same incoming Destination
CID on their own UDP 4-tuple, the STUN Indication message also allows
the CIDFI network element to distinguish which UDP 4-tuple belongs to
each CIDFI client.</t>
        <t>To reduce CIDFI setup time the client STUN Indication <bcp14>MAY</bcp14> be sent at
the same time as the QUIC Initial packet, which is encouraged
if the client remembers the server supports CIDFI (0-RTT).</t>
        <t>To prevent replay attacks, the Nonce is usable only for authenticating
one UDP 4-tuple.  When the connection is migrated (<xref section="9" sectionFormat="of" target="QUIC"/>) the CIDFI network element won't apply any CIDFI behavior to
that newly-migrated connection.  The client will have to restart
CIDFI procedures at the beginning (<xref target="attach"/>).</t>
        <section anchor="stun-cidfi-nonce-attribute">
          <name>STUN CIDFI-NONCE Attribute</name>
          <t>The format of the STUN CIDFI-NONCE attribute is:</t>
          <figure anchor="fig-stun-cidfi-nonce">
            <name>Format of CIDFI-NONCE Attribute</name>
            <artset>
              <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="304" width="528" viewBox="0 0 528 304" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                  <path d="M 8,64 L 8,288" fill="none" stroke="black"/>
                  <path d="M 520,64 L 520,288" fill="none" stroke="black"/>
                  <path d="M 8,64 L 520,64" fill="none" stroke="black"/>
                  <path d="M 8,144 L 520,144" fill="none" stroke="black"/>
                  <path d="M 8,288 L 520,288" fill="none" stroke="black"/>
                  <g class="text">
                    <text x="16" y="36">0</text>
                    <text x="176" y="36">1</text>
                    <text x="336" y="36">2</text>
                    <text x="496" y="36">3</text>
                    <text x="16" y="52">0</text>
                    <text x="32" y="52">1</text>
                    <text x="48" y="52">2</text>
                    <text x="64" y="52">3</text>
                    <text x="80" y="52">4</text>
                    <text x="96" y="52">5</text>
                    <text x="112" y="52">6</text>
                    <text x="128" y="52">7</text>
                    <text x="144" y="52">8</text>
                    <text x="160" y="52">9</text>
                    <text x="176" y="52">0</text>
                    <text x="192" y="52">1</text>
                    <text x="208" y="52">2</text>
                    <text x="224" y="52">3</text>
                    <text x="240" y="52">4</text>
                    <text x="256" y="52">5</text>
                    <text x="272" y="52">6</text>
                    <text x="288" y="52">7</text>
                    <text x="304" y="52">8</text>
                    <text x="320" y="52">9</text>
                    <text x="336" y="52">0</text>
                    <text x="352" y="52">1</text>
                    <text x="368" y="52">2</text>
                    <text x="384" y="52">3</text>
                    <text x="400" y="52">4</text>
                    <text x="416" y="52">5</text>
                    <text x="432" y="52">6</text>
                    <text x="448" y="52">7</text>
                    <text x="464" y="52">8</text>
                    <text x="480" y="52">9</text>
                    <text x="496" y="52">0</text>
                    <text x="512" y="52">1</text>
                    <text x="216" y="100">Nonce</text>
                    <text x="260" y="100">(128</text>
                    <text x="304" y="100">bits)</text>
                    <text x="224" y="212">HMAC-output</text>
                    <text x="292" y="212">(256</text>
                    <text x="336" y="212">bits)</text>
                  </g>
                </svg>
              </artwork>
              <artwork type="ascii-art" align="center"><![CDATA[
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                       Nonce (128 bits)                        |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
|                                                               |
|                                                               |
|                     HMAC-output (256 bits)                    |
|                                                               |
|                                                               |
|                                                               |
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
            </artset>
          </figure>
          <t>The nonce is 128 bits obtained from the CIDFI network element.  The
HMAC-output field is computed per <xref target="RFC5869"/> using the CIDFI network
element-provided HMAC secret, and the CIDFI network element-provided
Nonce concatenated with the fixed string "cidfi" (without quotes),
shown below with "|" denoting concatenation.</t>
          <artwork><![CDATA[
  HMAC-output = HMAC-SHA256( hmac-secret, nonce | "cidfi" )
]]></artwork>
        </section>
      </section>
      <section anchor="initial-metadata-exchange">
        <name>Initial Metadata Exchange</name>
        <t>Using its HTTPS channel with each of the CIDFI network elements it
previously authorized for CIDFI participation, the client signals the
mapping of the server's transmitted short Destination Connection ID
and its length to the CNE.  As server support
of the QUIC CIDFI transport parameter is remembered for 0-RTT, the
client can immediately send the nonce.</t>
        <t>The primary purpose of a second Connection ID is connection migration
(<xref section="9" sectionFormat="of" target="QUIC"/>).  With CIDFI, additional Connection IDs are
necessary to:
  * maintain CIDFI operation when topology remains the same.
  * use Destination Connection ID to indicate packet importance</t>
        <t>To maintain CIDFI operation when topology remains the same, the
CIDFI client signals the CNEs of that 'next'
Destination CID.  When QUIC detects a topology change, however, that
Destination CID <bcp14>MUST NOT</bcp14> be used by the peer, otherwise it links
the communication on the old topology to the new topology (<xref section="9.5" sectionFormat="of" target="QUIC"/>).
Thus, an additional Connection ID is purposefully not communicated
from the CIDFI client to its CNEs, so that
Connection ID can be immediately used by the peer during connection
migration when the topology changes.</t>
        <t>Note the source IP address and source UDP port number are not signaled
by design.  This is because NATs (<xref target="NAPT"/>,
<xref target="NAT"/>), multiple NATs on the path, IPv6/IPv4 translation,
similar technologies, and QUIC connection migration all complicate
accurate signaling of the source IP address and source UDP port
number.</t>
        <t>If the CNE receives the HTTPS map request but has not
yet seen the STUN nonce message it rejects the mapping request with a
403 and provides a new nonce.  The new nonce avoids the problem of an
attacker seeing the previous nonce and using that nonce on its own UDP
4-tuple.  The client then sends a new STUN message with that new nonce
value and send a new HTTPS mapping request(s).  This interaction is
highlighted in the simplified message flow, below.</t>
        <figure>
          <name>Client re-transmitting lost nonce</name>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="512" viewBox="0 0 512 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,144" fill="none" stroke="black"/>
                <path d="M 24,176 L 24,480" fill="none" stroke="black"/>
                <path d="M 320,96 L 320,144" fill="none" stroke="black"/>
                <path d="M 320,240 L 320,256" fill="none" stroke="black"/>
                <path d="M 320,288 L 320,320" fill="none" stroke="black"/>
                <path d="M 320,360 L 320,384" fill="none" stroke="black"/>
                <path d="M 320,448 L 320,480" fill="none" stroke="black"/>
                <path d="M 472,64 L 472,144" fill="none" stroke="black"/>
                <path d="M 472,176 L 472,352" fill="none" stroke="black"/>
                <path d="M 472,384 L 472,480" fill="none" stroke="black"/>
                <path d="M 24,96 L 312,96" fill="none" stroke="black"/>
                <path d="M 32,128 L 320,128" fill="none" stroke="black"/>
                <path d="M 24,208 L 464,208" fill="none" stroke="black"/>
                <path d="M 24,240 L 192,240" fill="none" stroke="black"/>
                <path d="M 24,288 L 312,288" fill="none" stroke="black"/>
                <path d="M 32,320 L 312,320" fill="none" stroke="black"/>
                <path d="M 24,352 L 464,352" fill="none" stroke="black"/>
                <path d="M 24,448 L 312,448" fill="none" stroke="black"/>
                <path d="M 32,480 L 320,480" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="472,352 460,346.4 460,357.6" fill="black" transform="rotate(0,464,352)"/>
                <polygon class="arrowhead" points="472,208 460,202.4 460,213.6" fill="black" transform="rotate(0,464,208)"/>
                <polygon class="arrowhead" points="320,448 308,442.4 308,453.6" fill="black" transform="rotate(0,312,448)"/>
                <polygon class="arrowhead" points="320,288 308,282.4 308,293.6" fill="black" transform="rotate(0,312,288)"/>
                <polygon class="arrowhead" points="320,96 308,90.4 308,101.6" fill="black" transform="rotate(0,312,96)"/>
                <polygon class="arrowhead" points="200,240 188,234.4 188,245.6" fill="black" transform="rotate(0,192,240)"/>
                <polygon class="arrowhead" points="40,480 28,474.4 28,485.6" fill="black" transform="rotate(180,32,480)"/>
                <polygon class="arrowhead" points="40,320 28,314.4 28,325.6" fill="black" transform="rotate(180,32,320)"/>
                <polygon class="arrowhead" points="40,128 28,122.4 28,133.6" fill="black" transform="rotate(180,32,128)"/>
                <g class="text">
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="468" y="36">QUIC</text>
                  <text x="28" y="52">client</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="468" y="52">server</text>
                  <text x="320" y="68">|</text>
                  <text x="68" y="84">HTTPS:</text>
                  <text x="124" y="84">Enroll</text>
                  <text x="176" y="84">CIDFI</text>
                  <text x="228" y="84">router</text>
                  <text x="268" y="84">to</text>
                  <text x="320" y="84">partipate</text>
                  <text x="68" y="116">HTTPS:</text>
                  <text x="112" y="116">Ok.</text>
                  <text x="184" y="116">nonce=12345</text>
                  <text x="24" y="164">:</text>
                  <text x="320" y="164">:</text>
                  <text x="472" y="164">:</text>
                  <text x="320" y="180">|</text>
                  <text x="60" y="196">QUIC</text>
                  <text x="116" y="196">Initial,</text>
                  <text x="192" y="196">transport</text>
                  <text x="296" y="196">parameter=CIDFI</text>
                  <text x="60" y="228">STUN</text>
                  <text x="128" y="228">Indication,</text>
                  <text x="228" y="228">nonce=12345,</text>
                  <text x="324" y="228">HMAC=8f93e</text>
                  <text x="208" y="244">X</text>
                  <text x="244" y="244">(lost)</text>
                  <text x="68" y="276">HTTPS:</text>
                  <text x="116" y="276">"Map</text>
                  <text x="172" y="276">DCID=xyz</text>
                  <text x="220" y="276">as</text>
                  <text x="252" y="276">high</text>
                  <text x="320" y="276">importance"</text>
                  <text x="68" y="308">HTTPS:</text>
                  <text x="116" y="308">403,</text>
                  <text x="152" y="308">new</text>
                  <text x="212" y="308">Nonce=5678</text>
                  <text x="60" y="340">STUN</text>
                  <text x="120" y="340">Indicate,</text>
                  <text x="208" y="340">nonce=5678,</text>
                  <text x="300" y="340">HMAC=aaf3c</text>
                  <text x="472" y="372">discarded</text>
                  <text x="196" y="404">"I</text>
                  <text x="224" y="404">saw</text>
                  <text x="252" y="404">my</text>
                  <text x="292" y="404">nonce,</text>
                  <text x="340" y="404">HMAC</text>
                  <text x="372" y="404">is</text>
                  <text x="412" y="404">valid"</text>
                  <text x="320" y="420">|</text>
                  <text x="68" y="436">HTTPS:</text>
                  <text x="116" y="436">"Map</text>
                  <text x="172" y="436">DCID=xyz</text>
                  <text x="220" y="436">as</text>
                  <text x="252" y="436">high</text>
                  <text x="320" y="436">importance"</text>
                  <text x="52" y="468">Ok</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
                                 CIDFI-aware            QUIC
client                           edge router           server
  |                                    |                  |
  |  HTTPS: Enroll CIDFI router to partipate              |
  +----------------------------------->|                  |
  |  HTTPS: Ok.  nonce=12345           |                  |
  |<-----------------------------------+                  |
  |                                    |                  |
  :                                    :                  :
  |                                    |                  |
  |  QUIC Initial, transport parameter=CIDFI              |
  +------------------------------------------------------>|
  |  STUN Indication, nonce=12345, HMAC=8f93e             |
  +--------------------> X (lost)      |                  |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  HTTPS: 403, new Nonce=5678        |                  |
  |<-----------------------------------|                  |
  |  STUN Indicate, nonce=5678, HMAC=aaf3c                |
  +------------------------------------------------------>|
  |                                    |              discarded
  |                                    |                  |
  |                    "I saw my nonce, HMAC is valid"    |
  |                                    |                  |
  |  HTTPS: "Map DCID=xyz as high importance"             |
  +----------------------------------->|                  |
  |  Ok                                |                  |
  |<-----------------------------------+                  |
]]></artwork>
          </artset>
        </figure>
        <t>There are two types of metadata exchanged, described in the following sub-sections.</t>
        <section anchor="server-to-network">
          <name>Server to Network Elements</name>
          <t>The server communicates to network elements via the client which then
communicates with the network element(s).  While this adds
communication delay, it allows the user at the client to authorize
the metadata communication about its own incoming (and outgoing) traffic.</t>
          <t>The communication from the client to the server are using a CIDFI-dedicated
QUIC stream over the same QUIC connection as their primary communication.</t>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="288" width="496" viewBox="0 0 496 288" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,272" fill="none" stroke="black"/>
                <path d="M 176,128 L 176,144" fill="none" stroke="black"/>
                <path d="M 176,184 L 176,232" fill="none" stroke="black"/>
                <path d="M 320,104 L 320,264" fill="none" stroke="black"/>
                <path d="M 472,64 L 472,272" fill="none" stroke="black"/>
                <path d="M 32,96 L 472,96" fill="none" stroke="black"/>
                <path d="M 24,144 L 168,144" fill="none" stroke="black"/>
                <path d="M 24,176 L 312,176" fill="none" stroke="black"/>
                <path d="M 32,208 L 176,208" fill="none" stroke="black"/>
                <path d="M 32,240 L 320,240" fill="none" stroke="black"/>
                <path d="M 24,272 L 464,272" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="472,272 460,266.4 460,277.6" fill="black" transform="rotate(0,464,272)"/>
                <polygon class="arrowhead" points="320,176 308,170.4 308,181.6" fill="black" transform="rotate(0,312,176)"/>
                <polygon class="arrowhead" points="176,144 164,138.4 164,149.6" fill="black" transform="rotate(0,168,144)"/>
                <polygon class="arrowhead" points="40,240 28,234.4 28,245.6" fill="black" transform="rotate(180,32,240)"/>
                <polygon class="arrowhead" points="40,208 28,202.4 28,213.6" fill="black" transform="rotate(180,32,208)"/>
                <polygon class="arrowhead" points="40,96 28,90.4 28,101.6" fill="black" transform="rotate(180,32,96)"/>
                <g class="text">
                  <text x="168" y="36">CIDFI-aware</text>
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="28" y="52">client</text>
                  <text x="112" y="52">Wi-Fi</text>
                  <text x="164" y="52">Access</text>
                  <text x="216" y="52">Point</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="468" y="52">server</text>
                  <text x="176" y="68">|</text>
                  <text x="320" y="68">|</text>
                  <text x="60" y="84">QUIC</text>
                  <text x="104" y="84">CIDFI</text>
                  <text x="160" y="84">stream:</text>
                  <text x="212" y="84">"Map</text>
                  <text x="268" y="84">DCID=xyz</text>
                  <text x="316" y="84">as</text>
                  <text x="348" y="84">high</text>
                  <text x="416" y="84">importance"</text>
                  <text x="60" y="116">"Map</text>
                  <text x="116" y="116">DCID=xyz</text>
                  <text x="164" y="116">as</text>
                  <text x="60" y="132">high</text>
                  <text x="128" y="132">importance"</text>
                  <text x="60" y="164">"Map</text>
                  <text x="116" y="164">DCID=xyz</text>
                  <text x="164" y="164">as</text>
                  <text x="196" y="164">high</text>
                  <text x="264" y="164">importance"</text>
                  <text x="52" y="196">Ok</text>
                  <text x="52" y="228">Ok</text>
                  <text x="60" y="260">QUIC</text>
                  <text x="104" y="260">CIDFI</text>
                  <text x="160" y="260">stream:</text>
                  <text x="204" y="260">Ok</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
               CIDFI-aware       CIDFI-aware
client     Wi-Fi Access Point    edge router           server
  |                  |                 |                  |
  |  QUIC CIDFI stream: "Map DCID=xyz as high importance" |
  |<------------------------------------------------------+
  |  "Map DCID=xyz as                  |                  |
  |  high importance"|                 |                  |
  +----------------->|                 |                  |
  |  "Map DCID=xyz as high importance" |                  |
  +----------------------------------->|                  |
  |  Ok              |                 |                  |
  |<-----------------+                 |                  |
  |  Ok              |                 |                  |
  |<-----------------------------------+                  |
  |  QUIC CIDFI stream: Ok             |                  |
  +------------------------------------------------------>|
]]></artwork>
          </artset>
          <t>To each of the network elements authorized by the client, the client
sends the mappings of the server's transmitted Destination CIDs to
packet metadata (see {#packet-metadata}).</t>
        </section>
        <section anchor="network-to-server">
          <name>Network Element to Server</name>
          <t>The network element sends network performance information to the server
which is intended to influence the sender's traffic rate (such as
improving or reducing fidelity of the audio or video).  In the figure below
the CNE informs the client of reduced bandwidth and the
client informs the server using CIDFI.</t>
          <artset>
            <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="448" viewBox="0 0 448 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 24,64 L 24,192" fill="none" stroke="black"/>
                <path d="M 320,64 L 320,96" fill="none" stroke="black"/>
                <path d="M 320,168 L 320,192" fill="none" stroke="black"/>
                <path d="M 424,64 L 424,192" fill="none" stroke="black"/>
                <path d="M 32,96 L 320,96" fill="none" stroke="black"/>
                <path d="M 24,128 L 416,128" fill="none" stroke="black"/>
                <path d="M 32,160 L 424,160" fill="none" stroke="black"/>
                <path d="M 24,192 L 312,192" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="424,128 412,122.4 412,133.6" fill="black" transform="rotate(0,416,128)"/>
                <polygon class="arrowhead" points="320,192 308,186.4 308,197.6" fill="black" transform="rotate(0,312,192)"/>
                <polygon class="arrowhead" points="40,160 28,154.4 28,165.6" fill="black" transform="rotate(180,32,160)"/>
                <polygon class="arrowhead" points="40,96 28,90.4 28,101.6" fill="black" transform="rotate(180,32,96)"/>
                <g class="text">
                  <text x="168" y="36">CIDFI-aware</text>
                  <text x="312" y="36">CIDFI-aware</text>
                  <text x="28" y="52">client</text>
                  <text x="112" y="52">Wi-Fi</text>
                  <text x="164" y="52">Access</text>
                  <text x="216" y="52">Point</text>
                  <text x="284" y="52">edge</text>
                  <text x="332" y="52">router</text>
                  <text x="420" y="52">server</text>
                  <text x="176" y="68">|</text>
                  <text x="84" y="84">"bandwidth</text>
                  <text x="144" y="84">now</text>
                  <text x="188" y="84">1Mbps"</text>
                  <text x="60" y="116">QUIC</text>
                  <text x="104" y="116">CIDFI</text>
                  <text x="160" y="116">stream:</text>
                  <text x="236" y="116">"bandwidth</text>
                  <text x="296" y="116">now</text>
                  <text x="340" y="116">1Mbps"</text>
                  <text x="60" y="148">QUIC</text>
                  <text x="104" y="148">CIDFI</text>
                  <text x="160" y="148">stream:</text>
                  <text x="204" y="148">Ok</text>
                  <text x="320" y="148">|</text>
                  <text x="52" y="180">Ok</text>
                  <text x="176" y="180">|</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art" align="center"><![CDATA[
               CIDFI-aware       CIDFI-aware
client     Wi-Fi Access Point    edge router     server
  |                  |                 |            |
  |  "bandwidth now 1Mbps"             |            |
  |<-----------------------------------+            |
  |  QUIC CIDFI stream: "bandwidth now 1Mbps"       |
  +------------------------------------------------>|
  |  QUIC CIDFI stream: Ok             |            |
  |<------------------------------------------------+
  |  Ok              |                 |            |
  +----------------------------------->|            |
]]></artwork>
          </artset>
          <t>The communication from the client to the server is using a CIDFI-dedicated
QUIC stream over the same QUIC connection as their primary communication.</t>
          <t>The CNE can update the client with whenever
the metadata about the connection changes significantly, but <bcp14>MUST NOT</bcp14>
update more frequently than once every second.</t>
          <t>The metadata exchanged over this channel is described in <xref target="metadata-exchanged"/>.</t>
        </section>
      </section>
      <section anchor="ongoing-metadata-exchange">
        <name>Ongoing Metadata Exchange</name>
        <t>For the duration of the primary QUIC connection between the client and
server, the client relays network element metadata changes to the server, and server's
transmitted QUIC Destination CID to the network elements.</t>
      </section>
    </section>
    <section anchor="load-balancers">
      <name>Interaction with Load Balancers</name>
      <t>HTTPS servers, including QUIC servers, are frequently behind load balancers.</t>
      <t>With CIDFI, all the communications to the load-balanced QUIC server are over the same UDP 4-tuple
as the primary QUIC connection but in a different QUIC stream.  This means
no changes are required to ECMP load balancers or to CID-aware load balancers
when using a CIDFI-aware back-end QUIC server.</t>
      <t>Load balancers providing QUIC-to-TCP interworking is incompatible with
CIDFI because TCP lacks QUIC's stream identification.</t>
    </section>
    <section anchor="topology">
      <name>Topology Change</name>
      <t>When the topology changes the client will transmit from a new IP address
-- such as switching to a backup WAN connection, or such as switching
from Wi-Fi to 5G.  If using QUIC, QUIC server will consider this a
connection migration and will issue a PATH_CHALLENGE.  If the client
is aware of the topology change (such as attaching to a different
network), the client would also change its QUIC Destination CID (<xref section="9" sectionFormat="of" target="QUIC"/>).</t>
      <t>If the QUIC CIDFI-aware client is otherwise unaware of a topology change
and receives a QUIC PATH_CHALLENGE then the CIDFI-aware client <bcp14>SHOULD</bcp14>
re-discover its CIDFI network elements <xref target="discovery"/>.  If that
set of network elements differs from the previous set, the client
<bcp14>SHOULD</bcp14> continue with normal CIDFI processing.</t>
      <ul empty="true">
        <li>
          <t>todo: include discussion of <xref target="DTLS-CID"/> client and discussion
of its ICE interaction, if any?</t>
        </li>
      </ul>
    </section>
    <section anchor="metadata-exchanged">
      <name>Details of Metadata Exchanged</name>
      <t>This section describes the metadata that can be exchanged from a
CNE to a server (generally network
performance information) and from the server to the CNE.</t>
      <section anchor="server-to-cidfi-aware-network-element">
        <name>Server to CIDFI-aware Network Element</name>
        <t>Because there is no direct communication from the server to
the network element the communication is relayed through the client.</t>
        <t>The communications from servers to network elements do not occur directly,
but rather through the client.</t>
        <t>Two types of mapping metadata are described below: metadata parameters
and DSCP values.</t>
        <section anchor="mapping-parameters">
          <name>Mapping Metadata Parameters to DCIDs</name>
          <t>Several of metadata parameters can be mapped to Destination CIDs:</t>
          <dl>
            <dt>Importance:</dt>
            <dd>
              <t>Low/Medium/High importance, relative to other CIDs within this
same UDP 4-tuple.</t>
            </dd>
            <dt>Delay budget:</dt>
            <dd>
              <t>Time in milliseconds until this packet is worthless to the receiver.
This is counted from when the packet arrives at the CNE
to when it is transmitted; other delays may occur
before or after that event occurs.  The receiver knows its own jitter
(playout) buffer length and the client and server can calculate the
one-way delay using timestamps.  With that information, the client can
adjust the server's signaled delay budget with the client's own
knowledge.  TODO: provide enough details to create interoperable
implementations.</t>
            </dd>
          </dl>
          <t>Over the CIDFI-dedicated QUIC stream, the server sends mapping
information to the client when then propagates that information
to each of the CNEs.</t>
          <artwork><![CDATA[
  {"metadata-parameters":[{"quicversion":1,
    "dcidlength":3,
       "map":[
       {"import":17,"burst":83,"delaybudget":71,"dcids":[551,381]},
       {"import":3,"burst":888,"delaybudget":180,"dcids":[89,983]},
       {"import":7,"burst":37,"delaybudget":55,"dcids":[33]}]}]}
]]></artwork>
        </section>
        <section anchor="mapping-dscp">
          <name>Mapping DiffServ Code Point (DSCP) to DCIDs</name>
          <t>A mapping from Destination CID to DiffServ code point
<xref target="RFC2474"/> leverages existing DiffServ handling that may already
exist in the CIDFI network element.  If there are downstream network
elements configured with the same DSCP the CIDFI
network element could mark the packet with that code point as well.</t>
          <t>Signaling the DSCP values for different QUIC Destination CIDs
increases the edge network's confidence that the sender's DiffServ intent
is preserved into the edge network, even if the DSCP bits were
modified en route to the edge network (e.g., <xref target="pathologies"/>).</t>
          <t>Over the CIDFI-dedicated QUIC stream, the server sends the mapping
information to the client when then propagates that information
to each of the CNEs.</t>
          <figure anchor="fig-dscp-json">
            <name>Example JSON for DSCP Mapping</name>
            <artwork align="left"><![CDATA[
  {"dscp":[{"quicversion":1,
    "dcidlength":3,
    "map":[
      {"dscp":10,"dcids":[123,456]},
      {"dscp":46,"dcids":[998,183]}]}]}
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="cidfi-aware-network-element-to-server">
        <name>CIDFI-aware Network Element to Server</name>
        <t>The CIDFI-aware client informs the network element of the client's
received Destination CIDs.  As bandwidth availability to that client
changes, the CNE updates the client with new
metadata.</t>
        <artwork><![CDATA[
  {"dcid":123,
   "bandwidth":"1Mbps"}
]]></artwork>
        <t>The client then sends that information to the server in the CIDFI-dedicated
QUIC stream associated with that same Connection ID.</t>
      </section>
    </section>
    <section anchor="discussion-points">
      <name>Discussion Points</name>
      <t>This section discusses known issues that would benefit from wider discussion.</t>
      <section anchor="client-versus-server-signaling-cid-to-importance-mapping">
        <name>Client versus Server Signaling CID-to-importance Mapping</name>
        <t>Need to evaluate number of round trips (and other overhead) of client
signaling CID-to-importance mapping or server signaling CID-to-importance
mapping.</t>
      </section>
      <section anchor="overhead-of-quic-dcid-packet-examination">
        <name>Overhead of QUIC DCID Packet Examination</name>
        <t>If CID-to-importance metadata was signaled by the server as described
in <xref target="server-to-network"/>, the CNE have to
examine the UDP payload of each packet for a matching Destination CID
for the lifetime of the connection.  This is somewhat assuaged by
the STUN nonce transmitted which may well be an easier signal to
identify.</t>
      </section>
      <section anchor="interaction-with-wi-fi-packet-aggregation">
        <name>Interaction with Wi-Fi Packet Aggregation</name>
        <t>Per-packet metadata influences transmission of that packet but may
well conflict with some Wi-Fi optimizations (e.g., <xref target="wifi-aggregation"/>)
and similar 5G optimizations.</t>
        <t>This impact needs further study.</t>
      </section>
      <section anchor="overhead-of-mapping-cids-to-packet-metadata">
        <name>Overhead of Mapping CIDs to Packet Metadata</name>
        <t>Network Elements have to maintain a mapping between each UDP 4-tuple
and QUIC CID and its DSCP code point.  This also needs updating
whenever sender changes its CID.  This is awkward.</t>
        <t>An alternative is a fixed mapping of QUIC CIDs to their meanings,
as proposed in <xref target="I-D.zmlk-quic-te"/>.  However, this will ossify
the meaning of those QUIC CIDs.  It also requires all networks to
agree on the meaning of those QUIC CIDs.</t>
      </section>
      <section anchor="improve-cidfi-initialization-time">
        <name>Improve CIDFI Initialization Time</name>
        <t>Find approaches to further reduce network communications to start CIDFI.</t>
      </section>
      <section anchor="primary-quic-channel-cid-change-primary-cid-change">
        <name>Primary QUIC Channel CID Change {#primary-cid-change}:</name>
        <t>Because the CIDFI network element, QUIC server, and QUIC client all
cooperate to share the primary QUIC connection's Destination CID,
when a new CIDFI network element is involved (e.g., due to client
attaching to a different network), a new Destination CID <bcp14>SHOULD</bcp14>
be used for the reasons discussed in <xref section="9.5" sectionFormat="of" target="QUIC"/>}.</t>
        <t>We need clear way to signal which DCIDs can be used for 'this'
network attach and which DCIDs are for a migrated connection.  Probably
belongs in the QUIC transport parameter signaling?</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Because the sender's QUIC Destination Connection ID is mapped to
packet importance, and the DCID remains the same for many packets, an
attacker could determine which DCIDs are important by causing
interference on the bandwidth-constrained link (by creating other
legitimate traffic or creating radio interference) and observing which
DCIDs are transmitted versus which DCIDs are dropped.  This is a side-
effect of using fixed identifier (DCIDs) rather than encrypting
the packet importance.  This was a design trade-off to reduce the
CPU effort on the CNEs.  A mitigation is using
several DCIDs for every packet importance.</t>
      <t>Communications are relayed through the client because only the
client and server knows the identity of the server and can validate
its certificate.  The protocol in this specification does not disclose
the server's identity to the CIDFI network element.</t>
      <t>For an attacker to succeed with the nonce challenge against a victim's
UDP 4-tuple the attacker has to send a STUN CIDFI-NONCE packet using
the victim's source IP address and a valid HMAC.  A valid HMAC can
only be obtained by the attacker making its own connection to the
CIDFI server and spoofing the source IP address and UDP port of the
victim.  Such spoofing of a victim's IP address is prevented by the
network using network ingress filtering (<xref target="RFC2827"/>, <xref target="RFC7513"/>,
<xref target="RFC6105"/>, and/or <xref target="RFC6620"/>).  In the event network ingress
filtering is not configured or configured improperly, the CIDFI
network element can detect an attack if the client implements CIDFI.
The CIDFI network element receive two HTTPS connections describing the
same DCID (one connection from the attacker, another from the victim).
The CIDFI network element will issue unique Nonces and HMACs to both
the attacker and victim, and the attacker and victim will both send
the STUN indication on that same UDP 4-tuple.  This should never
normally occur and should generate an alarm on the CIDFI network
element.  In this situation, it is recommended both attack and victim
be denied CIDFI access.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-tp">
        <name>New QUIC Transport Parameter</name>
        <t>This document requests IANA to register the following new permanent QUIC transport parameter
in the "QUIC Transport Parameters" registry under the "QUIC" registry group available at <xref target="IANA-QUIC"/>:</t>
        <table>
          <name>New QUIC Transport Parameter</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Parameter Name</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD1</td>
              <td align="left">CIDFI</td>
              <td align="left">This-Document</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-uri">
        <name>New Well-known URI "cidfi-aware"</name>
        <t>This document requests IANA to register the new well-known URI "cidfi" in the
"Well-Known URIs" registry available at <xref target="IANA-WKU"/>.</t>
      </section>
      <section anchor="iana-sudn">
        <name>New Special-use Domain Name</name>
        <t>Register new special-use domain name cidfi.arpa for DNS SVCB discovery.</t>
      </section>
      <section anchor="iana-svcb">
        <name>New DNS Service Binding (SVCB)</name>
        <t>This document requests IANA to register the new DNS SVCB "_cidfi-aware" in
the "DNS Service Bindings (SVCB)" registry available at <xref target="IANA-SVCB"/>.</t>
      </section>
      <section anchor="iana-stun">
        <name>New STUN Attribute</name>
        <t>This document requests IANA to register the new STUN attribute "CIDFI-NONCE"
in the "STUN Attributes" registry available at <xref target="IANA-STUN"/>.</t>
      </section>
      <section anchor="iana-pvd">
        <name>New Provisioning Domain Additional Information Key</name>
        <t>This document requests IANA to register two new JSON keys in the
Provisioning Domains Additional Information registry at <xref target="IANA-PVD"/>:</t>
        <artwork><![CDATA[
JSON key: cidfi
Description: CID Flow Indicator
Type: array of cidfi details
Example: ["cidfinode": "service.example.net", "cidfipathauth":
          "/authpath", "cidfimetadata": "/meta"]
]]></artwork>
        <t>Additionally, in the following cidfi keys are to be registered:</t>
        <artwork><![CDATA[
JSON key: cidfinode
Description: FQDN of CIDFI node
Type: string
Example: service.example.net

JSON key: cidfipathauth
Description: authentication and authorization path for CIDFI
type: string
Example: "/authpath"

JSON key: cidfimetadata
Description: metadata path for CIDFI
type: string
example: "/metadata"
]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="QUIC">
          <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="DTLS-CID">
          <front>
            <title>Connection Identifier for DTLS 1.2</title>
            <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
            <author fullname="H. Tschofenig" initials="H." role="editor" surname="Tschofenig"/>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="A. Kraus" initials="A." surname="Kraus"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document specifies the Connection ID (CID) construct for the Datagram Transport Layer Security (DTLS) protocol version 1.2.</t>
              <t>A CID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association. In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple. If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session, then the receiver will be unable to locate the correct security context.</t>
              <t>The new ciphertext record format with the CID also provides content type encryption and record layer padding.</t>
              <t>This document updates RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9146"/>
          <seriesInfo name="DOI" value="10.17487/RFC9146"/>
        </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>
        <reference anchor="CBOR">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="I-D.ietf-dnsop-svcb-https">
          <front>
            <title>Service binding and parameter specification via the DNS (DNS SVCB and HTTPS RRs)</title>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Google</organization>
            </author>
            <author fullname="Mike Bishop" initials="M." surname="Bishop">
              <organization>Akamai Technologies</organization>
            </author>
            <author fullname="Erik Nygren" initials="E." surname="Nygren">
              <organization>Akamai Technologies</organization>
            </author>
            <date day="11" month="March" year="2023"/>
            <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 are extensible to support future uses
   (such as 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-12"/>
        </reference>
        <reference anchor="RFC8801">
          <front>
            <title>Discovering Provisioning Domain Names and Data</title>
            <author fullname="P. Pfister" initials="P." surname="Pfister"/>
            <author fullname="É. Vyncke" surname="É. Vyncke"/>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <author fullname="W. Shao" initials="W." surname="Shao"/>
            <date month="July" year="2020"/>
            <abstract>
              <t>Provisioning Domains (PvDs) are defined as consistent sets of network configuration information. PvDs allows hosts to manage connections to multiple networks and interfaces simultaneously, such as when a home router provides connectivity through both a broadband and cellular network provider.</t>
              <t>This document defines a mechanism for explicitly identifying PvDs through a Router Advertisement (RA) option. This RA option announces a PvD identifier, which hosts can compare to differentiate between PvDs. The option can directly carry some information about a PvD and can optionally point to PvD Additional Information that can be retrieved using HTTP over TLS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8801"/>
          <seriesInfo name="DOI" value="10.17487/RFC8801"/>
        </reference>
        <reference anchor="STUN">
          <front>
            <title>Session Traversal Utilities for NAT (STUN)</title>
            <author fullname="M. Petit-Huguenin" initials="M." surname="Petit-Huguenin"/>
            <author fullname="G. Salgueiro" initials="G." surname="Salgueiro"/>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="R. Mahy" initials="R." surname="Mahy"/>
            <author fullname="P. Matthews" initials="P." surname="Matthews"/>
            <date month="February" year="2020"/>
            <abstract>
              <t>Session Traversal Utilities for NAT (STUN) is a protocol that serves as a tool for other protocols in dealing with NAT traversal. It can be used by an endpoint to determine the IP address and port allocated to it by a NAT. It can also be used to check connectivity between two endpoints and as a keep-alive protocol to maintain NAT bindings. STUN works with many existing NATs and does not require any special behavior from them.</t>
              <t>STUN is not a NAT traversal solution by itself. Rather, it is a tool to be used in the context of a NAT traversal solution.</t>
              <t>This document obsoletes RFC 5389.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8489"/>
          <seriesInfo name="DOI" value="10.17487/RFC8489"/>
        </reference>
        <reference anchor="RFC2474">
          <front>
            <title>Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers</title>
            <author fullname="K. Nichols" initials="K." surname="Nichols"/>
            <author fullname="S. Blake" initials="S." surname="Blake"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="December" year="1998"/>
            <abstract>
              <t>This document defines the IP header field, called the DS (for differentiated services) field. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2474"/>
          <seriesInfo name="DOI" value="10.17487/RFC2474"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="pathologies" target="https://www.sciencedirect.com/science/article/pii/S0140366417312835">
          <front>
            <title>Exploring DSCP modification pathologies in the Internet</title>
            <author initials="A." surname="Custura" fullname="Ana Custura">
              <organization/>
            </author>
            <author initials="R." surname="Secchi" fullname="Raffaello Secchi">
              <organization/>
            </author>
            <author initials="G." surname="Fairhurst" fullname="Gorry Fairhurst">
              <organization/>
            </author>
            <date year="2018" month="May"/>
          </front>
        </reference>
        <reference anchor="wifi-aggregation" target="https://www.usenix.org/conference/atc17/technical-sessions/presentation/hoilan-jorgesen">
          <front>
            <title>Ending the Anomaly: Achieving Low Latency and Airtime Fairness in WiFi</title>
            <author initials="T." surname="Høiland-Jørgensen" fullname="Toke Høiland-Jørgensen">
              <organization/>
            </author>
            <author initials="M." surname="Kazior" fullname="Michał Kazior">
              <organization/>
            </author>
            <author initials="D." surname="Täht" fullname="Dave Täht">
              <organization/>
            </author>
            <author initials="P." surname="Hurtig" fullname="Per Hurtig">
              <organization/>
            </author>
            <author initials="A." surname="Brunstrom" fullname="Anna Brunstrom">
              <organization/>
            </author>
            <date year="2017" month="May" day="22"/>
          </front>
        </reference>
        <reference anchor="IANA-QUIC" target="https://www.iana.org/assignments/quic/quic.xhtml">
          <front>
            <title>QUIC</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="July" day="26"/>
          </front>
        </reference>
        <reference anchor="IANA-WKU" target="https://www.iana.org/assignments/well-known-uris/well-known-uris.xhtml">
          <front>
            <title>Well-known URIs</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="June" day="20"/>
          </front>
        </reference>
        <reference anchor="IANA-SVCB" target="https://www.iana.org/assignments/dns-svcb/dns-svcb.xhtml">
          <front>
            <title>DNS Service Bindings (SVCB)</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="June" day="13"/>
          </front>
        </reference>
        <reference anchor="IANA-STUN" target="https://www.iana.org/assignments/stun-parameters/stun-parameters.xhtml">
          <front>
            <title>STUN Attributes</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="March" day="20"/>
          </front>
        </reference>
        <reference anchor="IANA-PVD" target="https://www.iana.org/assignments/pvds/pvds.xhtml#additional-information-pvd-keys">
          <front>
            <title>Provisioning Domains (PvDs)</title>
            <author>
              <organization/>
            </author>
            <date year="2020" month="August" day="13"/>
          </front>
        </reference>
        <reference anchor="ECN">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishnan"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo specifies the incorporation of ECN (Explicit Congestion Notification) to TCP and IP, including ECN's use of two bits in the IP header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3168"/>
          <seriesInfo name="DOI" value="10.17487/RFC3168"/>
        </reference>
        <reference anchor="I-D.joras-sadcdn">
          <front>
            <title>Securing Ancillary Data for Communicating with Devices in the Network</title>
            <author fullname="Matt Joras" initials="M." surname="Joras">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   There is increasing need for application endpoints to exchange rich
   information with devices in the network and secure that information
   from on-path observers.  This document presents some current problems
   and the broad strokes of potential solutions.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/mjoras/sadcdn.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-joras-sadcdn-01"/>
        </reference>
        <reference anchor="I-D.ietf-avtcore-rtp-over-quic">
          <front>
            <title>RTP over QUIC (RoQ)</title>
            <author fullname="Joerg Ott" initials="J." surname="Ott">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Mathis Engelbart" initials="M." surname="Engelbart">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="26" month="July" year="2023"/>
            <abstract>
              <t>   This document specifies a minimal mapping for encapsulating Real-time
   Transport Protocol (RTP) and RTP Control Protocol (RTCP) packets
   within the QUIC protocol.  This mapping is called RTP over QUIC
   (RoQ).  It also discusses how to leverage state from the QUIC
   implementation in the endpoints, in order to reduce the need to
   exchange RTCP packets and how to implement congestion control and
   rate adaptation without relying on RTCP feedback.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-05"/>
        </reference>
        <reference anchor="RFC7839">
          <front>
            <title>Access-Network-Identifier Option in DHCP</title>
            <author fullname="S. Bhandari" initials="S." surname="Bhandari"/>
            <author fullname="S. Gundavelli" initials="S." surname="Gundavelli"/>
            <author fullname="M. Grayson" initials="M." surname="Grayson"/>
            <author fullname="B. Volz" initials="B." surname="Volz"/>
            <author fullname="J. Korhonen" initials="J." surname="Korhonen"/>
            <date month="June" year="2016"/>
            <abstract>
              <t>This document specifies the format and mechanism that is to be used for encoding Access-Network Identifiers in DHCPv4 and DHCPv6 messages by defining new Access-Network-Identifier options and sub-options.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7839"/>
          <seriesInfo name="DOI" value="10.17487/RFC7839"/>
        </reference>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="NAPT">
          <front>
            <title>Traditional IP Network Address Translator (Traditional NAT)</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="K. Egevang" initials="K." surname="Egevang"/>
            <date month="January" year="2001"/>
            <abstract>
              <t>The NAT operation described in this document extends address translation introduced in RFC 1631 and includes a new type of network address and TCP/UDP port translation. In addition, this document corrects the Checksum adjustment algorithm published in RFC 1631 and attempts to discuss NAT operation and limitations in detail. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3022"/>
          <seriesInfo name="DOI" value="10.17487/RFC3022"/>
        </reference>
        <reference anchor="NAT">
          <front>
            <title>IP Network Address Translator (NAT) Terminology and Considerations</title>
            <author fullname="P. Srisuresh" initials="P." surname="Srisuresh"/>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege"/>
            <date month="August" year="1999"/>
            <abstract>
              <t>This document attempts to describe the operation of NAT devices and the associated considerations in general, and to define the terminology used to identify various flavors of NAT. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2663"/>
          <seriesInfo name="DOI" value="10.17487/RFC2663"/>
        </reference>
        <reference anchor="I-D.zmlk-quic-te">
          <front>
            <title>QUIC-enabled Service Differentiation for Traffic Engineering</title>
            <author fullname="Zhilong Zheng" initials="Z." surname="Zheng">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yunfei Ma" initials="Y." surname="Ma">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yanmei Liu" initials="Y." surname="Liu">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="5" month="May" year="2023"/>
            <abstract>
              <t>   This document defines a method for supporting QUIC-enabled service
   differentiation for traffic engineering through multipath and QUIC
   connection identifier (CID) encoding.  This approach enables end-host
   networking stacks and applications to select packet routing paths in
   a wide area network (WAN), potentially improving the end-to-end
   performance, cost, and reliability.  The proposed method can be used
   in conjunction with segment routing traffic engineering technologies,
   such as SRv6 TE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-zmlk-quic-te-00"/>
        </reference>
        <reference anchor="RFC2827">
          <front>
            <title>Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing</title>
            <author fullname="P. Ferguson" initials="P." surname="Ferguson"/>
            <author fullname="D. Senie" initials="D." surname="Senie"/>
            <date month="May" year="2000"/>
            <abstract>
              <t>This paper discusses a simple, effective, and straightforward method for using ingress traffic filtering to prohibit DoS (Denial of Service) attacks which use forged IP addresses to be propagated from 'behind' an Internet Service Provider's (ISP) aggregation point. 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="38"/>
          <seriesInfo name="RFC" value="2827"/>
          <seriesInfo name="DOI" value="10.17487/RFC2827"/>
        </reference>
        <reference anchor="RFC7513">
          <front>
            <title>Source Address Validation Improvement (SAVI) Solution for DHCP</title>
            <author fullname="J. Bi" initials="J." surname="Bi"/>
            <author fullname="J. Wu" initials="J." surname="Wu"/>
            <author fullname="G. Yao" initials="G." surname="Yao"/>
            <author fullname="F. Baker" initials="F." surname="Baker"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This document specifies the procedure for creating a binding between a DHCPv4/DHCPv6-assigned IP address and a binding anchor on a Source Address Validation Improvement (SAVI) device. The bindings set up by this procedure are used to filter packets with forged source IP addresses. This mechanism complements BCP 38 (RFC 2827) ingress filtering, providing finer-grained source IP address validation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7513"/>
          <seriesInfo name="DOI" value="10.17487/RFC7513"/>
        </reference>
        <reference anchor="RFC6105">
          <front>
            <title>IPv6 Router Advertisement Guard</title>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde"/>
            <author fullname="C. Popoviciu" initials="C." surname="Popoviciu"/>
            <author fullname="J. Mohacsi" initials="J." surname="Mohacsi"/>
            <date month="February" year="2011"/>
            <abstract>
              <t>Routed protocols are often susceptible to spoof attacks. The canonical solution for IPv6 is Secure Neighbor Discovery (SEND), a solution that is non-trivial to deploy. This document proposes a light-weight alternative and complement to SEND based on filtering in the layer-2 network fabric, using a variety of filtering criteria, including, for example, SEND status. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6105"/>
          <seriesInfo name="DOI" value="10.17487/RFC6105"/>
        </reference>
        <reference anchor="RFC6620">
          <front>
            <title>FCFS SAVI: First-Come, First-Served Source Address Validation Improvement for Locally Assigned IPv6 Addresses</title>
            <author fullname="E. Nordmark" initials="E." surname="Nordmark"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="E. Levy-Abegnoli" initials="E." surname="Levy-Abegnoli"/>
            <date month="May" year="2012"/>
            <abstract>
              <t>This memo describes First-Come, First-Served Source Address Validation Improvement (FCFS SAVI), a mechanism that provides source address validation for IPv6 networks using the FCFS principle. The proposed mechanism is intended to complement ingress filtering techniques to help detect and prevent source address spoofing. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6620"/>
          <seriesInfo name="DOI" value="10.17487/RFC6620"/>
        </reference>
        <reference anchor="RTP">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol. RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services. RTP does not address resource reservation and does not guarantee quality-of- service for real-time services. The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality. RTP and RTCP are designed to be independent of the underlying transport and network layers. The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes. There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="SRTP">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="cryptex">
          <front>
            <title>Completely Encrypting RTP Header Extensions and Contributing Sources</title>
            <author fullname="J. Uberti" initials="J." surname="Uberti"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <author fullname="S. Murillo" initials="S." surname="Murillo"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>While the Secure Real-time Transport Protocol (SRTP) provides confidentiality for the contents of a media packet, a significant amount of metadata is left unprotected, including RTP header extensions and contributing sources (CSRCs). However, this data can be moderately sensitive in many applications. While there have been previous attempts to protect this data, they have had limited deployment, due to complexity as well as technical limitations.</t>
              <t>This document updates RFC 3711, the SRTP specification, and defines Cryptex as a new mechanism that completely encrypts header extensions and CSRCs and uses simpler Session Description Protocol (SDP) signaling with the goal of facilitating deployment.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9335"/>
          <seriesInfo name="DOI" value="10.17487/RFC9335"/>
        </reference>
        <reference anchor="I-D.ietf-moq-requirements">
          <front>
            <title>Media Over QUIC - Use Cases and Requirements for Media Transport Protocol Design</title>
            <author fullname="James Gruessing" initials="J." surname="Gruessing">
              <organization>Nederlandse Publieke Omroep</organization>
            </author>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   This document describes use cases and requirements that guide the
   specification of a simple, low-latency media delivery solution for
   ingest and distribution, using either the QUIC protocol or
   WebTransport as transport protocols.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-moq-requirements-01"/>
        </reference>
      </references>
    </references>
    <?line 1025?>

<section anchor="extending">
      <name>Extending CIDFI to Other Protocols</name>
      <t>CIDFI can be extended to other protocols including TCP, SCTP, RTP and SRTP,
and bespoke UDP protocols.</t>
      <t>An extension to each protocol is described below which retains the
ability of the client to prove its ownership of the 5-tuple to a CNE.</t>
      <section anchor="tcp">
        <name>TCP</name>
        <t>To prove ownership of the TCP 4-tuple, TCP can utilize a new TCP
option to carry the CNE's nonce and HMAC-output.  This TCP option can be carried
in both the TCP SYN and in some subsequent packets to avoid consuming the entire
TCP option space (40 bytes).  Sub-options can be defined to carry pieces of
the Nonce and HMAC output, with the first piece of the Nonce in the TCP SYN
so the CIDFI network element can be triggered to begin looking for the subsequent
TCP frames containing the rest of the CIDFI nonce and CIDFI HMAC-output.  For example,</t>
        <ol spacing="normal" type="1"><li>send TCP SYN + CIDFI option (including Nonce bits 0-63)</li>
          <li>if received TCP SYNACK does not indicate CIDFI support, stop sending CIDFI option</li>
          <li>send next TCP packet + CIDFI option (including Nonce bytes 64-128)</li>
          <li>send next TCP packet + CIDFI option (including HMAC-output bits 0-127)</li>
          <li>send next TCP packet + CIDFI option (including HMAC-output bytes 128-256)</li>
        </ol>
        <t>To shorten this further we might truncate the HMAC output and/or
truncate the Nonce after security evaluation.</t>
      </section>
      <section anchor="sctp">
        <name>SCTP</name>
        <t>If SCTP is sent directly over IP, proof of ownership of the
SCTP 4-tuple can be achieved using an extension to its INIT
packets, similar to what is described above for TCP SYN.</t>
        <t>If SCTP is run over UDP, the same proof of ownership of the UDP
4-tuple as described in <xref target="ownership"/> can be performed.</t>
      </section>
      <section anchor="rtp-and-srtp">
        <name>RTP and SRTP</name>
        <t>The RTP Synchronization Source (SSRC) is in the clear for <xref target="RTP"/>, <xref target="SRTP"/>,
and <xref target="cryptex"/>.  If the SSRC is signaled similarly to CID, RTP could also
benefit from CIDFI.  CIDFI network elements could be told the mapping of SSRC values to
importance and schedule those SSRCs accordingly.  However, SSRC is used in playout (jitter)
buffers and a new SSRC seen by a receiver will cause confusion.  Thus, overloading SSRC
to mean both 'packet importance' for CIDFI and 'synchronization source' will require
engineering work on the RTP receiver to treat all the signaled SSRCs as one source for
purposes of its playout buffer.</t>
        <t>RTP over QUIC <xref target="I-D.ietf-avtcore-rtp-over-quic"/> is another approach which exposes
QUIC headers to the network (which have CIDs) and does not overload the RTP SSRC.  The
Media over QUIC (MOQ) working group includes RTP over QUIC as one of its use cases
<xref section="3.1" sectionFormat="of" target="I-D.ietf-moq-requirements"/>.</t>
      </section>
      <section anchor="bespoke-udp-application-protocols">
        <name>Bespoke UDP Application Protocols</name>
        <t>To work with CIDFI, other UDP application protocols would have to
prove ownership of their UDP 4-tuple (<xref target="ownership"/>) and extend their
protocol to include a connection identifier in the first several bits
of each of their UDP packets.</t>
        <t>Alternatively, rather than modifying the application protocol it could be run
over <xref target="QUIC"/> or <xref target="DTLS-CID"/>.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to Dave Täht, Magnus Westerlund, Christian Huitema, Gorry Fairhurst,
and Tom Herbert for hallway discussions and feedback at TSVWG that encouraged
the authors to consider the approach described in this document.  Thanks to
Ben Schwartz for suggesting PvD as an alternative discovery mechanism.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
JIysnDwpC2y6qNHrclXmmXg0eBKOglx8n1L7Q4wqcBNnwTlFBn2ByhhAgRD0
4x02oShbNme9PD8/PWv6y6NFRDkCm5OsJzZvq0+/O/6TvkrHeSbC0lCwPUDb
JHk/jF2LKeT1/p9lpUqCFOWBAfku2F4tvLohRjsDfJPWKFqWJVsbtynRlo5Q
8veXr/cPlDUD2GBM8TSnts2aXFOYSFcx/QOXBCIa5VOgf3SyYBRpLJzB75YM
r+8OT/V2Us+QBJxa6LWwxCtVMk3AESuL+ApB2tvrZdnP1+Xo44t/mdvL+fqz
+dnJ6LE9efn9zvHLJ28vjh5XP/9pcvnk+uLJybRkbQz0sdEkHSQ8Lejip1cn
9uBq9m7nyaTeer790JwePvnp4l+ebG2eD+2rszenmycft/5UvPt5sHsVa2rL
JN4jcj81SCFl4zf7jcSOIc8EJ2gXD57J1UiiwG5s1En7TedNCAim5LCNNScE
R4GpzVNP8r3Q6yyUgIsShbxIpHmNZ0EWfCrWRZU4/RUzDTfXtMRu++XHLlrL
zLIW/JE9jZ0oHWZ9rbfWwkZxKoF3prnYW+7KixqdToLIwdBvOxtar+K422vE
rfOC/bWzaUYmpAiHTl/rHg3NJEYitzSxhljTpbOKzuUsnCAuYryS/AoUqvEw
6fAykDMWBAMQQCM/wEmJSSfRBsvF6JtK+H2IW6XHgliSx0mGV8NZMeCVzQta
Mk6ti3zY7g0JyMdT7QId0VPomWBTzADQoEsdOVeucx6wYUFHhoVJeQEMWgKI
VcOOwLowLSzozZjTMEpnYzmrYNxqVpDgRwHsMGw6oHjbdJbl5UPOHYisW2x8
Ssly5zIuiIfm5KtC1xpQF+dBZ+hklUUuneI+KTMzaWwOWjx8EG8Rco11BF8B
vhPxWAZ/sFBRDCbnuVCcjqIBmFZwvC6H6QT9+QOnHLQETGY1izqn8/jK80QM
sbHmPehiXYtcBt4XZYePQJo9oYM0Gp/EFZRtcuXUU1S1fSpABdtmcmFQJEDV
cT15e36O2uIw3nJZiTFhZR0WT0QRnkVfvnaoTc1+XHPbbl+H7Bd60UXqpYp8
VYyzY8IPLHRfP8v9BgGEMYLY6+InFqToWiylTe+s21jOWzNDLLCQ5N7yAR/S
PiDXi6HZrHI2PoKCImJHIJhg928O3+yJEDhXmJ8ls75zxLoMUW/ewxz5aiNq
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

-->

</rfc>
