summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8861.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc8861.txt')
-rw-r--r--doc/rfc/rfc8861.txt856
1 files changed, 856 insertions, 0 deletions
diff --git a/doc/rfc/rfc8861.txt b/doc/rfc/rfc8861.txt
new file mode 100644
index 0000000..e3c2d61
--- /dev/null
+++ b/doc/rfc/rfc8861.txt
@@ -0,0 +1,856 @@
+
+
+
+
+Internet Engineering Task Force (IETF) J. Lennox
+Request for Comments: 8861 8x8 / Jitsi
+Category: Standards Track M. Westerlund
+ISSN: 2070-1721 Ericsson
+ Q. Wu
+ Huawei
+ C. Perkins
+ University of Glasgow
+ January 2021
+
+
+ Sending Multiple RTP Streams in a Single RTP Session: Grouping RTP
+ Control Protocol (RTCP) Reception Statistics and Other Feedback
+
+Abstract
+
+ 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.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ 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.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ https://www.rfc-editor.org/info/rfc8861.
+
+Copyright Notice
+
+ Copyright (c) 2021 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (https://trustee.ietf.org/license-info) 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.
+
+Table of Contents
+
+ 1. Introduction
+ 2. Terminology
+ 3. RTCP Reporting Groups
+ 3.1. Semantics and Behavior of RTCP Reporting Groups
+ 3.2. Identifying Members of an RTCP Reporting Group
+ 3.2.1. Definition and Use of the RTCP RGRP SDES Item
+ 3.2.2. Definition and Use of the RTCP RGRS Packet
+ 3.3. Interactions with the RTP/AVPF Feedback Profile
+ 3.4. Interactions with RTCP Extended Report (XR) Packets
+ 3.5. Middlebox Considerations
+ 3.6. SDP Signaling for Reporting Groups
+ 4. Properties of RTCP Reporting Groups
+ 4.1. Bandwidth Benefits of RTCP Reporting Groups
+ 4.2. Compatibility of RTCP Reporting Groups
+ 5. Security Considerations
+ 6. IANA Considerations
+ 7. References
+ 7.1. Normative References
+ 7.2. Informative References
+ Authors' Addresses
+
+1. Introduction
+
+ The Real-time Transport Protocol (RTP) [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 [RFC3550], with some clarifications in
+ [RFC8108].
+
+ 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 media scalability features [RFC6190],
+ forward error correction, RTP retransmission [RFC4588], 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
+ [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.
+
+ 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.
+
+2. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+3. RTCP Reporting Groups
+
+ 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.
+
+3.1. Semantics and Behavior of RTCP Reporting Groups
+
+ 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 MAY 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 MUST NOT be put into the same
+ Reporting Group.
+
+ 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 MUST
+ 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 Section 3.2.2)
+ to indicate that they are part of an RTCP Reporting Group and give
+ the SSRCs of the reporting sources.
+
+ 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 MAY use more
+ than one reporting source. If several SSRCs are acting as reporting
+ sources for an RTCP Reporting Group, then each reporting source MUST
+ have non-overlapping sets of remote SSRCs it reports on.
+
+ An endpoint MUST NOT 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.
+
+ 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 [RFC3550], Section 6.3.7), the remaining
+ members of the RTCP Reporting Group MUST (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 [RFC3550] and [RFC8108].
+
+ 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 MAY 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.
+
+3.2. Identifying Members of an RTCP Reporting Group
+
+ 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).
+
+3.2.1. Definition and Use of the RTCP RGRP SDES Item
+
+ 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.
+
+ This document defines the RTCP RGRP SDES item. The RTCP RGRP SDES
+ item MUST be sent by the reporting sources in a Reporting Group and
+ MUST NOT 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 MUST 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 Reduced-Size RTCP [RFC5506] is in use).
+
+ Syntactically, the format of the RTCP RGRP SDES item is identical to
+ that of the RTCP SDES CNAME item [RFC7022], except that the SDES item
+ type field MUST have value RGRP=11 instead of CNAME=1. The value of
+ the RTCP RGRP SDES item MUST 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 MUST 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.
+
+ An RTP mixer or translator that forwards RTCP SR or RR packets from
+ members of a Reporting Group MUST forward the corresponding RTCP RGRP
+ SDES items as well, even if it otherwise strips SDES items other than
+ the CNAME item.
+
+3.2.2. Definition and Use of the RTCP RGRS Packet
+
+ 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.
+
+ 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.
+
+ 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) :
+ : ... :
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ The fields in the RTCP RGRS packet have the following definitions:
+
+ version (V): 2-bit unsigned integer. This field identifies the RTP
+ version. The current RTP version is 2.
+
+ padding (P): 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 [RFC3550].
+
+ Source Count (SC): 5-bit unsigned integer. Indicates the number of
+ reporting source SSRCs that are included in this RTCP packet. As
+ the RTCP RGRS packet MUST NOT 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 MUST
+ contain at least one reporting source SSRC.
+
+ Payload type (PT): 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.
+
+ Length: 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 [RFC3550]. Since all RTCP RGRS packets include
+ at least one reporting source SSRC, the length will always be 2 or
+ greater.
+
+ SSRC of packet sender: 32 bits. The SSRC of the sender of this
+ packet.
+
+ List of SSRCs for the Reporting Source(s): 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.
+
+ Every source that belongs to an RTCP Reporting Group but is not a
+ reporting source MUST 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 Reduced-Size RTCP [RFC5506] is in use). Each
+ RTCP RGRS packet MUST 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 MUST 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.
+
+ An RTP mixer or translator that forwards RTCP SR or RR packets from
+ members of a Reporting Group MUST also forward the corresponding RGRS
+ RTCP packets. If the RTP mixer or translator rewrites SSRC values of
+ the packets it forwards, it MUST make the corresponding changes to
+ the RTCP RGRS packets.
+
+3.3. Interactions with the RTP/AVPF Feedback Profile
+
+ The use of the RTP/AVPF Feedback Profile [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 [RFC5104], per [RFC4585] as updated by
+ Section 5.4 of [RFC8108], and by the following considerations.
+
+ 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.
+
+ Each member of an RTCP Reporting Group SHOULD 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 [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 MAY choose to send all its
+ feedback from the reporting source and deterministically suppress
+ feedback packets generated by the other sources in the Reporting
+ Group.
+
+ 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.
+
+ If the RTP/AVPF feedback messages or codec control requests are sent
+ as compound RTCP packets, then those compound RTCP packets MUST
+ 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.
+
+3.4. Interactions with RTCP Extended Report (XR) Packets
+
+ When using RTCP Extended Report (XR) packets [RFC3611] with RTCP
+ Reporting Groups, it is RECOMMENDED 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 SHOULD 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.
+
+ 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 MUST be sent by the SSRC to
+ which they are relevant and MUST NOT 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 SHOULD be removed from the RTCP
+ Reporting Group, and standard RTCP packets be sent instead.
+
+3.5. Middlebox Considerations
+
+ 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.
+
+ 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.
+
+ 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 Section 6.1 of [RFC3550] and
+ Section 5.3 of [RFC8108]. If the middlebox is using RTCP Reporting
+ Groups for its own SSRCs, it MAY include RTCP packets from the SSRCs
+ that it is forwarding as part of the compound RTCP packets its
+ reporting source generates.
+
+ A middlebox that forwards RTCP SR or RR packets sent by members of a
+ Reporting Group MUST forward the corresponding RTCP RGRP SDES items,
+ as described in Section 3.2.1. A middlebox that forwards RTCP SR or
+ RR packets sent by members of a Reporting Group MUST also forward the
+ corresponding RTCP RGRS packets, as described in Section 3.2.2.
+ Failure to forward these packets can cause compatibility problems, as
+ described in Section 4.2.
+
+ If a middlebox rewrites SSRC values in the RTP and RTCP packets that
+ it is forwarding, then it MUST 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.
+
+3.6. SDP Signaling for Reporting Groups
+
+ This document defines the "a=rtcp-rgrp" Session Description Protocol
+ (SDP) [RFC4566] 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 multiplexing category [RFC8859] is
+ IDENTICAL, as the functionality applies at the RTP session level. A
+ participant that proposes the use of RTCP Reporting Groups SHALL
+ itself support the reception of RTCP Reporting Groups. The formal
+ definition of this attribute is as follows:
+
+ Name: rtcp-rgrp
+ Value: None
+ Usage Level: session, media
+ Charset Dependent: no
+ Example: a=rtcp-rgrp
+
+ When using SDP Offer/Answer [RFC3264], the following procedures are
+ to be used:
+
+ Generating the initial SDP offer:
+ If the offerer supports the RTCP Reporting Group extensions and is
+ willing to accept RTCP packets containing those extensions, then
+ it MUST 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 MUST NOT include the "a=rtcp-rgrp" attribute in the offer.
+
+ Generating the SDP answer:
+ 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 MAY include an "a=rtcp-rgrp" attribute in the answer and
+ MAY 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 MUST NOT include an
+ "a=rtcp-rgrp" attribute.
+
+ Offerer processing of the SDP answer:
+ If the SDP answer contains an "a=rtcp-rgrp" attribute and the
+ corresponding offer also contained an "a=rtcp-rgrp" attribute,
+ then the offerer MUST be prepared to accept and process RTCP
+ packets that contain the Reporting Group extensions and MAY 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 MUST reject the call. If the SDP answer does not
+ contain an "a=rtcp-rgrp" attribute, then the offerer MUST NOT send
+ packets containing the RTCP Reporting Group extensions and does
+ not need to process packets containing the RTCP Reporting Group
+ extensions.
+
+ In declarative usage of SDP, such as the Real-Time Streaming Protocol
+ (RTSP) [RFC7826] and the Session Announcement Protocol (SAP)
+ [RFC2974], the presence of the attribute indicates that the session
+ participant MAY use RTCP Reporting Groups in its RTCP transmissions.
+ An implementation that doesn't explicitly support RTCP Reporting
+ Groups MAY join an RTP session as long as it has been verified that
+ the implementation doesn't suffer from the problems discussed in
+ Section 4.2.
+
+4. Properties of RTCP Reporting Groups
+
+ This section provides additional information on what the resulting
+ properties are (i.e., resulting effects or impacts) as related to the
+ design specified in Section 3. The content of this section is non-
+ normative.
+
+4.1. Bandwidth Benefits of RTCP Reporting Groups
+
+ 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.
+
+ 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
+ [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.
+
+ 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.
+
+ Using the original "everyone reports on every sender" feedback rules
+ [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.
+
+ 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 [RFC3550] is approximately 9 times
+ longer than if Reporting Groups are in use.
+
+4.2. Compatibility of RTCP Reporting Groups
+
+ 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.
+
+ 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.
+
+ 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.
+
+ Thus, the extent to which such backward-compatibility issues would
+ actually cause trouble in practice is unclear.
+
+5. Security Considerations
+
+ The security considerations of [RFC3550] and [RFC8108] apply. If the
+ RTP/AVPF profile is in use, then the security considerations of
+ [RFC4585] (and [RFC5104], if used) also apply. If RTCP XR is used,
+ the security considerations of [RFC3611], including security
+ considerations regarding any XR report blocks used, also apply.
+
+ 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.
+
+ 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 Appendix A.2 of [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 SHOULD 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.
+
+ 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.
+
+ To protect against such attacks from external non-trusted entities,
+ integrity and source authentication SHOULD be applied. This can be
+ done, for example, by using the Secure Real-time Transport Protocol
+ (SRTP) [RFC3711] with appropriate key management; other options
+ exist, as discussed in "Options for Securing RTP Sessions" [RFC7201].
+
+ 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 RECOMMENDED that it be generated as a short-term
+ persistent RGRP, following the rules for short-term persistent CNAMEs
+ in [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 SRTP [RFC3711] 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.
+
+6. IANA Considerations
+
+ IANA has registered a new RTCP RGRP SDES item in the "RTP SDES Item
+ Types" registry, as follows:
+
+ +=======+========+============================+===========+
+ | Value | Abbrev | Name | Reference |
+ +=======+========+============================+===========+
+ | 11 | RGRP | Reporting Group Identifier | RFC 8861 |
+ +-------+--------+----------------------------+-----------+
+
+ Table 1: New RTCP RGRP SDES Item: Reporting Group
+ Identifier
+
+ The definition of the RTCP RGRP SDES item is given in Section 3.2.1
+ of this memo.
+
+ IANA has registered a new RTCP packet type in the "RTCP Control
+ Packet Types (PT)" registry, as follows:
+
+ +=======+========+===================================+===========+
+ | Value | Abbrev | Name | Reference |
+ +=======+========+===================================+===========+
+ | 212 | RGRS | Reporting Group Reporting Sources | RFC 8861 |
+ +-------+--------+-----------------------------------+-----------+
+
+ Table 2: New RTCP Packet Type: Reporting Group Reporting Sources
+
+ The definition of the RTCP RGRS packet type is given in Section 3.2.2
+ of this memo.
+
+ IANA has also registered a new SDP attribute.
+
+ SDP Attribute ("att-field"):
+
+ Contact Name: IESG
+
+ Contact Email: iesg@ietf.org
+
+ Attribute name: rtcp-rgrp
+
+ Long form: RTCP Reporting Groups
+
+ Type of name: att-field
+
+ Type of attribute: Media or session level
+
+ Subject to charset: No
+
+ Purpose: To negotiate or configure the use of the
+ RTCP Reporting Group extension
+
+ Reference: RFC 8861
+
+ Value: None
+
+ Mux Category: IDENTICAL
+
+ The definition of the "a=rtcp-rgrp" SDES attribute is given in
+ Section 3.6 of this memo.
+
+7. References
+
+7.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <https://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
+ with Session Description Protocol (SDP)", RFC 3264,
+ DOI 10.17487/RFC3264, June 2002,
+ <https://www.rfc-editor.org/info/rfc3264>.
+
+ [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
+ Jacobson, "RTP: A Transport Protocol for Real-Time
+ Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
+ July 2003, <https://www.rfc-editor.org/info/rfc3550>.
+
+ [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
+ Description Protocol", RFC 4566, DOI 10.17487/RFC4566,
+ July 2006, <https://www.rfc-editor.org/info/rfc4566>.
+
+ [RFC7022] Begen, A., Perkins, C., Wing, D., and E. Rescorla,
+ "Guidelines for Choosing RTP Control Protocol (RTCP)
+ Canonical Names (CNAMEs)", RFC 7022, DOI 10.17487/RFC7022,
+ September 2013, <https://www.rfc-editor.org/info/rfc7022>.
+
+ [RFC8108] Lennox, J., Westerlund, M., Wu, Q., and C. Perkins,
+ "Sending Multiple RTP Streams in a Single RTP Session",
+ RFC 8108, DOI 10.17487/RFC8108, March 2017,
+ <https://www.rfc-editor.org/info/rfc8108>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <https://www.rfc-editor.org/info/rfc8174>.
+
+ [RFC8859] Nandakumar, S., "A Framework for Session Description
+ Protocol (SDP) Attributes When Multiplexing", RFC 8859,
+ DOI 10.17487/RFC8859, January 2021,
+ <https://www.rfc-editor.org/info/rfc8859>.
+
+7.2. Informative References
+
+ [RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session
+ Announcement Protocol", RFC 2974, DOI 10.17487/RFC2974,
+ October 2000, <https://www.rfc-editor.org/info/rfc2974>.
+
+ [RFC3611] Friedman, T., Ed., Caceres, R., Ed., and A. Clark, Ed.,
+ "RTP Control Protocol Extended Reports (RTCP XR)",
+ RFC 3611, DOI 10.17487/RFC3611, November 2003,
+ <https://www.rfc-editor.org/info/rfc3611>.
+
+ [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
+ Norrman, "The Secure Real-time Transport Protocol (SRTP)",
+ RFC 3711, DOI 10.17487/RFC3711, March 2004,
+ <https://www.rfc-editor.org/info/rfc3711>.
+
+ [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
+ "Extended RTP Profile for Real-time Transport Control
+ Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585,
+ DOI 10.17487/RFC4585, July 2006,
+ <https://www.rfc-editor.org/info/rfc4585>.
+
+ [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
+ Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
+ DOI 10.17487/RFC4588, July 2006,
+ <https://www.rfc-editor.org/info/rfc4588>.
+
+ [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman,
+ "Codec Control Messages in the RTP Audio-Visual Profile
+ with Feedback (AVPF)", RFC 5104, DOI 10.17487/RFC5104,
+ February 2008, <https://www.rfc-editor.org/info/rfc5104>.
+
+ [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size
+ Real-Time Transport Control Protocol (RTCP): Opportunities
+ and Consequences", RFC 5506, DOI 10.17487/RFC5506, April
+ 2009, <https://www.rfc-editor.org/info/rfc5506>.
+
+ [RFC6190] Wenger, S., Wang, Y.-K., Schierl, T., and A.
+ Eleftheriadis, "RTP Payload Format for Scalable Video
+ Coding", RFC 6190, DOI 10.17487/RFC6190, May 2011,
+ <https://www.rfc-editor.org/info/rfc6190>.
+
+ [RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP
+ Sessions", RFC 7201, DOI 10.17487/RFC7201, April 2014,
+ <https://www.rfc-editor.org/info/rfc7201>.
+
+ [RFC7826] Schulzrinne, H., Rao, A., Lanphier, R., Westerlund, M.,
+ and M. Stiemerling, Ed., "Real-Time Streaming Protocol
+ Version 2.0", RFC 7826, DOI 10.17487/RFC7826, December
+ 2016, <https://www.rfc-editor.org/info/rfc7826>.
+
+Authors' Addresses
+
+ Jonathan Lennox
+ 8x8, Inc. / Jitsi
+ Jersey City, NJ 07302
+ United States of America
+
+ Email: jonathan.lennox@8x8.com
+
+
+ Magnus Westerlund
+ Ericsson
+ Torshamnsgatan 23
+ SE-164 80 Kista
+ Sweden
+
+ Email: magnus.westerlund@ericsson.com
+
+
+ Qin Wu
+ Huawei
+ 101 Software Avenue, Yuhua District
+ Nanjing, Jiangsu 210012
+ China
+
+ Email: bill.wu@huawei.com
+
+
+ Colin Perkins
+ University of Glasgow
+ School of Computing Science
+ Glasgow
+ G12 8QQ
+ United Kingdom
+
+ Email: csp@csperkins.org