<?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.11 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-engelbart-rtp-over-quic-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.10 -->
  <front>
    <title>RTP over QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-engelbart-rtp-over-quic-04"/>
    <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>ART</area>
    <workgroup>AVTCORE</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>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>
    <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-engelbart-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 a mapping of RTP to
both of the transport modes. The encapsulation format for RTP over QUIC is
described in <xref target="fig-payload"/>.</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>
      <figure anchor="fig-payload">
        <name>RTP over QUIC 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>For multiplexing different RTP and other data streams on the same QUIC
connection, each RTP/RTCP packet is prefixed with a flow identifier. A flow
identifier is a QUIC variable-length integer which must be unique per stream.</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.  Every RTP session
MUST choose exactly one way of carrying RTP and RTCP packets, different RTP
sessions MAY choose different ways.</t>
      <section anchor="quic-streams">
        <name>QUIC Streams</name>
        <t>An application MUST open a new QUIC stream for each Application Data Unit (ADU).
Each ADU MUST be encapsulated in a single RTP packet and the application MUST
not send more than one RTP packet per stream. Opening a new stream for each
packet adds implicit framing to RTP packets, allows to receive packets without
strict ordering and gives an application the possibility to cancel certain
packets.</t>
        <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. If it is known to either the sender or the
receiver, that a packet, which was not yet successfully and completely
transmitted, is no longer needed, either side can close the stream.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's Note:</strong> We considered adding a framing like the one described in
<xref target="RFC4571"/> to send multiple RTP packets on one stream, but we don't think it
is worth the additional overhead only to reduce the number of streams.
Moreover, putting multiple ADUs into a single stream would also require
defining policies when to use the same (and which) stream and when to open a
new one.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t><strong>Editor's Note:</strong> Note, however, that using a single frame per stream in a single RTP packet may
cause interworking issues when a translator wants to forward packets received
via RTP-over-QUIC to an endpoint as UDP packets because the received ADUs may
exceed the MTU size or even maximum UDP packet size.</t>
          </li>
        </ul>
      </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, will fit into path MTU.</t>
        <t>If an application wishes to retransmit lost RTP packets, the retransmission has
to be implemented by the application by sending a new datagram for the RTP
packet, because QUIC datagrams are not retransmitted on loss (see also
<xref target="transport-layer-feedback"/> for loss signaling).</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>
      <ul empty="true">
        <li>
          <t><strong>TODO:</strong> Add considerations for bandwidth shares when a QUIC connection is
shared between RTP and non-RTP streams?</t>
        </li>
      </ul>
      <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
to configure the QUIC Implementation to use a delay-based real-time congestion
control algorithm instead of a loss-based algorithm. The currently available
delay-based congestion control algorithms depend on detailed arrival time
feedback to estimate the current one-way delay between sender and receiver.
Since QUIC does not provide arrival timestamps in its acknowledgments, the QUIC
implementations of the sender and receiver MUST use an extension to add this
information to QUICs acknowledgment frames, e.g.
<xref target="I-D.draft-smith-quic-receive-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>
        <ul empty="true">
          <li>
            <t><strong>Editor's note:</strong> An alternative to the hard requirement to use a timestamp
extension could be to use RTCP, but that would mean, that an application has
to negotiate RTCP congestion control feedback which would then have to be
passed to the QUIC congestion controller.</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t><strong>Editor's note:</strong> How can a QUIC connection be shared with non-RTP streams,
when SCReAM/NADA/GCC is used as congestion controller? Can these algorithms be
adapted to allow different streams including non-real-time streams? Do they
even have to be adapted or <em>should</em> this just work?</t>
          </li>
        </ul>
      </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>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>Select Congestion Controller</em>: If congestion control is to be implemented at
the QUIC connection layer as described in <xref target="cc-quic-layer"/>, the application
must be able to choose an appropriate congestion control algorithm.</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, 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="I-D.draft-smith-quic-receive-ts">
          <front>
            <title>QUIC Extension for Reporting Packet Receive Timestamps</title>
            <author fullname="Connor Smith">
              <organization>Magic Leap, Inc.</organization>
            </author>
            <author fullname="Ian 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">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date day="6" month="March" 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-07"/>
        </reference>
        <reference anchor="I-D.draft-ietf-quic-ack-frequency">
          <front>
            <title>QUIC Acknowledgement Frequency</title>
            <author fullname="Jana Iyengar">
              <organization>Fastly</organization>
            </author>
            <author fullname="Ian Swett">
              <organization>Google</organization>
            </author>
            <date day="25" month="October" year="2021"/>
            <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-01"/>
        </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>
      </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">
              <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">
	 </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 Kuehlewind">
              <organization>Ericsson</organization>
            </author>
            <author fullname="Brian Trammell">
              <organization>Google</organization>
            </author>
            <date day="6" month="April" 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-16"/>
        </reference>
        <reference anchor="I-D.draft-ietf-masque-h3-datagram">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="David Schinazi">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Lucas 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, they can be sent using the Capsule Protocol, 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="RFC4571">
          <front>
            <title>Framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) Packets over Connection-Oriented Transport</title>
            <author fullname="J. Lazzaro" initials="J." surname="Lazzaro">
              <organization/>
            </author>
            <date month="July" year="2006"/>
            <abstract>
              <t>This memo defines a method for framing Real-time Transport Protocol (RTP) and RTP Control Protocol (RTCP) packets onto connection-oriented transport (such as TCP).  The memo also defines how session descriptions may specify RTP streams that use the framing method.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4571"/>
          <seriesInfo name="DOI" value="10.17487/RFC4571"/>
        </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>
        <reference anchor="I-D.draft-alvestrand-rmcat-remb">
          <front>
            <title>RTCP message for Receiver Estimated Maximum Bitrate</title>
            <author fullname="Harald Alvestrand">
	 </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:
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

-->

</rfc>
