<?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-rfc2629 version 1.6.2 (Ruby 3.0.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-engelbart-rtp-over-quic-02" category="info" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <front>
    <title>RTP over QUIC</title>
    <seriesInfo name="Internet-Draft" value="draft-engelbart-rtp-over-quic-02"/>
    <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>
    <date/>
    <area>General</area>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>This document specifies a minimal mapping for encapsulating RTP and
RTCP packets within QUIC.  It also discusses how to leverage state
from the QUIC implementation in the endpoints to reduce the exchange
of RTCP packets.</t>
    </abstract>
    <note removeInRFC="true">
      <name>Discussion Venues</name>
      <t>Discussion of this document takes place on the
    mailing list (),
  which is archived at <eref target=""/>.</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>
    <section anchor="introduction">
      <name>Introduction</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.  With the advent of QUIC and, most notably, its unreliable
DATAGRAM extension, another secure transport protocol becomes
available.  QUIC and its DATAGRAMs combine desirable properties for
real-time traffic (e.g., no unnecessary retransmissions, avoiding
head-of-line blocking) with a secure end-to-end transport that is
also expected to work well through NATs and firewalls.</t>
      <t>Moreover, with QUIC's multiplexing capabilities, reliable and
unreliable transport connections as, e.g., needed for WebRTC, can be
established with only a single port used at either end of the
connection.  This document defines a mapping of how to carry RTP over
QUIC.  The focus is on RTP and RTCP packet mapping and on reducing the
amount of RTCP traffic by leveraging state information readily
available within a QUIC endpoint.  This document also briefly touches
upon how to signal media over QUIC using the Session Description
Protocol (SDP) <xref target="RFC8866"/>.</t>
      <t>The scope of this document is limited to unicast RTP/RTCP.</t>
      <t>Note that this draft is similar in spirit to but differs in numerous ways from
<xref target="draft-hurst-quic-rtp-tunnelling-01"/>.</t>
    </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>
      <t>The following terms are used:</t>
      <dl>
        <dt>Congestion Controller:</dt>
        <dd>
          <t>QUIC specifies a congestion controller in <xref section="7" sectionFormat="of" target="RFC9002"/>, but the
specific requirements for interactive real-time media lead to the development of
dedicated congestion control algorithms. In this document, the term congestion
controller refers to these algorithms dedicated to real-time applications.</t>
        </dd>
        <dt>Datagram:</dt>
        <dd>
          <t>Datagrams exist in UDP as well as in QUICs unreliable datagram extension. If not explicitly noted
differently, the term datagram in this document refers to a QUIC Datagram as defined in
<xref target="draft-ietf-quic-datagram-10"/>.</t>
        </dd>
        <dt>Endpoint:</dt>
        <dd>
          <t>A QUIC server or client that participates in an RTP over QUIC session.</t>
        </dd>
        <dt>Frame:</dt>
        <dd>
          <t>A QUIC frame as defined in <xref target="RFC9000"/>.</t>
        </dd>
        <dt>Media Encoder:</dt>
        <dd>
          <t>An entity that is used by an application to produce a stream of encoded media, which can be
packetized in RTP packets to be transmitted over QUIC.</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>
      </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. QUIC supports two transport methods: reliable
streams and unreliable datagrams <xref target="RFC9000"/>, <xref target="draft-ietf-quic-datagram-10"/>.
RTP over QUIC uses unreliable QUIC datagrams to transport real-time data, and
thus, the QUIC implementation MUST support QUICs unreliable datagram extension.
Since datagram frames cannot be fragmented, the QUIC implementation MUST also
provide a way to query the maximum datagram size so that an application can
create RTP packets that always fit into a QUIC datagram frame.</t>
      <t><xref target="RFC3550"/> specifies that RTP sessions need to be transmitted on different
transport addresses to allow multiplexing between them. RTP over QUIC uses a
different approach to leverage the advantages of QUIC connections without
managing a separate QUIC connection per RTP session. QUIC 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 are flow identifiers prepended to each datagram frame as described
in <xref target="draft-schinazi-quic-h3-datagram-05"/>. RTP over QUIC uses a flow identifier
to replace the network address and port number to multiplex many RTP sessions
over the same QUIC connection.</t>
      <t>A congestion controller can be plugged in to adapt the media bitrate to the
available bandwidth. This document does not mandate any congestion control
algorithm. Some examples include 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.
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 controller to avoid the additional overhead of the
RTCP stream.</t>
    </section>
    <section anchor="packet-format">
      <name>Packet Format</name>
      <t>All RTP and RTCP packets MUST be sent in QUIC datagram frames with the following format:</t>
      <figure anchor="fig-datagram-payload">
        <name>Datagram Payload Format</name>
        <artwork><![CDATA[
Datagram 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>For multiplexing RTP sessions on the same QUIC connection, each RTP/RTCP packet
is prefixed with a flow identifier. This flow identifier serves as a replacement
for using different transport addresses per session. A flow identifier is a QUIC
variable-length integer which must be unique per stream.</t>
      <t>RTP and RTCP packets of a single RTP session MAY be sent using the same flow
identifier (following the procedures defined in <xref target="RFC5761"/>, or they MAY be
sent using different flow identifiers. The respective mode of operation MUST be
indicated using the appropriate signaling, e.g., when using SDP as discussed in
<xref target="sdp"/>.</t>
      <t>RTP and RTCP packets of different RTP sessions MUST be sent using different flow
identifiers.</t>
      <t>Differentiating RTP/RTCP datagrams of different RTP sessions from non-RTP/RTCP
datagrams is the responsibility of the application by means of appropriate use
of flow identifiers and the corresponding signaling.</t>
      <t>Senders SHOULD consider the header overhead associated with QUIC datagrams and
ensure that the RTP/RTCP packets, including their payloads, QUIC, and IP
headers, will fit into path MTU.</t>
    </section>
    <section anchor="congestion-control">
      <name>Congestion Control</name>
      <t>RTP over QUIC needs to employ congestion control to avoid overloading the
network. RTP and QUIC both offer different congestion control mechanisms. QUIC
specifies a congestion control algorithm similar to TCP NewReno, but allows
senders to choose a different algorithm, as long as the algorithm conforms to
the guidelines specified in <xref section="3" sectionFormat="of" target="RFC8085"/>. RTP does not specify a
congestion controller, but provides feedback formats for congestion control
(e.g. <xref target="RFC8888"/>) as well as different congestion control algorithms in
separate RFCs (e.g. <xref target="RFC8298"/> and <xref target="RFC8698"/>). The congestion control
algorithms for RTP are specifically tailored for real-time transmissions at low
latencies. RTP congestion control mostly works delay-based, using the growing
one-way delay as a congestion signal. The available congestion control
algorithms for RTP also expose a <tt>target_bitrate</tt> that can be used to
dynamically reconfigure media encoders to produce media at a rate that can be
sent in real-time under the given network conditions.</t>
      <t>This section defines two options for congestion control for RTP over QUIC, but
it does not mandate which congestion control algorithms to use. The congestion
control algorithm MUST expose a <tt>target_bitrate</tt> to which the encoder should be
configured to fully utilize the available bandwidth. Furthermore, it is assumed
that the congestion controller provides a pacing mechanism to determine when a
packet can be sent to avoid bursts. The currently proposed congestion control
algorithms for real-time communications provide such a pacing mechanism. The use
of congestion controllers which don't provide a pacing mechanism is out of scope
of this document.</t>
      <t>Additionally, the section defines how the connection statistics obtained from
QUIC can be used to reduce RTCP feedback overhead.</t>
      <section anchor="rtcp-and-quic-stats">
        <name>RTCP and QUIC Connection Statistics</name>
        <t>Since QUIC provides generic congestion signals which allow the implementation of
different congestion control algorithms, senders are not dependent on RTCP
feedback for congestion control. However, there are some restrictions, and the
QUIC implementation MUST fulfill some requirements to use these signals for
congestion control instead of RTCP feedback.</t>
        <t>To estimate the currently available bandwidth, real-time congestion control
algorithms keep track of the sent packets and typically require a list of
successfully delivered packets together with the timestamps at which they were
received by a receiver. The bandwidth estimation can then be used to decide
whether the media encoder can be configured to produce output at a higher or
lower rate.</t>
        <t>A congestion controller used for RTP over QUIC should be able to compute an
adequate bandwidth estimation using the following inputs:</t>
        <ul spacing="normal">
          <li>
            <tt>t_current</tt>: A current timestamp</li>
          <li>
            <tt>pkt_departure</tt>: The departure time for each RTP packet sent to the receiver.</li>
          <li>
            <tt>pkt_arrival</tt>: The arrival time for each RTP packet that was successfully
delivered to the receiver.</li>
          <li>
            <t>The RTT estimations calculated by QUIC as described in <xref section="5" sectionFormat="of" target="RFC9002"/>:
            </t>
            <ul spacing="normal">
              <li>
                <tt>latest_rtt</tt>: The latest RTT sample generated by QUIC.</li>
              <li>
                <tt>min_rtt</tt>: The miminum RTT observed by QUIC over a period of time</li>
              <li>
                <tt>smoothed_rtt</tt>: An exponentially-weighted moving average of the observed RTT
values</li>
              <li>
                <tt>rtt_var</tt>: The mean deviation in the observed RTT values</li>
            </ul>
          </li>
          <li>
            <tt>ecn</tt>: Optionally ECN marks may be used, if supported by the network and
exposed by the QUIC implementation.</li>
        </ul>
        <t>The only value of these inputs not currently available in QUIC is the
<tt>pkt_arrival</tt>. The exact arrival times of QUIC Datagrams can be obtained by
using the QUIC extension described in <xref target="draft-smith-quic-receive-ts-00"/> or
<xref target="draft-huitema-quic-ts-05"/>.</t>
        <t>QUIC allows acknowledgments to be sent with some delay, which could cause
problems for delay-based congestion control algorithms. Sender and receiver can
use <xref target="draft-ietf-quic-ack-frequency-01"/> to avoid feedback inaccuracies caused
by delayed acknowledgments.</t>
        <t>If the QUIC extensions described in
<xref target="draft-smith-quic-receive-ts-00"/>/<xref target="draft-huitema-quic-ts-05"/> and
<xref target="draft-ietf-quic-ack-frequency-01"/> are not supported by sender and receiver,
it is RECOMMENDED to use RTCP feedback reports instead of thee QUIC connection
statistics for congestion control.</t>
      </section>
      <section anchor="cc-quic-layer">
        <name>RTP Congestion Control at the QUIC layer</name>
        <t>The first option implements congestion control at the QUIC layer by replacing
the standard QUIC congestion control with one of the congestion control
algorithms for RTP.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's note:</strong> How can a QUIC connection be shared with non-RTP streams,
when SCReAM/NADA/GCC is used as congestion controller? Can these algorithms be
adapted to allow different streams including non-real-time streams?</t>
          </li>
        </ul>
        <ul empty="true">
          <li>
            <t><strong>Editor's note:</strong> If this option is chosen, but the required QUIC
statistics/extensions are not available and the sender has to use RTCP
feedback for congestion control, the feedback needs to be fed back to the QUIC
implementation.</t>
          </li>
        </ul>
      </section>
      <section anchor="cc-application-layer">
        <name>RTP Congestion Control at the Application Layer</name>
        <t>The second option implements real-time congestion control at the application
layer. This gives an application more control over the congestion controller and
the congestion control feedback to use. It is RECOMMENDED to disable QUIC's
congestion control when this option is used to avoid interferences between the
congestion controllers at different layers.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's note:</strong> Maybe this option should be removed, as it has some issues:
1. It cannot be used in situations where the application is untrusted, such as
   in Webtransport, where the browser implements QUIC but cannot trust a JS
   application using it to do the right thing.
2. It is unclear how non-real-time data sharing the same connection can be
   congestion controlled.
3. If QUIC connection statistics should be used instead of RTCP, these have to
   be exposed to the application.</t>
          </li>
        </ul>
      </section>
      <section anchor="bandwidth-allocation">
        <name>Bandwidth Allocation</name>
        <t>When the QUIC connection is shared between multiple data streams, a share of the
available bandwidth should be allocated to each stream. An implementation MUST
ensure that a real-time flow is always allowed to send data unless it has
exhausted its allocated bandwidth share. This is especially important when the
connection is shared with non-real-time flows.</t>
        <ul empty="true">
          <li>
            <t><strong>Editor's note:</strong> This section may need to explain the problem that occurs
when non-real-time data fills up the congestion window when a real-time flow
does not fully use its assigned bandwidth share.</t>
          </li>
        </ul>
      </section>
      <section anchor="media-rate-control">
        <name>Media Rate Control</name>
        <t>Independent from which option is chosen to implement congestion control, the
sender likely needs to reconfigure the media encoder in reaction to changing
network conditions. Common real-time congestion control algorithms expose a
<tt>target_bitrate</tt> for this purpose. An RTP over QUIC implementation can either
expose the most recent <tt>target_bitrate</tt> produced by the congestion controller to
the application or accept a callback from the application, which updates the
encoder bitrate whenever the congestion controller updates the <tt>target_bitrate</tt>.</t>
      </section>
    </section>
    <section anchor="sdp">
      <name>SDP Signalling</name>
      <ul empty="true">
        <li>
          <t><strong>Editor's note:</strong> See also <xref target="draft-dawkins-avtcore-sdp-rtp-quic"/>.</t>
        </li>
      </ul>
      <t>QUIC is a connection-based protocol that supports connectionless transmissions of DATAGRAM frames
within an established connection.  As noted above, demultiplexing DATAGRAMS intended for different
purposes is up to the application using QUIC.</t>
      <t>There are several necessary steps to carry out jointly between the
communicating peers to enable RTP over QUIC:</t>
      <ol spacing="normal" type="1"><li>The protocol identifier for the m= lines MUST be "QUIC/RTP", combined as per <xref target="RFC8866"/>
with the respective audiovisual profile: for example, "QUIC/RTP/AVP".</li>
        <li>The peers need to decide whether to establish a new QUIC connection or whether to re-use an
existing one.  In case of establishing a new connection, the initiator and the responder
(client and server) need to be determined.  Signaling for this step MUST follow <xref target="RFC8122"/>
on SDP attributes for connection-oriented media for the a=setup, a=connection, and
a=fingerprint attributes.  They MUST use the appropriate protocol identification as per 1.</li>
        <li>
          <t>The peers must provide a means for identifying RTP sessions carried in QUIC DATAGRAMS.
To enable using a common transport connection for one, two, or more media sessions in
the first place, the BUNDLE grouping framework MUST be used <xref target="RFC8843"/>.  All media sections
belonging to a bundle group, except the first one, MUST set the port in the m= line to zero
and MUST include the a=bundle-only attribute.  </t>
          <t>
For disambiguating different RTP session, a reference needs to be provided for each m= line to
allow associating this specific media session with a flow identifier.  This could be
achieved following different approaches:  </t>
          <ul spacing="normal">
            <li>Simply reusing the a=extmap attribute <xref target="RFC8285"/> and relying on RTP header extensions
for demultiplexing different media packets carried in QUIC DATAGRAM frames.</li>
            <li>Defining a variant or different flavor of the a=extmap attribute <xref target="RFC8285"/> that binds
media sessions to flow identifiers used in QUIC DATAGRAMS.</li>
          </ul>
          <ul empty="true">
            <li>
              <t><strong>Editor's note:</strong> It is likely preferable to use multiplexing using QUIC DATAGRAM flow
identifiers because this multiplexing mechanisms will also work across RTP and non-RTP media
streams.</t>
            </li>
          </ul>
          <t>
In either case, the corresponding identifiers MUST be treated independently for each
direction of transmission, so that an endpoint MAY choose its own identifies and only
uses SDP to inform its peer which RTP sessions use which identifiers.  </t>
          <t>
To this end, SDP MUST be used to indicate the respective flow identifiers for RTP and RTCP
of the different RTP sessions (for which we borrow inspiration from <xref target="RFC3605"/>).</t>
        </li>
        <li>The peers MUST agree, for each RTP session, whether or not to apply RTP/RTCP multiplexing.
If multiplexing RTP and RTCP shall take place on the same flow identifier, this MUST be
indicated using the attribute a=rtcp-mux.</li>
      </ol>
      <t>A sample session setup offer (liberally borrowed and extended from <xref target="RFC8843"/> and <xref target="RFC8122"/>
could look as follows:</t>
      <figure anchor="sdp-example">
        <name>SDP Offer</name>
        <artwork><![CDATA[
v=0
o=alice 2890844526 2890844526 IN IP6 2001:db8::3
s=
c=IN IP6 2001:db8::3
t=0 0
a=group:BUNDLE abc xyz

m=audio 10000 QUIC/RTP/AVP 0 8 97
a=setup:actpass
a=connection:new
a=fingerprint:SHA-256 \
 12:DF:3E:5D:49:6B:19:E5:7C:AB:4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF: \
 3E:5D:49:6B:19:E5:7C:AB:4A:AD
b=AS:200
a=mid:abc
a=rtcp-mux
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:97 iLBC/8000
a=extmap:1 urn:ietf:params:<tbd>

m=video 0 QUIC/RTP/AVP 31 32
b=AS:1000
a=bundle-only
a=mid:bar
a=rtcp-mux
a=rtpmap:31 H261/90000
a=rtpmap:32 MPV/90000
a=extmap:2 urn:ietf:params:<tbd>
]]></artwork>
      </figure>
      <t>Signaling details to be worked out.</t>
    </section>
    <section anchor="used-rtprtcp-packet-types">
      <name>Used RTP/RTCP packet types</name>
      <t>Any RTP packet can be sent over QUIC and no RTCP packets are used by default. Since QUIC already
includes some features which are usually implemented by certain RTCP messages, RTP over QUIC
implementations should not need to implement the following RTCP messages:</t>
      <ul spacing="normal">
        <li>PT=205, FMT=1, Name=Generic NACK: Provides Negative Acknowledgments <xref target="RFC4585"/>. Acknowledgment
and loss notifications are already provided by the QUIC connection.</li>
        <li>PT=205, FMT=8, Name=RTCP-ECN-FB: Provides RTCP ECN Feedback <xref target="RFC6679"/>. If supported, ECN
may directly be exposed by the used QUIC implementation.</li>
        <li>PT=205, FMT=11, Name=CCFB: RTP Congestion Control Feedback which contains receive marks,
timestamps and ECN notifications for each received packet <xref target="RFC8888"/>. This can be inferred from
QUIC as described in <xref target="rtcp-and-quic-stats"/>.</li>
        <li>PT=210, FMT=all, Name=Token, <xref target="RFC6284"/> specifies a way to dynamically assign ports for RTP
receivers. Since QUIC connections manage ports on their own, this is not required for RTP over
QUIC.</li>
      </ul>
    </section>
    <section anchor="discussion">
      <name>Discussion</name>
      <section anchor="impact-of-connection-migration">
        <name>Impact of Connection Migration</name>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TBD</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="draft-ietf-quic-datagram-10">
          <front>
            <title>An Unreliable Datagram Extension to QUIC</title>
            <author initials="T." surname="Pauly" fullname="Tommy Pauly" role="editor">
              <organization>Apple Inc.</organization>
            </author>
            <author initials="E." surname="Kinnear" fullname="Eric Kinnear" role="editor">
              <organization>Apple Inc.</organization>
            </author>
            <author initials="D." surname="Schinazi" fullname="David Schinazi" role="editor">
              <organization>Google LLC</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-datagram-10"/>
        </reference>
        <reference anchor="draft-huitema-quic-ts-05">
          <front>
            <title>Quic Timestamps For Measuring One-Way Delays</title>
            <author initials="C." surname="Huitema" fullname="Christian Huitema" role="editor">
              <organization>Private Octopus Inc.</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-huitema-quic-ts-05"/>
        </reference>
        <reference anchor="draft-schinazi-quic-h3-datagram-05">
          <front>
            <title>Using QUIC Datagrams with HTTP/3</title>
            <author initials="D." surname="Schinazi" fullname="David Schinazi" role="editor">
              <organization>Google LLC</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-schinazi-quic-h3-datagram-05"/>
        </reference>
        <reference anchor="draft-smith-quic-receive-ts-00">
          <front>
            <title>QUIC Extension for Reporting Packet Receive Timestamps</title>
            <author initials="C." surname="Smith" fullname="Connor Smith" role="editor">
              <organization>Magic Leap, Inc.</organization>
            </author>
            <author initials="I." surname="Swett" fullname="Ian Swett" role="editor">
              <organization>Google LLC</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-smith-quic-receive-ts-00"/>
        </reference>
        <reference anchor="draft-ietf-quic-ack-frequency-01">
          <front>
            <title>QUIC Acknowledgement Frequency</title>
            <author initials="J." surname="Iyengar" fullname="Jana Iyengar" role="editor">
              <organization>Fastly</organization>
            </author>
            <author initials="I." surname="Swett" fullname="Ian Swett" role="editor">
              <organization>Google</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-quic-ack-frequency-01"/>
        </reference>
        <reference anchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author fullname="H. Schulzrinne" initials="H." surname="Schulzrinne">
              <organization/>
            </author>
            <author fullname="S. Casner" initials="S." surname="Casner">
              <organization/>
            </author>
            <author fullname="R. Frederick" initials="R." surname="Frederick">
              <organization/>
            </author>
            <author fullname="V. Jacobson" initials="V." surname="Jacobson">
              <organization/>
            </author>
            <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="RFC8866">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author fullname="A. Begen" initials="A." surname="Begen">
              <organization/>
            </author>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="M. Handley" initials="M." surname="Handley">
              <organization/>
            </author>
            <date month="January" year="2021"/>
            <abstract>
              <t>This memo defines the Session Description Protocol (SDP). SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. This document obsoletes RFC 4566.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8866"/>
          <seriesInfo name="DOI" value="10.17487/RFC8866"/>
        </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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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="RFC9002">
          <front>
            <title>QUIC Loss Detection and Congestion Control</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="I. Swett" initials="I." role="editor" surname="Swett">
              <organization/>
            </author>
            <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="RFC9000">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <author fullname="J. Iyengar" initials="J." role="editor" surname="Iyengar">
              <organization/>
            </author>
            <author fullname="M. Thomson" initials="M." role="editor" surname="Thomson">
              <organization/>
            </author>
            <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="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">
              <organization/>
            </author>
            <author fullname="R. Pan" initials="R." surname="Pan">
              <organization/>
            </author>
            <author fullname="M. Ramalho" initials="M." surname="Ramalho">
              <organization/>
            </author>
            <author fullname="S. Mena" initials="S." surname="Mena">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="Z. Sarker" initials="Z." surname="Sarker">
              <organization/>
            </author>
            <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="RFC5761">
          <front>
            <title>Multiplexing RTP Data and Control Packets on a Single Port</title>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="M. Westerlund" initials="M." surname="Westerlund">
              <organization/>
            </author>
            <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="RFC8085">
          <front>
            <title>UDP Usage Guidelines</title>
            <author fullname="L. Eggert" initials="L." surname="Eggert">
              <organization/>
            </author>
            <author fullname="G. Fairhurst" initials="G." surname="Fairhurst">
              <organization/>
            </author>
            <author fullname="G. Shepherd" initials="G." surname="Shepherd">
              <organization/>
            </author>
            <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="RFC8888">
          <front>
            <title>RTP Control Protocol (RTCP) Feedback for Congestion Control</title>
            <author fullname="Z. Sarker" initials="Z." surname="Sarker">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="V. Singh" initials="V." surname="Singh">
              <organization/>
            </author>
            <author fullname="M. Ramalho" initials="M." surname="Ramalho">
              <organization/>
            </author>
            <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="RFC8122">
          <front>
            <title>Connection-Oriented Media Transport over the Transport Layer Security (TLS) Protocol in the Session Description Protocol (SDP)</title>
            <author fullname="J. Lennox" initials="J." surname="Lennox">
              <organization/>
            </author>
            <author fullname="C. Holmberg" initials="C." surname="Holmberg">
              <organization/>
            </author>
            <date month="March" year="2017"/>
            <abstract>
              <t>This document specifies how to establish secure connection-oriented media transport sessions over the Transport Layer Security (TLS) protocol using the Session Description Protocol (SDP).  It defines the SDP protocol identifier, 'TCP/TLS'.  It also defines the syntax and semantics for an SDP 'fingerprint' attribute that identifies the certificate that will be presented for the TLS session.  This mechanism allows media transport over TLS connections to be established securely, so long as the integrity of session descriptions is assured.</t>
              <t>This document obsoletes RFC 4572 by clarifying the usage of multiple fingerprints.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8122"/>
          <seriesInfo name="DOI" value="10.17487/RFC8122"/>
        </reference>
        <reference anchor="RFC8843">
          <front>
            <title>Negotiating Media Multiplexing Using the Session Description Protocol (SDP)</title>
            <author fullname="C. Holmberg" initials="C." surname="Holmberg">
              <organization/>
            </author>
            <author fullname="H. Alvestrand" initials="H." surname="Alvestrand">
              <organization/>
            </author>
            <author fullname="C. Jennings" initials="C." surname="Jennings">
              <organization/>
            </author>
            <date month="January" year="2021"/>
            <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>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8843"/>
          <seriesInfo name="DOI" value="10.17487/RFC8843"/>
        </reference>
        <reference anchor="RFC8285">
          <front>
            <title>A General Mechanism for RTP Header Extensions</title>
            <author fullname="D. Singer" initials="D." surname="Singer">
              <organization/>
            </author>
            <author fullname="H. Desineni" initials="H." surname="Desineni">
              <organization/>
            </author>
            <author fullname="R. Even" initials="R." role="editor" surname="Even">
              <organization/>
            </author>
            <date month="October" year="2017"/>
            <abstract>
              <t>This document provides a general mechanism to use the header extension feature of RTP (the Real-time Transport Protocol).  It provides the option to use a small number of small extensions in each RTP packet, where the universe of possible extensions is large and registration is decentralized.  The actual extensions in use in a session are signaled in the setup information for that session.  This document obsoletes RFC 5285.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8285"/>
          <seriesInfo name="DOI" value="10.17487/RFC8285"/>
        </reference>
        <reference anchor="RFC3605">
          <front>
            <title>Real Time Control Protocol (RTCP) attribute in Session Description Protocol (SDP)</title>
            <author fullname="C. Huitema" initials="C." surname="Huitema">
              <organization/>
            </author>
            <date month="October" year="2003"/>
            <abstract>
              <t>The Session Description Protocol (SDP) is used to describe the parameters of media streams used in multimedia sessions.  When a session requires multiple ports, SDP assumes that these ports have consecutive numbers.  However, when the session crosses a network address translation device that also uses port mapping, the ordering of ports can be destroyed by the translation.  To handle this, we propose an extension attribute to SDP.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3605"/>
          <seriesInfo name="DOI" value="10.17487/RFC3605"/>
        </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">
              <organization/>
            </author>
            <author fullname="S. Wenger" initials="S." surname="Wenger">
              <organization/>
            </author>
            <author fullname="N. Sato" initials="N." surname="Sato">
              <organization/>
            </author>
            <author fullname="C. Burmeister" initials="C." surname="Burmeister">
              <organization/>
            </author>
            <author fullname="J. Rey" initials="J." surname="Rey">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <author fullname="I. Johansson" initials="I." surname="Johansson">
              <organization/>
            </author>
            <author fullname="C. Perkins" initials="C." surname="Perkins">
              <organization/>
            </author>
            <author fullname="P. O'Hanlon" initials="P." surname="O'Hanlon">
              <organization/>
            </author>
            <author fullname="K. Carlberg" initials="K." surname="Carlberg">
              <organization/>
            </author>
            <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="RFC6284">
          <front>
            <title>Port Mapping between Unicast and Multicast RTP Sessions</title>
            <author fullname="A. Begen" initials="A." surname="Begen">
              <organization/>
            </author>
            <author fullname="D. Wing" initials="D." surname="Wing">
              <organization/>
            </author>
            <author fullname="T. Van Caenegem" initials="T." surname="Van Caenegem">
              <organization/>
            </author>
            <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="draft-hurst-quic-rtp-tunnelling-01">
          <front>
            <title>QRT: QUIC RTP Tunnelling</title>
            <author initials="S." surname="Hurst" fullname="Sam Hurst" role="editor">
              <organization>BBC Research &amp; Development</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-hurst-quic-rtp-tunnelling-01"/>
        </reference>
        <reference anchor="draft-dawkins-avtcore-sdp-rtp-quic">
          <front>
            <title>SDP Offer/Answer for RTP using QUIC as Transport</title>
            <author initials="S." surname="Dawkins" fullname="Spencer Dawkins" role="editor">
              <organization>Tencent America LLC</organization>
            </author>
            <date/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-dawkins-avtcore-sdp-rtp-quic-00"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAKw/JmIAA7Vc/XLbRpL/H08xZ1dd7BQp68N2ZNYpe7QkJ8pastaSN7V1
d5UFgSGJMwkgGEAy49I+1r3Avdj9untmMAAh2bu5daUqFIiZ6enpj19/DMfj
cVRn9UpP1KP315equNGV+tOHs+NHUVokebzGF2kVz+uxzhd6NYurelzV5Zje
G//aZMl4dz9K4lovimozUVk+L6IUf07U55Pp9eldFGVlNVF11Zh6f3f3Fd6O
Kx1P1A8611W8ij7qzW1RpRN1lte6ynU9PqHlosjUcZ7+Eq+KHJNttInMGov/
8mtT1NpMVF5EZTZR/1EXyUiZoqorPTf4tFnTh/+Koripl0U1idQ4UviX5Rj0
0456V9f8t2ztp//9n2rhnxXVIs6z3+I6K/KJutbJMs+SeKU+5Bm2a7J6o84b
PFry23odZ6uJKur637N8p27WO6nurHa+o04d04I1z+N6mZneV//Q0mueacef
zL8v6PlOUqyjKC8qfI3B4IA9wUzXczkznFC8qOL1eG93whM6EZjmWLHSqyye
rbQ6sa+p00+1zg1IU3VhpYNGdQ6aHhhdZdqQEMi0qneqk4co4RH+1Pjf2P7f
MvR6R13GzWrjnwpDr4v1etP7BvycqGlZYhdnebLjn1cF7VOnWV1Uw4uc7qg/
Znmu46q3zGmVJVtf/ePrnOyoq2SZ5fFvWW+hk/gmS7e/5KV+KIoF1nr79nh4
KX/YyyarISbC5dqMd190T/pPeK6us7WGnq1Lo94UlTrXsWmqLIdG5Hr8c7xR
J3oVb8zvPO1tUr581Mc76kcZ1mPO8bLKTJ3F+db3zJ/LKrsBnepdUhdlYx44
FM8pYxkt9C0PWpns8+yDId6Q/HvVMOo2q5fqx+vry2cHv5NPDxHyZY79k+XJ
rLFPoazSiYZh4aPs2Q/mTWst5hCq97qEdSbGXcbJR13jAQ8PhO/38u0e0r5K
yq5ocF/Gihzms/cVs+s8XkBt3uq4HP29+n6GtW619TTtWmeQ5O7zv+9cWlMK
7o7nlf610XmyGe/uDZzMNPmYF7crnS70Wue1euNe/3+z530ivnwG8MlnG7iw
LXv7U5zHW18xc97Epg5s/T+H9/fwnZix5VmXTWVqK4EAR3UDJ7FaQea3j+H9
9UQsCKGta//i7zax9xPw5SO4ImOLCXrsuYLn7z5n9rx+DeK1gRdMlupf4SJu
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

-->

</rfc>
