<?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.39 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-over-quic-06" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title>RTP over QUIC (RoQ)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-06"/>
    <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>
    <author initials="S." surname="Dawkins" fullname="Spencer Dawkins">
      <organization>Tencent America LLC</organization>
      <address>
        <email>spencerdawkins.ietf@gmail.com</email>
      </address>
    </author>
    <date/>
    <area>Applications and Real-Time</area>
    <workgroup>Audio/Video Transport Core Maintenance</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 40?>

<t>This document specifies a minimal mapping for encapsulating Real-time Transport
Protocol (RTP) and RTP Control Protocol (RTCP) packets within the QUIC protocol.
This mapping is called RTP over QUIC (RoQ).
It also discusses how to leverage state from the QUIC implementation in the
endpoints, in order to reduce the need to exchange RTCP packets and how to
implement congestion control and rate adaptation without relying on RTCP
feedback.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    Audio/Video Transport Core Maintenance Working Group mailing list (avt@ietf.org),
    which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/avt/"/>.</t>
      <t>Source for this draft and an issue tracker can be found at
    <eref target="https://github.com/mengelbart/rtp-over-quic-draft"/>.</t>
    </note>
  </front>
  <middle>
    <?line 50?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies a minimal mapping for encapsulating Real-time Transport
Protocol (RTP) <xref target="RFC3550"/> and RTP Control Protocol (RTCP) <xref target="RFC3550"/> packets
within the QUIC protocol (<xref target="RFC9000"/>).
This mapping is called RTP over QUIC (RoQ).
It also discusses how to leverage state
from the QUIC implementation in the endpoints, in order to reduce the need to
exchange RTCP packets, and how to implement congestion control and rate
adaptation without relying on RTCP feedback.</t>
      <section anchor="background">
        <name>Background</name>
        <t>The Real-time Transport Protocol (RTP) <xref target="RFC3550"/> is generally used to carry
real-time media for conversational media sessions, such as video conferences,
across the Internet.  Since RTP requires real-time delivery and is tolerant to
packet losses, the default underlying transport protocol has been UDP, recently
with DTLS on top to secure the media exchange and occasionally TCP (and possibly
TLS) as a fallback.</t>
        <t>This specification describes an application usage of QUIC (<xref target="RFC9308"/>).
