<?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-rfc2629 version  -->
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-pardue-quic-http-mcast-11" category="exp" tocInclude="true" sortRefs="true" symRefs="true" obsoletes="" updates="" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.2 -->
  <front>
    <title abbrev="HTTP over Mcast QUIC">Hypertext Transfer Protocol (HTTP) over multicast QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-pardue-quic-http-mcast-11"/>
    <author initials="L." surname="Pardue" fullname="Lucas Pardue">
      <organization/>
      <address>
        <email>lucaspardue.24.7@gmail.com</email>
      </address>
    </author>
    <author initials="R." surname="Bradbury" fullname="Richard Bradbury">
      <organization>BBC Research &amp; Development</organization>
      <address>
        <email>richard.bradbury@bbc.co.uk</email>
      </address>
    </author>
    <author initials="S." surname="Hurst" fullname="Sam Hurst">
      <organization>BBC Research &amp; Development</organization>
      <address>
        <email>sam.hurst@bbc.co.uk</email>
      </address>
    </author>
    <date/>
    <abstract>
      <t>This document specifies a profile of the QUIC protocol and the HTTP/3 mapping that facilitates the transfer of HTTP resources over multicast IP using the QUIC transport as its framing and packetisation layer. Compatibility with the QUIC protocol's syntax and semantics is maintained as far as practical and additional features are specified where this is not possible.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The means to bulk transfer resources over multicast IP <xref target="RFC1112" format="default"/> using HTTP semantics presents an opportunity to more efficiently deliver services at scale, while leveraging the wealth of existing HTTP-related standards, tools and applications. Audio-visual segmented media, in particular, would benefit from this mode of transmission.</t>
      <t>The carriage of HTTP over multicast IP may be satisfied using existing technologies, for example the Real-time Transport Protocol (RTP) <xref target="RFC3550" format="default"/>, File Delivery over Unidirectional Transport (FLUTE) <xref target="RFC6726" format="default"/>, and NACK-Oriented Reliable Multicast (NORM) <xref target="RFC5740" format="default"/>. However, such protocols typically require the translation or encapsulation of HTTP. This introduces concerns for providers of services, such as defining the translation, additional workload, complication of workflows, manageability issues, versioning issues, and so on.</t>
      <t>In contrast, this document describes a simpler and more direct expression of HTTP semantics over multicast IP. HTTP over multicast QUIC is a profile of the QUIC protocol <xref target="RFC9000" format="default"/> (<xref target="quic-profile" format="default"/>) and the HTTP/3 mapping <xref target="RFC9114" format="default"/> (<xref target="http-quic-profile" format="default"/>). This includes the repurposing of certain QUIC packet fields and changes to some protocol procedures (e.g. prohibition of the usage of certain frame types) which, in turn, change the behavioural expectations of endpoints. However, the profile purposely limits the scope of change in order to preserve maximum syntactic and semantic compatibility with conventional QUIC. For the reader's convenience, the differences between this specification and conventional QUIC are summarised in <xref target="appendix-differences-summary-tables" format="default"/>.</t>
      <t>This profile prohibits the transmission of QUIC packets from receiver to sender via multicast IP. The use of side-channel or out-of-band feedback mechanisms is not prohibited by this specification, but is out of scope and these are not considered further by the present document.</t>
      <t>Experience indicates that a generally available multicast deployment is difficult to achieve on the Internet notwithstanding the improvements that IPv6 <xref target="RFC8200" format="default"/> makes in this area. There is evidence that discretely referenced multicast "islands" can more pragmatically be deployed. Discovery of such islands by receivers, as they become available, is typically difficult, however. To address the problem, this document describes an HTTP-based discovery mechanism that uses HTTP Alternative Services <xref target="RFC7838" format="default"/> to advertise the existence of multicast QUIC sessions (<xref target="session-advert" format="default"/>). This provides the means for multicast-capable endpoints to learn about and make use of them in an opportunistic and user-imperceptible manner. This mechanism results in a common HTTP application layer for both the discovery and delivery of services across unicast and multicast networks. This provides support for users and devices accessing services over a heterogeneous network. This is a departure from conventional multicast discovery technologies such as SDP <xref target="RFC8866" format="default"/> and SAP <xref target="RFC2974" format="default"/>.</t>
      <t>The discovery mechanism also addresses some of the issues related to using QUIC over a unidirectional network association by replacing connection establishment aspects that depend on a bidirectional transport.</t>
      <t>The present document includes a number of optional features. It is anticipated that further specifications will define interoperability profiles suited to particular application domains.</t>
      <section anchor="notational-conventions" numbered="true" toc="default">
        <name>Notational Conventions</name>
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT",
"RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119" format="default"/> <xref target="RFC8174" format="default"/> when, and only when, they appear in all captials, as shown here.</t>
        <t>This document uses the Augmented BNF defined in <xref target="RFC5234" format="default"/> and updated by <xref target="RFC7405" format="default"/> along with the "#rule" extension defined in Section 7 of <xref target="RFC7230" format="default"/>. The rules below are defined in <xref target="RFC5234" format="default"/>, <xref target="RFC7230" format="default"/>, and <xref target="RFC7234" format="default"/>:</t>
        <ul spacing="normal">
          <li>quoted-string = &lt;quoted-string, see <xref target="RFC7230" format="default"/>, Section 3.2.6&gt;</li>
          <li>token         = &lt;token, see <xref target="RFC7230" format="default"/>, Section 3.2.6&gt;</li>
          <li>uri-host      = &lt;uri-host, see <xref target="RFC7230" format="default"/>, Section 2.7&gt;</li>
        </ul>
      </section>
      <section anchor="definitions" numbered="true" toc="default">
        <name>Definitions</name>
        <t>Definitions of terms that are used in this document:</t>
        <ul spacing="normal">
          <li>endpoint: A host capable of being a participant in a multicast QUIC session.</li>
          <li>multicast QUIC session: A logical unidirectional flow of metadata and data over multicast IP, framed according to this specification. The lifetime of a session is independent of any endpoint.</li>
          <li>participant: A sender or receiver that is taking part in a multicast QUIC session.</li>
          <li>sender: A participant sending multicast traffic according to this specification.</li>
          <li>receiver: A participant receiving multicast traffic according to this specification.</li>
          <li>session: See multicast QUIC session.</li>
          <li>session ID: The identifier for a multicast QUIC session.</li>
          <li>session parameter: Characteristic of a multicast QUIC session.</li>
        </ul>
      </section>
    </section>
    <section anchor="multicast-quic-sessions" numbered="true" toc="default">
      <name>Multicast QUIC Sessions</name>
      <t>A QUIC connection <xref target="RFC9000" format="default"/> carried over bidirectional unicast is defined as a conversation between two QUIC endpoints that multiplexes several logical streams within a single encryption context. This is a one-to-one relationship. Furthermore, QUIC connections achieve decoupling from the underlying network (IP and port) by means of a set of Connection IDs, with each endpoint generating these IDs and using them to identify the direction of flow. Use of a consistent connection identifier allows QUIC connections to survive changes to the network connectivity. The establishment of a QUIC connection relies upon an up-front, in-band exchange (and possible negotiation) of cryptographic and transport parameters (conveyed in QUIC handshake messages).</t>
      <t>The mapping of HTTP semantics over the QUIC transport protocol <xref target="RFC9114" format="default"/> facilitates the transfer of hypermedia over QUIC connections. The establishment of a HTTP/3 connection relies upon all the requirements stipulated for the transport, as well as communication of HTTP-specific settings (conveyed in HTTP/3 <tt>SETTINGS</tt> frames). Such parameters may be required or optional and may be used by either endpoint to control the characteristics of connection usage.</t>
      <t>This concept of a connection does not suit the carriage of HTTP/3 over unidirectional network associations such as multicast IP. In fact, there is no requirement for either endpoint (multicast sender or receiver) to be in existence in order for the other to start or join this one-sided conversation. The term "connection" is misleading in this context; therefore we introduce an alternative term "multicast QUIC session" or simply "session", which is defined as the logical entity describing the characteristics of the anticipated unidirectional flow of metadata and data. Such characteristics are expressed as "session parameters", described in <xref target="intro-session-params" format="default"/>.  Advertisement of multicast QUIC sessions, specified in <xref target="session-advert" format="default"/>, allows for the senders and receivers to discover a session and to form multicast IP network associations that permit traffic flow.</t>
      <section anchor="session-states" numbered="true" toc="default">
        <name>Session States</name>
        <t>The lifecycle of a multicast QUIC session is decoupled from the lifecycle of any particular endpoint. Multicast receivers or senders that take part in a session are called participants. The state of a session is influenced by the actions of participants. The loose coupling of participants means that they are unlikely to have a consistent shared view of the current state of a session. There is no requirement for a participant to know the session state and the present document does not define a method to explicitly determine it. The definitions of session states provided below are intended to assist higher-level operational treatment of sessions:</t>
        <ul spacing="normal">
          <li>Quiescent: the session has no participants and is ready to accept them.</li>
          <li>Half-established: the session has a participant.</li>
          <li>Fully-established: the session has a sender and at least one receiver participant.</li>
          <li>Finished: the session has ended, and there are no participants.</li>
        </ul>
        <t>Permitted states transitions are shown in <xref target="session-statechart" format="default"/> below.</t>
        <t>The transmission of QUIC packets is expected to occur only during the Half-Established and Fully-Established states.</t>
        <figure anchor="session-statechart">
          <name>Multicast QUIC session states</name>
          <artwork name="" type="" align="left" alt=""><![CDATA[
+-----------+         +------------------+        +-------------------+
|           |-------->|                  |------->|                   |
| Quiescent |         | Half-Established |        | Fully-Established |
|           |<--------|                  |<-------|                   |
+-----------+         +------------------+        +-------------------+
      |                        |
      |                        v
      |                   +----------+
      |                   |          |
      +------------------>| Finished |
                          |          |
                          +----------+
]]></artwork>
        </figure>
        <section anchor="session-establishment" numbered="true" toc="default">
          <name>Session Establishment</name>
          <t>A session begins in the Quiescent state. A typical session establishment sequence would see the transition from Quiescent to Half-Established when a sender joins the session. The transition from Half-Established to Fully-Established occurs when at least one receiver joins the session.</t>
          <t>It is equally valid for a receiver to join a session in the Quiescent state, triggering the transition to Half-Established. In this case, the transition to Fully-Established takes place only when a sender joins the session.</t>
        </section>
        <section anchor="session-termination" numbered="true" toc="default">
          <name>Session Termination</name>
          <t>Participants MAY leave a session at any time. A session enters the Finished state when all participants have left it. Senders MAY signal their intent to leave using explicit session tear-down (<xref target="http-quic-session-tear-down" format="default"/>). Receivers can detect that a sender has left via idle timeout (<xref target="intro-session-idle-timeout" format="default"/>) and take that as a signal to leave, or receivers may leave as part of session migration (described in the next section).</t>
          <t>In a typical case, a session that is in the Fully-Established state would be closed in two stages. In the first stage the sender sends explicit shutdown messages to the multicast group and subsequently stops transmitting packets. This causes the session to transition from Fully-Established to Half-Established. In the second stage, receivers that have received explicit shutdown messages leave the multicast group. Once all receivers have left the session it transitions from Half-Established to Finished.</t>
          <t>The transition from Quiescent to Finished could also occur in response to out-of-band actions, for example the availability of a session being withdrawn without any participants having made use of it.</t>
        </section>
        <section anchor="session-migration" numbered="true" toc="default">
          <name>Session Migration</name>
          <t>Endpoints MAY migrate between multicast QUIC sessions (for example, to make use of alternate session parameters that are preferred). Session migration requires participants to leave the current session and join the new session. These actions affect the state of the respective sessions as explained above.</t>
          <t>The discovery of multicast QUIC sessions is described in <xref target="session-advert" format="default"/>.</t>
        </section>
      </section>
      <section anchor="intro-session-params" numbered="true" toc="default">
        <name>Session Parameters</name>
        <t>The characteristics of multicast QUIC sessions are expressed as session parameters, which cover cryptographic and transport parameters, HTTP-specific settings and multicast-specific configuration.</t>
        <t>Session parameter exchange over IP multicast is difficult:</t>
        <ul spacing="normal">
          <li>In-band exchanges are one-way, and so the client does not have the means to send session parameters.</li>
          <li>The lifecycle of any multicast sender is independent of the multicast receiver. It is therefore unlikely that all receivers will have joined a session in time to receive parameters sent at the start of a multicast session.</li>
        </ul>
        <t>A range of strategies exists to mitigate these points. However, each has the possibility to add complexity to deployment and manageability, transmission overhead, or other such concerns. This document defines a solution that relies on the one-way announcement of session parameters in advance of session establishment. This is achieved using HTTP Alternative Services <xref target="RFC7838" format="default"/> and is explained in <xref target="session-advert" format="default"/>. Other advertisement solutions are not prohibited but are not explored in this document.</t>
        <t>Session parameters MUST NOT change during the lifetime of a session. This restriction also applies to HTTP-level settings (see <xref target="http-connection-settings" format="default"/>).</t>
      </section>
      <section anchor="intro-session-id" numbered="true" toc="default">
        <name>Session Identification</name>
        <t>This document defines an optional session identifier used to identify a session. This "Session ID" affords independence from multicast IP, creating the possibility for a session to span multiple multicast groups, or to migrate a session to a different multicast group. Assignment of Session ID is considered out of this document's scope.</t>
        <t>The Session ID is carried in the Destination Connection ID field of the QUIC packet (see <xref target="quic-connection-id" format="default"/>). Source Connection IDs are not used.</t>
        <t>The maximum size of a Session ID is 160 bits. The size of the Destination Connection ID field used to convey the Session ID SHALL be the smallest number of full bytes required to represent the full Session ID value advertised in the <tt>session-id</tt> session parameter (<xref target="param-session-id" format="default"/>). If no <tt>session-id</tt> parameter is advertised, then this session has a zero-length session ID, and the Destination Connection ID field SHALL be omitted from all QUIC packets related to the session.</t>
        <t>A multicast sender participating in a session with an advertised <tt>session-id</tt> session parameter MUST send QUIC packets with a matching Session ID. Conversely, a multicast sender participating in a session without an advertised <tt>session-id</tt> session parameter MUST NOT send QUIC packets with a non-zero-length Destination Connection ID field.</t>
        <t>A multicast receiver participating in a session with an advertised <tt>session-id</tt> session parameter MUST validate that the Session ID of received QUIC packets matches that advertised in the session parameters (<xref target="param-session-id" format="default"/>) before any HTTP-level processing is done. In the case of validation failure, the receiver SHOULD ignore the packet in order to protect itself from denial-of-service attacks.</t>
      </section>
      <section anchor="intro-session-security" numbered="true" toc="default">
        <name>Session Security</name>
        <t>The QUIC cryptographic handshake (<xref target="RFC9000" format="default"/> and <xref target="RFC9001" format="default"/>) sets out methods to achieve the goals of authenticated key exchange and QUIC packet protection between two endpoints forming a QUIC connection. The design facilitates low-latency connection; 1-RTT or 0-RTT. This specification replaces the in-band security handshake, achieving similar goals through the use of session parameters described in <xref target="intro-security-params" format="default"/>.</t>
        <t>Integrity and authenticity concerns are addressed in <xref target="security-integrity" format="default"/> and <xref target="security-authenticity" format="default"/> respectively. In order to protect themselves from attack vectors, endpoints SHOULD NOT participate in sessions for which they cannot establish reasonable confidence over the cipher suite or key in use for that session. Participants MAY leave any session that fails to successfully match anticipated security characteristics.</t>
      </section>
    </section>
    <section anchor="session-advert" numbered="true" toc="default">
      <name>Session Advertisement</name>
      <t>In this specification, connection negotiation is replaced with a session advertisement mechanism based on HTTP Alternative Services (Alt-Svc) <xref target="RFC7838" format="default"/>. This document specifies how the parameters of a multicast QUIC session are expressed as Alt-Svc parameters. The following sections provide a high-level view of these; further details are provided in <xref target="session-param-advert" format="default"/>, with examples provided in <xref target="appendix-session-advertisement" format="default"/>. QUIC connection parameters not defined as, or related to, Alt-Svc parameters are not used.</t>
      <t>The definition of a session (including the session ID and its parameters) is not the responsibility of any endpoint. Rather, endpoints SHOULD use session advertisements to determine if they are capable of participating in a given session. This document does not specify which party is responsible for defining and/or advertising multicast QUIC sessions.</t>
      <t>Endpoints SHOULD NOT become participants in sessions where the advertisement requirements set out in the present document are unfulfilled.</t>
      <t>The freshness of Alt-Svc multicast QUIC session advertisements is as described in section 2.2 of <xref target="RFC7838" format="default"/>.</t>
      <t>It is RECOMMENDED that session advertisements are carried over a secure transport (such as HTTPS) which can guarantee the authenticity and integrity of the Alt-Svc information. This addresses some of the concerns around the protection of session establishment described in <xref target="security-cons-disc" format="default"/>.</t>
      <ul empty="true">
        <li>
          <t><strong>Authors' Note:</strong> We invite review comments on mandating the use of a secure transport for advertising sessions.</t>
        </li>
      </ul>
      <t>Senders MAY also advertise the availability of alternative sessions by carrying Alt-Svc in a multicast QUIC session.</t>
      <section anchor="intro-security-params" numbered="true" toc="default">
        <name>Security Context</name>
        <t>This specification replaces the in-band security handshake. The session parameters "cipher suite", "key" and "iv" (described below) allow for the establishment of a security context. In order to protect themselves, endpoints SHOULD NOT participate in sessions for which they cannot establish reasonable confidence over the cipher suite, key, or IV in use for that session. Endpoints SHOULD leave any sessions which fail to successfully match anticipated security characteristics.</t>
        <section anchor="cipher-suite" numbered="true" toc="default">
          <name>Cipher Suite</name>
          <t>Cipher suite negotiation is replaced with a "cipher suite" session parameter, which is advertised as the Alt-Svc parameter <tt>cipher-suite</tt> (<xref target="param-cs" format="default"/>).</t>
          <t>The Alt-Svc "cipher-suite" parameter is OPTIONAL. If present, this parameter MUST contain only one value that corresponds to an entry in the TLS Cipher Suite Registry (see http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4). Session advertisements that omit this parameter imply that the session is operating with cipher suite 0x00,0x00 (NULL_WITH_NULL_NULL).</t>
        </section>
        <section anchor="key-exchange" numbered="true" toc="default">
          <name>Key Exchange</name>
          <t>Key exchange is replaced with a "key" session parameter, which is advertised as the Alt-Svc parameter <tt>key</tt> (<xref target="param-key" format="default"/>). The parameter carries a variable-length hex-encoded key for use with the session cipher suite.</t>
          <t>The Alt-Svc "key" parameter is OPTIONAL. Session advertisements that omit this parameter imply that the key may be available via an out-of-band method not described in this document.</t>
        </section>
        <section anchor="initialization-vector" numbered="true" toc="default">
          <name>Initialization Vector</name>
          <t>Initialization Vector (IV) exchange is replaced with an "iv" session parameter, which is advertised as the Alt-Svc parameter <tt>iv</tt> (<xref target="param-iv" format="default"/>). The parameter carries a variable-length hex-encoded IV for use with the session cipher suite and key.</t>
          <t>The Alt-Svc "iv" parameter is OPTIONAL. Session advertisements that omit this parameter imply that the IV may be available via an out-of-band method not described in this document.</t>
        </section>
      </section>
      <section anchor="session-identification" numbered="true" toc="default">
        <name>Session Identification</name>
        <t><xref target="RFC9000" format="default"/> specifies how the QUIC connection identifiers are used, in particular the independent selection of these identifiers by each endpoint for its peer. In a unidirectional multicast environment, there is no meaningful way for an endpoint to generate a connection identifier for its peer to use. This document defines a "session identifier" session parameter, which is advertised as the Alt-Svc parameter "session-id" (<xref target="param-session-id" format="default"/>). The requirements for the usage of session identifiers have already been described in <xref target="intro-session-id" format="default"/>.</t>
        <t>The Alt-Svc "session-id" parameter is optional. Session advertisements MAY contain at most one instance of a "session-id" parameter. Session advertisements that identify the same Any Source Multicast group {G} or Source Specific Multicast group {S,G} indicate that multiple sessions are multiplexed in the same multicast group and each such advertisement must carry a unique "session-id".</t>
      </section>
      <section anchor="intro-session-idle-timeout" numbered="true" toc="default">
        <name>Session Idle Timeout</name>
        <t>Conventional QUIC connections may be implicitly terminated following a period of idleness (lack of network activity). The optional QUIC TransportParameter <tt>max_idle_timeout</tt> provides a means for endpoints to specify the timeout period. This document defines a "session idle timeout" session parameter, which is advertised as the Alt-Svc parameter "session-idle-timeout" (<xref target="param-session-idle-timeout" format="default"/>). This session parameter mimics the behaviour of <tt>max_idle_timeout</tt>, providing a means for multicast QUIC sessions to define their own idle timeout periods.</t>
        <t>Session idle timeout may be prevented by keep-alive strategies <xref target="session-keep-alive" format="default"/>.</t>
        <t>The Alt-Svc "session-idle-timeout" parameter is optional. Session advertisements MAY contain zero or more instances of this parameter. If it is repeated, the first occurrence MUST be used and subsequent occurrences MUST be ignored. Session advertisements that omit the "session-idle-timeout" parameter, or set it to zero never time out.</t>
        <t>Receiving participants SHOULD leave multicast QUIC sessions when the session idle timeout period has elapsed (<xref target="quic-connection-shutdown" format="default"/>). Leaving participants MUST use the silent close method, in which no QUIC <tt>CONNECTION_CLOSE</tt> frame is sent.</t>
      </section>
      <section anchor="intro-peak-flow-rate" numbered="true" toc="default">
        <name>Session Peak Flow Rate</name>
        <t><xref target="RFC9000" format="default"/> specifies a credit-based stream- and connection-level flow control scheme which prevents a fast sender from overwhelming a slow receiver at the stream level, as well as an aggregate level of all streams. Window size connection parameters are exchanged on connection establishment using the required QUIC TransportParameters <tt>initial_max_data</tt>, <tt>initial_max_stream_data_bidi_local</tt>, <tt>initial_max_stream_data_bidi_remote</tt> and <tt>initial_max_stream_data_uni</tt>. In a unidirectional multicast environment, such a scheme is infeasible.</t>
        <t>This document defines a "peak flow rate" session parameter, expressed in units of bits per second, which is advertised as the Alt-Svc parameter "peak-flow-rate" (<xref target="param-flow-rate" format="default"/>). This completely replaces the transport parameters listed above, instead indicating the maximum bit rate of QUIC payloads transmitted on all multicast groups comprising the session. It applies at the aggregate level, and is not specific to any single stream.</t>
        <t>The Alt-Svc "peak-flow-rate" parameter is OPTIONAL. If the parameter is repeated the first occurrence MUST be used and subsequent occurrences MUST be ignored. Session advertisements that omit the parameter imply that the flow rate is unlimited.</t>
        <t>A multicast sender SHOULD NOT cause the advertised peak flow rate of a session to be exceeded. A receiver MAY leave any session where the advertised peak flow rate is exceeded.</t>
      </section>
      <section anchor="intro-resource-concurrency" numbered="true" toc="default">
        <name>Resource Concurrency</name>
        <t><xref target="RFC9000" format="default"/> considers concurrency in terms of the number of active incoming streams, which is varied by the receiving endpoint adjusting the maximum Stream ID. The initial value of maximum Stream ID is controlled by the relevant required QUIC TransportParameters <tt>initial_max_streams_bidi</tt> and <tt>initial_max_streams_uni</tt>. They are increased during the lifetime of a QUIC connection by the QUIC <tt>MAX_STREAMS</tt> frame. In a unidirectional multicast environment, there is no way for a receiver to specify an initial limit nor to increase it. Therefore in multicast QUIC, the maximum Stream ID (initial and always) is 2^62. This mechanism is not used to manage concurrency in multicast QUIC.</t>
        <t>Due to the profiling of maximum Stream ID, there is no role for the QUIC <tt>STREAMS_BLOCKED</tt> frame and it is prohibited. Participants MUST NOT send this frame type. Reception of this frame type MUST be handled as described in <xref target="prohibited-quic-frames" format="default"/>.</t>
        <t>This document specifies a "maximum concurrent resources" session parameter, which is advertised as the Alt-Svc parameter "max-concurrent-resources" (<xref target="param-max-concurrent-resources" format="default"/>). This parameter replaces <tt>initial_max_stream_id_bidi</tt> and <tt>initial_max_stream_id_uni</tt>. It advertises the maximum number of concurrent active resources generated by a sender in a given multicast QUIC session.</t>
        <t>The Alt-Svc "max-concurrent-resources" parameter is OPTIONAL. If the parameter is repeated the first occurrence MUST be used and subsequent occurrences MUST be ignored. Session advertisements that omit the parameter imply that the maximum concurrency is unlimited.</t>
        <t>A multicast sender participating in a session MUST NOT cause the advertised "max-concurrent-resources" to be exceeded. A receiver MAY leave any session where the advertised limit is exceeded, in order to protect itself from denial-of-service attacks.</t>
      </section>
      <section anchor="intro-extensions" numbered="true" toc="default">
        <name>Additional TransportParameter Considerations</name>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> This section will consider TransportParameters that have not already been addressed, as required.</t>
          </li>
        </ul>
        <t>Section 19.21 of <xref target="RFC9000" format="default"/> defines a mechanism for endpoints to show willingness to receive one or more extension frame types. It is not possible for multicast QUIC receivers to signal this information to senders.</t>
        <t>This document defines an "extensions" session parameter, which is advertised as the Alt-Svc parameter "extensions" <xref target="param-extensions" format="default"/> and replaces the transport parameter exchange detailed above. The Alt-Svc "extensions" parameter is optional. Session advertisements MAY contain zero or more instances of this parameter. The parameter lists transport parameter values present in the QUIC Transport Parameter Registry as specified in Section 22.3 of <xref target="RFC9000" format="default"/>.</t>
        <t>Only transport parameters which expressly reference Multicast QUIC are considered valid extension parameters.</t>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> The authors welcome suggestions for how to map these extension types more cleanly into this document.</t>
          </li>
        </ul>
        <t>Participants SHOULD NOT join sessions advertising extensions that they do not support, as QUIC frames are not self-describing.</t>
      </section>
      <section anchor="intro-digest-algorithm" numbered="true" toc="default">
        <name>Digest Algorithm</name>
        <t>A method to provide content integrity is described in <xref target="security-integrity" format="default"/>. This specifies the means to convey a value computed by a particular digest algorithm. The identity of the selected algorithm is also indicated. Valid digest algorithms are collected in the IANA HTTP Digest Algorithm Values registry (http://www.iana.org/assignments/http-dig-alg/http-dig-alg.xhtml#http-dig-alg-1).</t>
        <t>This document specifies a "digest algorithm" session parameter, which is advertised as the Alt-Svc parameter "digest-algorithm" (<xref target="param-digest-algorithm" format="default"/>).</t>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> <xref target="security-integrity" format="default"/> contains an author's note on the potential for content integrity to become mandatory. This section will be updated in line with the outcome of that decision.</t>
          </li>
        </ul>
        <t>The Alt-Svc "digest-algorithm" parameter is OPTIONAL. Repetition of the "digest algorithm" parameter in a single advertisement describes an algorithm set that MAY be used across the session. Session advertisements that omit the Alt-Svc parameter <tt>digest-algorithm</tt> imply that either:</t>
        <ul spacing="normal">
          <li>the session does not use the content integrity mechanism, or</li>
          <li>the algorithm set is unrestricted, i.e. a sender may vary the algorithm as it so chooses. This may lead to undesirable results if receivers do not support a chosen algorithm.</li>
        </ul>
        <t>Advertising the algorithm set for a session gives receivers the opportunity to selectively join sessions where the algorithms are known to be supported. This may help to mitigate latency issues in the receiver resulting from joining a session only to discover some of its parameters are not supported.</t>
        <t>A multicast sender participating in a session MUST NOT use algorithms outside the signalled digest algorithm set. A receiver MAY leave any session where an algorithm outside the digest algorithm set is used.</t>
      </section>
      <section anchor="intro-signature-algorithm" numbered="true" toc="default">
        <name>Signature Algorithm</name>
        <t>A method to provide content authenticity is described in <xref target="security-authenticity" format="default"/>. This specifies the means to convey a value computed by a particular signature algorithm. The identity of the selected algorithm is also indicated. Valid signature algorithms are collected in the IANA Signature Algorithms registry (http://www.iana.org/assignments/signature-algorithms).</t>
        <t>This document specifies a "signature algorithm" session parameter, which is advertised as the Alt-Svc parameter <tt>signature-algorithm</tt> (<xref target="param-signature-algorithm" format="default"/>).</t>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> <xref target="security-authenticity" format="default"/> contains an author's note on the potential for content authenticity to become mandatory. This section will be updated in line with the outcome of that decision.</t>
          </li>
        </ul>
        <t>The Alt-Svc "signature-algorithm" parameter is OPTIONAL. Repetition of the "signature algorithm" parameter in a single advertisement describes an algorithm set that MAY be used across the session. Session advertisements that omit the Alt-Svc parameter <tt>signature-algorithm</tt> imply that either:</t>
        <ul spacing="normal">
          <li>the session does not use the content authenticity mechanism, or</li>
          <li>the algorithm set is unrestricted i.e. a sender may vary the algorithm as it so chooses. This may lead to undesirable results if receivers do not support a chosen algorithm.</li>
        </ul>
        <t>Advertising the algorithm set for a session gives receivers the opportunity to selectively join sessions where the algorithms are known to be supported. This may help to mitigate latency issues in the receiver resulting from joining a session only to discover some of its parameters are not supported.</t>
        <t>A multicast sender participating in a session MUST NOT use algorithms outside the signalled signature algorithm set. A receiver MAY leave any session where an algorithm outside the signature algorithm set is used.</t>
      </section>
    </section>
    <section anchor="quic-profile" numbered="true" toc="default">
      <name>QUIC Profile</name>
      <t>The profile of <xref target="RFC9000" format="default"/> is presented in this section. In order to preserve compatibility with conventional QUIC, the specification works with a limited scope of change. However, the nature of unidirectional multicast communications means that some protocol procedures or behaviours need to be modified.</t>
      <t>Section 5.3 of <xref target="RFC9000" format="default"/> defines a set of required actions that a QUIC server and QUIC client must be able to perform. Due to the limitations of this profile, all of the requirements in Section 5.3 of <xref target="RFC9000" format="default"/> are removed except for:</t>
      <ul spacing="normal">
        <li>Configuring the minimum and total number of permitted streams of each type is described in <xref target="intro-resource-concurrency" format="default"/>.</li>
        <li>Multicast QUIC senders may still send <tt>PING</tt> frames to stop a session from expiring as described in <xref target="session-keep-alive" format="default"/>.</li>
      </ul>
      <section anchor="packet-size" numbered="true" toc="default">
        <name>Packet Size</name>
        <t>The means for determining an appropriate size for QUIC packets are described in Section 14 of <xref target="RFC9000" format="default"/>. Implementations of this specification SHOULD bear in mind that the Path Maximum Transmission Unit (PMTU) may be affected by multicast IP technologies such as Automatic Multicast Tunneling (AMT) <xref target="RFC7450" format="default"/>. Additionally, consideration should be given toward the applicability of maximum transmission unit discovery methods (such as PLPMTUD <xref target="RFC4821" format="default"/> and PMTUD <xref target="RFC1191" format="default"/>) to multicast IP.</t>
      </section>
      <section anchor="quic-packet-format" numbered="true" toc="default">
        <name>Packet Format</name>
        <t>Endpoints implementing this specification MUST only send QUIC packets with the short header form. As short header packets do not include a length, senders MUST NOT attempt to coalesce any QUIC packets in the same UDP datagram. Therefore, all UDP datagrams sent by senders conforming to this profile contain exactly one QUIC packet.</t>
        <section anchor="packet-numbers" numbered="true" toc="default">
          <name>Packet Numbers</name>
          <t>All packets for this profile SHALL be numbered in the application data packet number space. The initial and handshake packet number spaces are not used by this profile, as the handshake is replaced by an out-of-band mechanism (see <xref target="intro-session-security" format="default"/>).</t>
          <t>The encoding of packet numbers in QUIC packets is described in Section 17.1 of <xref target="RFC9000" format="default"/>. Senders must always use the same number of bytes to represent the packet number for all packets sent to a session. Because a receiver may join a session after the sender has already sent several packets, it MUST NOT assume that the first packet number will be 0.</t>
        </section>
        <section anchor="spin-bit" numbered="true" toc="default">
          <name>Spin Bit</name>
          <t><xref target="RFC9000" format="default"/> specifies a bit in the 1-RTT packet header as the latency spin bit that may be used to measure network round trip latency between a client and a server. This mechanism is not usable in a unidirectional multicast packet flow. Senders SHALL set the spin bit to zero in all packets. Receivers SHOULD ignore the spin bit.</t>
          <ul empty="true">
            <li>
              <t><strong>Authors' Note:</strong> The authors welcome suggestions for the use of the spin bit in a multicast context.</t>
            </li>
          </ul>
        </section>
      </section>
      <section anchor="quic-connection-id" numbered="true" toc="default">
        <name>Connection Identifier</name>
        <t>The Destination Connection ID field MUST be non-zero-length in every QUIC packet if the session was advertised with a <tt>session-id</tt> session parameter (<xref target="param-session-id" format="default"/>). If the multicast QUIC session advertisement does not carry a "session identifier" session parameter, then the Destination Connection ID MUST be zero-length in any QUIC packet for that session. In the case where multiple sessions are multiplexed on the same 5-tuple network association, the Destination Connection ID field MUST be non-zero-length in every QUIC packet and must be distinct for each session.</t>
      </section>
      <section anchor="quic-stream-id" numbered="true" toc="default">
        <name>Stream Identifier</name>
        <t>The maximum Stream ID of a multicast QUIC session is 2^62, as explained in <xref target="intro-resource-concurrency" format="default"/>. With the exception of the first client-initiated request Stream ID, which is reserved as described in <xref target="server-push" format="default"/>, all Stream ID values SHALL be of the server-initiated unidirectional stream type.</t>
      </section>
      <section anchor="flow-control" numbered="true" toc="default">
        <name>Flow Control</name>
        <t>Conventional QUIC provides stream- and connection-level flow control, and endpoints manage this by sending QUIC <tt>MAX_DATA</tt> or <tt>MAX_STREAM_DATA</tt> frames as required. When a sender is blocked from sending flow-controlled frames, it sends an informational QUIC <tt>DATA_BLOCKED</tt> or <tt>STREAM_DATA_BLOCKED</tt> frame.</t>
        <t>In a unidirectional environment, the sender never has a receive window and the receiver cannot send in-band updates. Therefore, the management of flow-control windows and transmission of blockage information is not supported by this profile. The QUIC <tt>MAX_DATA</tt>, <tt>MAX_STREAM_DATA</tt>, <tt>DATA_BLOCKED</tt> and <tt>STREAM_DATA_BLOCKED</tt> frames are prohibited by this profile. Participants MUST NOT send these frame types. Reception of these frame types MUST be handled as described in <xref target="prohibited-quic-frames" format="default"/>.</t>
      </section>
      <section anchor="stream-termination" numbered="true" toc="default">
        <name>Stream Termination</name>
        <t>A sender MAY prematurely terminate the transmission on any unreserved QUIC Stream ID by setting the <tt>FIN</tt> bit of a QUIC <tt>STREAM</tt> frame, or by sending a QUIC <tt>RESET_STREAM</tt> frame (as specified in <xref target="RFC9000" format="default"/> and <xref target="RFC9114" format="default"/>).</t>
        <t>Receiving participants MUST NOT make any attempt to send QUIC <tt>RESET_STREAM</tt> frames to the multicast group.</t>
      </section>
      <section anchor="quic-connection-shutdown" numbered="true" toc="default">
        <name>Connection Shutdown</name>
        <t>Explicit shutdown of a multicast QUIC session using QUIC methods is not supported by this profile.</t>
        <t>The QUIC <tt>CONNECTION_CLOSE</tt> frames and the Stateless Reset packet are prohibited. Participants MUST NOT send these and reception MUST be handled as described in <xref target="prohibited-quic-frames" format="default"/>.</t>
        <t>Explicit session tear-down using HTTP semantics is allowed, as described in <xref target="http-quic-session-tear-down" format="default"/>.</t>
        <t>Implicit shutdown by means of silent close is also supported, as described in <xref target="intro-session-idle-timeout" format="default"/>.</t>
      </section>
      <section anchor="connection-migration" numbered="true" toc="default">
        <name>Connection Migration</name>
        <t><xref target="RFC9000" format="default"/> has a connection migration feature that allows a connection to survive changes to endpoint addresses. This profile does not currently support connection migration, and as such the QUIC <tt>NEW_CONNECTION_ID</tt> and <tt>RETIRE_CONNECTION_ID</tt> frames are prohibited. Similarly, the QUIC <tt>PATH_CHALLENGE</tt> and <tt>PATH_RESPONSE</tt> frames are also prohibited, but additionally because they require bidirectional capability that this profile does not provide.</t>
        <t>Endpoints participating in a session conforming to this profile MUST only use a single session ID for the duration of the session, and as such there is no mapping for the <tt>active_connection_id_limit</tt> transport parameter specified in section 5.1.1 of <xref target="RFC9000" format="default"/> in this profile.</t>
        <ul empty="true">
          <li>
            <t><strong>Author's Note</strong>: Seamless migration from one multicast QUIC session to another is described in Section 2.1.3.</t>
          </li>
        </ul>
      </section>
      <section anchor="ecn" numbered="true" toc="default">
        <name>Explicit Congestion Notification</name>
        <t><xref target="RFC9000" format="default"/> specifies that clients may use Explicit Congestion Notification (ECN) <xref target="RFC3168" format="default"/>. ECN allows receivers to inform senders of impending congestion before packets are dropped, and the sender may then reduce its transmission rate. As ECN requires bidirectional communication for the receiver to inform the sender of the congestion, the use of ECN for this profile is prohibited.</t>
        <ul empty="true">
          <li>
            <t><strong>Author's Note</strong>: It is the responsibility of a receiver to determine whether network conditions permit the uncongested reception of a given session based on the advertised <tt>peak-flow-rate</tt> parameter.</t>
          </li>
        </ul>
      </section>
      <section anchor="session-keep-alive" numbered="true" toc="default">
        <name>Session Keep-alive</name>
        <t>The flow of traffic in a multicast QUIC session is driven by a sender. There may be periods where the sender has no application data to send for a period longer than the session idle timeout. This profile repurposes the QUIC <tt>PING</tt> frame to act as a unidirectional keep-alive message that may be sent in order to inform receivers that the session should remain in the Fully-established state. <xref target="RFC9000" format="default"/> contains guidance on the sending frequency of QUIC <tt>PING</tt> frames.</t>
        <t>Senders MAY send a QUIC <tt>PING</tt> frame at any time in order to inform receivers that the session traffic flow has not fallen idle. This frame MUST NOT be acknowledged. Indeed, QUIC <tt>ACK</tt> frames are prohibited by this profile (<xref target="loss-detection" format="default"/>).</t>
        <t>Receiving participants MUST NOT make any attempt to send QUIC <tt>PING</tt> frames.</t>
      </section>
      <section anchor="loss-detection" numbered="true" toc="default">
        <name>Loss Detection and Recovery</name>
        <t>Receivers implementing this profile MUST NOT make any attempt to acknowledge the reception of QUIC packets. The QUIC <tt>ACK</tt> frame is prohibited for both senders and receivers. Reception of this frame MUST be handled as described in <xref target="prohibited-quic-frames" format="default"/>.</t>
        <t><xref target="loss-recovery" format="default"/> specifies alternative strategies for loss recovery.</t>
      </section>
      <section anchor="prohibited-quic-frames" numbered="true" toc="default">
        <name>Prohibited QUIC Frames and Packets</name>
        <t>The following QUIC packets MUST NOT be transmitted by participants: Any packets with a long header (Initial, 0-RTT Protected, Handshake, Retry), Version Negotiation, Stateless Reset.</t>
        <t>The following QUIC frames MUST NOT be transmitted by participants: <tt>ACK</tt>, <tt>CONNECTION_CLOSE</tt>, <tt>CRYPTO</tt>, <tt>DATA_BLOCKED</tt>, <tt>HANDSHAKE_DONE</tt>, <tt>MAX_DATA</tt>, <tt>MAX_STREAM_DATA</tt>, <tt>MAX_STREAMS</tt>, <tt>NEW_CONNECTION_ID</tt>, <tt>NEW_TOKEN</tt>, <tt>PATH_CHALLENGE</tt>, <tt>PATH_RESPONSE</tt>, <tt>RETIRE_CONNECTION_ID</tt>, <tt>STOP_SENDING</tt>, <tt>STREAM_DATA_BLOCKED</tt>, <tt>STREAMS_BLOCKED</tt>.</t>
        <t>In addition, any QUIC extension frames not advertised in the session advertisement <xref target="intro-extensions" format="default"/> MUST NOT be transmitted by participants.</t>
        <t>The following QUIC frames MUST NOT be transmitted by receivers: <tt>PING</tt>, <tt>RESET_STREAM</tt>.</t>
        <t>Reception of a prohibited or non-advertised QUIC frame or packet is a protocol error. Receivers MUST ignore all prohibited QUIC frames and packets.</t>
      </section>
    </section>
    <section anchor="http-quic-profile" numbered="true" toc="default">
      <name>HTTP/3 Profile</name>
      <t>HTTP over multicast QUIC depends on HTTP server push, as described in Section 4.6 of <xref target="RFC9114" format="default"/>. <xref target="server-push" format="default"/> below applies an additional constraint on the use of server push. A multicast sender participating in a session pushes resources as a series of QUIC <tt>STREAM</tt> frames carrying HTTP/3 <tt>PUSH_PROMISE</tt>, <tt>HEADERS</tt> and <tt>DATA</tt> frames. Examples of this are provided in <xref target="appendix-resource-transfer" format="default"/>. Senders MUST comply with the requirements of the session parameters, as described earlier in <xref target="session-advert" format="default"/>.</t>
      <t>The profile of HTTP/3 specified in this section places additional constraints on the use of metadata compression (<xref target="metadata-compression" format="default"/>).</t>
      <section anchor="http-connection-settings" numbered="true" toc="default">
        <name>HTTP Connection Settings</name>
        <t>The HTTP/3 <tt>SETTINGS</tt> frame is prohibited by this profile. Participants MUST NOT make any attempt to send this frame type. Reception of this frame MUST be handled as described in <xref target="prohibited-hq-frames" format="default"/>.</t>
      </section>
      <section anchor="server-push" numbered="true" toc="default">
        <name>Server Push</name>
        <t>Server push is, by default, disabled for HTTP/3 connections. A conventional HTTP/3 client enables and manages server push by controlling the maximum Push ID (<xref target="RFC9114" format="default"/>, Section 7.2.7), achieved by sending the HTTP/3 <tt>MAX_PUSH_ID</tt> frame.</t>
        <t>This profile mandates the use of server push, and specifies no means to disable it. The maximum Push ID for multicast QUIC sessions (initial and always) is 2^62. Values of Push ID SHALL be allocated in accordance with <xref target="RFC9114" format="default"/>.</t>
        <t>Server push concurrency in multicast QUIC is described in <xref target="intro-resource-concurrency" format="default"/>. There is no role for the HTTP/3 <tt>MAX_PUSH_ID</tt> frame and it is prohibited. Participants MUST NOT send this frame type. Reception of this frame type MUST be handled as described in <xref target="prohibited-hq-frames" format="default"/>.</t>
        <t>For this profile, the Stream Type for any new server-initiated unidirectional stream MUST be Server Push (<tt>0x01</tt>).</t>
        <t>The HTTP/3 <tt>CANCEL_PUSH</tt> frame MAY be used by sending participants to abort sending a response for the identified server push. Usage of this frame SHALL follow the guidance for servers in <xref target="RFC9114" format="default"/>.</t>
        <t>Receiving participants MUST NOT make any attempt to send HTTP/3 <tt>CANCEL_PUSH</tt> frames to the multicast group.</t>
        <t>Receiving participants SHOULD ignore all frames on server-initiated unidirectional streams for which the packet containing the Push ID has not been received. Receiving participants SHOULD ignore all frames on server-initiated unidirectional streams carrying a Push ID that was not previously promised to the receiver.</t>
        <t>Conventionally, pushed responses are associated with an explicit request from a client. This is not possible when using a unidirectional transport such as multicast IP. This profile reserves the first client-initiated, bidirectional QUIC stream. HTTP/3 <tt>PUSH_PROMISE</tt> frames MUST be sent on this reserved Stream ID.</t>
      </section>
      <section anchor="metadata-compression" numbered="true" toc="default">
        <name>Metadata Compression</name>
        <t>The compression of HTTP header fields is considered in QPACK <xref target="RFC9204" format="default"/>, which describes two methods for the compression of HTTP header fields: indexing (via static or dynamic tables) and Huffman encoding.</t>
        <t>A multicast QUIC session, as described in the present document, does not provide the assurances (receiver participation, transport reliability) required to sufficiently maintain the dynamic decoding context. Therefore, this document requires that endpoints SHALL NOT use dynamic table indexing. It is RECOMMENDED that endpoints use static table indexing and/or Huffman encoding in order to benefit from the remaining compression methods available.</t>
      </section>
      <section anchor="http-quic-session-tear-down" numbered="true" toc="default">
        <name>Session Tear-down</name>
        <t>A multicast QUIC session MAY be explicitly torn down by means of the <tt>Connection: close</tt> HTTP header described in section 6.6 of <xref target="RFC7230" format="default"/>. A sender intending to leave the session SHOULD include the <tt>Connection: close</tt> header in its response metadata. A sender SHOULD transmit all outstanding frames related to remaining request/response exchanges before ending transmission to the multicast group. A receiver SHOULD continue to receive and process frames until all outstanding request/response exchanges are complete.</t>
        <t>The HTTP/3 <tt>GOAWAY</tt> frame is prohibited. Participants MUST NOT send this and reception MUST be handled as described in <xref target="prohibited-hq-frames" format="default"/>.</t>
      </section>
      <section anchor="http-quic-packet-loss" numbered="true" toc="default">
        <name>Effects of Packet Loss</name>
        <t>Since multicast QUIC is an inherently unreliable delivery mechanism, portions of HTTP messages sent by the sender may not be received by the receiver. Conventional HTTP/3 frames assume reliable, in-order delivery by the underlying QUIC stream. HTTP/3 frames do not therefore carry any information indicating their position within the stream, because this information is instead carried in the QUIC <tt>STREAM</tt> frame header.</t>
        <t>In multicast QUIC, packet loss leaves gaps in the flow of a stream, and therefore gaps in the HTTP/3 frame(s) that are carried on that stream.</t>
        <ol spacing="normal" type="1"><li>Loss of an HTTP/3 <tt>PUSH_PROMISE</tt> frame renders the reception of an entire stream impossible, since the receiver ignores the new push stream that has not been promised as described in <xref target="server-push" format="default"/>.</li>
          <li>Loss of a QUIC packet comprising all or part of an HTTP/3 <tt>HEADERS</tt> frame will likely prevent the QPACK decoder from successfully parsing the received metadata, leaving the receiver unable to make use of the affected HTTP representation.</li>
          <li>Loss of a QUIC packet containing an HTTP/3 <tt>DATA</tt> frame header leaves a receiver unsure where to look for the start of the next HTTP/3 frame on the same stream. In the unlikely event that the receiver manages to resynchronise to the start of a subsequent HTTP/3 <tt>DATA</tt> frame, the position of the payload in the HTTP representation data is unknown because it is not explicitly signalled in the <tt>DATA</tt> frame header. The Offset field in the QUIC <tt>STREAM</tt> header describes the offset within the stream, but it is impossible for the receiver to know the size of any <tt>DATA</tt> frame headers that were lost.</li>
          <li>Loss of QUIC packets that only contain part of an HTTP/3 <tt>DATA</tt> frame Data field (i.e. beyond the frame header) can be recovered using the unicast repair mechanism described in <xref target="unicast-repair" format="default"/>.</li>
        </ol>
        <t><xref target="H3-DATA-OFFSET" format="default"/> describes the <tt>DATA_WITH_OFFSET</tt> HTTP/3 extension frame type, which can be used to solve the third problem described above. Multicast QUIC sessions that make use of the <tt>DATA_WITH_OFFSET</tt> extension frame MUST advertise the session with the appropriate non-compatible experiment identifier "data-offset" in the ALPN string, as specified in <xref target="draft-version-id" format="default"/>.</t>
      </section>
      <section anchor="http3-extension-frames" numbered="true" toc="default">
        <name>HTTP/3 Extension frames</name>
        <t>Except where explicitly allowed by this specification (e.g. in <xref target="http-quic-packet-loss" format="default"/> above), HTTP/3 extension frames (e.g. <tt>ALTSVC</tt>) are prohibited by this profile. Participants MUST NOT make any attempt to send prohibited extension frame types. Reception of these MUST be handled as described in <xref target="prohibited-hq-frames" format="default"/>.</t>
      </section>
      <section anchor="prohibited-hq-frames" numbered="true" toc="default">
        <name>Prohibited HTTP/3 Frames</name>
        <t>The following HTTP/3 frames MUST NOT be transmitted by participants: <tt>GOAWAY</tt>, <tt>MAX_PUSH_ID</tt>, <tt>SETTINGS</tt>.</t>
        <t>In addition, all HTTP/3 extension frame types MUST NOT be transmitted by participants.</t>
        <t>The following HTTP/3 frames MUST NOT be transmitted by receivers: <tt>CANCEL_PUSH</tt>.</t>
        <t>Reception of a prohibited HTTP/3 frame is a protocol error. Receivers MUST ignore prohibited HTTP/3 frames.</t>
      </section>
    </section>
    <section anchor="app-layer-security" numbered="true" toc="default">
      <name>Application-Layer Security</name>
      <t>As already described in <xref target="intro-security-params" format="default"/>, the implicit cipher suite used by a multicast QUIC session makes very limited provision for security in the transport and session layers. This section profiles the use of some additional features to provide equivalent functionality at the application-layer.</t>
      <section anchor="security-integrity" numbered="true" toc="default">
        <name>Content Integrity</name>
        <t>In many applications, it is important to ensure that an HTTP representation has been received intact (i.e. has not suffered from transmission loss or random bit errors) before passing the received object on to the receiving application. A mechanism is therefore specified here to provide end-to-end content integrity protection for HTTP representations in transit. The use of this content integrity mechanism is RECOMMENDED.</t>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> We invite review comments on mandating the use of this content integrity mechanism.</t>
          </li>
        </ul>
        <t><xref target="RFC3230" format="default"/> specifies an instance digest HTTP header called <tt>Digest</tt>. A sender MAY include this header in the HTTP/3 <tt>HEADERS</tt> frame of any representation it transmits and a receiver MAY use this header to validate the integrity of the received representation once it has been reassembled. Where this validation fails, the receiver SHOULD discard the representation without processing it further.</t>
        <t>Note that the digest value protects a whole HTTP instance (i.e. the representation of a resource at the point of transmission as opposed to the body of a particular HTTP message). In cases where partial representations are fragmented over one or more HTTP response messages, the digest value is computed over the complete representation prior to fragmentation into partial responses.</t>
        <t>Any of the algorithms specified in the IANA registry of digest algorithms (http://www.iana.org/assignments/http-dig-alg/http-dig-alg.xhtml#http-dig-alg-1) MAY be used in conjunction with the <tt>Digest</tt> header. There is no requirement for participants to support the full set of algorithms.</t>
      </section>
      <section anchor="security-authenticity" numbered="true" toc="default">
        <name>Content Authenticity</name>
        <t>In some applications, it is important for a receiver to reassure itself that an HTTP representation has been received from an authentic source. It is also sometimes useful for a receiver to know that the information has not been tampered with in transit by a malicious intermediate actor. A mechanism is therefore specified here to prove the authenticity of HTTP messages in transit. The use of this content authenticity mechanism is RECOMMENDED for senders implementing this specification.</t>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> We invite review comments on mandating the use of this content authenticity mechanism.</t>
          </li>
        </ul>
        <t><xref target="I-D.cavage-http-signatures" format="default"/> specifies a means of securely signing metadata associated with any HTTP message. The resulting digital signature is conveyed in the <tt>Signature</tt> header of the message itself. The <tt>Signature</tt> header also conveys a list of HTTP header fields over which the signature was computed. A receiver MAY verify the <tt>Signature</tt> header in order to validate the authenticity of received metadata. Where this validation fails, the receiver SHOULD discard or ignore any related metadata and/or data without processing it further.</t>
        <t>Note that the signature proves the authenticity of the metadata in a single HTTP message. A <tt>Signature</tt> header MAY be included separately in the HTTP/3 <tt>PUSH_PROMISE</tt> frame (protecting the request metadata) and in the final (or only) HTTP/3 <tt>HEADERS</tt> frame relating to a particular resource (protecting the response metadata). In order to provide an additional level of protection, however, it is RECOMMENDED that the signature be computed over the combined request metadata (from the HTTP/3 <tt>PUSH_PROMISE</tt> frame) and the corresponding response metadata (from the HTTP/3 <tt>HEADERS</tt> frames) of the same resource. This binds the request metadata and response metadata together, providing the receiver with additional reassurance of authenticity. In this latter case, the combined digital signature SHALL be conveyed in the final (or only) HTTP/3 <tt>HEADERS</tt> frame.</t>
        <t>In applications where the detection of replay attacks is a requirement, it is RECOMMENDED that the <tt>Date</tt> header be included in the scope of the signature. It is RECOMMENDED that receivers use the value of the <tt>Date</tt> header for replay detection using appropriate strategies (e.g. checking for freshness). The definition of such strategies is beyond the scope of this document.</t>
        <t>In applications where the authenticity and integrity of the transmission are both important, it is RECOMMENDED that the <tt>Digest</tt> header specified in <xref target="security-integrity" format="default"/> above is included in the scope of the signature. By signing the instance digest, the authenticity and integrity of the HTTP message body are also assured in addition to that of the metadata.</t>
        <t>Any of the algorithms specified in the IANA registry of signature algorithms (http://www.iana.org/assignments/signature-algorithms) MAY be used in conjunction with the <tt>Signature</tt> header. There is no requirement for participants to support the full set of algorithms.</t>
      </section>
      <section anchor="security-confidentiality" numbered="true" toc="default">
        <name>Content Confidentiality</name>
        <t>In applications where there is a requirement for the content itself to remain confidential, appropriate steps SHOULD be taken to protect the application payload, for example by encrypting it. This document does not preclude the use of application-level encryption, but does not specify a mechanism for the distribution of content decryption keys.</t>
      </section>
    </section>
    <section anchor="loss-recovery" numbered="true" toc="default">
      <name>Loss Recovery</name>
      <t>Because the acknowledgement of received packets to multicast groups is prohibited by this specification (<xref target="loss-detection" format="default"/>) the detection of discarded or corrupted packets is the sole responsibility of the receiver, and such losses must be recovered by means other than the retransmission mechanism specified in <xref target="RFC9000" format="default"/> and <xref target="RFC9002" format="default"/>.</t>
      <section anchor="forward-error-correction" numbered="true" toc="default">
        <name>Forward Error Correction</name>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> A simple parity-based Forward Error Correction scheme was removed from the experimental QUIC wire protocol specification in version Q032.</t>
          </li>
        </ul>
        <t>A sender MAY make use of a suitable Forward Error Correction scheme to allow a receiver to reconstruct lost packets from those that have been successfully received.</t>
      </section>
      <section anchor="unicast-repair" numbered="true" toc="default">
        <name>Unicast Repair</name>
        <t>In the case where a lost QUIC packet cannot be recovered using Forward Error Correction, either because the number of packets lost exceeds the scheme's threshold for reconstruction, or because FEC is not in use on the multicast QUIC session, a receiver MAY instead recover the missing payload data using conventional unicast HTTP requests to an origin server.</t>
        <ul spacing="normal">
          <li>The total size of the resource is indicated in the <tt>content-length</tt> response header carried in the HTTP/3 <tt>HEADERS</tt> frame.</li>
          <li>The location of the missing data can be determined by examining the Offset field in the QUIC <tt>STREAM</tt> frame headers of successfully received QUIC packets.</li>
        </ul>
        <t>Using this information, a receiver MAY compose an efficient HTTP range request <xref target="RFC7233" format="default"/> to the origin server indicated in the URL. Several disjoint ranges MAY be combined into a single HTTP request. A receiver MAY direct its request to an alternative server using Alt-Svc information received on the multicast QUIC session, or else received as part of a previous unicast HTTP response according to the rules in <xref target="RFC7838" format="default"/>.</t>
      </section>
    </section>
    <section anchor="partial-content" numbered="true" toc="default">
      <name>Transmission of Partial Content</name>
      <t>Under certain circumstances, a sender may not be in full possession of a resource body when transmission begins, or may not be able to guarantee that a transmission will complete. In such cases, the sender MAY employ the syntax of an HTTP range request <xref target="RFC7233" format="default"/> to indicate partial content, as specified below. All receivers SHALL implement support for such HTTP range requests.</t>
      <t>If partial content is to be transmitted:</t>
      <ul spacing="normal">
        <li>The <tt>range</tt> header (Section 3.1 of <xref target="RFC7233" format="default"/>) SHALL be present in the HTTP/3 <tt>PUSH_PROMISE</tt> frame.</li>
        <li>
          <t>The corresponding HTTP/3 <tt>HEADERS</tt> frame SHALL indicate HTTP status code 206.
          </t>
          <ul spacing="normal">
            <li>The range being transmitted SHALL be indicated in a <tt>content-range</tt> header field and the size of the complete resource indicated in a <tt>content-length</tt> header field.</li>
          </ul>
        </li>
      </ul>
    </section>
    <section anchor="protocol-id" numbered="true" toc="default">
      <name>Protocol Identifier</name>
      <t>The HTTP over multicast QUIC protocol specified in this document is identified by the application-layer protocol negotiation (ALPN) <xref target="RFC7301" format="default"/> identifier "h3m". The IANA registration of this protocol identifier can be found in <xref target="reg-proto-string" format="default"/>. This reserves the ALPN identifier space but describes a protocol that does not use TLS. The usage of the "h3m" identifier for discoverability is described in <xref target="discoverability" format="default"/>.</t>
      <section anchor="draft-version-id" numbered="true" toc="default">
        <name>Draft Version Identification</name>
        <ul empty="true">
          <li>
            <t><strong>RFC Editor's Note:</strong>  Please remove this section prior to publication of a final version of this document.</t>
          </li>
        </ul>
        <t>Only implementations of the final, published RFC can identify themselves as "h3m". Until such an RFC exists, implementations MUST NOT identify themselves using this string.</t>
        <t>Implementations of draft versions of the protocol MUST add the string "-" and the corresponding draft number to the identifier. For example, draft-pardue-quic-http-mcast-06 is identified using the string "h3m-06".</t>
        <t>Non-compatible experiments that are based on these draft versions MUST append the string "-" and an experiment name to the identifier. For example, an experimental implementation based on draft-pardue-quic-http-mcast-06 which uses extension features not registered with the appropriate IANA registry might identify itself as "h3m-06-extension-foo". Note that any label MUST conform to the "token" syntax defined in Section 3.2.6 of <xref target="RFC7230" format="default"/>. Experimenters are encouraged to coordinate their experiments.</t>
      </section>
    </section>
    <section anchor="discoverability" numbered="true" toc="default">
      <name>Discovery of Multicast QUIC Sessions</name>
      <t>The announcement and discovery of services operating over multicast IP has previously been specified by the Session Description Protocol (SDP) <xref target="RFC4566" format="default"/>, Session Announcement Protocol <xref target="RFC2974" format="default"/> and Session Initiation Protocol <xref target="RFC3261" format="default"/>. These are typically deployed together and in conjunction with a multicast-friendly transport such as the Real-time Transport Protocol (RTP) <xref target="RFC3550" format="default"/>.</t>
      <t>In contrast, the present document specifies a mechanism for advertising services that is built into HTTP metadata and is consistent across unicast and multicast resource delivery modes. This means that a single application-layer can be used for service advertisement/discovery, and for bulk data transmission/reception. Specifically, the <tt>Alt-Svc</tt> HTTP header is specified as the means to advertise multicast services from a unicast service. A unicast HTTP response MAY be decorated with an Alt-Svc value that hints to the client about the availability of the resource via a multicast QUIC session. A client that supports such a multicast QUIC session MAY then transparently switch to it.</t>
      <t>Symmetrically, the <tt>Alt-Svc</tt> header can also be used to advertise the unicast service from a multicast service. A resource transmitted as part of a multicast QUIC session MAY be decorated with an Alt-Svc value that hints to the client about the availability of the resource via an alternative unicast HTTP server. A receiver MAY then use this HTTP server for unicast resource patching (<xref target="unicast-repair" format="default"/>).</t>
      <t>Where HTTP over multicast QUIC sessions are advertised using Alt-Svc, the protocol identifier SHALL be "h3m", as specified in <xref target="protocol-id" format="default"/>.</t>
      <section anchor="param-source-address" numbered="true" toc="default">
        <name>Source-specific Multicast Advertisement</name>
        <t>Source-specific multicast (SSM) <xref target="RFC4607" format="default"/> MAY be used for the delivery of multicast services.</t>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> We invite review comments on mandating the use of source-specific multicast only.</t>
          </li>
        </ul>
        <t>This document specifies the "source-address" parameter for Alt-Svc, which is used to provide the SSM source address to endpoints.</t>
        <t>Syntax:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
source-address = uri-host; see RFC7230, Section 2.7
]]></artwork>
        <t>For example:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
source-address=192.0.2.1
]]></artwork>
        <t>When a multicast QUIC session is provided using SSM, the <tt>source-address</tt> parameter MUST be advertised. If the parameter is repeated, the first occurrence MUST be used and subsequent occurrences MUST be ignored.</t>
      </section>
      <section anchor="session-param-advert" numbered="true" toc="default">
        <name>Session Parameter Advertisement</name>
        <t>The concept of session parameters is introduced in <xref target="intro-session-params" format="default"/>. This section details how the session parameters are expressed as Alt-Svc parameters.</t>
        <section anchor="param-cs" numbered="true" toc="default">
          <name>Cipher Suite</name>
          <t>This document specifies the "cipher-suite" parameter for Alt-Svc, which carries the cipher suite in use by a multicast QUIC session. <tt>cipher-suite</tt> MUST contain one of the values contained in the TLS Cipher Suite Registry (http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4):</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
