<?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.7.26 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-over-quic-14" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.0 -->
  <front>
    <title>RTP over QUIC (RoQ)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-14"/>
    <author initials="M." surname="Engelbart" fullname="Mathis Engelbart">
      <organization>Technical University of Munich</organization>
      <address>
        <email>mathis.engelbart@gmail.com</email>
      </address>
    </author>
    <author initials="J." surname="Ott" fullname="Jörg Ott">
      <organization>Technical University of Munich</organization>
      <address>
        <email>ott@in.tum.de</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 106?>

<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).</t>
      <t>This document also discusses how to leverage state that is already available
from the QUIC implementation in the endpoints, in order to reduce the need to
exchange RTCP packets, and describes different options for implementing congestion control and rate
adaptation for RTP 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 117?>

<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).</t>
      <t>This document also discusses how to leverage state that is already available
from the QUIC implementation in the endpoints, in order to reduce the need to
exchange RTCP packets, and describes different options for implementing congestion control and rate
adaptation for RTP 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 historically been
UDP <xref target="RFC0768"/>, but a large variety of other underlying transport protocols
have been defined for various reasons (e.g., securing media exchange, or
providing a fallback when UDP is blocked along a network path). This document
describes RTP over QUIC, providing one more underlying transport protocol. The
reasons for using QUIC as an underlying transport protocol are given in
<xref target="motivations"/>.</t>
        <t>This document describes an application usage of QUIC (<xref target="RFC9308"/>).
As a baseline, the document 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.
Beyond this baseline, real-time applications can benefit from QUIC extensions such as unreliable 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="in-scope">
        <name>What's in Scope for this Document</name>
        <t>This document focuses on providing a secure encapsulation of RTP and RTCP packets
for transmission over QUIC. The expected usage is wherever RTP is used to carry
media packets, allowing QUIC in place of other underlying transport protocols.
We expect RoQ to be used in contexts where a signaling protocol is used to announce or negotiate a media
encapsulation for RTP and the associated transport parameters (such as IP address, port
number). RoQ does not provide a stand-alone media transport capability, because at a minimum, media
transport parameters would need to be statically configured.</t>
        <t>RoQ can be used in many of the point-to-point and multi-endpoint RTP topologies described in <xref target="RFC7667"/>, and can be used with both decentralized and centralized control topologies.