As a baseline, the specification does not expect more than a standard QUIC implementation
as defined in <xref target="RFC8999"/>, <xref target="RFC9000"/>, <xref target="RFC9001"/>, and <xref target="RFC9002"/>,
providing a secure end-to-end transport that is also expected to work well through NATs and firewalls.
Beyond this baseline, real-time applications can benefit from QUIC extensions such as unreliable QUIC datagrams
<xref target="RFC9221"/>, which provides additional desirable properties for
real-time traffic (e.g., no unnecessary retransmissions, avoiding head-of-line
blocking).</t>
      </section>
      <section anchor="motivations">
        <name>Motivations</name>
        <t>From time to time, someone asks the reasonable question, "why should anyone implement and deploy RoQ"? This reasonable question deserves a better answer than "because we can". Upon reflection, the following motivations seem useful to state.</t>
        <t>The motivations in this section are in no particular order, and this reflects the reality that not all implementers and deployers would agree on "the most important motivations".</t>
        <section anchor="alwas-on">
          <name>"Always-On" Transport-level Authentication and Encryption</name>
          <t>Although application-level mechanisms to encrypt RTP and RTCP payloads have existed since the introduction of Secure Real-time Transport Protocol (SRTP) <xref target="RFC3711"/>, encryption of RTP and RTCP header fields and contributing sources has only been defined recently (in Cryptex <xref target="RFC9335"/>, and both SRTP and Cryptex are optional capabilities for RTP.</t>
          <t>This is in sharp contrast to "always-on" transport-level encryption in the QUIC protocol, using Transport Layer Security (TLS 1.3) as described in <xref target="RFC9001"/>. QUIC implementations always authenticate the entirety of each packet, and encrypt as much of each packet as is practical, even switching from "long headers", which expose more QUIC header fields needed to establish a connection, to "short headers", which only expose the absolute minimum QUIC header fields needed to identify the connection to the receiver, so that the QUIC payload is presented to the right QUIC application <xref target="RFC8999"/>.</t>
        </section>
        <section anchor="always-on-internet-safe-congestion-avoidance">
          <name>"Always-On" Internet-Safe Congestion Avoidance</name>
          <t>When RTP is carried directly over UDP, as is commonly done, the underlying UDP protocol provides no transport services beyond path multiplexing using UDP ports. All congestion avoidance behavior is up to the RTP application itself, and if anything goes wrong with the application resulting in an RTP sender failing to recognize that it is contributing to path congestion, the "worst case" response is to invoke RTP "circuit breaker" procedures <xref target="RFC8083"/>, resulting in "ceasing transmission", as described in <xref section="4.5" sectionFormat="of" target="RFC8083"/>. Because RTCP-based circuit breakers only detect long-lived congestion, a response based on these mechanisms will not happen quickly.</t>
          <t>In contrast, when RTP is carried over QUIC, QUIC implementations maintain their own estimates of key transport parameters needed to detect and respond to possible congestion, and these are independent of any measurements RTP senders and receivers are maintaining. The result is that even if an RTP sender continues to "send", QUIC congestion avoidance procedures (for example, the procedures defined in <xref target="RFC9002"/>) will cause the RTP packets to be buffered and only placed on the network path as part of a response to detected loss. This happens without any action being requied on the part of RTP senders.</t>
          <t>While the effect of QUIC's response to congestion means that some RTP packets will arrive at the receiver later than a user of the RTP flow might prefer, it is still preferable to "ceasing transmission" completely until the RTP sender has a reason to believe that restarting the flow will not result in congestion.</t>
          <t>Moreover, when a single QUIC connection is used to multiplex both RTP-RTCP and non-RTP packets as described in <xref target="single-path"/>, the QUIC connection will still be Internet-safe, with no coordination required.</t>
        </section>
        <section anchor="ra-quic-feedback">
          <name>Rate Adaptation Based on QUIC Feedback</name>
          <t>RTP makes use of a large number of RTP-specific feedback mechanisms because when RTP is carried directly over UDP, there is no other way to receive feedback. Some of these mechanisms are specific to the type of media RTP is sending, but others can be mapped from underlying QUIC implementations that are using this feedback to perform rate adaptation for any QUIC connection, regardless of the application reflected in the QUIC STREAM <xref target="RFC9000"/> and DATAGRAM <xref target="RFC9221"/> frames. This is described in (much) more detail in <xref target="congestion-control"/> on rate adaptation, and in <xref target="rtcp-mapping"/> on replacing RTCP and RTP header extensions with QUIC feedback.</t>
          <t>One word of caution is in order - RTP implementations may rely on at least some minimal periodic RTCP feedback, in order to determine that an RTP flow is still active, and is not causing sustained congestion (as described in <xref target="RFC8083"/>, but since this "periodicity" is measured in seconds, the impact of this "duplicate" feedback on path bandwidth utilization is likely close to zero.</t>
        </section>
        <section anchor="mtu-coal">
          <name>Path MTU Discovery and RTP Media Coalescence</name>
          <t>The minimum Path MTU supported by conformant QUIC implementations is 1200 bytes <xref target="RFC9000"/>, and in addition, QUIC implementations allow senders to use either DPLPMTUD (<xref target="RFC8899"/>) or PMTUD (<xref target="RFC1191"/>, <xref target="RFC8201"/>) to determine the actual MTU size that the receiver and path between sender and receiver support, which can be even larger.</t>
          <t>This is especially useful in certain conferencing topologies, where otherwise senders have no choice but to use the lowest path MTU for all conference participants, but even in point-to-point RTP sessions, this also allows senders to piggyback audio media in the same UDP packet as video media, for example, and also allows QUIC receivers to piggyback QUIC ACK frames on any QUIC frames being transmitted in the other direction.</t>
        </section>
        <section anchor="single-path">
          <name>Multiplexing RTP, RTCP, and Non-RTP Flows on a Single QUIC Connection</name>
          <t>In order to conserve ports, especially at NATs and Firewalls, this specification defines a flow identifier, so that multiple RTP flows, RTCP flows, and non-RTP flows can be distinguished even if they are carried on the same QUIC connection. This is described in more detail in <xref target="multiplexing"/>.</t>
        </section>
        <section anchor="multiple-paths">
          <name>Exploiting Multiple Connections</name>
          <t>Although there is much interest in multiplexing flows on a single QUIC connection as described in <xref target="single-path"/>, QUIC also provides the capability of establishing and validating multiple paths for a single QUIC connection <xref target="RFC9000"/>. Once multiple paths have been validated, a sender can migrate from one path to another with no additional signaling, allowing an endpoint to move from one endpoint address to another without interruption, as long as only a single path is in active use at any point in time.</t>
          <t>Connection migration may be desireable for a number of reasons, but to give one example, this allows a sender to distinguish between more costly cellular paths and less costly WiFi paths, with no action required from the application.</t>
        </section>
        <section anchor="new-quic">
          <name>Exploiting New QUIC Capabilities</name>
          <t>In addition to connection migration as described in <xref target="multiple-paths"/>, the capability of validating multiple paths for simultaneous active use is under active development in the IETF <xref target="I-D.draft-ietf-quic-multipath"/>. We don't discuss Multipath QUIC further in this document, because the specification hasn't been approved yet, but it's one example of ways that RTP, a mature protocol, can exploit new transport capabilities as they become available.</t>
        </section>
      </section>
      <section anchor="in-scope">
        <name>What's in Scope for this Specification</name>
        <t>This document defines a mapping for RTP and RTCP over QUIC, called RoQ, and describes ways to reduce the
amount of RTCP traffic by leveraging state information readily available within
a QUIC endpoint. This document also describes different options for implementing
congestion control and rate adaptation for RoQ.</t>
        <t>This specification focuses on providing a secure encapsulation of RTP packets
for transmission over QUIC. The expected usage is wherever RTP is used to carry
media packets, allowing QUIC in place of other transport protocols such as TCP,
UDP, SCTP, DTLS, etc. That is, we expect RoQ to be used in contexts in
which a signaling protocol is used to announce or negotiate a media
encapsulation and the associated transport parameters (such as IP address, port
number). RoQ is not intended as a stand-alone media transport,
although QUIC transport parameters could be statically configured.</t>
        <t>The above implies that RoQ is targeted at peer-to-peer operation; but
it may also be used in client-server-style settings, e.g., when talking to a
conference server as described in RFC 7667 (<xref target="RFC7667"/>), or, if RoQ
is used to replace RTSP (<xref target="RFC7826"/>), to a media server.</t>
        <t>Moreover, this document describes how a QUIC implementation and its API can be
extended to improve efficiency of the RoQ protocol operation.</t>
        <t>RoQ does not impact the usage of RTP Audio Video Profiles (AVP)
(<xref target="RFC3551"/>), or any RTP-based mechanisms, even though it may render some of
them unnecessary, e.g., Secure Real-Time Transport Prococol (SRTP)
(<xref target="RFC3711"/>) might not be needed, because end-to-end security is already
provided by QUIC, and double encryption by QUIC and by SRTP might have more
costs than benefits.  Nor does RoQ limit the use of RTCP-based
mechanisms, even though some information or functions obtained by using RTCP
mechanisms may also be available from the underlying QUIC implementation by
other means.</t>
        <t>Between two (or more) endpoints, RoQ supports multiplexing multiple
RTP-based media streams within a single QUIC connection and thus using a single
(destination IP address, destination port number, source IP address, source port
number, protocol) 5-tuple..  We note that multiple independent QUIC connections
may be established in parallel using the same destination IP address,
destination port number, source IP address, source port number, protocol)
5-tuple., e.g. to carry different media channels. These connections would be
logically independent of one another.</t>
      </section>
      <section anchor="out-of-scope">
        <name>What's Out of Scope for this Specification</name>
        <t>This document does not attempt to enhance QUIC for real-time media or define a
replacement for, or evolution of, RTP. Work to map other media transport
protocols to QUIC is under way elsewhere in the IETF.</t>
        <t>RoQ is designed for use with point-to-point connections, because QUIC
itself is not defined for multicast operation. The scope of this document is
limited to unicast RTP/RTCP, even though nothing would or should prevent its use
in multicast setups once QUIC supports multicast.</t>
        <t>RoQ does not define congestion control and rate adaptation algorithms
for use with media. However, <xref target="congestion-control"/> discusses options for how
congestion control and rate adaptation could be performed at the QUIC and/or at
the RTP layer, and how information available at the QUIC layer could be exposed
via an API for the benefit of RTP layer implementation.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's note:</strong> Need to check whether <xref target="congestion-control"/> will also
describe the QUIC interface that's being exposed, or if that ends up somewhere
else in the document.</t>
          </li>
        </ul>
        <t>RoQ does not define prioritization mechanisms when handling different
media as those would be dependent on the media themselves and their
relationships. Prioritization is left to the application using RoQ.</t>
        <t>This document does not cover signaling for session setup. SDP for RoQ
is defined in separate documents such as
<xref target="I-D.draft-dawkins-avtcore-sdp-rtp-quic"/>, and can be carried in any signaling
protocol that can carry SDP, including the Session Initiation Protocol (SIP)
(<xref target="RFC3261"/>), Real-Time Protocols for Browser-Based Applications (RTCWeb)
(<xref target="RFC8825"/>), or WebRTC-HTTP Ingestion Protocol (WHIP)
(<xref target="I-D.draft-ietf-wish-whip"/>).</t>
      </section>
    </section>
    <section anchor="terminology-and-notation">
      <name>Terminology and Notation</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
      <ul empty="true">
        <li>
          <t><strong>Editor's note:</strong> the list of terms below will almost certainly grow in size as the specification matures.</t>
        </li>
      </ul>
      <t>The following terms are used:</t>
      <dl>
        <dt>Congestion Control:</dt>
        <dd>
          <t>A mechanism to limit the aggregate amount of data that has been sent over a
path to a receiver, but has not been acknowledged by the receiver. This prevents
a sender from overwhelming the capacity of a path between a sender and a
receiver, causing some outstanding data to be discarded before the receiver can
receive the data and acknowledge it to the sender.</t>
        </dd>
        <dt>Datagram:</dt>
        <dd>
          <t>Datagrams exist in UDP as well as in QUIC's unreliable datagram extension. If not explicitly noted
differently, the term datagram in this document refers to a QUIC Datagram as defined in
<xref target="RFC9221"/>.</t>
        </dd>
        <dt>Delay-based or Low-latency congestion control algorithm:</dt>
        <dd>
          <t>A congestion control algorithm that aims at keeping queues, and thus the latency, at intermediary network elements as short as possible. Delay-based congestion control algorithms use, for example, an increasing one-way delay as a signal of congestion.</t>
        </dd>
        <dt>Endpoint:</dt>
        <dd>
          <t>A QUIC server or client that participates in an RoQ session.</t>
        </dd>
        <dt>Frame:</dt>
        <dd>
          <t>A QUIC frame as defined in <xref target="RFC9000"/>.</t>
        </dd>
        <dt>Loss-based congestion control algorithm:</dt>
        <dd>
          <t>A congestion control algorithm that uses packet loss, or an Explicit Congestion Notification (ECN) that is interpreted as loss (as in <xref target="RFC3168"/>), as a signal for congestion. Loss-based congestion control algorithms allow senders to send data on a path until packets are dropped by intermediary network elements, which the algorithm treats as a signal of congestion.</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>QUIC congestion controller:</dt>
        <dd>
          <t>A software component of an application's QUIC implementation that implements a congestion control algorithm.</t>
        </dd>
        <dt>Rate Adaptation:</dt>
        <dd>
          <t>A congestion control mechanism that helps a sender determine and adjust its sending rate, in order
to maximize the amount of information that is sent to a receiver, without
causing queues to build beyond a reasonable amount, causing "buffer bloat" and
"jitter". Rate adapation is one way to accomplish congestion control for
real-time media, especially when a sender has multiple media streams to the
receiver, because the sum of all sending rates for media streams must not be
high enough to cause congestion on the path these media streams share between
sender and receiver.</t>
        </dd>
        <dt>Receiver:</dt>
        <dd>
          <t>An endpoint that receives media in RTP packets and may send or receive RTCP packets.</t>
        </dd>
        <dt>RTP congestion controller:</dt>
        <dd>
          <t>A software component of an application's RTP implementation that implements a congestion control algorithm.</t>
        </dd>
        <dt>Sender:</dt>
        <dd>
          <t>An endpoint that sends media in RTP packets and may send or receive RTCP packets.</t>
        </dd>
      </dl>
      <t>Packet diagrams in this document use the format defined in <xref section="1.3" sectionFormat="of" target="RFC9000"/> to
illustrate the order and size of fields.</t>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>This document introduces a mapping of the Real-time Transport Protocol (RTP) to
the QUIC transport protocol. RoQ allows the use of QUIC streams and
QUIC datagrams to transport real-time data, and thus, the QUIC
implementation MUST support QUIC's datagram extension, if RTP packets
should be sent over QUIC datagrams. Since datagram frames cannot be fragmented,
the QUIC implementation MUST also provide a way to query the maximum datagram
size so that an application can create RTP packets that always fit into a QUIC
datagram frame.</t>
      <t><xref target="RFC3550"/> specifies that RTP sessions need to be transmitted on different
transport addresses to allow multiplexing between them. RoQ 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 would be flow identifiers prepended to each datagram frame as described
in <xref section="2.1" sectionFormat="of" target="I-D.draft-ietf-masque-h3-datagram"/>. RoQ uses a
flow identifier to replace the network address and port number to multiplex many
RTP sessions over the same QUIC connection.</t>
      <t>An RTP application is responsible for determining what to send in an encoded media stream, and how to send that encoded media stream within a targeted bitrate.</t>
      <t>This document does not mandate how an application determines what to send in an encoded media stream, because decisions about what to send within a targeted bitrate, and how to adapt to changes in the targeted bitrate, can be application and codec-specific. For example, adjusting quantization in response to changing network conditions may work well in many cases, but if what's being shared is video that includes text, maintaining readability is important.</t>
      <t>A rate adaptation algorithm can be plugged in to adapt the media bitrate to the
available bandwidth. This document does not mandate any specific rate adaptation mechanism, so the application can use a rate adaption mechanism of its choice.</t>
      <t>As of this writing, the IETF has produced two Experimental-track rate adaptation specifications, Network-Assisted Dynamic Adaptation (NADA)
<xref target="RFC8698"/> and Self-Clocked Rate Adaptation for Multimedia (SCReAM)
<xref target="RFC8298"/>. These rate adaptation algorithms require some feedback about
the network's performance to calculate target bitrates. Traditionally this
feedback is generated at the receiver and sent back to the sender via RTCP.</t>
      <t>Since QUIC also collects some metrics about the network's performance, these
metrics can be used to generate the required feedback at the sender-side and
provide it to the rate adaptation algorithm to avoid the additional overhead of the
RTCP stream. This is discussed in more detail in <xref target="rtcp-mapping"/>.</t>
      <section anchor="rtp-with-quic-streams-quic-datagrams-and-a-mixture-of-both">
        <name>RTP with QUIC Streams, QUIC Datagrams, and a Mixture of Both</name>
        <t>This document describes the use of QUIC streams and QUIC datagrams as RTP encapsulations. The choice of which encapsulation is used is up to the application developer, but it is worth noting the differences.</t>
        <t>QUIC <xref target="RFC9000"/> was initially designed to carry HTTP <xref target="RFC9114"/> in QUIC streams, and QUIC streams provide what HTTP application developers require - for example, QUIC streams provide a stateful, connection-oriented, flow-controlled, reliable, ordered stream of bytes to an application. QUIC streams can be multiplexed over a single QUIC connection, using stream IDs to demultiplex incoming messages.</t>
        <t>QUIC Datagrams ((!RFC9221}} were developed as a QUIC extension, intended to support applications that do not require reliable delivery of application data. This extension defines two QUIC DATAGRAM frame types (one including a length field, the other not including a length field), and these DATAGRAM frames can co-exist with QUIC STREAM frames within a single QUIC connection, sharing the connection's cryptographic and authentication context, and congestion controller context.</t>
        <t>There is no default relative priority between DATAGRAM frames with respect to each other, and there is no default priority between DATAGRAM frames and QUIC streams. The implementation likely presents an API to allow appplications to assign relative priorities, but this is not mandated by the standard and may not be present in all implementations.</t>
        <t>Because QUIC datagrams are an extension to QUIC, they inherit a great deal of functionality from QUIC (much of which is described in <xref target="motivations"/>); so much so that it is easier to explain what datagrams do NOT inherit.</t>
        <ul spacing="normal">
          <li>DATAGRAM frames do not provide any explicit flow control signaling. This means that a QUIC receiver may not be able to commit the necessary resources to process incoming frames, but the purpose for DATAGRAM frames is to carry application-level information that can be lost and will not be retransmitted,</li>
          <li>DATAGRAM frames do inherit the QUIC connection's congestion controller. This means that although there is no frame-level flow control, DATAGRAM frames may be delayed until the controller allows them to be sent, or dropped (with an optional notification to the sending application). Implementations can also delay sending DATAGRAM frames to maintain consistent packet pacing (as described in <xref section="7.7" sectionFormat="of" target="RFC9002"/>), and can allow an application to specify a sending expiration time, but these capabilities are not mandated by the standard and may not be present in all implementations.</li>
          <li>DATAGRAM frames cannot be fragmented. They are limited in size by the max_datagram_frame_size transport parameter, and further limited by the max_udp_payload_size transport parameter and the Maximum Transmission Unit (MTU) of the path between endpoints.</li>
          <li>DATAGRAM frames belong to a QUIC connection as a whole. There is no QUIC-level way to multiplex/demultiplex DATAGRAM frames within a single QUIC connection. Any multiplexing identifiers must be added, interpreted, and removed by an application, and they will be sent as part of the payload of the DATAGRAM frame itself.</li>
        </ul>
      </section>
      <section anchor="topologies">
        <name>Supported RTP Topologies</name>
        <t>RoQ only supports some of the RTP topologies described in
<xref target="RFC7667"/>. Most notably, due to QUIC <xref target="RFC9000"/> being a purely IP unicast
protocol at the time of writing, RoQ cannot be used as a transport
protocol for any of the paths that rely on IP multicast in several multicast
topologies (e.g., <em>Topo-ASM</em>, <em>Topo-SSM</em>, <em>Topo-SSM-RAMS</em>).</t>
        <t>Some "multicast topologies" can include IP unicast paths (e.g., <em>Topo-SSM</em>,
<em>Topo-SSM-RAMS</em>). In these cases, the unicast paths can use RoQ.</t>
        <t>RTP supports different types of translators and mixers. Whenever a middlebox
such as a translator or a mixer needs to access the content of RTP/RTCP-packets,
the QUIC connection has to be terminated at that middlebox.</t>
        <t>RoQ streams (see <xref target="quic-streams"/>) can support much larger RTP
packet sizes than other transport protocols such as UDP can, which can lead to
problems with transport translators which translate from RoQ to RTP
over a different transport protocol. A similar problem can occur if a translator
needs to translate from RTP over UDP to RoQ datagrams, where the MTU
of a QUIC datagram may be smaller than the MTU of a UDP datagram. In both cases,
the translator may need to rewrite the RTP packets to fit into the smaller MTU
of the other protocol. Such a translator may need codec-specific knowledge to
packetize the payload of the incoming RTP packets in smaller RTP packets.</t>
        <t>Additional details are provided in the following table.</t>
        <table>
          <thead>
            <tr>
              <th align="left">RFC 7667 Section</th>
              <th align="left">Shortcut Name</th>
              <th align="left">RTP over QUIC?</th>
              <th align="left">Comments</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.1">3.1</eref></td>
              <td align="left">Topo-Point-to-Point</td>
              <td align="left">yes</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.2.1.1">3.2.1.1</eref></td>
              <td align="left">Topo-PtP-Relay</td>
              <td align="left">yes</td>
              <td align="left">Note-NAT</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.2.1.2">3.2.1.2</eref></td>
              <td align="left">Topo-Trn-Translator</td>
              <td align="left">yes</td>
              <td align="left">Note-MTU <br/> Note-SEC</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.2.1.3">3.2.1.3</eref></td>
              <td align="left">Topo-Media-Translator</td>
              <td align="left">yes</td>
              <td align="left">Note-MTU</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.2.2">3.2.2</eref></td>
              <td align="left">Topo-Back-To-Back</td>
              <td align="left">yes</td>
              <td align="left">Note-SEC <br/> Note-MTU <br/> Note-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.3.1">3.3.1</eref></td>
              <td align="left">Topo-ASM</td>
              <td align="left">no</td>
              <td align="left">Note-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.3.2">3.3.2</eref></td>
              <td align="left">Topo-SSM</td>
              <td align="left">partly</td>
              <td align="left">Note-MCast <br/> Note-UCast-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.3.3">3.3.3</eref></td>
              <td align="left">Topo-SSM-RAMS</td>
              <td align="left">partly</td>
              <td align="left">Note-MCast <br/> Note-MCast-UCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.4">3.4</eref></td>
              <td align="left">Topo-Mesh</td>
              <td align="left">yes</td>
              <td align="left">Note-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.5.1">3.5.1</eref></td>
              <td align="left">Topo-PtM-Trn-Translator</td>
              <td align="left">possibly</td>
              <td align="left">Note-MCast <br/> Note-MTU <br/> Note-Topo-PtM-Trn-Translator</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.6">3.6</eref></td>
              <td align="left">Topo-Mixer</td>
              <td align="left">possibly</td>
              <td align="left">Note-MCast <br/> Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.6.1">3.6.1</eref></td>
              <td align="left">Media-Mixing-Mixer</td>
              <td align="left">partly</td>
              <td align="left">Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.6.2">3.6.2</eref></td>
              <td align="left">Media-Switching-Mixer</td>
              <td align="left">partly</td>
              <td align="left">Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.7">3.7</eref></td>
              <td align="left">Selective Forwarding Middlebox</td>
              <td align="left">yes</td>
              <td align="left">Note-MCast <br/> Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.8">3.8</eref></td>
              <td align="left">Topo-Video-switch-MCU</td>
              <td align="left">yes</td>
              <td align="left">Note-MTU <br/> Note-MCast <br/> Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.9">3.9</eref></td>
              <td align="left">Topo-RTCP-terminating-MCU</td>
              <td align="left">yes</td>
              <td align="left">Note-MTU <br/> Note-MCast <br/> Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.10">3.10</eref></td>
              <td align="left">Topo-Split-Terminal</td>
              <td align="left">yes</td>
              <td align="left">Note-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.11">3.11</eref></td>
              <td align="left">Topo-Asymmetric</td>
              <td align="left">Possibly</td>
              <td align="left">Note-Warn, <br/> Note-MCast, <br/> Note-MTU</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt>Note-NAT:</dt>
          <dd>
            <t>QUIC <xref target="RFC9000"/> doesn't support NAT traversal.</t>
          </dd>
          <dt>Note-MTU:</dt>
          <dd>
            <t>Supported, but may require MTU adaptation.</t>
          </dd>
          <dt>Note-Sec:</dt>
          <dd>
            <t>Note that RoQ provides mandatory security, and other RTP transports
do not. <xref target="sec-considerations"/> describes strategies to prevent the inadvertent
disclosure of RTP sessions to unintended third parties.</t>
          </dd>
          <dt>Note-MCast:</dt>
          <dd>
            <t>QUIC <xref target="RFC9000"/> cannot be used for multicast paths.</t>
          </dd>
          <dt>Note-UCast-MCast:</dt>
          <dd>
            <t>The topology refers to a <em>Distribution Source</em>, which receives and relays RTP
from a number of different media senders via unicast before relaying it to the
receivers via multicast. QUIC can be used between the senders and the
<em>Distribution Source</em>.</t>
          </dd>
          <dt>Note-MCast-UCast:</dt>
          <dd>
            <t>The topology refers to a <em>Burst Source</em> or <em>Retransmission Source</em>, which
retransmits RTP to receivers via unicast. QUIC can be used between the
<em>Retransmission Source</em> and the receivers.</t>
          </dd>
          <dt>Note-Topo-PtM-Trn-Translator:</dt>
          <dd>
            <t>Supports unicast paths between RTP sources and translators.</t>
          </dd>
          <dt>Note-Topo-Mixer:</dt>
          <dd>
            <t>Supports unicast paths between RTP senders and mixers.</t>
          </dd>
          <dt>Note-Warn:</dt>
          <dd>
            <t>Quote from <xref target="RFC7667"/>: <em>This topology is so problematic and it is so easy to
get the RTCP processing wrong, that it is NOT RECOMMENDED to implement this
topology.</em></t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="alpn">
      <name>Connection Establishment and ALPN</name>
      <t>QUIC requires the use of ALPN <xref target="RFC7301"/> tokens during connection setup. RoQ
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 RoQ 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>RoQ uses the token "rtp-mux-quic" to identify itself in ALPN.</t>
        <t>Only implementations of the final, published RFC can identify themselves as
"rtp-mux-quic". Until such an RFC exists, implementations MUST NOT identify
themselves using this string.</t>
        <t>Implementations of draft versions of the protocol MUST add the string "-" and
the corresponding draft number to the identifier.  For example,
draft-ietf-avtcore-rtp-over-quic-04 is identified using the string
"rtp-mux-quic-04".</t>
        <t>Non-compatible experiments that are based on these draft versions MUST append
the string "-" and an experiment name to the identifier.</t>
      </section>
    </section>
    <section anchor="encapsulation">
      <name>Encapsulation</name>
      <t>This section describes the encapsulation of RTP/RTCP packets in QUIC.</t>
      <t>QUIC supports two transport methods: streams <xref target="RFC9000"/> and
datagrams <xref target="RFC9221"/>. This document specifies mappings of RTP to
both of the transport modes. Senders MAY combine both modes by sending some
RTP/RTCP packets over the same or different QUIC streams and others in QUIC
datagrams.</t>
      <t><xref target="multiplexing"/> introduces a multiplexing mechanism that supports multiplexing
RTP, RTCP, and, with some constraints, other non-RTP protocols. <xref target="quic-streams"/>
and <xref target="quic-datagrams"/> explain the specifics of mapping RTP to QUIC streams and
QUIC datagrams, respectively.</t>
      <section anchor="multiplexing">
        <name>Multiplexing</name>
        <t>RoQ uses flow identifiers to multiplex different RTP, RTCP, and
non-RTP data streams on a single QUIC connection. A flow identifier is a QUIC
variable-length integer as described in <xref section="16" sectionFormat="of" target="RFC9000"/>. Each flow
identifier is associated with a stream of RTP packets, RTCP packets, or a data
stream of a non-RTP protocol.</t>
        <t>In a QUIC connection using the ALPN token defined in <xref target="alpn"/>, every QUIC
datagram and every QUIC stream MUST start with a flow identifier. A peer MUST
NOT send any data in a datagram or stream that is not associated with the flow
identifier which started the datagram or stream.</t>
        <t>RTP and RTCP packets of different RTP sessions MUST use distinct flow
identifiers. If peers wish to send multiple types of media in a single RTP
session, they MAY do so by following <xref target="RFC8860"/>.</t>
        <t>A single RTP session MAY be associated with one or two flow identifiers. Thus,
it is possible to send RTP and RTCP packets belonging to the same session using
different flow identifiers. RTP and RTCP packets of a single RTP session MAY use
the same flow identifier (following the procedures defined in <xref target="RFC5761"/>, or
they MAY use different flow identifiers.</t>
        <t>The association between flow identifiers and data streams MUST be negotiated
using appropriate signaling. Applications MAY send data using flow identifiers
not associated with any RTP or RTCP stream. If a receiver cannot associate a
flow identifier with any RTP/RTCP or non-RTP flow, it MAY drop the data flow. If
the data flow was sent on a QUIC stream, the receiver SHOULD send a
STOP_SENDING frame with the application error code set to
ROQ_UNKNOWN_FLOW_ID.</t>
        <t>There are different use cases for sharing the same QUIC connection between RTP
and non-RTP data streams. Peers might use the same connection to exchange
signaling messages or exchange data while sending and receiving media streams.
The semantics of non-RTP datagrams or streams are not in the scope of this
document. Peers MAY use any protocol on top of the encapsulation described in
this document.</t>
        <t>Flow identifiers introduce some overhead in addition to the header overhead of
RTP/RTCP and QUIC. QUIC variable-length integers require between one and eight
bytes depending on the number expressed. Thus, it is advisable to use low
numbers first and only use higher ones if necessary due to an increased number
of flows.</t>
      </section>
      <section anchor="quic-streams">
        <name>QUIC Streams</name>
        <t>To send RTP/RTCP packets over QUIC streams, a sender MUST open a
new unidirectional QUIC stream. Streams are unidirectional because there is no
synchronous relationship between sent and received RTP/RTCP packets. A peer that
receives a bidirectional stream with a flow identifier that is associated with
an RTP or RTCP stream, SHOULD stop reading from the stream and send a
STOP_SENDING frame with the application protocol error code set to
ROQ_STREAM_CREATION_ERROR.</t>
        <t>A RoQ sender MAY open new QUIC streams for different packets using the same flow
identifier, for example, to avoid head-of-line blocking.</t>
        <t>A receiver MUST be prepared to receive RTP packets on any number of QUIC streams
(subject to its limit on parallel open streams) and SHOULD not make assumptions
which RTP sequence numbers are carried in which streams.</t>
        <t>Note: A sender may or may not decide to discontinue using a lower stream number
after starting packet transmission on a higher stream number.</t>
        <section anchor="stream-encapsulation">
          <name>Stream Encapsulation</name>
          <t><xref target="fig-stream-payload"/> shows the encapsulation format for RoQ Streams.</t>
          <figure anchor="fig-stream-payload">
            <name>RoQ Streams Payload Format</name>
            <artwork><![CDATA[
Payload {
  Flow Identifier (i),
  RTP/RTCP Payload(..) ...,
}
]]></artwork>
          </figure>
          <dl>
            <dt>Flow Identifier:</dt>
            <dd>
              <t>Flow identifier to demultiplex different data flows on the same QUIC
connection.</t>
            </dd>
            <dt>RTP/RTCP Payload:</dt>
            <dd>
              <t>Contains the RTP/RTCP payload; see <xref target="fig-rtp-stream-payload"/></t>
            </dd>
          </dl>
          <t>The payload in a QUIC stream starts with the flow identifier followed by one or
more RTP/RTCP payloads. All RTP/RTCP payloads sent on a stream MUST belong to
the RTP session with the same flow identifier.</t>
          <t>Each payload begins with a length field indicating the length of the RTP/RTCP
packet, followed by the packet itself, see <xref target="fig-rtp-stream-payload"/>.</t>
          <figure anchor="fig-rtp-stream-payload">
            <name>RTP/RTCP payload for QUIC streams</name>
            <artwork><![CDATA[
RTP/RTCP Payload {
  Length(i),
  RTP/RTCP Packet(..),
}
]]></artwork>
          </figure>
          <dl>
            <dt>Length:</dt>
            <dd>
              <t>A QUIC variable length integer (see <xref section="16" sectionFormat="of" target="RFC9000"/>) describing the
length of the following RTP/RTCP packets in bytes.</t>
            </dd>
            <dt>RTP/RTCP Packet:</dt>
            <dd>
              <t>The RTP/RTCP packet to transmit.</t>
            </dd>
          </dl>
        </section>
        <section anchor="media-frame-cancellation">
          <name>Media Frame Cancellation</name>
          <t>QUIC uses RESET_STREAM and STOP_SENDING frames to terminate the sending part
of a stream and to request termination of an incoming stream by the sending
peer respectively.</t>
          <t>A RoQ sender MAY use RESET_STREAM if it knows that a packet, which was not yet
successfully and completely transmitted, is no longer needed.</t>
          <t>A RoQ receiver that is no longer interested in reading a certain partition of
the media stream MAY signal this to the sending peer using a STOP_SENDING
frame.</t>
          <t>In both cases, the error code of the RESET_STREAM frame or the STOP_SENDING
frame MUST be set to ROQ_FRAME_CANCELLED.</t>
          <t>When a RoQ sender receives a STOP_SENDING frame for the last open stream
available to send RTP/RTCP-data, the RoQ sender MUST open one or more new QUIC
streams before sending new media frames. Any media frame that has already been
sent on the QUIC stream that received the STOP_SENDING frame, MUST NOT be sent
again on the new QUIC stream(s).</t>
          <t>Note that an RTP receiver cannot request a reset of only a particular media
frame because the sending QUIC implementation might already have sent data for
the following frame on the same stream. In that case, STOP_SENDING and the
following RESET_STREAM would also drop the following media frame and thus lead
to unintentionally skipping one or more frames.</t>
          <ul empty="true">
            <li>
              <t><strong>Editor's note:</strong> A receiver cannot cancel a certain frame but still receive
retransmissions for a frame the was following on the same stream using
STOP_SENDING, because STOP_SENDING does not include an offset which would
allow signaling where retransmissions should continue.</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t><strong>Editor's note:</strong> Instead of using RESET_STREAM and STOP_SENDING frames,
RoQ senders and receivers might benefit from negotiating the use of the QUIC
extensions defined in <xref target="I-D.draft-ietf-quic-reliable-stream-reset-01"/> and
<xref target="I-D.draft-thomson-quic-enough-00"/>. These extensions provide two new frame
types, the CLOSE_STREAM and the ENOUGH frame, equivalent to RESET_STREAM and
STOP_SENDING, respectively, but with an additional offset. The offset
indicates the point to which data will be reliably retransmitted, while
everything following might be dropped. Using CLOSE_STREAM and ENOUGH instead
of RESET_STREAM and STOP_SENDING could prevent accidentally stopping
retransmissions for preceding frames.</t>
            </li>
          </ul>
          <t>A translator that translates between two endpoints, both connected via QUIC,
MUST forward RESET_STREAM frames received from one end to the other unless it
forwards the RTP packets on QUIC datagrams.</t>
          <t>Large RTP packets sent on a stream will be fragmented into smaller QUIC frames.
The QUIC frames are transmitted reliably and in order such that a receiving
application can read a complete RTP packet from the stream as long as the stream
is not closed with a RESET_STREAM frame. No retransmission has to be
implemented by the application since QUIC frames lost in transit are
retransmitted by QUIC.</t>
        </section>
        <section anchor="flow-control-and-maxstreams">
          <name>Flow control and MAX_STREAMS</name>
          <t>Opening new streams for new packets MAY implicitly limit the number of packets
concurrently in transit because the QUIC receiver provides an upper bound of
parallel streams, which it can update using QUIC MAX_STREAMS frames. The number
of packets that have to be transmitted concurrently depends on several factors,
such as the number of RTP streams within a QUIC connection, the bitrate of the
media streams, and the maximum acceptable transmission delay of a given packet.
Receivers are responsible for providing senders enough credit to open new
streams for new packets anytime. As an example, consider a conference scenario
with 20 participants. Each participant receives audio and video streams of every
other participant from a central server. If the sender opens a new QUIC stream
for every frame at 30 frames per second video and 50 frames per second audio, it
will open 1520 new QUIC streams per second. A receiver must provide at least
that many credits for opening new unidirectional streams to the server every
second. In addition, the receiver should also consider the requirements of
protocols into account that are multiplexed with RTP, including RTCP and data
streams. These considerations may also be relevant when implementing signaling
since it may be necessary to inform the receiver about how fast and how much
stream credits it will have to provide to the media-sending peer.</t>
        </section>
      </section>
      <section anchor="quic-datagrams">
        <name>QUIC Datagrams</name>
        <t>Senders can also transmit RTP packets in QUIC datagrams. QUIC datagrams are an
extension to QUIC described in <xref target="RFC9221"/>. QUIC datagrams can only be used if
the use of the extension was successfully negotiated during the QUIC handshake.
If the use of an extension was signaled using a signaling protocol, but the
extension was not negotiated during the QUIC handshake, a peer MAY close the
connection with the ROQ_EXPECTATION_UNMET error code.</t>
        <t>QUIC datagrams preserve frame boundaries. Thus, a single RTP packet can be
mapped to a single QUIC datagram without additional framing. Senders SHOULD
consider the header overhead associated with QUIC datagrams and ensure that the
RTP/RTCP packets, including their payloads, flow identifier, QUIC, and IP
headers, will fit into path MTU.</t>
        <t><xref target="fig-dgram-payload"/> shows the encapsulation format for RoQ
Datagrams.</t>
        <figure anchor="fig-dgram-payload">
          <name>RoQ Datagram Payload Format</name>
          <artwork><![CDATA[
Payload {
  Flow Identifier (i),
  RTP/RTCP Packet (..),
}
]]></artwork>
        </figure>
        <dl>
          <dt>Flow Identifier:</dt>
          <dd>
            <t>Flow identifier to demultiplex different data flows on the same QUIC
connection.</t>
          </dd>
          <dt>RTP/RTCP Packet:</dt>
          <dd>
            <t>The RTP/RTCP packet to transmit.</t>
          </dd>
        </dl>
        <t>RoQ senders need to be aware that QUIC uses the concept of QUIC frames.
Different kinds of QUIC frames are used for different application and control
data types. A single QUIC packet can contain more than one QUIC frame,
including, for example, QUIC stream or datagram frames carrying application data
and acknowledgement frames carrying QUIC acknowledgements, as long as the
overall size fits into the MTU. One implication is that the number of packets a
QUIC stack transmits depends on whether it can fit acknowledgement and datagram
frames in the same QUIC packet. Suppose the application creates many datagram
frames that fill up the QUIC packet. In that case, the QUIC stack might have to
create additional packets for acknowledgement- (and possibly other control-)
frames. The additional overhead could, in some cases, be reduced if the
application creates smaller RTP packets, such that the resulting datagram frame
can fit into a QUIC packet that can also carry acknowledgement frames.</t>
        <t>Since QUIC datagrams are not retransmitted on loss (see also
<xref target="transport-layer-feedback"/> for loss signaling), if an application wishes to
retransmit lost RTP packets, the retransmission has to be implemented by the
application. RTP retransmissions can be done in the same RTP session or a
separate RTP session <xref target="RFC4588"/> and the flow identifier MUST be set to the
flow identifier of the RTP session in which the retransmission happens.</t>
      </section>
    </section>
    <section anchor="connection-shutdown">
      <name>Connection Shutdown</name>
      <t>Either peers MAY close the connection for variety of reasons. If one of the
peers wants to close the RoQ connection, the peer can use a QUIC
CONNECTION_CLOSE frame with one of the error codes defined in
<xref target="error-handling"/>.</t>
    </section>
    <section anchor="congestion-control">
      <name>Congestion Control and Rate Adaptation</name>
      <t>Like any other application on the internet, RoQ applications need a mechanism to
perform congestion control to avoid overloading the network. While any generic
congestion controller can protect the network, this document takes advantage of
the opportunity to use rate adaptation mechanisms that are designed to provide
superior user experiences for real-time media applications.</t>
      <t>A wide variety of rate adaptation algorithms for real-time media have been
developed (for example, "Google Congestion Controller"
<xref target="I-D.draft-ietf-rmcat-gcc"/>). The IETF has defined two algorithms in two
Experimental RFCs (e.g. SCReAM <xref target="RFC8298"/> and NADA <xref target="RFC8698"/>). These rate
adaptation algorithms for RTP are specifically tailored for real-time
transmissions at low latencies, but this section would apply to any rate
adaptation algorithm that meets the requirements described in "Congestion
Control Requirements for Interactive Real-Time Media" <xref target="RFC8836"/>.</t>
      <t>This document defines two architectures for congestion control and bandwidth
estimation for RoQ, depending on whether most rate adaptation is performed
within a QUIC implementation at the transport layer, as described in
<xref target="cc-quic-layer"/>, or within an RTP application layer, as described in
<xref target="cc-application-layer"/>, but this document does not mandate any specific
congestion control or rate adaptation algorithm for either QUIC or RTP.</t>
      <t>This document also gives guidance about avoiding problems with "nested"
congestion controllers, in <xref target="nested-CC"/>.</t>
      <t>This document also discusses congestion control
implications of using shared or multiple separate QUIC connections to send and
receive multiple independent data streams, in <xref target="shared-connections"/>.</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 (e.g. SCReAM and
NADA) provide such pacing mechanisms. The use of congestion controllers which
don't provide a pacing mechanism is out of scope of this document.</t>
      <section anchor="cc-quic-layer">
        <name>Congestion Control at the Transport Layer</name>
        <t>QUIC is a congestion controlled transport protocol. Senders are required to
employ some form of congestion control. The default congestion control specified
for QUIC in <xref target="RFC9002"/> is similar to TCP NewReno <xref target="RFC6582"/>, but senders are
free to choose any congestion control algorithm as long as they follow the
guidelines specified in <xref section="3" sectionFormat="of" target="RFC8085"/>, and QUIC implementors make
use of this freedom.</t>
        <t>If a QUIC implementation is to perform rate adaptation in a way that
accommodates real-time media, one way for the implementation to recognize that
it is carrying real-time media is to be explicitly told that this is the case.
This document defines a new "TLS Application-Layer Protocol Negotiation (ALPN)
Protocol ID", as described in <xref target="alpn"/>, that a QUIC implementation can use as a
signal to choose a real-time media-centric rate controller, but this is not
required for ROQ deployments.</t>
        <t>If congestion control is to be applied at the transport layer, it is RECOMMENDED
that the QUIC Implementation uses a congestion controller that keeps queueing
delays short to keep the transmission latency for RTP and RTCP packets as low as
possible, such as the IETF-defined SCReAM <xref target="RFC8298"/> and NADA <xref target="RFC8698"/>
algorithms.</t>
        <t>Many low latency congestion control algorithms depend on detailed arrival time
feedback to estimate the current one-way delay between sender and receiver. QUIC
does not provide arrival timestamps in its acknowledgments. The QUIC
implementations of the sender and receiver can use an extension to add this
information to QUICs acknowledgment frames, e.g.
<xref target="I-D.draft-smith-quic-receive-ts"/> or <xref target="I-D.draft-huitema-quic-ts"/>.</t>
        <t>If congestion control is done by the QUIC implementation, the application needs
a mechanism to query the currently available bandwidth to adapt media codec
configurations. The employed congestion controller of the QUIC connection SHOULD
expose such an API to the application. If a current bandwidth estimate is not
available from the QUIC congestion controller, the sender can either implement
an alternative bandwidth estimation at the application layer as described in
<xref target="cc-application-layer"/> or a receiver can feedback the observed bandwidth
through RTCP, e.g., using <xref target="I-D.draft-alvestrand-rmcat-remb"/>.</t>
      </section>
      <section anchor="cc-application-layer">
        <name>Congestion Control at the RTP Application Layer</name>
        <t>RTP itself does not specify a congestion control algorithm, but <xref target="RFC8888"/>
defines an RTCP feedback message intended to enable rate adaptation for
interactive real-time traffic using RTP, and successful rate adaptation will
accomplish congestion control as well.</t>
        <t>The rate adaptation algorithms for RTP are specifically tailored for real-time
transmissions at low latencies, as described in <xref target="congestion-control"/>. The
available rate adaptation algorithms 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>If an application cannot access a bandwidth estimation from the QUIC layer, or
the QUIC implementation does not support a delay-based, low-latency congestion
control algorithm, the application can alternatively implement a bandwidth estimation
algorithm at the application layer. Calculating a bandwidth estimation at the
application layer can be done using the same bandwidth estimation algorithms as
described in <xref target="congestion-control"/> (NADA, SCReAM). The bandwidth estimation
algorithm typically needs some feedback on the transmission performance. This
feedback can be collected following the guidelines in <xref target="rtcp-mapping"/>.</t>
      </section>
      <section anchor="nested-CC">
        <name>Resolving Interactions Between QUIC and Application-layer Congestion Control</name>
        <t>Because QUIC is a congestion-controlled transport, as described in
<xref target="cc-quic-layer"/>, and RTP applications can also perform congestion control and
rate adaptation, as described in <xref target="cc-application-layer"/>, implementers should
be aware of the possibility that these "nested" congestion control loops, where
both controllers are managing rate adaptation for the same packet stream
independently, may deliver problematic performance. Because this document is
describing a specific case (media transport), we can provide some guidance to
avoid the worst possible problems.</t>
        <ul spacing="normal">
          <li>
            <strong>Application-limited Media Flows</strong> - if an application chooses RTP as its
transport mechanism, the goal will be maximizing the user experience, not
maximizing path bandwidth utilization. If the application is, in fact,
transmitting media that does not saturate path bandwidth, and paces its
transmission, more heavy-handed congestion control mechanisms (drastic
reductions in the sending rate when loss is detected, with much slower
increases when losses are no longer detected) should rarely come into play. If
the application chooses ROQ as its transport, sends enough media to saturate
the path bandwidth, and does not adapt its own sending rate, drastic measures
will be required in order to avoid sustained or oscillating congestion along
the path.</li>
          <li>
            <strong>Awareness of Bufferbloat</strong> - modern general-purpose congestion controllers
do not adjust  their sending rates based only on packet loss. For example, BBR
("Bottleneck Bandwidth and Round-trip propagation time")
<xref target="I-D.cardwell-iccrg-bbr-congestion-control"/> describes its strategy for
adapting sending rates in this way:</li>
        </ul>
        <ul empty="true">
          <li>
            <t>(BBR) "uses recent measurements of a transport connection's delivery rate,
round-trip time, and packet loss rate to build an explicit model of the
network path. BBR then uses this model to control both how fast it sends data
and the maximum volume of data it allows in flight in the network at any
time."</t>
          </li>
        </ul>
      </section>
      <section anchor="shared-connections">
        <name>Sharing QUIC connections</name>
        <t>Two endpoints may establish channels in order 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.</t>
        <ul spacing="normal">
          <li>One straightforward solution is to establish multiple QUIC connections, one
for each channel, whether the channel is used for real-time media or
non-real-time data. This is a straightforward solution, but has the
disadvantage that transport ports are more quickly exhausted and these are
limited by the 16-bit UDP source and destination port number sizes
<xref target="RFC768"/>.</li>
          <li>Alternatively, all real-time channels are mapped to one QUIC connection, while
a separate QUIC connection is created for the non-real-time channels.</li>
        </ul>
        <t>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>Although it is possible to multiplex (all or a subset of) real-time and
non-real-time channels onto a single, shared QUIC connection, which can be done
by using the flow identifier described in <xref target="multiplexing"/>, the underlying QUIC
implementation will likely use the same congestion controller for all channels
in the shared QUIC connection. For this reason, applications multiplexing
multiple streams in one connection SHOULD implement some form of stream
prioritization or bandwidth allocation.</t>
      </section>
    </section>
    <section anchor="rtcp-mapping">
      <name>Replacing RTCP and RTP Header Extensions with QUIC Feedback</name>
      <t>Because RTP has so often used UDP as its underlying transport protocol, and
receiving little or no feedback from UDP, RTP implementations rely on feedback from
the RTP Control Protocol (RTCP) so that RTP senders and receivers can exchange
control information to monitor connection statistics and to identify and
synchronize streams.</t>
      <t>Because QUIC provides its own transport-level feedback, at least some RTP
transport level feedback can be replaced with current QUIC feedback
<xref target="rfc9000"/>. In adition, RTP-level feedback that is not available in QUIC by
default can be replaced with generally useful QUIC extensions. Examples of these
extentions include:</t>
      <ul spacing="normal">
        <li>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"/>, or</li>
        <li>Adjusting the frequency of QUIC acknowledgments, using
<xref target="I-D.draft-ietf-quic-ack-frequency"/>.</li>
      </ul>
      <t>When statistics contained in RTCP packets are also available from QUIC, or can
be derived from statistics available from QUIC, it is desireable to provide
these statistics at only one protocol layer. This avoids consumption of
bandwidth to deliver equivalent control information at more than one level of
the protocol stack. QUIC and RTCP both have rules describing when certain
signals have to be sent. This document does not change any of the rules
described by either protocol, but specifies a baseline for replacing some of the
RTCP packet types by mapping the contents to QUIC connection statistics, and
reducing the transmission frequency and bandwidth requirements for some RTCP
packet types that must be transmitted periodically. Future documents can extend
this mapping for other RTCP format types, and can make use of new QUIC
extensions that become available over time. The mechanisms described in this
section can enhance the statistics provided by RTCP and reduce the bandwidth
overhead required by certain RTCP packets. Applications using RoQ need to adhere
to the rules for RTCP feedback given by <xref target="RFC3550"/> and the RTP profiles in
use.</t>
      <t>Most statements about "QUIC" in <xref target="rtcp-mapping"/> are applicable to both RTP
encapsulated in QUIC streams and RTP encapsulated in QUIC datagrams. The
differences are described in <xref target="roc-d"/> and <xref target="roc-s"/>.</t>
      <ul empty="true">
        <li>
          <t><strong>Editor's Note:</strong> Additional discussion of bandwidth minimization could go in
this section, or in an earlier proposed section on motivations for defining
and deploying RoQ.</t>
        </li>
      </ul>
      <t>While RoQ places no restrictions on applications sending RTCP, this
document assumes that the reason an implementor chooses to support RoQ
is to obtain benefits beyond what's available when RTP uses UDP as its
underlying transport layer. It is RECOMMENDED to expose relevant information
from the QUIC layer to the application instead of exchanging additional RTCP
packets, where applicable.</t>
      <t><xref target="transport-layer-feedback"/> and <xref target="al-repair"/> discuss what information can be
exposed from the QUIC connection layer to reduce the RTCP overhead.</t>
      <t>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 using RoQ.</t>
      <t>A more complete analysis of RTCP Control Packet Types (in <xref target="control-packets"/>),
Generic RTP Feedback (RTPFB) (in <xref target="generic-feedback"/>), Payload-specific RTP
Feedback (PSFB) (in <xref target="payload-specific-feedback"/>), Extended Reports (in
<xref target="extended-reports"/>), and RTP Header Extensions (in <xref target="rtp-header-extensions"/>),
including the information that cannot be mapped from QUIC.</t>
      <section anchor="roc-d">
        <name>RoQ Datagrams</name>
        <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.</t>
      </section>
      <section anchor="roc-s">
        <name>RoQ Streams</name>
        <t>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>
      </section>
      <section anchor="multi-hop">
        <name>Multihop Topologies</name>
        <t>In some topologies, RoQ may be used on only some of the links between multiple
session participants. Other links may be using RTP over UDP, or over some other
supported RTP encapsulation protocol, and some participants might be using
implementations that don't support RoQ at all. These participants will not be
able to infer feedback from QUIC, and they may receive less RTCP feedback than
expected. On the other hand, participants using RoQ might not be aware that
other participants are not using RoQ and send as little RTCP as possible since
they assume their RoQ peer will be able to infer statistics from QUIC. There are
two ways to solve this problem: if the middlebox translating between RoQ and RTP
over other RTP transport protocols such as UDP or TCP provides Back-to-Back RTP
sessions as described in <xref section="3.2.2" sectionFormat="of" target="RFC7667"/>, this middlebox can add
RTCP packets for the participants not using RoQ by using the statistics the
middlebox gets from QUIC and the mappings described in the following sections.
If the middlebox does not provide Back-to-Back RTP sessions, participants may
use additional signalling to let the RoQ participants know what RTCP is
required.</t>
      </section>
      <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>
        <section anchor="RR-mappings">
          <name>Mapping QUIC Feedback to RTCP Receiver Reports ("RR")</name>
          <t>Considerations for mapping QUIC feedback into <em>Receiver Reports</em> (<tt>PT=201</tt>,
<tt>Name=RR</tt>, <xref target="RFC3550"/>) are:</t>
          <ul spacing="normal">
            <li>
              <em>Fraction lost</em>: When RTP packets are carried in QUIC datagrams, the
fraction of lost packets can be directly inferred from QUIC's
acknowledgments. The calculation SHOULD include all packets up to the
acknowledged RTP packet with the highest RTP sequence number. Later packets
SHOULD be ignored, since they may still be in flight, unless other QUIC
packets that were sent after the RTP packet, were already acknowledged.</li>
            <li>
              <em>Cumulative lost</em>: Similar to the fraction of lost packets, the cumulative
loss can be inferred from QUIC's acknowledgments including all packets up to
the latest acknowledged packet.</li>
            <li>
              <em>Highest Sequence Number received</em>: In RTCP, this field is a 32-bit field
that contains the highest sequence number a receiver received in an RTP
packet and the count of sequence number cycles the receiver has observed. A
sender sends RTP packets in QUIC packets and receives acknowledgments for
the QUIC packets. By keeping a mapping from a QUIC packet to the RTP packets
encapsulated in that QUIC packet, the sender can infer the highest sequence
number and number of cycles seen by the receiver from QUIC acknowledgments.</li>
            <li>
              <em>Interarrival jitter</em>: If QUIC acknowledgments carry timestamps as described
in <xref target="I-D.draft-smith-quic-receive-ts"/>, senders can infer the interarrival
jitter from the arrival timestamps in QUIC acknowledgments.</li>
            <li>
              <em>Last SR</em>: Similar to lost packets, the NTP timestamp of the last received
sender report can be inferred from QUIC acknowledgments.</li>
            <li>
              <em>Delay since last SR</em>: This field is not required when the receiver reports
are entirely replaced by QUIC feedback.</li>
          </ul>
        </section>
        <section anchor="XR-mappings">
          <name>Mapping QUIC Feedback to RTCP Extended Report ("XR")</name>
          <t><em>Extended Reports</em> (<tt>PT=207</tt>, <tt>Name=XR</tt>, <xref target="RFC3611"/>) offer an extensible
framework for a variety of different control messages. Some of the statistics
that are defined as extended report blocks can be derived from QUIC, too. Other
report blocks need to be evaluated individually, to determine whether if the
contained information can be transmitted using QUIC instead. <xref target="tab-xr-blocks"/>
in <xref target="extended-reports"/> lists considerations for mapping QUIC feedback to some
of the <em>Extended Reports</em>.</t>
        </section>
        <section anchor="rtpfb-mappings">
          <name>Mapping QUIC Feedback to Generic RTP Feedback ("RTPFB")</name>
          <t>This section lists considerations for mapping some of the generic RTP feedback
types to QUIC.</t>
          <section anchor="NACK-mappings">
            <name>Negative Acknowledgments ("NACK")</name>
            <t>Generic <em>Negative Acknowledgments</em> (<tt>PT=205</tt>, <tt>FMT=1</tt>, <tt>Name=Generic NACK</tt>,
<xref target="RFC4585"/>) contain information about RTP packets which the receiver
considered lost. <xref section="6.2.1." sectionFormat="of" target="RFC4585"/> recommends to use this feature
only if the underlying protocol cannot provide similar feedback. QUIC does not
provide negative acknowledgments, but can detect lost packets based on the Gap
numbers contained in QUIC ACK frames (<xref section="6" sectionFormat="of" target="RFC9002"/>).</t>
          </section>
          <section anchor="ECN-mappings">
            <name>ECN Feedback ("ECN")</name>
            <t><em>ECN Feedback</em> (<tt>PT=205</tt>, <tt>FMT=8</tt>, <tt>Name=RTCP-ECN-FB</tt>, <xref target="RFC6679"/>) 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 above. QUIC supports ECN reporting through
acknowledgments. If the QUIC connection supports ECN, the reporting of ECN
counts SHOULD be done using QUIC acknowledgments, rather than RTCP ECN feedback
reports.</t>
          </section>
          <section anchor="CCFB-mappings">
            <name>Congestion Control Feedback ("CCFB")</name>
            <t>RTP <em>Congestion Control Feedback</em> (<tt>PT=205</tt>, <tt>FMT=11</tt>, <tt>Name=CCFB</tt>,
<xref target="RFC8888"/>) contains acknowledgments, arrival timestamps and ECN notifications
for each received packet. Acknowledgments and ECNs can be inferred from QUIC as
described above. Arrival timestamps can be added through extended acknowledgment
frames as described in <xref target="I-D.draft-smith-quic-receive-ts"/> or
<xref target="I-D.draft-huitema-quic-ts"/>.</t>
          </section>
        </section>
        <section anchor="BYE-mapping">
          <name>Mapping QUIC Connection Close to RTCP Goodbye Packets ("BYE")</name>
          <t><em>Goodbye</em> (<tt>PT=203</tt>, <tt>Name=BYE</tt>, <xref target="RFC3550"/>) can be replaced by closing the
QUIC connection. However, while QUIC allows application layer error codes, they
do not carry string values.</t>
        </section>
      </section>
      <section anchor="al-repair">
        <name>Application Layer Repair and other Control Messages</name>
        <t>While <xref target="RR-mappings"/> presented some RTCP packets that can be replaced by QUIC
features, QUIC cannot replace all of the defined RTCP packet types. This mostly
affects RTCP packet types which carry control information that is to be
interpreted by the RTP application layer, rather than the underlying transport
protocol itself.</t>
        <ul spacing="normal">
          <li>
            <em>Sender Reports</em> (<tt>PT=200</tt>, <tt>Name=SR</tt>, <xref target="RFC3550"/>) are similar to <em>Receiver
Reports</em>, as described in <xref target="RR-mappings"/>. They are sent by media senders and
additionally contain an NTP and a RTP timestamp and the number of packets and
octets transmitted by the sender. The timestamps can be used by a receiver to
synchronize streams. QUIC cannot provide a similar control information, since
it does not know about RTP timestamps. Nor can a QUIC receiver calculate the
packet or octet counts, since it does not know about lost datagrams. Thus,
sender reports are required in RoQ to synchronize streams at the
receiver. The sender reports SHOULD not contain any receiver report blocks, as
the information can be inferred from the QUIC transport as explained in
<xref target="RR-mappings"/>.</li>
        </ul>
        <t>In addition to carrying transmission statistics, RTCP packets can contain
application layer control information, that cannot directly be mapped to QUIC.
Examples of this information may include:</t>
        <ul spacing="normal">
          <li>
            <em>Source Description</em> (<tt>PT=202</tt>, <tt>Name=SDES</tt>) and <em>Application</em> (<tt>PT=204</tt>,
<tt>Name=APP</tt>) packet types from <xref target="RFC3550"/>, or</li>
          <li>many of the payload specific feedback messages (<tt>PT=206</tt>) defined in
<xref target="RFC4585"/>, used to control the codec behavior of the sender.</li>
        </ul>
        <t>Since QUIC does not provide any kind of application layer control messaging,
QUIC feedback cannot be mapped into these RTCP packet types. If the RTP
application needs this information, the RTCP packet types are used in the same
way as they would be used over any other transport protocol.</t>
      </section>
    </section>
    <section anchor="error-handling">
      <name>Error Handling</name>
      <t>The following error codes are defined for use when abruptly terminating streams,
aborting reading of streams, or immediately closing RoQ connections.</t>
      <dl>
        <dt>ROQ_NO_ERROR (0x????):</dt>
        <dd>
          <t>No error. This is used when the connection or stream needs to be closed, but
there is no error to signal.</t>
        </dd>
        <dt>ROQ_GENERAL_ERROR (0x????):</dt>
        <dd>
          <t>An error that does not match a more specific error code occured.</t>
        </dd>
        <dt>ROQ_INTERNAL_ERROR (0x????):</dt>
        <dd>
          <t>An internal error has occured in the RoQ stack.</t>
        </dd>
        <dt>ROQ_PACKET_ERROR (0x????):</dt>
        <dd>
          <t>Invalid payload format, e.g., length does not match packet, invalid flow id
encoding, non-RTP on RTP-flow ID, etc.</t>
        </dd>
        <dt>ROQ_STREAM_CREATION_ERROR (0x????):</dt>
        <dd>
          <t>The endpoint detected that its peer created a stream that violates the ROQ protocol.</t>
        </dd>
        <dt>ROQ_FRAME_CANCELLED (0x????):</dt>
        <dd>
          <t>A receiving endpoint is using STOP_SENDING on the current stream to request
new frames be sent on new streams. Similarly, a sender notifies a receiver that
retransmissions of a frame were stopped using RESET_STREAM and new frames will
be sent on new streams.</t>
        </dd>
        <dt>ROQ_UNKNOWN_FLOW_ID (0x????):</dt>
        <dd>
          <t>An endpoint was unable to handle a flow identifier, e.g., because it was not
signalled or because the endpoint does not support multiplexing using arbitrary
flow identifiers.</t>
        </dd>
        <dt>ROQ_EXPECTATION_UNMET (0x????):</dt>
        <dd>
          <t>Expectiations of the QUIC transport set by RoQ out-of-band signalling were not
met by the QUIC connection.</t>
        </dd>
      </dl>
    </section>
    <section anchor="api-considerations">
      <name>API Considerations</name>
      <t>The mapping described in the previous sections poses some interface requirements
on the QUIC implementation. Although a basic mapping should work without any of
these requirements most of the optimizations regarding rate adaptation and
RTCP mapping require certain functionalities to be exposed to the application.
The following to sections contain a list of information that is required by an
application to implement different optimizations (<xref target="quic-api-read"/>) and
functions that a QUIC implementation SHOULD expose to an application
(<xref target="quic-api-write"/>).</t>
      <t>Each item in the following list can be considered individually. Any exposed
information or function can be used by RoQ regardless of whether the
other items are available. Thus, RoQ does not depend on the
availability of all of the listed features but can apply different optimizations
depending on the functionality exposed by the QUIC implementation.</t>
      <section anchor="quic-api-read">
        <name>Information to be exported from QUIC</name>
        <t>This section provides a list of items that an application might want to export
from an underlying QUIC implementation. It is thus RECOMMENDED that a QUIC
implementation exports the listed items to the application.</t>
        <ul spacing="normal">
          <li>
            <em>Maximum Datagram Size</em>: The maximum datagram size that the QUIC connection
can transmit.</li>
          <li>
            <em>Datagram Acknowledgment and Loss</em>: <xref section="5.2" sectionFormat="of" target="RFC9221"/> allows QUIC
implementations to notify the application that a QUIC Datagram was
acknowledged or that it believes a datagram was lost. The exposed information
SHOULD include enough information to allow the application to maintain a
mapping between the datagram that was acknowledged/lost and the RTP packet
that was sent in that datagram.</li>
          <li>
            <em>Stream States</em>: The QUIC implementation SHOULD expose to a sender, how much
of the data that was sent on a stream was successfully delivered and how much
data is still outstanding to be sent or retransmitted.</li>
          <li>
            <em>Arrival timestamps</em>: If the QUIC connection uses a timestamp extension like
<xref target="I-D.draft-smith-quic-receive-ts"/> or <xref target="I-D.draft-huitema-quic-ts"/>, the
arrival timestamps or one-way delays SHOULD be exposed to the application.</li>
          <li>
            <em>Bandwidth Estimation</em>: If congestion control is done at the transport layer
in the QUIC implementation, the QUIC implementation SHOULD expose an
estimation of the currently available bandwidth to the application. Exposing
the bandwidth estimation avoids the implementation of an additional bandwidth
estimation algorithm in the application.</li>
          <li>
            <em>ECN</em>: If ECN marks are available, they SHOULD be exposed to the application.</li>
        </ul>
      </section>
      <section anchor="quic-api-write">
        <name>Functions to be exposed by QUIC</name>
        <t>This sections lists functions that a QUIC implementation SHOULD expose to an
application to implement different features of the mapping described in the
previous sections of this document.</t>
        <ul spacing="normal">
          <li>
            <em>Cancel Streams</em>: To allow an application to cancel (re)transmission of
packets that are no longer needed, the QUIC implementation MUST expose a way
to cancel the corresponding QUIC streams.</li>
          <li>
            <em>Configure Congestion Controller</em>: If congestion control is to be implemented
at the QUIC connection layer as described in <xref target="cc-quic-layer"/>, the QUIC
implementation SHOULD expose an API to allow the application to configure the
specifics of the congestion controller.</li>
        </ul>
      </section>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <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 RoQ 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="sec-considerations">
      <name>Security Considerations</name>
      <t>RoQ 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 RoQ.</t>
      <t>Note that RoQ provides mandatory security, and other RTP transports do
not. In order to prevent the inadvertent disclosure of RTP sessions to
unintended third parties, RTP topologies described in <xref target="topologies"/> that
include middleboxes supporting both RoQ and non-RoQ paths
MUST forward RTP packets on non-RoQ paths using a secure AVP profile
(<xref target="RFC3711"/>, <xref target="RFC4585"/>, or another AVP profile providing equivalent
RTP-level security), whether or not RoQ senders are using a secure AVP
profile for those RTP packets.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="registration-of-a-roq-identification-string">
        <name>Registration of a RoQ Identification String</name>
        <t>This document creates a new registration for the identification of RoQ
in the "TLS Application-Layer Protocol Negotiation (ALPN) Protocol IDs" registry
<xref target="RFC7301"/>.</t>
        <t>The "rtp-mux-quic" string identifies RoQ:</t>
        <dl>
          <dt>Protocol:</dt>
          <dd>
            <t>RTP over QUIC (RoQ)</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 anchor="roq-error-codes">
        <name>RoQ Error Codes</name>
        <t>This document establishes a registry for RoQ error codes.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ROQ_NO_ERROR</td>
              <td align="left">0x????</td>
              <td align="left">No Error</td>
              <td align="left">TODO: This doc</td>
            </tr>
            <tr>
              <td align="left">ROQ_GENERAL_ERROR</td>
              <td align="left">0x????</td>
              <td align="left">General error</td>
              <td align="left">TODO: This doc</td>
            </tr>
            <tr>
              <td align="left">ROQ_INTERNAL_ERROR</td>
              <td align="left">0x????</td>
              <td align="left">Internal Error</td>
              <td align="left">TODO: This doc</td>
            </tr>
            <tr>
              <td align="left">ROQ_PACKET_ERROR</td>
              <td align="left">0x????</td>
              <td align="left">Invalid payload format</td>
              <td align="left">TODO: This doc</td>
            </tr>
            <tr>
              <td align="left">ROQ_STREAM_CREATION_ERROR</td>
              <td align="left">0x????</td>
              <td align="left">Invalid stream type</td>
              <td align="left">TODO: This doc</td>
            </tr>
            <tr>
              <td align="left">ROQ_FRAME_CANCELLED</td>
              <td align="left">0x????</td>
              <td align="left">Frame cancelled</td>
              <td align="left">TODO: This doc</td>
            </tr>
            <tr>
              <td align="left">ROQ_UNKNOWN_FLOW_ID</td>
              <td align="left">0x????</td>
              <td align="left">Unknown Flow ID</td>
              <td align="left">TODO: This doc</td>
            </tr>
            <tr>
              <td align="left">ROQ_EXPECTATION_UNMET</td>
              <td align="left">0x????</td>
              <td align="left">Externally signalled requirement unmet</td>
              <td align="left">TODO: This doc</td>
            </tr>
          </tbody>
        </table>
      </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"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <author fullname="R. Frederick" initials="R." surname="Frederick"/>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson"/>
            <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"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. QUIC provides applications with flow-controlled streams for structured communication, low-latency connection establishment, and network path migration. QUIC includes security measures that ensure confidentiality, integrity, and availability in a range of deployment circumstances. Accompanying documents describe the integration of TLS for key negotiation, loss detection, and an exemplary congestion control algorithm.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9000"/>
          <seriesInfo name="DOI" value="10.17487/RFC9000"/>
        </reference>
        <reference anchor="RFC8999">
          <front>
            <title>Version-Independent Properties of QUIC</title>
            <author fullname="M. Thomson" initials="M." surname="Thomson"/>
            <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"/>
            <author fullname="S. Turner" initials="S." role="editor" surname="Turner"/>
            <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"/>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett"/>
            <date month="May" year="2021"/>
            <abstract>
              <t>This document describes loss detection and congestion control mechanisms for QUIC.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9002"/>
          <seriesInfo name="DOI" value="10.17487/RFC9002"/>
        </reference>
        <reference anchor="RFC9221">
          <front>
            <title>An Unreliable Datagram Extension to QUIC</title>
            <author fullname="T. Pauly" initials="T." surname="Pauly"/>
            <author fullname="E. Kinnear" initials="E." surname="Kinnear"/>
            <author fullname="D. Schinazi" initials="D." surname="Schinazi"/>
            <date month="March" year="2022"/>
            <abstract>
              <t>This document defines an extension to the QUIC transport protocol to add support for sending and receiving unreliable datagrams over a QUIC connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9221"/>
          <seriesInfo name="DOI" value="10.17487/RFC9221"/>
        </reference>
        <reference anchor="RFC7667">
          <front>
            <title>RTP Topologies</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <date month="November" year="2015"/>
            <abstract>
              <t>This document discusses point-to-point and multi-endpoint topologies used in environments based on the Real-time Transport Protocol (RTP). In particular, centralized topologies commonly employed in the video conferencing industry are mapped to the RTP terminology.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7667"/>
          <seriesInfo name="DOI" value="10.17487/RFC7667"/>
        </reference>
        <reference anchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="S. Casner" initials="S." surname="Casner"/>
            <date month="July" year="2003"/>
            <abstract>
              <t>This document describes a profile called "RTP/AVP" for the use of the real-time transport protocol (RTP), version 2, and the associated control protocol, RTCP, within audio and video multiparticipant conferences with minimal control. It provides interpretations of generic fields within the RTP specification suitable for audio and video conferences. In particular, this document defines a set of default mappings from payload type numbers to encodings. This document also describes how audio and video data may be carried within RTP. It defines a set of standard encodings and their names when used within RTP. The descriptions provide pointers to reference implementations and the detailed standards. This document is meant as an aid for implementors of audio, video and other real-time multimedia applications. This memorandum obsoletes RFC 1890. It is mostly backwards-compatible except for functions removed because two interoperable implementations were not found. The additions to RFC 1890 codify existing practice in the use of payload formats under this profile and include new payload formats defined since RFC 1890 was published. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="65"/>
          <seriesInfo name="RFC" value="3551"/>
          <seriesInfo name="DOI" value="10.17487/RFC3551"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <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"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8698">
          <front>
            <title>Network-Assisted Dynamic Adaptation (NADA): A Unified Congestion Control Scheme for Real-Time Media</title>
            <author fullname="X. Zhu" initials="X." surname="Zhu"/>
            <author fullname="R. Pan" initials="R." surname="Pan"/>
            <author fullname="M. Ramalho" initials="M." surname="Ramalho"/>
            <author fullname="S. Mena" initials="S." surname="Mena"/>
            <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"/>
            <author fullname="Z. Sarker" initials="Z." surname="Sarker"/>
            <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"/>
            <author fullname="A. Popov" initials="A." surname="Popov"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Stephan" initials="E." surname="Stephan"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7301"/>
          <seriesInfo name="DOI" value="10.17487/RFC7301"/>
        </reference>
        <reference anchor="RFC4588">
          <front>
            <title>RTP Retransmission Payload Format</title>
            <author fullname="J. Rey" initials="J." surname="Rey"/>
            <author fullname="D. Leon" initials="D." surname="Leon"/>
            <author fullname="A. Miyazaki" initials="A." surname="Miyazaki"/>
            <author fullname="V. Varsa" initials="V." surname="Varsa"/>
            <author fullname="R. Hakenberg" initials="R." surname="Hakenberg"/>
            <date month="July" year="2006"/>
            <abstract>
              <t>RTP retransmission is an effective packet loss recovery technique for real-time applications with relaxed delay bounds. This document describes an RTP payload format for performing retransmissions. Retransmitted RTP packets are sent in a separate stream from the original RTP stream. It is assumed that feedback from receivers to senders is available. In particular, it is assumed that Real-time Transport Control Protocol (RTCP) feedback as defined in the extended RTP profile for RTCP-based feedback (denoted RTP/AVPF) is available in this memo. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4588"/>
          <seriesInfo name="DOI" value="10.17487/RFC4588"/>
        </reference>
        <reference anchor="RFC8836">
          <front>
            <title>Congestion Control Requirements for Interactive Real-Time Media</title>
            <author fullname="R. Jesup" initials="R." surname="Jesup"/>
            <author fullname="Z. Sarker" initials="Z." role="editor" surname="Sarker"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>Congestion control is needed for all data transported across the Internet, in order to promote fair usage and prevent congestion collapse. The requirements for interactive, point-to-point real-time multimedia, which needs low-delay, semi-reliable data delivery, are different from the requirements for bulk transfer like FTP or bursty transfers like web pages. Due to an increasing amount of RTP-based real-time media traffic on the Internet (e.g., with the introduction of the Web Real-Time Communication (WebRTC)), it is especially important to ensure that this kind of traffic is congestion controlled.</t>
              <t>This document describes a set of requirements that can be used to evaluate other congestion control mechanisms in order to figure out their fitness for this purpose, and in particular to provide a set of possible requirements for a real-time media congestion avoidance technique.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8836"/>
          <seriesInfo name="DOI" value="10.17487/RFC8836"/>
        </reference>
        <reference anchor="I-D.draft-smith-quic-receive-ts">
          <front>
            <title>QUIC Extension for Reporting Packet Receive Timestamps</title>
            <author fullname="Connor Smith" initials="C." surname="Smith">
              <organization>Magic Leap, Inc.</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google LLC</organization>
            </author>
            <date day="25" month="October" year="2021"/>
            <abstract>
              <t>   This document defines an extension to the QUIC transport protocol
   which supports reporting multiple packet receive timestamps using a
   new ACK_RECEIVE_TIMESTAMPS frame type.

Discussion Venues

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

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-huitema-quic-ts-08"/>
        </reference>
        <reference anchor="RFC8888">
          <front>
            <title>RTP Control Protocol (RTCP) Feedback for Congestion Control</title>
            <author fullname="Z. Sarker" initials="Z." surname="Sarker"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="V. Singh" initials="V." surname="Singh"/>
            <author fullname="M. Ramalho" initials="M." surname="Ramalho"/>
            <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="RFC768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </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"/>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson"/>
            <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="I-D.draft-ietf-quic-ack-frequency">
          <front>
            <title>QUIC Acknowledgement Frequency</title>
            <author fullname="Jana Iyengar" initials="J." surname="Iyengar">
              <organization>Fastly</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <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-05"/>
        </reference>
        <reference anchor="RFC3611">
          <front>
            <title>RTP Control Protocol Extended Reports (RTCP XR)</title>
            <author fullname="T. Friedman" initials="T." role="editor" surname="Friedman"/>
            <author fullname="R. Caceres" initials="R." role="editor" surname="Caceres"/>
            <author fullname="A. Clark" initials="A." role="editor" surname="Clark"/>
            <date month="November" year="2003"/>
            <abstract>
              <t>This document defines the Extended Report (XR) packet type for the RTP Control Protocol (RTCP), and defines how the use of XR packets can be signaled by an application if it employs the Session Description Protocol (SDP). XR packets are composed of report blocks, and seven block types are defined here. The purpose of the extended reporting format is to convey information that supplements the six statistics that are contained in the report blocks used by RTCP's Sender Report (SR) and Receiver Report (RR) packets. Some applications, such as multicast inference of network characteristics (MINC) or voice over IP (VoIP) monitoring, require other and more detailed statistics. In addition to the block types defined here, additional block types may be defined in the future by adhering to the framework that this document provides.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3611"/>
          <seriesInfo name="DOI" value="10.17487/RFC3611"/>
        </reference>
        <reference anchor="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"/>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <author fullname="N. Sato" initials="N." surname="Sato"/>
            <author fullname="C. Burmeister" initials="C." surname="Burmeister"/>
            <author fullname="J. Rey" initials="J." surname="Rey"/>
            <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"/>
            <author fullname="I. Johansson" initials="I." surname="Johansson"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="P. O'Hanlon" initials="P." surname="O'Hanlon"/>
            <author fullname="K. Carlberg" initials="K." surname="Carlberg"/>
            <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="_3GPP-TS-26.114" target="(https://portal.3gpp.org/desktopmodules/Specifications/specificationId=1404)">
          <front>
            <title>IP Multimedia Subsystem (IMS); Multimedia telephony; Media handling and interaction</title>
            <author>
              <organization/>
            </author>
            <date year="2023" month="January" day="05"/>
          </front>
        </reference>
        <reference anchor="RFC9308">
          <front>
            <title>Applicability of the QUIC Transport Protocol</title>
            <author fullname="M. Kühlewind" initials="M." surname="Kühlewind"/>
            <author fullname="B. Trammell" initials="B." surname="Trammell"/>
            <date month="September" year="2022"/>
            <abstract>
              <t>This document discusses the applicability of the QUIC transport protocol, focusing on caveats impacting application protocol development and deployment over QUIC. Its intended audience is designers of application protocol mappings to QUIC and implementors of these application protocols.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9308"/>
          <seriesInfo name="DOI" value="10.17487/RFC9308"/>
        </reference>
        <reference anchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="M. Baugher" initials="M." surname="Baugher"/>
            <author fullname="D. McGrew" initials="D." surname="McGrew"/>
            <author fullname="M. Naslund" initials="M." surname="Naslund"/>
            <author fullname="E. Carrara" initials="E." surname="Carrara"/>
            <author fullname="K. Norrman" initials="K." surname="Norrman"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3711"/>
          <seriesInfo name="DOI" value="10.17487/RFC3711"/>
        </reference>
        <reference anchor="RFC9335">
          <front>
            <title>Completely Encrypting RTP Header Extensions and Contributing Sources</title>
            <author fullname="J. Uberti" initials="J." surname="Uberti"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <author fullname="S. Murillo" initials="S." surname="Murillo"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>While the Secure Real-time Transport Protocol (SRTP) provides confidentiality for the contents of a media packet, a significant amount of metadata is left unprotected, including RTP header extensions and contributing sources (CSRCs). However, this data can be moderately sensitive in many applications. While there have been previous attempts to protect this data, they have had limited deployment, due to complexity as well as technical limitations.</t>
              <t>This document updates RFC 3711, the SRTP specification, and defines Cryptex as a new mechanism that completely encrypts header extensions and CSRCs and uses simpler Session Description Protocol (SDP) signaling with the goal of facilitating deployment.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9335"/>
          <seriesInfo name="DOI" value="10.17487/RFC9335"/>
        </reference>
        <reference anchor="RFC8083">
          <front>
            <title>Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="V. Singh" initials="V." surname="Singh"/>
            <date month="March" year="2017"/>
            <abstract>
              <t>The Real-time Transport Protocol (RTP) is widely used in telephony, video conferencing, and telepresence applications. Such applications are often run on best-effort UDP/IP networks. If congestion control is not implemented in these applications, then network congestion can lead to uncontrolled packet loss and a resulting deterioration of the user's multimedia experience. The congestion control algorithm acts as a safety measure by stopping RTP flows from using excessive resources and protecting the network from overload. At the time of this writing, however, while there are several proprietary solutions, there is no standard algorithm for congestion control of interactive RTP flows.</t>
              <t>This document does not propose a congestion control algorithm. It instead defines a minimal set of RTP circuit breakers: conditions under which an RTP sender needs to stop transmitting media data to protect the network from excessive congestion. It is expected that, in the absence of long-lived excessive congestion, RTP applications running on best-effort IP networks will be able to operate without triggering these circuit breakers. To avoid triggering the RTP circuit breaker, any Standards Track congestion control algorithms defined for RTP will need to operate within the envelope set by these RTP circuit breaker algorithms.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8083"/>
          <seriesInfo name="DOI" value="10.17487/RFC8083"/>
        </reference>
        <reference anchor="RFC8899">
          <front>
            <title>Packetization Layer Path MTU Discovery for Datagram Transports</title>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="T. Jones" initials="T." surname="Jones"/>
            <author fullname="M. Tüxen" initials="M." surname="Tüxen"/>
            <author fullname="I. Rüngeler" initials="I." surname="Rüngeler"/>
            <author fullname="T. Völker" initials="T." surname="Völker"/>
            <date month="September" year="2020"/>
            <abstract>
              <t>This document specifies Datagram Packetization Layer Path MTU Discovery (DPLPMTUD). This is a robust method for Path MTU Discovery (PMTUD) for datagram Packetization Layers (PLs). It allows a PL, or a datagram application that uses a PL, to discover whether a network path can support the current size of datagram. This can be used to detect and reduce the message size when a sender encounters a packet black hole. It can also probe a network path to discover whether the maximum packet size can be increased. This provides functionality for datagram transports that is equivalent to the PLPMTUD specification for TCP, specified in RFC 4821, which it updates. It also updates the UDP Usage Guidelines to refer to this method for use with UDP datagrams and updates SCTP.</t>
              <t>The document provides implementation notes for incorporating Datagram PMTUD into IETF datagram transports or applications that use datagram transports.</t>
              <t>This specification updates RFC 4960, RFC 4821, RFC 6951, RFC 8085, and RFC 8261.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8899"/>
          <seriesInfo name="DOI" value="10.17487/RFC8899"/>
        </reference>
        <reference anchor="RFC1191">
          <front>
            <title>Path MTU discovery</title>
            <author fullname="J. Mogul" initials="J." surname="Mogul"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <date month="November" year="1990"/>
            <abstract>
              <t>This memo describes a technique for dynamically discovering the maximum transmission unit (MTU) of an arbitrary internet path. It specifies a small change to the way routers generate one type of ICMP message. For a path that passes through a router that has not been so changed, this technique might not discover the correct Path MTU, but it will always choose a Path MTU as accurate as, and in many cases more accurate than, the Path MTU that would be chosen by current practice. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1191"/>
          <seriesInfo name="DOI" value="10.17487/RFC1191"/>
        </reference>
        <reference anchor="RFC8201">
          <front>
            <title>Path MTU Discovery for IP version 6</title>
            <author fullname="J. McCann" initials="J." surname="McCann"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="J. Mogul" initials="J." surname="Mogul"/>
            <author fullname="R. Hinden" initials="R." role="editor" surname="Hinden"/>
            <date month="July" year="2017"/>
            <abstract>
              <t>This document describes Path MTU Discovery (PMTUD) for IP version 6. It is largely derived from RFC 1191, which describes Path MTU Discovery for IP version 4. It obsoletes RFC 1981.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="87"/>
          <seriesInfo name="RFC" value="8201"/>
          <seriesInfo name="DOI" value="10.17487/RFC8201"/>
        </reference>
        <reference anchor="I-D.draft-ietf-quic-multipath">
          <front>
            <title>Multipath Extension for QUIC</title>
            <author fullname="Yanmei Liu" initials="Y." surname="Liu">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Yunfei Ma" initials="Y." surname="Ma">
              <organization>Alibaba Inc.</organization>
            </author>
            <author fullname="Quentin De Coninck" initials="Q." surname="De Coninck">
              <organization>UCLouvain</organization>
            </author>
            <author fullname="Olivier Bonaventure" initials="O." surname="Bonaventure">
              <organization>UCLouvain and Tessares</organization>
            </author>
            <author fullname="Christian Huitema" initials="C." surname="Huitema">
              <organization>Private Octopus Inc.</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="10" month="July" year="2023"/>
            <abstract>
              <t>   This document specifies a multipath extension for the QUIC protocol
   to enable the simultaneous usage of multiple paths for a single
   connection.

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/mirjak/draft-lmbdhk-quic-multipath.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-05"/>
        </reference>
        <reference anchor="RFC7826">
          <front>
            <title>Real-Time Streaming Protocol Version 2.0</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne"/>
            <author fullname="A. Rao" initials="A." surname="Rao"/>
            <author fullname="R. Lanphier" initials="R." surname="Lanphier"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="M. Stiemerling" initials="M." role="editor" surname="Stiemerling"/>
            <date month="December" year="2016"/>
            <abstract>
              <t>This memorandum defines the Real-Time Streaming Protocol (RTSP) version 2.0, which obsoletes RTSP version 1.0 defined in RFC 2326.</t>
              <t>RTSP is an application-layer protocol for the setup and control of the delivery of data with real-time properties. RTSP provides an extensible framework to enable controlled, on-demand delivery of real-time data, such as audio and video. Sources of data can include both live data feeds and stored clips. This protocol is intended to control multiple data delivery sessions; provide a means for choosing delivery channels such as UDP, multicast UDP, and TCP; and provide a means for choosing delivery mechanisms based upon RTP (RFC 3550).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7826"/>
          <seriesInfo name="DOI" value="10.17487/RFC7826"/>
        </reference>
        <reference anchor="I-D.draft-dawkins-avtcore-sdp-rtp-quic">
          <front>
            <title>SDP Offer/Answer for RTP using QUIC as Transport</title>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="28" month="January" year="2022"/>
            <abstract>
              <t>   This document describes these new SDP "proto" attribute values:
   "QUIC", "QUIC/RTP/SAVP", "QUIC/RTP/AVPF", and "QUIC/RTP/SAVPF", and
   describes how SDP Offer/Answer can be used to set up an RTP
   connection using QUIC as a transport protocol.

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wish-whip-09"/>
        </reference>
        <reference anchor="RFC3168">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author fullname="K. Ramakrishnan" initials="K." surname="Ramakrishnan"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="D. Black" initials="D." surname="Black"/>
            <date month="September" year="2001"/>
            <abstract>
              <t>This memo specifies the incorporation of ECN (Explicit Congestion Notification) to TCP and IP, including ECN's use of two bits in the IP header. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3168"/>
          <seriesInfo name="DOI" value="10.17487/RFC3168"/>
        </reference>
        <reference anchor="I-D.draft-ietf-masque-h3-datagram">
          <front>
            <title>HTTP Datagrams and the Capsule Protocol</title>
            <author fullname="David Schinazi" initials="D." surname="Schinazi">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Lucas Pardue" initials="L." surname="Pardue">
              <organization>Cloudflare</organization>
            </author>
            <date day="17" month="June" year="2022"/>
            <abstract>
              <t>This document describes HTTP Datagrams, a convention for conveying multiplexed, potentially unreliable datagrams inside an HTTP connection.

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

 HTTP Datagrams and the Capsule Protocol are intended for use by HTTP extensions, not applications.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-masque-h3-datagram-11"/>
        </reference>
        <reference anchor="RFC9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="RFC8860">
          <front>
            <title>Sending Multiple Types of Media in a Single RTP Session</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document specifies how an RTP session can contain RTP streams with media from multiple media types such as audio, video, and text. This has been restricted by the RTP specifications (RFCs 3550 and 3551), and thus this document updates RFCs 3550 and 3551 to enable this behaviour for applications that satisfy the applicability for using multiple media types in a single RTP session.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8860"/>
          <seriesInfo name="DOI" value="10.17487/RFC8860"/>
        </reference>
        <reference anchor="RFC5761">
          <front>
            <title>Multiplexing RTP Data and Control Packets on a Single Port</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <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-ietf-quic-reliable-stream-reset-01">
          <front>
            <title>Reliable QUIC Stream Resets</title>
            <author fullname="Marten Seemann" initials="M." surname="Seemann">
              <organization>Protocol Labs</organization>
            </author>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <date day="3" month="July" year="2023"/>
            <abstract>
              <t>   QUIC ([RFC9000]) defines a RESET_STREAM frame to reset a stream.
   When a sender resets a stream, it stops retransmitting STREAM frames
   for this stream.  On the receiver side, there is no guarantee that
   any of the data sent on that stream is delivered to the application.
   This document defines a new QUIC frame, the CLOSE_STREAM frame, that
   allows closing and resetting of a stream, while guaranteeing reliable
   delivery of stream data up to a certain byte offset.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-reliable-stream-reset-01"/>
        </reference>
        <reference anchor="I-D.draft-thomson-quic-enough-00">
          <front>
            <title>Signaling That a QUIC Receiver Has Enough Stream Data</title>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <date day="30" month="March" year="2023"/>
            <abstract>
              <t>   Sending on QUIC streams can only be aborted early by the sender with
   a RESET_STREAM frame.  This document describes how a receiver can
   indicate when the data they have received is enough, allowing the
   sender to reliably deliver some data, but abort sending for anything
   more than the indicated amount.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-thomson-quic-enough-00"/>
        </reference>
        <reference anchor="I-D.draft-ietf-rmcat-gcc">
          <front>
            <title>A Google Congestion Control Algorithm for Real-Time Communication</title>
            <author fullname="Stefan Holmer" initials="S." surname="Holmer">
              <organization>Google</organization>
            </author>
            <author fullname="Henrik Lundin" initials="H." surname="Lundin">
              <organization>Google</organization>
            </author>
            <author fullname="Gaetano Carlucci" initials="G." surname="Carlucci">
              <organization>Politecnico di Bari</organization>
            </author>
            <author fullname="Luca De Cicco" initials="L." surname="De Cicco">
              <organization>Politecnico di Bari</organization>
            </author>
            <author fullname="Saverio Mascolo" initials="S." surname="Mascolo">
              <organization>Politecnico di Bari</organization>
            </author>
            <date day="8" month="July" year="2016"/>
            <abstract>
              <t>   This document describes two methods of congestion control when using
   real-time communications on the World Wide Web (RTCWEB); one delay-
   based and one loss-based.

   It is published as an input document to the RMCAT working group on
   congestion control for media streams.  The mailing list of that
   working group is rmcat@ietf.org.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rmcat-gcc-02"/>
        </reference>
        <reference anchor="RFC6582">
          <front>
            <title>The NewReno Modification to TCP's Fast Recovery Algorithm</title>
            <author fullname="T. Henderson" initials="T." surname="Henderson"/>
            <author fullname="S. Floyd" initials="S." surname="Floyd"/>
            <author fullname="A. Gurtov" initials="A." surname="Gurtov"/>
            <author fullname="Y. Nishida" initials="Y." surname="Nishida"/>
            <date month="April" year="2012"/>
            <abstract>
              <t>RFC 5681 documents the following four intertwined TCP congestion control algorithms: slow start, congestion avoidance, fast retransmit, and fast recovery. RFC 5681 explicitly allows certain modifications of these algorithms, including modifications that use the TCP Selective Acknowledgment (SACK) option (RFC 2883), and modifications that respond to "partial acknowledgments" (ACKs that cover new data, but not all the data outstanding when loss was detected) in the absence of SACK. This document describes a specific algorithm for responding to partial acknowledgments, referred to as "NewReno". This response to partial acknowledgments was first proposed by Janey Hoe. This document obsoletes RFC 3782. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6582"/>
          <seriesInfo name="DOI" value="10.17487/RFC6582"/>
        </reference>
        <reference anchor="RFC8085">
          <front>
            <title>UDP Usage Guidelines</title>
            <author fullname="L. Eggert" initials="L." surname="Eggert"/>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst"/>
            <author fullname="G. Shepherd" initials="G." surname="Shepherd"/>
            <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 T. Alvestrand" initials="H. T." surname="Alvestrand">
              <organization>Google</organization>
            </author>
            <date day="21" month="October" year="2013"/>
            <abstract>
              <t>   This document proposes an RTCP message for use in experimentally-
   deployed congestion control algorithms for RTP-based media flows.

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


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-alvestrand-rmcat-remb-03"/>
        </reference>
        <reference anchor="I-D.cardwell-iccrg-bbr-congestion-control">
          <front>
            <title>BBR Congestion Control</title>
            <author fullname="Neal Cardwell" initials="N." surname="Cardwell">
              <organization>Google</organization>
            </author>
            <author fullname="Yuchung Cheng" initials="Y." surname="Cheng">
              <organization>Google</organization>
            </author>
            <author fullname="Soheil Hassas Yeganeh" initials="S. H." surname="Yeganeh">
              <organization>Google</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google</organization>
            </author>
            <author fullname="Van Jacobson" initials="V." surname="Jacobson">
              <organization>Google</organization>
            </author>
            <date day="7" month="March" year="2022"/>
            <abstract>
              <t>   This document specifies the BBR congestion control algorithm.  BBR
   ("Bottleneck Bandwidth and Round-trip propagation time") uses recent
   measurements of a transport connection's delivery rate, round-trip
   time, and packet loss rate to build an explicit model of the network
   path.  BBR then uses this model to control both how fast it sends
   data and the maximum volume of data it allows in flight in the
   network at any time.  Relative to loss-based congestion control
   algorithms such as Reno [RFC5681] or CUBIC [RFC8312], BBR offers
   substantially higher throughput for bottlenecks with shallow buffers
   or random losses, and substantially lower queueing delays for
   bottlenecks with deep buffers (avoiding "bufferbloat").  BBR can be
   implemented in any transport protocol that supports packet-delivery
   acknowledgment.  Thus far, open source implementations are available
   for TCP [RFC793] and QUIC [RFC9000].  This document specifies version
   2 of the BBR algorithm, also sometimes referred to as BBRv2 or bbr2.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cardwell-iccrg-bbr-congestion-control-02"/>
        </reference>
        <reference anchor="I-D.draft-thomson-quic-enough">
          <front>
            <title>Signaling That a QUIC Receiver Has Enough Stream Data</title>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <date day="30" month="March" year="2023"/>
            <abstract>
              <t>   Sending on QUIC streams can only be aborted early by the sender with
   a RESET_STREAM frame.  This document describes how a receiver can
   indicate when the data they have received is enough, allowing the
   sender to reliably deliver some data, but abort sending for anything
   more than the indicated amount.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-thomson-quic-enough-00"/>
        </reference>
        <reference anchor="I-D.draft-ietf-quic-reliable-stream-reset">
          <front>
            <title>Reliable QUIC Stream Resets</title>
            <author fullname="Marten Seemann" initials="M." surname="Seemann">
              <organization>Protocol Labs</organization>
            </author>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <date day="15" month="September" year="2023"/>
            <abstract>
              <t>   QUIC (RFC9000) defines a RESET_STREAM frame to reset a stream.  When
   a sender resets a stream, it stops retransmitting STREAM frames for
   this stream.  On the receiver side, there is no guarantee that any of
   the data sent on that stream is delivered to the application.  This
   document defines a new QUIC frame, the CLOSE_STREAM frame, that
   allows resetting of a stream, while guaranteeing reliable delivery of
   stream data up to a certain byte offset.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-reliable-stream-reset-02"/>
        </reference>
        <reference anchor="RFC5484">
          <front>
            <title>Associating Time-Codes with RTP Streams</title>
            <author fullname="D. Singer" initials="D." surname="Singer"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document describes a mechanism for associating \%time-codes, as defined by the Society of Motion Picture and Television Engineers (SMPTE), with media streams in a way that is independent of the RTP payload format of the media stream itself. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5484"/>
          <seriesInfo name="DOI" value="10.17487/RFC5484"/>
        </reference>
        <reference anchor="RFC5450">
          <front>
            <title>Transmission Time Offsets in RTP Streams</title>
            <author fullname="D. Singer" initials="D." surname="Singer"/>
            <author fullname="H. Desineni" initials="H." surname="Desineni"/>
            <date month="March" year="2009"/>
            <abstract>
              <t>This document describes a method to inform Real-time Transport Protocol (RTP) clients when RTP packets are transmitted at a time other than their 'nominal' transmission time. It also provides a mechanism to provide improved inter-arrival jitter reports from the clients, that take into account the reported transmission times. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5450"/>
          <seriesInfo name="DOI" value="10.17487/RFC5450"/>
        </reference>
        <reference anchor="RFC5760">
          <front>
            <title>RTP Control Protocol (RTCP) Extensions for Single-Source Multicast Sessions with Unicast Feedback</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="J. Chesterfield" initials="J." surname="Chesterfield"/>
            <author fullname="E. Schooler" initials="E." surname="Schooler"/>
            <date month="February" year="2010"/>
            <abstract>
              <t>This document specifies an extension to the Real-time Transport Control Protocol (RTCP) to use unicast feedback to a multicast sender. The proposed extension is useful for single-source multicast sessions such as Source-Specific Multicast (SSM) communication where the traditional model of many-to-many group communication is either not available or not desired. In addition, it can be applied to any group that might benefit from a sender-controlled summarized reporting mechanism. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5760"/>
          <seriesInfo name="DOI" value="10.17487/RFC5760"/>
        </reference>
        <reference anchor="RFC6284">
          <front>
            <title>Port Mapping between Unicast and Multicast RTP Sessions</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="D. Wing" initials="D." surname="Wing"/>
            <author fullname="T. Van Caenegem" initials="T." surname="Van Caenegem"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document presents a port mapping solution that allows RTP receivers to choose their own ports for an auxiliary unicast session in RTP applications using both unicast and multicast services. The solution provides protection against denial-of-service or packet amplification attacks that could be used to cause one or more RTP packets to be sent to a victim client. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6284"/>
          <seriesInfo name="DOI" value="10.17487/RFC6284"/>
        </reference>
        <reference anchor="RFC7272">
          <front>
            <title>Inter-Destination Media Synchronization (IDMS) Using the RTP Control Protocol (RTCP)</title>
            <author fullname="R. van Brandenburg" initials="R." surname="van Brandenburg"/>
            <author fullname="H. Stokking" initials="H." surname="Stokking"/>
            <author fullname="O. van Deventer" initials="O." surname="van Deventer"/>
            <author fullname="F. Boronat" initials="F." surname="Boronat"/>
            <author fullname="M. Montagud" initials="M." surname="Montagud"/>
            <author fullname="K. Gross" initials="K." surname="Gross"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>This document defines a new RTP Control Protocol (RTCP) Packet Type and an RTCP Extended Report (XR) Block Type to be used for achieving Inter-Destination Media Synchronization (IDMS). IDMS is the process of synchronizing playout across multiple media receivers. Using the RTCP XR IDMS Report Block defined in this document, media playout information from participants in a synchronization group can be collected. Based on the collected information, an RTCP IDMS Settings Packet can then be sent to distribute a common target playout point to which all the distributed receivers, sharing a media experience, can synchronize.</t>
              <t>Typical use cases in which IDMS is useful are social TV, shared service control (i.e., applications where two or more geographically separated users are watching a media stream together), distance learning, networked video walls, networked loudspeakers, etc.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7272"/>
          <seriesInfo name="DOI" value="10.17487/RFC7272"/>
        </reference>
        <reference anchor="RFC8861">
          <front>
            <title>Sending Multiple RTP Streams in a Single RTP Session: Grouping RTP Control Protocol (RTCP) Reception Statistics and Other Feedback</title>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>RTP allows multiple RTP streams to be sent in a single session but requires each Synchronization Source (SSRC) to send RTP Control Protocol (RTCP) reception quality reports for every other SSRC visible in the session. This causes the number of RTCP reception reports to grow with the number of SSRCs, rather than the number of endpoints. In many cases, most of these RTCP reception reports are unnecessary, since all SSRCs of an endpoint are normally co-located and see the same reception quality. This memo defines a Reporting Group extension to RTCP to reduce the reporting overhead in such scenarios.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8861"/>
          <seriesInfo name="DOI" value="10.17487/RFC8861"/>
        </reference>
        <reference anchor="RFC8286">
          <front>
            <title>RTP/RTCP Extension for RTP Splicing Notification</title>
            <author fullname="J. Xia" initials="J." surname="Xia"/>
            <author fullname="R. Even" initials="R." surname="Even"/>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <author fullname="L. Deng" initials="L." surname="Deng"/>
            <date month="October" year="2017"/>
            <abstract>
              <t>Content splicing is a process that replaces the content of a main multimedia stream with other multimedia content and that delivers the substitutive multimedia content to the receivers for a period of time. The splicer is designed to handle RTP splicing and needs to know when to start and end the splicing.</t>
              <t>This memo defines two RTP/RTCP extensions to indicate the splicing-related information to the splicer: an RTP header extension that conveys the information "in band" and an RTP Control Protocol (RTCP) packet that conveys the information out of band.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8286"/>
          <seriesInfo name="DOI" value="10.17487/RFC8286"/>
        </reference>
        <reference anchor="RFC5093">
          <front>
            <title>BT's eXtended Network Quality RTP Control Protocol Extended Reports (RTCP XR XNQ)</title>
            <author fullname="G. Hunt" initials="G." surname="Hunt"/>
            <date month="December" year="2007"/>
            <abstract>
              <t>This document describes an RTCP XR report block, which reports packet transport parameters. The report block was developed by BT for pre-standards use in BT's next-generation network. This document has been produced to describe the report block in sufficient detail to register the block type with IANA in accordance with the Specification Required policy of RFC 3611. This specification does not standardise the new report block for use outside BT's network. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5093"/>
          <seriesInfo name="DOI" value="10.17487/RFC5093"/>
        </reference>
        <reference anchor="RFC5725">
          <front>
            <title>Post-Repair Loss RLE Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="D. Hsu" initials="D." surname="Hsu"/>
            <author fullname="M. Lague" initials="M." surname="Lague"/>
            <date month="February" year="2010"/>
            <abstract>
              <t>This document defines a new report block type within the framework of RTP Control Protocol (RTCP) Extended Reports (XRs). One of the initial XR report block types is the Loss Run Length Encoding (RLE) Report Block. This report conveys information regarding the individual Real-time Transport Protocol (RTP) packet receipt and loss events experienced during the RTCP interval preceding the transmission of the report. The new report, which is referred to as the Post-repair Loss RLE report, carries information regarding the packets that remain lost after all loss-repair methods are applied. By comparing the RTP packet receipts/losses before and after the loss repair is completed, one can determine the effectiveness of the loss- repair methods in an aggregated fashion. This document also defines the signaling of the Post-repair Loss RLE report in the Session Description Protocol (SDP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5725"/>
          <seriesInfo name="DOI" value="10.17487/RFC5725"/>
        </reference>
        <reference anchor="RFC6332">
          <front>
            <title>Multicast Acquisition Report Block Type for RTP Control Protocol (RTCP) Extended Reports (XRs)</title>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="E. Friedrich" initials="E." surname="Friedrich"/>
            <date month="July" year="2011"/>
            <abstract>
              <t>In most RTP-based multicast applications, the RTP source sends inter- related data. Due to this interdependency, randomly joining RTP receivers usually cannot start consuming the multicast data right after they join the session. Thus, they often experience a random acquisition delay. An RTP receiver can use one or more different approaches to achieve rapid acquisition. Yet, due to various factors, performance of the rapid acquisition methods usually varies. Furthermore, in some cases, the RTP receiver can do a simple multicast join (in other cases, it is compelled to do so). For quality reporting, monitoring, and diagnostic purposes, it is important to collect detailed information from the RTP receivers about their acquisition and presentation experiences. This document addresses this issue by defining a new report block type, called the Multicast Acquisition (MA) report block, within the framework of RTP Control Protocol (RTCP) Extended Reports (XRs) (RFC 3611). This document also defines the necessary signaling of the new MA report block type in the Session Description Protocol (SDP). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6332"/>
          <seriesInfo name="DOI" value="10.17487/RFC6332"/>
        </reference>
        <reference anchor="RFC6776">
          <front>
            <title>Measurement Identity and Information Reporting Using a Source Description (SDES) Item and an RTCP Extended Report (XR) Block</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="October" year="2012"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Source Description (SDES) item and an RTCP Extended Report (XR) block carrying parameters that identify and describe a measurement period to which one or more other RTCP XR blocks may refer. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6776"/>
          <seriesInfo name="DOI" value="10.17487/RFC6776"/>
        </reference>
        <reference anchor="RFC6798">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Packet Delay Variation Metric Reporting</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="November" year="2012"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of packet delay variation metrics for a range of RTP applications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6798"/>
          <seriesInfo name="DOI" value="10.17487/RFC6798"/>
        </reference>
        <reference anchor="RFC6843">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Delay Metric Reporting</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="K. Gross" initials="K." surname="Gross"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of delay metrics for use in a range of Real-time Transport Protocol (RTP) applications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6843"/>
          <seriesInfo name="DOI" value="10.17487/RFC6843"/>
        </reference>
        <reference anchor="RFC7004">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Summary Statistics Metrics Reporting</title>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="R. Schott" initials="R." surname="Schott"/>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <date month="September" year="2013"/>
            <abstract>
              <t>This document defines three RTP Control Protocol (RTCP) Extended Report (XR) blocks that allow the reporting of loss, duplication, and discard summary statistics metrics in a range of RTP applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7004"/>
          <seriesInfo name="DOI" value="10.17487/RFC7004"/>
        </reference>
        <reference anchor="RFC6958">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Burst/Gap Loss Metric Reporting</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="S. Zhang" initials="S." surname="Zhang"/>
            <author fullname="J. Zhao" initials="J." surname="Zhao"/>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <date month="May" year="2013"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) Block that allows the reporting of burst and gap loss metrics for use in a range of RTP applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6958"/>
          <seriesInfo name="DOI" value="10.17487/RFC6958"/>
        </reference>
        <reference anchor="RFC7003">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Burst/Gap Discard Metric Reporting</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <date month="September" year="2013"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of burst and gap discard metrics for use in a range of RTP applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7003"/>
          <seriesInfo name="DOI" value="10.17487/RFC7003"/>
        </reference>
        <reference anchor="RFC6990">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for MPEG-2 Transport Stream (TS) Program Specific Information (PSI) Independent Decodability Statistics Metrics Reporting</title>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="H. Asaeda" initials="H." surname="Asaeda"/>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <date month="August" year="2013"/>
            <abstract>
              <t>An MPEG-2 Transport Stream (TS) is a standard container format used in the transmission and storage of multimedia data. Unicast/ multicast MPEG-2 TS over RTP is widely deployed in IPTV systems. This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of MPEG-2 TS decodability statistics metrics related to transmissions of MPEG-2 TS over RTP. The metrics specified in the RTCP XR block are not dependent on Program Specific Information (PSI) carried in MPEG-2 TS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6990"/>
          <seriesInfo name="DOI" value="10.17487/RFC6990"/>
        </reference>
        <reference anchor="RFC7005">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for De-Jitter Buffer Metric Reporting</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="V. Singh" initials="V." surname="Singh"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="September" year="2013"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of de-jitter buffer metrics for a range of RTP applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7005"/>
          <seriesInfo name="DOI" value="10.17487/RFC7005"/>
        </reference>
        <reference anchor="RFC7002">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Discard Count Metric Reporting</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="September" year="2013"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of a simple discard count metric for use in a range of RTP applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7002"/>
          <seriesInfo name="DOI" value="10.17487/RFC7002"/>
        </reference>
        <reference anchor="RFC7097">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) for RLE of Discarded Packets</title>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="V. Singh" initials="V." role="editor" surname="Singh"/>
            <author fullname="I. Curcio" initials="I." surname="Curcio"/>
            <date month="January" year="2014"/>
            <abstract>
              <t>The RTP Control Protocol (RTCP) is used in conjunction with the Real- time Transport Protocol (RTP) in order to provide a variety of short- term and long-term reception statistics. The available reporting may include aggregate information across longer periods of time as well as individual packet reporting. This document specifies a per-packet report metric capturing individual packets discarded from the de- jitter buffer after successful reception.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7097"/>
          <seriesInfo name="DOI" value="10.17487/RFC7097"/>
        </reference>
        <reference anchor="RFC7243">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for the Bytes Discarded Metric</title>
            <author fullname="V. Singh" initials="V." role="editor" surname="Singh"/>
            <author fullname="J. Ott" initials="J." surname="Ott"/>
            <author fullname="I. Curcio" initials="I." surname="Curcio"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The RTP Control Protocol (RTCP) is used in conjunction with the Real-time Transport Protocol (RTP) to provide a variety of short-term and long-term reception statistics. The available reporting may include aggregate information across longer periods of time as well as individual packet reporting. This document specifies a report computing the bytes discarded from the de-jitter buffer after successful reception.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7243"/>
          <seriesInfo name="DOI" value="10.17487/RFC7243"/>
        </reference>
        <reference anchor="RFC7244">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Synchronization Delay and Offset Metrics Reporting</title>
            <author fullname="H. Asaeda" initials="H." surname="Asaeda"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>This document defines two RTP Control Protocol (RTCP) Extended Report (XR) blocks that allow the reporting of initial synchronization delay and synchronization offset metrics for use in a range of RTP applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7244"/>
          <seriesInfo name="DOI" value="10.17487/RFC7244"/>
        </reference>
        <reference anchor="RFC7266">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Mean Opinion Score (MOS) Metric Reporting</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <author fullname="R. Schott" initials="R." surname="Schott"/>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) Block including two new segment types and associated Session Description Protocol (SDP) parameters that allow the reporting of mean opinion score (MOS) Metrics for use in a range of RTP applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7266"/>
          <seriesInfo name="DOI" value="10.17487/RFC7266"/>
        </reference>
        <reference anchor="RFC7294">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Blocks for Concealment Metrics Reporting on Audio Applications</title>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="G. Zorn" initials="G." surname="Zorn"/>
            <author fullname="C. Bi" initials="C." surname="Bi"/>
            <author fullname="Q. Wu" initials="Q." surname="Wu"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>This document defines two RTP Control Protocol (RTCP) Extended Report (XR) blocks that allow the reporting of concealment metrics for audio applications of RTP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7294"/>
          <seriesInfo name="DOI" value="10.17487/RFC7294"/>
        </reference>
        <reference anchor="RFC7380">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for MPEG2 Transport Stream (TS) Program Specific Information (PSI) Decodability Statistics Metrics Reporting</title>
            <author fullname="J. Tong" initials="J." surname="Tong"/>
            <author fullname="C. Bi" initials="C." role="editor" surname="Bi"/>
            <author fullname="R. Even" initials="R." surname="Even"/>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <date month="November" year="2014"/>
            <abstract>
              <t>An MPEG2 Transport Stream (TS) is a standard container format used in the transmission and storage of multimedia data. Unicast/multicast MPEG2 TS over RTP is widely deployed in IPTV systems. This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of MPEG2 TS decodability statistics metrics related to transmissions of MPEG2 TS over RTP. The metrics specified in the RTCP XR block are related to Program Specific Information (PSI) carried in MPEG TS.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7380"/>
          <seriesInfo name="DOI" value="10.17487/RFC7380"/>
        </reference>
        <reference anchor="RFC7509">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) for Post-Repair Loss Count Metrics</title>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <author fullname="V. Singh" initials="V." surname="Singh"/>
            <date month="May" year="2015"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows reporting of a post-repair loss count metric for a range of RTP applications. In addition, another metric, repaired loss count, is also introduced in this report block for calculating the pre-repair loss count when needed, so that the RTP sender or a third-party entity is able to evaluate the effectiveness of the repair methods used by the system.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7509"/>
          <seriesInfo name="DOI" value="10.17487/RFC7509"/>
        </reference>
        <reference anchor="RFC7867">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Loss Concealment Metrics for Video Applications</title>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document defines a new RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of loss concealment metrics for video applications of RTP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7867"/>
          <seriesInfo name="DOI" value="10.17487/RFC7867"/>
        </reference>
        <reference anchor="RFC8015">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Independent Reporting of Burst/Gap Discard Metrics</title>
            <author fullname="V. Singh" initials="V." surname="Singh"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="A. Clark" initials="A." surname="Clark"/>
            <author fullname="R. Huang" initials="R." surname="Huang"/>
            <date month="November" year="2016"/>
            <abstract>
              <t>This document defines an RTP Control Protocol (RTCP) Extended Report (XR) block that allows the reporting of burst/gap discard metrics independently of the burst/gap loss metrics for use in a range of RTP applications.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8015"/>
          <seriesInfo name="DOI" value="10.17487/RFC8015"/>
        </reference>
        <reference anchor="RFC5104">
          <front>
            <title>Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)</title>
            <author fullname="S. Wenger" initials="S." surname="Wenger"/>
            <author fullname="U. Chandra" initials="U." surname="Chandra"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="B. Burman" initials="B." surname="Burman"/>
            <date month="February" year="2008"/>
            <abstract>
              <t>This document specifies a few extensions to the messages defined in the Audio-Visual Profile with Feedback (AVPF). They are helpful primarily in conversational multimedia scenarios where centralized multipoint functionalities are in use. However, some are also usable in smaller multicast environments and point-to-point calls.</t>
              <t>The extensions discussed are messages related to the ITU-T Rec. H.271 Video Back Channel, Full Intra Request, Temporary Maximum Media Stream Bit Rate, and Temporal-Spatial Trade-off. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5104"/>
          <seriesInfo name="DOI" value="10.17487/RFC5104"/>
        </reference>
        <reference anchor="RFC6051">
          <front>
            <title>Rapid Synchronisation of RTP Flows</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="T. Schierl" initials="T." surname="Schierl"/>
            <date month="November" year="2010"/>
            <abstract>
              <t>This memo outlines how RTP sessions are synchronised, and discusses how rapidly such synchronisation can occur. We show that most RTP sessions can be synchronised immediately, but that the use of video switching multipoint conference units (MCUs) or large source-specific multicast (SSM) groups can greatly increase the synchronisation delay. This increase in delay can be unacceptable to some applications that use layered and/or multi-description codecs.</t>
              <t>This memo introduces three mechanisms to reduce the synchronisation delay for such sessions. First, it updates the RTP Control Protocol (RTCP) timing rules to reduce the initial synchronisation delay for SSM sessions. Second, a new feedback packet is defined for use with the extended RTP profile for RTCP-based feedback (RTP/AVPF), allowing video switching MCUs to rapidly request resynchronisation. Finally, new RTP header extensions are defined to allow rapid synchronisation of late joiners, and guarantee correct timestamp-based decoding order recovery for layered codecs in the presence of clock skew. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6051"/>
          <seriesInfo name="DOI" value="10.17487/RFC6051"/>
        </reference>
        <reference anchor="RFC6285">
          <front>
            <title>Unicast-Based Rapid Acquisition of Multicast RTP Sessions</title>
            <author fullname="B. Ver Steeg" initials="B." surname="Ver Steeg"/>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="T. Van Caenegem" initials="T." surname="Van Caenegem"/>
            <author fullname="Z. Vax" initials="Z." surname="Vax"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>When an RTP receiver joins a multicast session, it may need to acquire and parse certain Reference Information before it can process any data sent in the multicast session. Depending on the join time, length of the Reference Information repetition (or appearance) interval, size of the Reference Information, and the application and transport properties, the time lag before an RTP receiver can usefully consume the multicast data, which we refer to as the Acquisition Delay, varies and can be large. This is an undesirable phenomenon for receivers that frequently switch among different multicast sessions, such as video broadcasts.</t>
              <t>In this document, we describe a method using the existing RTP and RTP Control Protocol (RTCP) machinery that reduces the acquisition delay. In this method, an auxiliary unicast RTP session carrying the Reference Information to the receiver precedes or accompanies the multicast stream. This unicast RTP flow can be transmitted at a faster than natural bitrate to further accelerate the acquisition. The motivating use case for this capability is multicast applications that carry real-time compressed audio and video. However, this method can also be used in other types of multicast applications where the acquisition delay is long enough to be a problem. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6285"/>
          <seriesInfo name="DOI" value="10.17487/RFC6285"/>
        </reference>
        <reference anchor="RFC6642">
          <front>
            <title>RTP Control Protocol (RTCP) Extension for a Third-Party Loss Report</title>
            <author fullname="Q. Wu" initials="Q." role="editor" surname="Wu"/>
            <author fullname="F. Xia" initials="F." surname="Xia"/>
            <author fullname="R. Even" initials="R." surname="Even"/>
            <date month="June" year="2012"/>
            <abstract>
              <t>In a large RTP session using the RTP Control Protocol (RTCP) feedback mechanism defined in RFC 4585, a feedback target may experience transient overload if some event causes a large number of receivers to send feedback at once. This overload is usually avoided by ensuring that feedback reports are forwarded to all receivers, allowing them to avoid sending duplicate feedback reports. However, there are cases where it is not recommended to forward feedback reports, and this may allow feedback implosion. This memo discusses these cases and defines a new RTCP Third-Party Loss Report that can be used to inform receivers that the feedback target is aware of some loss event, allowing them to suppress feedback. Associated Session Description Protocol (SDP) signaling is also defined. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6642"/>
          <seriesInfo name="DOI" value="10.17487/RFC6642"/>
        </reference>
        <reference anchor="RFC7728">
          <front>
            <title>RTP Stream Pause and Resume</title>
            <author fullname="B. Burman" initials="B." surname="Burman"/>
            <author fullname="A. Akram" initials="A." surname="Akram"/>
            <author fullname="R. Even" initials="R." surname="Even"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="February" year="2016"/>
            <abstract>
              <t>With the increased popularity of real-time multimedia applications, it is desirable to provide good control of resource usage, and users also demand more control over communication sessions. This document describes how a receiver in a multimedia conversation can pause and resume incoming data from a sender by sending real-time feedback messages when using the Real-time Transport Protocol (RTP) for real- time data transport. This document extends the Codec Control Message (CCM) RTP Control Protocol (RTCP) feedback package by explicitly allowing and describing specific use of existing CCMs and adding a group of new real-time feedback messages used to pause and resume RTP data streams. This document updates RFC 5104.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7728"/>
          <seriesInfo name="DOI" value="10.17487/RFC7728"/>
        </reference>
        <reference anchor="I-D.draft-ietf-avtext-lrr-07">
          <front>
            <title>The Layer Refresh Request (LRR) RTCP Feedback Message</title>
            <author fullname="Jonathan Lennox" initials="J." surname="Lennox">
              <organization>Vidyo, Inc.</organization>
            </author>
            <author fullname="Danny Hong" initials="D." surname="Hong">
              <organization>Vidyo, Inc.</organization>
            </author>
            <author fullname="Justin Uberti" initials="J." surname="Uberti">
              <organization>Google, Inc.</organization>
            </author>
            <author fullname="Stefan Holmer" initials="S." surname="Holmer">
              <organization>Google, Inc.</organization>
            </author>
            <author fullname="Magnus Flodman" initials="M." surname="Flodman">
              <organization>Google, Inc.</organization>
            </author>
            <date day="2" month="July" year="2017"/>
            <abstract>
              <t>   This memo describes the RTCP Payload-Specific Feedback Message "Layer
   Refresh Request" (LRR), which can be used to request a state refresh
   of one or more substreams of a layered media stream.  It also defines
   its use with several RTP payloads for scalable media formats.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtext-lrr-07"/>
        </reference>
        <reference anchor="I-D.draft-ietf-avtcore-rtcp-green-metadata">
          <front>
            <title>RTP Control Protocol (RTCP) Messages for Temporal-Spatial Resolution</title>
            <author fullname="Yong He" initials="Y." surname="He">
              <organization>Qualcomm</organization>
            </author>
            <author fullname="Christian Herglotz" initials="C." surname="Herglotz">
              <organization>FAU</organization>
            </author>
            <author fullname="Edouard Francois" initials="E." surname="Francois">
              <organization>InterDigital</organization>
            </author>
            <date day="13" month="April" year="2023"/>
            <abstract>
              <t>   This specification describes an RTCP feedback message format for the
   ISO/IEC International Standard 23001-11, known as Energy Efficient
   Media Consumption (Green metadata), developed by the ISO/IEC JTC 1/SC
   29/ WG 3 MPEG System.  The RTCP payload format specified in this
   specification enables receivers to provide feedback to the senders
   and thus allows for short-term adaptation and feedback-based energy
   efficient mechanisms to be implemented.  The payload format has broad
   applicability in real-time video communication services.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtcp-green-metadata-01"/>
        </reference>
        <reference anchor="RFC6464">
          <front>
            <title>A Real-time Transport Protocol (RTP) Header Extension for Client-to-Mixer Audio Level Indication</title>
            <author fullname="J. Lennox" initials="J." role="editor" surname="Lennox"/>
            <author fullname="E. Ivov" initials="E." surname="Ivov"/>
            <author fullname="E. Marocco" initials="E." surname="Marocco"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document defines a mechanism by which packets of Real-time Transport Protocol (RTP) audio streams can indicate, in an RTP header extension, the audio level of the audio sample carried in the RTP packet. In large conferences, this can reduce the load on an audio mixer or other middlebox that wants to forward only a few of the loudest audio streams, without requiring it to decode and measure every stream that is received. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6464"/>
          <seriesInfo name="DOI" value="10.17487/RFC6464"/>
        </reference>
        <reference anchor="RFC7941">
          <front>
            <title>RTP Header Extension for the RTP Control Protocol (RTCP) Source Description Items</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="B. Burman" initials="B." surname="Burman"/>
            <author fullname="R. Even" initials="R." surname="Even"/>
            <author fullname="M. Zanaty" initials="M." surname="Zanaty"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>Source Description (SDES) items are normally transported in the RTP Control Protocol (RTCP). In some cases, it can be beneficial to speed up the delivery of these items. The main case is when a new synchronization source (SSRC) joins an RTP session and the receivers need this source's identity, relation to other sources, or its synchronization context, all of which may be fully or partially identified using SDES items. To enable this optimization, this document specifies a new RTP header extension that can carry SDES items.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7941"/>
          <seriesInfo name="DOI" value="10.17487/RFC7941"/>
        </reference>
        <reference anchor="RFC6904">
          <front>
            <title>Encryption of Header Extensions in the Secure Real-time Transport Protocol (SRTP)</title>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <date month="April" year="2013"/>
            <abstract>
              <t>The Secure Real-time Transport Protocol (SRTP) provides authentication, but not encryption, of the headers of Real-time Transport Protocol (RTP) packets. However, RTP header extensions may carry sensitive information for which participants in multimedia sessions want confidentiality. This document provides a mechanism, extending the mechanisms of SRTP, to selectively encrypt RTP header extensions in SRTP.</t>
              <t>This document updates RFC 3711, the Secure Real-time Transport Protocol specification, to require that all future SRTP encryption transforms specify how RTP header extensions are to be encrypted.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6904"/>
          <seriesInfo name="DOI" value="10.17487/RFC6904"/>
        </reference>
        <reference anchor="RFC6465">
          <front>
            <title>A Real-time Transport Protocol (RTP) Header Extension for Mixer-to-Client Audio Level Indication</title>
            <author fullname="E. Ivov" initials="E." role="editor" surname="Ivov"/>
            <author fullname="E. Marocco" initials="E." role="editor" surname="Marocco"/>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <date month="December" year="2011"/>
            <abstract>
              <t>This document describes a mechanism for RTP-level mixers in audio conferences to deliver information about the audio level of individual participants. Such audio level indicators are transported in the same RTP packets as the audio data they pertain to. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6465"/>
          <seriesInfo name="DOI" value="10.17487/RFC6465"/>
        </reference>
        <reference anchor="RFC8852">
          <front>
            <title>RTP Stream Identifier Source Description (SDES)</title>
            <author fullname="A.B. Roach" initials="A.B." surname="Roach"/>
            <author fullname="S. Nandakumar" initials="S." surname="Nandakumar"/>
            <author fullname="P. Thatcher" initials="P." surname="Thatcher"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document defines and registers two new Real-time Transport Control Protocol (RTCP) Stream Identifier Source Description (SDES) items. One, named RtpStreamId, is used for unique identification of RTP streams. The other, RepairedRtpStreamId, can be used to identify which stream is to be repaired using a redundancy RTP stream.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8852"/>
          <seriesInfo name="DOI" value="10.17487/RFC8852"/>
        </reference>
        <reference anchor="RFC8849">
          <front>
            <title>Mapping RTP Streams to Controlling Multiple Streams for Telepresence (CLUE) Media Captures</title>
            <author fullname="R. Even" initials="R." surname="Even"/>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document describes how the Real-time Transport Protocol (RTP) is used in the context of the Controlling Multiple Streams for Telepresence (CLUE) protocol. It also describes the mechanisms and recommended practice for mapping RTP media streams, as defined in the Session Description Protocol (SDP), to CLUE Media Captures and defines a new RTP header extension (CaptureID).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8849"/>
          <seriesInfo name="DOI" value="10.17487/RFC8849"/>
        </reference>
        <reference anchor="RFC9143">
          <front>
            <title>Negotiating Media Multiplexing Using the Session Description Protocol (SDP)</title>
            <author fullname="C. Holmberg" initials="C." surname="Holmberg"/>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand"/>
            <author fullname="C. Jennings" initials="C." surname="Jennings"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This specification defines a new Session Description Protocol (SDP) Grouping Framework extension called 'BUNDLE'. The extension can be used with the SDP offer/answer mechanism to negotiate the usage of a single transport (5-tuple) for sending and receiving media described by multiple SDP media descriptions ("m=" sections). Such transport is referred to as a "BUNDLE transport", and the media is referred to as "bundled media". The "m=" sections that use the BUNDLE transport form a BUNDLE group.</t>
              <t>This specification defines a new RTP Control Protocol (RTCP) Source Description (SDES) item and a new RTP header extension.</t>
              <t>This specification updates RFCs 3264, 5888, and 7941.</t>
              <t>This specification obsoletes RFC 8843.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9143"/>
          <seriesInfo name="DOI" value="10.17487/RFC9143"/>
        </reference>
        <reference anchor="I-D.draft-hurst-quic-rtp-tunnelling">
          <front>
            <title>QRT: QUIC RTP Tunnelling</title>
            <author fullname="Sam Hurst" initials="S." surname="Hurst">
         </author>
            <date day="28" month="January" year="2021"/>
            <abstract>
              <t>   QUIC is a UDP-based transport protocol for stream-orientated,
   congestion-controlled, secure, multiplexed data transfer.  RTP
   carries real-time data between endpoints, and the accompanying
   control protocol RTCP allows monitoring and control of the transfer
   of such data.  With RTP and RTCP being agnostic to the underlying
   transport protocol, it is possible to multiplex both the RTP and
   associated RTCP flows into a single QUIC connection to take advantage
   of QUIC features such as low-latency setup and strong TLS-based
   security.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hurst-quic-rtp-tunnelling-01"/>
        </reference>
      </references>
    </references>
    <?line 1288?>

