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

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

<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>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 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 a packet is no longer needed and knows that the 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 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>
    <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 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 a 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 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 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 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-10"/>.</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>25 May 2024</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>
    <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="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="21" month="October" year="2024"/>
            <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-11"/>
        </reference>
        <reference anchor="RFC9114">
          <front>
            <title>HTTP/3</title>
            <author fullname="M. Bishop" initials="M." role="editor" surname="Bishop"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment. This document describes a mapping of HTTP semantics over QUIC. This document also identifies HTTP/2 features that are subsumed by QUIC and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9114"/>
          <seriesInfo name="DOI" value="10.17487/RFC9114"/>
        </reference>
        <reference anchor="RFC8860">
          <front>
            <title>Sending Multiple Types of Media in a Single RTP Session</title>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="J. Lennox" initials="J." surname="Lennox"/>
            <date month="January" year="2021"/>
            <abstract>
              <t>This document specifies how an RTP session can contain RTP streams with media from multiple media types such as audio, video, and text. This has been restricted by the RTP specifications (RFCs 3550 and 3551), and thus this document updates RFCs 3550 and 3551 to enable this behaviour for applications that satisfy the applicability for using multiple media types in a single RTP session.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8860"/>
          <seriesInfo name="DOI" value="10.17487/RFC8860"/>
        </reference>
        <reference anchor="RFC5761">
          <front>
            <title>Multiplexing RTP Data and Control Packets on a Single Port</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins"/>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund"/>
            <date month="April" year="2010"/>
            <abstract>
              <t>This memo discusses issues that arise when multiplexing RTP data packets and RTP Control Protocol (RTCP) packets on a single UDP port. It updates RFC 3550 and RFC 3551 to describe when such multiplexing is and is not appropriate, and it explains how the Session Description Protocol (SDP) can be used to signal multiplexed sessions. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5761"/>
          <seriesInfo name="DOI" value="10.17487/RFC5761"/>
        </reference>
        <reference anchor="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-10">
          <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="8" month="May" 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-10"/>
        </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="7" month="October" year="2024"/>
            <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-04"/>
        </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 1532?>

<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 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 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">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 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 packets can be directly inferred from QUIC's acknowledgments.
The calculation includes all 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 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 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 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 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, Sam Hurst, Sergio Garcia Murillo,  and Vidhi Goel for their valuable comments and suggestions contributing to this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+y963bcRpYu+B9PgaF+mNTKTIuSJcvqqa6mKMpmt0SzRLrc
vU6d5QYzQRKlTCALQJJiqdSPdV5gXmz2PXYEkJRc7sv8mDpntUUkEPfY9/3t
6XSa9VW/LF/kO+/OT/PmpmzzP/x0fJjvvmv+sLeTLZp5Xazg50VbXPbTquwv
p8VNP2/actr26yl+MP3LpppP9x9n86Ivr5r27kVeflhnC/jrRf7x1cH50acs
q9bti7xvN13/+NGj7x49zoq2LKDXg/V6WcGHVVN3eVEv8ndlsZyeV6tyJ7tt
2vdXbbNZ43ubRdV8/cdqUTb5eVvU3bpp+/wQxpG/Laq6L+uinsM378s7+Gzx
Ij+GZ21d9tNXOPIs63po/Zdi2dQwqruyy9bVi/x/9c18knfQVFtedvCvuxX+
439n3eZiVXUdjKq/W8MHx0fnr7Os2PTXTfsiy6dZDv+r6u5F/naWH9VX5fKi
aHt6yuv1tuivqy75qWmvirr6K832RX5ezq9rmPsy/6muYB27qr/Lm8v87Qae
XtMH5aqoli/yFTU2K7Wxf7rC57N5s4qG8s+z/MfeD+Kf/5//017Zs7+396bv
/6mqZ/1mNVuUUYdns/xVcfse/u06PVuXsBNt9EvaNbxQ9/nBqmxhBPmbN4e+
v44bWPD3MzxzbsJZVV82LawIDPpFBt89+f70dHp+Nn38bLa//80Laqkv2quy
f5Ff9/26e/H113hYiuXsydV6PYOxfL0ou/d9s141i82y7L6GIc+rSz2G8Z+v
yh667mZFt/7w+87/crz43f43j77hDuUSHZ/CAi57OL6LqsjPNhfdXdeXq3z3
+O3Z3j/43/pyWa6vm/oOntKDazify6q+oluAJ7ot5tjNDnXAt+nxo8dPpo/2
p4+e4swPm3UxPt/b8mK2qvpZudh8PYe3vo4GSd/lp9Q+HoBX5bK4m74sunIB
bcIh67Bf/GffNsscljvvr0u7UfGA9p/jUI4PTg6m784PT6en51uGdHs7q4q6
oPUv4Gpd1Ss4BN3XSEbWRQtnB5pP/5x9uO5Xywfxw2m85titDfa0mL8v+/wc
bm2X756eAw2Lhvev76Yvf/0I5+vph3Z6sWzm76dIEEaf2VgHv0z3hwP+13f5
S3yDhpoM8vXbc/jH6euX/y2r+TwaHPSd/7FYbmD5cONpGLCqd8umWPCyjgz2
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
6Iv/D/eJThS50AEA

-->

</rfc>
