<?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.23 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-over-quic-13" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.27.0 -->
  <front>
    <title>RTP over QUIC (RoQ)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-13"/>
    <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 102?>

<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 113?>

<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>
    <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" heading.</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="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="22" month="January" 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-12"/>
        </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 Extension for Reporting Packet Receive Timestamps</title>
            <author fullname="Connor Smith" initials="C." surname="Smith">
              <organization>Magic Leap, Inc.</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google LLC</organization>
            </author>
            <date day="25" month="October" year="2021"/>
            <abstract>
              <t>   This document defines an extension to the QUIC transport protocol
   which supports reporting multiple packet receive timestamps using a
   new ACK_RECEIVE_TIMESTAMPS frame type.

Discussion Venues

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

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-huitema-quic-ts-08"/>
        </reference>
        <reference anchor="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="29" month="August" year="2024"/>
            <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-10"/>
        </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 1585?>

<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+eZPOiLy+b9vZFXn5cZwv460X+6dX+2eHn
LKvW7Yu8bzdd//jhw+8fPs6Ktiyg1/31elnBh1VTd3lRL/L3ZbGcnlWrcie7
adoPl22zWeN7m0XVPPjXalE2+Vlb1N26afv8AMaRvy2qui/rop7DNx/KW/hs
8SI/gmdtXfbTVzjyLOt6aP2XYtnUMKrbssvW1Yv8f/XNfJJ30FRbXnTwr9sV
/uN/Z93mfFV1HYyqv13DB0eHZ6+zrNj0V037IsunWQ7/q+ruRf52lh/Wl+Xy
vGh7esrr9bbor6ou+alpL4u6+gvN9kV+Vs6vapj7Mv+prmAdu6q/zZuL/O0G
nl7RB+WqqJYv8hU1Niu1sX++xOezebOKhvL7Wf6u94P4/f/zf9pLe/a39t70
/T9X9azfrGaLMurwdJa/Km4+wL9dp6frEnaijX5Ju4YX6j7fX5UtjCB/8+bA
99dxAwv+foY05yacVfVF08KKwKBfZPDdkx9OTqZnp9PHz2aPHn37glrqi/ay
7F/kV32/7l48eIDEUixnTy7X6xmM5cGi7D70zXrVLDbLsnsAQ55XF0qG8Z+v
yh667mZFt/74u87/crT4x0ffPvyWO5RDdHQCC7jsgXwXVZGfbs67264vV/nu
0dvTvX/wv/XlslxfNfUtPKUHV0Cfy6q+pFOAFN0Wc+xmhzrg0/T44eMn04eP
pg+f4swPmnUxPt+b8ny2qvpZudg8mMNbD6JB0nf5CbWPBPCqXBa305dFVy6g
TSCyDvvFf/Zts8xhufP+qrQTFQ/o0XMcytH+8f70/dnByfTkbMuQbm5mVVEX
tP4FHK3LegVE0D1ANrIuWqAdaD79c/bxql8t78UPp/GaY7c22JNi/qHs8zM4
tV2+e3IGPCwa3r+9n7789SOcr6cf2+n5spl/mCJDGH1mYx38Mn00HPC/vc9f
4hs01GSQr9+ewT9OXr/8b1nN59HgoO/8X4vlBpYPN56GAat6u2yKBS/ryGBP
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
PGNAgJTeIuWLQ5kDAFAymZP+ZHpmHd33j9/jrWZPztp67EUK6PA/7E2ykQNt
cgmHOYTkRETD10loFQA5OLtdWQKZkiNEnmG0hItdYB1CghRgObVQGEqQUiGB
leuRCjpWHAld9tBmwI+sMRSISsPByyDsKwx1aMTvDH+lT8SrJiV5cEhiHBmD
FAhIDPvIESuyy3OXNAyC4KSIcddj2Om0Ty3zhRPCzmEM9LezUSrm1VbhPaPI
uxipSxgocFiSsUIwCEjg9Dp2qG3RMSCzIJ8CIoYwem/xpoA85COj4eWIJA5M
VuQx6Ru6zIR7xH5zBkCMFsp3RQnZIXjQIANzKy7HETYDGdlUNz86ZEwyII8W
k2X7vmoWVTSPk2vE7O2AI8XK/NdQKUalvr/mp5hQNYfL+BjF87/Gddx+Bw8O
QAOlYNu/QgNT+V+u/xt5NPps7Eds8H89mT3637taEhX3lxK4QbJH/yRXeG/m
D7D08YP2Yo6DvydZnVP4dA/aY1ai0Tb0D3h6C2fzr7n28Xj26Lf0Q5+HvpRt
WTcIcjw93j/z3T3+bd09tu5inhj3iafj/z5v/4n/Oj08iGb85LcN4YkNIeW/
w0FYr79p2mHSWJJyesb/ld60O5xlmHO8Am8P4B6UsfwmyvK0Bbc+/BPUyL+6
TnLr5TfM+Imb8Sn1giL/8jbuKUzvJ/w77f837PITt8cqZHxxEPQ3D0UH8e3f
PoRvHZF1Vwlh+T6e/pbtfBod37fDM2Uh7dsmHZHZ1nZ4qM/+9oE+C8uBgthX
jCy8rL3/loV6xgvFBx5ahfsjjCQiCz9I7fg3HIVnfBS441NNJ/7qvr/723v+
Dvs9ZT/+dYlAKjdFS9aMtxaeM0KWYzugo3n+t4/muREAlS+bcmY19PlTYINb
Od+dg/r+bx/U9zYoygBV8Zo2yAY2eiV9eViPHv6G+/9hYF+gP/dTLrkBktFw
w7S73yJuuDuhu10x2Ag8OUmO6M9FC5J+sgiThJv8NctUbEDMwuNgG/IV34Za
9MCShHIHzIKKKCMWu/aArZ66Fjehhh2FMJFoHYGj8/VazmU8YgrToRg6lcZM
UPWmkQKizgHtoQc6sWuMYg946IHuq7EHGJR3TgmIlkIp4ACWDaBAF3GQEFk3
dMRY9QTXFON2ob27Chq5ICByvnAhK5biiwVsQk91kasOzU4SoxFhb/VUJcs8
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
Ne9iBNsBAA==

-->

</rfc>