<section anchor="list-of-optional-quic-extensions">
      <name>List of optional QUIC Extensions</name>
      <t>The following is a list of QUIC protocol extensions that might be beneficial for
RoQ, but are not required by RoQ.</t>
      <ul spacing="normal">
        <li>
          <em>An Unreliable Datagram Extension to QUIC</em> <xref target="RFC9221"/>. Without support for
unreliable datagrams, RoQ cannot use the encapsulation specified in
<xref target="quic-datagrams"/>, but can still use QUIC streams as specified in
<xref target="quic-streams"/>.</li>
        <li>
          <t>A version of QUIC receive timestamps can be helpful for improved jitter
calculations and congestion control.
          </t>
          <ul spacing="normal">
            <li>
              <em>Quic Timestamps For Measuring One-Way Delays</em>
              <xref target="I-D.draft-huitema-quic-ts"/></li>
            <li>
              <em>QUIC Extension for Reporting Packet Receive Timestamps</em>
              <xref target="I-D.draft-smith-quic-receive-ts"/></li>
          </ul>
        </li>
        <li>
          <em>QUIC Acknowledgement Frequency</em> <xref target="I-D.draft-ietf-quic-ack-frequency"/> can
be used by a sender to optimize the acknowledgement behaviour of the receiver,
e.g., to optimize congestion control.</li>
        <li>
          <em>Signaling That a QUIC Receiver Has Enough Stream Data</em>
          <xref target="I-D.draft-thomson-quic-enough"/> and <em>Reliable QUIC Stream Resets</em>
          <xref target="I-D.draft-ietf-quic-reliable-stream-reset"/> would allow RoQ senders and
