<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-avtcore-cc-feedback-message-09" indexInclude="true" ipr="trust200902" number="8888" prepTime="2021-01-19T16:36:53" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="4" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-avtcore-cc-feedback-message-09" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8888" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Congestion Control Feedback in RTCP">RTP Control Protocol (RTCP) Feedback for Congestion Control</title>
    <seriesInfo name="RFC" value="8888" stream="IETF"/>
    <author fullname="Zaheduzzaman Sarker" initials="Z." surname="Sarker">
      <organization showOnFrontPage="true">Ericsson AB</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Stockholm</city>
          <region/>
          <code>164 83</code>
          <country>Sweden</country>
        </postal>
        <phone>+46 10 717 37 43</phone>
        <email>zaheduzzaman.sarker@ericsson.com</email>
      </address>
    </author>
    <author fullname="Colin Perkins" initials="C." surname="Perkins">
      <organization showOnFrontPage="true">University of Glasgow</organization>
      <address>
        <postal>
          <street>School of Computing Science</street>
          <city>Glasgow</city>
          <code>G12 8QQ</code>
          <country>United Kingdom</country>
        </postal>
        <email>csp@csperkins.org</email>
      </address>
    </author>
    <author fullname="Varun Singh" initials="V." surname="Singh">
      <organization abbrev="callstats.io" showOnFrontPage="true">CALLSTATS I/O Oy</organization>
      <address>
        <postal>
          <street>Annankatu 31-33 C 42</street>
          <city>Helsinki</city>
          <code>00100</code>
          <country>Finland</country>
        </postal>
        <email>varun.singh@iki.fi</email>
        <uri>https://www.callstats.io/</uri>
      </address>
    </author>
    <author fullname="Michael A. Ramalho" initials="M." surname="Ramalho">
      <organization abbrev="AcousticComms" showOnFrontPage="true">AcousticComms Consulting</organization>
      <address>
        <postal>
          <street>6310 Watercrest Way Unit 203</street>
          <city>Lakewood Ranch</city>
          <region>FL</region>
          <code>34202-5122</code>
          <country>United States of America</country>
        </postal>
        <phone>+1 732 832 9723</phone>
        <email>mar42@cornell.edu</email>
        <uri>http://ramalho.webhop.info/</uri>
      </address>
    </author>
    <date month="01" year="2021"/>
    <keyword>Congestion control</keyword>
    <keyword>feedback message</keyword>
    <keyword>RTP</keyword>
    <keyword>RTCP</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">
        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>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t indent="0" pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t indent="0" pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t indent="0" pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc8888" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t indent="0" pn="section-boilerplate.2-1">
            Copyright (c) 2021 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t indent="0" pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Simplified BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Simplified BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-terminology">Terminology</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t indent="0" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rtcp-feedback-for-congestio">RTCP Feedback for Congestion Control</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2">
              <li pn="section-toc.1-1.3.2.1">
                <t indent="0" keepWithNext="true" pn="section-toc.1-1.3.2.1.1"><xref derivedContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-rtcp-congestion-control-fee">RTCP Congestion Control Feedback Report</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.4">
            <t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-feedback-frequency-and-over">Feedback Frequency and Overhead</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-response-to-loss-of-feedbac">Response to Loss of Feedback Packets</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sdp-signaling">SDP Signaling</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-relationship-to-rfc-6679">Relationship to RFC 6679</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-design-rationale">Design Rationale</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.10">
            <t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="11" format="counter" sectionFormat="of" target="section-11"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.11.2">
              <li pn="section-toc.1-1.11.2.1">
                <t indent="0" pn="section-toc.1-1.11.2.1.1"><xref derivedContent="11.1" format="counter" sectionFormat="of" target="section-11.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.11.2.2">
                <t indent="0" pn="section-toc.1-1.11.2.2.1"><xref derivedContent="11.2" format="counter" sectionFormat="of" target="section-11.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.12">
            <t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.13">
            <t indent="0" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">For interactive real-time traffic, such as video conferencing
      flows, the typical protocol choice is the Real-time Transport
      Protocol (RTP) <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/> running over the User Datagram Protocol (UDP). RTP
      does not provide any guarantee of Quality of Service (QoS), reliability,
      or timely delivery, and expects the underlying transport protocol to
      do so.  UDP alone certainly does not meet that expectation. However,
      the RTP Control Protocol (RTCP) <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/> provides a mechanism by which the
      receiver of an RTP flow can periodically send transport and media
      quality metrics to the sender of that RTP flow. This information can
      be used by the sender to perform congestion control.  In the absence
      of standardized messages for this purpose, designers of congestion
      control algorithms have developed proprietary RTCP messages that
      convey only those parameters needed for their respective designs.
      As a direct result, the different congestion control
      designs are not interoperable.  To enable algorithm
      evolution as well as interoperability across designs (e.g., different
      rate adaptation algorithms), it is highly desirable to have a generic
      congestion control feedback format.</t>
      <t indent="0" pn="section-1-2">To help achieve interoperability for unicast RTP congestion control,
      this memo specifies a common RTCP feedback packet format that can be used by
      Network-Assisted Dynamic Adaptation
      (NADA) <xref target="RFC8698" format="default" sectionFormat="of" derivedContent="RFC8698"/>, 
      Self-Clocked Rate Adaptation for Multimedia (SCReAM) <xref target="RFC8298" format="default" sectionFormat="of" derivedContent="RFC8298"/>, Google Congestion Control
      <xref target="Google-GCC" format="default" sectionFormat="of" derivedContent="Google-GCC"/>, and Shared Bottleneck
      Detection <xref target="RFC8382" format="default" sectionFormat="of" derivedContent="RFC8382"/>, and, hopefully,
      also by future RTP congestion control algorithms.
