<?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.17 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-over-quic-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <front>
    <title>RTP over QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-01"/>
    <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 RTP and RTCP packets
within QUIC. It also discusses how to leverage state from the QUIC
implementation in the endpoints to reduce the exchange of RTCP packets and how
to implement congestion control.</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>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.  With the advent of QUIC <xref target="RFC9000"/> and, most notably, its
unreliable DATAGRAM extension <xref target="RFC9221"/>, another secure transport protocol
becomes available.  QUIC and its DATAGRAMs combine desirable properties for
real-time traffic (e.g., no unnecessary retransmissions, avoiding head-of-line
blocking) with a secure end-to-end transport that is also expected to work well
through NATs and firewalls.</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.  This document defines a
mapping of how to carry RTP over QUIC. The focus is on RTP and RTCP packet
mapping and on reducing 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 for RTP over
QUIC.</t>
      <t>The scope of this document is limited to unicast RTP/RTCP.</t>
      <t>This document does not cover signaling for session setup. Signaling for RTP over
QUIC can be defined in separate documents such as
<xref target="I-D.draft-dawkins-avtcore-sdp-rtp-quic"/> does for SDP.</t>
      <t>Note that this draft is similar in spirit to but differs in numerous ways from
<xref target="I-D.draft-hurst-quic-rtp-tunnelling"/>.</t>
    </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>
      <t>The following terms are used:</t>
      <dl>
        <dt>Datagram:</dt>
        <dd>
          <t>Datagrams exist in UDP as well as in QUICs 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>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="scope">
      <name>Scope</name>
      <t>RTP over QUIC mostly defines an application usage of QUIC <xref target="I-D.draft-ietf-quic-applicability"/>.
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"/>.
Nevertheless, the specification can benefit from QUIC extesions such as QUIC datagrams
<xref target="RFC9221"/> as described below.
Moreover, this document describes how a QUIC implementation and its API can be
extended to improve efficiency of the protocol operation.</t>
      <t>On top of QUIC, this document defines an encapsulation of RTP and RTCP packets.</t>
      <t>The scope of this document is limited to carrying RTP over QUIC. It does not attempt
to enhance QUIC for real-time media or define a replacement or evolution of RTP.
Such new media transport protocols may be covered elsewhere, e.g., in the MOQ WG.</t>
      <t>Protocols for negotiating connection setup and the associated parameters are defined
separately, e.g., in <xref target="I-D.draft-dawkins-avtcore-sdp-rtp-quic"/>.</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
unreliable QUIC datagrams to transport real-time data, and thus, the QUIC
implementation MUST support QUICs unreliable 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 congestion controller can be plugged in to adapt the media bitrate to the
available bandwidth. This document does not mandate any congestion control
algorithm. Some examples include Network-Assisted Dynamic Adaptation (NADA)
<xref target="RFC8698"/> and Self-Clocked Rate Adaptation for Multimedia (SCReAM)
<xref target="RFC8298"/>. These congestion control 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 congestion controller 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="connection-establishment-and-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>QUIC supports two transport methods: reliable streams <xref target="RFC9000"/> and
unreliable datagrams <xref target="RFC9221"/>. This document specifies mappings of RTP to
both of the transport modes.</t>
      <t><xref target="quic-streams"/> and <xref target="quic-datagrams"/> explain the specifics of mapping of RTP
to QUIC streams and QUIC datagrams respectively.</t>
      <t>For multiplexing different RTP/RTCP and other data streams on the same QUIC
connection, RTP over QUIC uses a QUIC variable-length integer <xref section="16" sectionFormat="of" target="RFC9000"/> as flow identifier.</t>
      <t>RTP and RTCP packets of a single RTP session MAY be sent using the same flow
identifier (following the procedures defined in <xref target="RFC5761"/>, or they MAY be
sent using different flow identifiers. The respective mode of operation MUST be
indicated using the appropriate signaling.</t>
      <t>RTP and RTCP packets of different RTP sessions MUST be sent using different flow
identifiers.</t>
      <t>Differentiating RTP/RTCP packets of different RTP sessions from non-RTP/RTCP
datagrams is the responsibility of the application by means of appropriate use
of flow identifiers and the corresponding signaling.</t>
      <t>This specification defines two ways of carrying RTP packets in QUIC: 1) using
reliable QUIC streams and 2) using unreliable QUIC DATAGRAMs. Senders MAY
combine both modes by sending some RTP/RTCP packets over the same or different
QUIC streams and others in QUIC datagrams.</t>
      <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. Unidirectional streams are used because there is no
synchronous relationship between sent and received RTP/RTCP packets.</t>
        <t>The encapsulation format for RTP over QUIC Streams is described in
<xref target="fig-stream-payload"/>.</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 and is followed by
one or more RTP/RTCP payloads. All packets sent on a stream MUST belong to the
RTP session with the same flow identifier. 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>Each payload begins with a length field indicating the length of the RTP/RTCP
packet and is 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 it is known to either the sender, 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 translators that translates between two endpoints, which are both connected
via QUIC, MUST forward RESET_STREAM frames received from one end to the other
end, unless it is forwarding 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 in smaller QUIC frames,
that are transmitted reliably and in order, such that a receiving application
can read a complete packet from the stream. No retransmission has to be
implemented by the application, since QUIC frames that are lost in transit are
retransmitted by the QUIC connection.</t>
        <t>Opening new streams for new packets implicitly limits the amount of packets