receivers to use versions of CLOSE_STREAM and STOP_SENDING that contain
offsets. The offset could be used to reliably retransmit all frames up to a
certain frame that should be cancelled before resuming transmission of further
frames on new QUIC streams.</li>
      </ul>
    </section>
    <section anchor="considered-rtcp-packet-types-and-rtp-header-extensions">
      <name>Considered RTCP Packet Types and RTP Header Extensions</name>
      <t>This section lists all the RTCP packet types and RTP header extensions that were
considered in the analysis described in <xref target="rtcp-mapping"/>.</t>
      <t>Several but not all of these control packets and their attributes can be mapped
from QUIC, as described in <xref target="transport-layer-feedback"/>. <em>Mappable from QUIC</em>
has one of four values: <em>yes</em>, <em>partly</em>, <em>QUIC extension needed</em>, and <em>no</em>.
<em>Partly</em> is used for packet types for which some fields can be mapped from QUIC,
but not all. <em>QUIC extension needed</em> describes packet types which could be
mapped with help from one or more QUIC extensions.</t>
      <section anchor="control-packets">
        <name>RTCP Control Packet Types</name>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Shortcut</th>
              <th align="left">PT</th>
              <th align="left">Defining Document</th>
              <th align="left">Mappable from QUIC</th>
              <th align="left">Comments</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">SMPTE time-code mapping</td>
              <td align="left">SMPTETC</td>
              <td align="left">194</td>
              <td align="left">
                <xref target="RFC5484"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Extended inter-arrival jitter report</td>
              <td align="left">IJ</td>
              <td align="left">195</td>
              <td align="left">
                <xref target="RFC5450"/></td>
              <td align="left">no</td>
              <td align="left">Would require send-timestamps, which are not provided by any QUIC extension today</td>
            </tr>
            <tr>
              <td align="left">Sender Reports</td>
              <td align="left">SR</td>
              <td align="left">200</td>
              <td align="left">
                <xref target="RFC3550"/></td>
              <td align="left">QUIC extension needed / partly</td>
              <td align="left">see <xref target="al-repair"/> and <xref target="RR-mappings"/></td>
            </tr>
            <tr>
              <td align="left">Receiver Reports</td>
              <td align="left">RR</td>
              <td align="left">201</td>
              <td align="left">
                <xref target="RFC3550"/></td>
              <td align="left">QUIC extension needed</td>
              <td align="left">see <xref target="RR-mappings"/></td>
            </tr>
            <tr>
              <td align="left">Source description</td>
              <td align="left">SDES</td>
              <td align="left">202</td>
              <td align="left">
                <xref target="RFC3550"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Goodbye</td>
              <td align="left">BYE</td>
              <td align="left">203</td>
              <td align="left">
                <xref target="RFC3550"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="BYE-mapping"/></td>
            </tr>
            <tr>
              <td align="left">Application-defined</td>
              <td align="left">APP</td>
              <td align="left">204</td>
              <td align="left">
                <xref target="RFC3550"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Generic RTP Feedback</td>
              <td align="left">RTPFB</td>
              <td align="left">205</td>
              <td align="left">
                <xref target="RFC4585"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="generic-feedback"/></td>
            </tr>
            <tr>
              <td align="left">Payload-specific</td>
              <td align="left">PSFB</td>
              <td align="left">205</td>
              <td align="left">
                <xref target="RFC4585"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="payload-specific-feedback"/></td>
            </tr>
            <tr>
              <td align="left">extended report</td>
              <td align="left">XR</td>
              <td align="left">207</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="extended-reports"/></td>
            </tr>
            <tr>
              <td align="left">AVB RTCP packet</td>
              <td align="left">AVB</td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Receiver Summary Information</td>
              <td align="left">RSI</td>
              <td align="left">209</td>
              <td align="left">
                <xref target="RFC5760"/></td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Port Mapping</td>
              <td align="left">TOKEN</td>
              <td align="left">210</td>
              <td align="left">
                <xref target="RFC6284"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">IDMS Settings</td>
              <td align="left">IDMS</td>
              <td align="left">211</td>
              <td align="left">
                <xref target="RFC7272"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Reporting Group Reporting Sources</td>
              <td align="left">RGRS</td>
              <td align="left">212</td>
              <td align="left">
                <xref target="RFC8861"/></td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Splicing Notification Message</td>
              <td align="left">SNM</td>
              <td align="left">213</td>
              <td align="left">
                <xref target="RFC8286"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="extended-reports">
        <name>Extended Reports (XR)</name>
        <table anchor="tab-xr-blocks">
          <name>Extended Report Blocks</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Document</th>
              <th align="left">Mappable from QUIC</th>
              <th align="left">Comments</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Loss RLE Report Block</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">yes</td>
              <td align="left">If only used for acknowledgment, could be replaced by QUIC acknowledgments, see <xref target="roc-d"/> and <xref target="roc-s"/></td>
            </tr>
            <tr>
              <td align="left">Duplicate RLE Report Block</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Packet Receipt Times Report Block</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">QUIC extension needed / partly</td>
              <td align="left">QUIC could provide packet receive timestamps when using a timestamp extension that reports timestamp for every received packet, such as <xref target="I-D.draft-smith-quic-receive-ts"/>. However, QUIC does not provide feedback in RTP timestamp format.</td>
            </tr>
            <tr>
              <td align="left">Receiver Reference Time Report Block</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">QUIC extension needed</td>
              <td align="left">Used together with DLRR Report Blocks to calculate RTTs of non-senders. RTT measurements can natively be provided by QUIC.</td>
            </tr>
            <tr>
              <td align="left">DLRR Report Block</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">QUIC extension needed</td>
              <td align="left">Used together with Receiver Reference Time Report Blocks to calculate RTTs of non-senders. RTT can natively be provided by QUIC.</td>
            </tr>
            <tr>
              <td align="left">Statistics Summary Report Block</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">QUIC extension needed / partly</td>
              <td align="left">Packet loss and jitter can be inferred from QUIC acknowledgments, if a timestamp extension is used (see <xref target="I-D.draft-smith-quic-receive-ts"/> or <xref target="I-D.draft-huitema-quic-ts"/>). The remaining fields cannot be mapped to QUIC.</td>
            </tr>
            <tr>
              <td align="left">VoIP Metrics Report Block</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">no</td>
              <td align="left">as in other reports above, only loss and RTT available</td>
            </tr>
            <tr>
              <td align="left">RTCP XR</td>
              <td align="left">
                <xref target="RFC5093"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Texas Instruments Extended VoIP Quality Block</td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Post-repair Loss RLE Report Block</td>
              <td align="left">
                <xref target="RFC5725"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Multicast Acquisition Report Block</td>
              <td align="left">
                <xref target="RFC6332"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">IDMS Report Block</td>
              <td align="left">
                <xref target="RFC7272"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">ECN Summary Report</td>
              <td align="left">
                <xref target="RFC6679"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="ECN-mappings"/></td>
            </tr>
            <tr>
              <td align="left">Measurement Information Block</td>
              <td align="left">
                <xref target="RFC6776"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Packet Delay Variation Metrics Block</td>
              <td align="left">
                <xref target="RFC6798"/></td>
              <td align="left">no</td>
              <td align="left">QUIC timestamps may be used to achieve the same goal?</td>
            </tr>
            <tr>
              <td align="left">Delay Metrics Block</td>
              <td align="left">
                <xref target="RFC6843"/></td>
              <td align="left">no</td>
              <td align="left">QUIC has RTT and can provide timestamps for one-way delay, but no way of informing peers about end-to-end statistics when QUIC is only used on one segment of the path.</td>
            </tr>
            <tr>
              <td align="left">Burst/Gap Loss Summary Statistics Block</td>
              <td align="left">
                <xref target="RFC7004"/></td>
              <td align="left"> </td>
              <td align="left">QUIC ACKs?</td>
            </tr>
            <tr>
              <td align="left">Burst/Gap Discard Summary Statistics Block</td>
              <td align="left">
                <xref target="RFC7004"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Frame Impairment Statistics Summary</td>
              <td align="left">
                <xref target="RFC7004"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Burst/Gap Loss Metrics Block</td>
              <td align="left">
                <xref target="RFC6958"/></td>
              <td align="left"> </td>
              <td align="left">QUIC ACKs?</td>
            </tr>
            <tr>
              <td align="left">Burst/Gap Discard Metrics Block</td>
              <td align="left">
                <xref target="RFC7003"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">MPEG2 Transport Stream PSI-Independent Decodability Statistics Metrics Block</td>
              <td align="left">
                <xref target="RFC6990"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">De-Jitter Buffer Metrics Block</td>
              <td align="left">
                <xref target="RFC7005"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Discard Count Metrics Block</td>
              <td align="left">
                <xref target="RFC7002"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">DRLE (Discard RLE Report)</td>
              <td align="left">
                <xref target="RFC7097"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">BDR (Bytes Discarded Report)</td>
              <td align="left">
                <xref target="RFC7243"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">RFISD (RTP Flows Initial Synchronization Delay)</td>
              <td align="left">
                <xref target="RFC7244"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">RFSO (RTP Flows Synchronization Offset Metrics Block)</td>
              <td align="left">
                <xref target="RFC7244"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">MOS Metrics Block</td>
              <td align="left">
                <xref target="RFC7266"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">LCB (Loss Concealment Metrics Block)</td>
              <td align="left">
                <xref section="4.1" sectionFormat="comma" target="RFC7294"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">CSB (Concealed Seconds Metrics Block)</td>
              <td align="left">
                <xref section="4.1" sectionFormat="comma" target="RFC7294"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">MPEG2 Transport Stream PSI Decodability Statistics Metrics Block</td>
              <td align="left">
                <xref target="RFC7380"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Post-Repair Loss Count Metrics Report Block</td>
              <td align="left">
                <xref target="RFC7509"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Video Loss Concealment Metric Report Block</td>
              <td align="left">
                <xref target="RFC7867"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Independent Burst/Gap Discard Metrics Block</td>
              <td align="left">
                <xref target="RFC8015"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="generic-feedback">
        <name>Generic RTP Feedback (RTPFB)</name>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Long Name</th>
              <th align="left">Document</th>
              <th align="left">Mappable from QUIC</th>
              <th align="left">Comments</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Generic NACK</td>
              <td align="left">Generic negative acknowledgement</td>
              <td align="left">
                <xref target="RFC4585"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="NACK-mappings"/></td>
            </tr>
            <tr>
              <td align="left">TMMBR</td>
              <td align="left">Temporary Maximum Media Stream Bit Rate Request</td>
              <td align="left">
                <xref target="RFC5104"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">TMMBN</td>
              <td align="left">Temporary Maximum Media Stream Bit Rate Notification</td>
              <td align="left">
                <xref target="RFC5104"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">RTCP-SR-REQ</td>
              <td align="left">RTCP Rapid Resynchronisation Request</td>
              <td align="left">
                <xref target="RFC6051"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">RAMS</td>
              <td align="left">Rapid Acquisition of Multicast Sessions</td>
              <td align="left">
                <xref target="RFC6285"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">TLLEI</td>
              <td align="left">Transport-Layer Third-Party Loss Early Indication</td>
              <td align="left">
                <xref target="RFC6642"/></td>
              <td align="left">no?</td>
              <td align="left">no way of telling QUIC peer "don't ask for retransmission", but QUIC would not ask that anyway, only RTCP NACK?</td>
            </tr>
            <tr>
              <td align="left">RTCP-ECN-FB</td>
              <td align="left">RTCP ECN Feedback</td>
              <td align="left">
                <xref target="RFC6679"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="ECN-mappings"/></td>
            </tr>
            <tr>
              <td align="left">PAUSE-RESUME</td>
              <td align="left">Media Pause/Resume</td>
              <td align="left">
                <xref target="RFC7728"/></td>
              <td align="left">no</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">DBI</td>
              <td align="left">Delay Budget Information (DBI)</td>
              <td align="left">
                <xref target="_3GPP-TS-26.114"/></td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">CCFB</td>
              <td align="left">RTP Congestion Control Feedback</td>
              <td align="left">
                <xref target="RFC8888"/></td>
              <td align="left">QUIC extension needed</td>
              <td align="left">see <xref target="CCFB-mappings"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="payload-specific-feedback">
        <name>Payload-specific RTP Feedback (PSFB)</name>
        <t>Because QUIC is a generic transport protocol, QUIC feedback cannot replace the
