Internet DRAFT - draft-ietf-avtcore-rtp-multi-stream-optimisation
draft-ietf-avtcore-rtp-multi-stream-optimisation
AVTCORE WG J. Lennox
Internet-Draft Vidyo
Intended status: Standards Track M. Westerlund
Expires: September 3, 2016 Ericsson
Q. Wu
Huawei
C. Perkins
University of Glasgow
March 2, 2016
Sending Multiple RTP Streams in a Single RTP Session: Grouping RTCP
Reception Statistics and Other Feedback
draft-ietf-avtcore-rtp-multi-stream-optimisation-12
Abstract
RTP allows multiple RTP streams to be sent in a single session, but
requires each Synchronisation Source (SSRC) to send 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 Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 3, 2016.
Lennox, et al. Expires September 3, 2016 [Page 1]
Internet-Draft Grouping RTCP Reception Statistics March 2016
Copyright Notice
Copyright (c) 2016 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
(http://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
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. RTCP Reporting Groups . . . . . . . . . . . . . . . . . . . . 3
3.1. Semantics and Behaviour of RTCP Reporting Groups . . . . 4
3.2. Identifying Members of an RTCP Reporting Group . . . . . 5
3.2.1. Definition and Use of the RTCP RGRP SDES Item . . . . 5
3.2.2. Definition and Use of the RTCP RGRS Packet . . . . . 6
3.3. Interactions with the RTP/AVPF Feedback Profile . . . . . 8
3.4. Interactions with RTCP Extended Report (XR) Packets . . . 9
3.5. Middlebox Considerations . . . . . . . . . . . . . . . . 9
3.6. SDP Signalling for Reporting Groups . . . . . . . . . . . 10
4. Properties of RTCP Reporting Groups . . . . . . . . . . . . . 12
4.1. Bandwidth Benefits of RTCP Reporting Groups . . . . . . . 12
4.2. Compatibility of RTCP Reporting Groups . . . . . . . . . 13
5. Security Considerations . . . . . . . . . . . . . . . . . . . 13
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.1. Normative References . . . . . . . . . . . . . . . . . . 16
7.2. Informative References . . . . . . . . . . . . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
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 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
Lennox, et al. Expires September 3, 2016 [Page 2]
Internet-Draft Grouping RTCP Reception Statistics March 2016
streams are described in [RFC3550] with some clarifications in
[I-D.ietf-avtcore-rtp-multi-stream].
An RTP endpoint will have one or more synchronisation sources
(SSRCs). It will have at least one RTP Stream, and thus SSRC, for
each media source it sends, and 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 stream, will have at least one
SSRC to use for reporting and any feedback messages. Each SSRC has
to send RTCP sender reports corresponding to the RTP packets it
sends, and receiver reports for traffic it receives. That is, every
SSRC will send RTCP packets to report on every other SSRC. This rule
is simple, but 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
with their own RTP stream. There will be 30 SSRCs in such an RTP
session, and each of those 30 SSRCs will send an RTCP Sender Report/
Receiver Report 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", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
3. RTCP Reporting Groups
An RTCP Reporting Group is a set of synchronization sources (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 see the same lost packets, jitter, etc. This
allows a single representative to send RTCP reception quality reports
Lennox, et al. Expires September 3, 2016 [Page 3]
Internet-Draft Grouping RTCP Reception Statistics March 2016
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 Behaviour 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 instead send an RTCP 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 a
RTCP BYE packet, or leaves the session without sending BYE under the
rules of [RFC3550] section 6.3.7), the remaining members of the RTCP
reporting group MUST either (a) have another reporting source, if one
exists, report on the remote SSRCs the leaving SSRC reported on, (b)
choose a new reporting source, or (c) disband the RTCP reporting
Lennox, et al. Expires September 3, 2016 [Page 4]
Internet-Draft Grouping RTCP Reception Statistics March 2016
group and begin sending reception quality reports following [RFC3550]
and [I-D.ietf-avtcore-rtp-multi-stream].
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
Sender Reports.
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 RGRP 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 SDES item to identify an RTCP
reporting group. The motivation for giving a reporting group an
identify is to ensure that the RTCP reporting group and its member
SSRCs can be correctly associated when there are multiple reporting
sources, and to ensure that a reporting SSRC can be associated with
the correct reporting group if an SSRC collision occurs.
This document defines the RTCP Source Description (SDES) RGRP item.
The RTCP SDES RGRP 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 SDES RGRP item is identical to
that of the RTCP SDES CNAME item [RFC7022], except that the SDES item
type field MUST have value RGRP=(TBA) instead of CNAME=1. The value
Lennox, et al. Expires September 3, 2016 [Page 5]
Internet-Draft Grouping RTCP Reception Statistics March 2016
of the RTCP SDES RGRP 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 SDES RGRP 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.
Note to RFC Editor: please replace (TBA) in the above paragraph
with the RTCP SDES item type number assigned to the RGRP item,
then delete this note.
An RTP mixer or translator that forwards RTCP SR or RR packets from
members of a reporting group MUST forward the corresponding RTCP SDES
RGRP 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 know which SSRCs are acting as the reporting
sources for an RTCP reporting group, and allowing them to 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(TBA) | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
: List of SSRC(s) for the Reporting Source(s) :
: ... :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The fields in the RTCP RGRS packet have the following definition:
Lennox, et al. Expires September 3, 2016 [Page 6]
Internet-Draft Grouping RTCP Reception Statistics March 2016
version (V): 2 bits 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 bits unsigned integer. Indicates the number of
reporting source SSRCs that are included in this RTCP packet. As
the RTCP RGRS packet MUST NOT be not 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 bits unsigned integer. The RTCP packet type
number that identifies the packet as being an RTCP RGRS packet.
The RGRS RTCP packet has the value [TBA].
Note to RFC Editor: please replace [TBA] here, and in the
packet format diagram above, with the RTCP packet type that
IANA assigns to the RTCP RGRS packet.
Length: 16 bits 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 sender and receiver reports [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 length size
(as indicated by SC header field) of the 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
Lennox, et al. Expires September 3, 2016 [Page 7]
Internet-Draft Grouping RTCP Reception Statistics March 2016
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
Use of the RTP/AVPF Feedback Profile [RFC4585] allows SSRCs to send
rapid RTCP feedback requests and codec control messages. If 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 following [RFC4585] and [RFC5104], as updated by
Section 5.4 of [I-D.ietf-avtcore-rtp-multi-stream], 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, then 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
Lennox, et al. Expires September 3, 2016 [Page 8]
Internet-Draft Grouping RTCP Reception Statistics March 2016
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 SDES RGRP 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 non-compound 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 Reports (XR) [RFC3611] with RTCP reporting
groups, it is RECOMMENDED that the reporting source is 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 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 to
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 send
standard RTCP packets instead.
3.5. Middlebox Considerations
Many different types of middlebox are used with RTP. RTCP reporting
groups are potentially relevant to those types of RTP middlebox 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
don't send RTCP reports on the traffic they receive, cannot use the
RTCP reporting groups extension, since they generate no RTCP reports
to group.
Lennox, et al. Expires September 3, 2016 [Page 9]
Internet-Draft Grouping RTCP Reception Statistics March 2016
An RTP middlebox that has several SSRCs of its own can use the RTCP
reporting groups 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 groups 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 [I-D.ietf-avtcore-rtp-multi-stream]. 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 SDES RGRP items,
as described in Section 3.2.1. A middlebox that forwards RTCP SR or
RR packets sent by member 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 Signalling 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
[I-D.ietf-mmusic-sdp-mux-attributes] is IDENTICAL, as the
functionality applies on 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:
Lennox, et al. Expires September 3, 2016 [Page 10]
Internet-Draft Grouping RTCP Reception Statistics March 2016
Name: rtcp-rgrp
Value:
Usage Level: session, media
Charset Dependent: no
Example:
a=rtcp-rgrp
When using SDP Offer/Answer [RFC3264], the following procedures are
to be used:
o 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 groups 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.
o 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 groups extensions, then the answerer MAY include an
"a=rtcp-rgrp" attribute in the answer and MAY send RTCP packets
containing the RTCP reporting groups 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 groups extensions, then the
answer MUST NOT include an "a=rtcp-rgrp" attribute.
o 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 groups extension, and MAY send RTCP packets that contain
the reporting groups extension. 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 groups extensions, and does not need to process
packet containing the RTCP reporting groups extensions.
In declarative usage of SDP, such as the Real Time Streaming Protocol
(RTSP) [RFC2326] 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 a RTP session as long as it has been verified that
Lennox, et al. Expires September 3, 2016 [Page 11]
Internet-Draft Grouping RTCP Reception Statistics March 2016
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 with 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.) For further simplification, we can assume RTCP senders are
following the recommendations regarding Compound RTCP Packets in
[I-D.ietf-avtcore-rtp-multi-stream]; 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 per report interval, assuming 16-byte
CNAMEs and no other SDES information.
Using the original [RFC3550] everyone-reports-on-every-sender
feedback rules, 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 RGRP SDES items and RGRS packets. Put another way, the unmodified
[RFC3550] reporting interval is approximately 9 times longer than if
reporting groups are in use.
Lennox, et al. Expires September 3, 2016 [Page 12]
Internet-Draft Grouping RTCP Reception Statistics March 2016
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 which is just interested in information about itself needs
to be prepared 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, it is unclear to what extent such backward compatibility issues
would actually cause trouble in practice.
5. Security Considerations
The security considerations of [RFC3550] and
[I-D.ietf-avtcore-rtp-multi-stream] 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
consideration of [RFC3611] and any XR report blocks used also apply.
The RTCP SDES RGRP item is vulnerable to malicious modifications
unless integrity protected is used. A modification of this item's
length field cause 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 to 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. What impact on a receiver implementation
such inconsistencies would have are difficult to fully predict. One
case is when congestion control or other adaptation mechanisms are
used, an inconsistent report can result in a media sender to reduce
its bit-rate. However, a direct modification of the receiver report
or a feedback message itself would be a more efficient attack, and
equally costly to perform.
Lennox, et al. Expires September 3, 2016 [Page 13]
Internet-Draft Grouping RTCP Reception Statistics March 2016
The new RGRS RTCP Packet type is very simple. The common RTCP packet
type header shares the security risks with 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 in
[RFC3550]) resulting in the whole compound RTCP packet being
discarded. Modification of the SC or P fields would cause
inconsistency when processing the RTCP packet, likely resulting it
being classified as invalid. A modification of the PT field would
cause the packet being interpreted under some other packet type's
rules. In such case the result might be more or less predictable but
packet type specific. Modification of the SSRC of packet sender
would attribute this packet to another sender. Resulting in a
receiver believing the reporting group applies also for this SSRC, if
it exists. If it doesn't exist, unless also corresponding
modifications are done on a SR/RR packet and a SDES packet the RTCP
packet SHOULD be discarded. If consistent changes are done, that
could be part of a resource exhaustion attack on a receiver
implementation. Modification of the "List of SSRCs for the Reporting
Source(s)" would change the SSRC the receiver expect to report on
behalf of this SSRC. If that SSRC exist, that could potentially
change the report 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 impacts attacks.
The most significant result from an deliberate attack would be to
cause the information to be discarded or be inconsistent, including
discard of all RTCP packets that are modified. This causes a lack of
information at any receiver entity, possibly disregarding the
endpoints participation in the session.
To protect against this type of attacks from external non trusted
entities, integrity and source authentication SHOULD be applied.
This can be done, for example, by using SRTP [RFC3711] with
appropriate key-management, other options exist as discussed in RTP
Security Options [RFC7201].
The Report Group Identifier has a potential privacy impacting
properties. If this would be generated by an implementation in such
a way that is long term stable or predictable, it could be used for
tracking a particular end-point. 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 reporting group and
the number of reporting sources in a reporting group is of less
sensitive nature, considering that the SSRCs and the communication
Lennox, et al. Expires September 3, 2016 [Page 14]
Internet-Draft Grouping RTCP Reception Statistics March 2016
would anyway be revealed without this extension. By encrypting the
report group extensions the SSRC values would preserved confidential,
but can still be revealed if SRTP [RFC3711] is used. The size of the
reporting groups and 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
(Note to the RFC-Editor: in the following, please replace "TBA" with
the IANA-assigned value, and "XXXX" with the number of this document,
then delete this note)
The IANA is requested to register one new RTCP SDES items in the
"RTCP SDES Item Types" registry, as follows:
Value Abbrev Name Reference
TBA RGRP Reporting Group Identifier [RFCXXXX]
The definition of the RTCP SDES RGRP item is given in Section 3.2.1
of this memo.
The IANA is also requested to register one new RTCP packet type in
the "RTCP Control Packet Types (PT)" Registry as follows:
Value Abbrev Name Reference
TBA RGRS Reporting Group Reporting Sources [RFCXXXX]
The definition of the RTCP RGRS packet type is given in Section 3.2.2
of this memo.
The IANA is also requested to register one new SDP attribute:
SDP Attribute ("att-field"):
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: Negotiate or configure the use of the RTCP
Reporting Group Extension.
Reference: [RFCXXXX]
Values: None
The definition of the "a=rtcp-rgrp" SDES attribute is given in
Section 3.6 of this memo.
Lennox, et al. Expires September 3, 2016 [Page 15]
Internet-Draft Grouping RTCP Reception Statistics March 2016
7. References
7.1. Normative References
[I-D.ietf-avtcore-rtp-multi-stream]
Lennox, J., Westerlund, M., Wu, Q., and C. Perkins,
"Sending Multiple RTP Streams in a Single RTP Session",
draft-ietf-avtcore-rtp-multi-stream-11 (work in progress),
December 2015.
[I-D.ietf-mmusic-sdp-mux-attributes]
Nandakumar, S., "A Framework for SDP Attributes when
Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-12
(work in progress), January 2016.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://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,
<http://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, <http://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, <http://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, <http://www.rfc-editor.org/info/rfc7022>.
7.2. Informative References
[RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time
Streaming Protocol (RTSP)", RFC 2326,
DOI 10.17487/RFC2326, April 1998,
<http://www.rfc-editor.org/info/rfc2326>.
Lennox, et al. Expires September 3, 2016 [Page 16]
Internet-Draft Grouping RTCP Reception Statistics March 2016
[RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session
Announcement Protocol", RFC 2974, DOI 10.17487/RFC2974,
October 2000, <http://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,
<http://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,
<http://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,
<http://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,
<http://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, <http://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, <http://www.rfc-editor.org/info/rfc5506>.
[RFC6190] Wenger, S., Wang, Y., Schierl, T., and A. Eleftheriadis,
"RTP Payload Format for Scalable Video Coding", RFC 6190,
DOI 10.17487/RFC6190, May 2011,
<http://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,
<http://www.rfc-editor.org/info/rfc7201>.
Lennox, et al. Expires September 3, 2016 [Page 17]
Internet-Draft Grouping RTCP Reception Statistics March 2016
Authors' Addresses
Jonathan Lennox
Vidyo, Inc.
433 Hackensack Avenue
Seventh Floor
Hackensack, NJ 07601
US
Email: jonathan@vidyo.com
Magnus Westerlund
Ericsson
Farogatan 2
SE-164 80 Kista
Sweden
Phone: +46 10 714 82 87
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
Lennox, et al. Expires September 3, 2016 [Page 18]