<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.3 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<?rfc docmapping="yes"?>

<rfc ipr="trust200902" docName="draft-pardue-quic-http-mcast-01" category="info">

  <front>
    <title abbrev="HTTP over Mcast QUIC">Hypertext Transfer Protocol (HTTP) over multicast QUIC</title>

    <author initials="L." surname="Pardue" fullname="Lucas Pardue">
      <organization>BBC Research &amp; Development</organization>
      <address>
        <email>lucas.pardue@bbc.co.uk</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>

    <date />

    
    
    

    <abstract>


<t>This document specifies a profile of the QUIC protocol and the HTTP/QUIC 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" title="Introduction">

<t>The means to bulk transfer resources over multicast IP <xref target="RFC1112"/> 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"/>. 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="QUIC-TRANSPORT"/> (<xref target="quic-profile"/>) and the HTTP/QUIC mapping <xref target="QUIC-HTTP"/> (<xref target="http-quic-profile"/>). 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 compatibility with conventional QUIC.</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="RFC2460"/> 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"/> to advertise the existence of multicast QUIC sessions (<xref target="session-advert"/>). 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="RFC4566"/> and SAP <xref target="RFC2974"/>.</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" title="Notational Conventions">

<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”,
“RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in <xref target="RFC2119"/>.</t>

<t>This document uses the Augmented BNF defined in <xref target="RFC5234"/> and updated by <xref target="RFC7405"/> along with the “#rule” extension defined in Section 7 of <xref target="RFC7230"/>. The rules below are defined in <xref target="RFC5234"/>, <xref target="RFC7230"/>, and <xref target="RFC7234"/>:</t>

<t><list style="symbols">
  <t>quoted-string = &lt;quoted-string, see <xref target="RFC7230"/>, Section 3.2.6&gt;</t>
  <t>token         = &lt;token, see <xref target="RFC7230"/>, Section 3.2.6&gt;</t>
  <t>uri-host      = &lt;uri-host, see <xref target="RFC7230"/>, Section 2.7&gt;</t>
</list></t>

</section>
<section anchor="definitions" title="Definitions">

<t>Definitions of terms that are used in this document:</t>

<t><list style="symbols">
  <t>endpoint: A host capable of being a participant in a multicast QUIC session.</t>
  <t>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.</t>
  <t>participant: A sender or receiver that is taking part in a multicast QUIC session.</t>
  <t>sender: A participant sending multicast traffic according to this specification.</t>
  <t>receiver: A participant receiving multicast traffic according to this specification.</t>
  <t>session: See multicast QUIC session.</t>
  <t>session ID: The identifier for a multicast QUIC session.</t>
  <t>session parameter: Characteristic of a multicast QUIC session.</t>
</list></t>

</section>
</section>
<section anchor="multicast-quic-sessions" title="Multicast QUIC Sessions">

<t>An HTTP/QUIC connection <xref target="QUIC-TRANSPORT"/> 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 Connection ID. 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) and HTTP-specific settings (conveyed in <spanx style="verb">SETTINGS</spanx> HTTP/2 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/QUIC 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"/>.  Advertisement of multicast QUIC sessions, specified in <xref target="session-advert"/>, 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" title="Session States">
<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>

<t><list style="symbols">
  <t>Quiescent: the session has no participants and is ready to accept them.</t>
  <t>Half-established: the session has a participant.</t>
  <t>Fully-established: the session has a sender and at least one receiver participant.</t>
  <t>Finished: the session has ended, and there are no participants.</t>
</list></t>

<t>Permitted states transitions are shown in <xref target="session-statechart"/> below.</t>

<t>The transmission of QUIC packets is expected to occur only during the Half-Established and Fully-Established states.</t>

<figure title="Multicast QUIC session states" anchor="session-statechart"><artwork><![CDATA[
+-----------+         +------------------+        +-------------------+
|           |-------->|                  |------->|                   |
| Quiescent |         | Half-Established |        | Fully-Established |
|           |<--------|                  |<-------|                   |
+-----------+         +------------------+        +-------------------+
      |                        |
      |                        v
      |                   +----------+
      |                   |          |
      +------------------>| Finished |
                          |          |
                          +----------+
]]></artwork></figure>

<section anchor="session-establishment" title="Session Establishment">
<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" title="Session Termination">
<t>A session enters the Finished state when all participants leave it. The methods for leaving a session are either explicit shutdown (<xref target="http-quic-session-tear-down"/>), implicit shutdown (i.e. idle timeout, <xref target="intro-session-idle-timeout"/>) or migration away (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" title="Session Migration">
<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"/>.</t>

</section>
</section>
<section anchor="intro-session-params" title="Session Parameters">
<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>

<t><list style="symbols">
  <t>In-band exchanges are one-way, and so the client does not have the means to send session parameters.</t>
  <t>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.</t>
</list></t>

<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"/> and is explained in <xref target="session-advert"/>. 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"/>).</t>

</section>
<section anchor="intro-session-id" title="Session Identification">

<t>This document defines a 64-bit 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 Connection ID field of the QUIC packet (see <xref target="quic-connection-id"/>).</t>

<t>A multicast sender participating in a session MUST send QUIC packets with a matching Session ID. A multicast receiver participating in a session MUST validate that the Session ID of received QUIC packets matches that advertised in the session parameters (<xref target="session-advert"/>, <xref target="session-param-advert"/>) 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" title="Session Security">

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> Security handshake (as described in WG documents) is in flux. This section will track developments and will be updated accordingly.</t>
</list></t>

<t>The QUIC Crypto and Transport handshake (see <xref target="QUIC-TRANSPORT"/>, <xref target="QUIC-TLS"/> and <xref target="QUICCrypto"/>) sets out methods to achieve the goals of authenticated key exchange and record protection between two endpoints forming a QUIC connection. The design facilitates low-latency connection; 1-RTT or 0-RTT. The Crypto handshake <xref target="QUIC-TLS"/> reserves QUIC stream 0 for TLS handshake messages.</t>

<t>This specification replaces the in-band security handshake, achieving similar goals through the use of session parameters described in <xref target="intro-security-params"/>. For the purpose of compatibility, the use of QUIC stream 0 (see <xref target="quic-stream-id"/>) is reserved.</t>

<t>Integrity and authenticity concerns are addressed in <xref target="security-integrity"/> and <xref target="security-authenticity"/> 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" title="Session Advertisement">

<t>In this specification, connection negotiation is replaced with a session advertisement mechanism based on HTTP Alternative Services (Alt-Svc) <xref target="RFC7838"/>. 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"/>, with examples provided in <xref target="appendix-session-advertisement"/>. 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>The freshness of Alt-Svc multicast QUIC session advertisements is as described in section 2.2 of <xref target="RFC7838"/>.</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"/>.</t>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> We invite review comments on mandating the use of a secure transport for advertising sessions.</t>
</list></t>

<t>Senders MAY also advertise the availability of alternative sessions by carrying Alt-Svc in a multicast QUIC session.</t>

<section anchor="intro-version" title="Version Advertisement">

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> Version negotiation (as described in WG documents) is in flux. This section will track developments and will be updated accordingly.</t>
</list></t>

<t>Conventional QUIC connection establishment begins with version negotiation. In a unidirectional multicast environment, there is no reasonable way to negotiate in such a manner. <xref target="QUIC-HTTP"/> defines an Alt-Svc “quic” parameter that can be advertised to clients for use as a version negotiation hint. This specification uses “quic” as a session parameter for a similar purpose but with the additional constraint that the parameter MUST appear exactly once: it is not optional and the parameter MUST NOT be repeated.</t>

<t>This mechanism replaces the use of the Version field in the QUIC packet long header (see <xref target="quic-version-field"/>).</t>

<t>A multicast sender participating in a session MUST send QUIC packets and frames in the format corresponding to the advertised version. If the sender does not support the advertised version it MUST NOT send any data. A receiver MUST NOT join a session where the “quic” parameter is absent. A receiver SHOULD NOT join a session for which it does not support the advertised version, in order to avoid wasting processing resources.</t>

</section>
<section anchor="intro-security-params" title="Security Context">

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> Security handshake (as described in WG documents) is in flux. This section will track developments and will be updated accordingly.</t>
</list></t>

<t>This specification replaces the in-band security handshake:</t>

<t><list style="symbols">
  <t>Cipher suite negotiation is replaced with a “cipher suite” session parameter, which is advertised as the Alt-Svc parameter <spanx style="verb">cipher-suite</spanx> (<xref target="param-cs"/>). 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). If absent, the multicast QUIC session is assumed to be operating with cipher suite 0x00,0x00 (NULL_WITH_NULL_NULL).</t>
  <t>Key exchange is replaced with a “key” session parameter, which is advertised as the Alt-Svc parameter <spanx style="verb">key</spanx> (<xref target="param-key"/>). The parameter carries a variable-length hex-encoded key for use with the session cipher suite. In the absence of the <spanx style="verb">key</spanx> parameter, the key may be available via an out-of-band method not described in this document.</t>
  <t>Initialization Vector (IV) exchange is replaced with an “iv” session parameter, which is advertised as the Alt-Svc parameter <spanx style="verb">iv</spanx> (<xref target="param-iv"/>). The parameter carries a variable-length hex-encoded IV for use with the session cipher suite and key. In the absence of the <spanx style="verb">iv</spanx> parameter, the IV may be available via an out-of-band method not described in this document.</t>