cipher-suite = 4*4 HEXDIG
]]></artwork>
          <t>For example, the following specifies cipher suite 0x13,0x01 (<tt>TLS_AES_128_GCM_SHA256</tt>):</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
cipher-suite=1301
]]></artwork>
          <t>The requirements for endpoint usage of <tt>cipher-suite</tt> are described in <xref target="intro-security-params" format="default"/>.</t>
        </section>
        <section anchor="param-key" numbered="true" toc="default">
          <name>Session Key</name>
          <t>This document specifies the "key" parameter for Alt-Svc, which carries the cryptographic key in use by the multicast QUIC session.</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
key = *HEXDIG
]]></artwork>
          <t>For example:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
key=4adf1eab9c2a37fd
]]></artwork>
          <t>The requirements for endpoint usage of <tt>key</tt> are described in <xref target="intro-security-params" format="default"/>.</t>
        </section>
        <section anchor="param-iv" numbered="true" toc="default">
          <name>Session Cipher Initialization Vector</name>
          <t>This document specifies the "iv" parameter for Alt-Svc, which carries the cipher Initialization Vector (IV) in use by the multicast QUIC session.</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
iv = *HEXDIG
]]></artwork>
          <t>For example:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
iv=4dbe593acb4d1577ad6ba7dc3189834e
]]></artwork>
          <t>The requirements for endpoint usage of <tt>iv</tt> are described in <xref target="intro-security-params" format="default"/>.</t>
        </section>
        <section anchor="param-session-id" numbered="true" toc="default">
          <name>Session Identification</name>
          <t>This document defines the "session-id" parameter for Alt-Svc, which carries the multicast QUIC session identifier.</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