following Payload-specific RTP Feedback (PSFB) feedback.</t>
        <table>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Long Name</th>
              <th align="left">Document</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">PLI</td>
              <td align="left">Picture Loss Indication</td>
              <td align="left">
                <xref target="RFC4585"/></td>
            </tr>
            <tr>
              <td align="left">SLI</td>
              <td align="left">Slice Loss Indication</td>
              <td align="left">
                <xref target="RFC4585"/></td>
            </tr>
            <tr>
              <td align="left">RPSI</td>
              <td align="left">Reference Picture Selection Indication</td>
              <td align="left">
                <xref target="RFC4585"/></td>
            </tr>
            <tr>
              <td align="left">FIR</td>
              <td align="left">Full Intra Request Command</td>
              <td align="left">
                <xref target="RFC5104"/></td>
            </tr>
            <tr>
              <td align="left">TSTR</td>
              <td align="left">Temporal-Spatial Trade-off Request</td>
              <td align="left">
                <xref target="RFC5104"/></td>
            </tr>
            <tr>
              <td align="left">TSTN</td>
              <td align="left">Temporal-Spatial Trade-off Notification</td>
              <td align="left">
                <xref target="RFC5104"/></td>
            </tr>
            <tr>
              <td align="left">VBCM</td>
              <td align="left">Video Back Channel Message</td>
              <td align="left">
                <xref target="RFC5104"/></td>
            </tr>
            <tr>
              <td align="left">PSLEI</td>
              <td align="left">Payload-Specific Third-Party Loss Early Indication</td>
              <td align="left">
                <xref target="RFC6642"/></td>
            </tr>
            <tr>
              <td align="left">ROI</td>
              <td align="left">Video region-of-interest (ROI)</td>
              <td align="left">
                <xref target="_3GPP-TS-26.114"/></td>
            </tr>
            <tr>
              <td align="left">LRR</td>
              <td align="left">Layer Refresh Request Command</td>
              <td align="left">
                <xref target="I-D.draft-ietf-avtext-lrr-07"/></td>
            </tr>
            <tr>
              <td align="left">VP</td>
              <td align="left">Viewport (VP)</td>
              <td align="left">
                <xref target="_3GPP-TS-26.114"/></td>
            </tr>
            <tr>
              <td align="left">AFB</td>
              <td align="left">Application Layer Feedback</td>
              <td align="left">
                <xref target="RFC4585"/></td>
            </tr>
            <tr>
              <td align="left">TSRR</td>
              <td align="left">Temporal-Spatial Resolution Request</td>
              <td align="left">
                <xref target="I-D.draft-ietf-avtcore-rtcp-green-metadata"/></td>
            </tr>
            <tr>
              <td align="left">TSRN</td>
              <td align="left">Temporal-Spatial Resolution Notification</td>
              <td align="left">
                <xref target="I-D.draft-ietf-avtcore-rtcp-green-metadata"/></td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="rtp-header-extensions">
        <name>RTP Header extensions</name>
        <t>Like the payload-specific feedback packets, QUIC cannot directly replace the