</list></t>

<t>In order to protect themselves, endpoints SHOULD NOT participate in sessions for which they cannot establish reasonable confidence over the cipher suite or key in use for that session. Endpoints SHOULD leave any sessions which fail to successfully match anticipated security characteristics.</t>

</section>
<section anchor="session-identification" title="Session Identification">
<t><xref target="QUIC-TRANSPORT"/> specifies how the QUIC Connection ID is used, in particular the client-side generation of this value. In a unidirectional multicast environment, there is no meaningful way for a client to generate a Connection ID and use it. This document defines a “session identifier” session parameter, which is advertised as the Alt-Svc parameter “session-id” (<xref target="param-session-id"/>). The requirements for the usage of session identifiers have already been described in <xref target="intro-session-id"/>.</t>

</section>
<section anchor="intro-session-idle-timeout" title="Session Idle Timeout">
<t>Conventional QUIC connections may be implicitly terminated following a period of idleness (lack of network activity). The required QUIC TransportParameter <spanx style="verb">idle_timeout</spanx> 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"/>). This session parameter mimics the behaviour of <spanx style="verb">idle_timeout</spanx>, providing a means for multicast QUIC sessions to define their own idle timeout periods.</t>

<t>Session advertisements that omit the Alt-Svc parameter “session-idle-timeout” imply that the default timeout period is in use. The default value is 30 seconds.</t>

<t>Receiving participants SHOULD leave multicast QUIC sessions when the session idle timeout period has elapsed (<xref target="quic-session-shutdown"/>). Leaving participants MUST use the silent close method, in which no <spanx style="verb">CONNECTION_CLOSE</spanx> QUIC frame is sent.</t>

</section>
<section anchor="intro-peak-flow-rate" title="Session Peak Flow Rate">
<t><xref target="QUIC-TRANSPORT"/> specifies a credit-based stream- and connection-level flow control scheme which prevents a fast sender from overwhelming a slow receiver. Window size connection parameters are exchanged on connection establishment using the required QUIC TransportParameters <spanx style="verb">initial_max_data</spanx> and <spanx style="verb">initial_max_stream_data</spanx>. In a unidirectional multicast environment, such a scheme is infeasible. 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"/>). This replaces <spanx style="verb">initial_max_data</spanx> and <spanx style="verb">initial_max_stream_data</spanx> completely, instead indicating the maximum bit rate of <spanx style="verb">STREAM</spanx> QUIC frame payloads transmitted on all multicast groups comprising the session.</t>

<t>Session advertisements that omit the Alt-Svc parameter “peak-flow-rate” 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" title="Resource Concurrency">
<t><xref target="QUIC-TRANSPORT"/> 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 required QUIC TransportParameter <spanx style="verb">initial_max_stream_id</spanx>. It is increased during the lifetime of a QUIC connection by the <spanx style="verb">MAX_STREAM_ID</spanx> QUIC frame. In a unidirectional multicast environment, there is no way for a receiver to specify the limit nor increase it. Therefore the maximum stream ID mechanism is not used to manage concurrency in multicast QUIC. The <spanx style="verb">STREAM_ID_NEEDED</spanx> QUIC frame MAY be sent by a sending participant but it will have no effect. This frame SHALL be ignored by receiving participants.</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"/>). This parameter replaces <spanx style="verb">initial_max_stream_id</spanx>. It advertises the maximum number of concurrent active resources generated by a sender in a given multicast QUIC session.</t>

<t>Session advertisements that omit the Alt-Svc parameter “maximum concurrent resources” imply that the maximum concurrency is unlimited.</t>

<t>A multicast sender participating in a session MUST NOT cause the advertised <spanx style="verb">max-concurrent-resources</spanx> 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="additional-transportparameter-considerations" title="Additional TransportParameter Considerations">

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> Google QUIC Connection Options (COPTs) are no longer referred to in WG documents. This section will consider TransportParameters, tracking developments and issues that may arise.</t>
</list></t>

</section>
<section anchor="intro-digest-algorithm" title="Digest Algorithm">
<t>A method to provide content integrity is described in <xref target="security-integrity"/>. 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 <spanx style="verb">digest-algorithm</spanx> (<xref target="param-digest-algorithm"/>).</t>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> <xref target="security-integrity"/> 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>
</list></t>

<t>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 <spanx style="verb">digest-algorithm</spanx> imply that either:</t>

<t><list style="symbols">
  <t>the session does not use the content integrity mechanism, or</t>
  <t>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.</t>
</list></t>

<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" title="Signature Algorithm">
<t>A method to provide content authenticity is described in <xref target="security-authenticity"/>. 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 <spanx style="verb">signature-algorithm</spanx> (<xref target="param-signature-algorithm"/>).</t>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> <xref target="security-authenticity"/> 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>
</list></t>

<t>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 <spanx style="verb">signature-algorithm</spanx> imply that either:</t>

<t><list style="symbols">
  <t>the session does not use the content authenticity mechanism, or</t>
  <t>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.</t>
</list></t>

<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" title="QUIC Profile">

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> The QUIC transport document is subject to change. This section is based on our best understanding of draft-ietf-quic-transport-04. The authors will track developments and will update this section accordingly.</t>
</list></t>

<t>The profile of <xref target="QUIC-TRANSPORT"/> 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>

<section anchor="packet-size" title="Packet Size">
<t>The means for determining an appropriate size for QUIC packets are described in Section 9 of <xref target="QUIC-TRANSPORT"/>. Implementations of this specification SHOULD bear in mind that the Path Maximum Transmission Unit (PTMU) may be affected by multicast IP technologies such as Automatic Multicast Tunneling (AMT) <xref target="RFC7450"/>. Additionally, consideration should be given toward the applicability of maximum transmission unit discovery methods (such as PLPMTUD <xref target="RFC4821"/> and PMTUD <xref target="RFC1191"/>) to multicast IP.</t>

</section>
<section anchor="quic-version-field" title="Version Negotiation">
<t>Endpoints implementing this specification MUST only send QUIC packets with the short header format. This header format omits a Version field.</t>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> The authors welcome suggestions for conveying the QUIC version in every multicast QUIC packet.</t>
</list></t>

</section>
<section anchor="quic-connection-id" title="Connection Identifier">
<t>The Connection ID field MUST be present in every QUIC packet, and the corresponding flag in the packet header MUST be set to indicate that the Connection ID field is present.</t>

</section>
<section anchor="quic-stream-id" title="Stream Identifier">
<t>Senders MUST NOT send any QUIC frames on QUIC stream 0. Receivers MUST ignore QUIC frames received on stream 0.</t>

</section>
<section anchor="flow-control" title="Flow Control">
<t>Conventional QUIC provides stream- and connection-level flow control, and endpoints manage this by sending <spanx style="verb">MAX_DATA</spanx> or <spanx style="verb">MAX_STREAM_DATA</spanx> QUIC frames as required. When a sender is blocked from sending flow-controlled frames, it sends an informational <spanx style="verb">BLOCKED</spanx> or <spanx style="verb">STREAM_BLOCKED</spanx> QUIC 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 <spanx style="verb">MAX_DATA</spanx>, <spanx style="verb">MAX_STREAM_DATA</spanx>, <spanx style="verb">BLOCKED</spanx> and <spanx style="verb">STREAM_BLOCKED</spanx> QUIC 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"/>.</t>

</section>
<section anchor="stream-termination" title="Stream Termination">
<t>A sender MAY prematurely terminate the transmission on any unreserved QUIC stream ID by setting the <spanx style="verb">FIN</spanx> bit of a <spanx style="verb">STREAM</spanx> QUIC frame, or by sending a <spanx style="verb">RST_STREAM</spanx> QUIC frame (as specified in <xref target="QUIC-TRANSPORT"/> and <xref target="QUIC-HTTP"/>).</t>

<t>Receiving participants MUST NOT make any attempt to send <spanx style="verb">RST_STREAM</spanx> to the multicast group.</t>

</section>
<section anchor="quic-session-shutdown" title="Session Shutdown">
<t>Explicit shutdown of a multicast QUIC session using QUIC methods is not supported by this profile. The <spanx style="verb">GOAWAY</spanx> and <spanx style="verb">CONNECTION_CLOSE</spanx> QUIC frames, and the Public Reset packet are prohibited. Participants MUST NOT send these and reception MUST be handled as described in <xref target="prohibited-quic-frames"/>.</t>

<t>Explicit session tear-down using HTTP semantics is allowed, as described in <xref target="http-quic-session-tear-down"/>.</t>

<t>Implicit shutdown by means of silent close is also supported, as described in <xref target="intro-session-idle-timeout"/>.</t>