session-id = *HEXDIG
]]></artwork>
          <t>For example, the following specifies session 101 (0x65 hexadecimal):</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
session-id=65
]]></artwork>
          <t>The requirements for endpoint usage of <tt>session-id</tt> are described in <xref target="intro-session-id" format="default"/>. In the above example, the Destination Connection ID field in every QUIC packet header would be one byte in size. For a session-id of BADBEEF then then Destintation Connection ID field in every QUIC packet header would be four bytes in size.</t>
        </section>
        <section anchor="param-session-idle-timeout" numbered="true" toc="default">
          <name>Session Idle Timeout Period</name>
          <t>This document specifies the "session-idle-timeout" parameter for Alt-Svc, which carries the idle timeout period in milliseconds of a multicast QUIC session.</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
session-idle-timeout = *DIGIT ; integer milliseconds
]]></artwork>
          <t>For example, the following specifies a one-minute session idle timeout period:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
session-idle-timeout=60
]]></artwork>
          <t>The requirements for endpoint usage of <tt>session-idle-timeout</tt> are described in <xref target="intro-session-idle-timeout" format="default"/>.</t>
        </section>
        <section anchor="param-max-concurrent-resources" numbered="true" toc="default">
          <name>Resource Concurrency</name>
          <t>This document specifies the "max-concurrent-resources" parameter for Alt-Svc, which expresses the maximum number of concurrent active resources from the sender in a multicast QUIC session.</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