control information in the following header extensions. RoQ does not place
restrictions on sending any RTP header extensions. However, some extensions,
such as Transmission Time offsets <xref target="RFC5450"/> are used to improve network
jitter calculation, which can be done in QUIC if a timestamp extension is used.</t>
        <section anchor="compact-header-extensions">
          <name>Compact Header Extensions</name>
          <table>
            <thead>
              <tr>
                <th align="left">Extension URI</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
                <th align="left">Mappable from QUIC</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:toffset</td>
                <td align="left">Transmission Time offsets</td>
                <td align="left">
                  <xref target="RFC5450"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:ssrc-audio-level</td>
                <td align="left">Audio Level</td>
                <td align="left">
                  <xref target="RFC6464"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:splicing-interval</td>
                <td align="left">Splicing Interval</td>
                <td align="left">
                  <xref target="RFC8286"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:smpte-tc</td>
                <td align="left">SMPTE time-code mapping</td>
                <td align="left">
                  <xref target="RFC5484"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:sdes</td>
                <td align="left">Reserved as base URN for RTCP SDES items that are also defined as RTP compact header extensions.</td>
                <td align="left">
                  <xref target="RFC7941"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:ntp-64</td>
                <td align="left">Synchronisation metadata: 64-bit timestamp format</td>
                <td align="left">
                  <xref target="RFC6051"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:ntp-56</td>
                <td align="left">Synchronisation metadata: 56-bit timestamp format</td>
                <td align="left">
                  <xref target="RFC6051"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:encrypt</td>
                <td align="left">Encrypted extension header element</td>
                <td align="left">
                  <xref target="RFC6904"/></td>
                <td align="left">no, but maybe irrelevant?</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:csrc-audio-level</td>
                <td align="left">Mixer-to-client audio level indicators</td>
                <td align="left">
                  <xref target="RFC6465"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:3gpp:video-orientation:6</td>
                <td align="left">Higher granularity (6-bit) coordination of video orientation (CVO) feature, see clause 6.2.3</td>
                <td align="left">
                  <xref target="_3GPP-TS-26.114"/></td>
                <td align="left">probably not(?)</td>
              </tr>
              <tr>
                <td align="left">urn:3gpp:video-orientation</td>
                <td align="left">Coordination of video orientation (CVO) feature, see clause 6.2.3</td>
                <td align="left">
                  <xref target="_3GPP-TS-26.114"/></td>
                <td align="left">probably not(?)</td>
              </tr>
              <tr>
                <td align="left">urn:3gpp:roi-sent</td>
                <td align="left">Signalling of the arbitrary region-of-interest (ROI) information for the sent video, see clause 6.2.3.4</td>
                <td align="left">
                  <xref target="_3GPP-TS-26.114"/></td>
                <td align="left">probably not(?)</td>
              </tr>
              <tr>
                <td align="left">urn:3gpp:predefined-roi-sent</td>
                <td align="left">Signalling of the predefined region-of-interest (ROI) information for the sent video, see clause 6.2.3.4</td>
                <td align="left">
                  <xref target="_3GPP-TS-26.114"/></td>
                <td align="left">probably not(?)</td>
              </tr>
            </tbody>
          </table>
        </section>
        <section anchor="sdes-compact-header-extensions">
          <name>SDES Compact Header Extensions</name>
          <table>
            <thead>
              <tr>
                <th align="left">Extension URI</th>
                <th align="left">Description</th>
                <th align="left">Reference</th>
                <th align="left">Mappable from QUIC</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:sdes:cname</td>
                <td align="left">Source Description: Canonical End-Point Identifier (SDES CNAME)</td>
                <td align="left">
                  <xref target="RFC7941"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id</td>
                <td align="left">RTP Stream Identifier</td>
                <td align="left">
                  <xref target="RFC8852"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id</td>
                <td align="left">RTP Repaired Stream Identifier</td>
                <td align="left">
                  <xref target="RFC8852"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:sdes:CaptId</td>
                <td align="left">CLUE CaptId</td>
                <td align="left">
                  <xref target="RFC8849"/></td>
                <td align="left">no</td>
              </tr>
              <tr>
                <td align="left">urn:ietf:params:rtp-hdrext:sdes:mid</td>
                <td align="left">Media identification</td>
                <td align="left">
                  <xref target="RFC9143"/></td>
                <td align="left">no</td>
              </tr>
            </tbody>
          </table>
        </section>
      </section>
    </section>
    <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 RoQ Datagrams mapping and implements SCReAM congestion