which are concurrently in transit. The number of packets which have to be
transmitted concurrently depends on a number of factors such as the number of
RTP sessions within a QUIC connection, the rate at which new application data is
produced 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>RTP packets can be sent 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 the need for
an additional framing. Senders SHOULD consider the header overhead associated
with QUIC datagrams and ensure that the RTP/RTCP packets, including their
payloads, QUIC, and IP headers and flow identifier, will fit into path MTU.</t>
        <t>The encapsulation format for RTP over QUIC Datagrams is described in
<xref target="fig-dgram-payload"/>.</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 addtional 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>
        <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>: The fraction of lost packets can be directly infered 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 datagram frame, were already acknowledged.</li>
              <li>
                <em>Cumulative lost</em>: Similar to the fraction of lost packets, the cumulative
loss can be infered from QUIC's acknowledgments including all packets up to
the latest acknowledged packet.</li>
              <li>
                <em>Highest Sequence Number received</em>: The highest sequence number received is
the sequence number of all RTP packets that were acknowledged.</li>
              <li>Interarrival jitter: 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>Last SR: Similar to RTP arrival times, the arrival time of RTCP Sender
Reports can be inferred from QUIC acknowledgments, if they include
timestamps.</li>
              <li>Delay since last SR: 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 through acknowledgments.</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.</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 infered 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. A QUIC receiver can also not 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 infered
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</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 is an alogrithm similar to TCP NewReno, 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 does not specify a congestion controller, but provides feedback formats for
congestion control (e.g. <xref target="RFC8888"/>) as well as different congestion control
algorithms in separate RFCs (e.g. SCReAM <xref target="RFC8298"/> and NADA <xref target="RFC8698"/>).
The congestion control algorithms for RTP are specifically tailored for
real-time transmissions at low latencies. The available congestion control
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 congestion
control 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 estimation 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, it 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 congestion control 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
RECOMMENDEDto 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="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="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="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="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="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="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="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="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>
        <reference anchor="I-D.draft-ietf-quic-applicability">
          <front>
            <title>Applicability of the QUIC Transport Protocol</title>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Brian Trammell" initials="B." surname="Trammell">
              <organization>Google</organization>
            </author>
            <date day="15" month="July" 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="Internet-Draft" value="draft-ietf-quic-applicability-18"/>
        </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="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="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>
      </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>The authors would like to thank Spencer Dawkins, Lucas Pardue and David Schinazi
for their valuable comments and suggestions contributing to this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA81923bbVpbg+/kKlPxQkhfJ2E5iO+qVmlYkOaUeS3ZbSmdq
9fSqgMShiDIIMDigZEbL9VnzA/Njs6/nAoBKUtUPkweHIoFz2Wffb2c6nZqu
7Cp7nB18uHmfNXe2zf79h4vTA1M0izpfww9Fmy+7aWm75TS/6xZNa6dtt5ni
o9Oft+Vi+uy5WeSdvW3a3XHmusIU8Ndx9nB2cnP+2Zhy0x5nXbt13Ytnz755
9sLkrc1hvpPNpirhxbKpXZbXRfbB5tX0plzbA3PftB9v22a7wee2Rdl88R9l
YZvsps1rt2naLjuFdWSXeVl3ts7rBbzz0e7gteI4u4Dv2tp20zNcuTGug9H/
mldNDavaWWc25XH2n12zmGQOhmrt0sGn3Ro//Jdx2/m6dA5W1e028MLF+c0b
Y/Jtt2raY5NNTQb/lbU7zv5tlr3rOvqbIfVv//f/tLf+u6a9zevyF9rgcXZj
F6satltlP9QlgM6V3S673MJXK3rarvOyOs6arvvXsp512/WssMlsl7PsvL61
1Txv4zkv825Vut5P/9DUaxppZnWkf73F72eLZm3MdDrN8rnr2nwBAL3BGQE/
tmtbd5nb2EW5LC0cYrYu63INE63zzaasb7Nl02a2XuQbt61gNfANYhkd9s3p
+2yTLz7azpn7EqauCfFm2UWX5ZVrsqJ0i61zMO6quc+6JqssLD6/tYBjgGDZ
sm3WWbey9Jop15vK4npo0wAy+snWxaYBHHH4fmuL7cLy958Wqxw2mjXLZCW0
NJjOwON+xGzRwKOOxoWPXdtUMwbJuiyKyhrzBHGubWB4fAgBZBmbO8DmCGnf
tw2gXVNlhwCGo+zh4Q8f3px++fXXzz5/zgCkt7aGDVbVLts6W+CSF3nb7kzr
h1rboswJqrAQPEraLQKcfgBgIeIiOm8Xqyx32R2RDTy8tC0chHUTky/axjkC
g1LKLMuuS/iVTqe1QNUtgD1MW9gKEWdH4CkRmBUsFCDTNYYhl1UNHtWEhi3s
Mt9WXbatC9tWOzz2zsNgozBYwfLm1tbZD2fvJzDZAkBd7QgXsrObt9cZgLtr
NggGZxfblk+ON+rPDxfULBa5IzAA5PAwD/HbDSyonMOAMNQRggLgBk/MYbmw
3R9xFhwvL+7wiAEPEI3kSL559gyPBIaZZOvGdVnddDmMNclKwNZt3QI84G+b
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
QpQAAA==

-->

</rfc>