max-concurrent-resources = *DIGIT ; unsigned 32-bit integer
]]></artwork>
          <t>For example, the following specifies that no more than 12 (decimal) resources will be concurrently active in the session:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
max-concurrent-resources=12
]]></artwork>
          <t>The requirements for endpoint usage of <tt>max-concurrent-resources</tt> are described in <xref target="intro-resource-concurrency" format="default"/>.</t>
        </section>
        <section anchor="param-flow-rate" numbered="true" toc="default">
          <name>Session Peak Flow Rate</name>
          <t>This document specifies the "peak-flow-rate" parameter for Alt-Svc, which expresses the expected maximum aggregate transfer rate of data from all sources of the multicast QUIC session.</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
peak-flow-rate = *DIGIT ; bits per second
]]></artwork>
          <t>For example, the following specifies a peak flow rate of 550 kbits/s in the session:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
peak-flow-rate=550000
]]></artwork>
          <t>The requirements for endpoint usage of <tt>peak-flow-rate</tt> are described in <xref target="intro-peak-flow-rate" format="default"/>.</t>
        </section>
        <section anchor="param-digest-algorithm" numbered="true" toc="default">
          <name>Digest Algorithm</name>
          <t>This document specifies the "digest-algorithm" parameter for Alt-Svc, which carries the digest algorithm in use by a multicast QUIC session. <tt>digest-algorithm</tt> MUST contain one of the values defined in the HTTP Digest Algorithm Values registry (https://www.iana.org/assignments/http-dig-alg/http-dig-alg.xhtml#http-dig-alg-1).</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
digest-algorithm = token
]]></artwork>
          <t>For example, the following specifies a digest algorithm of SHA-256:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
digest-algorithm=SHA-256
]]></artwork>
          <t>The requirements for endpoint usage of <tt>digest-algorithm</tt> are described in <xref target="intro-digest-algorithm" format="default"/>.</t>
        </section>
        <section anchor="param-signature-algorithm" numbered="true" toc="default">
          <name>Signature Algorithm</name>
          <t>This document specifies the "signature-algorithm" parameter for Alt-Svc, which carries the signature algorithm in use by a multicast QUIC session. <tt>signature-algorithm</tt> MUST contain one of the values defined in the Signature Algorithms registry (http://www.iana.org/assignments/signature-algorithms).</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
signature-algorithm = token
]]></artwork>
          <t>For example, the following specifies a signature algorithm of SHA-256:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