control at the application layer. It can optionally disable the builtin QUIC
congestion control (NewReno). The endpoints only use RTCP for congestion control
feedback, which can optionally be disabled and replaced by the QUIC connection
statistics as described in <xref target="transport-layer-feedback"/>.</t>
      <t>Experimental results of the implementation can be found on
<eref target="https://github.com/mengelbart/rtp-over-quic-mininet">Github</eref>, too.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Early versions of this document were similar in spirit to
<xref target="I-D.draft-hurst-quic-rtp-tunnelling"/>, although many details differ. The
authors would like to thank Sam Hurst for providing his thoughts about how QUIC
could be used to carry RTP.</t>
      <t>The authors would like to thank Bernard Aboba, David Schinazi, Lucas Pardue,
Sergio Garcia Murillo,  Spencer Dawkins, and Vidhi Goel for their valuable
comments and suggestions contributing to this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9W963bbVpYu+h9PgSP/iORB0pZsy7Z6V2XLkpyoy5IVUU6q
R1ePFEhCEsogwQZAKyzH/Vj7Bc6LnXlda64FUFaS3mPvkx8ORQLrOtdc8/rN
4XCYtEVb5gfp1uXVRVp9yuv0hw+nR+n2ZfXDzlYyq6aLbA4/z+rsuh0WeXs9
zD6106rOh3W7HOILw/9cFdPh0/1kmrX5TVWvD9KmnSUz+Osg/Xx8eHXyJUmK
ZX2QtvWqafeePn39dC/J6jyDXg+Xy7KAF4tq0aTZYpZe5lk5vCrm+VZyV9Uf
b+pqtcTnVrOievJjMcur9KrOFs2yqtv0CMaRnmXFos0X2WIK73zM1/Da7CA9
he/qRd4Oj3HkSdK00PrPWVktYFTrvEmWxUH67201HaQNNFXn1w18Ws/xw38k
zWoyL5oGRtWul/DC6cnV2yTJVu1tVR8k6TBJ4b9i0Ryk/zpK37ct/c0r9a//
7/+qb9x3VX2TLYp/0gQP0qt8eruA6Zbph0UBS9cU7To9W8FXt/R0Ps+K8iCt
2vZ/FotRu5qPZnnQ29koPVnc5OUkq22fZ1l7WzTRT7+r6zm1NMq1pf95g9+P
ptU8GMd4lB5ndx/hsxnFeJnDHtTBL/Eg4IFFmx7O8xrGkr57d2Q7b7iBGb8/
Qmoz/SfF4rqqYYAw/IME3nv23cXF8Go83Nsf7e4+P6CW2qy+yduDdPu2bZfN
wZMnSCdZOXp2s1yOYDBPZnnzsa2W82q2KvPmCYx5WlwrBT5p7J+nsz/tPn/6
fIcblmNyegGrVrZAoLMiS8erSbNu2nyebp+ejXf+xf7W5mW+vK0Wa/iWvrgF
CiyLxQ3ROdJsnU2xny3qgM/L3tO9Z8Onu8OnL5JkOBym2aRp8bEkucIdhvO4
muMKykBzODTpvFgUc9jYebZcYvOwSiksZLZsViVMBL6hQ4Xj8mcnuagroP6q
hKN+dbHDZw9YwBGQfA3f2p+P4PdlNv2Yt016VwCBLNL2NmdGsZTnRjxAHQN8
BForc2404iuj5LRNs7Kp0lnRTFdNA9O4re7StkrLHB7NbnJgIbAe6XVdzX1f
xXxZ5jh92p6Uh5Hki9myguWE8wvfwOGHvqClOp+tpjm9vMhhHPBV/ssU9gAa
xym5GeHMuffEdZBOK3iuoW6msiL4XI2DymbZUoaAq1GtWuisXOO04StsO7mG
HifQ/oh3cV7MZmWeJI+QLdVAerTv/9v39PPn/+fy7dGzFy+efvny1Q0OHpa1
STbtdrrNj79++hQe3/nfsvnJAzY/ffDmJ72bPzC7nz5o95Ov735qdv/Ro/QN
fMJrDBr4/Gji/viC25/3bWN63zbC2t7kC1imslynq4YJe5rV9TqpXVPMgJBm
YPjI7Gm8SE70Ayw5Xm144a2mt2nWpJ/oYoWHr/MaeXAzSLJpXTUNLaHepaM0
HRfwK21rncO9X8Pm+W5neYlXy5oZHLxblTBQWE9Yfl7wtKxwwwfU7Cy/zoBd
prAYec0r2Lo1cJR2C8Ob5Pki/XB8MYDO8AIp10SZ6fHVuzGuOjB0XIYmn65q
3nWeqNtzHFA1nWYNLQOsHG7TNn67hAEVE2gQmtrBpYB1gydk+4isg0sBRt1M
62KCp3SRZl58gc1A0q2uhdY/f/4WD8izp6/ogBxiy5OsgSVa5Dz/qN0KmlxU
LQwavm/TeUVTwU5SEl6yetZ3EhIYM6wktIqXihDLq9evX3/5MkjtKTV/7eJf
OHv3zR58k8CaAyHQDaVrCedr2FZD+J/ZGxhVi/tLp5iHy3SIElt6l5clPAJE
fnObnh9eMYe9Blq5g4VtRsmbfF1he7i2fkU8GWVWJpzCAkyA4K+Llm8DWoL8
F5D4iIYdCa8WcAyLbFIKv4D7NLups3mTyCT39mjad7cg8qQ8VdzE2ayQwwF/
FjU1AL8u87pFVgyHyBwsWINr2LF0Ox/djAawXdDtAkiyaTIg+zqnNRLJEZnL
p4rX8zbPZsPqeohTTSZlNQUB52aH+cNZBRKNzPbzo7n/CzjEW2KB1HNF/0dp
dZ6DEAtT/sinE0bXwPhx3P+5Yq41SLfubtdpA9ypnMHyr/EFz95wP2b5sqzW
KXDkrW9TIvOednBJ8voT3UiTvAUuAO82d8hjkTC3Jvk0Ax4EW477tDVKPyzh
JRChy3zK48ABXldlWd3hMpjJAYGB1AQvX69KOrvI8kfME+1jxOfxEHKLKegN
+B2s/BLE02IK12HNfJ8puuWp0Ajc+pQo7BLV4gEDKvSLAczRrAf+dceLdlPn
OfKWLWInVdPiOyhMLlo7wC3axEegoZR32boZvl9seU4+xButTA9Bb4Cu9KRj
dyeLab1e0p+fH2XwajOsFrDhhyVeKXBwzCGQVuY5MrOimTcky3ADxIr5aqdb
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

-->

</rfc>