</section>
<section anchor="session-keep-alive" title="Session Keep-alive">
<t>The flow of traffic in a multicast QUIC session is driven by a sender. There may be periods where the sender has no data to send for a period longer than the session idle timeout. This profile repurposes the <spanx style="verb">PING</spanx> QUIC 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.</t>

<t>Senders MAY send a <spanx style="verb">PING</spanx> 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 <spanx style="verb">ACK</spanx> frames are banned by <xref target="loss-detection"/>.)</t>

<t>Receiving participants MUST NOT make any attempt to send <spanx style="verb">PING</spanx> frames.</t>

</section>
<section anchor="loss-detection" title="Loss Detection and Recovery">
<t>Receivers implementing this profile MUST NOT make any attempt to acknowledge the reception of QUIC packets. The <spanx style="verb">ACK</spanx> QUIC frame is prohibited for both senders and receivers. Reception of this frame MUST be handled as described in <xref target="prohibited-quic-frames"/>.</t>

<t><xref target="loss-recovery"/> specifies alternative strategies for loss recovery.</t>

</section>
<section anchor="prohibited-quic-frames" title="Prohibited QUIC Frames and Packets">
<t>The following QUIC packets MUST NOT be transmitted by participants: 0-RTT Protected, 1-RTT Protected (key phase 0), 1-RTT Protected (key phase 1), Client Cleartext, Client Initial, Public Reset, Server Cleartext, Server Initial, Version Negotiation.</t>

<t>The following QUIC frames MUST NOT be transmitted by participants: <spanx style="verb">ACK</spanx>, <spanx style="verb">BLOCKED</spanx>, <spanx style="verb">CONNECTION_CLOSE</spanx>, <spanx style="verb">GOAWAY</spanx>, <spanx style="verb">MAX_DATA</spanx>, <spanx style="verb">MAX_STREAM_DATA</spanx>, <spanx style="verb">STREAM_BLOCKED</spanx>.</t>

<t>The following QUIC frames MUST NOT be transmitted by receivers: <spanx style="verb">RST_STREAM</spanx>.</t>

<t>Reception of a prohibited 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" title="HTTP/QUIC Profile">

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> The HTTP/QUIC mapping document is subject to change. This section is based on our best understanding of draft-ietf-quic-http-04. The authors will track developments and will update this section accordingly.</t>
</list></t>

<t>HTTP over multicast QUIC depends on HTTP server push, as described in Section 4.4 of <xref target="QUIC-HTTP"/>. <xref target="server-push"/> below applies an additional constraint on the use of server push. A multicast sender participating in a session pushes resources as a series of <spanx style="verb">STREAM</spanx> QUIC frames carrying HTTP/2 <spanx style="verb">PUSH_PROMISE</spanx>, <spanx style="verb">HEADERS</spanx> and body data. Examples of this are provided in <xref target="appendix-resource-transfer"/>. Senders MUST comply with the requirements of the session parameters, as described earlier in <xref target="session-advert"/>.</t>

<t>The profile of HTTP/QUIC specified in this section places additional constrains on the use of metadata compression (<xref target="metadata-compression"/>) and prioritisation (<xref target="prioritisation"/>).</t>

<section anchor="http-connection-settings" title="HTTP Connection Settings">

<t>The <spanx style="verb">SETTINGS</spanx> HTTP/2 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-h2-frames"/>.</t>

</section>
<section anchor="server-push" title="Server Push">
<t>Server push is, by default, enabled for HTTP/QUIC connections. A conventional HTTP/QUIC client may disable server push via a <spanx style="verb">SETTINGS</spanx> HTTP/2 frame but the use of that frame is prohibited by this profile (<xref target="http-connection-settings"/>). This profile mandates the use of server push, and specifies no means to disable it.</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 HTTP/2 stream ID that would normally be used for the first client request. <spanx style="verb">PUSH_PROMISE</spanx> frames MUST reference this reserved ID.</t>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> The exact value of this stream ID is currently in flux. This section will track developments and will be updated accordingly.</t>
</list></t>

</section>
<section anchor="metadata-compression" title="Metadata Compression">
<t>The compression of HTTP header fields is considered in HPACK <xref target="RFC7541"/>, 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 indexing. It is RECOMMENDED that endpoints use static indexing and/or Huffman encoding in order to benefit from the remaining compression methods available.</t>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> In the context of QUIC, changes to HPACK may allow for better leverage of the transport. QPACK <xref target="QPACK"/> and <xref target="QCRAM"/> are active proposals in this space. This section will track developments and will be updated accordingly.</t>
</list></t>

</section>
<section anchor="prioritisation" title="Prioritisation">
<t>The <spanx style="verb">PRIORITY</spanx> HTTP/2 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-h2-frames"/>.</t>

</section>
<section anchor="http-quic-session-tear-down" title="Session Tear-down">
<t>A multicast QUIC session MAY be explicitly torn down by means of the <spanx style="verb">Connection: close</spanx> HTTP header described in section 6.6 of <xref target="RFC7230"/>. A sender intending to leave the session SHOULD include the <spanx style="verb">Connection: close</spanx> 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>

</section>
<section anchor="http2-extension-frames" title="HTTP/2 Extension frames">
<t>HTTP/2 extension frames (e.g. <spanx style="verb">ALTSVC</spanx>) are prohibited by this profile. Participants MUST NOT make any attempt to send extension frame types. Reception of these MUST be handled as described in <xref target="prohibited-h2-frames"/>.</t>

</section>
<section anchor="prohibited-h2-frames" title="Prohibited HTTP/2 Frames">
<t>The following HTTP/2 frames MUST NOT be transmitted by participants: <spanx style="verb">PRIORITY</spanx>, <spanx style="verb">SETTINGS</spanx>.</t>

<t>In addition, all HTTP/2 extension frame types MUST NOT be transmitted by participants.</t>

<t>Reception of a prohibited HTTP/2 frame is a protocol error. Receivers MUST ignore prohibited HTTP/2 frames.</t>

</section>
</section>
<section anchor="app-layer-security" title="Application-Layer Security">

<t>As already described in <xref target="intro-security-params"/>, 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" title="Content Integrity">

<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>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> We invite review comments on mandating the use of this content integrity mechanism.</t>
</list></t>

<t><xref target="RFC3230"/> specifies an instance digest HTTP header called <spanx style="verb">Digest</spanx>. A sender MAY include this header in the <spanx style="verb">HEADERS</spanx> 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>In cases where the complete representation is not available at the start of multicast transmission, the <spanx style="verb">Digest</spanx> header MAY be conveyed as a trailing header field after the body data of the representation, in accordance with Section 8.1 of <xref target="RFC7540"/>.</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 <spanx style="verb">Digest</spanx> header. There is no requirement for participants to support the full set of algorithms.</t>

</section>
<section anchor="security-authenticity" title="Content Authenticity">

<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>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> We invite review comments on mandating the use of this content authenticity mechanism.</t>
</list></t>

<t><xref target="I-D.cavage-http-signatures"/> specifies a means of securely signing metadata associated with any HTTP message. The resulting digital signature is conveyed in the <spanx style="verb">Signature</spanx> header of the message itself. The <spanx style="verb">Signature</spanx> header also conveys a list of HTTP header fields over which the signature was computed. A receiver MAY verify the <spanx style="verb">Signature</spanx> 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 <spanx style="verb">Signature</spanx> header MAY be included separately in the <spanx style="verb">PUSH_PROMISE</spanx> frame (protecting the request metadata) and in the final (or only) <spanx style="verb">HEADERS</spanx> 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 <spanx style="verb">PUSH_PROMISE</spanx> frame) and the corresponding response metadata (from the <spanx style="verb">HEADERS</spanx> 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) <spanx style="verb">HEADERS</spanx> frame.</t>

<t>In cases where not all metadata is known at the start of transmission, the <spanx style="verb">Signature</spanx> header MAY be conveyed as a trailing header field after the body data of the representation, in accordance with Section 8.1 of <xref target="RFC7540"/>.</t>

<t>In applications where the detection of replay attacks is a requirement, it is RECOMMENDED that the <spanx style="verb">Date</spanx> header be included in the scope of the signature. It is RECOMMENDED that receivers use the value of the <spanx style="verb">Date</spanx> 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 <spanx style="verb">Digest</spanx> header specified in <xref target="security-integrity"/> 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 <spanx style="verb">Signature</spanx> header. There is no requirement for participants to support the full set of algorithms.</t>

</section>
<section anchor="security-confidentiality" title="Content Confidentiality">

<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" title="Loss Recovery">

<t>Because the acknowledgement of received packets to multicast groups is prohibited by this specification (<xref target="loss-detection"/>) 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="QUIC-TRANSPORT"/> and <xref target="QUIC-RECOVERY"/>.</t>

<section anchor="forward-error-correction" title="Forward Error Correction">

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> 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>
</list></t>

<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" title="Unicast Repair">

<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>