When RoQ is used in a decentralized topology, RTP packets are exchanged directly between ultimate RTP endpoints.
When RoQ is used in a centralized topology, RTP packets transit one or more middleboxes which might function as mixers or translators between ultimate RTP endpoints.
RoQ can also be used in RTP 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 limit the usage of RTP Audio Video Profiles (AVP)
(<xref target="RFC3551"/>), or any RTP-based mechanisms, although it might render some of
them unnecessary, e.g., Secure Real-Time Transport Protocol (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, although some information or functions provided by using RTCP
mechanisms might also be available from the underlying QUIC implementation.</t>
        <t>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
can be established in parallel using the same 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 Document</name>
        <t>This document does not 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>This document does not specify RoQ for point-to-multipoint applications, because QUIC
itself is not defined for multicast operation. The scope of this document is
limited to unicast RTP, even though nothing would prevent its use
in multicast setups if future QUIC extensions support multicast.</t>
        <t>RoQ does not define new congestion control and rate adaptation algorithms
for use with RTP media, and does not specify the use of particular congestion control and rate adaptation algorithms for use with RTP media. However, <xref target="congestion-control"/> discusses multiple ways that congestion control and rate adaptation could be performed at the QUIC and/or at
the RTP layer, and <xref target="api-considerations"/> describes information available at the QUIC layer that could be exposed
via an API for the benefit of RTP layer implementation.</t>
        <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>Note to the Reader:</strong> <xref target="RFC3550"/> actually describes two closely-related protocols - the RTP Data Transfer Protocol <xref section="5" sectionFormat="of" target="RFC3550"/>, and the RTP Control Protocol <xref section="6" sectionFormat="of" target="RFC3550"/>. In this document, the term "RTP" refers to the combination of RTP Data Transfer Protocol and RTP Control Protocol, because the distinction isn't relevant for encapsulation, and the term "RTCP" always refers to the RTP Control Protocol.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t><strong>Note to the Reader:</strong> the meaning of the terms "congestion avoidance", "congestion control" and "rate adaptation" in the IETF community have evolved over the decades since "slow start" and "congestion avoidance" were added as mandatory to implement in TCP, in <xref section="4.2.2.15" sectionFormat="of" target="RFC1122"/>. Historically, "congestion control" usually referred to "achieving network stability" (<xref target="VJMK88"/>), by protecting the network from senders who continue to transmit packets that exceed the ability of the network to carry them, even after packet loss occurs (called "congestion collapse").</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>Modern general-purpose "congestion control" algorithms have moved beyond avoiding congestion collapse, and work to avoid "bufferbloat", which causes increasing round-trip delays, as described in <xref target="rate-adaptation-application-layer"/>.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>"Rate adaptation" more commonly refers to strategies intended to guide senders on when to send "the next packet", so that one-way delays along the network path remain minimal.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>When RTP runs over QUIC, as described in this document, QUIC is performing congestion control, and the RTP application is responsible for performing rate adaptation.</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>In this document, these terms are used with the meanings listed below, with the recognition that not all the references in this document use these terms in the same way.</t>
        </li>
      </ul>
      <t>The following terms are used in this document:</t>
      <dl>
        <dt>Bandwidth Estimation:</dt>
        <dd>
          <t>An algorithm to estimate the available bandwidth of a link in a network. Such
an estimation can be used for rate adaptation, i.e., adapt the rate at which an
application transmits data.</t>
        </dd>
        <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, which might cause intermediaries on the path to drop packets before they arrive at the receiver.</t>
        </dd>
        <dt>Datagram:</dt>
        <dd>
          <t>The term "datagram" is ambiguous. Without a qualifier, "datagram" could refer to a UDP packet, or a QUIC DATAGRAM frame, as defined in QUIC's unreliable DATAGRAM extension <xref target="RFC9221"/>, or an RTP packet encapsulated in UDP, or an RTP packet capsulated in QUIC DATAGRAM frame. This document uses the uppercase "DATAGRAM" to refer to a QUIC DATAGRAM frame and the term RoQ datagram as a short form of "RTP packet encapsulated in a QUIC DATAGRAM frame".</t>
        </dd>
      </dl>
      <t>If not explicitly qualified, the term "datagram" in this document refers to an RTP packet, and the uppercase "DATAGRAM" refers to a QUIC DATAGRAM frame. This document also uses the term "RoQ datagram" as a short form of "RTP packet encapsulated in a QUIC DATAGRAM frame".</t>
      <dl>
        <dt>Endpoint:</dt>
        <dd>
          <t>A QUIC client or QUIC server that participates in an RoQ session. "A RoQ endpoint" is used in this document where that seems clearer than "an endpoint" without qualification.</t>
        </dd>
        <dt>Early data:</dt>
        <dd>
          <t>Application data carried in a QUIC 0-RTT packet payload, as defined in <xref target="RFC9000"/>. In this document, the early data would be an RTP packet.</t>
        </dd>
        <dt>Frame:</dt>
        <dd>
          <t>A QUIC frame as defined in <xref target="RFC9000"/>.</t>
        </dd>
        <dt>Packet:</dt>
        <dd>
          <t>The term "packet" is ambiguous. Without a qualifier, "packet" could refer to a UDP packet, or a QUIC packet, or an RTP/RTCP packet encapsulated in QUIC, or a media packet encapsulated in RTP. If not explicitly qualified, the term "packet" in this document refers to a QUIC packet.</t>
        </dd>
        <dt>Peer:</dt>
        <dd>
          <t>The term "peer" is ambiguous, and without a qualifier could be understood to refer to an RTP endpoint, a RoQ endpoint, or a QUIC endpoint. In this document, a "peer" is "the other RoQ endpoint that a RoQ endpoint is communicating with", and does not have anything to do with "peer-to-peer" operation versus "client-server" operation.</t>
        </dd>
        <dt>Rate Adaptation:</dt>
        <dd>
          <t>An application-level mechanism that adjusts the sending rate of an application in response to changing path conditions. For example, an application sending video might respond to indications of congestion by adjusting the resolution of the video it is sending.</t>
        </dd>
        <dt>Receiver:</dt>
        <dd>
          <t>An endpoint that receives media in RTP packets and might send or receive RTCP packets.</t>
        </dd>
        <dt>Sender:</dt>
        <dd>
          <t>An endpoint that sends media in RTP packets and might send or receive RTCP packets.</t>
        </dd>
        <dt>Stream:</dt>
        <dd>
          <t>The term "stream" is ambiguous. Without a qualifier, "stream" could refer to a QUIC stream, as defined in <xref target="RFC9000"/>, a series of media samples, or a series of RTP packets. If not explicitly qualified, the term "stream" in this document refers to a QUIC stream and the term "STREAM" refers to a single QUIC STREAM frame. This document also uses the term "RTP stream" or "RTCP streams" as a short form of "a series of RTP packets" or "a series of RTCP packets", the term "RoQ stream" as a short form of "one or more RTP packets encapsulated in QUIC streams" and the term "media stream" as a short form of "a series of one or more media samples".</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 both QUIC streams and
QUIC DATAGRAMs to transport real-time data, and thus, if RTP packets
are to be sent over QUIC DATAGRAMs, the QUIC
implementation MUST support QUIC's DATAGRAM extension.</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.
<xref target="RFC9221"/> 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 depend on the application and on the codec in use. For example, adjusting quantization in response to changing network conditions might work well in many cases, but if what's being shared is video that includes text, maintaining readability is important.</t>
      <t>As of this writing, the IETF has produced two Experimental-track congestion control documents for real-time media, Network-Assisted Dynamic Adaptation (NADA) <xref target="RFC8698"/> and Self-Clocked Rate Adaptation for Multimedia (SCReAM) <xref target="RFC8298"/>.
These congestion control algorithms use feedback about the network's performance to calculate target bitrates. When these algorithms are used with RTP, the necessary feedback is generated at the receiver and sent back to the sender via RTCP.</t>
      <t>Since QUIC itself collects some metrics about the network's performance, these QUIC
metrics can be used to generate the required feedback at the sender-side and
provide it to the congestion control algorithm to avoid the additional overhead of the
RTCP stream. This is discussed in more detail in <xref target="rtcp-mapping"/>.</t>
      <section anchor="motivations">
        <name>Motivation</name>
        <t>From time to time, someone asks the reasonable question, "why would 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 payloads have existed since the introduction of the Secure Real-time Transport Protocol (SRTP) <xref target="RFC3711"/>, the additional encryption of RTP 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 the QUIC header fields needed to establish a connection, to "short headers", which only expose the absolute minimum QUIC header fields needed to identify an existing connection to the receiver, so that the QUIC payload is presented to the correct QUIC application <xref target="RFC8999"/>.</t>
        </section>
        <section anchor="always-on-internet-safe-congestion-control">
          <name>"Always-On" Internet-Safe Congestion Control</name>
          <t>When RTP is carried directly over UDP, as is commonly done, the underlying UDP protocol provides multiplexing using UDP ports, but no transport services beyond multiplexing are provided to the application. All congestion control behavior is up to the RTP application itself, and if anything goes wrong with the application and this condition results in an RTP sender failing to recognize that it is contributing to path congestion, the "worst case" response is to invoke the RTP "circuit breaker" procedures <xref target="RFC8083"/>. These procedures result 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 estimates are independent of any measurements RTP senders and receivers are maintaining. The result is that even if an RTP sender attempts to "send" in the presence of persistent path congestion, QUIC congestion control procedures (for example, the procedures defined in <xref target="RFC9002"/>) will cause the RTP packets to be buffered while QUIC responds to detected packet loss. This happens without RTP senders taking any action, but the RTP sender has no control over this QUIC mechanism.</t>
          <t>Moreover, when a single QUIC connection is used to multiplex both RTP and non-RTP packets as described in <xref target="single-path"/>, the shared QUIC connection will still be Internet-safe, with no coordination required.</t>
          <t>While QUIC's response to congestion ensures that RoQ will be "Internet-safe", from the network's perspective, it is helpful to remember that a QUIC sender responds to detected congestion by delaying packets that are already available to send, to give the path to the QUIC receiver time to recover from congestion.</t>
          <ul spacing="normal">
            <li>
              <t>If the QUIC connection encapsulates RTP, this means that some RTP packets will be delayed, arriving at the receiver later than a consumer of the RTP flow might prefer.</t>
            </li>
            <li>
              <t>If the QUIC connection also encapsulates RTCP, this means that these RTCP messages will also be delayed, and will not be sent in a timely manner. This delay will impact RTT measurements using RTCP and can interfere with a sender's ability to stabilize rate control and achieve audio/video synchronization.</t>
            </li>
          </ul>
          <t>In summary,</t>
          <ul spacing="normal">
            <li>
              <t>Timely RTP stream-level rate adaptation will give a better user experience by minimizing endpoint queuing delays and packet loss, but</t>
            </li>
            <li>
              <t>in the presence of packet loss, QUIC connection-level congestion control will respond more quickly and possibly more smoothly to the end of congestion than RTP "circuit breakers".</t>
            </li>
          </ul>
        </section>
        <section anchor="ra-quic-feedback">
          <name>RTP Rate Adaptation Based on QUIC Feedback</name>
          <t>When RTP is carried directly over UDP, RTP makes use of a large number of RTP-specific feedback mechanisms because 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 congestion control for any QUIC connection, regardless of the application reflected in the payload.
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 might 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"/>.
Because the necessary "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 (Maximum Transmission Unit) supported by conformant QUIC implementations is 1200 bytes <xref target="RFC9000"/>. 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 Path MTU size that the receiver can accept, and that the path between sender and receiver can support. The actual Path MTU can be larger than the Minimum Path MTU.</t>
          <t>This is especially useful in certain conferencing topologies, where otherwise senders would have no choice but to use the lowest Path MTU for all conference participants. 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 packets 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>This document defines a flow identifier for multiplexing multiple RTP and
RTCP ports on the same QUIC connection to conserve ports, especially at NATs and
firewalls. <xref target="multiplexing"/> describes the multiplexing in more detail. Future
extensions could further build on the flow identifier to multiplex RTP with
other protocols on the same connection, as long as these protocols can co-exist
with RTP without interfering with the ability of this connection to carry
real-time media.</t>
        </section>
        <section anchor="multiple-paths">
          <name>Exploiting Multiple Paths</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 as described in <xref section="9" sectionFormat="of" 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 could be desirable for a number of reasons, but to give one example, this allows a QUIC connection to survive address changes due to a middlebox allocating a new outgoing port, or even a new outgoing IP address.</t>
          <t>The Multipath Extension for QUIC <xref target="I-D.draft-ietf-quic-multipath"/> would allow the application to actively use two or more paths simultaneously, but in all other respects, this functionality is the same as QUIC connection migration.</t>
          <t>A sender can use these capabilities to more effectively exploit multiple paths between sender and receiver with no action required from the application, even if these paths have different path characteristics.  Examples of these different path characteristics include senders handling paths differently if one path has higher available bandwidth and the other has lower one-way latency, or if one is a more costly cellular path and the other is a less costly WiFi path.</t>
          <t>Some of these differences can be detected by QUIC itself, while other differences must be described to QUIC based on policy, etc. Possible RTP implementation strategies for path selection and utilization are not discussed in this document. Path scheduling APIs to let applications control these mechanisms are a topic for future research and might need further specification in future documents.</t>
        </section>
        <section anchor="new-quic">
          <name>Exploiting New QUIC Capabilities</name>
          <t>The first version of the QUIC protocol described in <xref target="RFC9000"/> has been completed, but extensions to QUIC are still under active development in the IETF. Because of this, using QUIC as a transport for a mature protocol like RTP allows developers to exploit new transport capabilities as they become available.</t>
        </section>
      </section>
      <section anchor="streams-and-datagrams">
        <name>RTP with QUIC Streams, QUIC DATAGRAMs, and a Mixture of Both</name>
        <t>This document describes the use of QUIC streams and DATAGRAMs as RTP encapsulations but does not take a position on which encapsulation an application ought to use. Indeed, an application can use both QUIC streams and DATAGRAM encapsulations on the same QUIC connection. The choice of encapsulation is left to the application developer, but it is worth noting differences that are relevant when making this choice.</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 need - for example, 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 <xref target="RFC9221"/> were developed as a QUIC extension, intended to support applications that do not need reliable delivery of application data. This extension defines two DATAGRAM frame types (one including a length field, the other not including a length field), and these DATAGRAM frames can co-exist with QUIC streams 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 STREAM frames. QUIC implementations can present an API to allow applications to assign relative priorities within a QUIC connection, but this is not mandated by the standard and might not be present in all implementations.</t>
        <t>Because 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>
            <t>DATAGRAM frames do not provide any explicit flow control signaling. This means that a QUIC receiver might 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.</t>
          </li>
          <li>
            <t>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 Path MTU between endpoints.</t>
          </li>
          <li>
            <t>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.</t>
          </li>
        </ul>
        <t>DATAGRAM frames do inherit the QUIC connection's congestion controller. This means that although there is no frame-level flow control, DATAGRAM frames can 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 might not be present in all implementations.</t>
        <t>Because DATAGRAMs are an extension to QUIC, a RoQ endpoint cannot assume that its peer supports this extension.
The RoQ endpoint might discover that its peer does not support DATAGRAMs in one of two ways:</t>
        <ul spacing="normal">
          <li>
            <t>as part of the signaling process to set up QUIC connections, or</t>
          </li>
          <li>
            <t>during negotiation of the DATAGRAM extension during the QUIC handshake.</t>
          </li>
        </ul>
        <t>When either of these situations happen, the RoQ endpoint needs to make a decision about what to do next.</t>
        <ul spacing="normal">
          <li>
            <t>If the use of DATAGRAMs was critical for the application, the endpoint can simply close the QUIC connection, allowing someone or something to correct this mismatch, so that DATAGRAMs can be used.</t>
          </li>
          <li>
            <t>If the use of DATAGRAMs was not critical for the application, the endpoint can negotiate the use of QUIC streams instead.</t>
          </li>
        </ul>
      </section>
      <section anchor="topologies">
        <name>Supported RTP Topologies</name>
        <t>RoQ supports only 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
needs to access the content of QUIC frames (e.g., <em>Topo-PtP-Translator</em>, <em>Topo-PtP-Relay</em>, <em>Topo-Trn-Translator</em>, <em>Topo-Media-Translator</em>),
the QUIC connection will 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 when 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 over DATAGRAMs, where the max_datagram_frame_size
of a QUIC DATAGRAM can be smaller than the MTU of a UDP datagram. In both cases,
the translator might need to rewrite the RTP packets to fit into the smaller MTU
of the other protocol. Such a translator might 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>Not supported, because QUIC <xref target="RFC9000"/> does not support NAT traversal.</t>
          </dd>
          <dt>Note-MTU:</dt>
          <dd>
            <t>Supported, but might require MTU adaptation.</t>
          </dd>
          <dt>Note-Sec:</dt>
          <dd>
            <t>Note that because RoQ uses QUIC as its underlying transport, and QUIC authenticates the entirety of each packet and encrypts as much of each packet as is practical, RoQ secures both RTP headers and RTP payloads, while 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>Not supported, because QUIC <xref target="RFC9000"/> does not support IP multicast.</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>Supported for IP unicast paths between RTP sources and translators.</t>
          </dd>
          <dt>Note-Topo-Mixer:</dt>
          <dd>
            <t>Supported for IP 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 Application-Layer Protocol Negotiation</name>
      <t>QUIC requires the use of Application-Layer Protocol Negotiation (ALPN) <xref target="RFC7301"/> tokens during connection setup. RoQ
uses "roq" as the ALPN token, included as part of the TLS handshake (see also
<xref target="iana-considerations"/>).</t>
      <t>Note that the "roq" ALPN token is not tied to a specific RTP profile, even
though the RTP profile could be considered part of the application usage.  This allows
different RTP sessions, which might use different RTP profiles, to be
carried within the same QUIC connection.</t>
      <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 ALPN token "roq" to identify itself during QUIC connection setup.</t>
        <t>Only implementations of the final, published RFC can identify themselves as
"roq". 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-09 is identified using the string "roq-09".</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 packets in QUIC.</t>
      <t>QUIC supports two transport methods: QUIC streams <xref target="RFC9000"/> and DATAGRAMs <xref target="RFC9221"/>. This document specifies mappings of RTP to both transport modes.
Senders MAY combine both modes by sending some RTP packets over the same or different QUIC streams and others in DATAGRAMs.</t>
      <t><xref target="multiplexing"/> introduces a multiplexing mechanism that supports multiplexing multiple RTP sessions and RTCP. <xref target="quic-streams"/> and <xref target="quic-datagrams"/> explain
the specifics of mapping RTP to QUIC streams and DATAGRAMs, respectively.</t>
      <section anchor="multiplexing">
        <name>Multiplexing</name>
        <t>RoQ uses flow identifiers to multiplex different RTP 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
an RTP stream.</t>
        <t>In a QUIC connection using the ALPN token defined in <xref target="alpn"/>, every DATAGRAM and every QUIC stream MUST start with a flow identifier.
An endpoint 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 packets of different RTP sessions MUST use distinct flow
identifiers. If endpoints wish to send multiple types of media in a single RTP
session, they can do so by following the guidance specified in <xref target="RFC8860"/>.</t>
        <t>A single RTP session can 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 can use
the same flow identifier (following the procedures defined in <xref target="RFC5761"/>), or
they can use different flow identifiers.</t>
        <t>Endpoints need to associate flow identifiers with RTP streams. Depending on the
context of the application, the association can be statically configured,
signaled using an out-of-band signaling mechanism (e.g., SDP), or applications
might be able to identify the stream based on the RTP packets sent on the stream
(e.g., by inspecting the payload type).</t>
        <t>If an endpoint receives a flow identifier that it cannot associate with an RTP
stream, the endpoint MAY close the connection using the ROQ_UNKNOWN_FLOW_ID
error code. Closing the connection can be a valid response if it is not expected
that out of band signaling is still ongoing and the application cannot handle
unknown flow identifiers.</t>
        <t>If the association of flow identifiers with RTP streams depends on out-of-band
signaling, the signaling mechanism SHOULD be completed before the exchange of
RTP packets using the new flow identifiers starts.</t>
        <t>In cases where it cannot be guaranteed that signaling is completed before RTP
packets are transmitted, streams or DATAGRAMs with a given flow identifer can
arrive before the signaling finished. In that case, an endpoint cannot associate
the stream or DATAGRAM with the corresponding RTP stream. The endpoint can
buffer streams and DATAGRAMs using an unknown flow identifier until they can be
associated with the corresponding RTP stream. To avoid resource exhaustion, the
buffering endpoint MUST limit the number of streams and DATAGRAMs to buffer. If
the number of buffered streams exceeds the limit on buffered streams, the
endpoint MUST send a STOP_SENDING with the error code ROQ_UNKNOWN_FLOW_ID. It is
an implementation's choice on which stream to send STOP_SENDING. If the number
of buffered DATAGRAMs exceeds the limit on buffered DATAGRAMs, the endpoint MUST
drop a DATAGRAM. It is an implementation's choice which DATAGRAMs to drop.</t>
        <t>Flow identifiers introduce some overhead in addition to the header overhead of
RTP and QUIC. QUIC variable-length integers require between one and eight
bytes depending on the number expressed. Thus, using low
numbers as session identifiers first will minimize this additional overhead.</t>
      </section>
      <section anchor="quic-streams">
        <name>QUIC Streams</name>
        <t>To send RTP packets over QUIC streams, a sender MUST open at least one new unidirectional QUIC stream.
RoQ uses unidirectional streams, because there is no synchronous relationship between sent and received RTP packets.
An endpoint that receives a bidirectional stream with a flow identifier that is associated with an RTP stream, MUST stop reading from the stream and send a CONNECTION_CLOSE frame with the frame type set to APPLICATION_ERROR and the error code set to ROQ_STREAM_CREATION_ERROR.</t>
        <t>The underlying QUIC implementation might be acting as either a QUIC client or QUIC server, so the unidirectional QUIC stream can be either client-initiated or server-initiated, as described in <xref section="2.1" sectionFormat="of" target="RFC9000"/>, depending on the role.
The QUIC implementation's role is not controlled by RoQ, and can be negotiated using a separate signaling protocol.</t>
        <t>A RoQ sender can open new QUIC streams for different RTP packets using the same flow identifier. This allows RoQ senders to use QUIC streams while avoiding head-of-line blocking.</t>
        <t>Because a sender can continue sending on a stream with a lower stream identifier after starting packet transmission on a stream with a higher stream identifier, a RoQ receiver MUST be prepared to receive RoQ packets on any number of QUIC streams (subject to its limit on parallel open streams) and MUST NOT make assumptions about which RTP sequence numbers are carried in any particular stream.</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 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 Payload:</dt>
            <dd>
              <t>Contains the RTP 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 payloads. All RTP 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
packet, followed by the RTP packet itself, see <xref target="fig-rtp-stream-payload"/>.</t>
          <figure anchor="fig-rtp-stream-payload">
            <name>RTP payload for QUIC streams</name>
            <artwork><![CDATA[
RTP Payload {
  Length(i),
  RTP 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 packets in bytes.</t>
            </dd>
            <dt>RTP Packet:</dt>
            <dd>
              <t>The RTP 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 receiver that is no longer interested in reading a certain portion of
the media stream can signal this to the sending peer using a STOP_SENDING
frame.</t>
          <t>If a RoQ sender discovers that an RTP packet is no longer needed and knows that the RTP packet has not yet been successfully and completely transmitted, it can use RESET_STREAM to tell the RoQ receiver that the RoQ sender is discarding the RTP packet.</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>STOP_SENDING is not a request to the sender to stop sending RTP media, only an indication that a RoQ receiver stopped reading the QUIC stream being used to carry that RTP media.
This can mean that the RoQ receiver is no longer able to use the media frames being received because they are "too old".
A sender with additional media frames to send can continue sending them on another QUIC stream.
Alternatively, new media frames can be sent as DATAGRAMs (see <xref target="quic-datagrams"/>).
In either case, a RoQ sender resuming operation after receiving STOP_SENDING can continue starting with the newest media frames available for sending. This allows a RoQ receiver to "fast forward" to media frames that are "new enough" to be used.</t>
          <t>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) or DATAGRAMs.</t>
          <t>Note that an RTP receiver cannot request a reset of a particular media
frame because the sending QUIC implementation might already have sent data for
one or more following media frames on the same stream. In that case, STOP_SENDING and the
resulting RESET_STREAM would also discard the following media frames and thus lead
to unintentionally skipping one or more media frames.</t>
          <t>A translator that translates between two endpoints, both connected via QUIC,
MUST forward RESET_STREAM frames received from one end to the other unless it
forwards the RTP packets encapsulated in DATAGRAMs.</t>
          <t>QUIC implementations will fragment large RTP packets into smaller QUIC STREAM
frames. The data carried in these QUIC STREAM frames is transmitted reliably and
is delivered to the receiving application in order, so 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 data that was
carried in QUIC frames that were lost in transit is retransmitted by QUIC.</t>
        </section>
        <section anchor="quic-flow-cc">
          <name>Flow control and MAX_STREAMS</name>
          <t>In order to permit QUIC streams to open, a RoQ sender MUST configure non-zero minimum values for the number of permitted streams and the initial stream flow-control window.
These minimum values control the number of parallel, or simultaneously active, RTP flows.
Endpoints that excessively restrict the number of streams or the flow-control window of these streams will increase the chance that the sending peer reaches the limit early and becomes blocked.</t>
          <t>Opening new streams for new packets can 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 can 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 at any time.</t>
          <t>As an example, consider a conference scenario
with 20 participants. Each participant receives audio and video streams of every
other participant from a central RTP middlebox. 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 RTP middlebox every
second.</t>
          <t>In addition, the receiver ought to also consider the requirements of RTCP streams.
These considerations can also be relevant when implementing signaling since it
can be necessary to inform the receiver about how many stream
credits it will have to provide to the sending peer, and how rapidly it must provide these stream credits.</t>
        </section>
      </section>
      <section anchor="quic-datagrams">
        <name>QUIC DATAGRAMs</name>
        <t>Senders can also transmit RTP packets in QUIC DATAGRAMs, using
a QUIC extension described in <xref target="RFC9221"/>.
DATAGRAMs can only be used if the use of the DATAGRAM extension was successfully negotiated during the QUIC handshake.
If the DATAGRAM extension was negotiated using a signaling protocol, but was not also negotiated during the resulting QUIC handshake, an endpoint can close the connection with the ROQ_EXPECTATION_UNMET error code.</t>
        <t>DATAGRAMs preserve application frame boundaries.
Thus, a single RTP packet can be mapped to a single DATAGRAM without additional framing.
Because QUIC DATAGRAMs cannot be IP-fragmented (<xref section="5" sectionFormat="of" target="RFC9221"/>), senders need to consider the header overhead associated with DATAGRAMs, and ensure that the RTP packets, including their payloads, flow identifier, QUIC, and IP headers, will fit into the 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 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 Packet:</dt>
          <dd>
            <t>The RTP packet to transmit.</t>
          </dd>
        </dl>
        <t>RoQ senders need to be aware that QUIC uses the concept of QUIC frames, and QUIC connections use
different kinds of QUIC frames to carry different application and control data types.
A single QUIC packet can contain more than one QUIC frame, including, for example, QUIC STREAM frames or DATAGRAM frames carrying application data and ACK frames carrying QUIC acknowledgments, 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 ACK 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 would need to create additional packets for ACK frames, 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 ACK frames. Another implication is that multiple RTP packets in either QUIC streams or QUIC DATAGRAMs might be encapsulated in a single QUIC packet, which is discussed in more detail in <xref target="coalescing-packets"/>.</t>
        <t>Since DATAGRAMs are not retransmitted on loss (see also
<xref target="transport-layer-feedback"/> for loss signaling), if an application is using DATAGRAMs and wishes to
retransmit lost RTP packets, the application has to carry out that retransmission.
RTP retransmissions can be done in the same RTP session or in a
different 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 anchor="encapsulation-considerations-for-rtcp">
        <name>Encapsulation Considerations for RTCP</name>
        <t>The same encapsulation as described above for RTP packets can also be used to carry RTCP packets back from the receiver to the sender. Both RTP and RTCP can be transported in either QUIC DATAGRAM frames or QUIC STREAM frames.
If a receiver sends aggregated RTCP reports for multiple RTP streams, the flow identifier no longer matches the flow identifier for a single RTP stream. Thus the sender always needs to inspect the received RTCP packet independent of the flow identifier used to the RTCP flow to determine to which of the RTP flows the received packets apply.
This is also the reason why bidirectional streams are not allowed, as the received RTCP packets would not necessarily apply to the same RTP stream being sent on the same flow.
In addition, allowing a bidirectional stream could result in a situation where the sender has closed its side of the QUIC stream, but the receiver continues to send RTCP in the opposite direction.
Thus it makes more sense if the sender and receiver agree on one or multiple unidirectional streams to transport any RTCP messages.</t>
      </section>
    </section>
    <section anchor="connection-shutdown">
      <name>Connection Shutdown</name>
      <t>Either endpoint can close the connection for any of a variety of reasons. If one of the
endpoints wants to close the RoQ connection, the endpoint can use a QUIC
CONNECTION_CLOSE frame with one of the error codes defined in
<xref target="error-handling"/>.</t>
    </section>
    <section anchor="error-handling">
      <name>Error Handling</name>
      <t>The following error codes are defined for use when abruptly terminating RoQ streams,
aborting reading of RoQ streams, or immediately closing RoQ connections.</t>
      <dl>
        <dt>ROQ_NO_ERROR (0x00):</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 (0x01):</dt>
        <dd>
          <t>An error that does not match a more specific error code occurred.</t>
        </dd>
        <dt>ROQ_INTERNAL_ERROR (0x02):</dt>
        <dd>
          <t>An internal error has occurred in the RoQ stack.</t>
        </dd>
        <dt>ROQ_PACKET_ERROR (0x03):</dt>
        <dd>
          <t>Invalid payload format, e.g., length does not match RTP packet, invalid flow id
encoding, non-RTP on RTP-flow ID, etc.</t>
        </dd>
        <dt>ROQ_STREAM_CREATION_ERROR (0x04):</dt>
        <dd>
          <t>The endpoint detected that its peer created a stream that violates the ROQ protocol, e.g., a bidirectional stream, for sending RTP packets.</t>
        </dd>
        <dt>ROQ_FRAME_CANCELLED (0x05):</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 (0x06):</dt>
        <dd>
          <t>An endpoint was unable to handle a flow identifier, e.g., because it was not
signaled or because the endpoint does not support multiplexing using arbitrary
flow identifiers.</t>
        </dd>
        <dt>ROQ_EXPECTATION_UNMET (0x07):</dt>
        <dd>
          <t>RoQ out-of-band signaling set expectations for QUIC transport, but the resulting QUIC connection would not meet those expectations.</t>
        </dd>
      </dl>
    </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. QUIC is a
congestion-controlled transport protocol. RTP does not mandate a single
congestion control mechanism. RTP suggests that the RTP profile defines
congestion control according to the expected properties of the application's
environment.</t>
      <t>This document discusses aspects of transport level congestion control in
<xref target="cc-quic-layer"/> and application layer rate control in
<xref target="rate-adaptation-application-layer"/>. It does not mandate any specific
congestion control algorithm for QUIC or rate adaptation algorithm for RTP.</t>
      <t>This document also gives guidance about avoiding problems with <em>nested</em>
congestion controllers in <xref target="rate-adaptation-application-layer"/>.</t>
      <t>This document also discusses congestion control implications of using shared or
multiple separate QUIC connections to send and receive multiple independent
RTP streams in <xref target="shared-connections"/>.</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>Congestion control mechanisms are often implemented at the transport layer of the protocol stack, but can also be implemented at the application layer.</t>
        <t>A congestion control mechanism could respond to actual packet loss (detected by timeouts), or to impending packet loss (signaled by mechanisms such as Explicit Congestion Notification <xref target="RFC3168"/>).</t>
        <t>For real-time traffic, it is best that the QUIC implementation uses a congestion
controller that aims at keeping queues at intermediary
network elements, and thus latency, as short as possible. Delay-based congestion control algorithms
might use, for example, an increasing one-way delay as a signal of impending
congestion, and adjust the sending rate to prevent continued increases in
one-way delay.</t>
        <t>A wide variety of congestion control 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 such algorithms in Experimental RFCs (SCReAM <xref target="RFC8298"/> and NADA <xref target="RFC8698"/>).
These algorithms
for RTP are specifically tailored for real-time transmission at low latencies,
but the guidance in this section would apply to any congestion control algorithm that meets the
requirements described in "Congestion Control Requirements for Interactive
Real-Time Media" <xref target="RFC8836"/>.</t>
        <t>Some low latency congestion control algorithms depend on detailed arrival time feedback to estimate the current one-way delay between sender and receiver, which is unavailable in QUIC <xref target="RFC9000"/> without extensions.
QUIC implementations can use an extension to add this information to QUIC as described in <xref target="optional-extensions"/>.
In addition to these dedicated real-time media congestion-control algorithms, QUIC implementations could support the Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service <xref target="RFC9330"/>, which limits growth in round-trip delays that result from increasing queuing delays.
While L4S does not rely on a QUIC protocol extension, L4S does rely on support from network devices along the path from sender to receiver.</t>
        <t>The application needs a mechanism to query the available bandwidth to adapt
media codec configurations. If the employed congestion controller of the QUIC
connection keeps an estimate of the available bandwidth, it could also expose an API
to the application to query the current estimate. If the congestion controller
cannot provide a current bandwidth estimate to the application, the sender can
implement an alternative bandwidth estimation at the application layer as
described in <xref target="rate-adaptation-application-layer"/>.</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 and minimize variation in
inter-packet arrival times. The currently proposed congestion control algorithms
for real-time communications (e.g., SCReAM and NADA) provide such pacing
mechanisms, and the QUIC exemplary congestion control algorithm (<xref section="7.7" sectionFormat="of" target="RFC9002"/>) recommends pacing for senders.</t>
      </section>
      <section anchor="rate-adaptation-application-layer">
        <name>Rate Adaptation at the 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>If an application cannot access a bandwidth estimation from the QUIC layer, the
application can alternatively implement a bandwidth estimation algorithm at the
application layer. Congestion control algorithms for real-time media such as GCC
<xref target="I-D.draft-ietf-rmcat-gcc"/>, NADA <xref target="RFC8698"/>, and SCReAM <xref target="RFC8298"/> expose
a target bitrate to dynamically reconfigure media codecs to produce media at
the rate of the observed available bandwidth. Applications can use the same
bandwidth estimation to adapt their rate when using QUIC. However, running an
additional congestion control algorithm at the application layer can have
unintended effects due to the interaction of two <em>nested</em> congestion
controllers.</t>
        <t>If an RTP application paces its media transmission at a rate that does not saturate path bandwidth,
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 being detected) ought to rarely come into play. If an RTP
application chooses RoQ as its transport, sends enough media to saturate the available
path bandwidth, and does not adapt its sending rate, these drastic measures will be
required to avoid sustained or oscillating congestion along the path.</t>
        <t>Thus, applications are advised to only use the bandwidth estimation without
running the complete congestion control algorithm at the application layer
before passing data to the QUIC layer.</t>
        <t>The bandwidth estimation algorithm typically needs some feedback on the
transmission performance. This feedback can be collected via RTCP or following
the guidelines in <xref target="rtcp-mapping"/> and <xref target="api-considerations"/>.</t>
      </section>
      <section anchor="shared-connections">
        <name>Sharing QUIC connections</name>
        <t>Two endpoints can establish channels to exchange more than one type of
data simultaneously. The channels can be intended to carry real-time RTP data or
other non-real-time data. This can be realized in different ways.</t>
        <ul spacing="normal">
          <li>
            <t>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.</t>
          </li>
          <li>
            <t>Alternatively, all real-time channels are mapped to one QUIC connection, while
a separate QUIC connection is created for the non-real-time channels.</t>
          </li>
          <li>
            <t>A third option is to multiplex all channels, whether real-time or non-real-time, in a single QUIC connection via an
extension to RoQ.</t>
          </li>
        </ul>
        <t>In the first two 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 by extending RoQ,
the underlying QUIC implementation will likely use the same congestion
controller for all channels in the shared QUIC connection. For this reason,
applications multiplexing real-time and non-real-time channels in one connection
will need to implement some form of prioritization or bandwidth allocation for
the different channels.</t>
      </section>
    </section>
    <section anchor="s-d-m-guidance">
      <name>Guidance on Choosing QUIC Streams, QUIC DATAGRAMs, or a Mixture</name>
      <t>As noted in <xref target="streams-and-datagrams"/>, this document does not take a position on using QUIC streams, QUIC DATAGRAMs, or a mixture of both, for any particular RoQ use case or application. It does seem useful to include observations that might guide implementers who will need to make choices about that.</t>
      <section anchor="rtp-considerations">
        <name>RTP Considerations</name>
        <t>One implementation goal might be to minimize processing overhead, for applications that are migrating from RTP over UDP to RoQ. These applications don't rely on any transport protocol behaviors beyond UDP, which can be described as "IP plus multiplexing". The implementers might be motivated by one or more of the advantages of encapsulating RTP in QUIC that are described in <xref target="motivations"/>, but they do not need any of the advantages that would apply when encapsulating RTP in QUIC streams. For these applications, simply placing each RTP packet in a QUIC DATAGRAM frame when it becomes available would be sufficient, using no QUIC streams at all.</t>
        <t>Another implementation goal might be to prioritize specific types of video frames over other types. For these applications, placing each type of video frame in a separate QUIC stream would allow the RoQ receiver to focus on the most important video frames more easily. This also allows the implementer to rely on QUIC's "byte stream" abstraction, freeing the application from dealing with MTU size restrictions, in contrast to the need to fit RTP packets into QUIC DATAGRAMs. The application might use QUIC streams for all of the RTP packets carried over this specific QUIC connection, with no QUIC DATAGRAMs at all.</t>
        <t>Some applications might have implementation goals that don't fit neatly into "QUIC streams only" or "QUIC DATAGRAMs only" categories. For example, another implementation goal might be to use QUIC streams to carry RTP video frames, but to use QUIC DATAGRAMs to carry RTP audio frames, which are typically much smaller. Because humans tend to tolerate inconsistent behavior in video better than inconsistent behavior in audio, the application might add Forward Error Correction <xref target="RFC6363"/> to RTP audio packets and encapsulate the result in QUIC DATAGRAMs, while encapsulating RTP video packets in QUIC streams.</t>
        <t>As noted in <xref target="multiplexing"/>, all RoQ streams and RoQ datagrams begin with a flow identifier. This allows a RoQ sender to begin by encapsulating related RTP packets in QUIC streams and then switch to carrying them in QUIC DATAGRAMs, or vice versa. RoQ receivers need to be prepared to accept any valid RTP packet with a given flow identifier, whether it started by being encapsulated in QUIC streams or in QUIC DATAGRAMs, and RoQ receivers need to be prepared to accept RTP flows that switch from QUIC stream encapsulation to QUIC DATAGRAMs, or vice versa.</t>
        <t>Because QUIC provides a capability to migrate connections for various reasons, including recovering from a path failure (<xref section="9" sectionFormat="of" target="RFC9000"/>), when a QUIC connection migrates, a RoQ sender has the opportunity to revisit decisions about which RTP packets are encapsulated in QUIC streams, and which RTP packets are encapsulated in QUIC DATAGRAMs. Again, RoQ receivers need to be prepared for this eventuality.</t>
      </section>
      <section anchor="RTCP-considerations">
        <name>RTCP Considerations</name>
        <t>RTCP was originally defined to be used with UDP, which implies (1)
the only buffering present would be at the IP interface level, so that transmission timing is largely under the control of the application, and (2) that the overhead, <em>avg_rtcp_size</em>, used to
compute the RTCP transmission interval could be deterministically computed by
adding the IP and UDP headers. Both change when carrying RTCP over QUIC and
they change in different ways when using QUIC streams vs. QUIC datagrams.</t>
        <section anchor="rtcp-over-datagrams">
          <name>RTCP over QUIC datagrams</name>
          <t>When sending RTCP packets in QUIC datagrams this implies that an RTCP packet may not
be immediately transmitted as it is subject to queuing and multiplexing with RTP
packets and subject to QUIC congestion control. This means that a sending timestamp
added to an RTCP packet, e.g., in an SR packet, may differ in unforeseeable ways
from the actual time when the RTCP packet gets sent into the network while these are
usually fairly close to each other for RTP-over-UDP. Effectively, we have a
application sending timestamp <em>t_a</em> and the network transmission timestamp
<em>t_n</em>. Applications just have to be aware that RTCP does not measure the network
level RTT but rather the application layer RTT.</t>
          <t>Moreover, the true overhead per RTCP packet cannot easily be determined: this is
because, in addition to adding the IP and UDP headers, the QUIC (short) header
and the QUIC datagram frame header are to be considered but their sizes vary and
it is unknown which other frames may be sent along in the same UDP packet. Any
lower bound that can be determined could be affected by the version of QUIC
being used. An example estimation of the overhead including IP, UDP and QUIC
headers is given in <xref target="overhead-estimation"/>.</t>
          <t>It is thus suggested that application developers recognize that per-RTCP packet overhead will always be an estimate, and include IP, UDP, QUIC, and DATAGRAM header sizes as a conservative heuristic. While this value may not be precisely accurate, it follows the example of RTP over UDP in <xref target="RFC3550"/>, which includes the RTP and UDP header sizes, and adding the additional QUIC and DATAGRAM header sizes avoids the immediate problem of significantly understating avg_rtcp_size, resulting in an underestimate of the cost of sending additional RTCP reports.</t>
        </section>
        <section anchor="rtcp-over-streams">
          <name>RTCP over QUIC streams</name>
          <t>The above considerations from <xref target="rtcp-over-datagrams"/> get even more complex when
transmitting RTCP reliably over QUIC streams: it is unknown if (and how many)
retransmissions occurred.</t>
          <t>For RTT computations, again, this means that the application must consider that
it observes the application layer RTT including retransmissions, where
retransmissions also contribute to the observed jitter.</t>
          <t>For overhead computation, retransmissions are not explicitly considered nor is
the multiplexing with other streams.</t>
          <t>To keep the complexity under control, it is again suggested that application developers recognize that per-RTCP packet overhead will always be an estimate, and these estimates should include plausible values for IP, UDP, QUIC, and QUIC STREAM frame header sizes. While this value may not be precisely accurate, it follows the example of RoQ over DATAGRAMs in <xref target="rtcp-over-datagrams"/>}, and again avoids the immediate problem of significantly understating avg_rtcp_size, resulting in an underestimate of the cost of sending additional RTCP reports.</t>
        </section>
        <section anchor="mixed-operations">
          <name>Mixed operations</name>
          <t>As noted in <xref target="s-d-m-guidance"/>, applications may use QUIC streams, QUIC DATAGRAMs, or a mixture, and this extends to choices for RTP and RTCP. While applications may, in principle, mix sending RTP and RTCP via QUIC streams and via QUIC DATAGRAMs, doing so has unforeseeable implications on timing and reordering and
overhead.</t>
          <t>Using the same QUIC primitives for both RTP and
RTCP when transporting a single media stream will be safer than mixing QUIC primitives - for example, using QUIC streams to carry RTP media payloads and QUIC DATAGRAMs to carry RTCP, or vice versa. If an application uses both streams and datagrams to selectively obtain
reliable transmission for some RTP media payloads but not for others, it is strongly suggested that the application developer
knowingly choose which RTT observations they are interested in, while remaining aware of the advice included in <xref target="RTCP-considerations"/>.</t>
          <t>Even this awareness may not be "safe enough" - for example, <xref target="RFC9221"/> allows QUIC DATAGRAM frames to be coalesced with other QUIC frames, and recommends, but does not require, QUIC DATAGRAMs to be sent as soon as possible, or to be delivered to a receiving application immediately. <xref target="RFC9221"/> also recommends, but does not require, a QUIC implementation to provide an API for prioritization between QUIC streams and QUIC DATAGRAMs.</t>
        </section>
      </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,
receiving little or no transport feedback, existing 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 media streams.</t>
      <t>Because QUIC can provide transport-level feedback, it can replace at least some RTP
transport-level feedback with current QUIC feedback <xref target="RFC9000"/>. In addition,
RTP-level feedback that is not available in QUIC by default can potentially be
replaced with feedback provided by useful QUIC extensions in the future as described in
<xref target="rtcp-quic-ext-examples"/>.</t>
      <t>When statistics contained in RTCP packets are also available from QUIC or can be
derived from statistics available from QUIC, it is desirable 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 are to be
sent. This document does not change any of the rules described by either
protocol. Rather, it 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 still 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
packets encapsulated in QUIC streams and RTP packets encapsulated in DATAGRAMs.
The differences are described in <xref target="roc-d"/> and <xref target="roc-s"/>.</t>
      <t>While RoQ places no restrictions on applications sending RTCP, this document assumes that the reason an implementer chooses to support RoQ is to obtain benefits beyond what's available when RTP uses UDP as its underlying transport layer.
Exposing relevant information from the QUIC layer to the application instead of exchanging additional RTCP packets, where applicable, will reduce processing and bandwidth overhead for RoQ senders and receivers.</t>
      <t><xref target="transport-layer-feedback"/> discusses what information can be exposed from the
QUIC connection layer to reduce the RTCP overhead.</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 is considered
acknowledged after all STREAM frames that carried parts of the RTP packet were
acknowledged.</t>
        <t>When QUIC streams are used, the implementer needs to be aware that the direct
mapping proposed below might 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 can be incorrect due to
retransmissions or transmission delays introduced by the QUIC stack.</t>
      </section>
      <section anchor="multi-hop">
        <name>Multihop Topologies</name>
        <t>In some topologies, RoQ might only be used on some of the links between multiple
session participants. Other links might be using RTP over UDP, or over some other
supported RTP encapsulation protocol, and some participants might be using RTP
implementations that don't support RoQ at all. These participants will not be
able to infer feedback from QUIC, and they might receive less RTCP feedback than
expected. This situation can arise when participants using RoQ are not aware that
other participants are not using RoQ and minimize their use of RTCP,
assuming their RoQ peer will be able to infer statistics from QUIC. There are
two ways to solve this problem:</t>
        <ul spacing="normal">
          <li>
            <t>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.</t>
          </li>
          <li>
            <t>If the middlebox does not provide Back-to-Back RTP sessions, participants can
use additional signaling to let the RoQ participants know what RTCP is
required.</t>
          </li>
        </ul>
      </section>
      <section anchor="transport-layer-feedback">
        <name>Feedback Mappings</name>
        <t>This section explains how some of the RTCP packet types that are used to signal
reception statistics can be replaced by equivalent statistics that are already
collected by QUIC. The following list explains how this mapping can be achieved
for the individual fields of different RTCP packet types.</t>
        <t>The list of RTCP packets in this section is not exhaustive, and similar considerations would apply when exchanging any other type of RTCP control packets using RoQ.</t>
        <t>A more thorough analysis including the information that cannot be mapped from
QUIC can be found in <xref target="rtcp-analysis"/>: 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"/>).</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 using 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.
QUIC supports ECN reporting through acknowledgments.
If the QUIC connection supports ECN, using QUIC acknowledgments to report ECN counts, rather than RTCP ECN feedback reports, reduces bandwidth and processing demands on the RTCP implementation.</t>
        </section>
        <section anchor="BYE-mapping">
          <name>Goodbye Packets ("BYE")</name>
          <t>RTP session participants can use <em>Goodbye</em> RTCP packets (<tt>PT=203</tt>, <tt>Name=BYE</tt>,
<xref target="RFC3550"/>), to indicate that a source is no longer active. If the participant
is also going to close the QUIC connection, the <em>BYE</em> packet can be replaced by
a QUIC CONNECTION_CLOSE frame. In this case, the reason for leaving can be
transmitted in QUIC's CONNECTION_CLOSE <em>Reason Phrase</em>. However, if the
participant wishes to use this QUIC connection for any other multiplexed
traffic, the participant has to use the BYE packet because the QUIC
CONNECTION_CLOSE would close the entire QUIC connection for all other QUIC
streams and DATAGRAMs.</t>
        </section>
      </section>
    </section>
    <section anchor="api-considerations">
      <name>RoQ-QUIC and RoQ-RTP API Considerations</name>
      <t>The mapping described in the previous sections relies on the QUIC implementation passing some information to the RoQ implementation.
Although RoQ will function without this information, some
optimizations regarding rate adaptation and RTCP mapping require certain
functionalities to be exposed to the application.</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>
      <ul spacing="normal">
        <li>
          <t><em>initial_max_data transport</em>: If the QUIC receiver has indicated a willingness to accept
0-RTT packets with early data, this is the maximum size that the QUIC sender can use,
as described in <xref target="ed-considerations"/>.</t>
        </li>
        <li>
          <t><em>Maximum Datagram Size</em>: The maximum DATAGRAM size that the QUIC connection
can transmit on the network path to the QUIC receiver. If a RoQ sender using
DATAGRAMs does not know the maximum DATAGRAM size for the path to the RoQ
receiver, there are only two choices - either use heuristics to limit the size
of RoQ messages, or be prepared to lose RoQ messages that were too large to be
carried through the network path and delivered to the RoQ receiver.</t>
        </li>
        <li>
          <t><em>Datagram Acknowledgment and Loss</em>: <xref section="5.2" sectionFormat="of" target="RFC9221"/> allows QUIC
implementations to notify the application that a DATAGRAM was
acknowledged or that it believes a DATAGRAM was lost. Given the DATAGRAM
acknowledgments and losses, the application can deduce which RTP packets
arrived at the receiver and which were lost (see also <xref target="roc-d"/>).</t>
        </li>
        <li>
          <t><em>Stream States</em>: The stream states include which parts of the data sent on a
stream were successfully delivered and which are still outstanding to be sent
or retransmitted. If an application keeps track of the RTP packets sent on a
stream, their respective sizes, and in which order they were transmitted, it
can infer which RTP packets were acknowledged according to the definition in
<xref target="roc-s"/>.</t>
        </li>
        <li>
          <t><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 can support the application as described
in <xref target="rtcp-mapping"/> and <xref target="congestion-control"/>.</t>
        </li>
        <li>
          <t><em>Bandwidth Estimation</em>: If a bandwidth estimate is available in the QUIC
implementation, exposing it avoids the overhead of executing an additional
bandwidth estimation algorithm in the application.</t>
        </li>
        <li>
          <t><em>ECN</em>: If ECN marks are available, they can support the bandwidth estimation
of the application.</t>
        </li>
        <li>
          <t><em>RTT</em>: The RTT estimations as described in <xref section="5" sectionFormat="of" target="RFC9002"/>.</t>
        </li>
      </ul>
      <t>One goal for the RoQ protocol is to shield RTP applications from the details of QUIC encapsulation, so the RTP application doesn't need much information about QUIC from RoQ, but some information will be valuable. For example, it could be desirable that the RoQ implementation provides an indication of connection migration to the RTP application.</t>
      <t>Because RTP applications do use the application timestamps contained in RTCP packets in a variety of ways, a RoQ implementation that provides and event-driven API can allow RoQ applications to generate RTCP packets "at the last moment", when the RoQ application is able to send the RTCP packet, and allow RoQ applications to notice that QUIC congestion control is limiting the ability of the RoQ application to send RTCP packets without this delay.</t>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <t>This section contains topics that are worth mentioning, but don't fit well into other sections of the document.</t>
      <section anchor="impact-of-connection-migration">
        <name>Impact of Connection Migration</name>
        <t>RTP sessions are characterized by a continuous flow of RTP packets in either or
both directions.  A connection migration might lead to pausing media
transmission until reachability of the peer under the new address is validated.
This might lead to short breaks in media delivery in the order of RTT and, if
RTCP is used for RTT measurements, might cause spikes in observed delays.
Application layer congestion control mechanisms (and packet repair schemes
such as retransmissions) need to be prepared to cope with such spikes. As noted in <xref target="api-considerations"/>, it could be desirable that the RoQ implementation provides an indication of connection migration to the RTP application, to assist in coping.</t>
      </section>
      <section anchor="ed-considerations">
        <name>0-RTT and Early Data considerations</name>
        <t>RoQ applications, like any other RTP applications, want to establish a media path quickly, reducing clipping at the beginning of a conversation. For repeated connections between endpoints that have previously carried out a full TLS handshake procedure, the initiator of a QUIC connection can
use 0-RTT packets with "early data" to include application data in a packet that is used to establish a connection.</t>
        <t>As 0-RTT packets are subject to replay attacks, RoQ applications MUST carefully specify which data types and operations
are allowed.</t>
        <t><xref section="9.2" sectionFormat="of" target="RFC9001"/> says</t>
        <ul empty="true">
          <li>
            <t>Application protocols MUST either prohibit the use of extensions that carry application semantics in 0-RTT or provide replay mitigation strategies.</t>
          </li>
        </ul>
        <t>For the purposes of this discussion, RoQ is an application protocol that allows the use of 0-RTT.</t>
        <t>RoQ application developers ought to take the considerations described in <xref target="rej-ed"/> and <xref target="replay-ed"/> into account when deciding whether to use 0-RTT with early data for an application.</t>
        <section anchor="rej-ed">
          <name>Effect of 0-RTT Rejection for RoQ using Early Data</name>
          <t>If the goal for using early data is to reduce clipping, a QUIC endpoint is relying on the other QUIC endpoint to accept the 0-RTT packet carrying early data containing media.</t>
          <t>A QUIC endpoint indicates its willingness to accept a 0-RTT packet containing early data by sending the TLS early_data extension in the NewSessionTicket message with the max_early_data_size parameter set to the sentinel value 0xffffffff.
The amount of data that a QUIC client can send in QUIC 0-RTT is controlled by the initial_max_data transport parameter supplied by the QUIC server.
This is described in more detail in <xref section="4.6.1" sectionFormat="of" target="RFC9001"/>.</t>
          <t>If a QUIC endpoint is not willing to accept a 0-RTT packet containing early data, but receives one anyway, the QUIC endpoint rejects the 0-RTT packet by sending EncryptedExtensions without an early_data extension. This is described in more detail, in <xref section="4.6.2" sectionFormat="of" target="RFC9001"/>.
This necessarily means that a QUIC endpoint attempting to convey RoQ media is now subject to at least one additional RTT delay, as it must send a QUIC Initial packet and perform a full QUIC handshake before it can send RoQ media.</t>
        </section>
        <section anchor="replay-ed">
          <name>Effect of 0-RTT Replay Attacks for RoQ using Early Data</name>
          <t>Including "early data" in the packet payload in any QUIC 0-RTT packet exposes the application to an additional risk, of accepting "early data" from a 0-RTT packet that has been replayed.</t>
          <t>While it is true that</t>
          <ul spacing="normal">
            <li>
              <t>RTP typically carries ephemeral media contents that is rendered and possibly recorded but otherwise causes no side effects,</t>
            </li>
            <li>
              <t>the amount of data that can be carried as packet payload in a 0-RTT packet is rather limited, and</t>
            </li>
            <li>
              <t>RTP implementations are likely to discard any replayed media packets as duplicates,</t>
            </li>
          </ul>
          <t>it is still the responsibility of the RoQ application to determine whether the benefits of using 0-RTT with early data outweigh the risks.</t>
          <t>Since the QUIC connection will often be created in the context
of an existing signaling relationship (e.g., using WebRTC or SIP), a careful RoQ implementer can exchange specific 0-RTT
keying material to prevent replays across sessions.</t>
        </section>
      </section>
      <section anchor="coalescing-packets">
        <name>Coalescing RTP packets in a single QUIC packet</name>
        <t>Applications have some control over how the QUIC stack maps application data to
QUIC frames, but applications cannot control how the QUIC stack maps STREAM and
DATAGRAM frames to QUIC packets <xref section="13" sectionFormat="of" target="RFC9000"/> and <xref section="5" sectionFormat="of" target="RFC9308"/>.</t>
        <ul spacing="normal">
          <li>
            <t>When RTP payloads are carried over QUIC streams, the RTP payload is treated as
an ordered byte stream that will be carried in QUIC STREAM frames, with no
effort to match application data boundaries.</t>
          </li>
          <li>
            <t>When RTP payloads are carried over DATAGRAMs, each RTP payload data unit
is mapped into a DATAGRAM frame, but</t>
          </li>
          <li>
            <t>QUIC implementations can include multiple STREAM frames from different streams
and one or more DATAGRAM frames into a single QUIC packet, and can include
other QUIC frames as well.</t>
          </li>
        </ul>
        <t>QUIC stacks are allowed to wait for a short period of time if the queued QUIC
packet is shorter than the Path MTU, in order to optimize for bandwidth
utilization instead of latency, while real-time applications usually prefer to
optimize for latency rather than bandwidth utilization. This waiting interval is
under the QUIC implementation's control, and could be based on knowledge about
application sending behavior or heuristics to determine whether and for how long
to wait.</t>
        <t>When there are a lot of small DATAGRAM frames (e.g., an audio stream) and a lot
of large DATAGRAM frames (e.g., a video stream), it could be a good idea to make sure the
audio frames can be included in a QUIC packet that also carries video frames
(i.e., the video frames don't fill the whole QUIC packet). Otherwise, the QUIC
stack might have to send additional small packets only carrying single audio
frames, which would waste some bandwidth.</t>
        <t>Application designers are advised to take these considerations into account when
selecting and configuring a QUIC stack for use with RoQ.</t>
      </section>
    </section>
    <section anchor="futures">
      <name>Directions for Future Work</name>
      <t>This document describes RoQ in sufficient detail that an implementer can build a RoQ application, but we recognize that additional work is likely, after we have sufficient experience with RoQ to guide that work (<xref target="futures-impl-deploy"/>) and as new QUIC extensions become available (<xref target="futures-new-ext"/>).</t>
      <section anchor="futures-impl-deploy">
        <name>Future Work Resulting from Implementation and Deployment Experience</name>
        <t>Possible directions would include</t>
        <ul spacing="normal">
          <li>
            <t>More guidance on transport for RTCP (for example, when to use QUIC streams vs. DATAGRAMs) including guidance on prioritization between streams and DATAGRAMs for the performance of RTCP.</t>
          </li>
          <li>
            <t>More guidance on the use of real-time-friendly congestion control algorithms (for example, Copa <xref target="Copa"/>, L4S <xref target="RFC9330"/>, etc.).</t>
          </li>
          <li>
            <t>More guidance for congestion control and rate adaptation for multiple RoQ flows (whether streams or datagrams).</t>
          </li>
          <li>
            <t>Possible guidance for connection sharing between real-time and non-real-time flows, including considerations for congestion control and rate adaptation, scheduling, prioritization, and which ALPNs to use.</t>
          </li>
          <li>
            <t>Investigation of the effects of delaying or dropping DATAGRAMs due to congestion before they can be transmitted by the QUIC stack.</t>
          </li>
          <li>
            <t>Implementation of translating middleboxes for translating between RoQ and RTP over UDP. As described in <xref target="topologies"/>, RoQ can be used to connect to some RTP middleboxes using some topologies, and these middleboxes might be connecting RoQ endpoints and non-RoQ endpoints, so will need to translate between RoQ and RTP over UDP.</t>
          </li>
        </ul>
        <t>For these reasons, publication of this document as a stable reference for implementers to test with, and report results, seems useful.</t>
      </section>
      <section anchor="futures-new-ext">
        <name>Future Work Resulting from New QUIC Extensions</name>
        <t>In addition, as noted in <xref target="new-quic"/>, one of the motivations for using QUIC as a transport for RTP is to exploit new QUIC extensions as they become available. We noted several specific proposed QUIC extensions in <xref target="optional-extensions"/>, but these proposals are all solving relevant problems, and those problems are worth solving for the QUIC protocol, whether the listed proposals are used in the solution or not.</t>
        <ul spacing="normal">
          <li>
            <t>Guidance for using RoQ with QUIC connection migration and over multiple paths. QUIC connection migration was already defined in <xref target="RFC9000"/>, and the Multipath Extension for QUIC <xref target="I-D.draft-ietf-quic-multipath"/> has been adopted and is relatively mature, so this is likely to be the first new QUIC extension we address.</t>
          </li>
          <li>
            <t>Guidance for using RoQ with QUIC NAT traversal solutions. This could use Interactive Connectivity Establishment (ICE) <xref target="RFC8445"/> or other NAT traversal solutions.</t>
          </li>
          <li>
            <t>Guidance for improved jitter calculations to use with congestion control and rate adaptation.</t>
          </li>
          <li>
            <t>Guidance for other aspects of QUIC performance optimization relying on extensions.</t>
          </li>
        </ul>
        <t>Other QUIC extensions, not yet proposed, might also be useful with RoQ.</t>
      </section>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</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>This section records the status of known implementations of the protocol defined
by this specification at the time of posting of this Internet-Draft, and is
based on a proposal described in <xref target="RFC7942"/>. The description of
implementations in this section is intended to assist the IETF in its decision
processes in progressing drafts to RFCs. Please note that the listing of any
individual implementation here does not imply endorsement by the IETF.
Furthermore, no effort has been spent to verify the information presented here
that was supplied by IETF contributors. This is not intended as, and must not be
construed to be, a catalog of available implementations or their features.
Readers are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working groups to
assign due consideration to documents that have the benefit of running code,
which may serve as evidence of valuable experimentation and feedback that have
made the implemented protocols more mature. It is up to the individual working
groups to use this information as they see fit".</t>
      <section anchor="mengelbartroq">
        <name>mengelbart/roq</name>
        <dl>
          <dt>Ogranization:</dt>
          <dd>
            <t>Technical University of Munich</t>
          </dd>
          <dt>Implementation:</dt>
          <dd>
            <t><xref target="roq"/></t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t><em>roq</em> is a library implementing the basic encapsulation described in
<xref target="encapsulation"/>. The library uses the Go programming language and supports the
<xref target="quic-go"/> QUIC implementation.</t>
          </dd>
          <dt>Level of Maturity:</dt>
          <dd>
            <t>prototype</t>
          </dd>
        </dl>
        <t>Coverage: : The library supports sending and receiving RTP and RTCP packets
using QUIC streams and QUIC DATAGRAMs, and supports multiplexing using flow
identifiers. Applications using the library are responsible for appropriate
signaling, setting up QUIC connections, and managing RTP sessions. Applications
choose whether to send RTP and RTCP packets over streams or DATAGRAMs, and
applications also have control over the QUIC and RTP congestion controllers in
use since they control the QUIC connection setup and can thus configure the QUIC
stack they use to their preferences.</t>
        <dl>
          <dt>Version Compatibility:</dt>
          <dd>
            <t>The library implements <xref target="I-D.draft-ietf-avtcore-rtp-over-quic-12"/>.</t>
          </dd>
          <dt>Licensing:</dt>
          <dd>
            <t>MIT License</t>
          </dd>
          <dt>Implementation Experience:</dt>
          <dd>
            <t>The implementer reports they have no experience with the topics discussed in
<xref target="futures"/>. RoQ relies on out-of-band signaling for connection establishment,
and since there is currently no specification for SDP for RoQ, applications
using the library have to statically configure connection information to allow
testing</t>
          </dd>
          <dt>Contact Information:</dt>
          <dd>
            <t>Mathis Engelbart (mathis.engelbart@gmail.com)</t>
          </dd>
          <dt>Last Updated:</dt>
          <dd>
            <t>07 January 2025</t>
          </dd>
        </dl>
      </section>
      <section anchor="bbcgst-roq">
        <name>bbc/gst-roq</name>
        <dl>
          <dt>Ogranization:</dt>
          <dd>
            <t>BBC Research and Development</t>
          </dd>
          <dt>Implementation:</dt>
          <dd>
            <t>RTP-over-QUIC elements for GStreamer <xref target="gst-roq"/></t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t><em>gst-quic-transport</em> provides a set of GStreamer plugins implementing QUIC
transport. <em>gst-roq</em> provides a set of GStreamer plugins implementing RoQ.</t>
          </dd>
          <dt>Level of Maturity:</dt>
          <dd>
            <t>research</t>
          </dd>
          <dt>Coverage:</dt>
          <dd>
            <t>The plugins support sending and receiving RTP and RTCP packets using QUIC
streams and QUIC DATAGRAMs, and supports multiplexing using flow identifiers.
GStreamer pipelines that use the RoQ plugins found in the <em>gst-roq</em> repository
can make use of the plugins found in the <em>gst-quic-transport</em> repository to set
up QUIC connections. RTP sessions can be managed by existing GStreamer plugins
available in the standard GStreamer release. GStreamer pipeline applications
choose whether to send RTP and RTCP packets over streams or DATAGRAMs.</t>
          </dd>
          <dt>Version Compatibility:</dt>
          <dd>
            <t>The library implements <xref target="I-D.draft-ietf-avtcore-rtp-over-quic-05"/>.</t>
          </dd>
          <dt>Licensing:</dt>
          <dd>
            <t>GNU Lesser General Public License v2.1</t>
          </dd>
          <dt>Implementation Experience:</dt>
          <dd>
            <t>The implementer reports they have no experience with the topics discussed in
<xref target="futures"/>. Both in-band and out-of-band signalling for RoQ media sessions is
in active development via an implementation of <xref target="I-D.draft-hurst-sip-quic-00"/>,
which re-uses the GStreamer plugins described above.</t>
          </dd>
          <dt>Contact Information:</dt>
          <dd>
            <t>Sam Hurst (sam.hurst@bbc.co.uk)</t>
          </dd>
          <dt>Last Updated:</dt>
          <dd>
            <t>05 June 2024</t>
          </dd>
        </dl>
      </section>
      <section anchor="mengelbartrtp-over-quic">
        <name>mengelbart/rtp-over-quic</name>
        <dl>
          <dt>Ogranization:</dt>
          <dd>
            <t>Technical University of Munich</t>
          </dd>
          <dt>Implementation:</dt>
          <dd>
            <t>RTP over QUIC <xref target="RTP-over-QUIC"/></t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t><em>RTP over QUIC</em> is a experimental implementation of the mapping described in
an earlier version of this document.</t>
          </dd>
          <dt>Level of Maturity:</dt>
          <dd>
            <t>research</t>
          </dd>
          <dt>Coverage:</dt>
          <dd>
            <t>The application implements the RoQ DATAGRAMs mapping and implements SCReAM
congestion control at the application layer. It can optionally disable the
built-in 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"/>.
Experimental results of the implementation can be found in <xref target="RoQ-Mininet"/>.</t>
          </dd>
          <dt>Version Compatibility:</dt>
          <dd>
            <t><xref target="I-D.draft-ietf-avtcore-rtp-over-quic-00"/></t>
          </dd>
          <dt>Licensing:</dt>
          <dd>
            <t>MIT</t>
          </dd>
          <dt>Implementation Experience:</dt>
          <dd>
            <t>See <xref target="RoQ-Mininet"/></t>
          </dd>
          <dt>Contact Information:</dt>
          <dd>
            <t>Mathis Engelbart (mathis.engelbart@gmail.com)</t>
          </dd>
          <dt>Last Updated:</dt>
          <dd>
            <t>25 May 2024</t>
          </dd>
        </dl>
      </section>
      <section anchor="meetechoimquic">
        <name>meetecho/imquic</name>
        <dl>
          <dt>Ogranization:</dt>
          <dd>
            <t>Meetecho</t>
          </dd>
          <dt>Implementation:</dt>
          <dd>
            <t>imquic <xref target="imquic"/></t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>QUIC library with RTP Over QUIC (RoQ) and Media Over QUIC (MoQT) support</t>
          </dd>
          <dt>Level of Maturity:</dt>
          <dd>
            <t>alpha</t>
          </dd>
          <dt>Coverage:</dt>
          <dd>
            <t>The library supports sending and receiving RTP and RTCP packets using QUIC
streams and QUIC DATAGRAMs, and supports multiplexing using flow identifiers.
Applications using the library are responsible for appropriate signaling,
setting up QUIC connections, and managing RTP sessions. Applications choose
whether to send RTP and RTCP packets over streams or DATAGRAMs. Basic client and
server examples are available as a demo, and the library was also used to test
interoperability with WebRTC via an open source gateway.</t>
          </dd>
          <dt>Version Compatibility:</dt>
          <dd>
            <t><xref target="I-D.draft-ietf-avtcore-rtp-over-quic-12"/></t>
          </dd>
          <dt>Licensing:</dt>
          <dd>
            <t>MIT</t>
          </dd>
        </dl>
        <t>Implementation Experience:
:</t>
        <dl>
          <dt>Contact Information:</dt>
          <dd>
            <t>Lorenzo Miniero (lorenzo@meetecho.com)</t>
          </dd>
          <dt>Last Updated:</dt>
          <dd>
            <t>07 January 2025</t>
          </dd>
        </dl>
      </section>
      <section anchor="gstreamergst-plugin-quinn">
        <name>gstreamer/gst-plugin-quinn</name>
        <dl>
          <dt>Organization:</dt>
          <dd>
            <t>asymptotic</t>
          </dd>
          <dt>Implementation:</dt>
          <dd>
            <t>gst-plugin-quinn <xref target="gst-plugin-quinn"/></t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>GStreamer plugin with support for QUIC and RTP Over QUIC (RoQ)</t>
          </dd>
          <dt>Level of Maturity:</dt>
          <dd>
            <t>alpha</t>
          </dd>
          <dt>Coverage:</dt>
          <dd>
            <t>The library supports sending and receiving RTP packets using QUIC streams and
QUIC DATAGRAMs, and supports multiplexing using flow identifiers. Using stream
per packet is not supported at the moment. Applications using this GStreamer
plugin are responsible for any required out-of-band signalling, and managing
RTP sessions. <tt>quinnquicmux</tt> and <tt>quinnquicdemux</tt> provide RoQ functionality with
the QUIC transport handled by <tt>quinnquicsink</tt> and <tt>quinnquicsrc</tt> plugins.
Applications can choose whether to send RTP packets over streams or DATAGRAMs.
Basic examples are available in the repository.</t>
          </dd>
          <dt>Version Compatibility:</dt>
          <dd>
            <t><xref target="I-D.draft-ietf-avtcore-rtp-over-quic-12"/></t>
          </dd>
          <dt>Licensing:</dt>
          <dd>
            <t>MPL</t>
          </dd>
        </dl>
        <t>Implementation Experience:
:</t>
        <dl>
          <dt>Contact Information:</dt>
          <dd>
            <t>Sanchayan Maity (sanchayan@asymptotic.io)</t>
          </dd>
          <dt/>
          <dd>
            <t>Arun Raghavan (arun@asymptotic.io)</t>
          </dd>
          <dt>Last Updated:</dt>
          <dd>
            <t>21 March 2025</t>
          </dd>
        </dl>
      </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>
      <t>This document registers a new ALPN protocol ID (in <xref target="iana-alpn"/>) and creates a
new registry that manages the assignment of error code points in RoQ (in
<xref target="iana-error-codes"/>).</t>
      <section anchor="iana-alpn">
        <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 "roq" string identifies RoQ:</t>
        <dl>
          <dt>Protocol:</dt>
          <dd>
            <t>RTP over QUIC (RoQ)</t>
          </dd>
          <dt>Identification Sequence:</dt>
          <dd>
            <t>0x72 0x6F 0x71 ("roq")</t>
          </dd>
          <dt>Specification:</dt>
          <dd>
            <t>This document</t>
          </dd>
        </dl>
      </section>
      <section anchor="iana-error-codes">
        <name>RoQ Error Codes Registry</name>
        <t>This document establishes a registry for RoQ error codes. The "RTP over QUIC
(RoQ) Error Codes" registry manages a 62-bit space and is listed under the
"Real-Time Transport Protocol (RTP) Parameters" registry group.</t>
        <t>The new error codes registry created in this document operates under the QUIC
registration policy documented in <xref section="22.1" sectionFormat="of" target="RFC9000"/>. This registry
includes the common set of fields listed in <xref section="22.1.1" sectionFormat="of" target="RFC9000"/>.</t>
        <t>Permanent registrations in this registry are assigned using the Specification
Required policy (<xref target="RFC8126"/>), except for values between 0x00 and 0x3f (in
hexadecimal; inclusive), which are assigned using Standards Action or IESG
Approval as defined in Sections <xref target="RFC8126" section="4.9" sectionFormat="bare"/> and <xref target="RFC8126" section="4.10" sectionFormat="bare"/> of <xref target="RFC8126"/>.</t>
        <t>Registrations for error codes are required to include a description of the error
code. An expert reviewer is advised to examine new registrations for possible
duplication or interaction with existing error codes.</t>
        <t>In addition to common fields as described in Section <xref section="22.1" sectionFormat="of" target="RFC9000"/>, this registry includes two additional fields. Permanent
registrations in this registry MUST include the following fields:</t>
        <dl>
          <dt>Name:</dt>
          <dd>
            <t>A name for the error code.</t>
          </dd>
          <dt>Description:</dt>
          <dd>
            <t>A brief description of the error code semantics, which can be a summary if a
specification reference is provided.</t>
          </dd>
        </dl>
        <t>The initial allocations in this registry are all assigned permanent status and
list a change controller of the IETF and a contact of the AVTCORE working group
(avt@ietf.org).</t>
        <t>The entries in <xref target="tab-error-codes"/> are registered by this document.</t>
        <table anchor="tab-error-codes">
          <name>Initial RoQ Error Codes</name>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Name</th>
              <th align="left">Description</th>
              <th align="left">Specification</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0x00</td>
              <td align="left">ROQ_NO_ERROR</td>
              <td align="left">No Error</td>
              <td align="left">
                <xref target="error-handling"/></td>
            </tr>
            <tr>
              <td align="left">0x01</td>
              <td align="left">ROQ_GENERAL_ERROR</td>
              <td align="left">General error</td>
              <td align="left">
                <xref target="error-handling"/></td>
            </tr>
            <tr>
              <td align="left">0x02</td>
              <td align="left">ROQ_INTERNAL_ERROR</td>
              <td align="left">Internal Error</td>
              <td align="left">
                <xref target="error-handling"/></td>
            </tr>
            <tr>
              <td align="left">0x03</td>
              <td align="left">ROQ_PACKET_ERROR</td>
              <td align="left">Invalid payload format</td>
              <td align="left">
                <xref target="error-handling"/></td>
            </tr>
            <tr>
              <td align="left">0x04</td>
              <td align="left">ROQ_STREAM_CREATION_ERROR</td>
              <td align="left">Invalid stream type</td>
              <td align="left">
                <xref target="error-handling"/></td>
            </tr>
            <tr>
              <td align="left">0x05</td>
              <td align="left">ROQ_FRAME_CANCELLED</td>
              <td align="left">Frame cancelled</td>
              <td align="left">
                <xref target="error-handling"/></td>
            </tr>
            <tr>
              <td align="left">0x06</td>
              <td align="left">ROQ_UNKNOWN_FLOW_ID</td>
              <td align="left">Unknown Flow ID</td>
              <td align="left">
                <xref target="error-handling"/></td>
            </tr>
            <tr>
              <td align="left">0x07</td>
              <td align="left">ROQ_EXPECTATION_UNMET</td>
              <td align="left">Externally signaled requirement unmet</td>
              <td align="left">
                <xref target="error-handling"/></td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-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="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="RFC6363">
          <front>
            <title>Forward Error Correction (FEC) Framework</title>
            <author fullname="M. Watson" initials="M." surname="Watson"/>
            <author fullname="A. Begen" initials="A." surname="Begen"/>
            <author fullname="V. Roca" initials="V." surname="Roca"/>
            <date month="October" year="2011"/>
            <abstract>
              <t>This document describes a framework for using Forward Error Correction (FEC) codes with applications in public and private IP networks to provide protection against packet loss. The framework supports applying FEC to arbitrary packet flows over unreliable transport and is primarily intended for real-time, or streaming, media. This framework can be used to define Content Delivery Protocols that provide FEC for streaming media delivery or other packet flows. Content Delivery Protocols defined using this framework can support any FEC scheme (and associated FEC codes) that is compliant with various requirements defined in this document. Thus, Content Delivery Protocols can be defined that are not specific to a particular FEC scheme, and FEC schemes can be defined that are not specific to a particular Content Delivery Protocol. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6363"/>
          <seriesInfo name="DOI" value="10.17487/RFC6363"/>
        </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>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </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>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="_3GPP-TS-26.114" target="https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?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="Copa" target="https://web.mit.edu/copa/">
          <front>
            <title>Copa: Practical Delay-Based Congestion Control for the Internet</title>
            <author>
              <organization/>
            </author>
            <date year="2018"/>
          </front>
        </reference>
        <reference anchor="IANA-RTCP-PT" target="https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-4">
          <front>
            <title>RTCP Control Packet Types (PT)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA-RTCP-XR-BT" target="https://www.iana.org/assignments/rtcp-xr-block-types/rtcp-xr-block-types.xhtml#rtcp-xr-block-types-1">
          <front>
            <title>RTCP XR Block Type</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA-RTCP-FMT-RTPFB-PT" target="https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-8">
          <front>
            <title>FMT Values for RTPFB Payload Types</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA-RTCP-FMT-PSFB-PT" target="https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-9">
          <front>
            <title>FMT Values for PSFB Payload Types</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA-RTP-CHE" target="https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#rtp-parameters-10">
          <front>
            <title>RTP Compact Header Extensions</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IANA-RTP-SDES-CHE" target="https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xhtml#sdes-compact-header-extensions">
          <front>
            <title>RTP SDES Compact Header Extensions</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="IEEE-1733-2011" target="https://standards.ieee.org/ieee/1733/4748/">
          <front>
            <title>IEEE 1733-2011 Standard for Layer 3 Transport Protocol for Time-Sensitive Applications in Local Area Networks</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="VJMK88" target="https://ee.lbl.gov/papers/congavoid.pdf">
          <front>
            <title>Congestion Avoidance and Control</title>
            <author>
              <organization/>
            </author>
            <date year="1988" month="November"/>
          </front>
        </reference>
        <reference anchor="RTP-over-QUIC" target="https://github.com/mengelbart/rtp-over-quic">
          <front>
            <title>RTP over QUIC</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RoQ-Mininet" target="https://github.com/mengelbart/rtp-over-quic-mininet">
          <front>
            <title>Congestion Control for RTP over QUIC Simulations</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="roq" target="https://github.com/mengelbart/roq">
          <front>
            <title>RTP over QUIC (RoQ)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="gst-roq" target="https://github.com/bbc/gst-roq">
          <front>
            <title>RTP-over-QUIC elements for GStreamer</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="quic-go" target="https://github.com/quic-go/quic-go">
          <front>
            <title>A QUIC implementation in pure Go</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="imquic" target="https://github.com/meetecho/imquic">
          <front>
            <title>imquic</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="gst-plugin-quinn" target="https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/tree/main/net/quinn">
          <front>
            <title>gst-plugin-quinn</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="RFC0768">
          <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="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="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="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="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="21" month="August" year="2024"/>
            <abstract>
              <t>   This document describes a simple HTTP-based protocol that will allow
   WebRTC-based ingestion of content into streaming services and/or
   CDNs.

   This document updates RFC 8842 and RFC 8840.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-wish-whip-16"/>
        </reference>
        <reference anchor="RFC1122">
          <front>
            <title>Requirements for Internet Hosts - Communication Layers</title>
            <author fullname="R. Braden" initials="R." role="editor" surname="Braden"/>
            <date month="October" year="1989"/>
            <abstract>
              <t>This RFC is an official specification for the Internet community. It incorporates by reference, amends, corrects, and supplements the primary protocol standards documents relating to hosts. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="3"/>
          <seriesInfo name="RFC" value="1122"/>
          <seriesInfo name="DOI" value="10.17487/RFC1122"/>
        </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="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>Uber Technologies Inc.</organization>
            </author>
            <author fullname="Quentin De Coninck" initials="Q." surname="De Coninck">
              <organization>University of Mons (UMONS)</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="3" month="March" year="2025"/>
            <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/quicwg/multipath.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-13"/>
        </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="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="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-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="RFC9330">
          <front>
            <title>Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service: Architecture</title>
            <author fullname="B. Briscoe" initials="B." role="editor" surname="Briscoe"/>
            <author fullname="K. De Schepper" initials="K." surname="De Schepper"/>
            <author fullname="M. Bagnulo" initials="M." surname="Bagnulo"/>
            <author fullname="G. White" initials="G." surname="White"/>
            <date month="January" year="2023"/>
            <abstract>
              <t>This document describes the L4S architecture, which enables Internet applications to achieve low queuing latency, low congestion loss, and scalable throughput control. L4S is based on the insight that the root cause of queuing delay is in the capacity-seeking congestion controllers of senders, not in the queue itself. With the L4S architecture, all Internet applications could (but do not have to) transition away from congestion control algorithms that cause substantial queuing delay and instead adopt a new class of congestion controls that can seek capacity with very little queuing. These are aided by a modified form of Explicit Congestion Notification (ECN) from the network. With this new architecture, applications can have both low latency and high throughput.</t>
              <t>The architecture primarily concerns incremental deployment. It defines mechanisms that allow the new class of L4S congestion controls to coexist with 'Classic' congestion controls in a shared network. The aim is for L4S latency and throughput to be usually much better (and rarely worse) while typically not impacting Classic performance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9330"/>
          <seriesInfo name="DOI" value="10.17487/RFC9330"/>
        </reference>
        <reference anchor="I-D.draft-smith-quic-receive-ts">
          <front>
            <title>QUIC Extended Acknowledgement for Reporting Packet Receive Timestamps</title>
            <author fullname="Connor Smith" initials="C." surname="Smith">
              <organization>NVIDIA</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Joseph Beshay" initials="J." surname="Beshay">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <author fullname="Sharad Jaiswal" initials="S." surname="Jaiswal">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <author fullname="Ilango Purushothaman" initials="I." surname="Purushothaman">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <author fullname="Brandon Schlinker" initials="B." surname="Schlinker">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="3" month="March" year="2025"/>
            <abstract>
              <t>   This document defines an extension to the QUIC transport protocol
   which supports reporting multiple packet receive timestamps using a
   new ACK_EXTENDED frame type which can carry multiple optional fields.

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-01"/>
        </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="RFC8445">
          <front>
            <title>Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal</title>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <author fullname="C. Holmberg" initials="C." surname="Holmberg"/>
            <author fullname="J. Rosenberg" initials="J." surname="Rosenberg"/>
            <date month="July" year="2018"/>
            <abstract>
              <t>This document describes a protocol for Network Address Translator (NAT) traversal for UDP-based communication. This protocol is called Interactive Connectivity Establishment (ICE). ICE makes use of the Session Traversal Utilities for NAT (STUN) protocol and its extension, Traversal Using Relay NAT (TURN).</t>
              <t>This document obsoletes RFC 5245.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8445"/>
          <seriesInfo name="DOI" value="10.17487/RFC8445"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="I-D.draft-ietf-avtcore-rtp-over-quic-12">
          <front>
            <title>RTP over QUIC (RoQ)</title>
            <author fullname="Mathis Engelbart" initials="M." surname="Engelbart">
              <organization>Technical University of Munich</organization>
            </author>
            <author fullname="Joerg Ott" initials="J." surname="Ott">
              <organization>Technical University of Munich</organization>
            </author>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="21" month="October" year="2024"/>
            <abstract>
              <t>   This document specifies a minimal mapping for encapsulating Real-time
   Transport Protocol (RTP) and RTP Control Protocol (RTCP) packets
   within the QUIC protocol.  This mapping is called RTP over QUIC
   (RoQ).

   This document also discusses how to leverage state that is already
   available from the QUIC implementation in the endpoints, in order to
   reduce the need to exchange RTCP packets, and describes different
   options for implementing congestion control and rate adaptation for
   RTP without relying on RTCP feedback.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-12"/>
        </reference>
        <reference anchor="I-D.draft-ietf-avtcore-rtp-over-quic-05">
          <front>
            <title>RTP over QUIC (RoQ)</title>
            <author fullname="Joerg Ott" initials="J." surname="Ott">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Mathis Engelbart" initials="M." surname="Engelbart">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Spencer Dawkins" initials="S." surname="Dawkins">
              <organization>Tencent America LLC</organization>
            </author>
            <date day="26" month="July" year="2023"/>
            <abstract>
              <t>   This document specifies a minimal mapping for encapsulating Real-time
   Transport Protocol (RTP) and RTP Control Protocol (RTCP) packets
   within the QUIC protocol.  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>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-05"/>
        </reference>
        <reference anchor="I-D.draft-hurst-sip-quic-00">
          <front>
            <title>SIP-over-QUIC: Session Initiation Protocol over QUIC Transport</title>
            <author fullname="Sam Hurst" initials="S." surname="Hurst">
              <organization>BBC Research &amp; Development</organization>
            </author>
            <date day="6" month="November" year="2022"/>
            <abstract>
              <t>   This document describes a mapping of Session Initiation Protocol
   (SIP) semantics over QUIC Transport.  It allows the creation,
   modification and termination of media sessions with one or more
   participants, possibly carried over the same QUIC transport
   connection, using RTP/AVP directly, or some mixture of both.

   SIP-over-QUIC enables a more efficient use of network resources by
   introducing field compression to the header fields carried in SIP
   transactions.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hurst-sip-quic-00"/>
        </reference>
        <reference anchor="I-D.draft-ietf-avtcore-rtp-over-quic-00">
          <front>
            <title>RTP over QUIC</title>
            <author fullname="Joerg Ott" initials="J." surname="Ott">
              <organization>Technical University Munich</organization>
            </author>
            <author fullname="Mathis Engelbart" initials="M." surname="Engelbart">
              <organization>Technical University Munich</organization>
            </author>
            <date day="26" month="July" year="2022"/>
            <abstract>
              <t>   This document specifies a minimal mapping for encapsulating RTP and
   RTCP packets within QUIC.  It also discusses how to leverage state
   from the QUIC implementation in the endpoints to reduce the exchange
   of RTCP packets and how to implement congestion control.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-00"/>
        </reference>
        <reference anchor="I-D.draft-ietf-quic-ack-frequency">
          <front>
            <title>QUIC Acknowledgment 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="28" month="February" year="2025"/>
            <abstract>
              <t>   This document specifies an extension to QUIC that enables an endpoint
   to request its peer change its behavior when sending or delaying
   acknowledgments.

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-11"/>
        </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>QUIC Stream Resets with Partial Delivery</title>
            <author fullname="Marten Seemann" initials="M." surname="Seemann">
         </author>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <date day="28" month="February" year="2024"/>
            <abstract>
              <t>   QUIC defines a RESET_STREAM frame to abort sending on a stream.  When
   a sender resets a stream, it also stops retransmitting STREAM frames
   for this stream in the event of packet loss.  On the receiving side,
   there is no guarantee that any data sent on that stream is delivered.

   This document defines a new QUIC frame, the RESET_STREAM_AT frame,
   that allows resetting a stream, while guaranteeing delivery of stream
   data up to a certain byte offset.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-reliable-stream-reset-06"/>
        </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="12" month="February" year="2025"/>
            <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-05"/>
        </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 1629?>

<section anchor="optional-extensions">
      <name>List of optional QUIC Extensions</name>
      <t>The following is a list of QUIC protocol extensions that could be beneficial for
RoQ, but are not required by RoQ.</t>
      <ul spacing="normal">
        <li>
          <t><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"/>.</t>
        </li>
        <li>
          <t>A version of QUIC receive timestamps can be helpful for improved jitter
calculations and congestion control. If the QUIC connection uses a timestamp
extension such as <em>Quic Timestamps For Measuring One-Way Delays</em> <xref target="I-D.draft-huitema-quic-ts"/> or
<em>QUIC Extension for Reporting Packet Receive Timestamps</em> <xref target="I-D.draft-smith-quic-receive-ts"/>,
the arrival timestamps or one-way delays could be exposed to
the application for improved bandwidth estimation or RTCP mappings as
described in <xref target="rtcp-mapping"/> and <xref target="rtcp-analysis"/>.</t>
        </li>
        <li>
          <t><em>QUIC Acknowledgment Frequency</em> <xref target="I-D.draft-ietf-quic-ack-frequency"/> can
be used by a sender to optimize the acknowledgment behavior of the receiver,
e.g., to optimize congestion control.</t>
        </li>
        <li>
          <t><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 ought to be cancelled before resuming transmission of further
frames on new QUIC streams.</t>
        </li>
      </ul>
    </section>
    <section anchor="rtcp-analysis">
      <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>Each subsection in <xref target="rtcp-analysis"/> corresponds to an IANA registry, and includes a reference pointing to that registry.</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 RTCP 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>
      <t>Examples of how certain RTCP packet types could be mapped with the help of QUIC
extensions follow in <xref target="rtcp-quic-ext-examples"/>.</t>
      <section anchor="control-packets">
        <name>RTCP Control Packet Types</name>
        <t>The IANA registry for this section is <xref target="IANA-RTCP-PT"/>.</t>
        <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">206</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">208</td>
              <td align="left">
                <xref target="IEEE-1733-2011"/></td>
              <td align="left">no</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">no</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">no</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>RTCP XR Block Type</name>
        <t>The IANA registry for this section is <xref target="IANA-RTCP-XR-BT"/>.</t>
        <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">RTP 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 can 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 QUIC timestamps cannot provide 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">no</td>
              <td align="left"> </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">no</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>FMT Values for RTP Feedback (RTPFB) Payload Types</name>
        <t>The IANA registry for this section is <xref target="IANA-RTCP-FMT-RTPFB-PT"/>.</t>
        <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">There is no way to tell a QUIC implementation "don't ask for retransmission".</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>FMT Values for Payload-Specific Feedback (PSFB) Payload Types</name>
        <t>The IANA registry for this section is <xref target="IANA-RTCP-FMT-PSFB-PT"/>.</t>
        <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 RTCP 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="rtp-compact-header-extensions">
          <name>RTP Compact Header Extensions</name>
          <t>The IANA registry for this section is <xref target="IANA-RTP-CHE"/>.</t>
          <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</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="rtp-sdes-compact-header-extensions">
          <name>RTP SDES Compact Header Extensions</name>
          <t>The IANA registry for this section is <xref target="IANA-RTP-SDES-CHE"/>.</t>
          <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 anchor="rtcp-quic-ext-examples">
        <name>Examples</name>
        <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>
              <t><em>Fraction lost</em>: When RTP packets are carried in DATAGRAMs, the fraction of lost RTCP packets can be directly inferred from QUIC's acknowledgments.
The calculation includes all RTP packets up to the acknowledged RTP packet with the highest RTP sequence number.</t>
            </li>
            <li>
              <t><em>Cumulative lost</em>: Similar to the fraction of lost RTP packets, the cumulative
loss can be inferred from QUIC's acknowledgments, including all packets up
to the latest acknowledged packet.</t>
            </li>
            <li>
              <t><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.</t>
            </li>
            <li>
              <t><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.</t>
            </li>
            <li>
              <t><em>Last SR</em>: Similar to lost RTP packets, the NTP timestamp of the last received
sender report can be inferred from QUIC acknowledgments.</t>
            </li>
            <li>
              <t><em>Delay since last SR</em>: This field is not required when the receiver reports
are entirely replaced by QUIC feedback.</t>
            </li>
          </ul>
        </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 RTP 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 anchor="XR-mappings">
          <name>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 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="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>
              <t><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 an RTP timestamp and the number of RTP packets and
octets transmitted by the sender. The timestamps can be used by a receiver to
synchronize media streams. QUIC cannot provide similar control information since it
does not know about RTP timestamps. A QUIC receiver cannot calculate the
packet or octet counts since it does not know about lost DATAGRAMs. Thus,
sender reports are necessary in RoQ to synchronize media streams at the receiver.</t>
            </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 might include:</t>
          <ul spacing="normal">
            <li>
              <t><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</t>
            </li>
            <li>
              <t>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.</t>
            </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>
    <section anchor="overhead-estimation">
      <name>Header overhead considerations</name>
      <t>As discussed in <xref target="RTCP-considerations"/>, the header overhead of an RTP packet
sent over RoQ cannot easily be determined. This section gives an estimation of the
minimum and maximum header overhead of different combinations of STREAM and
DATAGRAM frames using either IPv4 or IPv6. However, even this estimation is not
exactly correct, since it does not take into account additional complications such as that RTP packets may be
fragmented over multiple STREAM frames and that QUIC packets may contain more
than a single FRAME, so that the RTCP overhead could thus be the shared overhead of
multiple RTP packets being sent in different QUIC frames in the same QUIC
packet.</t>
      <ul spacing="normal">
        <li>
          <t>At least 20 Bytes (v4) or 40 Bytes (v6) IP header</t>
        </li>
        <li>
          <t>8 Bytes UDP header</t>
        </li>
        <li>
          <t>2-25 Bytes QUIC Short header packets
          </t>
          <ul spacing="normal">
            <li>
              <t>1 Byte fixed header</t>
            </li>
            <li>
              <t>0-20 Bytes Connection ID</t>
            </li>
            <li>
              <t>1-4 Bytes Packet Number</t>
            </li>
          </ul>
        </li>
        <li>
          <t>2-25 Bytes STREAM frame header
          </t>
          <ul spacing="normal">
            <li>
              <t>1 Byte type</t>
            </li>
            <li>
              <t>1-8 Bytes stream ID</t>
            </li>
            <li>
              <t>Optional 1-8 Bytes Offset</t>
            </li>
            <li>
              <t>Optional 1-8 Bytes Length</t>
            </li>
          </ul>
        </li>
        <li>
          <t>1-9 Bytes DATAGRAM frame header
          </t>
          <ul spacing="normal">
            <li>
              <t>1 Byte type</t>
            </li>
            <li>
              <t>Optional 1-8 Bytes length</t>
            </li>
          </ul>
        </li>
        <li>
          <t>1-8 Bytes RoQ Flow ID</t>
        </li>
        <li>
          <t>IPv4 with STREAM frames
          </t>
          <ul spacing="normal">
            <li>
              <t>Minimum: 20+8+2+2+1=33 Bytes</t>
            </li>
            <li>
              <t>Maximum: 20+8+25+25+8=86 Bytes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>IPv6 with STREAM frames
          </t>
          <ul spacing="normal">
            <li>
              <t>Minimum: 40+8+2+2+1=53 Bytes</t>
            </li>
            <li>
              <t>Maximum: 40+8+25+25+8=106 Bytes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>IPv4 with DATAGRAM frames
          </t>
          <ul spacing="normal">
            <li>
              <t>Minimum: 20+8+2+1+1=32 Bytes</t>
            </li>
            <li>
              <t>Maximum: 20+8+25+9+8=70 Bytes</t>
            </li>
          </ul>
        </li>
        <li>
          <t>IPv6 with DATAGRAM frames
          </t>
          <ul spacing="normal">
            <li>
              <t>Minimum: 40+8+2+1+1=52 Bytes</t>
            </li>
            <li>
              <t>Maximum: 40+8+25+9+8=90 Bytes</t>
            </li>
          </ul>
        </li>
      </ul>
    </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 guidance in <xref target="quic-streams"/> about configuring the number of parallel unidirectional QUIC streams is based on <xref section="6.2" sectionFormat="of" target="RFC9114"/>, with obvious substitutions for RTP.</t>
      <t>The authors would like to thank Bernard Aboba, David Schinazi, Gurtej Singh Chandok, Lucas Pardue, Nils Ohlmeier, Sam Hurst, Sergio Garcia Murillo, and Vidhi Goel for their valuable comments and suggestions contributing to this document.</t>
      <t>The authors would also like to thank Sam Hurst and Lorenzo Miniero for
implementing RTP over QUIC.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y963bcSHYu+B9PgaF+FKmVmbqVVCp57DZFUVVsSxRbZLns
dfqsMpgJkmhlAtkAkhRbLT/WeYF5sdn32BFAUqoutz0/ps9ZLhEJxHXHjn39
9nQ6zfqqX5Yv8p33Zyd5c122+R9+OjrId983f9jbyRbNvC5W8POiLS76aVX2
F9Piup83bTlt+/UUP5j+eVPNp4++zeZFX1427e2LvPy4zhbw14v806v9s8PP
WVat2xd53266/vHDh98/fJwVbVlAr/vr9bKCD6um7vKiXuTvy2I5PatW5U52
07QfLttms8b3NouqefCv1aJs8rO2qLt10/b5AYwjf1tUdV/WRT2Hbz6Ut/DZ
4kV+BM/auuynr3DkWdb10PovxbKpYVS3ZZetqxf5/+qb+STvoKm2vOjgX7cr
/Mf/zrrN+arqOhhVf7uGD44Oz15nWbHpr5r2RZZPsxz+V9Xdi/ztLD+sL8vl
edH29JTX623RX1Vd8lPTXhZ19Rea7Yv8rJxf1TD3Zf5TXcE6dlV/mzcX+dsN
PL2iD8pVUS1f5CtqbFZqY/98ic9n82YVDeX3s/xd7wfx+//n/7SX9uxv7b3p
+3+u6lm/Wc0WZdTh6Sx/Vdx8gH+7Tk/XJexEG/2Sdg0v1H2+vypbGEH+5s2B
76/jBhb8/Qxpzk04q+qLpoUVgUG/yOC7Jz+cnEzPTqePn80ePfr2BbXUF+1l
2b/Ir/p+3b148ACJpVjOnlyu1zMYy4NF2X3om/WqWWyWZfcAhjyvLpQM4z9f
lT103c2Kbv3xd53/5Wjxj4++ffgtdyiH6OgEFnDZA/kuqiI/3Zx3t11frvLd
o7ene//gf+vLZbm+aupbeEoProA+l1V9SacAKbot5tjNDnXAp+nxw8dPpg8f
TR8+xZkfNOtifL435flsVfWzcrF5MIe3HkSDpO/yE2ofCeBVuSxupy+LrlxA
m0BkHfaL/+zbZpnDcuf9VWknKh7Qo+c4lKP94/3p+7ODk+nJ2ZYh3dzMqqIu
aP0LOFqX9QqIoHuAbGRdtEA70Hz65+zjVb9a3osfTuM1x25tsCfF/EPZ52dw
art89+QMeFg0vH97P33560c4X08/ttPzZTP/MEWGMPrMxjr4ZfpoOOB/e5+/
xDdoqMkgX789g3+cvH7537Kaz6PBQd/5vxbLDSwfbjwNA1b1dtkUC17WkcGe
nP43jfX7u8aKo9g+1JPpwY+Hf/8RPnqY7DXS5moNZy3/sSwWwBgPP8JthVdL
MrzTV4enf6cxdsDwpnMexvSKhjEtbRiDAeNIvjTqw8PD6aPvnjyZAgt4ND5k
unKLdoE8vCxp4PiPB/jZg2+/+/Z5zJawydyazE/la9raN8UtjOGJu/pP2gYu
b2FPKC9MT3F8eC3kkVBR1fmbBtncPkgc+XHZo1jBk/jX37/9l+fPxwcPA16e
L2eXzfWDdbHGlZ0Dayyum2oxWy8uEoZqTHMfX0BRhNi4cCXPMY9BZFqdw2Qe
ff+cWCduPYlRKHeNj+Wy6q8253j9PViZEPAgkr/8eCJJjrpo/jB9W9UVMO+/
uYPpihvwHW25LGJJ8rRabZa8FziWtvnzrxpD8+etU2MhFRu97Prp1zR8fj5/
IO8mrYYtyOFippNFc/nhFERDOEwtdkPrcNl8sRt5T//ru9rnkVerNfdCC4M0
ut6AKPtDg91UK/zwK1YJjvj8qnnA7/te5ImszHq5uaxq3MW63trqsjifXbRl
KaIRnVb4mCf/IDTTTeEoTB/AD+UDEMrqB0ATD6hpP4C02yybTqd5cQ4NAk/J
sjMUjkG52OAa5CJWARsvciSzFZzWVbFeozSEmwDyYLHuiIrgCWkIKEYFbpAZ
N9iFvdxjReLMSQXu5wP4fU1SQpffwGrC2qN0Q9uylvdmPEAdA/wTGMiyXIzR
3yydTbHsmnxRdfNN18GUrpqbvG/yZQmfFZdlDlyxL6HLosd2iyWs8OI2L65B
yizOl2V20TarMKIhoeBPZb1YNyAjgsoCT0DfgRFBHy3Ie/OS3qhhJ+FRVn6c
g2AJ3ZLQIfOe0ALBTs/b6hyGuKguLsoWx96smWniqlvXuATzcNTnsqjYRgtz
yYpFsZbx6fHHhW02PYxoeYufw080gAsY1jkMYsYEsaoWC5hydg+FyxakcZJ4
/+7k8enT//X+9cGTp08ffv78RVqJXpYFzLYRTr7Lr3//8CG8vvf/09Hfn47u
3ctfwr/QUAANfbp3bn98xhUtxwgiv4sgYDUvyxoWebm8zTcdzR/2rW1vs9aa
YiUOhwnTQPWZxo2EST/AhpGsNMm7zfwqL7r8mkwX8DKt0LzsJlkxb5uui3Sr
WQ73JUoPOPm2BN7ZwrqGbhflEpX1W1YS4dtmCQOFBYct4k3Jlw2Sy4SaXZQX
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
scc1I2uNTpKwSaodzJEpVLhDgvuBgmxXHO+VOqeLP226OJqJ+J/D3VSDw8KC
oZCxZVGHRFo3aMNwqvmd06K5tHFheldGPVSF3I0mvfND06BFbMg6Yet2Rqpv
tysgoenlfE6EgxwMa9WSpqZKNEaMMiWG0QFDODTELYxjeX0AZHx68L4EKVyA
YB5/r4ba4/1X+/r02ffPtSvkVGEf1RJaOMWTQl/RvN60os1HVB2MtBh9AgyM
iarCcgwqrNrlq6WPu0hWNdvXF3kmOx1KjtLCuF8XVBJFNeyM3Fvv/duEU4nH
hGP3svc4pzOcE2Xm7Mid8Pz5k2fsPsCLJ0zv7nGqZyynYAtcO2R5CP6AiSzY
ifoQqPwgtLLS3B3V8eKzckdhcucXAd3IouI1GiSuKSvxAaGO8mw8vtcMTEnZ
LIa6Q5uJLwmopZgHab5a9mwaOsTFPBqk8iO6Tkn5HZzCEZ24ofDgVnqypYAm
EZZqcbiwb2Dv3ii/oz+AzzGDOQUap0U7u2oxhGkNS7T75tvTPdNiQCxprxHI
QAruPnlCucq88hT0CBJm29xQvlneYjzHtG+rNW+f1R0iqyt5DBxXRLaN/+VX
Z9nPlOcL3Qe5WSsWqeNOL1pXg9be13d17tSd3gHAsioCe+PswyupBU/vhFQc
JS3JNfeXNFvBYuUNZ9BKbPJIJXkiGxCWM93NRTm3UF/RSDXojqW80etmGQSN
JECBLkCOMdSTpPrTcDiceBXyAkD7YmkNi6xm/bDmczQ/PZ3akQ18dLyZBNdY
eJ59H1YnHP5B1xNv+UaIlgBGS1KV5fQMmxN2PCpijWDNfZ1Gc6QYCqDSLILw
Mr5VFTOQEMKrtQeNcrLIV8PW4STWiWxGpv+fI/6yAgcLcgZle0p4f0Ziz1RB
wh27lVDfEL2LqnbzZbEmvuywBivhGjOLUZQsvm/1it2z3abrmiedBXkyxO9K
UB6SPIYo3nnv7UYFGrOQuYoFGvG8UnGeRaeLrFZJNkphWfnEriN757CFTYv7
MjFwQJAiwJrJzKpA3jUVVgv0ckU3cqZlrSlZCR15ejeKayaqr12y/S+1BWCC
URWu86HgrabKsxPegRCkOGiLLJZopkGNvLsanU6X35TLpYGSjUBvSWm0Yvxw
mtuYqICWlcGE0jyUwqfuOTjqLe069bIftMcalpdLv1LmVR3oh4OD7E7xdTIU
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
oNXrFJT0LHGTUNLqdq0qaM8W1G00f2oNCroPCyI8MZNmK5ydrymoZgviPNpf
fm3CfxDE3BRpC9KUY+QbeGWL9m1BZ3CebEE5jU6zdXHROnXePyOquSEG/xLS
yVd0Xd0W9K7zU+fqZ2jI2cXVzzBkp/b9dxMOoD1Df5X94jUFHdiCWh+6reZA
eu1d57I1MO9jfPqML3fY95QaOlKyiBZwLJgvK+fLcfxdoFDi+Wg+Tt9sKIpH
YI5ugM2JS5AYsOFMdCHcOHrHVJCWUZSswIrN7iISxMeyfC9BDjTK5OZSUOVw
xGhEkcG6VPouh5RVTvKIKDuBocE4IfJGGYBlG+UvOfpbmjRGfoGd+GcBdHH8
qWC/LxxR1ocpWUHMWKXI/G4AohIG3yjmLXmxTKaYpnIQGgrBU+Qy9pJsiRB5
gAFiG+5NqgvU7aFm8m56n44fMV69IDKfUH6d2HzJQw2uHnfWBeZFdADT3Qrh
t/UW76wGtlqYiHRJ+II4P64mafnn5Am2J8SU2HoBojemwdnypyKfggzJiPAV
9aRDbMmB8CU4wYjMTifvtVCAdcpa/H993bk+9nq+EENX0zoNgRnhNoS4YkUQ
wgF3E2HhUvcEyOJnShq9VeB8pU5ApjNDLQ3yESwvdjkFDF+pixVAbfWLstny
QrqtqO44Pygx3RVQMN8IudvE9g0c1KOeooD/mOCdLEGwC8Y3rvitEAsalvZD
Np0Ijzs9Lz231dP1zXAXLARD3+ZZToztJNUKshzLGKAwB5FC+2VwWx1WXAfX
3kRcy+olvysxfugmSnXrD6668EGrc9runKtuJMArwj++zYh4GvUs/2Gnod7l
STWfHHxxsnkl855jwxEzXDmtHaZWA3d37e6nkr2JF/7Mh+iCmuLxmNMWQKSU
gR5DTW8S3UW+NnWzpXLp6dGL6R1Wnpfry3f+TA9SXXCHyaiJFAGS47dTwUzq
ldt6iMPV49/gia1saytXojJ8ZItrk4dSQKsWE9sp3jYx3StoZ/I76sFEAdrl
ZJc4Jx1y9o0UWz0xDgW8Y+lLgiHuK8SAafg4MhvabJCS+BpgNEPYMEr+SJ04
O8RWiVwKz9cEhiBLxeMjrSgjYivCtBVJwrydLtQ1cRxvPaXZ1na8hT7u8RP+
FuTBYX5rerPFnbI1mW6BVujywwFabTjU+CkfJykXV07dXiMdntLI6bedZbVw
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
gT5sn7jORfzdif4Pbd2XN9DfAQA=

-->

</rfc>