signature-algorithm=rsa-sha256
]]></artwork>
          <t>The requirements for endpoint usage of <tt>signature-algorithm</tt> are described in <xref target="intro-signature-algorithm" format="default"/>.</t>
        </section>
        <section anchor="param-extensions" numbered="true" toc="default">
          <name>Extensions</name>
          <t>This document specifies the "extensions" parameter for Alt-Svc, which carries a list of extension types potentially in use by a multicast QUIC session. <tt>extensions</tt> MUST only contain values from the QUIC Transport Parameter registry (<xref target="RFC9000" format="default"/>, section 22.3) that have explicit support for multicast QUIC. Each entry in the list consists of a key identifying the transport parameter, and an optional value. Both the key and the value are hex-encoded.</t>
          <t>Syntax:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
extensions           = DQUOTE ext-transport-param
                       *[ "," ext-transport-param ] DQUOTE
ext-transport-param  = ext-key [ "=" ext-value ]
ext-key              = 4*4HEXDIG; Transport Parameter key
ext-value            = *HEXDIG; Optional Transport Parameter value
]]></artwork>
          <t>For example, the following specifies two extensions:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
extensions="0094,0d0d=f00"
]]></artwork>
          <t>The requirements for endpoint usage of <tt>extensions</tt> are described in <xref target="intro-extensions" format="default"/></t>
        </section>
      </section>
    </section>
    <section anchor="security-considerations" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>This document specifies a profile of QUIC and HTTP/3 that changes the security model. In order to address this, application-level security methods are described in <xref target="app-layer-security" format="default"/>. This document does not preclude the use of secure multicast approaches that may provide additional security assurances required for certain use cases.</t>
      <t>The use of side-channel or out-of-band technologies (potentially bidirectional interactions) to support multicast QUIC sessions are considered out of this document's scope. Services using such technologies should apply their security considerations accordingly.</t>
      <section anchor="pervasive-monitoring" numbered="true" toc="default">
        <name>Pervasive Monitoring</name>
        <t>Certain multicast deployment architectures may require the use of a session decryption key shared by all participants. Furthermore, the discovery mechanism described in this document provides a means for a receiver to obtain a session decryption key without joining the session. The act of removing packet protection in order to inspect or modify application contents may, in certain deployments, be trivial. The exploration of restricting key learning or session joining to authorised participants goes beyond the scope of this document.</t>
        <t>Because in-band multicast interactions are unidirectional, the impact of Pervasive Monitoring <xref target="RFC7258" format="default"/> on in-band traffic flows is inherently reduced. Actors can only inspect or modify sender-initiated traffic. Additional measures for content confidentiality may mitigate the impact further. This is discussed in <xref target="security-confidentiality" format="default"/>.</t>
        <t>Further Pervasive Monitoring concerns are addressed in the following sections.</t>
        <section anchor="large-scale-data-gathering-and-correlation" numbered="true" toc="default">
          <name>Large-scale Data Gathering and Correlation</name>
          <t>Multicast QUIC sessions decouple sending and receiving participants. Session participation is subject to operations that allow an endpoint to join or leave a multicast group, typically IGMP <xref target="RFC3376" format="default"/> or MLD <xref target="RFC3810" format="default"/>. The propagation intent of these messages travelling deeper through a network hierarchy generally leads to the anonymisation of data if implemented as specified. It may be possible to gather user-identifiable messages close to the network edge, for example a router logging such messages. However, this would require wide-ranging access across Internet Service Provider networks. Therefore, while such attacks are feasible, it can be asserted that gathering and correlating user-identifiable traffic is difficult to perform covertly and at scale.</t>
        </section>
        <section anchor="changing-content" numbered="true" toc="default">
          <name>Changing Content</name>
          <t>Sessions that use a symmetric key for packet protection are subject to the possibility of a malicious actor modifying traffic at some point in the network between a legitimate sender and one (or more) receivers. Receiver-side validation, as specified in <xref target="app-layer-security" format="default"/> of the present document, and also in <xref target="RFC9000" format="default"/>, allows for the detection of such modification. Two approaches help mitigate the impact of modification; the first is application-level methods that protect data (<xref target="security-integrity" format="default"/>) and metadata (<xref target="security-authenticity" format="default"/>); the second is reduction of the QUIC packet attack surface by means of removal of many frame types (<xref target="prohibited-quic-frames" format="default"/> and <xref target="prohibited-hq-frames" format="default"/>).</t>
        </section>
      </section>
      <section anchor="security-cons-disc" numbered="true" toc="default">
        <name>Protection of Discovery Mechanism</name>
        <t>Multicast QUIC session advertisements SHOULD be conveyed over a secure transport that guarantees authenticity and integrity in order to mitigate attacks related to a malicious service advertisement, for example a "man in the middle" directing endpoints to a service that may lead to other attacks or exploitations.</t>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> We invite review comments on mandating the use of a secure transport for advertising sessions.</t>
          </li>
        </ul>
        <t>Endpoints that make use of multicast QUIC session advertisements SHOULD have reasonable assurance that the alternative service is under control of, and valid for, the whole origin, as described in Section 2.1 of <xref target="RFC7838" format="default"/>. <xref target="security-authenticity" format="default"/> discusses measures that may be used to fulfil this requirement.</t>
      </section>
      <section anchor="spoofing" numbered="true" toc="default">
        <name>Spoofing</name>
        <section anchor="sender-spoofing" numbered="true" toc="default">
          <name>Sender Spoofing</name>
          <t>A malicious actor may be able to stage a spoof attack by sending fake QUIC packets to a multicast QUIC session. This could affect the operation or behaviour of receivers. In a multicast scenario, this form of attack has the potential to scale massively.</t>
          <t>The feasibility of spoofing a multicast sender is governed by the characteristics of the multicast deployment and network infrastructure. The use of source-specific multicast <xref target="RFC4607" format="default"/> may reduce the feasibility. The use of content authenticity (<xref target="security-authenticity" format="default"/>) may mitigate concerns for the application-level messages. However, there remains the possibility for transport-level messages to be spoofed. Multicast applications should consider further mitigations to address this concern.</t>
        </section>
      </section>
      <section anchor="replay-attacks" numbered="true" toc="default">
        <name>Replay Attacks</name>
        <t>Conventional QUIC strategies for protecting against replay attacks apply similarly here.</t>
        <t>Certain multicast QUIC sessions may use a shared key for transport-level encryption, which would allow an attacker to record, decrypt, repackage and replay QUIC packets. <xref target="security-authenticity" format="default"/> discusses how the application-level contents may be protected from replay (by signing the <tt>Date</tt> HTTP header), which provides some mitigation to the success rate or effects of replay attacks.</t>
      </section>
      <section anchor="message-deletion" numbered="true" toc="default">
        <name>Message Deletion</name>
        <t>Since HTTP over multicast QUIC is designed to tolerate unreliable delivery, the impacts of message deletion attacks are presumed to be small. Deletion of packets carrying HTTP headers will cause a receiver to ignore subsequent packets carrying body data. Furthermore, the use of multicast QUIC sessions is opportunistic; disruption in service (for example, deleting packets and causing a receiver to fail in construction of a content object) is mitigated by falling back to a unicast service. Considerations for how this may affect the performance of the unicast service are given in <xref target="dos-herd" format="default"/>.</t>
      </section>
      <section anchor="denial-of-service" numbered="true" toc="default">
        <name>Denial of Service</name>
        <section anchor="unprotected-frames-and-packets" numbered="true" toc="default">
          <name>Unprotected Frames and Packets</name>
          <t>The profile described in the present document provides the means for a multicast sender to protect QUIC packets with a shared key, which is not a strong protection. The weak protection of QUIC packets could present a denial-of-service risk. To mitigate the impact of handling such QUIC packets, certain frames and packets are prohibited as described in (<xref target="prohibited-quic-frames" format="default"/> and <xref target="prohibited-hq-frames" format="default"/>).</t>
          <t>The frame types that are allowed by this profile do not present a risk of denial of service. Concerns over authenticity and integrity are addressed by the application-layer protection mechanisms described in <xref target="app-layer-security" format="default"/>.</t>
        </section>
        <section anchor="dos-net-perf" numbered="true" toc="default">
          <name>Network Performance Degradation</name>
          <t>The possibility for malfunctioning or malicious participants to degrade the network is a broad issue and considered out of scope for this document. Guidelines and concerns discussed in UDP Best Practices <xref target="RFC8085" format="default"/> and other sources apply equally here. This specification does not preclude the use of network performance degradation mitigation solutions such as network circuit breakers.</t>
        </section>
        <section anchor="dos-herd" numbered="true" toc="default">
          <name>Unicast Repair Stampeding Herd</name>
          <t>Deployments that support the unicast repair mechanism described in <xref target="unicast-repair" format="default"/> should be aware that a triggering of this behaviour (either deliberate, planned or unplanned) in a large population of multicast receivers may cause a stampeding herd of client requests to the unicast repair service. Service operators SHOULD mitigate the impact of stampeding herd on their deployment.</t>
        </section>
      </section>
      <section anchor="receiver-resource-usage" numbered="true" toc="default">
        <name>Receiver Resource Usage</name>
        <t>The application of receiver-side validation, as defined in the present document and in <xref target="RFC9000" format="default"/>, adds some protection against allocating resource to the processing of bad data.</t>
      </section>
      <section anchor="unicast-repair-information-leakage" numbered="true" toc="default">
        <name>Unicast Repair Information Leakage</name>
        <t>The unicast repair mechanism may lead to the leakage of user behaviour data. An attacker could gain insight into any receiver participating in a multicast QUIC session, for example by monitoring the TCP port of the unicast alternative. This alone is no worse than current abilities to monitor unicast interactions, for example observing the SNI field contained in a TLS ClientHello. The complete protection of unicast interactions is beyond the scope of this document. However, knowledge that a user (or group of users) has participated in a session is sensitive and may be obtained by correlation between with observable multicast and unicast traffic.</t>
        <t>To give an example, a malicious "man in the middle" could purposely cause all receivers to perform a unicast repair (by disrupting the QUIC traffic flow in some way). The disruption is untargeted and may be simple to orchestrate, but the correlation of user activity data, especially across a distributed repair service (e.g. a CDN), requires resources that may reduce the attractiveness of such an attack.</t>
        <t>The ability for an attacker to disrupt multicast QUIC sessions is mitigated by this profile (mainly the prohibition of frames and packets). Application-layer security measures described in <xref target="app-layer-security" format="default"/> reduce the feasibility further.</t>
        <t>Multicast receivers concerned about this form of leakage can eliminate this risk completely by disabling support for unicast repair, at the potential cost of reduced service quality.</t>
      </section>
    </section>
    <section anchor="iana-considerations" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="reg-proto-string" numbered="true" toc="default">
        <name>Registration of Protocol Identification String</name>
        <t>This document creates a new registration for the identification of the HTTP over multicast QUIC protocol in the "Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry established by <xref target="RFC7301" format="default"/>.</t>
        <t>The "h3m" string identifies HTTP semantics expressed as HTTP mapped to a QUIC layer and carried over IP multicast:</t>
        <dl>
          <dt>
Protocol:  </dt>
          <dd>
            <t>Bulk data transport using HTTP over multicast QUIC</t>
          </dd>
          <dt>
Identification Sequence:  </dt>
          <dd>
            <t>0x68 0x33 0x6D ("h3m")</t>
          </dd>
          <dt>
Specification:  </dt>
          <dd>
            <t>This document, <xref target="protocol-id" format="default"/></t>
          </dd>
        </dl>
        <t>This entry reserves an identifier that is not allowed to appear in TLS Application-Layer Protocol Negotiation.</t>
      </section>
      <section anchor="registration-of-alt-svc-parameters" numbered="true" toc="default">
        <name>Registration of Alt-Svc parameters</name>
        <t>This document creates seven registrations for the identification of parameters for the "Hypertext Transfer Protocol (HTTP) Alt-Svc Parameter Registry" established by <xref target="RFC7838" format="default"/> (http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids).</t>
        <section anchor="source-address" numbered="true" toc="default">
          <name>Source Address</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>source-address</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-source-address" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="cipher-suite-1" numbered="true" toc="default">
          <name>Cipher Suite</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>cipher-suite</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-cs" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="key" numbered="true" toc="default">
          <name>Key</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>key</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-key" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="initialization-vector-1" numbered="true" toc="default">
          <name>Initialization Vector</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>iv</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-iv" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="session-identifier" numbered="true" toc="default">
          <name>Session Identifier</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>session-id</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-session-id" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="session-idle-timeout" numbered="true" toc="default">
          <name>Session Idle Timeout</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>session-idle-timeout</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-session-idle-timeout" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="maximum-concurrent-resources" numbered="true" toc="default">
          <name>Maximum Concurrent Resources</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>max-concurrent-resources</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-max-concurrent-resources" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="peak-flow-rate" numbered="true" toc="default">
          <name>Peak Flow Rate</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>peak-flow-rate</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-flow-rate" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="digest-algorithm" numbered="true" toc="default">
          <name>Digest Algorithm</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>digest-algorithm</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-digest-algorithm" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="signature-algorithm" numbered="true" toc="default">
          <name>Signature Algorithm</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>signature-algorithm</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-signature-algorithm" format="default"/></t>
            </dd>
          </dl>
        </section>
        <section anchor="extension" numbered="true" toc="default">
          <name>Extension</name>
          <dl>
            <dt>
Parameter name:  </dt>
            <dd>
              <t>extension</t>
            </dd>
            <dt>
