<?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.14 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-over-quic-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.13.0 -->
  <front>
    <title>RTP over QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-00"/>
    <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>
    <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 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="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>
      </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="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">
              <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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
w4bue9HTBo7f/wdeUSuTOokAAA==

-->

</rfc>
