<?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-10" 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-10"/>
    <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>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> Security handshake (as described in WG documents) is in flux. This section will track developments and will be updated accordingly.</t>
          </li>
        </ul>
        <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>
        <ul empty="true">
          <li>
            <t><strong>Authors' Note:</strong> Security handshake (as described in WG documents) is in flux. This section will track developments and will be updated accordingly.</t>
          </li>
        </ul>
        <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. It will track developments and issues that may arise.</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>
      <ul empty="true">
        <li>
          <t><strong>Authors' Note:</strong> The QUIC transport document is subject to change. This section is based on our best understanding of draft-ietf-quic-transport-29. The authors will track developments and will update this section accordingly.</t>
        </li>
      </ul>
      <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>
      <ul empty="true">
        <li>
          <t><strong>Authors' Note:</strong> The HTTP/3 mapping document is subject to change. This section is based on our best understanding of draft-ietf-quic-http-29. The authors will track developments and will update this section accordingly.</t>
        </li>
      </ul>
      <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. The IETF's QUIC Working Group is chartered to specify one (or more) new FEC schemes in the future. This section will track developments in this area, and will be updated accordingly.</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-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:
H4sIAOygwmIAA+29e3fbRpYv+r8+Ba6y1o2UJhlJfkYZzxxFkm2dWI+W5GR6
zZorQSQoog0SbACUrNg+n/3sZ9UuAKQo20ln5o5Xr45NEoV67Nrv/dvdbnel
Sqss2Y5e302TokreV9F5EU/KYVJEJ0Ve5f08i9Zen5+frEf5DXw4nmVV2o/L
Kvrr24Pdlfjqqkhu4HH4Bf/g0H85yPuTeAyDD4p4WHWncTGYJd1/zNJ+d1RV
0+4Yf9rd3FgZxBX86sPezvn+p5U+/OM6L+62o+T9dCWdFttRVczKamtj44eN
rZWVlbKKJ4OLOMsn8NBdUq5M0+3oP2CqnajMi6pIhiX87W7Mf4FJjOPpNJ1c
/+fKSjyrRnmxvRJ1VyL4k07K7ehNLzqhmdFHPOE3M5ia/TgZx2m2HWX4Oa+j
t/W49+x/XePnvX4+XgnGPO1FPxXx4GpW3JlRT9P+CJ4Nv8qL6+3op592o9Ok
TOKiP4r+32gvuUmyfDpOJpV9e8HP967k+f91ddWHd/dm78K3n/Wi17OirMyr
z+Kx+ewB7yzjcW+ED9qXTfJiHFfpTQI7Gb1+1IWD2+kev3x5tn++TQ8LUa3u
TKLj4bBMqmj/fZVMyjSfRC8LmFH0Mi+IaL5/FO3FVbxKjwV0gB+USZEmZToZ
5jxuFB1MqqSYJFV3D2lKSYtmaCgLBoq7Ob25O8T3dYFy8HFHAPSnK/9t27d5
e7fM/q10u90oviqrIu7Dv85HaYl0OMMvo3Ka9NMhLCuKo2mRD9MsifJhVI0S
ujX4GV87oHL6VLZJqBg+iqtoGPfTLK1gv0r6TaWXFkaiu1gkZT4r+vB17doe
nESzkseRF9KzU7g5EdB8WpUR7hj+Aicwjfvvkiot4bjh7LL4Lil60W4+nsIH
VziFu+g2rUbN6X9bwh2cVPF7GqYEcprADOAFJawkhS/SSTLANw7jAv8zxb2C
KfK648EgxTfCP4dJXM0K3K4icZs3iG5HCfy7wq2F/03yKprmZZleZUmP93+c
DgZZAvziGySaIh/M+jgiHkcSjRNYc1Tl0dUse+d3b9Guffjwb6cvdzc3N7c+
fZItpJ32S5vC43DCMNNJlE9xR2cT3CB4zTiHySbDYdpP4RfZXTRIshRfARR+
k+IL4VBLWH3SgZUhSWRAT0V8rSd1m8QZbDMcb/I+LSt9e7dIMiAC2GBkisAc
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
E8Q1TUoHV2UGaJ/bA0eASe3dTUC5WjQruEpJUZmRFGA1eJKiO74z2mj+1CpC
OuUJws68ncwEc51irdhI0NkUYvliylBI8p17f+zpW+VD11BIk86jQ+3cu2sI
yWmc0vA5yfJrbtR6+nI32h9gDxGw4rVZ6wm69BNuzCvMXTGTnMjmeiYnXmMY
bUh4MBombTT9YGhV6qY3KOJhhfH1wSzhi8tLpOKNjR9WVrrRW/YNOBlD5CnX
EA/pryeYwnPQ3aMvpFXN5uZjh2FKH2xtPKZGCpiLVUk3z+bYOAK5Pyjr+/jl
S9AmhKvRTJef+vO5Uyep9Our+oyluQ5DrsK/NgMMVvhgC6ENPmfK7plUm+rc
2OeRG5/tnfBUqJPV86fYTB4I+PGTp0+9NyO/KnOyediqXnorni21FTjPU6Yz
uNRZ/adCdg7JItxFlF+DfPItQnalVCN/R82/cdCdwaA2FuVFtm8ZDLf8GT9d
emG7WewDVjUEjRDmzZQW+r5YnKUyjAYz9iYjfGU3epm+rz+sPX4qbiVHgd9/
zHI8M+bf+hyH+oSJYjuKerOBUtozGHxqyaqCsUePxoasMvh4Rp1CixzRn2nx
tSg62QHDTFsm9qnvJFzF0ozDJxDWrkwDxG48aXjHNaGyYNOjuMJYsA7mZm+J
iRtQC0+TVihOrfU+O7wFrcrtooUS5xERhPMOJQhJBEmRHGsmK4a64gyBvB3g
oJu/eVUbRH7LisuOKW8nLo1/oSQ0x5CfbmxEmlyIk5S2IKIx29zDDifz8T9w
MidwZtikXWdzLmGqVFE9JT2VO1owjXNeQ1yFLfukPdcNhZzxdmLu4/I37cnS
N036VdfqqES2TvJbuHTvE4dQjv42L7mcNoo3lomden5yLqD2hJpmFtqzdH0K
NKnsli+4thVxDvCDPUOVFFREu+UqS2wP7pKgJl0fDpYKQLw+T/1YW1+Xq8Ld
UmdDXYEGV/d9mZdqdpM1iCfU1FQ8Xpe48ZfN5iXWo40jDaI1B41IGPHsvx+s
m5eRDnKCSgLMT4qH/NEpY8ZWPJceUb/l3fjLn7CpI7x9GpZG6PFLSI1SQHlf
MdUTrFUTHTdnGrA7VuGIoS1LjI+XIsaOak34Yffs5OCoF63xwGlSDXlY37N5
a2Pdj2qQY7kg11/9CaHoW5c3/2Lx4FvrgRBKXMBR7wGdw6KMVp2SyfRZ9MJN
sxrqTcOWKHlaiXNg4TsIv7ZUOvo9eQvsJTDM0YRQSvEAeVcS+vn62MyammTS
u+rzpMPc/MHLUPRqDSYYKLiNC6ymLSXUw1NNJ4nsMolMJVG9AmZmBDjcrmbB
gKhiP8dEG4xPVE6fKumLrcdPN6yq4Atufd6ZP3fOPasFMPDxQyQ59nIo+ec1
o5UvKcrTgePsZ+Kgx18b0W0/HqdFkRfcVmxa1dtC9moExsFuxCuNgWr9ReQ4
kysGrfLl792j5dUtvujswDeee6Isx/FSrEv14aQB4i/nE+Mz2zAnywqMHIik
5VHjjHkpeCJA2cCjLZFertaBlIOiW/aB4DomDIXD7u8emZc7WYI6RlrqP22L
bHGLOD7R1LKELzdV4ZPjo1fqAV9wpzeJQ8nWEkVxXbWSV8vDfNGe2edIZcIj
w7/MfYReFWze3tuTNwe7O+f75PeS6RqaaymcjtZIEFOYsF5nTT9gfUdTU7DD
t1LKusonr97kE22ZVmGZG4wANwBm57d2QOkvRCCkE6oi5LSGmk7cjyeipJN+
H8B6U2lcUJZvcyDrDM5eRGegP+lt9raWv11bsA5M4KdzKpd/bhNv5b46Lq9n
Kc8L+VIjMM4p/j564Ch8EDyIKYDRGnU6B9Jc94cNJ0IaFcn4Ii1RWGhgXpEK
AiWLIqt68SqNaAi6A72+TJz88zSNxqF/q6PDnROmwYPjo4iiovybDmf7zmW8
cnx9ZdGnkpsbiC1jING19Y3i9EDcsrT+zeHHU2Io7a29EQ2JHeqZa20VbpTY
MEb1YDLAjsV36w37DEg2FuY1uWHcyeWJZeMBroAsfu/WgKYDmzhmBWqO2UW7
NvDocpdAUXMjgm49pZeH0eoB9WmlW4+zWv3rLAUGDb9SZbsNcr6uGSnvaAWS
n/Pj1uZu7T8/TaYZsrfd45NzoP9rbq3XxSacZa3Zgm94JX5beZvrBUzJeWET
pbBIj8brt6EVBn3meyv/F2NZ1UyTmgEA

-->

</rfc>