Specification:  </dt>
            <dd>
              <t>This document, <xref target="param-extensions" format="default"/></t>
            </dd>
          </dl>
        </section>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="H3-DATA-OFFSET">
          <front>
            <title>An Offset Extension Frame For HTTP/3 Data</title>
            <author initials="S." surname="Hurst" fullname="Sam Hurst">
              <organization>BBC Research &amp; Development</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hurst-quic-http-data-offset-frame-02"/>
        </reference>
        <reference anchor="RFC9000" target="https://www.rfc-editor.org/info/rfc9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol.  QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances.  Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC9114" target="https://www.rfc-editor.org/info/rfc9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment.  This document describes a mapping of HTTP semantics over QUIC.  This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="RFC7838" target="https://www.rfc-editor.org/info/rfc7838">
          <front>
            <title>HTTP Alternative Services</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="P. McManus" initials="P." surname="McManus">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." surname="Reschke">
              <organization/>
            </author>
            <date month="April" year="2016"/>
            <abstract>
              <t>This document specifies "Alternative Services" for HTTP, which allow an origin's resources to be authoritatively available at a separate network location, possibly accessed with a different protocol configuration.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7838"/>
          <seriesInfo name="DOI" value="10.17487/RFC7838"/>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker">
              <organization/>
            </author>
            <author fullname="P. Overell" initials="P." surname="Overell">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC7405" target="https://www.rfc-editor.org/info/rfc7405">
          <front>
            <title>Case-Sensitive String Support in ABNF</title>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat">
              <organization/>
            </author>
            <date month="December" year="2014"/>
            <abstract>
              <t>This document extends the base definition of ABNF (Augmented Backus-Naur Form) to include a way to specify US-ASCII string literals that are matched in a case-sensitive manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7405"/>
          <seriesInfo name="DOI" value="10.17487/RFC7405"/>
        </reference>
        <reference anchor="RFC7230" target="https://www.rfc-editor.org/info/rfc7230">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems.  This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7230"/>
          <seriesInfo name="DOI" value="10.17487/RFC7230"/>
        </reference>
        <reference anchor="RFC7234" target="https://www.rfc-editor.org/info/rfc7234">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Caching</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless \%application- level protocol for distributed, collaborative, hypertext information systems.  This document defines HTTP caches and the associated header fields that control cache behavior or indicate cacheable response messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7234"/>
          <seriesInfo name="DOI" value="10.17487/RFC7234"/>
        </reference>
        <reference anchor="RFC3168" target="https://www.rfc-editor.org/info/rfc3168">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishnan">
              <organization/>
            </author>
            <author fullname="S. Floyd" initials="S." surname="Floyd">
              <organization/>
            </author>
            <author fullname="D. Black" initials="D." surname="Black">
              <organization/>
            </author>
            <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="RFC9204" target="https://www.rfc-editor.org/info/rfc9204">
          <front>
            <title>QPACK: Field Compression for HTTP/3</title>
            <author fullname="C. Krasic" initials="C." surname="Krasic">
              <organization/>
            </author>
            <author fullname="M. Bishop" initials="M." surname="Bishop">
              <organization/>
            </author>
            <author fullname="A. Frindell" initials="A." role="editor" surname="Frindell">
              <organization/>
            </author>
            <date month="June" year="2022"/>
            <abstract>
              <t>This specification defines QPACK: a compression format for efficiently representing HTTP fields that is to be used in HTTP/3. This is a variation of HPACK compression that seeks to reduce head-of-line blocking.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9204"/>
          <seriesInfo name="DOI" value="10.17487/RFC9204"/>
        </reference>
        <reference anchor="RFC3230" target="https://www.rfc-editor.org/info/rfc3230">
          <front>
            <title>Instance Digests in HTTP</title>
            <author fullname="J. Mogul" initials="J." surname="Mogul">
              <organization/>
            </author>
            <author fullname="A. Van Hoff" initials="A." surname="Van Hoff">
              <organization/>
            </author>
            <date month="January" year="2002"/>
            <abstract>
              <t>HTTP/1.1 defines a Content-MD5 header that allows a server to include a digest of the response body.  However, this is specifically defined to cover the body of the actual message, not the contents of the full file (which might be quite different, if the response is a Content-Range, or uses a delta encoding).  Also, the Content-MD5 is limited to one specific digest algorithm; other algorithms, such as SHA-1 (Secure Hash Standard), may be more appropriate in some circumstances.  Finally, HTTP/1.1 provides no explicit mechanism by which a client may request a digest.  This document proposes HTTP extensions that solve these problems.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3230"/>
          <seriesInfo name="DOI" value="10.17487/RFC3230"/>
        </reference>
        <reference anchor="I-D.cavage-http-signatures" target="https://www.ietf.org/archive/id/draft-cavage-http-signatures-12.txt">
          <front>
            <title>Signing HTTP Messages</title>
            <author fullname="Mark Cavage">
              <organization>Oracle</organization>
            </author>
            <author fullname="Manu Sporny">
              <organization>Digital Bazaar</organization>
            </author>
            <date day="21" month="October" year="2019"/>
            <abstract>
              <t>   When communicating over the Internet using the HTTP protocol, it can
   be desirable for a server or client to authenticate the sender of a
   particular message.  It can also be desirable to ensure that the
   message was not tampered with during transit.  This document
   describes a way for servers and clients to simultaneously add
   authentication and message integrity to HTTP messages by using a
   digital signature.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cavage-http-signatures-12"/>
        </reference>
        <reference anchor="RFC7233" target="https://www.rfc-editor.org/info/rfc7233">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding">
              <organization/>
            </author>
            <author fullname="Y. Lafon" initials="Y." role="editor" surname="Lafon">
              <organization/>
            </author>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application- level protocol for distributed, collaborative, hypertext information systems.  This document defines range requests and the rules for constructing and combining responses to those requests.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7233"/>
          <seriesInfo name="DOI" value="10.17487/RFC7233"/>
        </reference>
        <reference anchor="RFC7301" target="https://www.rfc-editor.org/info/rfc7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl">
              <organization/>
            </author>
            <author fullname="A. Popov" initials="A." surname="Popov">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="E. Stephan" initials="E." surname="Stephan">
              <organization/>
            </author>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC4607" target="https://www.rfc-editor.org/info/rfc4607">
          <front>
            <title>Source-Specific Multicast for IP</title>
            <author fullname="H. Holbrook" initials="H." surname="Holbrook">
              <organization/>
            </author>
            <author fullname="B. Cain" initials="B." surname="Cain">
              <organization/>
            </author>
            <date month="August" year="2006"/>
            <abstract>
              <t>IP version 4 (IPv4) addresses in the 232/8 (232.0.0.0 to 232.255.255.255) range are designated as source-specific multicast (SSM) destination addresses and are reserved for use by source-specific applications and protocols.  For IP version 6 (IPv6), the address prefix FF3x::/32 is reserved for source-specific multicast use.  This document defines an extension to the Internet network service that applies to datagrams sent to SSM addresses and defines the host and router requirements to support this extension.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4607"/>
          <seriesInfo name="DOI" value="10.17487/RFC4607"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC1112" target="https://www.rfc-editor.org/info/rfc1112">
          <front>
            <title>Host extensions for IP multicasting</title>
            <author fullname="S.E. Deering" initials="S.E." surname="Deering">
              <organization/>
            </author>
            <date month="August" year="1989"/>
            <abstract>
              <t>This memo specifies the extensions required of a host implementation of the Internet Protocol (IP) to support multicasting.  Recommended procedure for IP multicasting in the Internet.  This RFC obsoletes RFCs 998 and 1054.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="5"/>
          <seriesInfo name="RFC" value="1112"/>
          <seriesInfo name="DOI" value="10.17487/RFC1112"/>
        </reference>
        <reference anchor="RFC3550" target="https://www.rfc-editor.org/info/rfc3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
              <organization/>
            </author>
            <author fullname="S. Casner" initials="S." surname="Casner">
              <organization/>
            </author>
            <author fullname="R. Frederick" initials="R." surname="Frederick">
              <organization/>
            </author>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson">
              <organization/>
            </author>
            <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="RFC6726" target="https://www.rfc-editor.org/info/rfc6726">
          <front>
            <title>FLUTE - File Delivery over Unidirectional Transport</title>
            <author fullname="T. Paila" initials="T." surname="Paila">
              <organization/>
            </author>
            <author fullname="R. Walsh" initials="R." surname="Walsh">
              <organization/>
            </author>
            <author fullname="M. Luby" initials="M." surname="Luby">
              <organization/>
            </author>
            <author fullname="V. Roca" initials="V." surname="Roca">
              <organization/>
            </author>
            <author fullname="R. Lehtonen" initials="R." surname="Lehtonen">
              <organization/>
            </author>
            <date month="November" year="2012"/>
            <abstract>
              <t>This document defines File Delivery over Unidirectional Transport (FLUTE), a protocol for the unidirectional delivery of files over the Internet, which is particularly suited to multicast networks.  The specification builds on Asynchronous Layered Coding, the base protocol designed for massively scalable multicast distribution. This document obsoletes RFC 3926.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6726"/>
          <seriesInfo name="DOI" value="10.17487/RFC6726"/>
        </reference>
        <reference anchor="RFC5740" target="https://www.rfc-editor.org/info/rfc5740">
          <front>
            <title>NACK-Oriented Reliable Multicast (NORM) Transport Protocol</title>
            <author fullname="B. Adamson" initials="B." surname="Adamson">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <author fullname="J. Macker" initials="J." surname="Macker">
              <organization/>
            </author>
            <date month="November" year="2009"/>
            <abstract>
              <t>This document describes the messages and procedures of the Negative- ACKnowledgment (NACK) Oriented Reliable Multicast (NORM) protocol. This protocol can provide end-to-end reliable transport of bulk data objects or streams over generic IP multicast routing and forwarding services.  NORM uses a selective, negative acknowledgment mechanism for transport reliability and offers additional protocol mechanisms to allow for operation with minimal a priori coordination among senders and receivers.  A congestion control scheme is specified to allow the NORM protocol to fairly share available network bandwidth with other transport protocols such as Transmission Control Protocol (TCP).  It is capable of operating with both reciprocal multicast routing among senders and receivers and with asymmetric connectivity (possibly a unicast return path) between the senders and receivers. The protocol offers a number of features to allow different types of applications or possibly other higher-level transport protocols to utilize its service in different ways.  The protocol leverages the use of FEC-based (forward error correction) repair and other IETF Reliable Multicast Transport (RMT) building blocks in its design. This document obsoletes RFC 3940.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5740"/>
          <seriesInfo name="DOI" value="10.17487/RFC5740"/>
        </reference>
        <reference anchor="RFC8200" target="https://www.rfc-editor.org/info/rfc8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering">
              <organization/>
            </author>
            <author fullname="R. Hinden" initials="R." surname="Hinden">
              <organization/>
            </author>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document specifies version 6 of the Internet Protocol (IPv6). It obsoletes RFC 2460.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="86"/>
          <seriesInfo name="RFC" value="8200"/>
          <seriesInfo name="DOI" value="10.17487/RFC8200"/>
        </reference>
        <reference anchor="RFC8866" target="https://www.rfc-editor.org/info/rfc8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen">
              <organization/>
            </author>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <date month="January" year="2021"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </reference>
        <reference anchor="RFC2974" target="https://www.rfc-editor.org/info/rfc2974">
          <front>
            <title>Session Announcement Protocol</title>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="E. Whelan" initials="E." surname="Whelan">
              <organization/>
            </author>
            <date month="October" year="2000"/>
            <abstract>
              <t>This document describes version 2 of the multicast session directory announcement protocol, Session Announcement Protocol (SAP), and the related issues affecting security and scalability that should be taken into account by implementors.  This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2974"/>
          <seriesInfo name="DOI" value="10.17487/RFC2974"/>
        </reference>
        <reference anchor="RFC9001" target="https://www.rfc-editor.org/info/rfc9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="RFC7450" target="https://www.rfc-editor.org/info/rfc7450">
          <front>
            <title>Automatic Multicast Tunneling</title>
            <author fullname="G. Bumgardner" initials="G." surname="Bumgardner">
              <organization/>
            </author>
            <date month="February" year="2015"/>
            <abstract>
              <t>This document describes Automatic Multicast Tunneling (AMT), a protocol for delivering multicast traffic from sources in a multicast-enabled network to receivers that lack multicast connectivity to the source network.  The protocol uses UDP encapsulation and unicast replication to provide this functionality.</t>
              <t>The AMT protocol is specifically designed to support rapid deployment by requiring minimal changes to existing network infrastructure.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7450"/>
          <seriesInfo name="DOI" value="10.17487/RFC7450"/>
        </reference>
        <reference anchor="RFC4821" target="https://www.rfc-editor.org/info/rfc4821">
          <front>
            <title>Packetization Layer Path MTU Discovery</title>
            <author fullname="M. Mathis" initials="M." surname="Mathis">
              <organization/>
            </author>
            <author fullname="J. Heffner" initials="J." surname="Heffner">
              <organization/>
            </author>
            <date month="March" year="2007"/>
            <abstract>
              <t>This document describes a robust method for Path MTU Discovery (PMTUD) that relies on TCP or some other Packetization Layer to probe an Internet path with progressively larger packets.  This method is described as an extension to RFC 1191 and RFC 1981, which specify ICMP-based Path MTU Discovery for IP versions 4 and 6, respectively.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4821"/>
          <seriesInfo name="DOI" value="10.17487/RFC4821"/>
        </reference>
        <reference anchor="RFC1191" target="https://www.rfc-editor.org/info/rfc1191">
          <front>
            <title>Path MTU discovery</title>
            <author fullname="J.C. Mogul" initials="J.C." surname="Mogul">
              <organization/>
            </author>
            <author fullname="S.E. Deering" initials="S.E." surname="Deering">
              <organization/>
            </author>
            <date month="November" year="1990"/>
            <abstract>
              <t>This memo describes a technique for dynamically discovering the maximum transmission unit (MTU) of an arbitrary internet path.  It specifies a small change to the way routers generate one type of ICMP message.  For a path that passes through a router that has not been so changed, this technique might not discover the correct Path MTU, but it will always choose a Path MTU as accurate as, and in many cases more accurate than, the Path MTU that would be chosen by current practice.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1191"/>
          <seriesInfo name="DOI" value="10.17487/RFC1191"/>
        </reference>
        <reference anchor="RFC9002" target="https://www.rfc-editor.org/info/rfc9002">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC4566" target="https://www.rfc-editor.org/info/rfc4566">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <date month="July" year="2006"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP).  SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4566"/>
          <seriesInfo name="DOI" value="10.17487/RFC4566"/>
        </reference>
        <reference anchor="RFC3261" target="https://www.rfc-editor.org/info/rfc3261">
          <front>
            <title>SIP: Session Initiation Protocol</title>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg">
              <organization/>
            </author>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
              <organization/>
            </author>
            <author fullname="G. Camarillo" initials="G." surname="Camarillo">
              <organization/>
            </author>
            <author fullname="A. Johnston" initials="A." surname="Johnston">
              <organization/>
            </author>
            <author fullname="J. Peterson" initials="J." surname="Peterson">
              <organization/>
            </author>
            <author fullname="R. Sparks" initials="R." surname="Sparks">
              <organization/>
            </author>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <author fullname="E. Schooler" initials="E." surname="Schooler">
              <organization/>
            </author>
            <date month="June" year="2002"/>
            <abstract>
              <t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants.  These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3261"/>
          <seriesInfo name="DOI" value="10.17487/RFC3261"/>
        </reference>
        <reference anchor="RFC7258" target="https://www.rfc-editor.org/info/rfc7258">
          <front>
            <title>Pervasive Monitoring Is an Attack</title>
            <author fullname="S. Farrell" initials="S." surname="Farrell">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="May" year="2014"/>
            <abstract>
              <t>Pervasive monitoring is a technical attack that should be mitigated in the design of IETF protocols, where possible.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="188"/>
          <seriesInfo name="RFC" value="7258"/>
          <seriesInfo name="DOI" value="10.17487/RFC7258"/>
        </reference>
        <reference anchor="RFC3376" target="https://www.rfc-editor.org/info/rfc3376">
          <front>
            <title>Internet Group Management Protocol, Version 3</title>
            <author fullname="B. Cain" initials="B." surname="Cain">
              <organization/>
            </author>
            <author fullname="S. Deering" initials="S." surname="Deering">
              <organization/>
            </author>
            <author fullname="I. Kouvelas" initials="I." surname="Kouvelas">
              <organization/>
            </author>
            <author fullname="B. Fenner" initials="B." surname="Fenner">
              <organization/>
            </author>
            <author fullname="A. Thyagarajan" initials="A." surname="Thyagarajan">
              <organization/>
            </author>
            <date month="October" year="2002"/>
          </front>
          <seriesInfo name="RFC" value="3376"/>
          <seriesInfo name="DOI" value="10.17487/RFC3376"/>
        </reference>
        <reference anchor="RFC3810" target="https://www.rfc-editor.org/info/rfc3810">
          <front>
            <title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</title>
            <author fullname="R. Vida" initials="R." role="editor" surname="Vida">
              <organization/>
            </author>
            <author fullname="L. Costa" initials="L." role="editor" surname="Costa">
              <organization/>
            </author>
            <date month="June" year="2004"/>
            <abstract>
              <t>This document updates RFC 2710, and it specifies Version 2 of the ulticast Listener Discovery Protocol (MLDv2).  MLD is used by an IPv6 router to discover the presence of multicast listeners on directly attached links, and to discover which multicast addresses are of interest to those neighboring nodes.  MLDv2 is designed to be interoperable with MLDv1.  MLDv2 adds the ability for a node to report interest in listening to packets with a particular multicast address only from specific source addresses or from all sources except for specific source addresses.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3810"/>
          <seriesInfo name="DOI" value="10.17487/RFC3810"/>
        </reference>
        <reference anchor="RFC8085" target="https://www.rfc-editor.org/info/rfc8085">
          <front>
            <title>UDP Usage Guidelines</title>
            <author fullname="L. Eggert" initials="L." surname="Eggert">
              <organization/>
            </author>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst">
              <organization/>
            </author>
            <author fullname="G. Shepherd" initials="G." surname="Shepherd">
              <organization/>
            </author>
            <date month="March" year="2017"/>
            <abstract>
              <t>The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms.  This document provides guidelines on the use of UDP for the designers of applications, tunnels, and other protocols that use UDP.  Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, middlebox traversal, the use of Explicit Congestion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.</t>
              <t>Because congestion control is critical to the stable operation of the Internet, applications and other protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic.  They may also need to implement additional mechanisms, depending on how they use UDP.</t>
              <t>Some guidance is also applicable to the design of other protocols (e.g., protocols layered directly on IP or via IP-based tunnels), especially when these protocols do not themselves provide congestion control.</t>
              <t>This document obsoletes RFC 5405 and adds guidelines for multicast UDP usage.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="145"/>
          <seriesInfo name="RFC" value="8085"/>
          <seriesInfo name="DOI" value="10.17487/RFC8085"/>
        </reference>
        <reference anchor="RFC5737" target="https://www.rfc-editor.org/info/rfc5737">
          <front>
            <title>IPv4 Address Blocks Reserved for Documentation</title>
            <author fullname="J. Arkko" initials="J." surname="Arkko">
              <organization/>
            </author>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="L. Vegoda" initials="L." surname="Vegoda">
              <organization/>
            </author>
            <date month="January" year="2010"/>
            <abstract>
              <t>Three IPv4 unicast address blocks are reserved for use in examples in specifications and other documents.  This document describes the use of these blocks.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5737"/>
          <seriesInfo name="DOI" value="10.17487/RFC5737"/>
        </reference>
        <reference anchor="RFC6676" target="https://www.rfc-editor.org/info/rfc6676">
          <front>
            <title>Multicast Addresses for Documentation</title>
            <author fullname="S. Venaas" initials="S." surname="Venaas">
              <organization/>
            </author>
            <author fullname="R. Parekh" initials="R." surname="Parekh">
              <organization/>
            </author>
            <author fullname="G. Van de Velde" initials="G." surname="Van de Velde">
              <organization/>
            </author>
            <author fullname="T. Chown" initials="T." surname="Chown">
              <organization/>
            </author>
            <author fullname="M. Eubanks" initials="M." surname="Eubanks">
              <organization/>
            </author>
            <date month="August" year="2012"/>
            <abstract>
              <t>This document discusses which multicast addresses should be used for documentation purposes and reserves multicast addresses for such use. Some multicast addresses are derived from AS numbers or unicast addresses.  This document also explains how these can be used for documentation purposes.  This document is not an Internet Standards  Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6676"/>
          <seriesInfo name="DOI" value="10.17487/RFC6676"/>
        </reference>
      </references>
    </references>
    <section anchor="acknowledgements" numbered="true" toc="default">
      <name>Acknowledgements</name>
      <t>The authors would like to thank the following for their contributions to the design described in the present document: Brandon Butterworth, Chris Poole, Craig Taylor and David Waring.</t>
      <t>We are also grateful to Thomas Swindells and Magnus Westerlund for their helpful review comments.</t>
    </section>
    <section anchor="examples" numbered="true" toc="default">
      <name>Examples</name>
      <t>This appendix contains examples of multicast QUIC session advertisement and resource transfer (with and without application-layer content security).</t>
      <section anchor="appendix-session-advertisement" numbered="true" toc="default">
        <name>Session Advertisement</name>
        <t>This section shows several different examples of an HTTP service advertising a multicast QUIC session. Examples are given in IPv4 form, using reserved address ranges as specified in <xref target="RFC5737" format="default"/> and <xref target="RFC6676" format="default"/>.</t>
        <section anchor="source-specific-multicast-quic-session" numbered="true" toc="default">
          <name>Source-specific Multicast QUIC Session</name>
          <t>Advertisement of a multicast QUIC session operating on the source-specific multicast group address 232.0.0.1 on port 2000 with the source address 192.0.2.1. The session ID is 16 (0x10) and the idle timeout is one minute. At most 10 resources may be concurrently active in the session and the flow rate should not exceed 10 kbits/s. The multicast transport is unencrypted.</t>
          <t>HTTP Alternative Service header field:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Alt-Svc:
    h3m="232.0.0.1:2000"; source-address="192.0.2.1";
    session-id=10; session-idle-timeout=60;
    max-concurrent-resources=10; peak-flow-rate=10000
]]></artwork>
        </section>
        <section anchor="source-specific-multicast-quic-session-with-transport-encryption-using-a-symmetric-key" numbered="true" toc="default">
          <name>Source-specific Multicast QUIC Session with Transport Encryption using a Symmetric Key</name>
          <t>Advertisement of a multicast QUIC session operating on the IPv6 globally-scoped source-specific multicast group address ff3e::1234 on port 2000 with the source address 2001:db8::1. The session ID is 16 (0x10) and the idle timeout is one minute. At most 10 resources may be concurrently active in the session and the flow rate should not exceed 10 kbits/s. The multicast transport is encrypted using the AEAD cipher suite 0x13,0x01 (<tt>TLS_AES_128_GCM_SHA256</tt>) with the shared session key and IV provided.</t>
          <t>HTTP Alternative Service header field:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Alt-Svc:
    h3m="[ff3e::1234]:2000"; source-address="2001:db8::1";
    session-id=10; session-idle-timeout=60;
    max-concurrent-resources=10; peak-flow-rate=10000;
    cipher-suite=1301; key=4adf1eab9c2a37fd;
    iv=4dbe593acb4d1577ad6ba7dc3189834e
]]></artwork>
        </section>
        <section anchor="source-specific-multicast-quic-session-with-transport-encryption-content-integrity-and-authenticity" numbered="true" toc="default">
          <name>Source-specific Multicast QUIC Session with Transport Encryption, Content Integrity and Authenticity</name>
          <t>Advertisement of a multicast QUIC session operating on the IPv6 globally-scoped source-specific multicast group address ff3e::1234 on port 2000 with the source address 2001:db8::1. The session ID is 16 (0x10) and the idle timeout is one minute. At most 10 resources may be concurrently active in the session and the flow rate should not exceed 10 kbits/s. The multicast transport is encrypted using the AEAD cipher suite 0x13,0x01 (<tt>TLS_AES_128_GCM_SHA256</tt>) with the shared session key and IV provided. Content integrity is in use with the digest algorithm set restricted to SHA-256. Content authenticity is in use with the signature algorithm set restricted to rsa-sha256.</t>
          <t>HTTP Alternative Service header field:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
