<?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-rtp-multi-stream-optimisation-12" indexInclude="true" ipr="trust200902" number="8861" prepTime="2021-01-18T14:17:26" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-avtcore-rtp-multi-stream-optimisation-12" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8861" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title abbrev="Grouping RTCP Reception Statistics">Sending Multiple RTP Streams in a Single RTP Session: Grouping RTP Control Protocol (RTCP) Reception Statistics and Other Feedback</title>
    <seriesInfo name="RFC" value="8861" stream="IETF"/>
    <author fullname="Jonathan Lennox" initials="J." surname="Lennox">
      <organization abbrev="8x8 / Jitsi" showOnFrontPage="true">8x8, Inc. / Jitsi</organization>
      <address>
        <postal>
          <city>Jersey City</city>
          <region>NJ</region>
          <code>07302</code>
          <country>United States of America</country>
        </postal>
        <email>jonathan.lennox@8x8.com</email>
      </address>
    </author>
    <author fullname="Magnus Westerlund" initials="M." surname="Westerlund">
      <organization showOnFrontPage="true">Ericsson</organization>
      <address>
        <postal>
          <street>Torshamnsgatan 23</street>
          <city>Kista</city>
          <code>164 80</code>
          <country>Sweden</country>
        </postal>
        <email>magnus.westerlund@ericsson.com</email>
      </address>
    </author>
    <author fullname="Qin Wu" initials="Q." surname="Wu">
      <organization showOnFrontPage="true">Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Nanjing, Jiangsu 210012</city>
          <country>China</country>
        </postal>
        <email>bill.wu@huawei.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>
    <date month="01" year="2021"/>
    <keyword>RGRP</keyword>
    <keyword>SDES</keyword>
    <keyword>XR</keyword>
    <keyword>Reporting</keyword>
    <keyword>Group</keyword>
    <abstract pn="section-abstract">
      <t indent="0" pn="section-abstract-1">RTP allows multiple RTP streams to be sent in a single session but
      requires each Synchronization Source (SSRC) to send RTP Control Protocol
      (RTCP)
      reception quality reports for every other SSRC visible in the session. This causes
      the number of RTCP reception reports to grow with the number of SSRCs,
      rather than the number of endpoints. In many cases, most of these RTCP
      reception reports are unnecessary, since all SSRCs of an endpoint are
      normally co-located and see the same reception quality. This memo
      defines a Reporting Group extension to RTCP to reduce the reporting
      overhead in such scenarios.</t>
    </abstract>
    <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/rfc8861" 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-reporting-groups">RTCP Reporting Groups</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-semantics-and-behavior-of-r">Semantics and Behavior of RTCP Reporting Groups</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.2">
                <t indent="0" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-identifying-members-of-an-r">Identifying Members of an RTCP Reporting Group</xref></t>
                <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.3.2.2.2">
                  <li pn="section-toc.1-1.3.2.2.2.1">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.1.1"><xref derivedContent="3.2.1" format="counter" sectionFormat="of" target="section-3.2.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-definition-and-use-of-the-r">Definition and Use of the RTCP RGRP SDES Item</xref></t>
                  </li>
                  <li pn="section-toc.1-1.3.2.2.2.2">
                    <t indent="0" pn="section-toc.1-1.3.2.2.2.2.1"><xref derivedContent="3.2.2" format="counter" sectionFormat="of" target="section-3.2.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-definition-and-use-of-the-rt">Definition and Use of the RTCP RGRS Packet</xref></t>
                  </li>
                </ul>
              </li>
              <li pn="section-toc.1-1.3.2.3">
                <t indent="0" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interactions-with-the-rtp-a">Interactions with the RTP/AVPF Feedback Profile</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.4">
                <t indent="0" pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-interactions-with-rtcp-exte">Interactions with RTCP Extended Report (XR) Packets</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.5">
                <t indent="0" pn="section-toc.1-1.3.2.5.1"><xref derivedContent="3.5" format="counter" sectionFormat="of" target="section-3.5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-middlebox-considerations">Middlebox Considerations</xref></t>
              </li>
              <li pn="section-toc.1-1.3.2.6">
                <t indent="0" pn="section-toc.1-1.3.2.6.1"><xref derivedContent="3.6" format="counter" sectionFormat="of" target="section-3.6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-sdp-signaling-for-reporting">SDP Signaling for Reporting Groups</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-properties-of-rtcp-reportin">Properties of RTCP Reporting Groups</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.4.2">
              <li pn="section-toc.1-1.4.2.1">
                <t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-bandwidth-benefits-of-rtcp-">Bandwidth Benefits of RTCP Reporting Groups</xref></t>
              </li>
              <li pn="section-toc.1-1.4.2.2">
                <t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-compatibility-of-rtcp-repor">Compatibility of RTCP Reporting Groups</xref></t>
              </li>
            </ul>
          </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-security-considerations">Security Considerations</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-iana-considerations">IANA Considerations</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-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.7.2">
              <li pn="section-toc.1-1.7.2.1">
                <t indent="0" pn="section-toc.1-1.7.2.1.1"><xref derivedContent="7.1" format="counter" sectionFormat="of" target="section-7.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.7.2.2">
                <t indent="0" pn="section-toc.1-1.7.2.2.1"><xref derivedContent="7.2" format="counter" sectionFormat="of" target="section-7.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.8">
            <t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t indent="0" pn="section-1-1">The Real-time Transport Protocol (RTP) <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/> is a
      protocol for group communication, supporting multiparty multimedia
      sessions. A single RTP session can support multiple participants sending
      data at once and can also support participants sending multiple simultaneous
      RTP streams. Examples of the latter might include a participant with
      multiple cameras who chooses to send multiple views of a scene, or a
      participant that sends audio and video flows multiplexed in a single RTP
      session. Rules for handling RTP sessions containing multiple RTP streams
      are described in <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>, with some clarifications in
      <xref target="RFC8108" format="default" sectionFormat="of" derivedContent="RFC8108"/>.</t>
      <t indent="0" pn="section-1-2">An RTP endpoint will have one or more Synchronization Sources
      (SSRCs). It will have at least one RTP stream, and thus at least one SSRC, for each
      media source it sends, and it might use multiple SSRCs per media source
      when using <xref target="RFC6190" format="default" sectionFormat="of" derivedContent="RFC6190">media scalability features</xref>,
      forward error correction, <xref target="RFC4588" format="default" sectionFormat="of" derivedContent="RFC4588">RTP
      retransmission</xref>, or similar mechanisms. An endpoint that is not
      sending any RTP streams will have at least one SSRC to use for reporting
      and any feedback messages. Each SSRC has to send RTP Control Protocol
      (RTCP) Sender Reports (SRs) corresponding to the RTP packets it sends
      and Receiver Reports (RRs) for traffic it receives. (SRs and RRs are
      described in <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>.) That is, every SSRC will send RTCP packets to
      report on every other SSRC. This rule is simple, but it can be quite
      inefficient for endpoints that send large numbers of RTP streams in a
      single RTP session. Consider a session comprising ten participants, each
      sending three media sources, each media source associated with its own RTP stream. There will
      be 30 SSRCs in such an RTP session, and each of those 30 SSRCs will send
      an RTCP SR/RR packet (containing several report
      blocks) per reporting interval as each SSRC reports on all the others.
      However, the three SSRCs comprising each participant are commonly
      co-located such that they see identical reception quality. If there was
      a way to indicate that several SSRCs are co-located and see the same
      reception quality, then two-thirds of those RTCP reports could be
      suppressed. This would allow the remaining RTCP reports to be sent more
      often, while keeping within the same RTCP bandwidth fraction.</t>
      <t indent="0" pn="section-1-3">This memo defines such an RTCP extension: RTCP Reporting Groups. This
      extension is used to indicate the SSRCs that originate from the same
      endpoint and therefore have identical reception quality, hence allowing
      the endpoints to suppress unnecessary RTCP reception quality
      reports.</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>
    </section>
    <section anchor="reportgroups" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-rtcp-reporting-groups">RTCP Reporting Groups</name>
      <t indent="0" pn="section-3-1">An RTCP Reporting Group is a set of SSRCs that are co‑located at a single endpoint (which could be an end host or
      a middlebox) in an RTP session. Since they are co-located, every SSRC in
      the RTCP Reporting Group will have an identical view of the network
      conditions and will see the same lost packets, jitter, etc. This allows a
      single representative to send RTCP reception quality reports on behalf
      of the rest of the Reporting Group, reducing the number of RTCP packets
      that need to be sent without loss of information.</t>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.1">
        <name slugifiedName="name-semantics-and-behavior-of-r">Semantics and Behavior of RTCP Reporting Groups</name>
        <t indent="0" pn="section-3.1-1">A group of co-located SSRCs that see identical network conditions
        can form an RTCP Reporting Group. If Reporting Groups are in use, an
        RTP endpoint with multiple SSRCs <bcp14>MAY</bcp14> put those SSRCs into a Reporting
        Group if their view of the network is identical, i.e., if they report
        on traffic received at the same interface of an RTP endpoint. SSRCs
        with different views of the network <bcp14>MUST NOT</bcp14> be put into the same
        Reporting Group.</t>
        <t indent="0" pn="section-3.1-2">An endpoint that has combined its SSRCs into an RTCP Reporting
        Group will choose one (or a subset) of those SSRCs to act as
        "reporting source(s)" for that RTCP Reporting Group. A reporting
        source will send RTCP SR/RR reception quality reports on behalf of the
        other members of the RTCP Reporting Group. A reporting source <bcp14>MUST</bcp14>
        suppress the RTCP SR/RR reports that relate to other members of the
        Reporting Group and only report on remote SSRCs. The other members
        (non-reporting sources) of the RTCP Reporting Group will suppress
        their RTCP reception quality reports and will instead send an
        RTCP Reporting Group Reporting Sources (RGRS)
        packet (see <xref target="sec-rgrs" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/>) to indicate that they are part
        of an RTCP Reporting Group and give the SSRCs of the reporting
        sources.</t>
        <t indent="0" pn="section-3.1-3">If there are large numbers of remote SSRCs in the RTP session, then
        the reception quality reports generated by the reporting source might
        grow too large to fit into a single compound RTCP packet, forcing the
        reporting source to use a round-robin policy to determine what remote
        SSRCs it includes in each compound RTCP packet, and so reducing the
        frequency of reports on each SSRC. To avoid this, in sessions with
        large numbers of remote SSRCs, an RTCP Reporting Group <bcp14>MAY</bcp14> use more
        than one reporting source. If several SSRCs are acting as reporting
        sources for an RTCP Reporting Group, then each reporting source <bcp14>MUST</bcp14>
        have non-overlapping sets of remote SSRCs it reports on.</t>
        <t indent="0" pn="section-3.1-4">An endpoint <bcp14>MUST NOT</bcp14> create an RTCP Reporting Group that comprises
        only a single local SSRC (i.e., an RTCP Reporting Group where the
        reporting source is the only member of the group), unless it is
        anticipated that the group might have additional SSRCs added to it in
        the future.</t>
        <t indent="0" pn="section-3.1-5">If a reporting source leaves the RTP session (i.e., if it sends an
        RTCP BYE packet or it leaves the session without sending a BYE
        according to the
        rules of <xref target="RFC3550" sectionFormat="comma" section="6.3.7" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3550#section-6.3.7" derivedContent="RFC3550"/>), the remaining
        members of the RTCP Reporting Group <bcp14>MUST</bcp14> (a) have another
        reporting source -- if one exists -- report on the remote SSRCs that
        the leaving SSRC had reported on, (b) choose a new reporting source, or (c) disband the RTCP Reporting Group and begin sending reception quality
        reports per <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/> and <xref target="RFC8108" format="default" sectionFormat="of" derivedContent="RFC8108"/>.</t>
        <t indent="0" pn="section-3.1-6">The RTCP timing rules assign different bandwidth fractions to
        senders and receivers. This lets senders transmit RTCP reception
        quality reports more often than receivers. If a reporting source in an
        RTCP Reporting Group is a receiver but one or more non-reporting
        SSRCs in the RTCP Reporting Group are senders, then the endpoint <bcp14>MAY</bcp14>
        treat the reporting source as a sender for the purpose of RTCP
        bandwidth allocation, increasing its RTCP bandwidth allocation,
        provided it also treats one of the senders as if it were a receiver
        and makes the corresponding reduction in RTCP bandwidth for that SSRC.
        However, the application needs to consider the impact on the frequency
        of transmitting of the synchronization information included in RTCP SRs.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.2">
        <name slugifiedName="name-identifying-members-of-an-r">Identifying Members of an RTCP Reporting Group</name>
        <t indent="0" pn="section-3.2-1">When RTCP Reporting Groups are in use, the other SSRCs in the RTP
        session need to be able to identify which SSRCs are members of an RTCP
        Reporting Group. Two RTCP extensions are defined to support this: the
        RTCP Reporting Group (RGRP) Source Description (SDES) item is used by the reporting source(s) to identify an
        RTCP Reporting Group, and the RTCP RGRS packet is used by other
        members of an RTCP Reporting Group to identify the reporting
        source(s).</t>
        <section anchor="sec-rgrp" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.1">
          <name slugifiedName="name-definition-and-use-of-the-r">Definition and Use of the RTCP RGRP SDES Item</name>
          <t indent="0" pn="section-3.2.1-1">This document defines a new RTCP RGRP SDES item to identify an RTCP
          Reporting Group. The motivation for giving a Reporting Group an
          identifier is to ensure that (1) the RTCP Reporting Group and its member
          SSRCs can be correctly associated when there are multiple reporting
          sources and (2) a reporting SSRC can be associated with
          the correct Reporting Group if an SSRC collision occurs.</t>
          <t indent="0" pn="section-3.2.1-2">This document defines the RTCP RGRP SDES item.
 The RTCP RGRP SDES item <bcp14>MUST</bcp14> be sent by the reporting sources
          in a Reporting Group and <bcp14>MUST NOT</bcp14> be sent by other members of the
          Reporting Group or by SSRCs that are not members of any RTCP
          Reporting Group. Specifically, every reporting source in an RTCP
          Reporting Group <bcp14>MUST</bcp14> include an RTCP SDES packet containing an RGRP
          item in every compound RTCP packet in which it sends an RR or SR
          packet (i.e., in every RTCP packet it sends, unless <xref target="RFC5506" format="default" sectionFormat="of" derivedContent="RFC5506">Reduced-Size RTCP</xref> is in use).</t>
          <t indent="0" pn="section-3.2.1-3">Syntactically, the format of the RTCP RGRP SDES item is identical
          to that of the <xref target="RFC7022" format="default" sectionFormat="of" derivedContent="RFC7022">RTCP SDES CNAME item</xref>,
          except that the SDES item type field <bcp14>MUST</bcp14> have value RGRP=11
          instead of CNAME=1. The value of the RTCP RGRP SDES item <bcp14>MUST</bcp14> be
          chosen with the same concerns about global uniqueness and the same
          privacy considerations as the RTCP SDES CNAME. The value of the RTCP
          RGRP SDES item <bcp14>MUST</bcp14> be stable throughout the lifetime of the
          Reporting Group, even if some or all of the reporting sources change
          their SSRC due to collisions or if the set of reporting sources
          changes.</t>
          <t indent="0" pn="section-3.2.1-4">An RTP mixer or translator that forwards RTCP SR or RR packets
          from members of a Reporting Group <bcp14>MUST</bcp14> forward the corresponding
          RTCP RGRP SDES items as well, even if it otherwise strips SDES items
          other than the CNAME item.</t>
        </section>
        <section anchor="sec-rgrs" numbered="true" toc="include" removeInRFC="false" pn="section-3.2.2">
          <name slugifiedName="name-definition-and-use-of-the-rt">Definition and Use of the RTCP RGRS Packet</name>
          <t indent="0" pn="section-3.2.2-1">A new RTCP packet type is defined to allow the members of an RTCP
          Reporting Group to identify the reporting sources for that group.
          This allows participants in an RTP session to distinguish an SSRC
          that is sending empty RTCP reception reports because it is a member
          of an RTCP Reporting Group from an SSRC that is sending empty RTCP
          reception reports because it is not receiving any traffic. It also
          explicitly identifies the reporting sources, allowing other members
          of the RTP session to (1) know which SSRCs are acting as the reporting
          sources for an RTCP Reporting Group and (2) detect if
          RTCP packets from any of the reporting sources are being lost.</t>
          <t indent="0" pn="section-3.2.2-2">The format of the RTCP RGRS packet is defined below. It comprises
          the fixed RTCP header that indicates the packet type and length, the
          SSRC of the packet sender, and a list of reporting sources for the
          RTCP Reporting Group of which the packet sender is a member.</t>
          <artwork name="" type="" align="left" alt="" pn="section-3.2.2-3">
 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|    SC   | PT=RGRS(212)  |             length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                     SSRC of packet sender                     |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
:          List of SSRC(s) for the Reporting Source(s)          :
:                              ...                              :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>
          <t indent="0" pn="section-3.2.2-4">The fields in the RTCP RGRS packet have the following definitions:
          </t>
          <dl newline="false" spacing="normal" indent="3" pn="section-3.2.2-5">
            <dt pn="section-3.2.2-5.1">version (V):</dt>
            <dd pn="section-3.2.2-5.2">2-bit unsigned integer. This field
              identifies the RTP version. The current RTP version is 2.</dd>
            <dt pn="section-3.2.2-5.3">padding (P):</dt>
            <dd pn="section-3.2.2-5.4">1 bit. If set, the padding bit
              indicates that the RTCP packet contains additional padding
              octets at the end that are not part of the control information
              but are included in the length field. See <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>.</dd>
            <dt pn="section-3.2.2-5.5">Source Count (SC):</dt>
            <dd pn="section-3.2.2-5.6">5-bit unsigned integer.
              Indicates the number of reporting source SSRCs that are included
              in this RTCP packet. As the RTCP RGRS packet <bcp14>MUST NOT</bcp14> be sent by reporting sources, all the SSRCs in the list of
              reporting sources will be different from the SSRC of the packet
              sender. Every RTCP RGRS packet <bcp14>MUST</bcp14> contain at least one
              reporting source SSRC.</dd>
            <dt pn="section-3.2.2-5.7">Payload type (PT):</dt>
            <dd pn="section-3.2.2-5.8">
              <t indent="0" pn="section-3.2.2-5.8.1">8-bit unsigned integer. The
              RTCP packet type number that identifies the packet as being an
              RTCP RGRS packet. The RGRS RTCP packet has the value 212.
              </t>
            </dd>
            <dt pn="section-3.2.2-5.9">Length:</dt>
            <dd pn="section-3.2.2-5.10">16-bit unsigned integer. The length of
              this packet in 32-bit words minus one, including the header and
              any padding. This is in line with the definition of the length
              field used in RTCP SRs and RRs <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>. Since all RTCP RGRS packets include at least
              one reporting source SSRC, the length will always be 2 or
              greater.</dd>
            <dt pn="section-3.2.2-5.11">SSRC of packet sender:</dt>
            <dd pn="section-3.2.2-5.12">32 bits. The SSRC of the
              sender of this packet.</dd>
            <dt pn="section-3.2.2-5.13">List of SSRCs for the Reporting Source(s):</dt>
            <dd pn="section-3.2.2-5.14">A variable number (as indicated by the SC header field) of
              32‑bit SSRC values of the reporting sources for the 
RTCP Reporting Group of which the packet sender is a member.</dd>
          </dl>
          <t indent="0" pn="section-3.2.2-6">Every source that belongs to an RTCP Reporting Group but is not a
          reporting source <bcp14>MUST</bcp14> include an RTCP RGRS packet in every compound
          RTCP packet in which it sends an RR or SR packet (i.e., in every
          RTCP packet it sends, unless <xref target="RFC5506" format="default" sectionFormat="of" derivedContent="RFC5506"> Reduced-Size
          RTCP</xref> is in use). Each RTCP RGRS packet <bcp14>MUST</bcp14> contain the SSRC
          identifier of at least one reporting source. If there are more
          reporting sources in an RTCP Reporting Group than can fit into an
          RTCP RGRS packet, the members of that Reporting Group <bcp14>MUST</bcp14> send the
          SSRCs of the reporting sources in a round-robin fashion in
          consecutive RTCP RGRS packets, such that all the SSRCs of the
          reporting sources are included over the course of several RTCP
          reporting intervals.</t>
          <t indent="0" pn="section-3.2.2-7">An RTP mixer or translator that forwards RTCP SR or RR packets
          from members of a Reporting Group <bcp14>MUST</bcp14> also forward the
          corresponding RGRS RTCP packets. If the RTP mixer or translator
          rewrites SSRC values of the packets it forwards, it <bcp14>MUST</bcp14> make the
          corresponding changes to the RTCP RGRS packets.</t>
        </section>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.3">
        <name slugifiedName="name-interactions-with-the-rtp-a">Interactions with the RTP/AVPF Feedback Profile</name>
        <t indent="0" pn="section-3.3-1">The use of the RTP/AVPF Feedback Profile <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/>
        allows SSRCs to send rapid RTCP feedback requests and codec control
        messages. If the use of the RTP/AVPF profile has been negotiated in an RTP
        session, members of an RTCP Reporting Group can send rapid RTCP
        feedback and codec control messages per <xref target="RFC5104" format="default" sectionFormat="of" derivedContent="RFC5104"/>, per <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/>
        as updated by <xref target="RFC8108" sectionFormat="of" section="5.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8108#section-5.4" derivedContent="RFC8108"/>, and by the following considerations.</t>
        <t indent="0" pn="section-3.3-2">The members of an RTCP Reporting Group will all see identical
        network conditions. Accordingly, one might therefore think that it
        doesn't matter which SSRC in the Reporting Group sends the RTP/AVPF
        feedback or codec control messages. There might be, however, cases
        where the sender of the feedback/codec control message has semantic
        importance, or when only a subset of the members of an RTCP Reporting
        Group might want to send RTP/AVPF feedback or a codec control message
        in response to a particular event. For example, an RTP video sender
        might choose to treat packet loss feedback received from SSRCs known
        to be audio receivers with less urgency than feedback that it receives
        from video receivers when deciding what packets to retransmit, and a
        multimedia receiver using Reporting Groups might want to choose the
        outgoing SSRC for feedback packets to reflect this.</t>
        <t indent="0" pn="section-3.3-3">Each member of an RTCP Reporting Group <bcp14>SHOULD</bcp14> therefore send
        RTP/AVPF feedback/codec control messages independently of the other
        members of the Reporting Group, to respect the semantic meaning of the
        message sender. The suppression rules of <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/> will
        ensure that only a single copy of each feedback packet is (typically)
        generated, even if several members of a Reporting Group send the same
        feedback. When an endpoint knows that several members of its RTCP
        Reporting Group will be sending identical feedback and that the
        sender of the feedback is not semantically important, that
        endpoint <bcp14>MAY</bcp14> choose to send all its feedback from the reporting source
        and deterministically suppress feedback packets generated by the other
        sources in the Reporting Group.</t>
        <t indent="0" pn="section-3.3-4">It is important to note that the RTP/AVPF timing rules operate on a
        per-SSRC basis. Using a single reporting source to send all feedback
        for a Reporting Group will hence limit the amount of feedback that can
        be sent to that which can be sent by one SSRC. If this limit is a
        problem, then the Reporting Group can allow each of its members to
        send its own feedback, using its own SSRC.</t>
        <t indent="0" pn="section-3.3-5">If the RTP/AVPF feedback messages or codec control requests are
        sent as compound RTCP packets, then those compound RTCP packets <bcp14>MUST</bcp14>
        include either an RTCP RGRS packet or an RTCP RGRP SDES item,
        depending on whether they are sent by the reporting source or a
        non‑reporting source in the RTCP Reporting Group, respectively. The
        contents of noncompound RTCP feedback or codec control messages are
        not affected by the use of RTCP Reporting Groups.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.4">
        <name slugifiedName="name-interactions-with-rtcp-exte">Interactions with RTCP Extended Report (XR) Packets</name>
        <t indent="0" pn="section-3.4-1">When using RTCP Extended Report (XR) packets <xref target="RFC3611" format="default" sectionFormat="of" derivedContent="RFC3611"/> with
        RTCP Reporting Groups, it is <bcp14>RECOMMENDED</bcp14> that the reporting source be
        used to send the RTCP XR packets. If multiple reporting sources are in
        use, the reporting source that sends the SR/RR packets that relate to
        a particular remote SSRC <bcp14>SHOULD</bcp14> send the RTCP XR reports about that
        SSRC. This is motivated as one commonly combine the RTCP XR metrics
        with the regular report block to more fully understand the situation.
        Receiving these blocks in different compound packets reduces their
        value, as the measuring intervals are not synchronized in those
        cases.</t>
        <t indent="0" pn="section-3.4-2">Some RTCP XR report blocks are specific to particular types of
        media and might be relevant to only some members of a Reporting
        Group. For example, it would make no sense for an SSRC that is
        receiving video to send a Voice over IP (VoIP) metric RTCP XR report block. Such
        media-specific RTCP XR report blocks <bcp14>MUST</bcp14> be sent by the SSRC to which they
        are relevant and <bcp14>MUST NOT</bcp14> be included in the common report sent by
        the reporting source. This might mean that some SSRCs send RTCP XR
        packets in compound RTCP packets that contain an empty RTCP SR/RR
        packet and that the time period covered by the RTCP XR packet is
        different from that covered by the RTCP SR/RR packet. If it is important
        that the RTCP XR packet and RTCP SR/RR packet cover the same time
        period, then that source <bcp14>SHOULD</bcp14> be removed from the RTCP Reporting
        Group, and standard RTCP packets be sent instead.</t>
      </section>
      <section numbered="true" toc="include" removeInRFC="false" pn="section-3.5">
        <name slugifiedName="name-middlebox-considerations">Middlebox Considerations</name>
        <t indent="0" pn="section-3.5-1">Many different types of middleboxes are used with RTP. RTCP Reporting
        Groups are potentially relevant to those types of RTP middleboxes that
        have their own SSRCs and generate RTCP reports for the traffic they
        receive. RTP middleboxes that do not have their own SSRC and that do not
        send RTCP reports on the traffic they receive cannot use the
        RTCP Reporting Group extension, since they generate no RTCP reports
        to that group.</t>
        <t indent="0" pn="section-3.5-2">An RTP middlebox that has several SSRCs of its own can use the RTCP
        Reporting Group extension to group the RTCP reports it generates.
        This can occur, for example, if a middlebox is acting as an RTP mixer
        for both audio and video flows that are multiplexed onto a single RTP
        session, where the middlebox has one SSRC for the audio mixer and one
        for the video mixer part, and when the middlebox wants to avoid
        cross-reporting between audio and video.</t>
        <t indent="0" pn="section-3.5-3">A middlebox cannot use the RTCP Reporting Group extension to group
        RTCP packets from the SSRCs that it is forwarding. It can, however,
        group the RTCP packets from the SSRCs it is forwarding into compound
        RTCP packets, following the rules in <xref target="RFC3550" sectionFormat="of" section="6.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3550#section-6.1" derivedContent="RFC3550"/> and <xref target="RFC8108" sectionFormat="of" section="5.3" format="default" derivedLink="https://rfc-editor.org/rfc/rfc8108#section-5.3" derivedContent="RFC8108"/>. If the middlebox is
        using RTCP Reporting Groups for its own SSRCs, it <bcp14>MAY</bcp14> include RTCP
        packets from the SSRCs that it is forwarding as part of the compound
        RTCP packets its reporting source generates.</t>
        <t indent="0" pn="section-3.5-4">A middlebox that forwards RTCP SR or RR packets sent by members of
        a Reporting Group <bcp14>MUST</bcp14> forward the corresponding RTCP
        RGRP SDES items,
        as described in <xref target="sec-rgrp" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/>. A middlebox that forwards
        RTCP SR or RR packets sent by members of a Reporting Group <bcp14>MUST</bcp14> also
        forward the corresponding RTCP RGRS packets, as described in <xref target="sec-rgrs" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/>. Failure to forward these packets can cause
        compatibility problems, as described in <xref target="compat" format="default" sectionFormat="of" derivedContent="Section 4.2"/>.</t>
        <t indent="0" pn="section-3.5-5">If a middlebox rewrites SSRC values in the RTP and RTCP packets
        that it is forwarding, then it <bcp14>MUST</bcp14> make the corresponding changes in
        RTCP SDES packets containing RGRP items and in RTCP RGRS packets, to
        allow them to be associated with the rewritten SSRCs.</t>
      </section>
      <section anchor="sdp" numbered="true" toc="include" removeInRFC="false" pn="section-3.6">
        <name slugifiedName="name-sdp-signaling-for-reporting">SDP Signaling for Reporting Groups</name>
        <t indent="0" pn="section-3.6-1">This document defines the "a=rtcp-rgrp" <xref target="RFC4566" format="default" sectionFormat="of" derivedContent="RFC4566">Session Description Protocol (SDP)</xref> attribute
        to indicate if the session participant is capable of supporting RTCP
        Reporting Groups for applications that use SDP for configuration of
        RTP sessions. It is a property attribute and hence takes no value.
        The <xref target="RFC8859" format="default" sectionFormat="of" derivedContent="RFC8859">multiplexing
        category</xref> is IDENTICAL, as the functionality applies at the RTP
        session level. A participant that proposes the use of RTCP Reporting
        Groups <bcp14>SHALL</bcp14> itself support the reception of RTCP Reporting Groups.
        The formal definition of this attribute is as follows:</t>
        <ul empty="true" bare="false" indent="3" spacing="normal" pn="section-3.6-2">
          <li pn="section-3.6-2.1">
            <dl spacing="compact" indent="3" newline="false" pn="section-3.6-2.1.1">
              <dt pn="section-3.6-2.1.1.1">Name:</dt>
              <dd pn="section-3.6-2.1.1.2">rtcp-rgrp</dd>
              <dt pn="section-3.6-2.1.1.3">Value:</dt>
              <dd pn="section-3.6-2.1.1.4">None</dd>
              <dt pn="section-3.6-2.1.1.5">Usage Level:</dt>
              <dd pn="section-3.6-2.1.1.6">session, media</dd>
              <dt pn="section-3.6-2.1.1.7">Charset Dependent:</dt>
              <dd pn="section-3.6-2.1.1.8">no</dd>
              <dt pn="section-3.6-2.1.1.9">Example:</dt>
              <dd pn="section-3.6-2.1.1.10">a=rtcp-rgrp</dd>
            </dl>
          </li>
        </ul>
        <t indent="0" pn="section-3.6-3">When using SDP Offer/Answer <xref target="RFC3264" format="default" sectionFormat="of" derivedContent="RFC3264"/>, the following
        procedures are to be used: </t>
        <dl newline="true" spacing="normal" indent="3" pn="section-3.6-4">
          <dt pn="section-3.6-4.1">Generating the initial SDP offer:</dt>
          <dd pn="section-3.6-4.2">If the offerer supports the
            RTCP Reporting Group extensions and is willing to accept RTCP
            packets containing those extensions, then it <bcp14>MUST</bcp14> include an
            "a=rtcp-rgrp" attribute in the initial offer. If the offerer does
            not support RTCP Reporting Group extensions or is not willing to
            accept RTCP packets containing those extensions, then it <bcp14>MUST NOT</bcp14>
            include the "a=rtcp-rgrp" attribute in the offer.</dd>
          <dt pn="section-3.6-4.3">Generating the SDP answer:</dt>
          <dd pn="section-3.6-4.4">If the SDP offer contains an
            "a=rtcp‑rgrp" attribute, and if the answerer supports RTCP
            Reporting Groups and is willing to receive RTCP packets using the
            RTCP Reporting Group extensions, then the answerer <bcp14>MAY</bcp14> include an
            "a=rtcp-rgrp" attribute in the answer and <bcp14>MAY</bcp14> send RTCP packets
            containing the RTCP Reporting Group extensions. If the offer does
            not contain an "a=rtcp-rgrp" attribute, or if the offer does
            contain such an attribute but the answerer does not wish to accept
            RTCP packets using the RTCP Reporting Group extensions, then the
            answer <bcp14>MUST NOT</bcp14> include an "a=rtcp-rgrp" attribute.</dd>
          <dt pn="section-3.6-4.5">Offerer processing of the SDP answer:</dt>
          <dd pn="section-3.6-4.6">If the SDP answer
            contains an "a=rtcp-rgrp" attribute and the corresponding offer
            also contained an "a=rtcp-rgrp" attribute, then the offerer <bcp14>MUST</bcp14>
            be prepared to accept and process RTCP packets that contain the
            Reporting Group extensions and <bcp14>MAY</bcp14> send RTCP packets that contain
            the Reporting Group extensions. If the SDP answer contains an
            "a=rtcp-rgrp" attribute but the corresponding offer did not
            contain the "a=rtcp‑rgrp" attribute, then the offerer <bcp14>MUST</bcp14> reject
            the call. If the SDP answer does not contain an "a=rtcp-rgrp"
            attribute, then the offerer <bcp14>MUST NOT</bcp14> send packets containing the
            RTCP Reporting Group extensions and does not need to process
            packets containing the RTCP Reporting Group extensions.</dd>
        </dl>
        <t indent="0" pn="section-3.6-5">In declarative usage of SDP, such as the <xref target="RFC7826" format="default" sectionFormat="of" derivedContent="RFC7826">Real-Time Streaming Protocol (RTSP)</xref> and the
        <xref target="RFC2974" format="default" sectionFormat="of" derivedContent="RFC2974">Session Announcement Protocol (SAP)</xref>, the
        presence of the attribute indicates that the session participant <bcp14>MAY</bcp14>
        use RTCP Reporting Groups in its RTCP transmissions. An implementation
        that doesn't explicitly support RTCP Reporting Groups <bcp14>MAY</bcp14> join an RTP
        session as long as it has been verified that the implementation
        doesn't suffer from the problems discussed in <xref target="compat" format="default" sectionFormat="of" derivedContent="Section 4.2"/>.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-properties-of-rtcp-reportin">Properties of RTCP Reporting Groups</name>
      <t indent="0" pn="section-4-1">This section provides additional information on what the resulting
      properties are (i.e., resulting effects or impacts) as related to the design specified in <xref target="reportgroups" format="default" sectionFormat="of" derivedContent="Section 3"/>. The content of this section is
      non-normative.</t>
      <section anchor="reportgroups-bw" numbered="true" toc="include" removeInRFC="false" pn="section-4.1">
        <name slugifiedName="name-bandwidth-benefits-of-rtcp-">Bandwidth Benefits of RTCP Reporting Groups</name>
        <t indent="0" pn="section-4.1-1">To understand the benefits of RTCP Reporting Groups, consider a
        scenario in which the two endpoints in a session each have a hundred
        sources, of which eight each are sending within any given reporting
        interval.</t>
        <t indent="0" pn="section-4.1-2">For ease of analysis, we can make the simplifying approximation
        that the duration of the RTCP reporting interval is equal to the total
        size of the RTCP packets sent during an RTCP interval, divided by the
        RTCP bandwidth. (This will be approximately true in scenarios where
        the bandwidth is not so high that the minimum RTCP interval is
        reached.) To further simplify, we can assume that RTCP senders are
        following the recommendations regarding compound RTCP packets in <xref target="RFC8108" format="default" sectionFormat="of" derivedContent="RFC8108"/>; thus, the per-packet
        transport-layer overhead will be small relative to the RTCP data.
        Thus, only the actual RTCP data itself need be considered.</t>
        <t indent="0" pn="section-4.1-3">In a report interval in this scenario, there will, as a baseline,
        be 200 SDES packets, 184 RR packets, and 16 SR packets. This amounts
        to approximately 6.5 KB of RTCP packets per report interval, assuming 16-byte
        CNAMEs and no other SDES information.</t>
        <t indent="0" pn="section-4.1-4">Using the original "everyone reports on every sender" feedback rules
        <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/>, each of the 184
        receivers will send 16 report blocks, and each of the 16 senders will
        send 15. This amounts to approximately 76 KB of report block traffic
        per interval; 92% of RTCP traffic consists of report blocks.</t>
        <t indent="0" pn="section-4.1-5">If Reporting Groups are used, however, there is only 0.4 KB of
        reports per interval, with no loss of useful information.
        Additionally, there will be (assuming 16-byte RGRPs and a single
        reporting source per Reporting Group) an additional 2.4 KB per cycle
        of RTCP RGRP SDES items and RGRS packets. Put another way, the unmodified
        reporting interval per <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/> is approximately 9 times
        longer than if Reporting Groups are in use.</t>
      </section>
      <section anchor="compat" numbered="true" toc="include" removeInRFC="false" pn="section-4.2">
        <name slugifiedName="name-compatibility-of-rtcp-repor">Compatibility of RTCP Reporting Groups</name>
        <t indent="0" pn="section-4.2-1">The RTCP traffic generated by receivers using RTCP Reporting Groups
        might appear, to observers unaware of these semantics, to be generated
        by receivers who are experiencing a network disconnection, as the
        non-reporting sources appear not to be receiving a given sender at
        all.</t>
        <t indent="0" pn="section-4.2-2">This could be a potentially critical problem for such a sender
        using RTCP for congestion control, as such a sender might think that
        it is sending so much traffic that it is causing complete congestion
        collapse.</t>
        <t indent="0" pn="section-4.2-3">However, such an interpretation of the session statistics would
        require a fairly sophisticated RTCP analysis. Any receiver of RTCP
        statistics that is just interested in information about itself needs
        to be prepared for the possibility that any given reception report might not contain
        information about a specific media source, because reception reports
        in large conferences can be round-robined.</t>
        <t indent="0" pn="section-4.2-4">Thus, the extent to which such backward-compatibility
        issues would actually cause trouble in practice is unclear.</t>
      </section>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t indent="0" pn="section-5-1">The security considerations of <xref target="RFC3550" format="default" sectionFormat="of" derivedContent="RFC3550"/> and <xref target="RFC8108" format="default" sectionFormat="of" derivedContent="RFC8108"/> apply. If the RTP/AVPF
      profile is in use, then the security considerations of <xref target="RFC4585" format="default" sectionFormat="of" derivedContent="RFC4585"/> (and <xref target="RFC5104" format="default" sectionFormat="of" derivedContent="RFC5104"/>, if used) also apply.
      If RTCP XR is used, the security considerations of <xref target="RFC3611" format="default" sectionFormat="of" derivedContent="RFC3611"/>, including security considerations regarding any XR report blocks used, also apply.</t>
      <t indent="0" pn="section-5-2">The RTCP RGRP SDES item is vulnerable to malicious modifications
      unless integrity protection is used. A modification of this item's length
      field causes the parsing of the RTCP packet in which it is contained to
      fail. Depending on the implementation, parsing of the full compound RTCP
      packet can also fail, causing the whole packet to be discarded. A
      modification of the value of this SDES item would make the receiver of
      the report think that the sender of the report was a member of a
      different RTCP Reporting Group. This will potentially create an
      inconsistency, when the RGRS reports the source as being in the same
      Reporting Group as another source with another Reporting Group
      identifier. The impacts on a receiver implementation that such
      inconsistencies could cause are difficult to fully predict. One case is
      that when congestion control or other adaptation mechanisms are used, an
      inconsistent report can result in a media sender reducing its bitrate.
      However, a direct modification of the RR or a feedback
      message itself would be a more efficient attack and would be equally costly to
      perform.</t>
      <t indent="0" pn="section-5-3">The new RGRS RTCP packet type is very simple. The common RTCP packet
      type header shares the same security risks as those that affect previous RTCP packet types.
      Errors or modification of the length field can cause the full compound
      packet to fail header validation (see <xref target="RFC3550" sectionFormat="of" section="A.2" format="default" derivedLink="https://rfc-editor.org/rfc/rfc3550#appendix-A.2" derivedContent="RFC3550"/>), resulting in the whole compound RTCP packet being
      discarded. Modification of the SC field or the P field would cause an inconsistency
      when processing the RTCP packet, likely resulting in the packet being classified as
      invalid. A modification of the PT field would cause the packet to be
      interpreted according to some other packet type's rules. In such a case, the
      result might be more or less predictable but would be specific to the packet type.
      Modification of the "SSRC of packet sender" field would attribute this packet to
      another sender, resulting in a receiver believing that the Reporting
      Group also applies for this SSRC, if it exists. If it doesn't exist, unless
      corresponding modifications are also done on an SR/RR packet and an SDES
      packet, the RTCP packet <bcp14>SHOULD</bcp14> be discarded. If consistent changes are
      done, such a scenario could be part of a resource exhaustion attack on a receiver
      implementation. Modification of the "List of SSRCs for the Reporting
      Source(s)" field would change the SSRC the receiver expects to report on behalf
      of this SSRC. If that SSRC exists, this situation could potentially change the
      Reporting Group used for this SSRC. A change to another Reporting Group
      belonging to another endpoint is likely detectable, as there would be a
      mismatch between the SSRC of the packet sender's endpoint information,
      transport addresses, SDES CNAME, etc., and the corresponding information
      from the Reporting Group indicated.</t>
      <t indent="0" pn="section-5-4">In general, the Reporting Group is providing limited-impact attacks
      on the endpoints.  The most significant result from a deliberate attack would be to cause
      the information to be discarded or be inconsistent, including the 
      discarding of
      all RTCP packets that are modified. This causes a lack of information at
      any receiver entity, possibly disregarding the endpoint's participation
      in the session.</t>
      <t indent="0" pn="section-5-5">To protect against such attacks from external non-trusted
      entities, integrity and source authentication <bcp14>SHOULD</bcp14> be applied. This
      can be done, for example, by using <xref target="RFC3711" format="default" sectionFormat="of" derivedContent="RFC3711">the Secure Real-time Transport Protocol (SRTP)</xref>
      with appropriate key management; other options exist, as discussed in
      <xref target="RFC7201" format="default" sectionFormat="of" derivedContent="RFC7201">"Options for Securing RTP Sessions"</xref>.</t>
      <t indent="0" pn="section-5-6">The Reporting Group Identifier has properties that could potentially
      impact privacy. If this identifier were to be generated by an implementation in a 
      way that makes it long-term stable or predictable, it could be used for
      tracking a particular endpoint. Therefore, it is <bcp14>RECOMMENDED</bcp14> that it be
      generated as a short-term persistent RGRP, following the rules for
      short-term persistent CNAMEs in <xref target="RFC7022" format="default" sectionFormat="of" derivedContent="RFC7022"/>. The rest of
      the information revealed, i.e., the SSRCs, the size of the Reporting Group,
      and the number of reporting sources in a Reporting Group, is of a less
      sensitive nature, considering that the SSRCs and the communication would
      be revealed without this extension anyway. By encrypting the Reporting
      Group extensions, the confidentiality of the SSRC values would be preserved, but
      the values can
      still be revealed if <xref target="RFC3711" format="default" sectionFormat="of" derivedContent="RFC3711">SRTP</xref>
      is used. The
      size of the Reporting Groups and the number of reporting sources are
      likely determinable from analysis of the packet pattern and sizes. However,
      this information appears to have limited value.</t>
    </section>
    <section numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t indent="0" pn="section-6-1">IANA has registered a new RTCP RGRP SDES item in the
      "RTP SDES Item Types" registry, as follows:</t>
      <table anchor="new-RTCP-SDES-item" align="center" pn="table-1">
        <name slugifiedName="name-new-rtcp-rgrp-sdes-item-rep">New RTCP RGRP SDES Item: Reporting Group Identifier</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">Abbrev</th>
            <th align="left" colspan="1" rowspan="1">Name</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">11</td>
            <td align="left" colspan="1" rowspan="1">RGRP</td>
            <td align="left" colspan="1" rowspan="1">Reporting Group Identifier</td>
            <td align="left" colspan="1" rowspan="1">RFC 8861</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-6-3">The definition of the RTCP RGRP SDES item is given in <xref target="sec-rgrp" format="default" sectionFormat="of" derivedContent="Section 3.2.1"/> of this memo.</t>
      <t indent="0" pn="section-6-4">IANA has registered a new RTCP packet type in
      the "RTCP Control Packet Types (PT)" registry, as follows:</t>
      <table anchor="new-RTCP-packet-type" align="center" pn="table-2">
        <name slugifiedName="name-new-rtcp-packet-type-report">New RTCP Packet Type: Reporting Group Reporting Sources</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">Abbrev</th>
            <th align="left" colspan="1" rowspan="1">Name</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">212</td>
            <td align="left" colspan="1" rowspan="1">RGRS</td>
            <td align="left" colspan="1" rowspan="1">Reporting Group Reporting Sources</td>
            <td align="left" colspan="1" rowspan="1">RFC 8861</td>
          </tr>
        </tbody>
      </table>
      <t indent="0" pn="section-6-6">The definition of the RTCP RGRS packet type is given in <xref target="sec-rgrs" format="default" sectionFormat="of" derivedContent="Section 3.2.2"/> of this memo.</t>
      <t indent="0" pn="section-6-7">IANA has also registered a new SDP attribute.</t>
      <t indent="0" pn="section-6-8">SDP Attribute ("att-field"):</t>
      <ul empty="true" spacing="normal" bare="false" indent="3" pn="section-6-9">
        <li pn="section-6-9.1">
          <dl indent="22" spacing="normal" newline="false" pn="section-6-9.1.1">
            <dt pn="section-6-9.1.1.1">Contact Name:</dt>
            <dd pn="section-6-9.1.1.2">IESG</dd>
            <dt pn="section-6-9.1.1.3">Contact Email:</dt>
            <dd pn="section-6-9.1.1.4">iesg@ietf.org</dd>
            <dt pn="section-6-9.1.1.5">Attribute name:</dt>
            <dd pn="section-6-9.1.1.6">rtcp-rgrp</dd>
            <dt pn="section-6-9.1.1.7">Long form:</dt>
            <dd pn="section-6-9.1.1.8">RTCP Reporting Groups</dd>
            <dt pn="section-6-9.1.1.9">Type of name:</dt>
            <dd pn="section-6-9.1.1.10">att-field</dd>
            <dt pn="section-6-9.1.1.11">Type of attribute:</dt>
            <dd pn="section-6-9.1.1.12">Media or session level</dd>
            <dt pn="section-6-9.1.1.13">Subject to charset:</dt>
            <dd pn="section-6-9.1.1.14">No</dd>
            <dt pn="section-6-9.1.1.15">Purpose:</dt>
            <dd pn="section-6-9.1.1.16">To negotiate or configure the use of the RTCP Reporting Group extension</dd>
            <dt pn="section-6-9.1.1.17">Reference:</dt>
            <dd pn="section-6-9.1.1.18">RFC 8861</dd>
            <dt pn="section-6-9.1.1.19">Value:</dt>
            <dd pn="section-6-9.1.1.20">None</dd>
            <dt pn="section-6-9.1.1.21">Mux Category:</dt>
            <dd pn="section-6-9.1.1.22">IDENTICAL</dd>
          </dl>
        </li>
      </ul>
      <t indent="0" pn="section-6-10">The definition of the "a=rtcp-rgrp" SDES attribute is given in <xref target="sdp" format="default" sectionFormat="of" derivedContent="Section 3.6"/> of this memo.</t>
    </section>
  </middle>
  <back>
    <references pn="section-7">
      <name slugifiedName="name-references">References</name>
      <references pn="section-7.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="RFC3264" target="https://www.rfc-editor.org/info/rfc3264" quoteTitle="true" derivedAnchor="RFC3264">
          <front>
            <title>An Offer/Answer Model with Session Description Protocol (SDP)</title>
            <author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2002" month="June"/>
            <abstract>
              <t indent="0">This document defines a mechanism by which two entities can make use of the Session Description Protocol (SDP) to arrive at a common view of a multimedia session between them.  In the model, one participant offers the other a description of the desired session from their perspective, and the other participant answers with the desired session from their perspective.  This offer/answer model is most useful in unicast sessions where information from both participants is needed for the complete view of the session.  The offer/answer model is used by protocols like the Session Initiation Protocol (SIP).  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3264"/>
          <seriesInfo name="DOI" value="10.17487/RFC3264"/>
        </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="RFC4566" target="https://www.rfc-editor.org/info/rfc4566" quoteTitle="true" derivedAnchor="RFC4566">
          <front>
            <title>SDP: Session Description Protocol</title>
            <author initials="M." surname="Handley" fullname="M. Handley">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Jacobson" fullname="V. Jacobson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="July"/>
            <abstract>
              <t indent="0">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.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4566"/>
          <seriesInfo name="DOI" value="10.17487/RFC4566"/>
        </reference>
        <reference anchor="RFC7022" target="https://www.rfc-editor.org/info/rfc7022" quoteTitle="true" derivedAnchor="RFC7022">
          <front>
            <title>Guidelines for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)</title>
            <author initials="A." surname="Begen" fullname="A. Begen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Wing" fullname="D. Wing">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="September"/>
            <abstract>
              <t indent="0">The RTP Control Protocol (RTCP) Canonical Name (CNAME) is a persistent transport-level identifier for an RTP endpoint.  While the Synchronization Source (SSRC) identifier of an RTP endpoint may change if a collision is detected or when the RTP application is restarted, its RTCP CNAME is meant to stay unchanged, so that RTP endpoints can be uniquely identified and associated with their RTP media streams.</t>
              <t indent="0">For proper functionality, RTCP CNAMEs should be unique within the participants of an RTP session.  However, the existing guidelines for choosing the RTCP CNAME provided in the RTP standard (RFC 3550) are insufficient to achieve this uniqueness.  RFC 6222 was published to update those guidelines to allow endpoints to choose unique RTCP CNAMEs.  Unfortunately, later investigations showed that some parts of the new algorithms were unnecessarily complicated and/or ineffective.  This document addresses these concerns and replaces RFC 6222.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7022"/>
          <seriesInfo name="DOI" value="10.17487/RFC7022"/>
        </reference>
        <reference anchor="RFC8108" target="https://www.rfc-editor.org/info/rfc8108" quoteTitle="true" derivedAnchor="RFC8108">
          <front>
            <title>Sending Multiple RTP Streams in a Single RTP Session</title>
            <author initials="J." surname="Lennox" fullname="J. Lennox">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Westerlund" fullname="M. Westerlund">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Q." surname="Wu" fullname="Q. Wu">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="March"/>
            <abstract>
              <t indent="0">This memo expands and clarifies the behavior of Real-time Transport Protocol (RTP) endpoints that use multiple synchronization sources (SSRCs).  This occurs, for example, when an endpoint sends multiple RTP streams in a single RTP session.  This memo updates RFC 3550 with regard to handling multiple SSRCs per endpoint in RTP sessions, with a particular focus on RTP Control Protocol (RTCP) behavior.  It also updates RFC 4585 to change and clarify the calculation of the timeout of SSRCs and the inclusion of feedback messages.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8108"/>
          <seriesInfo name="DOI" value="10.17487/RFC8108"/>
        </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="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-7.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="RFC2974" target="https://www.rfc-editor.org/info/rfc2974" quoteTitle="true" derivedAnchor="RFC2974">
          <front>
            <title>Session Announcement Protocol</title>
            <author initials="M." surname="Handley" fullname="M. Handley">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E." surname="Whelan" fullname="E. Whelan">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2000" month="October"/>
            <abstract>
              <t indent="0">This document describes version 2 of the multicast session directory announcement protocol, Session Announcement Protocol (SAP), and the related issues affecting security and scalability that should be taken into account by implementors.  This memo defines an Experimental Protocol for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2974"/>
          <seriesInfo name="DOI" value="10.17487/RFC2974"/>
        </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="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="RFC4588" target="https://www.rfc-editor.org/info/rfc4588" quoteTitle="true" derivedAnchor="RFC4588">
          <front>
            <title>RTP Retransmission Payload Format</title>
            <author initials="J." surname="Rey" fullname="J. Rey">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Leon" fullname="D. Leon">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Miyazaki" fullname="A. Miyazaki">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="V." surname="Varsa" fullname="V. Varsa">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Hakenberg" fullname="R. Hakenberg">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2006" month="July"/>
            <abstract>
              <t indent="0">RTP retransmission is an effective packet loss recovery technique for real-time applications with relaxed delay bounds.  This document describes an RTP payload format for performing retransmissions. Retransmitted RTP packets are sent in a separate stream from the original RTP stream.  It is assumed that feedback from receivers to senders is available.  In particular, it is assumed that Real-time Transport Control Protocol (RTCP) feedback as defined in the extended RTP profile for RTCP-based feedback (denoted RTP/AVPF) is available in this memo.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4588"/>
          <seriesInfo name="DOI" value="10.17487/RFC4588"/>
        </reference>
        <reference anchor="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="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="RFC6190" target="https://www.rfc-editor.org/info/rfc6190" quoteTitle="true" derivedAnchor="RFC6190">
          <front>
            <title>RTP Payload Format for Scalable Video Coding</title>
            <author initials="S." surname="Wenger" fullname="S. Wenger">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="Y.-K." surname="Wang" fullname="Y.-K. Wang">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="T." surname="Schierl" fullname="T. Schierl">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Eleftheriadis" fullname="A. Eleftheriadis">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2011" month="May"/>
            <abstract>
              <t indent="0">This memo describes an RTP payload format for Scalable Video Coding (SVC) as defined in Annex G of ITU-T Recommendation H.264, which is technically identical to Amendment 3 of ISO/IEC International Standard 14496-10.  The RTP payload format allows for packetization of one or more Network Abstraction Layer (NAL) units in each RTP packet payload, as well as fragmentation of a NAL unit in multiple RTP packets. Furthermore, it supports transmission of an SVC stream over a single as well as multiple RTP sessions.  The payload format defines a new media subtype name "H264-SVC", but is still backward compatible to RFC 6184 since the base layer, when encapsulated in its own RTP stream, must use the H.264 media subtype name ("H264") and the packetization method specified in RFC 6184.  The payload format has wide applicability in videoconferencing, Internet video streaming, and high-bitrate entertainment-quality video, among others.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6190"/>
          <seriesInfo name="DOI" value="10.17487/RFC6190"/>
        </reference>
        <reference anchor="RFC7201" target="https://www.rfc-editor.org/info/rfc7201" quoteTitle="true" derivedAnchor="RFC7201">
          <front>
            <title>Options for Securing RTP Sessions</title>
            <author initials="M." surname="Westerlund" fullname="M. Westerlund">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C." surname="Perkins" fullname="C. Perkins">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2014" month="April"/>
            <abstract>
              <t indent="0">The Real-time Transport Protocol (RTP) is used in a large number of different application domains and environments.  This heterogeneity implies that different security mechanisms are needed to provide services such as confidentiality, integrity, and source authentication of RTP and RTP Control Protocol (RTCP) packets suitable for the various environments.  The range of solutions makes it difficult for RTP-based application developers to pick the most suitable mechanism.  This document provides an overview of a number of security solutions for RTP and gives guidance for developers on how to choose the appropriate security mechanism.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7201"/>
          <seriesInfo name="DOI" value="10.17487/RFC7201"/>
        </reference>
        <reference anchor="RFC7826" target="https://www.rfc-editor.org/info/rfc7826" quoteTitle="true" derivedAnchor="RFC7826">
          <front>
            <title>Real-Time Streaming Protocol Version 2.0</title>
            <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Rao" fullname="A. Rao">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Lanphier" fullname="R. Lanphier">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Westerlund" fullname="M. Westerlund">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="M." surname="Stiemerling" fullname="M. Stiemerling" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="December"/>
            <abstract>
              <t indent="0">This memorandum defines the Real-Time Streaming Protocol (RTSP) version 2.0, which obsoletes RTSP version 1.0 defined in RFC 2326.</t>
              <t indent="0">RTSP is an application-layer protocol for the setup and control of the delivery of data with real-time properties.  RTSP provides an extensible framework to enable controlled, on-demand delivery of real-time data, such as audio and video.  Sources of data can include both live data feeds and stored clips.  This protocol is intended to control multiple data delivery sessions; provide a means for choosing delivery channels such as UDP, multicast UDP, and TCP; and provide a means for choosing delivery mechanisms based upon RTP (RFC 3550).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7826"/>
          <seriesInfo name="DOI" value="10.17487/RFC7826"/>
        </reference>
      </references>
    </references>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.a">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Jonathan Lennox" initials="J." surname="Lennox">
        <organization abbrev="8x8 / Jitsi" showOnFrontPage="true">8x8, Inc. / Jitsi</organization>
        <address>
          <postal>
            <city>Jersey City</city>
            <region>NJ</region>
            <code>07302</code>
            <country>United States of America</country>
          </postal>
          <email>jonathan.lennox@8x8.com</email>
        </address>
      </author>
      <author fullname="Magnus Westerlund" initials="M." surname="Westerlund">
        <organization showOnFrontPage="true">Ericsson</organization>
        <address>
          <postal>
            <street>Torshamnsgatan 23</street>
            <city>Kista</city>
            <code>164 80</code>
            <country>Sweden</country>
          </postal>
          <email>magnus.westerlund@ericsson.com</email>
        </address>
      </author>
      <author fullname="Qin Wu" initials="Q." surname="Wu">
        <organization showOnFrontPage="true">Huawei</organization>
        <address>
          <postal>
            <street>101 Software Avenue, Yuhua District</street>
            <city>Nanjing, Jiangsu 210012</city>
            <country>China</country>
          </postal>
          <email>bill.wu@huawei.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>
    </section>
  </back>
</rfc>