<t><list style="symbols">
  <t>The total size of the resource is indicated in the <spanx style="verb">content-length</spanx> response header carried in the <spanx style="verb">HEADERS</spanx> HTTP/2 frame.</t>
  <t>The location of the missing data can be determined by examining the Offset field in the <spanx style="verb">STREAM</spanx> QUIC frame headers of successfully received QUIC packets.</t>
</list></t>

<t>Using this information, a receiver MAY compose an efficient HTTP range request <xref target="RFC7233"/> 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"/>.</t>

</section>
</section>
<section anchor="partial-content" title="Transmission of Partial Content">

<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"/> 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>

<t><list style="symbols">
  <t>The <spanx style="verb">range</spanx> header (Section 3.1 of <xref target="RFC7233"/>) SHALL be present in the <spanx style="verb">PUSH_PROMISE</spanx> HTTP/2 frame.</t>
  <t>The corresponding <spanx style="verb">HEADERS</spanx> HTTP/2 frame SHALL indicate HTTP status code 206.
  <list style="symbols">
      <t>The range being transmitted SHALL be indicated in a <spanx style="verb">content-range</spanx> header field and the size of the complete resource indicated in a <spanx style="verb">content-length</spanx> header field. Either or both of these headers fields MAY be transmitted in a trailing <spanx style="verb">HEADERS</spanx> frame if their values are not known at the start of transmission.</t>
    </list></t>
</list></t>

</section>
<section anchor="protocol-id" title="Protocol Identifier">

<t>The HTTP over multicast QUIC protocol specified in this document is identified by the application-layer protocol negotiation (ALPN) <xref target="RFC7301"/> identifier “hqm”. The IANA registration of this protocol identifier can be found in <xref target="reg-proto-string"/>. This reserves the ALPN identifier space but describes a protocol that does not use TLS. The usage of the “hqm” identifier for discoverability is described in <xref target="discoverability"/>.</t>

<section anchor="draft-version-identification" title="Draft Version Identification">

<t><list style='empty'>
  <t><spanx style="strong">RFC Editor’s Note:</spanx>  Please remove this section prior to publication of a final version of this document.</t>
</list></t>

<t>Only implementations of the final, published RFC can identify themselves as “hqm”. 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-00 is identified using the string “hqm-00”.</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-09 which removes the requirement to ensure version matches might identify itself as “hqm-09-version-ignorant”. Note that any label MUST conform to the “token” syntax defined in Section 3.2.6 of <xref target="RFC7230"/>. Experimenters are encouraged to coordinate their experiments.</t>

</section>
</section>
<section anchor="discoverability" title="Discovery of Multicast QUIC Sessions">

<t>The announcement and discovery of services operating over multicast IP has previously been specified by the Session Description Protocol (SDP) <xref target="RFC4566"/>, Session Announcement Protocol <xref target="RFC2974"/> and Session Initiation Protocol <xref target="RFC3261"/>. These are typically deployed together and in conjunction with a multicast-friendly transport such as the Real-time Transport Protocol (RTP) <xref target="RFC3550"/>.</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 <spanx style="verb">Alt-Svc</spanx> 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 <spanx style="verb">Alt-Svc</spanx> 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"/>).</t>

<t>Where HTTP over multicast QUIC sessions are advertised using Alt-Svc, the protocol identifier SHALL be “hqm”, as specified in <xref target="protocol-id"/>.</t>

<section anchor="param-source-address" title="Source-specific Multicast Advertisement">

<t>Source-specific multicast (SSM) <xref target="RFC4607"/> MAY be used for the delivery of multicast services.</t>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> We invite review comments on mandating the use of source-specific multicast only.</t>
</list></t>

<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>

<figure><artwork><![CDATA[
source-address = uri-host; see RFC7230, Section 2.7
]]></artwork></figure>

<t>For example:</t>

<figure><artwork><![CDATA[
source-address="192.0.2.1"
]]></artwork></figure>

<t>When a multicast QUIC session is provided using SSM, the <spanx style="verb">source-address</spanx> parameter MUST be advertised.</t>

</section>
<section anchor="session-param-advert" title="Session Parameter Advertisement">
<t>The concept of session parameters is introduced in <xref target="intro-session-params"/>. This section details how the session parameters are expressed as Alt-Svc parameters.</t>

<section anchor="param-version-hint" title="Version">

<t>The version of QUIC supported in a multicast QUIC session is advertised with the <spanx style="verb">quic</spanx> parameter. The requirements for endpoint usage of <spanx style="verb">quic</spanx> are specified in <xref target="intro-version"/>.</t>

</section>
<section anchor="param-cs" title="Cipher Suite">
<t>This document specifies the “cipher-suite” parameter for Alt-Svc, which carries the cipher suite in use by a multicast QUIC session. <spanx style="verb">cipher-suite</spanx> 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>

<figure><artwork><![CDATA[
cipher-suite = 4*4 HEXDIG 
]]></artwork></figure>

<t>For example, the following specifies cipher suite 0x13,0x01 (<spanx style="verb">TLS_AES_128_GCM_SHA256</spanx>):</t>

