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

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

<section anchor="introduction">
      <name>Introduction</name>
      <t>This document specifies a minimal mapping for encapsulating Real-time Transport
Protocol (RTP) <xref target="RFC3550"/> and RTP Control Protocol (RTCP) <xref target="RFC3550"/> packets
within the QUIC protocol (<xref target="RFC9000"/>).
This mapping is called RTP over QUIC (RoQ).
It also discusses how to leverage state
from the QUIC implementation in the endpoints, in order to reduce the need to
exchange RTCP packets, and how to implement congestion control and rate
adaptation without relying on RTCP feedback.</t>
      <section anchor="background">
        <name>Background</name>
        <t>The Real-time Transport Protocol (RTP) <xref target="RFC3550"/> is generally used to carry
real-time media for conversational media sessions, such as video conferences,
across the Internet.  Since RTP requires real-time delivery and is tolerant to
packet losses, the default underlying transport protocol has been UDP, recently
with DTLS on top to secure the media exchange and occasionally TCP (and possibly
TLS) as a fallback.</t>
        <t>This specification describes an application usage of QUIC (<xref target="RFC9308"/>).
As a baseline, the specification does not expect more than a standard QUIC implementation
as defined in <xref target="RFC8999"/>, <xref target="RFC9000"/>, <xref target="RFC9001"/>, and <xref target="RFC9002"/>,
providing a secure end-to-end transport that is also expected to work well through NATs and firewalls.
Beyond this baseline, real-time applications can benefit from QUIC extensions such as unreliable 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 Specification</name>
        <t>This document defines a mapping for RTP and RTCP over QUIC, called RoQ, and describes ways to reduce the
amount of RTCP traffic by leveraging state information readily available within
a QUIC endpoint. This document also describes different options for implementing
congestion control and rate adaptation for RoQ.</t>
        <t>This specification focuses on providing a secure encapsulation of RTP 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 transport protocols such as TCP,
UDP, SCTP, DTLS, etc. That is, we expect RoQ to be used in contexts in
which a signaling protocol is used to announce or negotiate a media
encapsulation and the associated transport parameters (such as IP address, port
number). RoQ is not intended as a stand-alone media transport, although media
transport parameters could be statically configured.</t>
        <t>The above implies that RoQ is targeted at peer-to-peer operation; but
it may also be used in client-server-style settings, e.g., when talking to a
conference server as described in RFC 7667 (<xref target="RFC7667"/>), or, if RoQ
is used to replace RTSP (<xref target="RFC7826"/>), to a media server.</t>
        <t>An appropriate rate adaptation algorithm can be plugged in to adapt the media bitrate to the available bandwidth.
This document does not mandate any specific rate adaptation mechanism, so the application can use a rate adaption mechanism of its choice.</t>
        <t>Moreover, this document describes how a QUIC implementation and its API can be
extended to improve efficiency of the RoQ protocol operation.</t>
        <t>RoQ does not impact the usage of RTP Audio Video Profiles (AVP)
(<xref target="RFC3551"/>), or any RTP-based mechanisms, even though it may render some of
them unnecessary, e.g., Secure Real-Time Transport Prococol (SRTP)
(<xref target="RFC3711"/>) might not be needed, because end-to-end security is already
provided by QUIC, and double encryption by QUIC and by SRTP might have more
costs than benefits.  Nor does RoQ limit the use of RTCP-based
mechanisms, even though some information or functions obtained by using RTCP
mechanisms may also be available from the underlying QUIC implementation by
other means.</t>
        <t>Between two (or more) endpoints, RoQ supports multiplexing multiple
RTP-based media streams within a single QUIC connection and thus using a single
(destination IP address, destination port number, source IP address, source port
number, protocol) 5-tuple. We note that multiple independent QUIC connections
may be established in parallel using the same destination IP address,
destination port number, source IP address, source port number, protocol)
5-tuple., e.g. to carry different media channels. These connections would be
logically independent of one another.</t>
      </section>
      <section anchor="out-of-scope">
        <name>What's Out of Scope for this Specification</name>
        <t>This document does not attempt to enhance QUIC for real-time media or define a
replacement for, or evolution of, RTP. Work to map other media transport
protocols to QUIC is under way elsewhere in the IETF.</t>
        <t>RoQ is designed for use with point-to-point connections, because QUIC
itself is not defined for multicast operation. The scope of this document is
limited to unicast RTP/RTCP, even though nothing would or should prevent its use
in multicast setups once QUIC supports multicast.</t>
        <t>RoQ does not define congestion control and rate adaptation algorithms
for use with media. However, <xref target="congestion-control"/> discusses options for how
congestion control and rate adaptation could be performed at the QUIC and/or at
the RTP layer, and <xref target="api-considerations"/> describes the 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> the meaning of the terms "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 specification, 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:</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, causing some outstanding data to be discarded before the receiver can receive the data and acknowledge it to the sender.</t>
        </dd>
        <dt>Datagram:</dt>
        <dd>
          <t>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. 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>
        </dd>
        <dt>Endpoint:</dt>
        <dd>
          <t>A QUIC server or client that participates in an RoQ session.</t>
        </dd>
        <dt>Frame:</dt>
        <dd>
          <t>A QUIC frame as defined in <xref target="RFC9000"/>.</t>
        </dd>
        <dt>Rate Adaptation:</dt>
        <dd>
          <t>An application-level mechanism that adjusts the sending rate of an application in order to respond 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 may send or receive RTCP packets.</t>
        </dd>
        <dt>Sender:</dt>
        <dd>
          <t>An endpoint that sends media in RTP packets and may 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 frame, as defined in <xref target="RFC9000"/>, or a series of QUIC STREAM frames in a single stream, or a series of RTP packets encapsulated in QUIC STREAM frames. If not explicitly qualified, the term "STREAM" in this document refers to a QUIC STREAM frame, and "stream" in this document refers to one or more RTP packets encapsulated in QUIC STREAM frames. This document also uses the term "RoQ stream" as a short form of "one or more RTP packets encapsulated in QUIC STREAM frames".</t>
        </dd>
      </dl>
      <t>Packet diagrams in this document use the format defined in <xref section="1.3" sectionFormat="of" target="RFC9000"/> to
illustrate the order and size of fields.</t>
    </section>
    <section anchor="protocol-overview">
      <name>Protocol Overview</name>
      <t>This document introduces a mapping of the Real-time Transport Protocol (RTP) to
