<?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.11 (Ruby 3.2.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-avtcore-rtp-over-quic-10" category="exp" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title>RTP over QUIC (RoQ)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtp-over-quic-10"/>
    <author initials="J." surname="Ott" fullname="Jörg Ott">
      <organization>Technical University Munich</organization>
      <address>
        <email>ott@in.tum.de</email>
      </address>
    </author>
    <author initials="M." surname="Engelbart" fullname="Mathis Engelbart">
      <organization>Technical University Munich</organization>
      <address>
        <email>mathis.engelbart@gmail.com</email>
      </address>
    </author>
    <author initials="S." surname="Dawkins" fullname="Spencer Dawkins">
      <organization>Tencent America LLC</organization>
      <address>
        <email>spencerdawkins.ietf@gmail.com</email>
      </address>
    </author>
    <date/>
    <area>Applications and Real-Time</area>
    <workgroup>Audio/Video Transport Core Maintenance</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 78?>

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

<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>The association between flow identifiers and RTP streams MUST be negotiated
using appropriate signaling. The signaling happens out of band and thus a stream
or DATAGRAM 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 DATAGRAMs. 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>
      <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-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>
    </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).</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>
        </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="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>
      <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="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="3" month="May" 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-14"/>
        </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="10" month="April" 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/mirjak/draft-lmbdhk-quic-multipath.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-07"/>
        </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="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="30" month="April" 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-09"/>
        </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="8" month="April" 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-03"/>
        </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 1286?>

<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="experimental-results">
      <name>Experimental Results</name>
      <t>An experimental implementation of the mapping described in this document can be
found on <eref target="https://github.com/mengelbart/rtp-over-quic">Github</eref>. The application
implements the RoQ Datagrams mapping and implements SCReAM congestion
control at the application layer. It can optionally disable the builtin QUIC
congestion control (NewReno). The endpoints only use RTCP for congestion control
feedback, which can optionally be disabled and replaced by the QUIC connection
statistics as described in <xref target="transport-layer-feedback"/>.</t>
      <t>Experimental results of the implementation can be found on
<eref target="https://github.com/mengelbart/rtp-over-quic-mininet">Github</eref>, too.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Early versions of this document were similar in spirit to
<xref target="I-D.draft-hurst-quic-rtp-tunnelling"/>, although many details differ. The
authors would like to thank Sam Hurst for providing his thoughts about how QUIC
could be used to carry RTP.</t>
      <t>The 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, 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:
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
x0CEI6BliqyGmbxMISP+HR4pteVillDiY8b4LmKm3odCKrW2KtAKwgRyQJOo
wiREs3l8bA7a/Z3voi8kmiVcOBcYrkQ5s2zQlOPaRaZrf5gs5p8SV6YE6yVB
fxVNIi1ZObm7Vq89TJ2YGWStUkgBwfMOZSEkVpJKY5A4EkXiQJEorhLfuJpy
IW4HISYYAFQBdCHWmjBoPR5uX+PGU5moSriUH9NU0mzDk0iO8BgToD9zbiu/
4VKrV54EqQDA02m4YoDATFi1LnXt4TA9L334Gov8SFCY7PjyZ04cD4qWU+kw
Wkia0V1WJ2ZFbXIg/46mOIKSKCTtjd1MAZCEAr2JcPrGYmuQmnz0N53CWM2P
jEeEgGSnBkJ7hTJl5DGHr0vKXA44Bp10xPctbtaUp74cIO60w4z+mM3XggEX
WrK5i8ZY6tWGJoBOuh8WMQm2Yzkt77QEZNSJAX6zHYndgFD4QtBFBwOuAOFw
b0bONcklYj5RKBwBIqL8WxWTTU4KmWLHeE0iuMMAojqhk4pClMjDc8ulKFV4
CaTjCiN7c2vjz7NKZFSGSKvZckS87j1sEyez3wWWLfysF30iNn4pot7lfNEa
0TCXybpSdER//CyDCdFZHM4rysgrLIB8Xa6p0kHirDjO3CwANSJRr6gmrcGb
Cw6tpUI80MQPVNnNMq4fHUyArZLEsjSXeQbHoKzqfqIJqOE6WEfkZrAgcm1x
zVAtXmmVoNohgmCiJ51aBgpnUdQSEcauINbODkjVCi6D4kZxhWFedFL7xPbI
glAKh2zKwcJq9Ew2nQqBhRU02KOaA5YE20wDBrlcigJ6I2g8KOslwxzv78YI
32zkcF8Zwz8BdhPULxcO0Ws045AJxWE270rcNBYwxH0jDcClKquzTAhTSS7f
LJa6khmjw2KBVi5H3aQHu0pr8agyML8MCof3rOtnGj0qggldZVrZvWcw/ZZN
2b+EUS8ewQihZRwmkjhwEk6/puLBtGu8RaW50N1eG+WgwZLIOkrnHNviEPU9
v8XFUohBErncRvMz5FvjKDi6Da4ia21K8ZpIVo/Cch3D+jmuSMfUGeqZG8Ja
OvO+ojehEZiAlcLxslkXy0XTWsnW6pIV4pUjWbZxsNNddgdfd7rKVsUUCVwT
bo2l27opxptnYuCeRNpW4uLY3IIoVeqKybOuWo78iEH0OsFAOeYuOQnQNaTs
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
Ac+cAQA=

-->

</rfc>
