<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.23 (Ruby 3.1.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-over-quic-02" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title>RTP over QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-02"/>
    <author initials="J." surname="Ott" fullname="Jörg Ott">
      <organization>Technical University Munich</organization>
      <address>
        <email>ott@in.tum.de</email>
      </address>
    </author>
    <author initials="M." surname="Engelbart" fullname="Mathis Engelbart">
      <organization>Technical University Munich</organization>
      <address>
        <email>mathis.engelbart@gmail.com</email>
      </address>
    </author>
    <date/>
    <area>Applications and Real-Time</area>
    <workgroup>Audio/Video Transport Core Maintenance</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies a minimal mapping for encapsulating Real-time Transport
Protocol (RTP) and RTP Control Protocol (RTCP) packets within the QUIC protocol.
It also discusses how to leverage state from the QUIC implementation in the
endpoints, in order to reduce the need to exchange RTCP packets and how to
implement congestion control and rate adaptation without relying on RTCP
feedback.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Audio/Video Transport Core Maintenance Working Group mailing list (avt@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/avt/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/mengelbart/rtp-over-quic-draft"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies a minimal mapping for encapsulating Real-time Transport
Protocol (RTP) <xref target="RFC3550"/> and RTP Control Protocol (RTCP) <xref target="RFC3550"/> packets
within the QUIC protocol (<xref target="RFC9000"/>). It also discusses how to leverage state
from the QUIC implementation in the endpoints, in order to reduce the need to
exchange RTCP packets, and how to implement congestion control and rate
adaptation without relying on RTCP feedback.</t>
      <section anchor="background">
        <name>Background</name>
        <t>The Real-time Transport Protocol (RTP) <xref target="RFC3550"/> is generally used to carry
real-time media for conversational media sessions, such as video conferences,
across the Internet.  Since RTP requires real-time delivery and is tolerant to
packet losses, the default underlying transport protocol has been UDP, recently
with DTLS on top to secure the media exchange and occasionally TCP (and possibly
TLS) as a fallback.</t>
        <t>This specification describes an application usage of QUIC (<xref target="RFC9308"/>).
As a baseline, the specification does not expect more than a standard QUIC implementation
as defined in <xref target="RFC8999"/>, <xref target="RFC9000"/>, <xref target="RFC9001"/>, and <xref target="RFC9002"/>,
providing a secure end-to-end transport that is also expected to work well through NATs and firewalls.
Beyond this baseline, real-time applications can benefit from QUIC extensions such as unreliable QUIC datagrams
<xref target="RFC9221"/>, which provides additional desirable properties for
real-time traffic (e.g., no unnecessary retransmissions, avoiding head-of-line
blocking).</t>
        <t>Moreover, with QUIC's multiplexing capabilities, reliable and unreliable
transport connections as, e.g., needed for WebRTC, can be established with only
a single port used at either end of the connection.</t>
      </section>
      <section anchor="in-scope">
        <name>What's in Scope for this Specification</name>
        <t>This document defines a mapping for RTP and RTCP over QUIC (this mapping is
hereafter referred to as "RTP-over-QUIC"), and describes ways to reduce the
amount of RTCP traffic by leveraging state information readily available within
a QUIC endpoint. This document also describes different options for implementing
congestion control and rate adaptation for RTP over QUIC.</t>
        <t>This specification focuses on providing a secure encapsulation of RTP packets
for transmission over QUIC. The expected usage is wherever RTP is used to carry
media packets, allowing QUIC in place of other transport protocols such as TCP,
UDP, SCTP, DTLS, etc. That is, we expect RTP-over-QUIC to be used in contexts in
which a signaling protocol is used to announce or negotiate a media
encapsulation and the associated transport parameters (such as IP address, port
number). RTP-over-QUIC is not intended as a stand-alone media transport,
although QUIC transport parameters could be statically configured.</t>
        <t>The above implies that RTP-over-QUIC is targeted at peer-to-peer operation; but
it may also be used in client-server-style settings, e.g., when talking to a
conference server as described in RFC 7667 (<xref target="RFC7667"/>), or, if RTP-over-QUIC
is used to replace RTSP (<xref target="RFC7826"/>), to a media server.</t>
        <t>Moreover, this document describes how a QUIC implementation and its API can be
extended to improve efficiency of the RTP-over-QUIC protocol operation.</t>
        <t>RTP-over-QUIC does not impact the usage of RTP Audio Video Profiles (AVP)
(<xref target="RFC3551"/>), or any RTP-based mechanisms, even though it may render some of
them unnecessary, e.g., Secure Real-Time Transport Prococol (SRTP)
(<xref target="RFC3711"/>) might not be needed, because end-to-end security is already
provided by QUIC, and double encryption by QUIC and by SRTP might have more
costs than benefits.  Nor does RTP-over-QUIC limit the use of RTCP-based
mechanisms, even though some information or functions obtained by using RTCP
mechanisms may also be available from the underlying QUIC implementation by
other means.</t>
        <t>Between two (or more) endpoints, RTP-over-QUIC supports multiplexing multiple
RTP-based media streams within a single QUIC connection and thus using a single
(destination IP address, destination port number, source IP address, source port
number, protocol) 5-tuple..  We note that multiple independent QUIC connections
may be established in parallel using the same destination IP address,
destination port number, source IP address, source port number, protocol)
5-tuple., e.g. to carry different media channels. These connections would be
logically independent of one another.</t>
      </section>
      <section anchor="out-of-scope">
        <name>What's Out of Scope for this Specification</name>
        <t>This document does not attempt to enhance QUIC for real-time media or define a
replacement for, or evolution of, RTP. Work to map other media transport
protocols to QUIC is under way elsewhere in the IETF.</t>
        <t>RTP-over-QUIC is designed for use with point-to-point connections, because QUIC
itself is not defined for multicast operation. The scope of this document is
limited to unicast RTP/RTCP, even though nothing would or should prevent its use
in multicast setups once QUIC supports multicast.</t>
        <t>RTP-over-QUIC does not define congestion control and rate adaptation algorithms
for use with media. However, <xref target="congestion-control"/> discusses options for how
congestion control and rate adaptation could be performed at the QUIC and/or at
the RTP layer, and how information available at the QUIC layer could be exposed
via an API for the benefit of RTP layer implementation.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's note:</strong> Need to check whether <xref target="congestion-control"/> will also
describe the QUIC interface that's being exposed, or if that ends up somewhere
else in the document.</t>
          </li>
        </ul>
        <t>RTP-over-QUIC does not define prioritization mechanisms when handling different
media as those would be dependent on the media themselves and their
relationships. Prioritization is left to the application using RTP-over-QUIC.</t>
        <t>This document does not cover signaling for session setup. SDP for RTP-over-QUIC
is defined in separate documents such as
<xref target="I-D.draft-dawkins-avtcore-sdp-rtp-quic"/>, and can be carried in any signaling
protocol that can carry SDP, including the Session Initiation Protocol (SIP)
(<xref target="RFC3261"/>), Real-Time Protocols for Browser-Based Applications (RTCWeb)
(<xref target="RFC8825"/>), or WebRTC-HTTP Ingestion Protocol (WHIP)
(<xref target="I-D.draft-ietf-wish-whip"/>).</t>
      </section>
    </section>
    <section anchor="terminology-and-notation">
      <name>Terminology and Notation</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
      <ul empty="true">
        <li>
          <t><strong>Editor's note:</strong> the list of terms below will almost certainly grow in size as the specification matures.</t>
        </li>
      </ul>
      <t>The following terms are used:</t>
      <dl>
        <dt>Congestion Control:</dt>
        <dd>
          <t>A mechanism to limit the aggregate amount of data that has been sent over a
path to a receiver, but has not been acknowledged by the receiver. This prevents
a sender from overwhelming the capacity of a path between a sender and a
receiver, causing some outstanding data to be discarded before the receiver can
receive the data and acknowledge it to the sender.</t>
        </dd>
        <dt>Datagram:</dt>
        <dd>
          <t>Datagrams exist in UDP as well as in QUIC's unreliable datagram extension. If not explicitly noted
differently, the term datagram in this document refers to a QUIC Datagram as defined in
<xref target="RFC9221"/>.</t>
        </dd>
        <dt>Endpoint:</dt>
        <dd>
          <t>A QUIC server or client that participates in an RTP over QUIC session.</t>
        </dd>
        <dt>Frame:</dt>
        <dd>
          <t>A QUIC frame as defined in <xref target="RFC9000"/>.</t>
        </dd>
        <dt>Media Encoder:</dt>
        <dd>
          <t>An entity that is used by an application to produce a stream of encoded media, which can be
packetized in RTP packets to be transmitted over QUIC.</t>
        </dd>
        <dt>Rate Adaptation:</dt>
        <dd>
          <t>A mechanism to help a sender determine and adjust its sending rate, in order
to maximize the amount of information that is sent to a receiver, without
causing queues to build beyond a reasonable amount, causing "buffer bloat" and
"jitter". Rate adapation is one way to accomplish congestion control for
realtime media, especially when a sender has multiple media streams to the
receiver, because the sum of all sending rates for media streams must not be
high enough to cause congestion on the path these media streams share between
sender and receiver.</t>
        </dd>
        <dt>Receiver:</dt>
        <dd>
          <t>An endpoint that receives media in RTP packets and may send or receive RTCP packets.</t>
        </dd>
        <dt>Sender:</dt>
        <dd>
          <t>An endpoint that sends media in RTP packets and may send or receive RTCP packets.</t>
        </dd>
      </dl>
      <t>Packet diagrams in this document use the format defined in <xref section="1.3" sectionFormat="of" target="RFC9000"/> to
illustrate the order and size of fields.</t>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>This document introduces a mapping of the Real-time Transport Protocol (RTP) to
the QUIC transport protocol. RTP over QUIC allows the use of QUIC streams and
QUIC datagrams to transport real-time data, and thus, the QUIC
implementation MUST support QUIC's datagram extension, if RTP packets
should be sent over QUIC datagrams. Since datagram frames cannot be fragmented,
the QUIC implementation MUST also provide a way to query the maximum datagram
size so that an application can create RTP packets that always fit into a QUIC
datagram frame.</t>
      <t><xref target="RFC3550"/> specifies that RTP sessions need to be transmitted on different
transport addresses to allow multiplexing between them. RTP over QUIC uses a
different approach to leverage the advantages of QUIC connections without
managing a separate QUIC connection per RTP session. QUIC does not provide
demultiplexing between different flows on datagrams but suggests that an
application implement a demultiplexing mechanism if required. An example of such
a mechanism are flow identifiers prepended to each datagram frame as described
in <xref section="2.1" sectionFormat="of" target="I-D.draft-ietf-masque-h3-datagram"/>. RTP over QUIC uses a
flow identifier to replace the network address and port number to multiplex many
RTP sessions over the same QUIC connection.</t>
      <t>A rate adaptation algorithm can be plugged in to adapt the media bitrate to the
available bandwidth. This document does not mandate any specific rate adaptation
algorithm. Some examples include Network-Assisted Dynamic Adaptation (NADA)
<xref target="RFC8698"/> and Self-Clocked Rate Adaptation for Multimedia (SCReAM)
<xref target="RFC8298"/>. These rate adaptation algorithms require some feedback about
the network's performance to calculate target bitrates. Traditionally this
feedback is generated at the receiver and sent back to the sender via RTCP.
Since QUIC also collects some metrics about the network's performance, these
metrics can be used to generate the required feedback at the sender-side and
provide it to the rate adaptation algorithm to avoid the additional overhead of the
RTCP stream.</t>
      <section anchor="topologies">
        <name>Supported RTP Topologies</name>
        <t>RTP over QUIC only supports some of the RTP topologies described in
<xref target="RFC7667"/>. Most notably, due to QUIC being a purely unicast protocol at the
time of writing, RTP over QUIC cannot be used as a transport protocol in any of
the multicast topologies (e.g., <em>Topo-ASM</em>, <em>Topo-SSM</em>, <em>Topo-SSM-RAMS</em>).</t>
        <t>RTP supports different types of translators and mixers. Whenever a middlebox
such as a translator or a mixer needs to access the content of RTP/RTCP-packets,
the QUIC connection has to be terminated at that middlebox.</t>
        <t>Using RTP over QUIC streams (see <xref target="quic-streams"/>) can support much larger RTP
packet sizes than other transport protocols such as UDP can, which can lead to
problems with transport translators which translate from RTP over QUIC to RTP
over a different transport protocol. A similar problem can occur if a translator
needs to translate from RTP over UDP to RTP over QUIC datagrams, where the MTU
of a QUIC datagram may be smaller than the MTU of a UDP datagram. In both cases,
the translator may need to rewrite the RTP packets to fit into the smaller MTU
of the other protocol. Such a translator may need codec-specific knowledge to
packetize the payload of the incoming RTP packets in smaller RTP packets.</t>
      </section>
    </section>
    <section anchor="alpn">
      <name>Connection Establishment and ALPN</name>
      <t>QUIC requires the use of ALPN <xref target="RFC7301"/> tokens during connection setup. RTP
over QUIC uses "rtp-mux-quic" as ALPN token in the TLS handshake (see also
<xref target="iana-considerations"/>.</t>
      <t>Note that the use of a given RTP profile is not reflected in the ALPN token even
though it could be considered part of the application usage.  This is simply
because different RTP sessions, which may use different RTP profiles, may be
carried within the same QUIC connection.</t>
      <ul empty="true">
        <li>
          <t><strong>Editor's note:</strong> "rtp-mux-quic" indicates that RTP and other protocols may
be multiplexed on the same QUIC connection using a flow identifier as
described in <xref target="encapsulation"/>. Applications are responsible for negotiation
of protocols in use by appropriate use of a signaling protocol such as SDP.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t><strong>Editor's note:</strong> This implies that applications cannot use RTP over QUIC as
specified in this document over WebTransport.</t>
        </li>
      </ul>
      <section anchor="draft-version-identification">
        <name>Draft version identification</name>
        <ul empty="true">
          <li>
            <t><strong>RFC Editor's note:</strong> Please remove this section prior to publication of a
final version of this document.</t>
          </li>
        </ul>
        <t>RTP over QUIC uses the token "rtp-mux-quic" to identify itself in ALPN.</t>
        <t>Only implementations of the final, published RFC can identify themselves as
"rtp-mux-quic". 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-ietf-avtcore-rtp-over-quic-04 is identified using the string
"rtp-mux-quic-04".</t>
        <t>Non-compatible experiments that are based on these draft versions MUST append
the string "-" and an experiment name to the identifier.</t>
      </section>
    </section>
    <section anchor="encapsulation">
      <name>Encapsulation</name>
      <t>This section describes the encapsulation of RTP/RTCP packets in QUIC.</t>
      <t>QUIC supports two transport methods: streams <xref target="RFC9000"/> and
datagrams <xref target="RFC9221"/>. This document specifies mappings of RTP to
both of the transport modes. Senders MAY combine both modes by sending some
RTP/RTCP packets over the same or different QUIC streams and others in QUIC
datagrams.</t>
      <t><xref target="multiplexing"/> introduces a multiplexing mechanism that supports multiplexing
RTP, RTCP, and, with some constraints, other non-RTP protocols. <xref target="quic-streams"/>
and <xref target="quic-datagrams"/> explain the specifics of mapping RTP to QUIC streams and
QUIC datagrams, respectively.</t>
      <section anchor="multiplexing">
        <name>Multiplexing</name>
        <t>RTP over QUIC uses flow identifiers to multiplex different RTP, RTCP, and
non-RTP data streams on a single QUIC connection. A flow identifier is a QUIC
variable-length integer as described in <xref section="16" sectionFormat="of" target="RFC9000"/>. Each flow
identifier is associated with a stream of RTP packets, RTCP packets, or a data
stream of a non-RTP protocol.</t>
        <t>In a QUIC connection using the ALPN token defined in <xref target="alpn"/>, every QUIC
datagram and every QUIC stream MUST start with a flow identifier. A peer MUST
NOT send any data in a datagram or stream that is not associated with the flow
identifier which started the datagram or stream.</t>
        <t>RTP and RTCP packets of different RTP sessions MUST use distinct flow
identifiers. If peers wish to send multiple types of media in a single RTP
session, they MAY do so by following <xref target="RFC8860"/>.</t>
        <t>A single RTP session MAY be associated with one or two flow identifiers. Thus,
it is possible to send RTP and RTCP packets belonging to the same session using
different flow identifiers. RTP and RTCP packets of a single RTP session MAY use
the same flow identifier (following the procedures defined in <xref target="RFC5761"/>, or
they MAY use different flow identifiers.</t>
        <t>The association between flow identifiers and data streams MUST be negotiated
using appropriate signaling. Applications MAY send data using flow identifiers
not associated with any RTP or RTCP stream. If a receiver cannot associate a
flow identifier with any RTP/RTCP or non-RTP stream, it MAY drop the data
stream.</t>
        <t>There are different use cases for sharing the same QUIC connection between RTP
and non-RTP data streams. Peers might use the same connection to exchange
signaling messages or exchange data while sending and receiving media streams.
The semantics of non-RTP datagrams or streams are not in the scope of this
document. Peers MAY use any protocol on top of the encapsulation described in
this document.</t>
        <t>Flow identifiers introduce some overhead in addition to the header overhead of
RTP/RTCP and QUIC. QUIC variable-length integers require between one and eight
bytes depending on the number expressed. Thus, it is advisable to use low
numbers first and only use higher ones if necessary due to an increased number
of flows.</t>
      </section>
      <section anchor="quic-streams">
        <name>QUIC Streams</name>
        <t>To send RTP/RTCP packets over QUIC streams, a sender MUST open a new
unidirectional QUIC stream. Streams are unidirectional because there is no
synchronous relationship between sent and received RTP/RTCP packets. A sender
MAY open new QUIC streams for different packets using the same flow identifier,
for example, to avoid head-of-line blocking.</t>
        <t><xref target="fig-stream-payload"/> shows the encapsulation format for RTP over QUIC Streams.</t>
        <figure anchor="fig-stream-payload">
          <name>RTP over QUIC Streams Payload Format</name>
          <artwork><![CDATA[
Payload {
  Flow Identifier (i),
  RTP/RTCP Payload(..) ...,
}
]]></artwork>
        </figure>
        <dl>
          <dt>Flow Identifier:</dt>
          <dd>
            <t>Flow identifier to demultiplex different data flows on the same QUIC
connection.</t>
          </dd>
          <dt>RTP/RTCP Payload:</dt>
          <dd>
            <t>Contains the RTP/RTCP payload; see <xref target="fig-rtp-stream-payload"/></t>
          </dd>
        </dl>
        <t>The payload in a QUIC stream starts with the flow identifier followed by one or
more RTP/RTCP payloads. All RTP/RTCP payloads sent on a stream MUST belong to
the RTP session with the same flow identifier.</t>
        <t>Each payload begins with a length field indicating the length of the RTP/RTCP
packet, followed by the packet itself, see <xref target="fig-rtp-stream-payload"/>.</t>
        <figure anchor="fig-rtp-stream-payload">
          <name>RTP/RTCP payload for QUIC streams</name>
          <artwork><![CDATA[
RTP/RTCP Payload {
  Length(i),
  RTP/RTCP Packet(..),
}
]]></artwork>
        </figure>
        <dl>
          <dt>Length:</dt>
          <dd>
            <t>A QUIC variable length integer <xref section="16" sectionFormat="of" target="RFC9000"/> describing the
length of the following RTP/RTCP packets in bytes.</t>
          </dd>
          <dt>RTP/RTCP Packet:</dt>
          <dd>
            <t>The RTP/RTCP packet to transmit.</t>
          </dd>
        </dl>
        <t>If a sender knows that a packet, which was not yet successfully and completely
transmitted, is no longer needed, the sender MAY close the stream by sending a
RESET_STREAM frame.</t>
        <t>A translator that translates between two endpoints, both connected via QUIC,
MUST forward RESET_STREAM frames received from one end to the other unless it
forwards the RTP packets on QUIC datagrams.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's Note:</strong> It might be desired to also allow the receiver to request
cancellation of a stream by sending STOP_SENDING frame. However, this might
lead to unintended packet loss because the receiver does not know which and
how many packets follow on the same stream. If this feature is required, a
solution could be to require senders to open new streams for each application
data unit, as described in a previous version of this document.</t>
          </li>
        </ul>
        <t>Large RTP packets sent on a stream will be fragmented into smaller QUIC frames.
The QUIC frames are transmitted reliably and in order such that a receiving
application can read a complete RTP packet from the stream as long as the stream
is not closed with a RESET_STREAM frame. No retransmission has to be
implemented by the application since QUIC frames lost in transit are
retransmitted by QUIC.</t>
        <t>Opening new streams for new packets MAY implicitly limit the number of packets
concurrently in transit because the QUIC receiver provides an upper bound of
parallel streams, which it can update using QUIC MAX_STREAMS frames. The number
of packets that have to be transmitted concurrently depends on several factors,
such as the number of RTP streams within a QUIC connection, the bitrate of the
media streams, and the maximum acceptable transmission delay of a given packet.
Receivers are responsible for providing senders with enough credit to open new
streams for new packets at any time.</t>
      </section>
      <section anchor="quic-datagrams">
        <name>QUIC Datagrams</name>
        <t>Senders can also transmit RTP packets in QUIC datagrams. QUIC datagrams are an
extension to QUIC described in <xref target="RFC9221"/>. QUIC datagrams preserve frame
boundaries. Thus, a single RTP packet can be mapped to a single QUIC datagram
without additional framing. Senders SHOULD consider the header overhead
associated with QUIC datagrams and ensure that the RTP/RTCP packets, including
their payloads, flow identifier, QUIC, and IP headers, will fit into path MTU.</t>
        <t><xref target="fig-dgram-payload"/> shows the encapsulation format for RTP over QUIC
Datagrams.</t>
        <figure anchor="fig-dgram-payload">
          <name>RTP over QUIC Datagram Payload Format</name>
          <artwork><![CDATA[
Payload {
  Flow Identifier (i),
  RTP/RTCP Packet (..),
}
]]></artwork>
        </figure>
        <dl>
          <dt>Flow Identifier:</dt>
          <dd>
            <t>Flow identifier to demultiplex different data flows on the same QUIC
connection.</t>
          </dd>
          <dt>RTP/RTCP Packet:</dt>
          <dd>
            <t>The RTP/RTCP packet to transmit.</t>
          </dd>
        </dl>
        <t>Since QUIC datagrams are not retransmitted on loss (see also
<xref target="transport-layer-feedback"/> for loss signaling), if an application wishes to
retransmit lost RTP packets, the retransmission has to be implemented by the
application. RTP retransmissions can be done in the same RTP session or a
separate RTP session <xref target="RFC4588"/> and the flow identifier MUST be set to the
flow identifier of the RTP session in which the retransmission happens.</t>
      </section>
    </section>
    <section anchor="rtcp">
      <name>RTCP</name>
      <t>The RTP Control Protocol (RTCP) allows RTP senders and receivers to exchange
control information to monitor connection statistics and to identify and
synchronize streams. Many of the statistics contained in RTCP packets overlap
with the connection statistics collected by a QUIC connection. To avoid using up
bandwidth for duplicated control information, the information SHOULD only be
sent at one protocol layer. QUIC relies on certain control frames to be sent.</t>
      <t>In general, applications MAY send RTCP without any restrictions. This document
specifies a baseline for replacing some of the RTCP packet types by mapping the
contents to QUIC connection statistics. Future documents can extend this mapping
for other RTCP format types. It is RECOMMENDED to expose relevant information
from the QUIC layer to the application instead of exchanging additional RTCP
packets, where applicable.</t>
      <t>This section discusses what information can be exposed from the QUIC connection
layer to reduce the RTCP overhead and which type of RTCP messages cannot be
replaced by similar feedback from the transport layer. The list of RTCP packets
in this section is not exhaustive and similar considerations SHOULD be taken
into account before exchanging any other type of RTCP control packets.</t>
      <section anchor="transport-layer-feedback">
        <name>Transport Layer Feedback</name>
        <t>This section explains how some of the RTCP packet types which are used to signal
reception statistics can be replaced by equivalent statistics that are already
collected by QUIC. The following list explains how this mapping can be achieved
for the individual fields of different RTCP packet types.</t>
        <t>QUIC Datagrams are ack-eliciting packets, which means, that an acknowledgment is
triggered when a datagram frame is received. Thus, a sender can assume that an
RTP packet arrived at the receiver or was lost in transit, using the QUIC
acknowledgments of QUIC Datagram frames. In the following, an RTP packet is
regarded as acknowledged, when the QUIC Datagram frame that carried the RTP
packet, was acknowledged. For RTP packets that are sent over QUIC streams, an
RTP packet can be considered acknowledged, when all frames which carried
fragments of the RTP packet were acknowledged.</t>
        <t>When QUIC Streams are used, the application should be aware that the direct
mapping proposed below may not reflect the real characteristics of the network.
RTP packet loss can seem lower than actual packet loss due to QUIC's automatic
retransmissions. Similarly, timing information might be incorrect due to
retransmissions.</t>
        <t>Some of the transport layer feedback that can be implemented in RTCP contains
information that is not included in QUIC by default, but can be added via QUIC
extensions. One important example are arrival timestamps, which are not part of
QUIC's default acknowledgment frames, but can be added using
<xref target="I-D.draft-smith-quic-receive-ts"/> or <xref target="I-D.draft-huitema-quic-ts"/>. Another
extension, that can improve the precision of the feedback from QUIC is
<xref target="I-D.draft-ietf-quic-ack-frequency"/>, which allows a sender to control the
delay of acknowledgments sent by the receiver.</t>
        <t>The list of RTCP Receiver Reports that could be replaced by feedback from QUIC follows:</t>
        <ul spacing="normal">
          <li>
            <t><em>Receiver Reports</em> (<tt>PT=201</tt>, <tt>Name=RR</tt>, <xref target="RFC3550"/>)
            </t>
            <ul spacing="normal">
              <li>
                <em>Fraction lost</em>: When RTP packets are carried in QUIC datagrams, the fraction of lost packets can be directly inferred from
QUIC's acknowledgments. The calculation SHOULD include all packets up to the
acknowledged RTP packet with the highest RTP sequence number. Later packets
SHOULD be ignored, since they may still be in flight, unless other QUIC
packets that were sent after the RTP packet, were already acknowledged.</li>
              <li>
                <em>Cumulative lost</em>: Similar to the fraction of lost packets, the cumulative
loss can be inferred from QUIC's acknowledgments including all packets up to
the latest acknowledged packet.</li>
              <li>
                <em>Highest Sequence Number received</em>: In RTCP, this field is a 32-bit field
that contains the highest sequence number a receiver received in an RTP
packet and the count of sequence number cycles the receiver has observed. A
sender sends RTP packets in QUIC packets and receives acknowledgments for
the QUIC packets. By keeping a mapping from a QUIC packet to the RTP packets
encapsulated in that QUIC packet, the sender can infer the highest sequence
number and number of cycles seen by the receiver from QUIC acknowledgments.</li>
              <li>
                <em>Interarrival jitter</em>: If QUIC acknowledgments carry timestamps as described
in one of the extensions referenced above, senders can infer from QUIC acks
the interarrival jitter from the arrival timestamps.</li>
              <li>
                <em>Last SR</em>: Similar to RTP arrival times, the arrival time of RTCP Sender
Reports can be inferred from QUIC acknowledgments, if they include
timestamps.</li>
              <li>
                <em>Delay since last SR</em>: This field is not required when the receiver reports
are entirely replaced by QUIC feedback.</li>
            </ul>
          </li>
          <li>
            <t><em>Negative Acknowledgments</em> (<tt>PT=205</tt>, <tt>FMT=1</tt>, <tt>Name=Generic NACK</tt>,
<xref target="RFC4585"/>)
            </t>
            <ul spacing="normal">
              <li>The generic negative acknowledgment packet contains information about
packets which the receiver considered lost. <xref section="6.2.1." sectionFormat="of" target="RFC4585"/>
recommends to use this feature only, if the underlying protocol cannot
provide similar feedback. QUIC does not provide negative acknowledgments,
but can detect lost packets based on the Gap numbers contained in QUIC ACK frames <xref section="6" sectionFormat="of" target="RFC9002"/>.</li>
            </ul>
          </li>
          <li>
            <t><em>ECN Feedback</em> (<tt>PT=205</tt>, <tt>FMT=8</tt>, <tt>Name=RTCP-ECN-FB</tt>, <xref target="RFC6679"/>)
            </t>
            <ul spacing="normal">
              <li>ECN feedback packets report the count of observed ECN-CE marks. <xref target="RFC6679"/>
defines two RTCP reports, one packet type (with <tt>PT=205</tt> and <tt>FMT=8</tt>) and a
new report block for the extended reports which are listed below. QUIC
supports ECN reporting through acknowledgments. If the connection supports
ECN, the reporting of ECN counts SHOULD be done using QUIC acknowledgments,
rather than RTCP ECN feedback reports.</li>
            </ul>
          </li>
          <li>
            <t><em>Congestion Control Feedback</em> (<tt>PT=205</tt>, <tt>FMT=11</tt>, <tt>Name=CCFB</tt>, <xref target="RFC8888"/>)
            </t>
            <ul spacing="normal">
              <li>RTP Congestion Control Feedback contains acknowledgments, arrival timestamps
and ECN notifications for each received packet. Acknowledgments and ECNs can
be inferred from QUIC as described above. Arrival timestamps can be added
through extended acknowledgment frames as described in
<xref target="I-D.draft-smith-quic-receive-ts"/> or <xref target="I-D.draft-huitema-quic-ts"/>.</li>
            </ul>
          </li>
          <li>
            <t><em>Extended Reports</em> (<tt>PT=207</tt>, <tt>Name=XR</tt>, <xref target="RFC3611"/>)
            </t>
            <ul spacing="normal">
              <li>Extended Reports offer an extensible framework for a variety of different
control messages. Some of the standard report blocks which can be
implemented in extended reports such as loss RLE or ECNs can be implemented
in QUIC, too. For other report blocks, it SHOULD be evaluated individually,
if the contained information can be transmitted using QUIC instead.</li>
            </ul>
          </li>
        </ul>
      </section>
      <section anchor="application-layer-repair-and-other-control-messages">
        <name>Application Layer Repair and other Control Messages</name>
        <t>While the previous section presented some RTCP packet that can be replaced by
QUIC features, QUIC cannot replace all of the available RTCP packet types. This
mostly affects RTCP packet types which carry control information that is to be
interpreted by the application layer instead of the transport itself.</t>
        <t><em>Sender Reports</em> (<tt>PT=200</tt>, <tt>Name=SR</tt>, <xref target="RFC3550"/>) are similar to <em>Receiver
Reports</em>. They are sent by media senders and additionally contain a NTP and a
RTP timestamp and the number of packets and octets transmitted by the sender.
The timestamps can be used by a receiver to synchronize streams. QUIC cannot
provide a similar control information, since it does not know about RTP
timestamps. Nor can a QUIC receiver calculate the packet or octet counts,
since it does not know about lost datagrams. Thus, sender reports are required
in RTP over QUIC to synchronize streams at the receiver. The sender reports
SHOULD not contain any receiver report blocks, as the information can be inferred
from the QUIC transport as explained in the previous section.</t>
        <t>Next to carrying transmission statistics, RTCP packets can contain application
layer control information, that cannot directly be mapped to QUIC. This includes
for example the <em>Source Description</em> (<tt>PT=202</tt>, <tt>Name=SDES</tt>), <em>Bye</em> (<tt>PT=203</tt>,
<tt>Name=BYE</tt>) and <em>Application</em> (<tt>PT=204</tt>, <tt>Name=APP</tt>) packet types from
<xref target="RFC3550"/> or many of the payload specific feedback messages (<tt>PT=206</tt>)
defined in <xref target="RFC4585"/>, which can for example be used to control the codec
behavior of the sender. Since QUIC does not provide any kind of application
layer control messaging, these RTCP packet types SHOULD be used in the same way
as they would be used over any other transport protocol.</t>
      </section>
    </section>
    <section anchor="congestion-control">
      <name>Congestion Control and Rate Adaptation</name>
      <t>Like any other application on the internet, RTP over QUIC needs to perform
congestion control to avoid overloading the network.</t>
      <t>QUIC is a congestion controlled transport protocol. Senders are required to
employ some form of congestion control. The default congestion control specified
for QUIC in <xref target="RFC9002"/> is similar to TCP NewReno <xref target="RFC6582"/>, but senders are free to choose
any congestion control algorithm as long as they follow the guidelines specified
in <xref section="3" sectionFormat="of" target="RFC8085"/>.</t>
      <t>RTP itself does not specify a congestion control algorithm, but <xref target="RFC8888"/> defines an RTCP
feedback message intended to enable rate adaptation for interactive real-time traffic using RTP,
and successful rate adaptation will accomoplish congestion control as well.
Various rate adaptation algorithms for real-time media are defined in separate RFCs
(e.g. SCReAM <xref target="RFC8298"/> and NADA <xref target="RFC8698"/>).
The rate adaptation algorithms for RTP are specifically tailored for
real-time transmissions at low latencies. The available rate adaptation
algorithms for RTP expose a <tt>target_bitrate</tt> that can be used to dynamically
reconfigure media codecs to produce media at a rate that can be sent in
real-time under the observed network conditions.</t>
      <t>This section defines two architectures for congestion control and bandwidth
estimation for RTP over QUIC, but it does not mandate any specific rate adaptation algorithm
to use. The section also discusses congestion control
implications of using shared or multiple separate QUIC connections to send and
receive multiple independent data streams.</t>
      <t>It is assumed that the congestion controller in use provides a pacing mechanism
to determine when a packet can be sent to avoid bursts. The currently proposed
congestion control algorithms for real-time communications provide such pacing
mechanisms. The use of congestion controllers which don't provide a pacing
mechanism is out of scope of this document.</t>
      <section anchor="cc-quic-layer">
        <name>Congestion Control at the QUIC layer</name>
        <t>If congestion control is to be applied at the transport layer, it is RECOMMENDED
that the QUIC Implementation uses a congestion controller that keeps queueing
delays short to keep the transmission latency for RTP and RTCP packets as low
as possible.</t>
        <t>Many low latency congestion control algorithms depend on detailed arrival time
feedback to estimate the current one-way delay between sender and receiver. QUIC
does not provide arrival timestamps in its acknowledgments. The QUIC
implementations of the sender and receiver can use an extension to add this
information to QUICs acknowledgment frames, e.g.
<xref target="I-D.draft-smith-quic-receive-ts"/> or <xref target="I-D.draft-huitema-quic-ts"/>.</t>
        <t>If congestion control is done by the QUIC implementation, the application needs
a mechanism to query the currently available bandwidth to adapt media codec
configurations. The employed congestion controller of the QUIC connection SHOULD
expose such an API to the application. If a current bandwidth estimate is not
available from the QUIC congestion controller, the sender can either implement
an alternative bandwidth estimation at the application layer as described in
<xref target="cc-application-layer"/> or a receiver can feedback the observed bandwidth
through RTCP, e.g., using <xref target="I-D.draft-alvestrand-rmcat-remb"/>.</t>
      </section>
      <section anchor="cc-application-layer">
        <name>Congestion Control at the Application Layer</name>
        <t>If an application cannot access a bandwidth estimation from the QUIC layer, or
the QUIC implementation does not support a delay-based, low-latency congestion
control algorithm, the application can alternatively implement a bandwidth estimation
algorithm at the application layer. Calculating a bandwidth estimation at the
application layer can be done using the same bandwidth estimation algorithms as
described in <xref target="congestion-control"/> (NADA, SCReAM). The bandwidth estimation
algorithm typically needs some feedback on the transmission performance. This
feedback can be collected following the guidelines in <xref target="rtcp"/>.</t>
        <t>If the application implements full congestion control rather than just a
bandwidth estimation at the application layer using a congestion controller that
satisfies the requirements of <xref section="7" sectionFormat="of" target="RFC9002"/>, and the connection is
only used to send real-time media which is subject to the application layer
congestion control, it is RECOMMENDED to disable any other congestion control
that is possibly running at the QUIC layer. Disabling the additional congestion
controllers helps to avoid any interference between the different congestion
controllers.</t>
      </section>
      <section anchor="shared-quic-connections">
        <name>Shared QUIC connections</name>
        <t>Two endpoints may want to establish channels to exchange more than one type of data simultaneously.
The channels can be intended to carry real-time RTP data or other non-real-time data.
This can be realized in different ways.  A straightforward solution is to establish multiple QUIC
connections, one for each channel.  Or all real-time channels are mapped to one QUIC
connection, while a separate QUIC connection is created for the non-real-time channels.
In both cases, the congestion controllers can be chosen to match the demands of the respective
channels and the different QUIC connections will compete for the same resources in the network.
No local prioritization of data across the different (types of) channels would be necessary.</t>
        <t>Alternatively, (all or a subset of) real-time and non-real-time channels are multiplexed onto a single,
shared QUIC connection, which can be done by using the flow identifier described
in <xref target="encapsulation"/>.  Applications multiplexing multiple streams in one
connection SHOULD implement some form of stream prioritization or bandwidth
allocation.</t>
      </section>
    </section>
    <section anchor="api-considerations">
      <name>API Considerations</name>
      <t>The mapping described in the previous sections poses some interface requirements
on the QUIC implementation. Although a basic mapping should work without any of
these requirements most of the optimizations regarding rate adaptation and
RTCP mapping require certain functionalities to be exposed to the application.
The following to sections contain a list of information that is required by an
application to implement different optimizations (<xref target="quic-api-read"/>) and
functions that a QUIC implementation SHOULD expose to an application
(<xref target="quic-api-write"/>).</t>
      <t>Each item in the following list can be considered individually. Any exposed
information or function can be used by RTP over QUIC regardless of whether the
other items are available. Thus, RTP over QUIC does not depend on the
availability of all of the listed features but can apply different optimizations
depending on the functionality exposed by the QUIC implementation.</t>
      <section anchor="quic-api-read">
        <name>Information to be exported from QUIC</name>
        <t>This section provides a list of items that an application might want to export
from an underlying QUIC implementation. It is thus RECOMMENDED that a QUIC
implementation exports the listed items to the application.</t>
        <ul spacing="normal">
          <li>
            <em>Maximum Datagram Size</em>: The maximum datagram size that the QUIC connection
can transmit.</li>
          <li>
            <em>Datagram Acknowledgment and Loss</em>: <xref section="5.2" sectionFormat="of" target="RFC9221"/> allows QUIC
implementations to notify the application that a QUIC Datagram was
acknowledged or that it believes a datagram was lost. The exposed information
SHOULD include enough information to allow the application to maintain a
mapping between the datagram that was acknowledged/lost and the RTP packet
that was sent in that datagram.</li>
          <li>
            <em>Stream States</em>: The QUIC implementation SHOULD expose to a sender, how much
of the data that was sent on a stream was successfully delivered and how much
data is still outstanding to be sent or retransmitted.</li>
          <li>
            <em>Arrival timestamps</em>: If the QUIC connection uses a timestamp extension like
<xref target="I-D.draft-smith-quic-receive-ts"/> or <xref target="I-D.draft-huitema-quic-ts"/>, the
arrival timestamps or one-way delays SHOULD be exposed to the application.</li>
          <li>
            <em>Bandwidth Estimation</em>: If congestion control is done at the transport layer
in the QUIC implementation, the QUIC implementation SHOULD expose an
estimation of the currently available bandwidth to the application. Exposing
the bandwidth estimation avoids the implementation of an additional bandwidth
estimation algorithm in the application.</li>
          <li>
            <em>ECN</em>: If ECN marks are available, they SHOULD be exposed to the application.</li>
        </ul>
      </section>
      <section anchor="quic-api-write">
        <name>Functions to be exposed by QUIC</name>
        <t>This sections lists functions that a QUIC implementation SHOULD expose to an
application to implement different features of the mapping described in the
previous sections of this document.</t>
        <ul spacing="normal">
          <li>
            <em>Cancel Streams</em>: To allow an application to cancel (re)transmission of
packets that are no longer needed, the QUIC implementation MUST expose a way
to cancel the corresponding QUIC streams.</li>
          <li>
            <em>Configure Congestion Controller</em>: If congestion control is to be implemented
at the QUIC connection layer as described in <xref target="cc-quic-layer"/>, the QUIC
implementation SHOULD expose an API to allow the application to configure the
specifics of the congestion controller.</li>
          <li>
            <em>Disable Congestion Controller</em>: If congestion control is to be implemented at
the application layer as described in <xref target="cc-application-layer"/>, and the
application layer is trusted to apply adequate congestion control as described
in <xref section="7" sectionFormat="of" target="RFC9002"/> and <xref section="3.1" sectionFormat="of" target="RFC8085"/>, it is
RECOMMENDED to allow the application to disable QUIC layer congestion control
entirely.</li>
        </ul>
      </section>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <section anchor="flow-identifier">
        <name>Flow Identifier</name>
        <t><xref target="RFC9221"/> suggests to use flow identifiers to multiplex different streams on
QUIC Datagrams, which is implemented in <xref target="encapsulation"/>, but it is unclear how
applications can combine RTP over QUIC with other data streams using the same
QUIC connections. If the non-RTP data streams use the same flow identifies, too
and the application can make sure, that flow identifiers are unique, there
should be no problem. Flow identifiers could be problematic, if different
specifications for RTP and non-RTP data streams over QUIC mandate different
incompatible flow identifiers.</t>
      </section>
      <section anchor="impact-of-connection-migration">
        <name>Impact of Connection Migration</name>
        <t>RTP sessions are characterized by a continuous flow of packets into either or
both directions.  A connection migration may lead to pausing media
transmission until reachability of the peer under the new address is validated.
This may lead to short breaks in media delivery in the order of RTT and, if
RTCP is used for RTT measurements, may cause spikes in observed delays.
Application layer congestion control mechanisms (and also packet repair schemes
such as retransmissions) need to be prepared to cope with such spikes.</t>
        <t>If a QUIC connection is established via a signaling channel, this signaling
may have involved Interactive Connectivity Establishment (ICE) exchanges to
determine and choose suitable (IP address, port number) pairs for the QUIC
connection.  Subsequent address change events may be noticed by QUIC via its
connection migration handling and/or at the ICE or other application layer,
e.g., by noticing changing IP addresses at the network interface.  This may
imply that the two signaling and data "layers" get (temporarily) out of sync.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's Note:</strong> It may be desirable that the API provides an indication
of connection migration event for either case.</t>
          </li>
        </ul>
      </section>
      <section anchor="rtt-considerations">
        <name>0-RTT considerations</name>
        <t>For repeated connections between peers, the initiator of a QUIC connection can
use 0-RTT data for both QUIC streams and datagrams. As such packets are subject to
replay attacks, applications shall carefully specify which data types and operations
are allowed.  0-RTT data may be beneficial for use with RTP over QUIC to reduce the
risk of media clipping, e.g., at the beginning of a conversation.</t>
        <t>This specification defines carrying RTP on top of QUIC and thus does not finally
define what the actual application data are going to be.  RTP typically carries
ephemeral media contents that is rendered and possibly recorded but otherwise
causes no side effects. Moreover, the amount of data that can be carried as 0-RTT
data is rather limited.  But it is the responsibility of the respective application
to determine if 0-RTT data is permissible.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's Note:</strong> Since the QUIC connection will often be created in the context
of an existing signaling relationship (e.g., using WebRTC or SIP), specific 0-RTT
keying material could be exchanged to prevent replays across sessions.  Within
the same connection, replayed media packets would be discarded as duplicates by
the receiver.</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>RTP over QUIC is subject to the security considerations of RTP described in
<xref section="9" sectionFormat="of" target="RFC3550"/> and the security considerations of any RTP profile in
use.</t>
      <t>The security considerations for the QUIC protocol and datagram extension
described in <xref section="21" sectionFormat="of" target="RFC9000"/>, <xref section="9" sectionFormat="of" target="RFC9001"/>, <xref section="8" sectionFormat="of" target="RFC9002"/> and <xref section="6" sectionFormat="of" target="RFC9221"/> also apply to RTP over QUIC.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="registration-of-a-rtp-over-quic-identification-string">
        <name>Registration of a RTP over QUIC Identification String</name>
        <t>This document creates a new registration for the identification of RTP over QUIC
in the "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry
<xref target="RFC7301"/>.</t>
        <t>The "rtp-mux-quic" string identifies RTP over QUIC:</t>
        <dl>
          <dt>Protocol:</dt>
          <dd>
            <t>RTP over QUIC</t>
          </dd>
          <dt>Identification Sequence:</dt>
          <dd>
            <t>0x72 0x74 0x70 0x2D 0x6F 0x76 0x65 0x72 0x2D 0x71 0x75 0x69 0x63 ("rtp-mux-quic")</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document</t>
          </dd>
        </dl>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
              <organization/>
            </author>
            <author fullname="S. Casner" initials="S." surname="Casner">
              <organization/>
            </author>
            <author fullname="R. Frederick" initials="R." surname="Frederick">
              <organization/>
            </author>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson">
              <organization/>
            </author>
            <date month="July" year="2003"/>
            <abstract>
              <t>This memorandum describes RTP, the real-time transport protocol.  RTP provides end-to-end network transport functions suitable for applications transmitting real-time data, such as audio, video or simulation data, over multicast or unicast network services.  RTP does not address resource reservation and does not guarantee quality-of- service for real-time services.  The data transport is augmented by a control protocol (RTCP) to allow monitoring of the data delivery in a manner scalable to large multicast networks, and to provide minimal control and identification functionality.  RTP and RTCP are designed to be independent of the underlying transport and network layers.  The protocol supports the use of RTP-level translators and mixers. Most of the text in this memorandum is identical to RFC 1889 which it obsoletes.  There are no changes in the packet formats on the wire, only changes to the rules and algorithms governing how the protocol is used. The biggest change is an enhancement to the scalable timer algorithm for calculating when to send RTCP packets in order to minimize transmission in excess of the intended rate when many participants join a session simultaneously.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="64"/>
          <seriesInfo name="RFC" value="3550"/>
          <seriesInfo name="DOI" value="10.17487/RFC3550"/>
        </reference>
        <reference anchor="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol.  QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances.  Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC8999">
          <front>
            <title>Version-Independent Properties of QUIC</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the properties of the QUIC transport protocol that are common to all versions of the protocol.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8999"/>
          <seriesInfo name="DOI" value="10.17487/RFC8999"/>
        </reference>
        <reference anchor="RFC9001">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9001"/>
          <seriesInfo name="DOI" value="10.17487/RFC9001"/>
        </reference>
        <reference anchor="RFC9002">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett">
              <organization/>
            </author>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC9221">
          <front>
            <title>An Unreliable Datagram Extension to QUIC</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly">
              <organization/>
            </author>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear">
              <organization/>
            </author>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi">
              <organization/>
            </author>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document defines an extension to the QUIC transport protocol to add support for sending and receiving unreliable datagrams over a QUIC connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9221"/>
          <seriesInfo name="DOI" value="10.17487/RFC9221"/>
        </reference>
        <reference anchor="RFC7667">
          <front>
            <title>RTP Topologies</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund">
              <organization/>
            </author>
            <author fullname="S. Wenger" initials="S." surname="Wenger">
              <organization/>
            </author>
            <date month="November" year="2015"/>
            <abstract>
              <t>This document discusses point-to-point and multi-endpoint topologies used in environments based on the Real-time Transport Protocol (RTP). In particular, centralized topologies commonly employed in the video conferencing industry are mapped to the RTP terminology.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7667"/>
          <seriesInfo name="DOI" value="10.17487/RFC7667"/>
        </reference>
        <reference anchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
              <organization/>
            </author>
            <author fullname="S. Casner" initials="S." surname="Casner">
              <organization/>
            </author>
            <date month="July" year="2003"/>
            <abstract>
              <t>This document describes a profile called "RTP/AVP" for the use of the real-time transport protocol (RTP), version 2, and the associated control protocol, RTCP, within audio and video multiparticipant conferences with minimal control.  It provides interpretations of generic fields within the RTP specification suitable for audio and video conferences.  In particular, this document defines a set of default mappings from payload type numbers to encodings. This document also describes how audio and video data may be carried within RTP.  It defines a set of standard encodings and their names when used within RTP.  The descriptions provide pointers to reference implementations and the detailed standards.  This document is meant as an aid for implementors of audio, video and other real-time multimedia applications. This memorandum obsoletes RFC 1890.  It is mostly backwards-compatible except for functions removed because two interoperable implementations were not found.  The additions to RFC 1890 codify existing practice in the use of payload formats under this profile and include new payload formats defined since RFC 1890 was published.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="65"/>
          <seriesInfo name="RFC" value="3551"/>
          <seriesInfo name="DOI" value="10.17487/RFC3551"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8698">
          <front>
            <title>Network-Assisted Dynamic Adaptation (NADA): A Unified Congestion Control Scheme for Real-Time Media</title>
            <author fullname="X. Zhu" initials="X." surname="Zhu">
              <organization/>
            </author>
            <author fullname="R. Pan" initials="R." surname="Pan">
              <organization/>
            </author>
            <author fullname="M. Ramalho" initials="M." surname="Ramalho">
              <organization/>
            </author>
            <author fullname="S. Mena" initials="S." surname="Mena">
              <organization/>
            </author>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes Network-Assisted Dynamic Adaptation (NADA), a novel congestion control scheme for interactive real-time media applications such as video conferencing. In the proposed scheme, the sender regulates its sending rate, based on either implicit or explicit congestion signaling, in a unified approach. The scheme can benefit from Explicit Congestion Notification (ECN) markings from network nodes. It also maintains consistent sender behavior in the absence of such markings by reacting to queuing delays and packet losses instead.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8698"/>
          <seriesInfo name="DOI" value="10.17487/RFC8698"/>
        </reference>
        <reference anchor="RFC8298">
          <front>
            <title>Self-Clocked Rate Adaptation for Multimedia</title>
            <author fullname="I. Johansson" initials="I." surname="Johansson">
              <organization/>
            </author>
            <author fullname="Z. Sarker" initials="Z." surname="Sarker">
              <organization/>
            </author>
            <date month="December" year="2017"/>
            <abstract>
              <t>This memo describes a rate adaptation algorithm for conversational media services such as interactive video.  The solution conforms to the packet conservation principle and uses a hybrid loss-and-delay- based congestion control algorithm.  The algorithm is evaluated over both simulated Internet bottleneck scenarios as well as in a Long Term Evolution (LTE) system simulator and is shown to achieve both low latency and high video throughput in these scenarios.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8298"/>
          <seriesInfo name="DOI" value="10.17487/RFC8298"/>
        </reference>
        <reference anchor="RFC7301">
          <front>
            <title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
            <author fullname="S. Friedl" initials="S." surname="Friedl">
              <organization/>
            </author>
            <author fullname="A. Popov" initials="A." surname="Popov">
              <organization/>
            </author>
            <author fullname="A. Langley" initials="A." surname="Langley">
              <organization/>
            </author>
            <author fullname="E. Stephan" initials="E." surname="Stephan">
              <organization/>
            </author>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC4588">
          <front>
            <title>RTP Retransmission Payload Format</title>
            <author fullname="J. Rey" initials="J." surname="Rey">
              <organization/>
            </author>
            <author fullname="D. Leon" initials="D." surname="Leon">
              <organization/>
            </author>
            <author fullname="A. Miyazaki" initials="A." surname="Miyazaki">
              <organization/>
            </author>
            <author fullname="V. Varsa" initials="V." surname="Varsa">
              <organization/>
            </author>
            <author fullname="R. Hakenberg" initials="R." surname="Hakenberg">
              <organization/>
            </author>
            <date month="July" year="2006"/>
            <abstract>
              <t>RTP retransmission is an effective packet loss recovery technique for real-time applications with relaxed delay bounds.  This document describes an RTP payload format for performing retransmissions. Retransmitted RTP packets are sent in a separate stream from the original RTP stream.  It is assumed that feedback from receivers to senders is available.  In particular, it is assumed that Real-time Transport Control Protocol (RTCP) feedback as defined in the extended RTP profile for RTCP-based feedback (denoted RTP/AVPF) is available in this memo.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4588"/>
          <seriesInfo name="DOI" value="10.17487/RFC4588"/>
        </reference>
        <reference anchor="I-D.draft-smith-quic-receive-ts">
          <front>
            <title>QUIC Extension for Reporting Packet Receive Timestamps</title>
            <author fullname="Connor Smith" initials="C." surname="Smith">
              <organization>Magic Leap, Inc.</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google LLC</organization>
            </author>
            <date day="25" month="October" year="2021"/>
            <abstract>
              <t>   This document defines an extension to the QUIC transport protocol
   which supports reporting multiple packet receive timestamps using a
   new ACK_RECEIVE_TIMESTAMPS frame type.

Discussion Venues

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

   Discussion of this document takes place on the QUIC Working Group
   mailing list (quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/browse/quic/.

   Source for this draft and an issue tracker can be found at
   https://github.com/wcsmith/draft-quic-receive-ts.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-smith-quic-receive-ts-00"/>
        </reference>
        <reference anchor="I-D.draft-huitema-quic-ts">
          <front>
            <title>Quic Timestamps For Measuring One-Way Delays</title>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date day="28" month="August" year="2022"/>
            <abstract>
              <t>   The TIMESTAMP frame can be added to Quic packets when one way delay
   measurements are useful.  The timestamp is set to the number of
   microseconds from the beginning of the node's epoch to the time at
   which the packet is sent.  The draft defines the "enable_timestamp"
   transport parameter for negotiating the use of this extension frame,
   and the TIMESTAMP frame.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-huitema-quic-ts-08"/>
        </reference>
        <reference anchor="I-D.draft-ietf-quic-ack-frequency">
          <front>
            <title>QUIC Acknowledgement Frequency</title>
            <author fullname="Jana Iyengar" initials="J." surname="Iyengar">
              <organization>Fastly</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google</organization>
            </author>
            <date day="11" month="July" year="2022"/>
            <abstract>
              <t>   This document describes a QUIC extension for an endpoint to control
   its peer's delaying of acknowledgements.

Note to Readers

   Discussion of this draft takes place on the QUIC working group
   mailing list (quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/search/?email_list=quic.  Source
   code and issues list for this draft can be found at
   https://github.com/quicwg/ack-frequency.

   Working Group information can be found at https://github.com/quicwg.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-ack-frequency-02"/>
        </reference>
        <reference anchor="RFC4585">
          <front>
            <title>Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)</title>
            <author fullname="J. Ott" initials="J." surname="Ott">
              <organization/>
            </author>
            <author fullname="S. Wenger" initials="S." surname="Wenger">
              <organization/>
            </author>
            <author fullname="N. Sato" initials="N." surname="Sato">
              <organization/>
            </author>
            <author fullname="C. Burmeister" initials="C." surname="Burmeister">
              <organization/>
            </author>
            <author fullname="J. Rey" initials="J." surname="Rey">
              <organization/>
            </author>
            <date month="July" year="2006"/>
            <abstract>
              <t>Real-time media streams that use RTP are, to some degree, resilient against packet losses.  Receivers may use the base mechanisms of the Real-time Transport Control Protocol (RTCP) to report packet reception statistics and thus allow a sender to adapt its transmission behavior in the mid-term.  This is the sole means for feedback and feedback-based error repair (besides a few codec-specific mechanisms).  This document defines an extension to the Audio-visual Profile (AVP) that enables receivers to provide, statistically, more immediate feedback to the senders and thus allows for short-term adaptation and efficient feedback-based repair mechanisms to be implemented.  This early feedback profile (AVPF) maintains the AVP bandwidth constraints for RTCP and preserves scalability to large groups.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4585"/>
          <seriesInfo name="DOI" value="10.17487/RFC4585"/>
        </reference>
        <reference anchor="RFC6679">
          <front>
            <title>Explicit Congestion Notification (ECN) for RTP over UDP</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund">
              <organization/>
            </author>
            <author fullname="I. Johansson" initials="I." surname="Johansson">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="P. O'Hanlon" initials="P." surname="O'Hanlon">
              <organization/>
            </author>
            <author fullname="K. Carlberg" initials="K." surname="Carlberg">
              <organization/>
            </author>
            <date month="August" year="2012"/>
            <abstract>
              <t>This memo specifies how Explicit Congestion Notification (ECN) can be used with the Real-time Transport Protocol (RTP) running over UDP, using the RTP Control Protocol (RTCP) as a feedback mechanism.  It defines a new RTCP Extended Report (XR) block for periodic ECN feedback, a new RTCP transport feedback message for timely reporting of congestion events, and a Session Traversal Utilities for NAT (STUN) extension used in the optional initialisation method using Interactive Connectivity Establishment (ICE).  Signalling and procedures for negotiation of capabilities and initialisation methods are also defined.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6679"/>
          <seriesInfo name="DOI" value="10.17487/RFC6679"/>
        </reference>
        <reference anchor="RFC8888">
          <front>
            <title>RTP Control Protocol (RTCP) Feedback for Congestion Control</title>
            <author fullname="Z. Sarker" initials="Z." surname="Sarker">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="V. Singh" initials="V." surname="Singh">
              <organization/>
            </author>
            <author fullname="M. Ramalho" initials="M." surname="Ramalho">
              <organization/>
            </author>
            <date month="January" year="2021"/>
            <abstract>
              <t>An effective RTP congestion control algorithm requires more fine-grained feedback on packet loss, timing, and Explicit Congestion Notification (ECN) marks than is provided by the standard RTP Control Protocol (RTCP) Sender Report (SR) and Receiver Report (RR) packets. This document describes an RTCP feedback message intended to enable congestion control for interactive real-time traffic using RTP. The feedback message is designed for use with a sender-based congestion control algorithm, in which the receiver of an RTP flow sends back to the sender RTCP feedback packets containing the information the sender needs to perform congestion control.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8888"/>
          <seriesInfo name="DOI" value="10.17487/RFC8888"/>
        </reference>
        <reference anchor="RFC3611">
          <front>
            <title>RTP Control Protocol Extended Reports (RTCP XR)</title>
            <author fullname="T. Friedman" initials="T." role="editor" surname="Friedman">
              <organization/>
            </author>
            <author fullname="R. Caceres" initials="R." role="editor" surname="Caceres">
              <organization/>
            </author>
            <author fullname="A. Clark" initials="A." role="editor" surname="Clark">
              <organization/>
            </author>
            <date month="November" year="2003"/>
            <abstract>
              <t>This document defines the Extended Report (XR) packet type for the RTP Control Protocol (RTCP), and defines how the use of XR packets can be signaled by an application if it employs the Session Description Protocol (SDP).  XR packets are composed of report blocks, and seven block types are defined here.  The purpose of the extended reporting format is to convey information that supplements the six statistics that are contained in the report blocks used by RTCP's Sender Report (SR) and Receiver Report (RR) packets.  Some applications, such as multicast inference of network characteristics (MINC) or voice over IP (VoIP) monitoring, require other and more detailed statistics.  In addition to the block types defined here, additional block types may be defined in the future by adhering to the framework that this document provides.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3611"/>
          <seriesInfo name="DOI" value="10.17487/RFC3611"/>
        </reference>
        <reference anchor="RFC8085">
          <front>
            <title>UDP Usage Guidelines</title>
            <author fullname="L. Eggert" initials="L." surname="Eggert">
              <organization/>
            </author>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst">
              <organization/>
            </author>
            <author fullname="G. Shepherd" initials="G." surname="Shepherd">
              <organization/>
            </author>
            <date month="March" year="2017"/>
            <abstract>
              <t>The User Datagram Protocol (UDP) provides a minimal message-passing transport that has no inherent congestion control mechanisms.  This document provides guidelines on the use of UDP for the designers of applications, tunnels, and other protocols that use UDP.  Congestion control guidelines are a primary focus, but the document also provides guidance on other topics, including message sizes, reliability, checksums, middlebox traversal, the use of Explicit Congestion Notification (ECN), Differentiated Services Code Points (DSCPs), and ports.</t>
              <t>Because congestion control is critical to the stable operation of the Internet, applications and other protocols that choose to use UDP as an Internet transport must employ mechanisms to prevent congestion collapse and to establish some degree of fairness with concurrent traffic.  They may also need to implement additional mechanisms, depending on how they use UDP.</t>
              <t>Some guidance is also applicable to the design of other protocols (e.g., protocols layered directly on IP or via IP-based tunnels), especially when these protocols do not themselves provide congestion control.</t>
              <t>This document obsoletes RFC 5405 and adds guidelines for multicast UDP usage.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="145"/>
          <seriesInfo name="RFC" value="8085"/>
          <seriesInfo name="DOI" value="10.17487/RFC8085"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC9308">
          <front>
            <title>Applicability of the QUIC Transport Protocol</title>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind">
              <organization/>
            </author>
            <author fullname="B. Trammell" initials="B." surname="Trammell">
              <organization/>
            </author>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document discusses the applicability of the QUIC transport protocol, focusing on caveats impacting application protocol development and deployment over QUIC. Its intended audience is designers of application protocol mappings to QUIC and implementors of these application protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9308"/>
          <seriesInfo name="DOI" value="10.17487/RFC9308"/>
        </reference>
        <reference anchor="RFC7826">
          <front>
            <title>Real-Time Streaming Protocol Version 2.0</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
              <organization/>
            </author>
            <author fullname="A. Rao" initials="A." surname="Rao">
              <organization/>
            </author>
            <author fullname="R. Lanphier" initials="R." surname="Lanphier">
              <organization/>
            </author>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund">
              <organization/>
            </author>
            <author fullname="M. Stiemerling" initials="M." role="editor" surname="Stiemerling">
              <organization/>
            </author>
            <date month="December" year="2016"/>
            <abstract>
              <t>This memorandum defines the Real-Time Streaming Protocol (RTSP) version 2.0, which obsoletes RTSP version 1.0 defined in RFC 2326.</t>
              <t>RTSP is an application-layer protocol for the setup and control of the delivery of data with real-time properties.  RTSP provides an extensible framework to enable controlled, on-demand delivery of real-time data, such as audio and video.  Sources of data can include both live data feeds and stored clips.  This protocol is intended to control multiple data delivery sessions; provide a means for choosing delivery channels such as UDP, multicast UDP, and TCP; and provide a means for choosing delivery mechanisms based upon RTP (RFC 3550).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7826"/>
          <seriesInfo name="DOI" value="10.17487/RFC7826"/>
        </reference>
        <reference anchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher">
              <organization/>
            </author>
            <author fullname="D. McGrew" initials="D." surname="McGrew">
              <organization/>
            </author>
            <author fullname="M. Naslund" initials="M." surname="Naslund">
              <organization/>
            </author>
            <author fullname="E. Carrara" initials="E." surname="Carrara">
              <organization/>
            </author>
            <author fullname="K. Norrman" initials="K." surname="Norrman">
              <organization/>
            </author>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP).   [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="I-D.draft-dawkins-avtcore-sdp-rtp-quic">
          <front>
            <title>SDP Offer/Answer for RTP using QUIC as Transport</title>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="28" month="January" year="2022"/>
            <abstract>
              <t>   This document describes these new SDP "proto" attribute values:
   "QUIC", "QUIC/RTP/SAVP", "QUIC/RTP/AVPF", and "QUIC/RTP/SAVPF", and
   describes how SDP Offer/Answer can be used to set up an RTP
   connection using QUIC as a transport protocol.

   These proto values are necessary to allow the use of QUIC as an
   underlying transport protocol for applications such as SIP and WebRTC
   that commonly use SDP as a session signaling protocol to set up RTP
   connections.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dawkins-avtcore-sdp-rtp-quic-00"/>
        </reference>
        <reference anchor="RFC3261">
          <front>
            <title>SIP: Session Initiation Protocol</title>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg">
              <organization/>
            </author>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
              <organization/>
            </author>
            <author fullname="G. Camarillo" initials="G." surname="Camarillo">
              <organization/>
            </author>
            <author fullname="A. Johnston" initials="A." surname="Johnston">
              <organization/>
            </author>
            <author fullname="J. Peterson" initials="J." surname="Peterson">
              <organization/>
            </author>
            <author fullname="R. Sparks" initials="R." surname="Sparks">
              <organization/>
            </author>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <author fullname="E. Schooler" initials="E." surname="Schooler">
              <organization/>
            </author>
            <date month="June" year="2002"/>
            <abstract>
              <t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants.  These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3261"/>
          <seriesInfo name="DOI" value="10.17487/RFC3261"/>
        </reference>
        <reference anchor="RFC8825">
          <front>
            <title>Overview: Real-Time Protocols for Browser-Based Applications</title>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand">
              <organization/>
            </author>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document gives an overview and context of a protocol suite intended for use with real-time applications that can be deployed in browsers -- "real-time communication on the Web".</t>
              <t>It intends to serve as a starting and coordination point to make sure that (1) all the parts that are needed to achieve this goal are findable and (2) the parts that belong in the Internet protocol suite are fully specified and on the right publication track.</t>
              <t>This document is an applicability statement -- it does not itself specify any protocol, but it specifies which other specifications implementations are supposed to follow to be compliant with Web Real-Time Communication (WebRTC).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8825"/>
          <seriesInfo name="DOI" value="10.17487/RFC8825"/>
        </reference>
        <reference anchor="I-D.draft-ietf-wish-whip">
          <front>
            <title>WebRTC-HTTP ingestion protocol (WHIP)</title>
            <author fullname="Sergio Garcia Murillo" initials="S. G." surname="Murillo">
              <organization>Millicast</organization>
            </author>
            <author fullname="Dr. Alex Gouaillard" initials="A." surname="Gouaillard">
              <organization>CoSMo Software</organization>
            </author>
            <date day="29" month="December" year="2022"/>
            <abstract>
              <t>   This document describes a simple HTTP-based protocol that will allow
   WebRTC-based ingestion of content into streaming services and/or
   CDNs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wish-whip-06"/>
        </reference>
        <reference anchor="I-D.draft-ietf-masque-h3-datagram">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Lucas Pardue" initials="L." surname="Pardue">
              <organization>Cloudflare</organization>
            </author>
            <date day="17" month="June" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.

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

 HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-masque-h3-datagram-11"/>
        </reference>
        <reference anchor="RFC8860">
          <front>
            <title>Sending Multiple Types of Media in a Single RTP Session</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="J. Lennox" initials="J." surname="Lennox">
              <organization/>
            </author>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document specifies how an RTP session can contain RTP streams with media from multiple media types such as audio, video, and text. This has been restricted by the RTP specifications (RFCs 3550 and 3551), and thus this document updates RFCs 3550 and 3551 to enable this behaviour for applications that satisfy the applicability for using multiple media types in a single RTP session.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8860"/>
          <seriesInfo name="DOI" value="10.17487/RFC8860"/>
        </reference>
        <reference anchor="RFC5761">
          <front>
            <title>Multiplexing RTP Data and Control Packets on a Single Port</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund">
              <organization/>
            </author>
            <date month="April" year="2010"/>
            <abstract>
              <t>This memo discusses issues that arise when multiplexing RTP data packets and RTP Control Protocol (RTCP) packets on a single UDP port. It updates RFC 3550 and RFC 3551 to describe when such multiplexing is and is not appropriate, and it explains how the Session Description Protocol (SDP) can be used to signal multiplexed sessions.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5761"/>
          <seriesInfo name="DOI" value="10.17487/RFC5761"/>
        </reference>
        <reference anchor="RFC6582">
          <front>
            <title>The NewReno Modification to TCP's Fast Recovery Algorithm</title>
            <author fullname="T. Henderson" initials="T." surname="Henderson">
              <organization/>
            </author>
            <author fullname="S. Floyd" initials="S." surname="Floyd">
              <organization/>
            </author>
            <author fullname="A. Gurtov" initials="A." surname="Gurtov">
              <organization/>
            </author>
            <author fullname="Y. Nishida" initials="Y." surname="Nishida">
              <organization/>
            </author>
            <date month="April" year="2012"/>
            <abstract>
              <t>RFC 5681 documents the following four intertwined TCP congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery.  RFC 5681 explicitly allows certain modifications of these algorithms, including modifications that use the TCP Selective Acknowledgment (SACK) option (RFC 2883), and modifications that respond to "partial acknowledgments" (ACKs that cover new data, but not all the data outstanding when loss was detected) in the absence of SACK.  This document describes a specific algorithm for responding to partial acknowledgments, referred to as "NewReno".  This response to partial acknowledgments was first proposed by Janey Hoe.  This document obsoletes RFC 3782.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6582"/>
          <seriesInfo name="DOI" value="10.17487/RFC6582"/>
        </reference>
        <reference anchor="I-D.draft-alvestrand-rmcat-remb">
          <front>
            <title>RTCP message for Receiver Estimated Maximum Bitrate</title>
            <author fullname="Harald T. Alvestrand" initials="H. T." surname="Alvestrand">
              <organization>Google</organization>
            </author>
            <date day="21" month="October" year="2013"/>
            <abstract>
              <t>   This document proposes an RTCP message for use in experimentally-
   deployed congestion control algorithms for RTP-based media flows.

   It also describes an absolute-value timestamp option for use in
   bandwidth estimatoin.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-alvestrand-rmcat-remb-03"/>
        </reference>
        <reference anchor="I-D.draft-hurst-quic-rtp-tunnelling">
          <front>
            <title>QRT: QUIC RTP Tunnelling</title>
            <author fullname="Sam Hurst" initials="S." surname="Hurst">
         </author>
            <date day="28" month="January" year="2021"/>
            <abstract>
              <t>   QUIC is a UDP-based transport protocol for stream-orientated,
   congestion-controlled, secure, multiplexed data transfer.  RTP
   carries real-time data between endpoints, and the accompanying
   control protocol RTCP allows monitoring and control of the transfer
   of such data.  With RTP and RTCP being agnostic to the underlying
   transport protocol, it is possible to multiplex both the RTP and
   associated RTCP flows into a single QUIC connection to take advantage
   of QUIC features such as low-latency setup and strong TLS-based
   security.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hurst-quic-rtp-tunnelling-01"/>
        </reference>
      </references>
    </references>
    <section anchor="experimental-results">
      <name>Experimental Results</name>
      <t>An experimental implementation of the mapping described in this document can be
found on <eref target="https://github.com/mengelbart/rtp-over-quic">Github</eref>. The application
implements the RTP over QUIC Datagrams mapping and implements SCReAM congestion
control at the application layer. It can optionally disable the builtin QUIC
congestion control (NewReno). The endpoints only use RTCP for congestion control
feedback, which can optionally be disabled and replaced by the QUIC connection
statistics as described in <xref target="transport-layer-feedback"/>.</t>
      <t>Experimental results of the implementation can be found on
<eref target="https://github.com/mengelbart/rtp-over-quic-mininet">Github</eref>, too.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Early versions of this document were similar in spirit to
<xref target="I-D.draft-hurst-quic-rtp-tunnelling"/>, although many details differ. The
authors would like to thank Sam Hurst for providing his thoughts about how QUIC
could be used to carry RTP.</t>
      <t>The authors would like to thank Bernard Aboba, David Schinazi, Lucas Pardue,
Sergio Garcia Murillo,  Spencer Dawkins, and Vidhi Goel for their valuable
comments and suggestions contributing to this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81923bcRpLge35FjvTQpE5VWZJtWeac7h2KomzOiBRXpNvT
Z3ZOGwVkFdFCAdUASnRZR/1Z+wP7YxvXvAAoSdM9e876QS5WAXmJiIx7RM7n
c9OXfeVO7IO3t9e2ee9a+z9/ujh7YIomr7MN/FC02aqfl65fzbP3fd60bt72
2zk+Ov/rrsznj5+aPOvdumn3J7brC1PAXyf2w8vT2/OPxpTb9sT27a7rnz5+
/D08nLUug/lOt9uqhBfLpu5sVhf2rcuq+W25cQ/MfdO+W7fNbovP7Yqy+eqP
ZeEae9tmdbdt2t6ewTrsZVbWvauzOod33rk9vFac2Av4rq1dP3+JKzem62H0
P2dVU8Oq9q4z2/LE/kff5DPbwVCtW3Xwab/BD/9put1yU3YdrKrfb+GFi/Pb
V8Zku/6uaU+MnRsL/5V1d2L/dWHf9D39zZD61//zv9u1/65p11ld/kYbPLG3
Lr+rYbuV/akuAXRd2e/t5Q6+uqOn3SYrqxPb9P2/lPWi320WhUtmu1zY83rt
qmXWxnNeZv1d2Q1++rum3tBIC6cj/csav1/kzcaY+Xxus2XXt1kOAL3FGYE+
dhtX97bburxclQ6QaDdlXW5gok223Zb12q6a1ro6z7bdroLVwDeE5B6QHHBp
rtsGsNFU9gho8JhpAYjxDFDQwrfxz2fw+zbL37m+s/clLLi2/Z0jkrVbeW5h
LnqbVV1ji7LLd10HS7tr7m3f2MrB/rO1AzIFGrWrttmE98vNtnK4JYKb5aGN
q4ttA2QGNALfAIHBCYGRWlfsckcv184V+JX7Nb/LAHoWl+lXibvh2Y2fwOYN
PNfRNLnsEp9rcVFZkW1lCbjDZtfDZNUegQdf4dhmBTMuYfwFY2ZTFkXljHmI
pN82sDB8+/85nj58+Ke3r86+/vbbxx8/fhZpycMCG3MIg/aIH//+8WN4/Hhh
vxCh5gsQar8YoWYSobMIo/aLMGo+j1EbYfThQ/sCPiH7gwE+PFz6Pz4iSt0U
auynUANEsHY1gKmq9nbXMbHmWdvuTeuH2riizIgOYPnIJGi9SCL0A4AcWSIy
yl1+Z7POvieGDA+vXAuk47qZyfK26ToCofLghbU3JfxKtNE6kBctIC9MW7gK
WdKegAUL7ZsKFgrwBPAzwG3VIMJnNGzhVtmu6i0Aw7UMwd7DwFPPHSxv6Vxt
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
mQPE70RJU28iSAQez59mz3NHbvA4rBgdV3HHs1c3KkoQvy4gISvbqLxZz8+l
ABQdTJg6L6Y4ZxKFClrXMdTIv5v4OSNfSaQHGNEDuJfnLOnSoV2A0OjQOnLf
XWfsQyUlxWAbUcwjAqLAhi2HfMusNk4G4cQ/I1k9USPViaweadAcQhypv4jT
PwHWj1hzG52Ox/503IxsdvYwBkXRW/5GRyHTeR88kRg/ktswQvgxRFr4ThGK
imX2Sup0MnLKeQbjzaBR0pBc+tWTUZsmKQWDgTO9xuzKt6BMUv0mQ5cRBZjQ
DS2KeIyjhqytlv0gXY/786CZF2m5dP8D+bcHGU5Rt6GQv4snFbcsYnBmPjkV
aUpRGgx71cWUUt7BST6sPJty2At0GipDV7v0hk8GNsI6uOG0oJkilola7pmN
JERNcA4VToMIX9TBrdOYSOgNMeQFWC0NfNNfW+Cvo9M4e4jLpEWQ3LpONxCl
NWoX9cmwMTMX6ieuDqgk80eDO6Xvm9XF5Qm0hUc3fB/DS5KTFGbyB/VpOKgv
z29+OZ7ZRy/2zv/8NRgf/POLP52Lzvco4q7+wW/8OKfX178cp6yJPGVJ1z1q
gxJC+Zod43uheJXKhyZlnme/HJtR01g2PuIWOTEIot5Uke+Tu6+YpbvL3mN7
BJWkfNxtnNsytDJw4e9KvtvsMCJ55RTe6alifsyyg1DUe4p8Ksl9tjdMyfvQ
AZ6e4j49IcQ57tIjLV+GmiJVLw5aoX14ONFG35jX5TsXzRFLBjGRSrnrcdiI
yjf9kYZhU5cV+IoZSs4AvGsYzcdTjHi7Kf11+H7lisneRJrRFjMi9OQ5oIJm
L23aYEnkxxmNyqxHQwUTq/adPIyvL4i7Fj/lSzcjuYbovnL3b13dSCnns2+f
4wWK3B0xWu2qddwY7q5pOmcQ8FN3PPgGaGm6r9bbEgjXu7KgBI0uWnBS6039
Vqkq9zGeGiktlnYdntb55f0kAsJKeCuxrRKu5RtcW6snOVwwRremkM4zdREd
e6KoGj/qi6p36/lrCmZUXxmKHSau08X229iHuDnYiFi6dC/MH0H9ppKzw13/
pu52oVrRifsMACqdoYZqlnsM2rjFIHfiP315auP2hcesanxmBexcizrHU7tA
0CEbMr6Gl1FGuWsZivN7cmvXeakZykH/PNimMUwsyTOZ/YX7F/5ZEol/SZRh
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
FsdeqdkTQHe73l/3mDjn/y+7FtA+AbEAAA==

-->

</rfc>