</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-terminology">Terminology</name>
      <t indent="0" pn="section-2-1">The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
       "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
       "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
       "<bcp14>SHOULD NOT</bcp14>",
       "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
       "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document
       are to be interpreted as described in BCP 14
       <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only
       when, they appear in all capitals, as shown here.</t>
      <t indent="0" pn="section-2-2">In addition, the terminology defined in <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>,
      <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/>, and <xref target="RFC5506" format="default" sectionFormat="of" derivedContent="RFC5506"/> applies.</t>
    </section>
    <section anchor="feedback_message" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-rtcp-feedback-for-congestio">RTCP Feedback for Congestion Control</name>
      <t indent="0" pn="section-3-1">Based on an analysis of NADA <xref target="RFC8698" format="default" sectionFormat="of" derivedContent="RFC8698"/>,
      SCReAM <xref target="RFC8298" format="default" sectionFormat="of" derivedContent="RFC8298"/>, Google
      Congestion Control <xref target="Google-GCC" format="default" sectionFormat="of" derivedContent="Google-GCC"/>, and
      Shared Bottleneck Detection <xref target="RFC8382" format="default" sectionFormat="of" derivedContent="RFC8382"/>,
      the following per-RTP packet congestion control feedback information
      has been determined to be necessary:</t>
      <dl newline="false" spacing="normal" indent="3" pn="section-3-2">
        <dt pn="section-3-2.1">RTP Sequence Number:</dt>
        <dd pn="section-3-2.2">The receiver of an RTP flow needs to feed
          the sequence numbers of the received RTP packets back to the sender, so the
          sender can determine which packets were received and which were lost.
          Packet loss is used as an indication of congestion by many congestion
          control algorithms.</dd>
        <dt pn="section-3-2.3">Packet Arrival Time:</dt>
        <dd pn="section-3-2.4">The receiver of an RTP flow needs to feed
          the arrival time of each RTP packet back to the sender. Packet delay and/or
          delay variation (jitter) is used as a congestion signal by some congestion
          control algorithms.</dd>
        <dt pn="section-3-2.5">Packet Explicit Congestion Notification (ECN) Marking:</dt>
        <dd pn="section-3-2.6">If ECN
          <xref target="RFC3168" format="default" sectionFormat="of" derivedContent="RFC3168"/> <xref target="RFC6679" format="default" sectionFormat="of" derivedContent="RFC6679"/> is
          used, it is necessary to feed back the 2-bit ECN mark in received
          RTP packets, indicating for each RTP packet whether it is marked
          not-ECT, ECT(0), ECT(1), or ECN Congestion Experienced (ECN-CE).
          ("ECT" stands for "ECN-Capable Transport".) If the path used by the RTP
          traffic is ECN capable, the sender can use ECN-CE marking information as a congestion control signal.</dd>
      </dl>
      <t indent="0" pn="section-3-3">Every RTP flow is identified by its Synchronization Source (SSRC)
      identifier. Accordingly, the RTCP feedback format needs to group its
      reports by SSRC, sending one report block per received SSRC.</t>
      <t indent="0" pn="section-3-4">As a practical matter, we note that host operating system (OS)
      process interruptions can occur at inopportune times. Accordingly,
      recording RTP packet send times at the sender, and the corresponding
      RTP packet arrival times at the
      receiver, needs to be done with deliberate care. This is because the time
      duration of host OS interruptions can be significant relative to the
      precision desired in the one-way delay estimates. Specifically, the send
      time needs to be recorded at the last opportunity prior to transmitting
      the RTP packet at the sender, and the arrival time at the receiver needs
      to be recorded at the earliest available opportunity.</t>
      <section anchor="sec_ccfb" numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-rtcp-congestion-control-fee">RTCP Congestion Control Feedback Report</name>
        <t indent="0" pn="section-3.1-1">Congestion control feedback can be sent as part of a regular
        scheduled RTCP report or in an RTP/AVPF early feedback packet. 
        If sent as early feedback, congestion control feedback <bcp14>MAY</bcp14> be 
        sent in a non-compound RTCP packet <xref target="RFC5506" format="default" sectionFormat="of" derivedContent="RFC5506"/> 
        if the RTP/AVPF profile <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/> or the 
        RTP/SAVPF profile <xref target="RFC5124" format="default" sectionFormat="of" derivedContent="RFC5124"/> is used.</t>
        <t indent="0" pn="section-3.1-2">Irrespective of how it is transported, the congestion control 
        feedback is sent as a Transport-Layer Feedback Message (RTCP packet 
        type 205). The format of this RTCP packet is shown in 
        <xref target="rtcp-packet" format="default" sectionFormat="of" derivedContent="Figure 1"/>:</t>
        <figure anchor="rtcp-packet" align="left" suppress-title="false" pn="figure-1">
          <name slugifiedName="name-rtcp-congestion-control-feed">RTCP Congestion Control Feedback Packet Format</name>
          <artwork name="" type="" align="left" alt="" pn="section-3.1-3.1">
   0                   1                   2                   3
   0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |V=2|P| FMT=11  |   PT = 205    |          length               |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                 SSRC of RTCP packet sender                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                   SSRC of 1st RTP Stream                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |          begin_seq            |          num_reports          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |R|ECN|  Arrival time offset    | ...                           .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  .                                                               .
  .                                                               .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                   SSRC of nth RTP Stream                      |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |          begin_seq            |          num_reports          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |R|ECN|  Arrival time offset    | ...                           |
  .                                                               .
  .                                                               .
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                 Report Timestamp (32 bits)                    |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
        </figure>
        <t indent="0" pn="section-3.1-4">The first 8 octets comprise a standard RTCP header, with
        PT=205 and FMT=11 indicating that this is a congestion control
        feedback packet, and with the SSRC set to that of the sender of
        the RTCP packet.</t>
        <t indent="0" pn="section-3.1-5"><xref target="RFC4585" sectionFormat="of" section="6.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4585#section-6.1" derivedContent="RFC4585"/>
        requires the RTCP
        header to be followed by the SSRC of the RTP flow being reported 
        upon.  Accordingly, the RTCP header is followed by a report block
        for each SSRC from which RTP packets have been received, followed
        by a Report Timestamp.</t>
        <t indent="0" pn="section-3.1-6">Each report block begins with the SSRC of the received RTP stream
        on which it is reporting. Following this, the report block contains a
        16-bit packet metric block for each RTP packet that has a sequence number
        in the range begin_seq to begin_seq+num_reports inclusive (calculated using
        arithmetic modulo 65536 to account for possible sequence number wrap-around).
        If the number of 16-bit packet metric blocks included in the report
        block is not a multiple of two, then 16 bits of zero padding <bcp14>MUST</bcp14> be
        added after the last packet metric block, to align the end of the
        packet metric blocks with the next 32-bit boundary.
        The value of num_reports <bcp14>MAY</bcp14> be 0, indicating that there are no
        packet metric blocks included for that SSRC.
        Each report block <bcp14>MUST NOT</bcp14> include more than 16384 packet metric blocks
        (i.e., it <bcp14>MUST NOT</bcp14> report on more than one quarter of the sequence
        number space in a single report).
        </t>
        <t indent="0" pn="section-3.1-7">
        The contents of each 16-bit packet metric block comprise the R, ECN,
        and ATO fields as follows:
        </t>
        <dl newline="false" spacing="normal" indent="3" pn="section-3.1-8">
          <dt pn="section-3.1-8.1">Received (R, 1 bit):</dt>
          <dd pn="section-3.1-8.2">A boolean that indicates whether the packet was
              received.  0 indicates that the packet was not yet received and
              the subsequent 15 bits (ECN and ATO) in this 16-bit packet
              metric block are also set to 0 and <bcp14>MUST</bcp14> be ignored.
              1 indicates that the packet was received and the subsequent
              bits in the block need to be parsed.</dd>
          <dt pn="section-3.1-8.3">ECN (2 bits):</dt>
          <dd pn="section-3.1-8.4">The echoed ECN mark of the packet. These bits
              are set to 00 if not received or if ECN is not used.</dd>
          <dt pn="section-3.1-8.5">Arrival time offset (ATO, 13 bits):</dt>
          <dd pn="section-3.1-8.6">The arrival time of
              the RTP packet at the receiver, as an offset before the time
              represented by the Report Timestamp (RTS) field of this RTCP congestion control
              feedback report. The ATO field is in units of 1/1024 seconds
              (this unit is chosen to give exact offsets from the RTS field)
              so, for example, an ATO value of 512 indicates that the
              corresponding RTP packet arrived exactly half a second before
              the time instant represented by the RTS field.
              If the measured value is greater than 8189/1024 seconds (the
              value that would be coded as 0x1FFD), the value 0x1FFE <bcp14>MUST</bcp14>
              be reported to indicate an over-range measurement.
              If the measurement is unavailable or if the arrival time of
              the RTP packet is after the time represented by the RTS field,
              then an ATO value of 0x1FFF <bcp14>MUST</bcp14> be reported for the packet.</dd>
        </dl>
        <t indent="0" pn="section-3.1-9">The RTCP congestion control feedback report packet concludes with
        the Report Timestamp field (RTS, 32 bits). This denotes the time
        instant on which this packet is reporting and is the instant from
        which the arrival time offset values are calculated.
        The value of the RTS field is derived from the same clock used to generate
        the NTP timestamp field in RTCP Sender Report (SR) packets. It
        is formatted as the middle 32 bits of an NTP format timestamp, as 
        described in <xref target="RFC3550" sectionFormat="of" section="4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3550#section-4" derivedContent="RFC3550"/>.</t>
        <t indent="0" pn="section-3.1-10">RTCP Congestion Control Feedback Packets <bcp14>SHOULD</bcp14> include a report
        block for every active SSRC. The sequence
        number ranges reported on in consecutive reports for a given SSRC will
        generally be contiguous, but overlapping reports <bcp14>MAY</bcp14> be sent (and need
        to be sent in cases where RTP packet reordering occurs across the
        boundary between consecutive reports).
        If an RTP packet was reported as received in one report, that packet
        <bcp14>MUST</bcp14> also be reported as received in any overlapping reports sent later that cover its sequence number range.