the QUIC transport protocol. RoQ allows the use of QUIC streams and
QUIC DATAGRAMs to transport real-time data, and thus, the QUIC
implementation MUST support QUIC's DATAGRAM extension, if RTP packets
are to be sent over QUIC DATAGRAMs.</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 be application and codec-specific. For example, adjusting quantization in response to changing network conditions may work well in many cases, but if what's being shared is video that includes text, maintaining readability is important.</t>
      <t>As of this writing, the IETF has produced two Experimental-track congestion control specifications, Network-Assisted Dynamic Adaptation (NADA) <xref target="RFC8698"/> and Self-Clocked Rate Adaptation for Multimedia (SCReAM) <xref target="RFC8298"/>.
These congestion control algorithms require some feedback about the network's performance to calculate target bitrates. Traditionally this feedback is generated at the receiver and sent back to the sender via RTCP.</t>
      <t>Since QUIC also collects some metrics about the network's performance, these
metrics can be used to generate the required feedback at the sender-side and
provide it to the 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>Motivations</name>
        <t>From time to time, someone asks the reasonable question, "why should anyone implement and deploy RoQ"? This reasonable question deserves a better answer than "because we can". Upon reflection, the following motivations seem useful to state.</t>
        <t>The motivations in this section are in no particular order, and this reflects the reality that not all implementers and deployers would agree on "the most important motivations".</t>
        <section anchor="alwas-on">
          <name>"Always-On" Transport-level Authentication and Encryption</name>
          <t>Although application-level mechanisms to encrypt RTP and RTCP payloads have existed since the introduction of Secure Real-time Transport Protocol (SRTP) <xref target="RFC3711"/>, encryption of RTP and RTCP header fields and contributing sources has only been defined recently (in Cryptex <xref target="RFC9335"/>, and both SRTP and Cryptex are optional capabilities for RTP.</t>
          <t>This is in sharp contrast to "always-on" transport-level encryption in the QUIC protocol, using Transport Layer Security (TLS 1.3) as described in <xref target="RFC9001"/>. QUIC implementations always authenticate the entirety of each packet, and encrypt as much of each packet as is practical, even switching from "long headers", which expose more QUIC header fields needed to establish a connection, to "short headers", which only expose the absolute minimum QUIC header fields needed to identify the connection to the receiver, so that the QUIC payload is presented to the right QUIC application <xref target="RFC8999"/>.</t>
        </section>
        <section anchor="always-on-internet-safe-congestion-avoidance">
          <name>"Always-On" Internet-Safe Congestion Avoidance</name>
          <t>When RTP is carried directly over UDP, as is commonly done, the underlying UDP protocol provides no transport services beyond path multiplexing using UDP ports. All congestion avoidance behavior is up to the RTP application itself, and if anything goes wrong with the application resulting in an RTP sender failing to recognize that it is contributing to path congestion, the "worst case" response is to invoke RTP "circuit breaker" procedures <xref target="RFC8083"/>, resulting in "ceasing transmission", as described in <xref section="4.5" sectionFormat="of" target="RFC8083"/>. Because RTCP-based circuit breakers only detect long-lived congestion, a response based on these mechanisms will not happen quickly.</t>
          <t>In contrast, when RTP is carried over QUIC, QUIC implementations maintain their own estimates of key transport parameters needed to detect and respond to possible congestion, and these are independent of any measurements RTP senders and receivers are maintaining. The result is that even if an RTP sender continues to "send", QUIC congestion avoidance procedures (for example, the procedures defined in <xref target="RFC9002"/>) will cause the RTP packets to be buffered 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-RTCP 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, and will arrive at the receiver later than a user 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 can interfere with a sender's ability to stabilize rate control and achieve audio/video synchronization.</t>
            </li>
          </ul>
          <t>Taken as a whole,</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,</t>
            </li>
            <li>
              <t>but in the presence of packet loss, QUIC connection-level congestion control will respond more quickly 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>RTP makes use of a large number of RTP-specific feedback mechanisms because when RTP is carried directly over UDP, there is no other way to receive feedback. Some of these mechanisms are specific to the type of media RTP is sending, but others can be mapped from underlying QUIC implementations that are using this feedback to perform congestion control for any QUIC connection, regardless of the application reflected in the QUIC STREAM <xref target="RFC9000"/> and DATAGRAM <xref target="RFC9221"/> frames. This is described in (much) more detail in <xref target="congestion-control"/> on rate adaptation, and in <xref target="rtcp-mapping"/> on replacing RTCP and RTP header extensions with QUIC feedback.</t>
          <t>One word of caution is in order - RTP implementations may rely on at least some minimal periodic RTCP feedback, in order to determine that an RTP flow is still active, and is not causing sustained congestion (as described in <xref target="RFC8083"/>, but since this "periodicity" is measured in seconds, the impact of this "duplicate" feedback on path bandwidth utilization is likely close to zero.</t>
        </section>
        <section anchor="mtu-coal">
          <name>Path MTU Discovery and RTP Media Coalescence</name>
          <t>The minimum Path MTU supported by conformant QUIC implementations is 1200 bytes <xref target="RFC9000"/>, and in addition, QUIC implementations allow senders to use either DPLPMTUD (<xref target="RFC8899"/>) or PMTUD (<xref target="RFC1191"/>, <xref target="RFC8201"/>) to determine the actual MTU size that the receiver and path between sender and receiver support, which can be even larger.</t>
          <t>This is especially useful in certain conferencing topologies, where otherwise senders have no choice but to use the lowest path MTU for all conference participants, but even in point-to-point RTP sessions, this also allows senders to piggyback audio media in the same UDP packet as video media, for example, and also allows QUIC receivers to piggyback QUIC ACK frames on any QUIC 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 specification 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/RTCP with
other protocols on the same connection, as long as these protocols can co-exist
with RTP/RTCP 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 may be desireable 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 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 specification.</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 should use. Indeed, an application can use both QUIC streams and DATAGRAM encapsulations. The choice of encapsulation is left to the application developer, but it is worth noting the differences.</t>
        <t>QUIC <xref target="RFC9000"/> was initially designed to carry HTTP <xref target="RFC9114"/> in QUIC STREAM frames, and QUIC STREAM frames provide what HTTP application developers require - for example, QUIC STREAM frames provide a stateful, connection-oriented, flow-controlled, reliable, ordered stream of bytes to an application. QUIC STREAM frames 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 require 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 STREAM frames within a single QUIC connection, sharing the connection's cryptographic and authentication context, and congestion controller context.</t>
        <t>There is no default relative priority between DATAGRAM frames with respect to each other, and there is no default priority between DATAGRAM frames and QUIC STREAM frames. The implementation likely presents an API to allow appplications to assign relative priorities, but this is not mandated by the standard and may not be present in all implementations.</t>
        <t>Because 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 may not be able to commit the necessary resources to process incoming frames, but the purpose for DATAGRAM frames is to carry application-level information that can be lost and will not be retransmitted,</t>
          </li>
          <li>
            <t>DATAGRAM frames do inherit the QUIC connection's congestion controller. This means that although there is no frame-level flow control, DATAGRAM frames may be delayed until the controller allows them to be sent, or dropped (with an optional notification to the sending application). Implementations can also delay sending DATAGRAM frames to maintain consistent packet pacing (as described in <xref section="7.7" sectionFormat="of" target="RFC9002"/>), and can allow an application to specify a sending expiration time, but these capabilities are not mandated by the standard and may not be present in all implementations.</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 Maximum Transmission Unit (MTU) of the path 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>Because DATAGRAMs are an extension to QUIC, a RoQ endpoint cannot count on a RoQ peer supporting that extension. The RoQ endpoint may discover that its peer does not support DATAGRAMs while using signaling to set up QUIC connections, but may also discover that its peer has not negotiated the use of this extension during the QUIC handshake. When this happens, 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 STREAM frames instead.</t>
          </li>
        </ul>
      </section>
      <section anchor="topologies">
        <name>Supported RTP Topologies</name>
        <t>RoQ only supports some of the RTP topologies described in
<xref target="RFC7667"/>. Most notably, due to QUIC <xref target="RFC9000"/> being a purely IP unicast
protocol at the time of writing, RoQ cannot be used as a transport
protocol for any of the paths that rely on IP multicast in several multicast
topologies (e.g., <em>Topo-ASM</em>, <em>Topo-SSM</em>, <em>Topo-SSM-RAMS</em>).</t>
        <t>Some "multicast topologies" can include IP unicast paths (e.g., <em>Topo-SSM</em>,
<em>Topo-SSM-RAMS</em>). In these cases, the unicast paths can use RoQ.</t>
        <t>RTP supports different types of translators and mixers. Whenever a middlebox
such as a translator or a mixer needs to access the content of RTP/RTCP-packets,
the QUIC connection has to be terminated at that middlebox.</t>
        <t>RoQ streams (see <xref target="quic-streams"/>) can support much larger RTP
packet sizes than other transport protocols such as UDP can, which can lead to
problems with transport translators which translate from RoQ to RTP
over a different transport protocol. A similar problem can occur if a translator
needs to translate from RTP over UDP to RoQ over DATAGRAMs, where the max_datagram_frame_size
of a QUIC DATAGRAM may be smaller than the MTU of a UDP datagram. In both cases,
the translator may need to rewrite the RTP packets to fit into the smaller MTU
of the other protocol. Such a translator may need codec-specific knowledge to
packetize the payload of the incoming RTP packets in smaller RTP packets.</t>
        <t>Additional details are provided in the following table.</t>
        <table>
          <thead>
            <tr>
              <th align="left">RFC 7667 Section</th>
              <th align="left">Shortcut Name</th>
              <th align="left">RTP over QUIC?</th>
              <th align="left">Comments</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.1">3.1</eref></td>
              <td align="left">Topo-Point-to-Point</td>
              <td align="left">yes</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.2.1.1">3.2.1.1</eref></td>
              <td align="left">Topo-PtP-Relay</td>
              <td align="left">yes</td>
              <td align="left">Note-NAT</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.2.1.2">3.2.1.2</eref></td>
              <td align="left">Topo-Trn-Translator</td>
              <td align="left">yes</td>
              <td align="left">Note-MTU <br/> Note-SEC</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.2.1.3">3.2.1.3</eref></td>
              <td align="left">Topo-Media-Translator</td>
              <td align="left">yes</td>
              <td align="left">Note-MTU</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.2.2">3.2.2</eref></td>
              <td align="left">Topo-Back-To-Back</td>
              <td align="left">yes</td>
              <td align="left">Note-SEC <br/> Note-MTU <br/> Note-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.3.1">3.3.1</eref></td>
              <td align="left">Topo-ASM</td>
              <td align="left">no</td>
              <td align="left">Note-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.3.2">3.3.2</eref></td>
              <td align="left">Topo-SSM</td>
              <td align="left">partly</td>
              <td align="left">Note-MCast <br/> Note-UCast-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.3.3">3.3.3</eref></td>
              <td align="left">Topo-SSM-RAMS</td>
              <td align="left">partly</td>
              <td align="left">Note-MCast <br/> Note-MCast-UCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.4">3.4</eref></td>
              <td align="left">Topo-Mesh</td>
              <td align="left">yes</td>
              <td align="left">Note-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.5.1">3.5.1</eref></td>
              <td align="left">Topo-PtM-Trn-Translator</td>
              <td align="left">possibly</td>
              <td align="left">Note-MCast <br/> Note-MTU <br/> Note-Topo-PtM-Trn-Translator</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.6">3.6</eref></td>
              <td align="left">Topo-Mixer</td>
              <td align="left">possibly</td>
              <td align="left">Note-MCast <br/> Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.6.1">3.6.1</eref></td>
              <td align="left">Media-Mixing-Mixer</td>
              <td align="left">partly</td>
              <td align="left">Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.6.2">3.6.2</eref></td>
              <td align="left">Media-Switching-Mixer</td>
              <td align="left">partly</td>
              <td align="left">Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.7">3.7</eref></td>
              <td align="left">Selective Forwarding Middlebox</td>
              <td align="left">yes</td>
              <td align="left">Note-MCast <br/> Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.8">3.8</eref></td>
              <td align="left">Topo-Video-switch-MCU</td>
              <td align="left">yes</td>
              <td align="left">Note-MTU <br/> Note-MCast <br/> Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.9">3.9</eref></td>
              <td align="left">Topo-RTCP-terminating-MCU</td>
              <td align="left">yes</td>
              <td align="left">Note-MTU <br/> Note-MCast <br/> Note-Topo-Mixer</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.10">3.10</eref></td>
              <td align="left">Topo-Split-Terminal</td>
              <td align="left">yes</td>
              <td align="left">Note-MCast</td>
            </tr>
            <tr>
              <td align="left">
                <eref target="https://datatracker.ietf.org/doc/html/rfc7667#section-3.11">3.11</eref></td>
              <td align="left">Topo-Asymmetric</td>
              <td align="left">Possibly</td>
              <td align="left">Note-Warn, <br/> Note-MCast, <br/> Note-MTU</td>
            </tr>
          </tbody>
        </table>
        <dl>
          <dt>Note-NAT:</dt>
          <dd>
            <t>QUIC <xref target="RFC9000"/> doesn't support NAT traversal.</t>
          </dd>
          <dt>Note-MTU:</dt>
          <dd>
            <t>Supported, but may require MTU adaptation.</t>
          </dd>
          <dt>Note-Sec:</dt>
          <dd>
            <t>Note that RoQ provides mandatory security, and other RTP transports
do not. <xref target="sec-considerations"/> describes strategies to prevent the inadvertent
disclosure of RTP sessions to unintended third parties.</t>
          </dd>
          <dt>Note-MCast:</dt>
          <dd>
            <t>QUIC <xref target="RFC9000"/> cannot be used for multicast paths.</t>
          </dd>
          <dt>Note-UCast-MCast:</dt>
          <dd>
            <t>The topology refers to a <em>Distribution Source</em>, which receives and relays RTP
from a number of different media senders via unicast before relaying it to the
receivers via multicast. QUIC can be used between the senders and the
<em>Distribution Source</em>.</t>
          </dd>
          <dt>Note-MCast-UCast:</dt>
          <dd>
            <t>The topology refers to a <em>Burst Source</em> or <em>Retransmission Source</em>, which
retransmits RTP to receivers via unicast. QUIC can be used between the
<em>Retransmission Source</em> and the receivers.</t>
          </dd>
          <dt>Note-Topo-PtM-Trn-Translator:</dt>
          <dd>
            <t>Supports unicast paths between RTP sources and translators.</t>
          </dd>
          <dt>Note-Topo-Mixer:</dt>
          <dd>
            <t>Supports unicast paths between RTP senders and mixers.</t>
          </dd>
          <dt>Note-Warn:</dt>
          <dd>
            <t>Quote from <xref target="RFC7667"/>: <em>This topology is so problematic and it is so easy to
get the RTCP processing wrong, that it is NOT RECOMMENDED to implement this
topology.</em></t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="alpn">
      <name>Connection Establishment and ALPN</name>
      <t>QUIC requires the use of ALPN <xref target="RFC7301"/> tokens during connection setup. RoQ
uses "roq" as ALPN token in the TLS handshake (see also
<xref target="iana-considerations"/>).</t>
      <t>Note that the use of a given RTP profile is not reflected in the ALPN token even
though it could be considered part of the application usage.  This is simply
because different RTP sessions, which may use different RTP profiles, may be
carried within the same QUIC connection.</t>
      <section anchor="draft-version-identification">
        <name>Draft version identification</name>
        <ul empty="true">
          <li>
            <t><strong>RFC Editor's note:</strong> Please remove this section prior to publication of a
final version of this document.</t>
          </li>
        </ul>
        <t>RoQ uses the token "roq" to identify itself in ALPN.</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/RTCP packets in QUIC.</t>
      <t>QUIC supports two transport methods: STREAM frames <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/RTCP 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 STREAM frames and DATAGRAMs, respectively.</t>
      <section anchor="multiplexing">
        <name>Multiplexing</name>
        <t>RoQ uses flow identifiers to multiplex different RTP and RTCP streams on a
single QUIC connection. A flow identifier is a QUIC variable-length integer as
described in <xref section="16" sectionFormat="of" target="RFC9000"/>. Each flow identifier is associated with
a stream of RTP or RTCP packets.</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.
A peer MUST NOT send any data in a DATAGRAM or STREAM frame that is not associated with the flow
identifier which started the DATAGRAM or stream.</t>
        <t>RTP and RTCP packets of different RTP sessions MUST use distinct flow
identifiers. If peers wish to send multiple types of media in a single RTP
session, they can do so by following <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/RTCP streams MUST be negotiated
using appropriate signaling. If a receiver cannot associate a flow identifier
with any RTP/RTCP stream, it MUST close the connection with the application
error code ROQ_UNKNOWN_FLOW_ID.</t>
        <t>Flow identifiers introduce some overhead in addition to the header overhead of
RTP/RTCP and QUIC. QUIC variable-length integers require between one and eight
bytes depending on the number expressed. Thus, it is advisable to use low
numbers first and only use higher ones if necessary due to an increased number
of flows.</t>
      </section>
      <section anchor="quic-streams">
        <name>QUIC Streams</name>
        <t>To send RTP/RTCP packets over QUIC streams, a sender MUST open at least one new unidirectional QUIC stream.
RoQ uses unidirectional streams, because there is no synchronous relationship between sent and received RTP/RTCP packets.
A peer that receives a bidirectional stream with a flow identifier that is associated with an RTP or RTCP stream, 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>A RoQ sender can open new QUIC streams for different packets using the same flow identifier, for example, to avoid head-of-line blocking.</t>
        <t>Because a sender can continue sending on a lower stream number after starting packet transmission on a higher stream number, 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 which streams.</t>
        <section anchor="stream-encapsulation">
          <name>Stream Encapsulation</name>
          <t><xref target="fig-stream-payload"/> shows the encapsulation format for RoQ Streams.</t>
          <figure anchor="fig-stream-payload">
            <name>RoQ Streams Payload Format</name>
            <artwork><![CDATA[
Payload {
  Flow Identifier (i),
  RTP/RTCP Payload(..) ...,
}
]]></artwork>
          </figure>
          <dl>
            <dt>Flow Identifier:</dt>
            <dd>
              <t>Flow identifier to demultiplex different data flows on the same QUIC
connection.</t>
            </dd>
            <dt>RTP/RTCP Payload:</dt>
            <dd>
              <t>Contains the RTP/RTCP payload; see <xref target="fig-rtp-stream-payload"/></t>
            </dd>
          </dl>
          <t>The payload in a QUIC STREAM frame starts with the flow identifier followed by one or
more RTP/RTCP payloads. All RTP/RTCP payloads sent on a STREAM frame MUST belong to
the RTP session with the same flow identifier.</t>
          <t>Each payload begins with a length field indicating the length of the RTP/RTCP
packet, followed by the packet itself, see <xref target="fig-rtp-stream-payload"/>.</t>
          <figure anchor="fig-rtp-stream-payload">
            <name>RTP/RTCP payload for QUIC STREAM frames</name>
            <artwork><![CDATA[
RTP/RTCP Payload {
  Length(i),
  RTP/RTCP Packet(..),
}
]]></artwork>
          </figure>
          <dl>
            <dt>Length:</dt>
            <dd>
              <t>A QUIC variable length integer (see <xref section="16" sectionFormat="of" target="RFC9000"/>) describing the
length of the following RTP/RTCP packets in bytes.</t>
            </dd>
            <dt>RTP/RTCP Packet:</dt>
            <dd>
              <t>The RTP/RTCP packet to transmit.</t>
            </dd>
          </dl>
        </section>
        <section anchor="media-frame-cancellation">
          <name>Media Frame Cancellation</name>
          <t>QUIC uses RESET_STREAM and STOP_SENDING frames to terminate the sending part
of a stream and to request termination of an incoming stream by the sending
peer respectively.</t>
          <t>A RoQ sender can use RESET_STREAM if it knows that a packet, which was not yet
successfully and completely transmitted, is no longer needed.</t>
          <t>A RoQ receiver that is no longer interested in reading a certain partition of
the media stream can signal this to the sending peer using a STOP_SENDING
frame.</t>
          <t>In both cases, the error code of the RESET_STREAM frame or the STOP_SENDING
frame MUST be set to ROQ_FRAME_CANCELLED.</t>
          <t>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.
This can mean that the RoQ receiver is unable to make use of the media frames being received because they are "too old" to be used.
A sender with additional media frames to send can continue sending them on another QUIC stream.
Alternatively, new media frames can be sent as QUIC 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 only a particular media
frame because the sending QUIC implementation might already have sent data for
the following frame on the same stream. In that case, STOP_SENDING and the
following RESET_STREAM would also drop the following media frame and thus lead
to unintentionally skipping one or more frames.</t>
          <t>A translator that translates between two endpoints, both connected via QUIC,
MUST forward RESET_STREAM frames received from one end to the other unless it
forwards the RTP packets on encapsulated in DATAGRAMs.</t>
          <t>Large RTP packets sent on a stream will be fragmented into smaller QUIC STREAM frames.
The QUIC frames are transmitted reliably and in order such that a receiving
application can read a complete RTP packet from the stream as long as the stream
is not closed with a RESET_STREAM frame. No retransmission has to be
implemented by the application since QUIC frames lost in transit are
retransmitted by QUIC.</t>
        </section>
        <section anchor="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/RTCP flows.
Endpoints that excessively restrict the number of streams or the flow-control window of these streams will increase the chance that the remote 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 have to be transmitted concurrently depends on several factors,
such as the number of RTP streams within a QUIC connection, the bitrate of the
media streams, and the maximum acceptable transmission delay of a given packet.
Receivers are responsible for providing senders enough credit to open new
streams for new packets anytime.</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 server. If the sender opens a new QUIC stream
for every frame at 30 frames per second video and 50 frames per second audio, it
will open 1520 new QUIC streams per second. A receiver must provide at least
that many credits for opening new unidirectional streams to the server every
second.</t>
          <t>In addition, the receiver should also consider the requirements of RTCP streams.
These considerations may also be relevant when implementing signaling since it
may be necessary to inform the receiver about how fast and how many stream
credits it will have to provide to the media-sending peer.</t>
        </section>
      </section>
      <section anchor="quic-datagrams">
        <name>QUIC DATAGRAMs</name>
        <t>Senders can also transmit RTP packets in QUIC DATAGRAMs.
DATAGRAMs are an extension to QUIC 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 QUIC extension was signaled using a signaling protocol, but that extension was not negotiated during the QUIC handshake, a peer can close the connection with the ROQ_EXPECTATION_UNMET error code.</t>
        <t>QUIC datagrams preserve frame boundaries.
Thus, a single RTP packet can be mapped to a single QUIC datagram without additional framing.
Because QUIC DATAGRAMs cannot be IP-fragmented (<xref section="5" sectionFormat="of" target="RFC9221"/>), senders need to consider the header overhead associated with QUIC datagrams, and ensure that the RTP/RTCP packets, including their payloads, flow identifier, QUIC, and IP headers, will fit into 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/RTCP Packet (..),
}
]]></artwork>
        </figure>
        <dl>
          <dt>Flow Identifier:</dt>
          <dd>
            <t>Flow identifier to demultiplex different data flows on the same QUIC