Alt-Svc:
    h3m="[ff3e::1234]:2000"; source-address="2001:db8::1";
    session-id=10; session-idle-timeout=60;
    max-concurrent-resources=10; peak-flow-rate=10000;
    cipher-suite=1301; key=4adf1eab9c2a37fd;
    iv=4dbe593acb4d1577ad6ba7dc3189834e;
    digest-algorithm=SHA-256; signature-algorithm=rsa-sha256
]]></artwork>
        </section>
      </section>
      <section anchor="appendix-resource-transfer" numbered="true" toc="default">
        <name>Resource Transfer</name>
        <t>This section shows several different examples of the HTTP message patterns for a single resource.</t>
        <t>Examples that show HTTP/3 <tt>PUSH_PROMISE</tt> or <tt>HEADERS</tt> frames describe the contents of enclosed header block fragments.</t>
        <section anchor="transfer-without-content-integrity-or-authenticity" numbered="true" toc="default">
          <name>Transfer without Content Integrity or Authenticity</name>
          <t>HTTP/3 <tt>PUSH_PROMISE</tt> frame:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
]]></artwork>
          <t>HTTP/3 <tt>HEADERS</tt> frame:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:status: 200
content-length: 100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
]]></artwork>
          <t>HTTP/3 <tt>DATA</tt> frame containing 100 bytes of response body data:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
...
]]></artwork>
        </section>
        <section anchor="transfer-of-partial-content-without-content-integrity-or-authenticity" numbered="true" toc="default">
          <name>Transfer of Partial Content without Content Integrity or Authenticity</name>
          <t>In this example, partial content is transferred as described in <xref target="partial-content" format="default"/>. The <tt>Range</tt> request header is used to indicate the sender's original intention to transfer all 100 bytes of the representation. The <tt>Content-Range</tt> response header indicates that only the first 50 bytes were actually sent.</t>
          <t>HTTP/3 <tt>PUSH_PROMISE</tt> frame:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
range: bytes=0-*
]]></artwork>
          <t>HTTP/3 <tt>HEADERS</tt> frame:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:status: 206
content-length: 100
content-range: bytes 0-49/100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
]]></artwork>
          <t>HTTP/3 <tt>DATA</tt> frame containing 50 bytes of response body data:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
...
]]></artwork>
        </section>
        <section anchor="transfer-with-content-integrity-and-without-authenticity" numbered="true" toc="default">
          <name>Transfer with Content Integrity and without Authenticity</name>
          <t>In this example, content integrity is assured by the inclusion of the <tt>Digest</tt> response header, as described in <xref target="security-integrity" format="default"/>.</t>
          <t>HTTP/3 <tt>PUSH_PROMISE</tt> frame:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
]]></artwork>
          <t>HTTP/3 <tt>HEADERS</tt> frame including the <tt>Digest</tt> header:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:status: 200
content-length: 100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
digest: SHA-256=DieQ9zfRaDdyAilTVCvmBePuxMm+B6cNocP+QCrNSqo=
]]></artwork>
          <t>HTTP/3 <tt>DATA</tt> frame containing 100 bytes of response body data:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
...
]]></artwork>
        </section>
        <section anchor="partial-transfer-with-content-integrity-and-without-authenticity" numbered="true" toc="default">
          <name>Partial Transfer with Content Integrity and without Authenticity</name>
          <t>In this example, partial content is transferred as described in <xref target="partial-content" format="default"/>. The <tt>Range</tt> request header is used to indicate the sender's intention to transfer all 100 bytes of the representation. The <tt>Content-Range</tt> response header indicates that only the first 50 bytes were actually sent. Content integrity is assured by the inclusion of the <tt>Digest</tt> response header, as described in <xref target="security-integrity" format="default"/>.</t>
          <t>HTTP/3 <tt>PUSH_PROMISE</tt> frame:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
range: bytes=0-*
]]></artwork>
          <t>HTTP/3 <tt>HEADERS</tt> frame including the <tt>Digest</tt> header:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:status: 206
content-length: 100
content-range: bytes 0-49/100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
digest: SHA-256=DieQ9zfRaDdyAilTVCvmBePuxMm+B6cNocP+QCrNSqo=
]]></artwork>
          <t>HTTP/3 <tt>DATA</tt> frame containing 50 bytes of response body data:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
...
]]></artwork>
        </section>
        <section anchor="transfer-with-content-integrity-and-authenticity" numbered="true" toc="default">
          <name>Transfer with Content Integrity and Authenticity</name>
          <t>In this example, content integrity is assured by the inclusion of the <tt>Digest</tt> response header, as described in <xref target="security-integrity" format="default"/>. Content authenticity is assured separately for the request and the response messages by the <tt>Signature</tt> header which protects the header fields described in further detail below. The <tt>Signature</tt> header parameter <tt>keyId</tt> contains the URL of a file containing the public key related to the multicast sender's private key used to create the digital signature.</t>
          <t>HTTP/3 <tt>PUSH_PROMISE</tt> frame including a <tt>Signature</tt> header protecting the <tt>:method</tt> and <tt>:path</tt> (the request target), as well as the <tt>:scheme</tt> and <tt>:authority</tt> of the pseudo-request:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
signature: keyId="https://example.org/mcast-sender.example.org.pem",
    algorithm=rsa-sha256,
    headers="(request-target) :scheme :authority",
    signature="MGQCMFTaFptaM2FhgzJq2i9AaChuFDHjp6GiXVtRnI8BsA"
]]></artwork>
          <t>HTTP/3 <tt>HEADERS</tt> frame including a <tt>Signature</tt> header protecting the <tt>:method</tt>, <tt>:path</tt>, <tt>:scheme</tt> and <tt>:authority</tt> of the pseudo-request above, plus the <tt>Date</tt> and <tt>Digest</tt> of the response:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:status: 200
content-length: 100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
digest: SHA-256=DieQ9zfRaDdyAilTVCvmBePuxMm+B6cNocP+QCrNSqo=
signature: keyId="https://example.org/mcast-sender.example.org.pem",
    algorithm=rsa-sha256,
    headers="(request-target) :scheme :authority date digest",
    signature="MGUCMBgx6cuwTzg0W29zNUra8xfMsEcb3rFA3Y"
]]></artwork>
          <t>HTTP/3 <tt>DATA</tt> frame containing response body data:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
...
]]></artwork>
        </section>
        <section anchor="partial-transfer-with-content-integrity-and-authenticity" numbered="true" toc="default">
          <name>Partial Transfer with Content Integrity and Authenticity</name>
          <t>In this example, partial content is transferred and the <tt>Range</tt> header (as described in <xref target="partial-content" format="default"/>) is used to indicate that 50 bytes out of 100 bytes were transferred. Content integrity is provided by the inclusion of the <tt>Digest</tt> header, as described in <xref target="security-integrity" format="default"/>. Authenticity is provided by the <tt>Signature</tt> header which protects the header fields described in further detail. The <tt>Signature</tt> header parameter <tt>keyId</tt> contains the URL of a file containing the public key related to the multicast sender's private key used to create the digital signature.</t>
          <t>HTTP/3 <tt>PUSH_PROMISE</tt> frame:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
range: bytes=0-*
signature: keyId="https://example.org/mcast-sender.example.org.pem",
    algorithm=rsa-sha256,
    headers="(request-target) :scheme :authority range",
    signature="MGQCMFTaFptaM2FhgzJq2i9AaChuFDHjp6GiXVtRnI8BsA"
]]></artwork>
          <t>HTTP/3 <tt>HEADERS</tt> frame protecting the <tt>:method</tt>, <tt>:path</tt>, <tt>:scheme</tt> and <tt>:authority</tt> of the pseudo-request above, plus the <tt>Date</tt>, <tt>Digest</tt> and <tt>Content-Range</tt> of the response:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