If feedback reports covering overlapping sequence number ranges are sent,
information in later feedback reports may update any data sent in previous
reports for RTP packets included in both feedback reports.
        </t>
        <t indent="0" pn="section-3.1-11">RTCP Congestion Control Feedback Packets can be large if they are
        sent infrequently relative to the number of RTP data packets.  If an
        RTCP Congestion Control Feedback Packet is too large to fit within the
        path MTU, its sender <bcp14>SHOULD</bcp14> split it into multiple feedback packets.
        The RTCP reporting interval <bcp14>SHOULD</bcp14> be chosen such that feedback packets
        are sent often enough that they are small enough to fit within the path
        MTU. (<xref target="I-D.ietf-rmcat-rtp-cc-feedback" format="default" sectionFormat="of" derivedContent="RTCP-Multimedia-Feedback"/> discusses how to
        choose the reporting interval; specifications for RTP congestion control
        algorithms can also provide guidance.)</t>
        <t indent="0" pn="section-3.1-12">If duplicate copies of a particular RTP packet are received, then the
        arrival time of the first copy to arrive <bcp14>MUST</bcp14> be reported. If any of the
        copies of the duplicated packet are ECN-CE marked, then an ECN-CE mark
        <bcp14>MUST</bcp14> be reported for that packet; otherwise, the ECN mark of the first
        copy to arrive is reported.</t>
        <t indent="0" pn="section-3.1-13">If no packets are received from an SSRC in a reporting interval,
        a report block <bcp14>MAY</bcp14> be sent with begin_seq set to the highest sequence
        number previously received from that SSRC and num_reports set to 0
        (or the report can simply be omitted). The corresponding 
        Sender Report / Receiver Report (SR/RR) packet 
        will have a non-increased extended highest sequence number received
        field that will inform the sender that no packets have been received,
        but it can ease processing to have that information available in the
        congestion control feedback reports too.</t>
        <t indent="0" pn="section-3.1-14">A report block indicating that certain RTP packets were lost is
        not to be interpreted as a request to retransmit the lost packets.
        The receiver of such a report might choose to retransmit such packets,
        provided a retransmission payload format has been negotiated, but
        there is no requirement that it do so.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-feedback-frequency-and-over">Feedback Frequency and Overhead</name>
      <t indent="0" pn="section-4-1">There is a trade-off between speed and accuracy of reporting, and the
      overhead of the reports. <xref target="I-D.ietf-rmcat-rtp-cc-feedback" format="default" sectionFormat="of" derivedContent="RTCP-Multimedia-Feedback"/>
      discusses this trade-off, suggests desirable RTCP feedback rates, and
      provides guidance on how to configure, for example, the RTCP bandwidth fraction 
      to make appropriate use of the reporting block described in this memo.
      Specifications for RTP congestion control algorithms can also provide
      guidance.</t>
      <t indent="0" pn="section-4-2">It is generally understood that congestion control algorithms work
      better with more frequent feedback.
      However, RTCP bandwidth and transmission rules put some upper limits
      on how frequently the RTCP feedback messages can be sent from an RTP
      receiver to the RTP sender.
      
      In many cases, sending feedback once per frame is an upper bound
      before the reporting overhead becomes excessive, although this will
      depend on the media rate and more frequent feedback might be needed
      with high-rate media flows <xref target="I-D.ietf-rmcat-rtp-cc-feedback" format="default" sectionFormat="of" derivedContent="RTCP-Multimedia-Feedback"/>.
      Analysis <xref target="feedback-requirements" format="default" sectionFormat="of" derivedContent="feedback-requirements"/> has also shown
      that some candidate congestion control algorithms can operate with less
      frequent feedback, using a feedback interval range of 50-200 ms.
      Applications need to negotiate an appropriate congestion control
      feedback interval at session setup time, based on the choice of
      congestion control algorithm, the expected media bitrate, and
      the acceptable feedback overhead.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-response-to-loss-of-feedbac">Response to Loss of Feedback Packets</name>
      <t indent="0" pn="section-5-1">
        Like all RTCP packets, RTCP Congestion Control Feedback Packets
        might be lost. All RTP congestion control algorithms <bcp14>MUST</bcp14> specify
        how they respond to the loss of feedback packets.
      </t>
      <t indent="0" pn="section-5-2">
        RTCP packets do not contain a sequence number, so loss of feedback
        packets has to be inferred based on the time since the last feedback
        packet.
        If only a single congestion control feedback packet is lost, an
        appropriate response is to assume that the level of congestion
        has remained roughly the same as the previous report. However,
        if multiple consecutive congestion control feedback packets are
        lost, then the media sender <bcp14>SHOULD</bcp14> rapidly reduce its sending rate as
        this likely indicates a path failure. The RTP circuit
        breaker specification <xref target="RFC8083" format="default" sectionFormat="of" derivedContent="RFC8083"/> provides further guidance.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-sdp-signaling">SDP Signaling</name>
      <t indent="0" pn="section-6-1">
        A new "ack" feedback parameter, "ccfb", is defined for use with the
        "a=rtcp-fb:" Session Description Protocol (SDP) extension to indicate the use of the RTP Congestion
        Control Feedback Packet format defined in <xref target="feedback_message" format="default" sectionFormat="of" derivedContent="Section 3"/>.
        The ABNF definition <xref target="RFC5234" format="default" sectionFormat="of" derivedContent="RFC5234"/> of this SDP parameter extension is:</t>
      <sourcecode type="abnf" markers="false" pn="section-6-2">
        rtcp-fb-ack-param = &lt;See Section 4.2 of [RFC4585]&gt;
        rtcp-fb-ack-param =/ ccfb-par
        ccfb-par          = SP "ccfb"</sourcecode>
      <t indent="0" pn="section-6-3">
        The payload type used with "ccfb" feedback <bcp14>MUST</bcp14> be the wildcard type ("*").
        This implies that the congestion control feedback is sent
        for all payload types in use in the session, including any Forward Error Correction (FEC) and
        retransmission payload types.
        An example of the resulting SDP attribute is:
      </t>
      <sourcecode name="" type="sdp" markers="false" pn="section-6-4">
        a=rtcp-fb:* ack ccfb</sourcecode>
      <t indent="0" pn="section-6-5">
        The offer/answer rules for these SDP feedback parameters are
        specified in <xref target="RFC4585" sectionFormat="of" section="4.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc4585#section-4.2" derivedContent="RFC4585">the RTP/AVPF profile</xref>.
      </t>
      <t indent="0" pn="section-6-6">
        An SDP offer might indicate support for both the congestion control
        feedback mechanism specified in this memo and one or more alternative
        congestion control feedback mechanisms that offer substantially the
        same semantics. In this case, the answering party <bcp14>SHOULD</bcp14> include
        only one of the offered congestion control feedback mechanisms in its
        answer.  If a subsequent offer containing the same set of congestion control
        feedback mechanisms is received, the generated answer <bcp14>SHOULD</bcp14> choose
        the same congestion control feedback mechanism as in the original
        answer where possible.
      </t>
      <t indent="0" pn="section-6-7">
        When the SDP BUNDLE extension <xref target="RFC8843" format="default" sectionFormat="of" derivedContent="RFC8843"/>
        is used for multiplexing, the "a=rtcp-fb:" attribute has multiplexing category
        IDENTICAL-PER-PT <xref target="RFC8859" format="default" sectionFormat="of" derivedContent="RFC8859"/>.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-relationship-to-rfc-6679">Relationship to RFC 6679</name>
      <t indent="0" pn="section-7-1">
        The use of Explicit Congestion Notification (ECN) with RTP is
        described in <xref target="RFC6679" format="default" sectionFormat="of" derivedContent="RFC6679"/>, which specifies how
        to negotiate the use of ECN with RTP and defines an RTCP ECN
        Feedback Packet to carry ECN feedback reports. It uses an SDP
        "a=ecn-capable-rtp:" attribute to negotiate the use of ECN, and
        the "a=rtcp-fb:" attribute with the "nack" parameter "ecn" to
        negotiate the use of RTCP ECN Feedback Packets.</t>
      <t indent="0" pn="section-7-2">
        The RTCP ECN Feedback Packet is not useful when ECN is used with
        the RTP Congestion Control Feedback Packet defined in this memo,
        since it provides duplicate information. When
        congestion control feedback is to be used with RTP and ECN,
        the SDP offer generated <bcp14>MUST</bcp14> include an "a=ecn-capable-rtp:"
        attribute to negotiate ECN support, along with an "a=rtcp-fb:"
        attribute with the "ack" parameter "ccfb" to indicate that the
        RTP Congestion Control Feedback Packet can be used.
        The "a=rtcp-fb:" attribute <bcp14>MAY</bcp14> also include the "nack" parameter
        "ecn" to indicate that the RTCP ECN Feedback Packet is also
        supported. If an SDP offer signals support for both RTP
        Congestion Control Feedback Packets and the RTCP ECN Feedback
        Packet, the answering party <bcp14>SHOULD</bcp14> signal support for one, but
        not both, formats in its SDP answer to avoid sending duplicate
        feedback.
      </t>
      <t indent="0" pn="section-7-3">
        When using ECN with RTP, the guidelines in <xref target="RFC6679" sectionFormat="of" section="7.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6679#section-7.2" derivedContent="RFC6679"/>
        <bcp14>MUST</bcp14> be followed to initiate the use of ECN in an
        RTP session. The guidelines in <xref target="RFC6679" sectionFormat="of" section="7.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6679#section-7.3" derivedContent="RFC6679"/> regarding the ongoing use of ECN within an RTP
        session <bcp14>MUST</bcp14> also be followed, with the exception that feedback is sent using the RTCP
        Congestion Control Feedback Packets described in this memo rather
        than using RTP ECN Feedback Packets. Similarly, the guidance
        in <xref target="RFC6679" sectionFormat="of" section="7.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6679#section-7.4" derivedContent="RFC6679"/>
 related to detecting failures
        <bcp14>MUST</bcp14> be followed, with the exception that the necessary information is
        retrieved from the RTCP Congestion Control Feedback Packets rather than
        from RTP ECN Feedback Packets.
      </t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-design-rationale">Design Rationale</name>
      <t indent="0" pn="section-8-1">The primary function of RTCP SR/RR packets is to report statistics
      on the reception of RTP packets. The reception report blocks sent in
      these packets contain information about observed jitter, fractional
      packet loss, and cumulative packet loss. It was intended that this
      information could be used to  support congestion control algorithms,
      but experience has shown that it is not sufficient for that purpose.
      An efficient congestion control algorithm requires more fine-grained
      information on per-packet reception quality than is provided by SR/RR
      packets to react effectively. The feedback format defined in this memo
      provides such fine-grained feedback.</t>
      <t indent="0" pn="section-8-2">Several other RTCP extensions also provide more detailed feedback
      than SR/RR packets:</t>
      <dl newline="false" spacing="normal" indent="3" pn="section-8-3">
        <dt pn="section-8-3.1">TMMBR:</dt>
        <dd pn="section-8-3.2">The codec control messages for the RTP/AVPF profile 
          <xref target="RFC5104" format="default" sectionFormat="of" derivedContent="RFC5104"/> include a 
          Temporary Maximum Media Stream Bit Rate Request (TMMBR) message. This is used to convey a temporary maximum bitrate limitation from a receiver of RTP packets to their sender. Even
          though it was not designed to replace congestion control, TMMBR has
          been used as a means to do receiver-based congestion control where
          the session bandwidth is high enough to send frequent TMMBR messages,
            especially when used with non-compound RTCP packets <xref target="RFC5506" format="default" sectionFormat="of" derivedContent="RFC5506"/>.
          This approach requires the receiver of the RTP packets to monitor
          their reception, determine the level of congestion, and recommend 
          a maximum bitrate suitable for current available bandwidth on the
          path; it also assumes that the RTP sender can⁠/will respect that bitrate.  This is the opposite of the sender-based congestion control
          approach suggested in this memo, so TMMBR cannot be used to convey
          the information needed for sender-based congestion control.  TMMBR
          could, however, be viewed as a complementary mechanism that can inform
          the sender of the receiver's current view of an acceptable maximum bitrate. Mechanisms that convey the receiver's estimate of the maximum
          available bitrate provide similar feedback.
          </dd>
        <dt pn="section-8-3.3">RTCP Extended Reports (XRs):</dt>
        <dd pn="section-8-3.4">Numerous RTCP XR blocks have been defined to report details of packet
          loss, arrival times <xref target="RFC3611" format="default" sectionFormat="of" derivedContent="RFC3611"/>, delay 
          <xref target="RFC6843" format="default" sectionFormat="of" derivedContent="RFC6843"/>, and ECN marking <xref target="RFC6679" format="default" sectionFormat="of" derivedContent="RFC6679"/>. 
          It is possible to combine several such XR blocks into a compound
          RTCP packet, to report the detailed loss, arrival time, and ECN
          marking information needed for effective sender-based
          congestion control. However, the result has high overhead 
          in terms of both bandwidth and complexity, due to the need to stack
          multiple reports.</dd>
        <dt pn="section-8-3.5">Transport-wide Congestion Control:</dt>
        <dd pn="section-8-3.6">The format
          defined in this memo provides individual feedback on each SSRC.
          An alternative is to add a header extension to each RTP packet,
          containing a single, transport-wide, packet sequence number,
          then have the receiver send RTCP reports giving feedback on
          these additional sequence numbers
          <xref target="I-D.holmer-rmcat-transport-wide-cc-extensions" format="default" sectionFormat="of" derivedContent="RTP-Ext-for-CC"/>.
          Such an approach increases the size of each RTP packet by 8 octets, due to 
          the header extension, but reduces the size of the RTCP feedback packets,
          and can simplify
          the rate calculation at the sender if it maintains a single
          rate limit that applies to all RTP packets sent, irrespective
          of their SSRC.

 Equally, the use of transport-wide feedback makes
          it more difficult to adapt the sending rate, or respond to lost
          packets, based on the reception and/or loss patterns observed
          on a per-SSRC basis (for example, to perform differential rate
          control and repair for audio and video flows, based on knowledge
          of what packets from each flow were lost). Transport-wide 
          feedback is also a less natural fit with the wider RTP framework,
          which makes extensive use of per-SSRC sequence numbers and
          feedback.</dd>
      </dl>
      <t indent="0" pn="section-8-4">Considering these issues, we believe it appropriate to design a
      new RTCP feedback mechanism to convey information for sender-based
      congestion control algorithms. The new congestion control feedback
      RTCP packet described in <xref target="feedback_message" format="default" sectionFormat="of" derivedContent="Section 3"/>
      provides such a mechanism.</t>
    </section>
    <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn="section-9">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-9-1">
        The IANA has registered one new RTP/AVPF Transport-Layer
        Feedback Message in the "FMT Values for RTPFB Payload Types" table 
        <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/> as defined in <xref target="sec_ccfb" format="default" sectionFormat="of" derivedContent="Section 3.1"/>:
      </t>
      <dl indent="14" newline="false" spacing="compact" pn="section-9-2">
        <dt pn="section-9-2.1">Name:</dt>
        <dd pn="section-9-2.2">CCFB</dd>
        <dt pn="section-9-2.3">Long name:</dt>
        <dd pn="section-9-2.4">RTP Congestion Control Feedback</dd>
        <dt pn="section-9-2.5">Value:</dt>
        <dd pn="section-9-2.6">11</dd>
        <dt pn="section-9-2.7">Reference:</dt>
        <dd pn="section-9-2.8">RFC 8888</dd>
      </dl>
      <t indent="0" pn="section-9-3">
        The IANA has also registered one new SDP "rtcp-fb" attribute
        "ack" parameter, "ccfb", in the SDP '"ack" and "nack" Attribute Values'
        registry:
      </t>
      <dl indent="14" newline="false" spacing="compact" pn="section-9-4">
        <dt pn="section-9-4.1">Value name:</dt>
        <dd pn="section-9-4.2">ccfb</dd>
        <dt pn="section-9-4.3">Long name:</dt>
        <dd pn="section-9-4.4">Congestion Control Feedback</dd>
        <dt pn="section-9-4.5">Usable with:</dt>
        <dd pn="section-9-4.6">ack</dd>
        <dt pn="section-9-4.7">Mux:</dt>
        <dd pn="section-9-4.8">IDENTICAL-PER-PT</dd>
        <dt pn="section-9-4.9">Reference:</dt>
        <dd pn="section-9-4.10">RFC 8888</dd>
      </dl>
    </section>
    <section anchor="Security" numbered="true" toc="include" removeInRFC="false" pn="section-10">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-10-1">The security considerations of the RTP specification
      <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>, the applicable RTP profile (e.g.,
      <xref target="RFC3551" format="default" sectionFormat="of" derivedContent="RFC3551"/>, <xref target="RFC3711" format="default" sectionFormat="of" derivedContent="RFC3711"/>, or
      <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/>), and the RTP congestion control algorithm
      being used (e.g., <xref target="RFC8698" format="default" sectionFormat="of" derivedContent="RFC8698"/>,
      <xref target="RFC8298" format="default" sectionFormat="of" derivedContent="RFC8298"/>,
      <xref target="Google-GCC" format="default" sectionFormat="of" derivedContent="Google-GCC"/>, or
      <xref target="RFC8382" format="default" sectionFormat="of" derivedContent="RFC8382"/>) apply.</t>
      <t indent="0" pn="section-10-2">A receiver that intentionally generates inaccurate RTCP congestion
      control feedback reports might be able to trick the sender into sending
      at a greater rate than the path can support, thereby causing congestion on the
      path. 
      This scenario will negatively impact the quality of experience
      of that receiver, potentially causing both denial of service
      to other traffic sharing the path and excessively increased resource
      usage at the media sender.
      Since RTP is an unreliable transport, a sender can intentionally drop a packet,
      leaving a gap in the RTP sequence number space without causing serious harm, to
      check that the receiver is correctly reporting losses. (This needs to be done with
      care and some awareness of the media data being sent, to limit impact on the user
      experience.)</t>
      <t indent="0" pn="section-10-3">An on-path attacker that can modify RTCP Congestion Control Feedback
      Packets can change the reports to trick the sender into sending at either
      an excessively high or excessively low rate, leading to denial of service.
      The secure RTCP profile <xref target="RFC3711" format="default" sectionFormat="of" derivedContent="RFC3711"/> can be used to authenticate
      RTCP packets to protect against this attack.</t>
      <t indent="0" pn="section-10-4">An off-path attacker that can spoof RTCP Congestion Control Feedback
      Packets can similarly trick a sender into sending at an incorrect
      rate, leading to denial of service.  This attack is difficult, since the
      attacker needs to guess the SSRC and sequence number in addition to the
      destination transport address. As with on-path attacks, the secure RTCP
      profile <xref target="RFC3711" format="default" sectionFormat="of" derivedContent="RFC3711"/> can be used to authenticate RTCP packets
      to protect against this attack.</t>
    </section>
  </middle>
  <back>
    <displayreference target="I-D.ietf-rmcat-rtp-cc-feedback" to="RTCP-Multimedia-Feedback"/>
    <displayreference target="I-D.holmer-rmcat-transport-wide-cc-extensions" to="RTP-Ext-for-CC"/>
    <references pn="section-11">
      <name slugifiedName="name-references">References</name>
      <references pn="section-11.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t indent="0">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="RFC3168" target="https://www.rfc-editor.org/info/rfc3168" quoteTitle="true" derivedAnchor="RFC3168">
          <front>
            <title>The Addition of Explicit Congestion Notification (ECN) to IP</title>
            <author initials="K." surname="Ramakrishnan" fullname="K. Ramakrishnan">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Floyd" fullname="S. Floyd">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Black" fullname="D. Black">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2001" month="September"/>
            <abstract>
              <t indent="0">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="RFC3550" target="https://www.rfc-editor.org/info/rfc3550" quoteTitle="true" derivedAnchor="RFC3550">
          <front>
            <title>RTP: A Transport Protocol for Real-Time Applications</title>
            <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Casner" fullname="S. Casner">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Frederick" fullname="R. Frederick">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Jacobson" fullname="V. Jacobson">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2003" month="July"/>
            <abstract>
              <t indent="0">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="RFC3551" target="https://www.rfc-editor.org/info/rfc3551" quoteTitle="true" derivedAnchor="RFC3551">
          <front>
            <title>RTP Profile for Audio and Video Conferences with Minimal Control</title>
            <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Casner" fullname="S. Casner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2003" month="July"/>
            <abstract>
              <t indent="0">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="RFC3711" target="https://www.rfc-editor.org/info/rfc3711" quoteTitle="true" derivedAnchor="RFC3711">
          <front>
            <title>The Secure Real-time Transport Protocol (SRTP)</title>
            <author initials="M." surname="Baugher" fullname="M. Baugher">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="McGrew" fullname="D. McGrew">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Naslund" fullname="M. Naslund">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Carrara" fullname="E. Carrara">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Norrman" fullname="K. Norrman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2004" month="March"/>
            <abstract>
              <t indent="0">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="RFC4585" target="https://www.rfc-editor.org/info/rfc4585" quoteTitle="true" derivedAnchor="RFC4585">
          <front>
            <title>Extended RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/AVPF)</title>
            <author initials="J." surname="Ott" fullname="J. Ott">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Wenger" fullname="S. Wenger">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Sato" fullname="N. Sato">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Burmeister" fullname="C. Burmeister">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Rey" fullname="J. Rey">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="July"/>
            <abstract>
              <t indent="0">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="RFC5124" target="https://www.rfc-editor.org/info/rfc5124" quoteTitle="true" derivedAnchor="RFC5124">
          <front>
            <title>Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)</title>
            <author initials="J." surname="Ott" fullname="J. Ott">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Carrara" fullname="E. Carrara">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="February"/>
            <abstract>
              <t indent="0">An RTP profile (SAVP) for secure real-time communications and another profile (AVPF) to provide timely feedback from the receivers to a sender are defined in RFC 3711 and RFC 4585, respectively.  This memo specifies the combination of both profiles to enable secure RTP communications with feedback.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5124"/>
          <seriesInfo name="DOI" value="10.17487/RFC5124"/>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234" quoteTitle="true" derivedAnchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author initials="D." surname="Crocker" fullname="D. Crocker" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="Overell" fullname="P. Overell">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="January"/>
            <abstract>
              <t indent="0">Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC5506" target="https://www.rfc-editor.org/info/rfc5506" quoteTitle="true" derivedAnchor="RFC5506">
          <front>
            <title>Support for Reduced-Size Real-Time Transport Control Protocol (RTCP): Opportunities and Consequences</title>
            <author initials="I." surname="Johansson" fullname="I. Johansson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Westerlund" fullname="M. Westerlund">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2009" month="April"/>
            <abstract>
              <t indent="0">This memo discusses benefits and issues that arise when allowing Real-time Transport Protocol (RTCP) packets to be transmitted with reduced size.  The size can be reduced if the rules on how to create compound packets outlined in RFC 3550 are removed or changed.  Based on that analysis, this memo defines certain changes to the rules to allow feedback messages to be sent as Reduced-Size RTCP packets under certain conditions when using the RTP/AVPF (Real-time Transport Protocol / Audio-Visual Profile with Feedback) profile (RFC 4585). This document updates RFC 3550, RFC 3711, and RFC 4585.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5506"/>
          <seriesInfo name="DOI" value="10.17487/RFC5506"/>
        </reference>
        <reference anchor="RFC6679" target="https://www.rfc-editor.org/info/rfc6679" quoteTitle="true" derivedAnchor="RFC6679">
          <front>
            <title>Explicit Congestion Notification (ECN) for RTP over UDP</title>
            <author initials="M." surname="Westerlund" fullname="M. Westerlund">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="I." surname="Johansson" fullname="I. Johansson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="P." surname="O'Hanlon" fullname="P. O'Hanlon">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Carlberg" fullname="K. Carlberg">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2012" month="August"/>
            <abstract>
              <t indent="0">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="RFC8083" target="https://www.rfc-editor.org/info/rfc8083" quoteTitle="true" derivedAnchor="RFC8083">
          <front>
            <title>Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions</title>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Singh" fullname="V. Singh">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="March"/>
            <abstract>
              <t indent="0">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 indent="0">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="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t indent="0">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="RFC8843" target="https://www.rfc-editor.org/info/rfc8843" quoteTitle="true" derivedAnchor="RFC8843">
          <front>
            <title>Negotiating Media Multiplexing Using the Session Description Protocol (SDP)</title>
            <author initials="C" surname="Holmberg" fullname="Christer Holmberg">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H" surname="Alvestrand" fullname="Harald Alvestrand">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C" surname="Jennings" fullname="Cullen Jennings">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="January" year="2021"/>
          </front>
          <seriesInfo name="RFC" value="8843"/>
          <seriesInfo name="DOI" value="10.17487/RFC8843"/>
        </reference>
        <reference anchor="RFC8859" target="https://www.rfc-editor.org/info/rfc8859" quoteTitle="true" derivedAnchor="RFC8859">
          <front>
            <title>A Framework for Session Description Protocol (SDP) Attributes When Multiplexing</title>
            <author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="January" year="2021"/>
          </front>
          <seriesInfo name="RFC" value="8859"/>
          <seriesInfo name="DOI" value="10.17487/RFC8859"/>
        </reference>
      </references>
      <references pn="section-11.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="feedback-requirements" target="https://www.ietf.org/proceedings/95/slides/slides-95-rmcat-1.pdf" quoteTitle="true" derivedAnchor="feedback-requirements">
          <front>
            <title>RMCAT Feedback Requirements</title>
            <author>
              <organization showOnFrontPage="true"/>
            </author>
            <date month="April" year="2016"/>
          </front>
          <refcontent>IETF 95</refcontent>
        </reference>
        <reference anchor="Google-GCC" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-rmcat-gcc-02" derivedAnchor="Google-GCC">
          <front>
            <title>A Google Congestion Control Algorithm for Real-Time Communication</title>
            <author initials="S" surname="Holmer" fullname="Stefan Holmer">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H" surname="Lundin" fullname="Henrik Lundin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="G" surname="Carlucci" fullname="Gaetano Carlucci">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L" surname="De Cicco" fullname="Luca De Cicco">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S" surname="Mascolo" fullname="Saverio Mascolo">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="July" day="8" year="2016"/>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rmcat-gcc-02"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="RFC3611" target="https://www.rfc-editor.org/info/rfc3611" quoteTitle="true" derivedAnchor="RFC3611">
          <front>
            <title>RTP Control Protocol Extended Reports (RTCP XR)</title>
            <author initials="T." surname="Friedman" fullname="T. Friedman" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Caceres" fullname="R. Caceres" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Clark" fullname="A. Clark" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2003" month="November"/>
            <abstract>
              <t indent="0">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>
        <reference anchor="RFC5104" target="https://www.rfc-editor.org/info/rfc5104" quoteTitle="true" derivedAnchor="RFC5104">
          <front>
            <title>Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)</title>
            <author initials="S." surname="Wenger" fullname="S. Wenger">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="U." surname="Chandra" fullname="U. Chandra">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Westerlund" fullname="M. Westerlund">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B." surname="Burman" fullname="B. Burman">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="February"/>
            <abstract>
              <t indent="0">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 indent="0">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="RFC6843" target="https://www.rfc-editor.org/info/rfc6843" quoteTitle="true" derivedAnchor="RFC6843">
          <front>
            <title>RTP Control Protocol (RTCP) Extended Report (XR) Block for Delay Metric Reporting</title>
            <author initials="A." surname="Clark" fullname="A. Clark">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Gross" fullname="K. Gross">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Q." surname="Wu" fullname="Q. Wu">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="January"/>
            <abstract>
              <t indent="0">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="RFC8298" target="https://www.rfc-editor.org/info/rfc8298" quoteTitle="true" derivedAnchor="RFC8298">
          <front>
            <title>Self-Clocked Rate Adaptation for Multimedia</title>
            <author initials="I." surname="Johansson" fullname="I. Johansson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Z." surname="Sarker" fullname="Z. Sarker">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="December"/>
            <abstract>
              <t indent="0">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="RFC8382" target="https://www.rfc-editor.org/info/rfc8382" quoteTitle="true" derivedAnchor="RFC8382">
          <front>
            <title>Shared Bottleneck Detection for Coupled Congestion Control for RTP Media</title>
            <author initials="D." surname="Hayes" fullname="D. Hayes" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Ferlin" fullname="S. Ferlin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Welzl" fullname="M. Welzl">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K." surname="Hiorth" fullname="K. Hiorth">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2018" month="June"/>
            <abstract>
              <t indent="0">This document describes a mechanism to detect whether end-to-end data flows share a common bottleneck.  This mechanism relies on summary statistics that are calculated based on continuous measurements and used as input to a grouping algorithm that runs wherever the knowledge is needed.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8382"/>
          <seriesInfo name="DOI" value="10.17487/RFC8382"/>
        </reference>
        <reference anchor="RFC8698" target="https://www.rfc-editor.org/info/rfc8698" quoteTitle="true" derivedAnchor="RFC8698">
          <front>
            <title>Network-Assisted Dynamic Adaptation (NADA): A Unified Congestion Control Scheme for Real-Time Media</title>
            <author initials="X." surname="Zhu" fullname="X. Zhu">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Pan" fullname="R. Pan">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Ramalho" fullname="M. Ramalho">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Mena" fullname="S. Mena">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2020" month="February"/>
            <abstract>
              <t indent="0">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="I-D.ietf-rmcat-rtp-cc-feedback" quoteTitle="true" target="https://tools.ietf.org/html/draft-ietf-rmcat-rtp-cc-feedback-05" derivedAnchor="RTCP-Multimedia-Feedback">
          <front>
            <title>RTP Control Protocol (RTCP) Feedback for Congestion Control in Interactive Multimedia Conferences</title>
            <author fullname="Colin Perkins">
              <organization showOnFrontPage="true">University of Glasgow</organization>
            </author>
            <date month="November" day="4" year="2019"/>
            <abstract>
              <t indent="0">   This memo discusses the types of congestion control feedback that it
   is possible to send using the RTP Control Protocol (RTCP), and their
   suitability of use in implementing congestion control for unicast
   multimedia applications.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-rmcat-rtp-cc-feedback-05"/>
          <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-ietf-rmcat-rtp-cc-feedback-05.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
        <reference anchor="I-D.holmer-rmcat-transport-wide-cc-extensions" quoteTitle="true" target="https://tools.ietf.org/html/draft-holmer-rmcat-transport-wide-cc-extensions-01" derivedAnchor="RTP-Ext-for-CC">
          <front>
            <title>RTP Extensions for Transport-wide Congestion Control</title>
            <author fullname="Stefan Holmer">
	 </author>
            <author fullname="Magnus Flodman">
	 </author>
            <author fullname="Erik Sprang">
	 </author>
            <date month="October" day="19" year="2015"/>
            <abstract>
              <t indent="0">   This document proposes an RTP header extension and an RTCP message
   for use in congestion control algorithms for RTP-based media flows.
   It adds transport-wide packet sequence numbers and corresponding
   feedback message so that congestion control can be performed on a
   transport level at the send-side, while keeping the receiver dumb.


              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-holmer-rmcat-transport-wide-cc-extensions-01"/>
          <format type="TXT" target="https://www.ietf.org/internet-drafts/draft-holmer-rmcat-transport-wide-cc-extensions-01.txt"/>
          <refcontent>Work in Progress</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="Acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t indent="0" pn="section-appendix.a-1">This document is based on the outcome of a design team discussion
      in the RTP Media Congestion Avoidance Techniques (RMCAT) Working Group.
      The authors would like to thank
      <contact fullname="David Hayes"/>,
      <contact fullname="Stefan Holmer"/>,
      <contact fullname="Randell Jesup"/>,
      <contact fullname="Ingemar Johansson"/>,
      <contact fullname="Jonathan Lennox"/>,
      <contact fullname="Sergio Mena"/>,
      <contact fullname="Nils Ohlmeier"/>,
      <contact fullname="Magnus Westerlund"/>,
      and
      <contact fullname="Xiaoqing Zhu"/>
      for their valuable feedback.</t>
    </section>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Zaheduzzaman Sarker" initials="Z." surname="Sarker">
        <organization showOnFrontPage="true">Ericsson AB</organization>
        <address>
          <postal>
            <street>Torshamnsgatan 23</street>
            <city>Stockholm</city>
            <region/>
            <code>164 83</code>
            <country>Sweden</country>
          </postal>
          <phone>+46 10 717 37 43</phone>
          <email>zaheduzzaman.sarker@ericsson.com</email>
        </address>
      </author>
      <author fullname="Colin Perkins" initials="C." surname="Perkins">
        <organization showOnFrontPage="true">University of Glasgow</organization>
        <address>
          <postal>
            <street>School of Computing Science</street>
            <city>Glasgow</city>
            <code>G12 8QQ</code>
            <country>United Kingdom</country>
          </postal>
          <email>csp@csperkins.org</email>
        </address>
      </author>
      <author fullname="Varun Singh" initials="V." surname="Singh">
        <organization abbrev="callstats.io" showOnFrontPage="true">CALLSTATS I/O Oy</organization>
        <address>
          <postal>
            <street>Annankatu 31-33 C 42</street>
            <city>Helsinki</city>
            <code>00100</code>
            <country>Finland</country>
          </postal>
          <email>varun.singh@iki.fi</email>
          <uri>https://www.callstats.io/</uri>
        </address>
      </author>
      <author fullname="Michael A. Ramalho" initials="M." surname="Ramalho">
        <organization abbrev="AcousticComms" showOnFrontPage="true">AcousticComms Consulting</organization>
        <address>
          <postal>
            <street>6310 Watercrest Way Unit 203</street>
            <city>Lakewood Ranch</city>
            <region>FL</region>
            <code>34202-5122</code>
            <country>United States of America</country>
          </postal>
          <phone>+1 732 832 9723</phone>
          <email>mar42@cornell.edu</email>
          <uri>http://ramalho.webhop.info/</uri>
        </address>
      </author>
    </section>
  </back>
</rfc>