connection.</t>
          </dd>
          <dt>RTP/RTCP Packet:</dt>
          <dd>
            <t>The RTP/RTCP packet to transmit.</t>
          </dd>
        </dl>
        <t>RoQ senders need to be aware that QUIC uses the concept of QUIC frames.
Different kinds of QUIC frames are used for different application and control data types.
A single QUIC packet can contain more than one QUIC frame, including, for example, QUIC STREAM frames or DATAGRAM frames carrying application data and ACK frames carrying QUIC acknowledgements, as long as the overall size fits into the MTU.
One implication is that the number of packets a QUIC stack transmits depends on whether it can fit 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 might have to create additional packets for ACK- (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.</t>
        <t>Since DATAGRAMs are not retransmitted on loss (see also
<xref target="transport-layer-feedback"/> for loss signaling), if an application wishes to
retransmit lost RTP packets, the retransmission has to be implemented by the
application. RTP retransmissions can be done in the same RTP session or a
separate RTP session <xref target="RFC4588"/> and the flow identifier MUST be set to the
flow identifier of the RTP session in which the retransmission happens.</t>
      </section>
    </section>
    <section anchor="connection-shutdown">
      <name>Connection Shutdown</name>
      <t>Either peer can close the connection for variety of reasons. If one of the
peers wants to close the RoQ connection, the peer can use a QUIC
CONNECTION_CLOSE frame with one of the error codes defined in
<xref target="error-handling"/>.</t>
    </section>
    <section anchor="congestion-control">
      <name>Congestion Control and Rate Adaptation</name>
      <t>Like any other application on the internet, RoQ applications need a mechanism to
perform congestion control to avoid overloading the network. 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/RTCP 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 use a congestion
controller that aims at keeping queues, and thus the latency, at intermediary
network elements 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 transmissions at low latencies,
but 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.
The QUIC implementations of the sender and receiver can use an extension to add this information to QUIC as described in <xref target="optional-extensions"/>.
An alternative to these dedicated real-time media congestion-control algorithms that QUIC implementations could support is the Low Latency, Low Loss, and Scalable Throughput (L4S) Internet Service <xref target="RFC9330"/>, which can be used to limit growth in round-trip delays, due to 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 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 QUIC recommends pacing for senders based on the congestion
control algorithm.</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 <tt>target_bitrate</tt> 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 the application transmits media that does not saturate path bandwidth and
paces its transmission, more heavy-handed congestion control mechanisms (drastic
reductions in the sending rate when loss is detected, with much slower increases
when losses are no longer being detected) should rarely come into play. If the
application chooses RoQ as its transport, sends enough media to saturate the
path bandwidth, and does not adapt its sending rate, 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 may establish channels in order to exchange more than one type of
data simultaneously. The channels can be intended to carry real-time RTP data or
other non-real-time data. This can be realized in different ways.</t>
        <ul spacing="normal">
          <li>
            <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. This is a straightforward solution, but has the
disadvantage that transport ports are more quickly exhausted and these are
limited by the 16-bit UDP source and destination port number sizes
<xref target="RFC768"/>.</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 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 multiple streams in one connection will need to
implement some form of stream prioritization or bandwidth allocation.</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 specification does not take a position on using QUIC streams, QUIC DATAGRAMs, or some 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 "nothing beyond IP, except multiplexing". They 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, with 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 problems with MTU size restrictions that are present with 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 easily 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 audio samples 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 datagrams begin with a flow identifier. This allows a RoQ sender to begin by encapsulating related RTP packets in a stream 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"/>), 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, when a QUIC connection migrates. Again, RoQ receivers need to be prepated 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, and
receiving little or no feedback from UDP, RTP implementations rely on feedback
from the RTP Control Protocol (RTCP) so that RTP senders and receivers can
exchange control information to monitor connection statistics and to identify
and synchronize streams.</t>
      <t>Because QUIC provides 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 generally 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 have to be
sent. This document does not change any of the rules described by either
protocol, but specifies a baseline for replacing some of the RTCP packet types
by mapping the contents to QUIC connection statistics, and reducing the
transmission frequency and bandwidth requirements for some RTCP packet types
that must be transmitted periodically. Future documents can extend this mapping
for other RTCP format types, and can make use of new QUIC extensions that become
available over time. The mechanisms described in this section can enhance the
statistics provided by RTCP and reduce the bandwidth overhead required by
certain RTCP packets. Applications using RoQ need to adhere to the rules for
RTCP feedback given by <xref target="RFC3550"/> and the RTP profiles in use.</t>
      <t>Most statements about "QUIC" in <xref target="rtcp-mapping"/> are applicable to both RTP
encapsulated in QUIC STREAM frames and RTP 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 the processing and bandwidth requirements 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 frames that carried fragments of the RTP packet were
acknowledged.</t>
        <t>When QUIC Streams are used, the application should be aware that the direct
mapping proposed below may not reflect the real characteristics of the network.
RTP packet loss can seem lower than actual packet loss due to QUIC's automatic
retransmissions. Similarly, timing information might be incorrect due to
retransmissions.</t>
      </section>
      <section anchor="multi-hop">
        <name>Multihop Topologies</name>
        <t>In some topologies, RoQ may be used on only some of the links between multiple
session participants. Other links may be using RTP over UDP, or over some other
supported RTP encapsulation protocol, and some participants might be using
implementations that don't support RoQ at all. These participants will not be
able to infer feedback from QUIC, and they may receive less RTCP feedback than
expected. On the other hand, participants using RoQ might not be aware that
other participants are not using RoQ and send as little RTCP as possible since
they assume their RoQ peer will be able to infer statistics from QUIC. There are
two ways to solve this problem: if the middlebox translating between RoQ and RTP
over other RTP transport protocols such as UDP or TCP provides Back-to-Back RTP
sessions as described in <xref section="3.2.2" sectionFormat="of" target="RFC7667"/>, this middlebox can add
RTCP packets for the participants not using RoQ by using the statistics the
middlebox gets from QUIC and the mappings described in the following sections.
If the middlebox does not provide Back-to-Back RTP sessions, participants may
use additional signalling to let the RoQ participants know what RTCP is
required.</t>
      </section>
      <section anchor="transport-layer-feedback">
        <name>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 of RTCP Control Packet Types (in <xref target="control-packets"/>),
Generic RTP Feedback (RTPFB) (in <xref target="generic-feedback"/>), Payload-specific RTP
Feedback (PSFB) (in <xref target="payload-specific-feedback"/>), Extended Reports (in
<xref target="extended-reports"/>), and RTP Header Extensions (in <xref target="rtp-header-extensions"/>),
including the information that cannot be mapped from QUIC, can be found in
<xref target="rtcp-analysis"/>.</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
STREAM frames and DATAGRAMs.</t>
        </section>
      </section>
    </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 occured.</t>
        </dd>
        <dt>ROQ_INTERNAL_ERROR (0x02):</dt>
        <dd>
          <t>An internal error has occured 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.</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
signalled or because the endpoint does not support multiplexing using arbitrary
flow identifiers.</t>
        </dd>
        <dt>ROQ_EXPECTATION_UNMET (0x07):</dt>
        <dd>
          <t>Expectiations of the QUIC transport set by RoQ out-of-band signalling were not
met by the QUIC connection.</t>
        </dd>
      </dl>
    </section>
    <section anchor="api-considerations">
      <name>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>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 estimation is available in the QUIC
implementation, exposing it avoids the implementation of 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 if necessary.</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. One exception is that it may be desirable that the RoQ implementation provides an indication of connection migration to the RTP application.</t>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <section anchor="impact-of-connection-migration">
        <name>Impact of Connection Migration</name>
        <t>RTP sessions are characterized by a continuous flow of packets into either or
both directions.  A connection migration may lead to pausing media
transmission until reachability of the peer under the new address is validated.
This may lead to short breaks in media delivery in the order of RTT and, if
RTCP is used for RTT measurements, may cause spikes in observed delays.
Application layer congestion control mechanisms (and also packet repair schemes
such as retransmissions) need to be prepared to cope with such spikes. As noted in <xref target="api-considerations"/>, it may be desirable that the RoQ implementation provides an indication of connection migration to the RTP application, to assist in coping.</t>
      </section>
      <section anchor="rtt-considerations">
        <name>0-RTT considerations</name>
        <t>For repeated connections between peers, the initiator of a QUIC connection can
use 0-RTT data for both QUIC STREAM frames and DATAGRAMs. As such packets are subject to
replay attacks, applications shall carefully specify which data types and operations
are allowed.  0-RTT data may be beneficial for use with RoQ to reduce the
risk of media clipping, e.g., at the beginning of a conversation.</t>
        <t>This specification defines carrying RTP on top of QUIC and thus does not finally
define what the actual application data are going to be.  RTP typically carries
ephemeral media contents that is rendered and possibly recorded but otherwise
causes no side effects. Moreover, the amount of data that can be carried as 0-RTT
data is rather limited.  But it is the responsibility of the respective application
to determine if 0-RTT data is permissible.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's Note:</strong> Since the QUIC connection will often be created in the context
of an existing signaling relationship (e.g., using WebRTC or SIP), specific 0-RTT
keying material could be exchanged to prevent replays across sessions.  Within
the same connection, replayed media packets would be discarded as duplicates by
the receiver.</t>
          </li>
        </ul>
      </section>
      <section anchor="coalescing-rtp-packets-in-single-quic-packet">
        <name>Coalescing RTP packets in 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 may 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 might 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 may 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 may 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 specification represents considerable work and discussion within the IETF, and 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. Possible directions would include</t>
      <ul spacing="normal">
        <li>
          <t>Better guidance on transport for RTCP (for example, when to use QUIC streams vs. QUIC datagrams).</t>
        </li>
        <li>
          <t>Better guidance on the use of realtime-friendly congestion control algorithms (for example, Copa <xref target="Copa"/>, L4S <xref target="RFC9330"/>, etc.).</t>
        </li>
        <li>
          <t>Better 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 RoQ and non-RoQ 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 specification as a stable reference for implementers to test with, and report results, seems useful.</t>
      <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 proposed QUIC extensions in <xref target="optional-extensions"/>, but these proposals are all solving relevant problems, and those problems are worthy of attention, no matter how they are solved for the QUIC protocol.</t>
      <ul spacing="normal">
        <li>
          <t>Guidance for using RoQ with QUIC connection migration and over multiple paths. We note that the Multipath Extension for QUIC <xref target="I-D.draft-ietf-quic-multipath"/> has been adopted and is relatively mature.</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, may also be useful with RoQ.</t>
    </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 signalled 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="RFC768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC0768"/>
        </reference>
        <reference anchor="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="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="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="7" month="February" 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-13"/>
        </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="23" month="October" year="2023"/>
            <abstract>
              <t>   This document specifies a multipath extension for the QUIC protocol
   to enable the simultaneous usage of multiple paths for a single
   connection.

Discussion Venues

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

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

   Source for this draft and an issue tracker can be found at
   https://github.com/mirjak/draft-lmbdhk-quic-multipath.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-multipath-06"/>
        </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 Acknowledgement Frequency</title>
            <author fullname="Jana Iyengar" initials="J." surname="Iyengar">
              <organization>Fastly</organization>
            </author>
            <author fullname="Ian Swett" initials="I." surname="Swett">
              <organization>Google</organization>
            </author>
            <author fullname="Mirja Kühlewind" initials="M." surname="Kühlewind">
              <organization>Ericsson</organization>
            </author>
            <date day="27" month="October" year="2023"/>
            <abstract>
              <t>   This document describes a QUIC extension for an endpoint to control
   its peer's delaying of acknowledgements.

Note to Readers

   Discussion of this draft takes place on the QUIC working group
   mailing list (quic@ietf.org), which is archived at
   https://mailarchive.ietf.org/arch/search/?email_list=quic.  Source
   code and issues list for this draft can be found at
   https://github.com/quicwg/ack-frequency.

   Working Group information can be found at https://github.com/quicwg.

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-thomson-quic-enough-00"/>
        </reference>
        <reference anchor="I-D.draft-ietf-quic-reliable-stream-reset">
          <front>
            <title>QUIC Stream Resets with Partial Delivery</title>
            <author fullname="Marten Seemann" initials="M." surname="Seemann">
         </author>
            <author fullname="Kazuho Oku" initials="K." surname="Oku">
              <organization>Fastly</organization>
            </author>
            <date day="28" month="February" year="2024"/>
            <abstract>
              <t>   QUIC defines a RESET_STREAM frame to abort sending on a stream.  When
   a sender resets a stream, it also stops retransmitting STREAM frames
   for this stream in the event of packet loss.  On the receiving side,
   there is no guarantee that any data sent on that stream is delivered.

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

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

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

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-avtcore-rtcp-green-metadata-02"/>
        </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 1224?>

<section anchor="optional-extensions">
      <name>List of optional QUIC Extensions</name>
      <t>The following is a list of QUIC protocol extensions that might be beneficial for
RoQ, but are not required by RoQ.</t>
      <ul spacing="normal">
        <li>
          <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 like, 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>
          <ul spacing="normal">
            <li>
              <t><em>Quic Timestamps For Measuring One-Way Delays</em>
                <xref target="I-D.draft-huitema-quic-ts"/></t>
            </li>
            <li>
              <t><em>QUIC Extension for Reporting Packet Receive Timestamps</em>
                <xref target="I-D.draft-smith-quic-receive-ts"/></t>
            </li>
          </ul>
        </li>
        <li>
          <t><em>QUIC Acknowledgement Frequency</em> <xref target="I-D.draft-ietf-quic-ack-frequency"/> can
be used by a sender to optimize the acknowledgement behaviour of the receiver,
e.g., to optimize congestion control.</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 should 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">205</td>
              <td align="left">
                <xref target="RFC4585"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="payload-specific-feedback"/></td>
            </tr>
            <tr>
              <td align="left">extended report</td>
              <td align="left">XR</td>
              <td align="left">207</td>
              <td align="left">
                <xref target="RFC3611"/></td>
              <td align="left">partly</td>
              <td align="left">see <xref target="extended-reports"/></td>
            </tr>
            <tr>
              <td align="left">AVB RTCP packet</td>
              <td align="left">AVB</td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">Receiver Summary Information</td>
              <td align="left">RSI</td>
              <td align="left">209</td>
              <td align="left">
                <xref target="RFC5760"/></td>
              <td align="left">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 may be used to achieve the same goal</td>
            </tr>
            <tr>
              <td align="left">Delay Metrics Block</td>
              <td align="left">
                <xref target="RFC6843"/></td>
              <td align="left">no</td>
              <td align="left">QUIC has RTT and can provide timestamps for one-way delay, but no way of informing peers about end-to-end statistics when QUIC is only used on one segment of the path.</td>
            </tr>
            <tr>
              <td align="left">Burst/Gap Loss Summary Statistics Block</td>
              <td align="left">
                <xref target="RFC7004"/></td>
              <td align="left">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 of telling QUIC peer "don't ask for retransmission", but QUIC would not ask that anyway, only RTCP NACK, if used.</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 QUIC 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 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 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 may 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/RTCP.</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:
H4sIAAAAAAAAA8y9+3bbVpYn/D+eAiP/EUmLZCzZli891dWyJCeqsmRFkpPq
NTUrBZGQhDJJsADQMstxP9a8wPdi376ffQBQVpLu6UmtVRZJ4Fz32Wdff3s4
HCZN0UzzV+nG+eVZWn7Mq/SH98cH6eZ5+cPWRjIpx/NsBj9Pquy6GRZ5cz3M
PjbjssqHVbMY4gvDfyyL8fDxy2ScNflNWa1epfmnRTKBT6/Sz4f7l0dfkqRY
VK/SplrWze7jxy8f7yZZlWfQ6/5iMS3gxaKc12k2n6TneTYdXhazfCO5K6sP
N1W5XOBzy0lRfvtjMcnL9LLK5vWirJr0AMaRnmTFvMnn2XwM73zIV/Da5FV6
DN9V87wZHuLIk6RuoPWfs2k5h1Gt8jpZFK/S/9WU40FaQ1NVfl3DX6sZ/vG/
k3p5NSvqGkbVrBbwwvHR5ZskyZbNbVm9StJhksJ/xbx+lf5plL5rGvrMK/Wn
/+//VDf2XVndZPPinzTBV+llPr6dw3Sn6ft5AUtXF80qPVnCV7f0dD7Liumr
tGyafyvmo2Y5G03yqLeTUXo0v8mnV1nl+zzJmtuibv30m7qeUUujXFv6txv8
fjQuZ9E4LkbpYXb3Af52o7hY5LAHVfRLexDwwLxJ92d5BWNJ37498J3X3MCE
3x8htbn+k2J+XVYwQBj+qwTee/Ld2dnw8mK4uzfa2Xn6ilpqsuomb16lt02z
qF99+y2SSTYdPblZLEYwlm8nef2hKRezcrKc5vW3MORxca0EGH88zBvouh5l
9eLTH2v/y/HkDztPHz/lDuX4HJ/Bak4bINxJkaUXy6t6VTf5LN08PrnY+hf/
W5NP88VtOV/Bt/TFLVDmtJjfEP0jLVfZGLvZoA74HO0+3n0yfLwzfPwMZ35Q
LrL++d7lV6NZ0YzyyfLbMTz1bTRIei89o/aRFA7zabYavs7qfAJtwp7X2C/+
2VTlNIXlTpvb3M5SPKCdFziU4/3T/eH55cHZ8OxyzZDu7kZFNs9o/TM4VDfz
GRBB/S0ykEVWAe1A8+2Po0+3zWz6KP5yGK85dmuDPcvGH/ImvYTzWqebZ5fA
vaLh/eV8+PrXj3C8GH6qhlfTcvxhiKyg9zsba+eX4U53wH85T1/jEzTU1iDf
nFzCH2dvXv9fWc0X0eCg7/THbLqE5cONp2HAqq6mZTbhZe0Z7NnF/6Wxvrxv
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
h5dDMYFaNXoW5JwTm/CTuBKJMVeMFSThIieAWIZdjBfDyYm2HLSeFYdrYDAB
RriQuFBOtYicWP5fKSrCzIr2KoQlu82k4KLMATmh86xEJU2NQkLyG4oVQGZS
MJFVeCpR3kiJclfvpu7J+rC0RSxyrqYsruIoslMYNl1Kk0kSqbAatRBtT7w1
V6uozpotJt7hofUbas2034D4JgXCWnK9xxsVAb82+KXQqul6qgO3F8dVJowP
W7ai/EwnNbF6OZU08akWq6RqCO5N5PwsxNBC0SXJqgLzMLNvnejUPj9aKxi1
irtJra+aYLzu1TDDXagZLjx8Mnwt2lYji94SGwnqvUGfj/ZMWhUA2iSE0imS
JilkYXOm8GY8bq8jWgml8W2Rf5TsX46WnRSwYXjtEDh+p2JUa74STEi9Kfya
s9VHiqBYkCT8itAsiX1IcnELpq3rCnYytcEtqFuTOlYDSFwnhOOQ9tUOUlLW
EjSRTVd1EUDjzHrIs7uk3dyk06pQLdIumpuT79CSVYyJlo20NuHTm9db8toN
P+LE7a2BAjANzQWInCI0cHYR3l+0Ho0bIiMuioDnOce5bTLChXw9rPhrto2v
tf9uil66GDLqVZSGBtOMMLRik6hAwMjFIbFr7uISErsmLM1gvNOFl4jNR+kp
yLIUwrXfEpA3N073D/68sQUHFf9QxRklUF397XUvb6ebfzu7/MPu42d/G6R/
e3Ny+Ycd/OMUhMo/6MvY6N8GiQGvPMMqBorbFBnRSJH3Eq+HU2EtIAkiLWkC
I8fl94DL74yUzXNPPqHFlfi8zjH2OU9IUFLEvKC4mrWwlSylZ0gpREx5yoYT
fW6uy9VWRjQ3nSO9WZexQmg+uea7bGFloyILK3XocKecs8aXitjlZHDc+KOD
U3d0NuAj7TX867d62z/W3dYXtq1Uih5ffvMavhNn6t7zl7irOhU+FGL7W84Z
H1xTIvDdgyOg5OoD8DXfgIKYUAAjcQs5XQO24QaGmG6SnVsHSSdPxinnkKE+
ZSCEgmuXuZ5dbX3Uqg2KK8E/Mb0IJ4u3MgZD9AZN18zAh4K1aYFUeRoedkjr
hFUqMwnx1cQk/NGkT1sPNgLUcQqEt2RYCOc83KCxTC3k8V1ZTq5WuTBkZAev
//2IKAT+de4pj3QUSQSawLItLW3H15NQ0hMjIGjW2AEb/LYGLI5yzq3cwhoL
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

-->

</rfc>