:status: 206
content-length: 100
content-range: bytes 0-49/100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
digest: SHA-256=DieQ9zfRaDdyAilTVCvmBePuxMm+B6cNocP+QCrNSqo=
signature: keyId="https://example.org/mcast-sender.example.org.pem",
    algorithm=rsa-sha256,
    headers="(request-target) :scheme :authority
        date digest content-range",
    signature="MGUCMBgx6cuwTzg0W29zNUra8xfMsEcb3rFA3Y"
]]></artwork>
          <t>HTTP/3 <tt>DATA</tt> frame containing response body data:</t>
          <artwork name="" type="" align="left" alt=""><![CDATA[
...
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="appendix-differences-summary-tables" numbered="true" toc="default">
      <name>Summary of differences from unicast QUIC and HTTP/3</name>
      <table anchor="crypto-trans-table" align="center">
        <name>Cryptography and Transport</name>
        <thead>
          <tr>
            <th align="left">Protocol feature</th>
            <th align="left">Unicast QUIC</th>
            <th align="left">Multicast QUIC profile</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Packet number spaces</td>
            <td align="left">QUIC transport packets are seperated into three distinct packet number spaces: initial, handshake and application data.</td>
            <td align="left">All packets are numbered in the application data packet number space.</td>
          </tr>
          <tr>
            <td align="left">Transport handshake</td>
            <td align="left">Combined cryptographic and transport handshake stream conveying TLS handshake messages in QUIC Initial and Handshake packets.</td>
            <td align="left">Not used.</td>
          </tr>
          <tr>
            <td align="left">TLS cipher suite</td>
            <td align="left">Client's preferred cipher suite included in Client Hello message.</td>
            <td align="left">Cipher suite optionally advertised out of band via Alt-Svc <tt>cipher-suite</tt> parameter. Default cipher suite is <tt>0x00,0x00 (NULL_WITH_NULL_NULL)</tt>.</td>
          </tr>
          <tr>
            <td align="left">TLS session key</td>
            <td align="left">Session key included in Server Hello message.</td>
            <td align="left">Session key optionally advertised out of band via Alt-Svc <tt>key</tt> parameter.</td>
          </tr>
          <tr>
            <td align="left">TLS initialization vector</td>
            <td align="left">Initialization vector included in Server Hello message.</td>
            <td align="left">Initialization vector optionally advertised out of band via Alt-Svc <tt>iv</tt> parameter.</td>
          </tr>
        </tbody>
      </table>
      <table anchor="req-trans-param-table" align="center">
        <name>Required Transport Parameters</name>
        <thead>
          <tr>
            <th align="left">Protocol feature</th>
            <th align="left">Unicast QUIC</th>
            <th align="left">Multicast QUIC profile</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>initial_max_data</tt></td>
            <td align="left">Connection-level flow control window size.</td>
            <td align="left">Not used. Peak flow rate of a session optionally advertised out of band via Alt-Svc <tt>peak-flow-rate</tt> parameter.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>initial_max_stream_data_bidi_local</tt></td>
            <td align="left">Locally-initiated bidirectional stream flow control window size.</td>
            <td align="left">Not used. No bidirectional streams in this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>initial_max_stream_data_bidi_remote</tt></td>
            <td align="left">Remotely-initiated bidirectional stream flow control window size.</td>
            <td align="left">Not used. No bidirectional streams in this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>initial_max_stream_data_uni</tt></td>
            <td align="left">Unidirectional stream flow control window size.</td>
            <td align="left">Not used. Peak flow rate of a session optionally advertised out of band via Alt-Svc <tt>peak-flow-rate parameter</tt>.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>initial_max_streams_bidi</tt> and <tt>initial_max_streams_uni</tt></td>
            <td align="left">Maximum stream concurrency.</td>
            <td align="left">Not used. Maximum concurrent resources in a session optionally advertised out of band via Alt-Svc <tt>max-concurrent-resources</tt> parameter.</td>
          </tr>
        </tbody>
      </table>
      <table anchor="opt-trans-param-table" align="center">
        <name>Optional Transport Parameters</name>
        <thead>
          <tr>
            <th align="left">Protocol feature</th>
            <th align="left">Unicast QUIC</th>
            <th align="left">Multicast QUIC profile</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>original_destination_connection_id</tt></td>
            <td align="left">The value of the Destination Connection ID field from the first Initial packet sent by the client.</td>
            <td align="left">Not used. No client interaction.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>max_idle_timeout</tt></td>
            <td align="left">How long to keep an idle connection open for before closing. Takes a default of 0 (never close on idle) if not specified.</td>
            <td align="left">Not used. Advertised out of band via Alt-Svc <tt>session-idle-timeout</tt> parameter; defaults to 0 (never close on idle) if not specified.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>stateless_reset_token</tt></td>
            <td align="left">Used in verifying a stateless reset.</td>
            <td align="left">Not used. Stateless reset is not used by this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>max_udp_payload_size</tt></td>
            <td align="left">Limit of the size of packets that an endpoint is willing to receive.</td>
            <td align="left">Not used. Maximum packet size for a session optionally advertised out of band via Alt-Svc <tt>max-packet-size</tt> parameter.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>ack_delay_exponent</tt></td>
            <td align="left">The exponent used to decode the ACK Delay field in the <tt>ACK</tt> frame.</td>
            <td align="left">Not used. <tt>ACK</tt> frames are prohibited by this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>max_ack_delay</tt></td>
            <td align="left">Maximum time in milliseconds by which an endpoint will delay sending acknowledgements.</td>
            <td align="left">Not used. <tt>ACK</tt> frames are prohibited by this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>disable_active_migration</tt></td>
            <td align="left">Signals if an endpoint does not support connection migration.</td>
            <td align="left">Not used. Session migration not currently supported by this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>preferred_address</tt></td>
            <td align="left">Used to effect a change in server address at the end of the handshake.</td>
            <td align="left">Not used. No handshake in this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>active_connection_id_limit</tt></td>
            <td align="left"> </td>
            <td align="left">Not used. Only a single session identifier is used in this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>initial_source_connection_id</tt></td>
            <td align="left">The value that an endpoint included in the Source Connection ID field of the first Initial packet it sent for the connection</td>
            <td align="left">Not used. No client interaction.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>retry_source_connection_id</tt></td>
            <td align="left">The value that the server included in the Source Connection ID field of a retry packet</td>
            <td align="left">Not used. Retry packets are not used in this profile.</td>
          </tr>
        </tbody>
      </table>
      <table anchor="quic-packet-table" align="center">
        <name>QUIC Packet Layer</name>
        <thead>
          <tr>
            <th align="left">Protocol feature</th>
            <th align="left">Unicast QUIC</th>
            <th align="left">Multicast QUIC profile</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Maximum packet size</td>
            <td align="left">Determined by path MTU discovery or other heuristic.</td>
            <td align="left">Determined by path MTU discovery or other heuristic.</td>
          </tr>
          <tr>
            <td align="left">Long header packet</td>
            <td align="left">Used for packets that are sent prior to the completion of version negotiation and before packet protection keys are established.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">Version negotiation packet</td>
            <td align="left">Protocol version negotiation between initiating client and server.</td>
            <td align="left">Not permitted.</td>
          </tr>
          <tr>
            <td align="left">Stateless reset packet</td>
            <td align="left">Used by a peer to terminate a connection that has become unusable.</td>
            <td align="left">Not permitted. (Potential denial-of-service attack vector.)</td>
          </tr>
          <tr>
            <td align="left">Short header packet</td>
            <td align="left">Used for packets that are sent once a connection has been established. Used to convey QUIC frames (see below).</td>
            <td align="left">Used to convey QUIC frames (see below).</td>
          </tr>
          <tr>
            <td align="left">Source Connection ID field, Destination Connection ID field</td>
            <td align="left">Connection IDs negotiated between client and server during handshake and may be changed subsequently using the <tt>NEW_CONNECTION_ID</tt> frame.</td>
            <td align="left">Source Connection ID not used. Destination Connection ID redefined to be a Multicast Session ID which is optionally advertised out of band via the Alt-Svc <tt>session-id</tt> parameter. May be omitted from packets if the address/port tuple is sufficient to identify the session, in which case it is not advertised.</td>
          </tr>
        </tbody>
      </table>
      <table anchor="quic-framing-table" align="center">
        <name>QUIC Framing Layer</name>
        <thead>
          <tr>
            <th align="left">Protocol feature</th>
            <th align="left">Unicast QUIC</th>
            <th align="left">Multicast QUIC profile</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">
              <tt>PADDING</tt> frame</td>
            <td align="left">Used to pad out a QUIC packet with zero bytes. (The first packet sent on a connection must be at least 1200 bytes long to prove that the network can transmit packets of at least this size.)</td>
            <td align="left">Permitted, but wasteful of network capacity.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>PING</tt> frame</td>
            <td align="left">Used by an endpoint to verify that its peer is still alive. Acknowledged using a regular <tt>ACK</tt> frame.</td>
            <td align="left">Used by the multicast sender as a session keep-alive notification. Never acknowledged.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>ACK</tt> frames</td>
            <td align="left">Used by a receiver to acknowledge receipt of data from its peer.</td>
            <td align="left">Both <tt>ACK</tt> frame types are prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>RESET_STREAM</tt> frame</td>
            <td align="left">Request by receiver for sender to terminate a stream transmission prematurely.</td>
            <td align="left">Indication to receivers that the multicast sender has prematurely terminated a stream transmission. Prohibited for receivers to send.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>STOP_SENDING</tt> frame</td>
            <td align="left">Flow control back pressure. Used to signal to a peer that incoming data on a stream is being discarded on receipt at the application's request. This abruptly terminates a stream.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>CRYPTO</tt> frame</td>
            <td align="left">Used to transmit cryptographic handshake messages.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>NEW_TOKEN</tt> frame</td>
            <td align="left">Used by a server to supply a token to its client to be sent in the header of an initial packet for a future connection. Used to facilitate connection migration.</td>
            <td align="left">Prohibited. Session migration not currently supported by this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>STREAM</tt> frame</td>
            <td align="left">Conveys application-layer payloads (see HTTP/3 mapping below).</td>
            <td align="left">Conveys application-layer payloads (see HTTP/3 mapping below).</td>
          </tr>
          <tr>
            <td align="left">
              <tt>FIN</tt> bit on <tt>STREAM</tt> frame</td>
            <td align="left">Indication by sender to its peer that a stream transmission has finished.</td>
            <td align="left">Indication by the multicast sender that a stream transmission has finished.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>MAX_DATA</tt> frame</td>
            <td align="left">Flow control update notification.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>MAX_STREAM_DATA</tt> frame</td>
            <td align="left">Flow control update notification.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>MAX_STREAMS</tt> frame</td>
            <td align="left">Used by an endpoint to inform a peer of the maximum stream ID that it is permitted to open.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>DATA_BLOCKED</tt> frame</td>
            <td align="left">Notification to receiver that sender's transmission is blocked pending an update to its flow control window by peer.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>STREAM_DATA_BLOCKED</tt> frame</td>
            <td align="left">Notification to receiver that sender's transmission of a single stream is blocked pending an update to its flow control window by peer.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>STREAMS_BLOCKED</tt> frames</td>
            <td align="left">Notification to receiver that the sender wishes to open a stream but is unable to do so because the maximum stream ID has been reached for a given stream type.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>NEW_CONNECTION_ID</tt> frame</td>
            <td align="left">Used to provide a peer with alternative connection IDs that can be used to break linkability when migrating connections.</td>
            <td align="left">Prohibited. Session migration not currently supported by this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>RETIRE_CONNECTION_ID</tt> frame</td>
            <td align="left">Indicates that an endpoint will no longer use a connection ID that was issued by its peer.</td>
            <td align="left">Prohibited. Session migration not currently supported by this profile.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>PATH_CHALLENGE</tt> frame</td>
            <td align="left">Used to check reachability to a peer and for path validation during connection migration.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>PATH_RESPONSE</tt> frame</td>
            <td align="left">Sent in response to a <tt>PATH_CHALLENGE</tt> frame.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>CONNECTION_CLOSE</tt> frame</td>
            <td align="left">Notification (by either peer) of graceful connection shutdown.</td>
            <td align="left">Prohibited. Use HTTP explicit session tear-down instead (see <xref target="http-quic-session-tear-down" format="default"/>).</td>
          </tr>
          <tr>
            <td align="left">
              <tt>HANDSHAKE_DONE</tt> frame</td>
            <td align="left">Used by a server to inform a client that the cryptographic handshake has completed.</td>
            <td align="left">Prohibited.</td>
          </tr>
        </tbody>
      </table>
      <table anchor="http-quic-mapping-table" align="center">
        <name>HTTP/3 Mapping</name>
        <thead>
          <tr>
            <th align="left">Protocol feature</th>
            <th align="left">Unicast HTTP/3</th>
            <th align="left">Multicast HTTP/3 profile</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Stream Type</td>
            <td align="left">Type of unidirectional stream.</td>
            <td align="left">Only Server Push type is permitted.</td>
          </tr>
          <tr>
            <td align="left">Push ID</td>
            <td align="left">Identifies a promised resource conveyed in an earlier <tt>PUSH_PROMISE</tt> frame.</td>
            <td align="left">Identifies a promised resource conveyed in an earlier <tt>PUSH_PROMISE</tt> frame.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>DATA</tt> frame</td>
            <td align="left">Carriage of HTTP request/response message body.</td>
            <td align="left">Carriage of HTTP response message body.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>HEADERS</tt> frame</td>
            <td align="left">Carriage of HTTP request/response message metadata. Trailing <tt>HEADERS</tt> frame is permitted.</td>
            <td align="left">Carriage of HTTP response message metadata. Trailing <tt>HEADERS</tt> frame is permitted.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>CANCEL_PUSH</tt> frame</td>
            <td align="left">Used to request cancellation of server push prior to the push stream being created.</td>
            <td align="left">Permitted only for senders.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>SETTINGS</tt> frame</td>
            <td align="left">Negotiation of HTTP/3 connection settings.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>PUSH_PROMISE</tt> frame</td>
            <td align="left">Carriage of HTTP pseudo-request message metadata.</td>
            <td align="left">Carriage of HTTP pseudo-request message metadata. All HTTP representation transfers over multicast begin this way. Stream ID of the first client-initiated bidirectional stream is reserved and all <tt>PUSH_PROMISE</tt> frames reference this as the client request from which they are notionally derived. This stream remains open while a sender is participating in the multicast QUIC session.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>GOAWAY</tt> frame</td>
            <td align="left">Early notification (by either endpoint) of future connection closure, allowing for orderly completion of open streams.</td>
            <td align="left">Prohibited. Use HTTP explicit session tear-down instead.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>MAX_PUSH_ID</tt> frame</td>
            <td align="left">Used by a receiver to control the number of server pushes that a sender can initiate.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">
              <tt>ALTSVC</tt> HTTP/2 extension frame</td>
            <td align="left">Signalling alternative service for HTTP/3 session.</td>
            <td align="left">Prohibited.</td>
          </tr>
          <tr>
            <td align="left">Other HTTP/2 extension frames</td>
            <td align="left"> </td>
            <td align="left">Prohibited.</td>
          </tr>
        </tbody>
      </table>
      <table anchor="http-metadata-compression-table" align="center">
        <name>HTTP Metadata Compression Layer</name>
        <thead>
          <tr>
            <th align="left">Protocol feature</th>
            <th align="left">Unicast HTTP/3</th>
            <th align="left">Multicast HTTP/3 profile</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Huffman string compression</td>
            <td align="left">Header blocks may use Huffman codes to compress literal string values.</td>
            <td align="left">Header blocks may use Huffman codes to compress literal string values.</td>
          </tr>
          <tr>
            <td align="left">Static table</td>
            <td align="left">Header blocks may refer to indexed entries in the static table.</td>
            <td align="left">Header blocks may refer to indexed entries in the static table.</td>
          </tr>
          <tr>
            <td align="left">Dynamic table</td>
            <td align="left">Header blocks may insert entries into the dynamic table and subsequent header blocks may refer to their indexes. Unused as size is currently locked to 0.</td>
            <td align="left">Prohibited, size is currently locked to 0.</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="changelog" numbered="true" toc="default">
      <name>Changelog</name>
      <ul empty="true">
        <li>
          <t><strong>RFC Editor's Note:</strong> Please remove this section prior to publication of a
final version of this document.</t>
        </li>
      </ul>
      <section anchor="since-draft-pardue-quic-http-mcast-10" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-10</name>
        <ul spacing="normal">
          <li>Remove stale Author's Notes about QUIC and HTTP/3 specifications being in flux now that the specifications are RFCs</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-09" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-09</name>
        <ul spacing="normal">
          <li>Update references to HTTP/3 and QPACK I-Ds to <xref target="RFC9114" format="default"/> and <xref target="RFC9204" format="default"/> respectively.</li>
          <li>Update reference to DATA_WITH_OFFSET frame draft.</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-08" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-08</name>
        <ul spacing="normal">
          <li>Update references to QUIC WG I-Ds to <xref target="RFC9000" format="default"/>, <xref target="RFC9001" format="default"/> and <xref target="RFC9002" format="default"/>.</li>
          <li>Update reference to DATA_WITH_OFFSET frame draft.</li>
          <li>Update informative reference for SDP to <xref target="RFC8866" format="default"/> as 4566 has been obsoleted by it</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-07" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-07</name>
        <ul spacing="normal">
          <li>Update references to QUIC WG I-Ds.</li>
          <li>Remove stale references to sections of the QUIC WG I-Ds that don't exist any more.</li>
          <li>Add references to the DATA_WITH_OFFSET frame I-D.</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-06" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-06</name>
        <ul spacing="normal">
          <li>Update references to QUIC WG I-Ds.</li>
          <li>Clarify that only the first source-address parameter should be used if duplicated.</li>
          <li>Fix source-address example to not be a quoted string.</li>
          <li>Fix bytes in the ALPN identification sequence following change to h3m.</li>
          <li>Update language around QUIC Connection IDs to reflect the core specs.</li>
          <li>Update frame and transport parameter names throughout to match core specifications.</li>
          <li>Remove Author's Note about reserved stream ID for <tt>PUSH_PROMISE</tt> frames.</li>
          <li>Update language around QPACK static and dynamic table indexing to more closely align with the core spec.</li>
          <li>Update Session Idle Timeout to match core specs, including removing limitation of 600 seconds and expressing in milliseconds, not seconds.</li>
          <li>Preface Session Termination with a statement clarifying that participants may leave at any time.</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-05" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-05</name>
        <ul spacing="normal">
          <li>Update references to QUIC WG I-Ds.</li>
          <li>Sender packet number size is now fixed for the duration of a session.</li>
          <li>Change how to handle multiple session IDs: sessions are now only allowed a single ID.</li>
          <li>Remove incompatible requirements set by <xref target="RFC9000" format="default"/>'s "Required Operations".</li>
          <li>Additionally ban <tt>HANDSHAKE_DONE</tt>.</li>
          <li>Remove Version Negotiation now that the <tt>quic</tt> Alt-Svc parameter has been removed (examples also updated).</li>
          <li>Remove HTTP Prioritization references.</li>
          <li>Add new <tt>extensions</tt> Alt-Svc parameter.</li>
          <li>Broaden peak flow rate to QUIC payload to encompass all frame types.</li>
          <li>Change ALPN identifier to h3m.</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-04" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-04</name>
        <ul spacing="normal">
          <li>Update references to QUIC WG I-Ds, remove QUIC-SPIN. (draft-ietf-quic-transport-20)</li>
          <li>Update session ID length to match new connection ID length. (draft-ietf-quic-transport-22)</li>
          <li>Clarify the mapping for the new <tt>active_connection_id_limit</tt> session parameter. (draft-ietf-quic-transport-21)</li>
          <li>Update text to conform with latest version negotiation text from <xref target="RFC9000" format="default"/>.</li>
          <li>Update stream types for server push in accordance with draft-ietf-quic-http-19.</li>
          <li>Fix some idnits warnings to do with line lengths in Alt-Svc examples.</li>
          <li>Update IPv6 informative reference to RFC 8200 as it obsoletes RFC 2460.</li>
          <li>Clarify difference between connection and session migration.</li>
          <li>Move GOAWAY frame to HTTP/3 profile.</li>
          <li>Renamed Session Shutdown to Connection Shutdown to mirror concept in <xref target="RFC9000" format="default"/>.</li>
          <li>Clarify the layer of each frame type when referred to.</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-03" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-03</name>
        <ul spacing="normal">
          <li>Update references to QUIC WG I-Ds.</li>
          <li>Change crypto handshake text now that it's no longer done on Stream ID 0.</li>
          <li>Update to reference Source and Destination Connection IDs.</li>
          <li>Prohibit the use of connection coalescing, migration and ECN.</li>
          <li>Update allowed and disallowed packets and frames to match the core specs.</li>
          <li>Remove references to the PONG frame. (draft-ietf-quic-transport-10)</li>
          <li>Change HTTP/QUIC to HTTP/3. (draft-ietf-quic-http-17)</li>
          <li>Change HPACK to QPACK. (draft-ietf-quic-http-10)</li>
          <li>Prohibit the DUPLICATE_PUSH frame.</li>
          <li>Clarify packet number space (only use application data space, not initial or handshake).</li>
          <li>Add statement on QUIC latency spin bit.</li>
          <li>Removed sentence stating that multiple Connection IDs cannot be used concurrently in a unicast QUIC session, in accordance with <xref target="RFC9000" format="default"/> section 5.1.2.</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-02" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-02</name>
        <ul spacing="normal">
          <li>No changes.</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-01" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-01</name>
        <ul spacing="normal">
          <li>Explicit guidance on maximum stream ID value permitted.</li>
          <li>Updated guidance on PING (and PONG) frame.</li>
          <li>Added a comparison table to appendix.</li>
          <li>Remove invalid use of trailing headers.</li>
          <li>Use the new HTTP/QUIC DATA frame.</li>
          <li>Prohibit APPLICATION CLOSE frame, and move GOAWAY frame to HTTP/QUIC section.</li>
          <li>Redefine server push to reflect core document changes.</li>
          <li>Remove default idle time out value.</li>
          <li>Clarify session parameter requirements (session-idle-timeout became mandatory).</li>
          <li>Update frame notation convention.</li>
        </ul>
      </section>
      <section anchor="since-draft-pardue-quic-http-mcast-00" numbered="true" toc="default">
        <name>Since draft-pardue-quic-http-mcast-00</name>
        <ul spacing="normal">
          <li>Update references to QUIC WG I-Ds.</li>
          <li>Relax session leaving requirements language.</li>
          <li>Clarify handling of omitted session parameter advertisements.</li>
          <li>Rename "Idle" state to "Quiescent".</li>
          <li>Add digest algorithm session parameter.</li>
          <li>Add signature algorithm session parameter.</li>
          <li>Add Initialization Vector session parameter.</li>
          <li>Replace COPT tag-value-pairs with TransportParameter values.</li>
          <li>Add example of an advertisement for a session with content authenticity and integrity.</li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