<figure><artwork><![CDATA[
cipher-suite=1301
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">cipher-suite</spanx> are described in <xref target="intro-security-params"/>.</t>

</section>
<section anchor="param-key" title="Session Key">
<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>

<figure><artwork><![CDATA[
key = *HEXDIG
]]></artwork></figure>

<t>For example:</t>

<figure><artwork><![CDATA[
key=4adf1eab9c2a37fd
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">key</spanx> are described in <xref target="intro-security-params"/>.</t>

</section>
<section anchor="param-iv" title="Session Cipher Initialization Vector">
<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>

<figure><artwork><![CDATA[
iv = *HEXDIG
]]></artwork></figure>

<t>For example:</t>

<figure><artwork><![CDATA[
iv=4dbe593acb4d1577ad6ba7dc3189834e
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">iv</spanx> are described in <xref target="intro-security-params"/>.</t>

</section>
<section anchor="param-session-id" title="Session Identification">
<t>This document defines the “session-id” parameter for Alt-Svc, which carries the multicast QUIC session identifier.</t>

<t>Syntax:</t>

<figure><artwork><![CDATA[
session-id = 1*16HEXDIG ; 64-bit value
]]></artwork></figure>

<t>For example, the following specifies session 101 (0x65 hexadecimal):</t>

<figure><artwork><![CDATA[
session-id=65
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">session-id</spanx> are described in <xref target="intro-session-id"/>.</t>

</section>
<section anchor="param-session-idle-timeout" title="Session Idle Timeout Period">
<t>This document specifies the “session-idle-timeout” parameter for Alt-Svc, which carries the idle timeout period of a multicast QUIC session.</t>

<t>Syntax:</t>

<figure><artwork><![CDATA[
session-idle-timeout = *DIGIT ; number of seconds between 0 and 600
]]></artwork></figure>

<t>For example, the following specifies a one-minute session idle timeout period:</t>

<figure><artwork><![CDATA[
session-idle-timeout=60
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">session-idle-timeout</spanx> are described in <xref target="intro-session-idle-timeout"/>.</t>

</section>
<section anchor="param-max-concurrent-resources" title="Resource Concurrency">
<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>

<figure><artwork><![CDATA[
max-concurrent-resources = *DIGIT ; unsigned 32-bit integer
]]></artwork></figure>

<t>For example, the following specifies that no more than 12 (decimal) resources will be concurrently active in the session:</t>

<figure><artwork><![CDATA[
max-concurrent-resources=12
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">max-concurrent-resources</spanx> are described in <xref target="intro-resource-concurrency"/>.</t>

</section>
<section anchor="param-flow-rate" title="Session Peak Flow Rate">
<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>

<figure><artwork><![CDATA[
peak-flow-rate = *DIGIT ; bits per second
]]></artwork></figure>

<t>For example, the following specifies a peak flow rate of 550 kbits/s in the session:</t>

<figure><artwork><![CDATA[
peak-flow-rate=550000
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">peak-flow-rate</spanx> are described in <xref target="intro-peak-flow-rate"/>.</t>

</section>
<section anchor="param-digest-algorithm" title="Digest Algorithm">
<t>This document specifies the “digest-algorithm” parameter for Alt-Svc, which carries the digest algorithm in use by a multicast QUIC session. <spanx style="verb">digest-algorithm</spanx> 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>

<figure><artwork><![CDATA[
digest-algorithm = token
]]></artwork></figure>

<t>For example, the following specifies a digest algorithm of SHA-256:</t>

<figure><artwork><![CDATA[
digest-algorithm=SHA-256
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">digest-algorithm</spanx> are described in <xref target="intro-digest-algorithm"/>.</t>

</section>
<section anchor="param-signature-algorithm" title="Signature Algorithm">
<t>This document specifies the “signature-algorithm” parameter for Alt-Svc, which carries the signature algorithm in use by a multicast QUIC session. <spanx style="verb">signature-algorithm</spanx> MUST contain one of the values defined in the Signature Algorithms registry (http://www.iana.org/assignments/signature-algorithms).</t>

<t>Syntax:</t>

<figure><artwork><![CDATA[
signature-algorithm = token
]]></artwork></figure>

<t>For example, the following specifies a signature algorithm of SHA-256:</t>

<figure><artwork><![CDATA[
signature-algorithm=rsa-sha256
]]></artwork></figure>

<t>The requirements for endpoint usage of <spanx style="verb">signature-algorithm</spanx> are described in <xref target="intro-signature-algorithm"/>.</t>

</section>
</section>
</section>
<section anchor="security-and-privacy-considerations" title="Security and Privacy Considerations">
<t>This document specifies a profile of QUIC and HTTP/QUIC that changes the security model. In order to address this, application-level security methods are described in <xref target="app-layer-security"/>. 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" title="Pervasive Monitoring">

<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"/> 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"/>.</t>

<t>Further Pervasive Monitoring concerns are addressed in the following sections.</t>

<section anchor="large-scale-data-gathering-and-correlation" title="Large-scale Data Gathering and Correlation">
<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"/> or MLD <xref target="RFC3810"/>. 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" title="Changing Content">
<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"/> of the present document, and also in <xref target="QUIC-TRANSPORT"/>, 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"/>) and metadata (<xref target="security-authenticity"/>); the second is reduction of the QUIC packet attack surface by means of removal of many frame types (<xref target="prohibited-quic-frames"/> and <xref target="prohibited-h2-frames"/>).</t>

</section>
</section>
<section anchor="security-cons-disc" title="Protection of Discovery Mechanism">
<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>

<t><list style='empty'>
  <t><spanx style="strong">Authors’ Note:</spanx> We invite review comments on mandating the use of a secure transport for advertising sessions.</t>
</list></t>

<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"/>. <xref target="security-authenticity"/> discusses measures that may be used to fulfil this requirement.</t>

</section>
<section anchor="spoofing" title="Spoofing">

<section anchor="spoofed-ack-attacks" title="Spoofed Ack Attacks">
<t>The Spoofed <spanx style="verb">ACK</spanx> attack described in Section 13.1 of <xref target="QUIC-TRANSPORT"/> is out of scope because use of the <spanx style="verb">ACK</spanx> frame is prohibited (<xref target="loss-detection"/>) by the present document.</t>

</section>
<section anchor="sender-spoofing" title="Sender Spoofing">
<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"/> may reduce the feasibility. The use of content authenticity (<xref target="security-authenticity"/>) 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 anchor="receiver-spoofing" title="Receiver Spoofing">
<t>Client source address concerns discussed in Section 7.5 of <xref target="QUIC-TRANSPORT"/> are out of scope because the connection establishment is replaced with session establishment in the present document. Further, the impact that spoofed receivers would have on the sender is minimal. The impact of malicious participants on the network is discussed in <xref target="dos-net-perf"/>.</t>

</section>
</section>
<section anchor="replay-attacks" title="Replay Attacks">
<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"/> discusses how the application-level contents may be protected from replay (by signing the <spanx style="verb">Date</spanx> HTTP header), which provides some mitigation to the success rate or effects of replay attacks.</t>

</section>
<section anchor="message-deletion" title="Message Deletion">
<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"/>.</t>

</section>
<section anchor="denial-of-service" title="Denial of Service">

<section anchor="unprotected-frames-and-packets" title="Unprotected Frames and Packets">

<t>The handling of unprotected QUIC packets is discussed in section 9.1.4 of <xref target="QUIC-TLS"/>. 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"/> and <xref target="prohibited-h2-frames"/>).</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"/>.</t>

</section>
<section anchor="dos-net-perf" title="Network Performance Degradation">
<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"/> 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" title="Unicast Repair Stampeding Herd">
<t>Deployments that support the unicast repair mechanism described in <xref target="unicast-repair"/> 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" title="Receiver Resource Usage">

<t>The application of receiver-side validation, as defined in the present document and in <xref target="QUIC-TRANSPORT"/>, adds some protection against allocating resource to the processing of bad data.</t>

</section>
<section anchor="unicast-repair-information-leakage" title="Unicast Repair Information Leakage">
<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"/> 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" title="IANA Considerations">

<section anchor="reg-proto-string" title="Registration of Protocol Identification String">
<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"/>.</t>

<t>The “hqm” string identifies HTTP semantics expressed as HTTP mapped to a QUIC layer and carried over IP multicast:</t>

<t><list style="hanging">
  <t hangText='Protocol:'>
  Bulk data transport using HTTP over multicast QUIC</t>
  <t hangText='Identification Sequence:'>
  0x68 0x71 0x6D (“hqm”)</t>
  <t hangText='Specification:'>
  This document, <xref target="protocol-id"/></t>
</list></t>

<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" title="Registration of Alt-Svc parameters">
<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"/> (http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids).</t>

<section anchor="source-address" title="Source Address">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  source-address</t>
  <t hangText='Specification:'>
  This document, <xref target="param-source-address"/></t>
</list></t>

</section>
<section anchor="cipher-suite" title="Cipher Suite">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  cipher-suite</t>
  <t hangText='Specification:'>
  This document, <xref target="param-cs"/></t>
</list></t>

</section>
<section anchor="key" title="Key">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  key</t>
  <t hangText='Specification:'>
  This document, <xref target="param-key"/></t>
</list></t>

</section>
<section anchor="initialization-vector" title="Initialization Vector">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  iv</t>
  <t hangText='Specification:'>
  This document, <xref target="param-iv"/></t>
</list></t>

</section>
<section anchor="session-identifier" title="Session Identifier">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  session-id</t>
  <t hangText='Specification:'>
  This document, <xref target="param-session-id"/></t>
</list></t>

</section>
<section anchor="session-idle-timeout" title="Session Idle Timeout">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  session-idle-timeout</t>
  <t hangText='Specification:'>
  This document, <xref target="param-session-idle-timeout"/></t>
</list></t>

</section>
<section anchor="maximum-concurrent-resources" title="Maximum Concurrent Resources">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  max-concurrent-resources</t>
  <t hangText='Specification:'>
  This document, <xref target="param-max-concurrent-resources"/></t>
</list></t>

</section>
<section anchor="peak-flow-rate" title="Peak Flow Rate">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  peak-flow-rate</t>
  <t hangText='Specification:'>
  This document, <xref target="param-flow-rate"/></t>
</list></t>

</section>
<section anchor="digest-algorithm" title="Digest Algorithm">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  digest-algorithm</t>
  <t hangText='Specification:'>
  This document, <xref target="param-digest-algorithm"/></t>
</list></t>

</section>
<section anchor="signature-algorithm" title="Signature Algorithm">
<t><list style="hanging">
  <t hangText='Parameter name:'>
  signature-algorithm</t>
  <t hangText='Specification:'>
  This document, <xref target="param-signature-algorithm"/></t>
</list></t>

</section>
</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>

<reference anchor="QUIC-HTTP" >
  <front>
    <title>Hypertext Transfer Protocol (HTTP) over QUIC</title>
    <author initials="M." surname="Bishop" fullname="Mike Bishop" role="editor">
      <organization>Microsoft</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-quic-http-04"/>
</reference>
<reference anchor="QUIC-TLS" >
  <front>
    <title>Using Transport Layer Security (TLS) to Secure QUIC</title>
    <author initials="M." surname="Thomson" fullname="Martin Thomson" role="editor">
      <organization>Mozilla</organization>
    </author>
    <author initials="S." surname="Turner, Ed" fullname="Sean Turner" role="editor">
      <organization>sn3rd</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-quic-tls-04"/>
</reference>
<reference anchor="QUIC-TRANSPORT" >
  <front>
    <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
    <author initials="J." surname="Iyengar" fullname="Jana Iyengar" role="editor">
      <organization>Google</organization>
    </author>
    <author initials="M." surname="Thomson" fullname="Martin Thomson" role="editor">
      <organization>Mozilla</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-quic-transport-04"/>
</reference>
<reference anchor="QUIC-RECOVERY" >
  <front>
    <title>QUIC Loss Detection and Congestion Control</title>
    <author initials="J." surname="Iyengar" fullname="Jana Iyengar" role="editor">
      <organization>Google</organization>
    </author>
    <author initials="I." surname="Swett" fullname="Ian Swett" role="editor">
      <organization>Google</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-ietf-quic-recovery-04"/>
</reference>




<reference  anchor="RFC7838" target='http://www.rfc-editor.org/info/rfc7838'>
<front>
<title>HTTP Alternative Services</title>
<author initials='M.' surname='Nottingham' fullname='M. Nottingham'><organization /></author>
<author initials='P.' surname='McManus' fullname='P. McManus'><organization /></author>
<author initials='J.' surname='Reschke' fullname='J. Reschke'><organization /></author>
<date year='2016' month='April' />
<abstract><t>This document specifies &quot;Alternative Services&quot; 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='http://www.rfc-editor.org/info/rfc2119'>
<front>
<title>Key words for use in RFCs to Indicate Requirement Levels</title>
<author initials='S.' surname='Bradner' fullname='S. Bradner'><organization /></author>
<date year='1997' month='March' />
<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="RFC5234" target='http://www.rfc-editor.org/info/rfc5234'>
<front>
<title>Augmented BNF for Syntax Specifications: ABNF</title>
<author initials='D.' surname='Crocker' fullname='D. Crocker' role='editor'><organization /></author>
<author initials='P.' surname='Overell' fullname='P. Overell'><organization /></author>
<date year='2008' month='January' />
<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='http://www.rfc-editor.org/info/rfc7405'>
<front>
<title>Case-Sensitive String Support in ABNF</title>
<author initials='P.' surname='Kyzivat' fullname='P. Kyzivat'><organization /></author>
<date year='2014' month='December' />
<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='http://www.rfc-editor.org/info/rfc7230'>
<front>
<title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
<author initials='R.' surname='Fielding' fullname='R. Fielding' role='editor'><organization /></author>
<author initials='J.' surname='Reschke' fullname='J. Reschke' role='editor'><organization /></author>
<date year='2014' month='June' />
<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 &quot;http&quot; and &quot;https&quot; 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='http://www.rfc-editor.org/info/rfc7234'>
<front>
<title>Hypertext Transfer Protocol (HTTP/1.1): Caching</title>
<author initials='R.' surname='Fielding' fullname='R. Fielding' role='editor'><organization /></author>
<author initials='M.' surname='Nottingham' fullname='M. Nottingham' role='editor'><organization /></author>
<author initials='J.' surname='Reschke' fullname='J. Reschke' role='editor'><organization /></author>
<date year='2014' month='June' />
<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="RFC3230" target='http://www.rfc-editor.org/info/rfc3230'>
<front>
<title>Instance Digests in HTTP</title>
<author initials='J.' surname='Mogul' fullname='J. Mogul'><organization /></author>
<author initials='A.' surname='Van Hoff' fullname='A. Van Hoff'><organization /></author>
<date year='2002' month='January' />
<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="RFC7540" target='http://www.rfc-editor.org/info/rfc7540'>
<front>
<title>Hypertext Transfer Protocol Version 2 (HTTP/2)</title>
<author initials='M.' surname='Belshe' fullname='M. Belshe'><organization /></author>
<author initials='R.' surname='Peon' fullname='R. Peon'><organization /></author>
<author initials='M.' surname='Thomson' fullname='M. Thomson' role='editor'><organization /></author>
<date year='2015' month='May' />
<abstract><t>This specification describes an optimized expression of the semantics of the Hypertext Transfer Protocol (HTTP), referred to as HTTP version 2 (HTTP/2).  HTTP/2 enables a more efficient use of network resources and a reduced perception of latency by introducing header field compression and allowing multiple concurrent exchanges on the same connection.  It also introduces unsolicited push of representations from servers to clients.</t><t>This specification is an alternative to, but does not obsolete, the HTTP/1.1 message syntax.  HTTP's existing semantics remain unchanged.</t></abstract>
</front>
<seriesInfo name='RFC' value='7540'/>
<seriesInfo name='DOI' value='10.17487/RFC7540'/>
</reference>



<reference anchor="I-D.cavage-http-signatures">
<front>
<title>Signing HTTP Messages</title>

<author initials='M' surname='Cavage' fullname='Mark Cavage'>
    <organization />
</author>

<author initials='M' surname='Sporny' fullname='Manu Sporny'>
    <organization />
</author>

<date month='July' day='17' year='2017' />

<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-07' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-cavage-http-signatures-07.txt' />
</reference>



<reference  anchor="RFC7233" target='http://www.rfc-editor.org/info/rfc7233'>
<front>
<title>Hypertext Transfer Protocol (HTTP/1.1): Range Requests</title>
<author initials='R.' surname='Fielding' fullname='R. Fielding' role='editor'><organization /></author>
<author initials='Y.' surname='Lafon' fullname='Y. Lafon' role='editor'><organization /></author>
<author initials='J.' surname='Reschke' fullname='J. Reschke' role='editor'><organization /></author>
<date year='2014' month='June' />
<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='http://www.rfc-editor.org/info/rfc7301'>
<front>
<title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
<author initials='S.' surname='Friedl' fullname='S. Friedl'><organization /></author>
<author initials='A.' surname='Popov' fullname='A. Popov'><organization /></author>
<author initials='A.' surname='Langley' fullname='A. Langley'><organization /></author>
<author initials='E.' surname='Stephan' fullname='E. Stephan'><organization /></author>
<date year='2014' month='July' />
<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='http://www.rfc-editor.org/info/rfc4607'>
<front>
<title>Source-Specific Multicast for IP</title>
<author initials='H.' surname='Holbrook' fullname='H. Holbrook'><organization /></author>
<author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author>
<date year='2006' month='August' />
<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 title='Informative References'>

<reference anchor="QUICCrypto" target="http://goo.gl/OuVSxa">
  <front>
    <title>QUIC Crypto</title>
    <author initials="A." surname="Langley">
      <organization></organization>
    </author>
    <author initials="W." surname="Chang">
      <organization></organization>
    </author>
    <date year="2016" month="May" day="26"/>
  </front>
</reference>
<reference anchor="QPACK" >
  <front>
    <title>Header Compression for HTTP/QUIC</title>
    <author initials="M." surname="Bishop" fullname="Mike Bishop" role="editor">
      <organization>Microsoft</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-bishop-quic-http-and-qpack-02"/>
</reference>
<reference anchor="QCRAM" >
  <front>
    <title>Header Compression for HTTP over QUIC</title>
    <author initials="C." surname="Krasic" fullname="Charles 'Buck' Krasic" role="editor">
      <organization>Google</organization>
    </author>
    <date />
  </front>
  <seriesInfo name="Internet-Draft" value="draft-krasic-quic-qcram-02"/>
</reference>




<reference  anchor="RFC1112" target='http://www.rfc-editor.org/info/rfc1112'>
<front>
<title>Host extensions for IP multicasting</title>
<author initials='S.E.' surname='Deering' fullname='S.E. Deering'><organization /></author>
<date year='1989' month='August' />
<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='http://www.rfc-editor.org/info/rfc3550'>
<front>
<title>RTP: A Transport Protocol for Real-Time Applications</title>
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organization /></author>
<author initials='S.' surname='Casner' fullname='S. Casner'><organization /></author>
<author initials='R.' surname='Frederick' fullname='R. Frederick'><organization /></author>
<author initials='V.' surname='Jacobson' fullname='V. Jacobson'><organization /></author>
<date year='2003' month='July' />
<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="RFC2460" target='http://www.rfc-editor.org/info/rfc2460'>
<front>
<title>Internet Protocol, Version 6 (IPv6) Specification</title>
<author initials='S.' surname='Deering' fullname='S. Deering'><organization /></author>
<author initials='R.' surname='Hinden' fullname='R. Hinden'><organization /></author>
<date year='1998' month='December' />
<abstract><t>This document specifies version 6 of the Internet Protocol (IPv6), also sometimes referred to as IP Next Generation or IPng.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2460'/>
<seriesInfo name='DOI' value='10.17487/RFC2460'/>
</reference>



<reference  anchor="RFC4566" target='http://www.rfc-editor.org/info/rfc4566'>
<front>
<title>SDP: Session Description Protocol</title>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></author>
<author initials='V.' surname='Jacobson' fullname='V. Jacobson'><organization /></author>
<author initials='C.' surname='Perkins' fullname='C. Perkins'><organization /></author>
<date year='2006' month='July' />
<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="RFC2974" target='http://www.rfc-editor.org/info/rfc2974'>
<front>
<title>Session Announcement Protocol</title>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></author>
<author initials='C.' surname='Perkins' fullname='C. Perkins'><organization /></author>
<author initials='E.' surname='Whelan' fullname='E. Whelan'><organization /></author>
<date year='2000' month='October' />
<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="RFC7450" target='http://www.rfc-editor.org/info/rfc7450'>
<front>
<title>Automatic Multicast Tunneling</title>
<author initials='G.' surname='Bumgardner' fullname='G. Bumgardner'><organization /></author>
<date year='2015' month='February' />
<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='http://www.rfc-editor.org/info/rfc4821'>
<front>
<title>Packetization Layer Path MTU Discovery</title>
<author initials='M.' surname='Mathis' fullname='M. Mathis'><organization /></author>
<author initials='J.' surname='Heffner' fullname='J. Heffner'><organization /></author>
<date year='2007' month='March' />
<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='http://www.rfc-editor.org/info/rfc1191'>
<front>
<title>Path MTU discovery</title>
<author initials='J.C.' surname='Mogul' fullname='J.C. Mogul'><organization /></author>
<author initials='S.E.' surname='Deering' fullname='S.E. Deering'><organization /></author>
<date year='1990' month='November' />
<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="RFC7541" target='http://www.rfc-editor.org/info/rfc7541'>
<front>
<title>HPACK: Header Compression for HTTP/2</title>
<author initials='R.' surname='Peon' fullname='R. Peon'><organization /></author>
<author initials='H.' surname='Ruellan' fullname='H. Ruellan'><organization /></author>
<date year='2015' month='May' />
<abstract><t>This specification defines HPACK, a compression format for efficiently representing HTTP header fields, to be used in HTTP/2.</t></abstract>
</front>
<seriesInfo name='RFC' value='7541'/>
<seriesInfo name='DOI' value='10.17487/RFC7541'/>
</reference>



<reference  anchor="RFC3261" target='http://www.rfc-editor.org/info/rfc3261'>
<front>
<title>SIP: Session Initiation Protocol</title>
<author initials='J.' surname='Rosenberg' fullname='J. Rosenberg'><organization /></author>
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organization /></author>
<author initials='G.' surname='Camarillo' fullname='G. Camarillo'><organization /></author>
<author initials='A.' surname='Johnston' fullname='A. Johnston'><organization /></author>
<author initials='J.' surname='Peterson' fullname='J. Peterson'><organization /></author>
<author initials='R.' surname='Sparks' fullname='R. Sparks'><organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></author>
<author initials='E.' surname='Schooler' fullname='E. Schooler'><organization /></author>
<date year='2002' month='June' />
<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='http://www.rfc-editor.org/info/rfc7258'>
<front>
<title>Pervasive Monitoring Is an Attack</title>
<author initials='S.' surname='Farrell' fullname='S. Farrell'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2014' month='May' />
<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='http://www.rfc-editor.org/info/rfc3376'>
<front>
<title>Internet Group Management Protocol, Version 3</title>
<author initials='B.' surname='Cain' fullname='B. Cain'><organization /></author>
<author initials='S.' surname='Deering' fullname='S. Deering'><organization /></author>
<author initials='I.' surname='Kouvelas' fullname='I. Kouvelas'><organization /></author>
<author initials='B.' surname='Fenner' fullname='B. Fenner'><organization /></author>
<author initials='A.' surname='Thyagarajan' fullname='A. Thyagarajan'><organization /></author>
<date year='2002' month='October' />
</front>
<seriesInfo name='RFC' value='3376'/>
<seriesInfo name='DOI' value='10.17487/RFC3376'/>
</reference>



<reference  anchor="RFC3810" target='http://www.rfc-editor.org/info/rfc3810'>
<front>
<title>Multicast Listener Discovery Version 2 (MLDv2) for IPv6</title>
<author initials='R.' surname='Vida' fullname='R. Vida' role='editor'><organization /></author>
<author initials='L.' surname='Costa' fullname='L. Costa' role='editor'><organization /></author>
<date year='2004' month='June' />
<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='http://www.rfc-editor.org/info/rfc8085'>
<front>
<title>UDP Usage Guidelines</title>
<author initials='L.' surname='Eggert' fullname='L. Eggert'><organization /></author>
<author initials='G.' surname='Fairhurst' fullname='G. Fairhurst'><organization /></author>
<author initials='G.' surname='Shepherd' fullname='G. Shepherd'><organization /></author>
<date year='2017' month='March' />
<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='http://www.rfc-editor.org/info/rfc5737'>
<front>
<title>IPv4 Address Blocks Reserved for Documentation</title>
<author initials='J.' surname='Arkko' fullname='J. Arkko'><organization /></author>
<author initials='M.' surname='Cotton' fullname='M. Cotton'><organization /></author>
<author initials='L.' surname='Vegoda' fullname='L. Vegoda'><organization /></author>
<date year='2010' month='January' />
<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='http://www.rfc-editor.org/info/rfc6676'>
<front>
<title>Multicast Addresses for Documentation</title>
<author initials='S.' surname='Venaas' fullname='S. Venaas'><organization /></author>
<author initials='R.' surname='Parekh' fullname='R. Parekh'><organization /></author>
<author initials='G.' surname='Van de Velde' fullname='G. Van de Velde'><organization /></author>
<author initials='T.' surname='Chown' fullname='T. Chown'><organization /></author>
<author initials='M.' surname='Eubanks' fullname='M. Eubanks'><organization /></author>
<date year='2012' month='August' />
<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>


<section anchor="acknowledgements" title="Acknowledgements">
<t>The authors would like to thank the following for their contributions to the design described in the present document: Brandon Butterworth, Sam Hurst, 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" title="Examples">

<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" title="Session Advertisement">
<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"/> and <xref target="RFC6676"/>.</t>

<section anchor="source-specific-multicast-quic-session" title="Source-specific Multicast QUIC Session">

<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>

<figure><artwork><![CDATA[
Alt-Svc: 
    hqm="232.0.0.1:2000"; source-address="192.0.2.1"; quic=1; 
    session-id=10; session-idle-timeout=60; 
    max-concurrent-resources=10; peak-flow-rate=10000
]]></artwork></figure>

</section>
<section anchor="source-specific-multicast-quic-session-with-transport-encryption-using-a-symmetric-key" title="Source-specific Multicast QUIC Session with Transport Encryption using a Symmetric Key">

<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 (<spanx style="verb">TLS_AES_128_GCM_SHA256</spanx>) with the shared session key and IV provided.</t>

<t>HTTP Alternative Service header field:</t>

<figure><artwork><![CDATA[
Alt-Svc: 
    hqm="[ff3e::1234]:2000"; source-address="2001:db8::1"; quic=1; 
    session-id=10; session-idle-timeout=60; 
    max-concurrent-resources=10; peak-flow-rate=10000; 
    cipher-suite=1301; key=4adf1eab9c2a37fd; iv=4dbe593acb4d1577ad6ba7dc3189834e
]]></artwork></figure>

</section>
<section anchor="source-specific-multicast-quic-session-with-transport-encryption-content-integrity-and-authenticity" title="Source-specific Multicast QUIC Session with Transport Encryption, Content Integrity and Authenticity">

<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 (<spanx style="verb">TLS_AES_128_GCM_SHA256</spanx>) 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>

<figure><artwork><![CDATA[
Alt-Svc: 
    hqm="[ff3e::1234]:2000"; source-address="2001:db8::1"; quic=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></figure>

</section>
</section>
<section anchor="appendix-resource-transfer" title="Resource Transfer">

<t>This section shows several different examples of the HTTP message patterns for a single resource.</t>

<t>Examples that show <spanx style="verb">PUSH_PROMISE</spanx> or <spanx style="verb">HEADERS</spanx> HTTP/2 frames describe the contents of enclosed header block fragments.</t>

<section anchor="transfer-without-content-integrity-or-authenticity" title="Transfer without Content Integrity or Authenticity">

<t><spanx style="verb">PUSH_PROMISE</spanx> HTTP/2 frame:</t>

<figure><artwork><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
]]></artwork></figure>

<t><spanx style="verb">HEADERS</spanx> HTTP/2 frame;</t>

<figure><artwork><![CDATA[
:status: 200
content-length: 100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
]]></artwork></figure>

<t>QUIC <spanx style="verb">STREAM</spanx> frame containing 100 bytes of response body data:</t>

<figure><artwork><![CDATA[
...
]]></artwork></figure>

</section>
<section anchor="transfer-of-partial-content-without-content-integrity-or-authenticity" title="Transfer of Partial Content without Content Integrity or Authenticity">

<t>In this example, partial content is transferred as described in <xref target="partial-content"/>. The <spanx style="verb">Range</spanx> request header is used to indicate the sender’s intention to transfer all 100 bytes of the representation, but the <spanx style="verb">Content-Range</spanx> trailing response header indicates that only the first 50 bytes were actually transferred.</t>

<t><spanx style="verb">PUSH_PROMISE</spanx> HTTP/2 frame:</t>

<figure><artwork><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
range: bytes=0-*
]]></artwork></figure>

<t>Leading <spanx style="verb">HEADERS</spanx> HTTP/2 frame:</t>

<figure><artwork><![CDATA[
:status: 206
content-length: 100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
]]></artwork></figure>

<t><spanx style="verb">STREAM</spanx> QUIC frame containing 50 bytes of response body data:</t>

<figure><artwork><![CDATA[
...
]]></artwork></figure>

<t>Trailing <spanx style="verb">HEADERS</spanx> HTTP/2 frame indicating the range of bytes sent:</t>

<figure><artwork><![CDATA[
content-range: bytes 0-49/100
]]></artwork></figure>

</section>
<section anchor="transfer-with-content-integrity-and-without-authenticity" title="Transfer with Content Integrity and without Authenticity">

<t>In this example, content integrity is assured by the inclusion of the <spanx style="verb">Digest</spanx> response header, as described in <xref target="security-integrity"/>.</t>

<t><spanx style="verb">PUSH_PROMISE</spanx> HTTP/2 frame:</t>

<figure><artwork><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
]]></artwork></figure>

<t><spanx style="verb">HEADERS</spanx> HTTP/2 frame including the <spanx style="verb">Digest</spanx> header:</t>

<figure><artwork><![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></figure>

<t><spanx style="verb">STREAM</spanx> QUIC frame containing 100 bytes of response body data:</t>

<figure><artwork><![CDATA[
...
]]></artwork></figure>

</section>
<section anchor="partial-transfer-with-content-integrity-and-without-authenticity" title="Partial Transfer with Content Integrity and without Authenticity">

<t>In this example, partial content is transferred as described in <xref target="partial-content"/>. The <spanx style="verb">Range</spanx> request header is used to indicate the sender’s intention to transfer all 100 bytes of the representation, but the <spanx style="verb">Content-Range</spanx> trailing response header indicates that only the first 50 bytes were actually transferred. Content integrity is assured by the inclusion of the <spanx style="verb">Digest</spanx> response header, as described in <xref target="security-integrity"/>.</t>

<t><spanx style="verb">PUSH_PROMISE</spanx> HTTP/2 frame:</t>

<figure><artwork><![CDATA[
:method: GET
:scheme: https
:path: /files/example.txt
:authority: example.org
range: bytes=0-*
]]></artwork></figure>

<t>Leading <spanx style="verb">HEADERS</spanx> HTTP/2 frame including the <spanx style="verb">Digest</spanx> header:</t>

<figure><artwork><![CDATA[
:status: 206
content-length: 100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
digest: SHA-256=DieQ9zfRaDdyAilTVCvmBePuxMm+B6cNocP+QCrNSqo=
]]></artwork></figure>

<t><spanx style="verb">STREAM</spanx> QUIC frame containing 50 bytes of response body data:</t>

<figure><artwork><![CDATA[
...
]]></artwork></figure>

<t>Trailing <spanx style="verb">HEADERS</spanx> HTTP/2 frame indicating the range of bytes sent:</t>

<figure><artwork><![CDATA[
content-range: bytes 0-49/100
]]></artwork></figure>

</section>
<section anchor="transfer-with-content-integrity-and-authenticity" title="Transfer with Content Integrity and Authenticity">

<t>In this example, content integrity is assured by the inclusion of the <spanx style="verb">Digest</spanx> response header, as described in <xref target="security-integrity"/>. Content authenticity is assured separately for the request and the response messages by the <spanx style="verb">Signature</spanx> header which protects the header fields described in further detail below. The <spanx style="verb">Signature</spanx> header parameter <spanx style="verb">keyId</spanx> 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><spanx style="verb">PUSH_PROMISE</spanx> HTTP/2 frame including a <spanx style="verb">Signature</spanx> header protecting the <spanx style="verb">:method</spanx> and <spanx style="verb">:path</spanx> (the request target), as well as the <spanx style="verb">:scheme</spanx> and <spanx style="verb">:authority</spanx> of the pseudo-request:</t>

<figure><artwork><![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></figure>

<t><spanx style="verb">HEADERS</spanx> HTTP/2 frame including a <spanx style="verb">Signature</spanx> header protecting the <spanx style="verb">:method</spanx>, <spanx style="verb">:path</spanx>, <spanx style="verb">:scheme</spanx> and <spanx style="verb">:authority</spanx> of the pseudo-request above, plus the <spanx style="verb">Date</spanx> and <spanx style="verb">Digest</spanx> of the response:</t>

<figure><artwork><![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></figure>

<t><spanx style="verb">STREAM</spanx> QUIC frame containing response body data:</t>

<figure><artwork><![CDATA[
...
]]></artwork></figure>

</section>
<section anchor="partial-transfer-with-content-integrity-and-authenticity" title="Partial Transfer with Content Integrity and Authenticity">

<t>In this example, partial content is transferred and the <spanx style="verb">Range</spanx> header (as described in <xref target="partial-content"/>) is used to indicate that 50 bytes out of 100 bytes were transferred. Content integrity is provided by the inclusion of the <spanx style="verb">Digest</spanx> header, as described in <xref target="security-integrity"/>. Authenticity is provided by the <spanx style="verb">Signature</spanx> header which protects the header fields described in further detail. The <spanx style="verb">Signature</spanx> header parameter <spanx style="verb">keyId</spanx> 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><spanx style="verb">PUSH_PROMISE</spanx> HTTP/2 frame:</t>

<figure><artwork><![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></figure>

<t>Leading <spanx style="verb">HEADERS</spanx> HTTP/2 frame:</t>

<figure><artwork><![CDATA[
:status: 206
content-length: 100
content-type: text/plain
date: Fri, 20 Jan 2017 10:00:00 GMT
digest: SHA-256=DieQ9zfRaDdyAilTVCvmBePuxMm+B6cNocP+QCrNSqo=
]]></artwork></figure>

<t><spanx style="verb">STREAM</spanx> QUIC frame containing response body data:</t>

<figure><artwork><![CDATA[
...
]]></artwork></figure>

<t>Trailing <spanx style="verb">HEADERS</spanx> HTTP/2 frame protecting the <spanx style="verb">:method</spanx>, <spanx style="verb">:path</spanx>, <spanx style="verb">:scheme</spanx> and <spanx style="verb">:authority</spanx> of the pseudo-request above, plus the <spanx style="verb">Date</spanx>, <spanx style="verb">Digest</spanx> and <spanx style="verb">Content-Range</spanx> of the response:</t>

<figure><artwork><![CDATA[
content-range: bytes 0-49/100
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></figure>

</section>
</section>
</section>
<section anchor="changelog" title="Changelog">

<t><list style='empty'>
  <t><spanx style="strong">RFC Editor’s Note:</spanx> Please remove this section prior to publication of a
final version of this document.</t>
</list></t>

<section anchor="since-draft-pardue-quic-http-mcast-00" title="Since draft-pardue-quic-http-mcast-00">

<t><list style="symbols">
  <t>Update references to QUIC I-Ds.</t>
  <t>Relax session leaving requirements language.</t>
  <t>Clarify handling of omitted session parameter advertisements.</t>
  <t>Rename “Idle” state to “Quiescent”.</t>
  <t>Add digest algorithm session parameter.</t>
  <t>Add signature algorithm session parameter.</t>
  <t>Add Initialization Vector session parameter.</t>
  <t>Replace COPT tag-value-pairs with TransportParameter values.</t>
  <t>Add example of an advertisement for a session with content authenticity and integrity.</t>
</list></t>

</section>
</section>


  </back>

<!-- ##markdown-source:
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
NQ6dMkLWEw9YwFnN5j0iReiQ1tKagIo/UX5iOKJEDSBnpCHE+n5y8PaAo39a
8PsJl4xCpJrj7zPFU+A2zIug9v4hZnj30WBnazVpDtf/CFbaEBEcm20LR5D8
LrkfS2LnxAVCnmIuw/4VMVJTpHReIoKhBIMMvI1vRFKouidHLJTVXdfVcZxP
cIY5WgeMrRi04bGJxKBShONMBOjzdA4Ci1uPtwPEjqPQqcPkR495hUItItap
+JOFz5P4ICUrXVE++kJG0XF6DnPg9NH9CGvyDzxLgXFaKn1vA96IPhiLZQbw
t0ZcRhMaiE5jhqlhkUiLQMq9C76k+vKYczSeYnUOJYX4Nha7oaqUBUbVVmTb
NsVDTSg5RpqWns81xrHq1AE9Mj0nbKW9dj/FABl57SVbpmHxdqYzFOfJDmHX
EKNczCcsWNBD1RxZapo4252m+dzLHdKgYaHoQo4ME2VQmOpcuAo/aZg8jW6h
GQ1B8mPcTOycXdQXywgUwGG3DZeNbO1sMJoUXN0lvFR4AmuLB96NcsfvGlV9
AWJmwhVQPdY2B6z1t3WZoBcUtoIP+gHCj8MKzWIfkxt2DLqKIXYA8yGMsAPe
NfGTFfyuY4WPwPI6VuJwvS68oOCZ+/heEBj+hazPw7K/O/frBPg/MgPsPMvf
xgO9E/gCNvgvLvgvLtjJBTsu1+MwwiUDu7yQNdczacXw6YnXBWMJbbuctnoD
2aLcWHdx9BcKcCglBTYgTfBXk0qBnr8RMmuqJmo6EcCZrOojxyyOiWd9fwQa
00B27Osi2slpTsuRDjtvZhr4OBEeteZ7nXT1xFinFwZHm/hBcFSaXmOcxFYT
duEIGnjIKcPPS42kGORNxWnFGW4r3C1tToIl99U/i2XtTWDXrEyo7iELU2cc
bnqR/Zo63ZM4nYA97JxRgJGyVTmvKJKYvGL4jh9CSoW5HfFJy1d/230sAHl0
veB52y4n7Swg9UaMMFAX7bFZkVg72VkMkD4VY9mlm0L/HqhbtHl2efp+y4QD
kX2VJTGvLmNnyX64OiX1snCqIV4usBEJgmTz4PRSmxK9fM5NiaxJCr1JY9cE
hTXfpPoN2xeb8hbbmxJp5dLzNqpejX9eSQCk1l5rAM6TNNkPZ2/OTi/fH2mX
gW92dyTNzX28s/PtDibWIWV2K6t6IfhvnXhMISp+2LFTMSXTI2RW1Do8IqZE
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
ejcBAA==

-->

</rfc>

