draft-ietf-avtcore-rtp-multi-stream-optimisation-01.txt   draft-ietf-avtcore-rtp-multi-stream-optimisation-02.txt 
AVTCORE WG J. Lennox AVTCORE WG J. Lennox
Internet-Draft Vidyo Internet-Draft Vidyo
Updates: 3550 (if approved) M. Westerlund Intended status: Standards Track M. Westerlund
Intended status: Standards Track Ericsson Expires: August 18, 2014 Ericsson
Expires: July 17, 2014 Q. Wu Q. Wu
Huawei Huawei
C. Perkins C. Perkins
University of Glasgow University of Glasgow
January 13, 2014 February 14, 2014
Sending Multiple Media Streams in a Single RTP Session: Grouping RTCP Sending Multiple Media Streams in a Single RTP Session: Grouping RTCP
Reception Statistics and Other Feedback Reception Statistics and Other Feedback
draft-ietf-avtcore-rtp-multi-stream-optimisation-01 draft-ietf-avtcore-rtp-multi-stream-optimisation-02
Abstract Abstract
RTP allows multiple media streams to be sent in a single session, but RTP allows multiple media streams to be sent in a single session, but
requires each Synchronisation Source (SSRC) to send RTCP reception requires each Synchronisation Source (SSRC) to send RTCP reception
quality reports for every other SSRC visible in the session. This quality reports for every other SSRC visible in the session. This
causes the number of RTCP reception reports to grow with the number 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 of SSRCs, rather than the number of endpoints. In many cases most of
these RTCP reception reports are unnecessary, since all SSRCs of an these RTCP reception reports are unnecessary, since all SSRCs of an
endpoint are co-located and see the same reception quality. This endpoint are co-located and see the same reception quality. This
skipping to change at page 1, line 44 skipping to change at page 1, line 44
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 17, 2014. This Internet-Draft will expire on August 18, 2014.
Copyright Notice Copyright Notice
Copyright (c) 2014 IETF Trust and the persons identified as the Copyright (c) 2014 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Grouping of RTCP Reception Statistics and Other Feedback . . 3 3. RTCP Reporting Groups . . . . . . . . . . . . . . . . . . . . 3
3.1. Semantics and Behavior of Reporting Groups . . . . . . . 3 3.1. Semantics and Behaviour of RTCP Reporting Groups . . . . 3
3.2. Determine the Report Group . . . . . . . . . . . . . . . 4 3.2. Identifying Members of an RTCP Reporting Group . . . . . 5
3.3. RTCP Packet Reporting Group's Reporting Sources . . . . . 5 3.2.1. Definition and Use of the RTCP RGRP SDES Item . . . . 5
3.4. RTCP Source Description (SDES) item for Reporting Groups 6 3.2.2. Definition and Use of the RTCP RGRS Packet . . . . . 6
3.5. Middlebox Considerations . . . . . . . . . . . . . . . . 6 3.3. Interactions with the RTP/AVPF Feedback Profile . . . . . 7
3.6. SDP signaling for Reporting Groups . . . . . . . . . . . 6 3.4. Interactions with RTCP Extended Report (XR) Packets . . . 8
3.7. Bandwidth Benefits of RTCP Reporting Groups . . . . . . . 6 3.5. Middlebox Considerations . . . . . . . . . . . . . . . . 9
3.8. Consequences of RTCP Reporting Groups . . . . . . . . . . 7 3.6. SDP Signalling for Reporting Groups . . . . . . . . . . . 9
4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 4. Properties of RTCP Reporting Groups . . . . . . . . . . . . . 9
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 4.1. Bandwidth Benefits of RTCP Reporting Groups . . . . . . . 10
6. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Compatibility of RTCP Reporting Groups . . . . . . . . . 10
6.1. Normative References . . . . . . . . . . . . . . . . . . 8 5. Security Considerations . . . . . . . . . . . . . . . . . . . 11
6.2. Informative References . . . . . . . . . . . . . . . . . 9 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.1. Normative References . . . . . . . . . . . . . . . . . . 13
7.2. Informative References . . . . . . . . . . . . . . . . . 14
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15
1. Introduction 1. Introduction
The Real-time Transport Protocol (RTP) [RFC3550] is a protocol for The Real-time Transport Protocol (RTP) [RFC3550] is a protocol for
group communication, supporting multiparty multimedia sessions. A group communication, supporting multiparty multimedia sessions. A
single RTP session can support multiple participants sending at once, single RTP session can support multiple participants sending at once,
and can also support participants sending multiple simultaneous media and can also support participants sending multiple simultaneous media
streams. Examples of the latter might include a participant with streams. Examples of the latter might include a participant with
multiple cameras who chooses to send multiple views of a scene, or a multiple cameras who chooses to send multiple views of a scene, or a
participant that sends audio and video flows multiplexed in a single participant that sends audio and video flows multiplexed in a single
RTP session. Rules for handling RTP sessions containing multiple RTP session. Rules for handling RTP sessions containing multiple
media streams are described in [RFC3550] with some clarifications in media streams are described in [RFC3550] with some clarifications in
[I-D.ietf-avtcore-rtp-multi-stream]. [I-D.ietf-avtcore-rtp-multi-stream].
An RTP endpoint will have one or more synchronisation sources (SSRCs) An RTP endpoint will have one or more synchronisation sources (SSRCs)
that send and receive media streams (it will have one SSRC for each that send media streams. It will have at least one SSRC for each
media stream it sends). Each SSRC has to send RTCP sender reports media stream it sends, and might use multiple SSRCs when using media
corresponding to the RTP packets it sends, and receiver reports for scalability features [RFC6190], forward error correction, RTP
traffic it receives. That is, every SSRC will send RTCP packets to retransmission [RFC4588], or similar mechanisms. An endpoint that is
report on every other SSRC. This rule is simple, but can be quite not sending any media streams, will have at least one SSRC to use for
inefficient for endpoints that send large numbers of media streams in reporting and any feedback messages. Each SSRC has to send RTCP
a single RTP session. Consider a session comprising ten sender reports corresponding to the RTP packets it sends, and
participants, each sending three media streams with their own SSRC. receiver reports for traffic it receives. That is, every SSRC will
There will be 30 SSRCs in such an RTP session, and 30 RTCP reception send RTCP packets to report on every other SSRC. This rule is
reports will be sent per reporting interval as each SSRC reports on simple, but can be quite inefficient for endpoints that send large
all the others. However, the three SSRCs comprising each participant numbers of media streams in a single RTP session. Consider a session
will almost certainly see identical reception quality, since they are comprising ten participants, each sending three media streams with
co-located. If there was a way to indicate that several SSRCs are their own SSRC. There will be 30 SSRCs in such an RTP session, and
co-located, and see the same reception quality, then two-thirds of 30 RTCP reception reports will be sent per reporting interval as each
those RTCP reports could be suppressed. SSRC reports on all the others. However, the three SSRCs comprising
each participant will almost certainly see identical reception
quality, since they are co-located. 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, Reporting Groups. This This memo defines such an RTCP extension, RTCP Reporting Groups.
extension is used to indicate the SSRCs that originate from the same This extension is used to indicate the SSRCs that originate from the
endpoint, and therefore have identical reception quality, allowing same endpoint, and therefore have identical reception quality, hence
the endpoint to suppress unnecessary RTCP reception reports. allowing the endpoints to suppress unnecessary RTCP reception quality
reports.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
3. Grouping of RTCP Reception Statistics and Other Feedback 3. RTCP Reporting Groups
3.1. Semantics and Behavior of 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
on behalf of the rest of the reporting group, reducing the number of
RTCP packets that need to be sent without loss of information.
An RTCP Reporting Group indicates that a set of sources (SSRCs) that 3.1. Semantics and Behaviour of RTCP Reporting Groups
originate from a single entity (endpoint or middlebox) in an RTP
session, and therefore all the sources in the group have an identical
view of the network. If reporting groups are in use, two sources
SHOULD be put into the same 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. Sources with different views of
the network MUST NOT be put into the same reporting group.
If reporting groups are in use, an endpoint MUST NOT send reception A group of co-located SSRCs that see identical network conditions can
reports from one source in a reporting group about another one in the form an RTCP reporting group. If reporting groups are in use, an RTP
same group ("self-reports"). Similarly, an endpoint MUST NOT send endpoint with multiple SSRCs MAY put those SSRCs into a reporting
reception reports about a remote media source from more than one group if their view of the network is identical; i.e., if they report
source in a reporting group ("cross-reports"). Instead, it MUST pick on traffic received at the same interface of an RTP endpoint. SSRCs
one of its local media sources as the "reporting" source for each with different views of the network MUST NOT be put into the same
remote media source, and use it to send reception reports about that reporting group.
remote source; all the other media sources in the reporting group
MUST NOT send any reception reports about that remote media source.
This reporting source MUST also be the source for any RTP/AVPF An endpoint that has combined its SSRCs into an RTCP reporting group
Feedback [RFC4585] or Extended Report (XR) [RFC3611] packets about will choose one (or a subset) of those SSRCs as a "reporting source"
the corresponding remote sources as well. If a reporting source for that RTCP reporting group. A reporting source will send RTCP SR/
leaves the session (i.e., if it sends a BYE, or leaves the group RR reception quality reports on behalf of the other members of the
without sending BYE under the rules of [RFC3550] section 6.3.7), RTCP reporting group. A reporting source MUST suppress the RTCP SR/
another reporting source MUST be chosen if any members of the group RR reports that relate to other members of the reporting group, and
still exist. 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.
An endpoint or middlebox MAY use multiple sources as reporting If there are large numbers of remote SSRCs in the RTP session, then
sources; however, each reporting source MUST have non-overlapping the reception quality reports generated by the reporting source might
sets of remote SSRCs it reports on. This is primarily to be done grow too large to fit into a single compound RTCP packet, forcing the
when the reporting source's number of reception report blocks is so reporting source to use a round-robin policy to determine what remote
large that it would be forced to round-robin around the sources. SSRCs it includes in each compound RTCP packet, and so reducing the
Thus, by splitting the reports among several reporting SSRCs, more frequency of reports on each SSRC. To avoid this, in sessions with
consistent reporting can be achieved. 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.
If RTP/AVPF feedback is in use, a reporting source MAY send immediate An endpoint SHOULD NOT create an RTCP reporting group that comprises
or early feedback at any point when any member of the reporting group only a single local SSRC (i.e., an RTCP reporting group where the
could validly do so. 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.
An endpoint SHOULD NOT create single-source reporting groups, unless If a reporting source leaves the RTP session (i.e., if it sends a
it is anticipated that the group might have additional sources added RTCP BYE packet, or leaves the session without sending BYE under the
to it in the future. rules of [RFC3550] section 6.3.7), the remaining members of the RTCP
reporting group MUST either (a) have another reporting source, if
existing, report on the remote SSRCs the leaving SSRC reported on,
(b) choose a new reporting source, or (c) disband the RTCP reporting
group and begin sending reception quality reports following [RFC3550]
and [I-D.ietf-avtcore-rtp-multi-stream].
3.2. Determine the Report Group The RTCP timing rules assign different bandwidth fractions to senders
and receivers. This lets senders to 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.
A remote RTP entity, such as an endpoint or a middlebox needs to be 3.2. Identifying Members of an RTCP Reporting Group
able to determine the report group used by another RTP entity. To
achieve this goal two RTCP extensions have been defined. For the
SSRCs that are reporting on behalf of the reporting group, an SDES
item RGRP has been defined for providing the report group with an
identifier. For SSRCs that aren't reporting on any peer SSRC a new
RTCP packet type is defined. This RTCP packet type "Reporting
Sources" lists the SSRC that are reporting on this SSRC's behalf.
This divided approach has been selected for the following reasons: 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).
1. To enable an explicit indication of who reports on this SSRC's 3.2.1. Definition and Use of the RTCP RGRP SDES Item
behalf. Being explicit prevents the remote entity from detecting
that is missing the reports if there issues with the reporting
SSRC's RTCP packets.
2. To enable explicit identification of the SSRCs that are actively A new RTCP SDES item is defined to identify an RTCP reporting group.
reporting as one entity. This 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.
3.3. RTCP Packet Reporting Group's Reporting Sources The RTCP Source Description (SDES) RGRP item is defined. 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).
This section defines a new RTCP packet type called "Reporting Group's Syntactically, the format of the RTCP SDES RGRP item is identical to
Reporting Sources" (RGRS). It identifies the SSRC(s) that report on that of the RTCP SDES CNAME item [RFC7022]. The value of the RTCP
behalf of the SSRC that is the sender of the RGRS packet. SDES RGRP item MUST be chosen with the same concerns about global
uniqueness and the same privacy considerations as the RTCP SDES CNAME
them. The value of the RTCP SDES RGRP item MUST be stable throughout
the lifetime of the reporting group, even if the some or all of the
reporting sources change their SSRC due to collisions, or if the set
of reporting sources changes.
This packet consists of the fixed RTCP packet header which indicates An RTP mixer or translator that forwards RTCP SR or RR packets from
the packet type, the number of reporting sources included and the members of a reporting group MUST forward the corresponding RTCP SDES
SSRC which behalf the reporting SSRCs report on. This is followed by RGRP items as well, even if it otherwise strips SDES items other than
the list of reporting SSRCs. 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
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 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 | |V=2|P| SC | PT=RGRS(TBA) | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender | | SSRC of packet sender |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
: SSRC for Reporting Source : : List of SSRCs for the Reporting Source(s) :
: ... :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The RTCP Packets field has the following definition. The fields in the RTCP RGRS packet have the following definition:
version (V): This field identifies the RTP version. The current version (V): This field identifies the RTP version. The current RTP
version is 2. version is 2.
padding (P): 1 bit If set, the padding bit indicates that the packet padding (P): If set, the padding bit indicates that the RTCP packet
contains additional padding octets at the end that are not part of contains additional padding octets at the end that are not part of
the control information but are included in the length field. See the control information but are included in the length field. See
[RFC3550]. [RFC3550].
Source Count (SC): 5 bits Indicating the number of reporting SSRCs Source Count (SC): Indicates the number of reporting source SSRCs
(1-31) that are included in this RTCP packet type. 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 This is the RTCP packet type that Payload type (PT): The RTCP packet type number that identifies the
identifies the packet as being an RTCP FB message. The RGRS RTCP packet as being an RTCP RGRS packet. The RGRS RTCP packet has the
packet has the value [TBA]. value [TBA].
Length: 16 bits The length of this packet in 32-bit words minus one, 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: The length of this packet in 32-bit words minus one,
including the header and any padding. This is in line with the including the header and any padding. This is in line with the
definition of the length field used in RTCP sender and receiver definition of the length field used in RTCP sender and receiver
reports [RFC3550]. 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 SSRC of packet sender: The SSRC of the sender of this packet.
packet which indicates which SSRCs that reports on its behalf,
instead of reporting itself.
SSRC for Reporting Source: A variable number (as indicated by Source List of SSRCs for the Reporting Source(s): A variable length size
Count) of 32-bit SSRC values. Each SSRC is an reporting SSRC (as indicated by SC header field) of the 32 bit SSRC values of the
belonging to the same Report Group. reporting sources for the RTCP Reporting Group of which the packet
sender is a member.
Each RGRS packet MUST contain at least one reporting SSRC. In case Every source that belongs to an RTCP reporting group but is not a
the reporting SSRC field is insufficient to list all the SSRCs that reporting source MUST include an RTCP RGRS packet in every compound
are reporting in this report group, the SSRC SHALL round robin around RTCP packet in which it sends an RR or SR packet (i.e., in every RTCP
the reporting sources. 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.
Any RTP mixer or translator which forwards SR or RR packets from An RTP mixer or translator that forwards RTCP SR or RR packets from
members of a reporting group MUST forward the corresponding RGRS RTCP members of a reporting group MUST also forward the corresponding RGRS
packet as well. 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.4. RTCP Source Description (SDES) item for Reporting Groups 3.3. Interactions with the RTP/AVPF Feedback Profile
A new RTCP Source Description (SDES) item is defined for the purpose Use of the RTP/AVPF Feedback Profile [RFC4585] allows SSRCs to send
of identifying reporting groups. 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 Source Description (SDES) item "RGRP" is sent by a reporting The members of an RTCP reporting group will all see identical network
group's reporting SSRC. Syntactically, its format is the same as the conditions. Accordingly, one might therefore think that it doesn't
RTCP SDES CNAME item [RFC6222], and MUST be chosen with the same matter which SSRC in the reporting group sends the RTP/AVPF feedback
global-uniqueness and privacy considerations as CNAME. This name or codec control messages. There are, however, some cases where the
MUST be stable across the lifetime of the reporting group, even if sender of the feedback/codec control message has semantic importance,
the SSRC of a reporting source changes. 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.
Every source which belongs to a reporting group MUST either include Each member of an RTCP reporting group SHOULD therefore send RTP/AVPF
an RGRP SDES item in an SDES packet (if it is a reporting source), or feedback/codec control messages independently of the other members of
an RGRS packet (if it is not), in every compound RTCP packet in which the reporting group, to respect the semantic meaning of the message
it sends an RR or SR packet (i.e., in every RTCP packet it sends, sender. The suppression rules of [RFC4585] will ensure that only a
unless Reduced-Size RTCP [RFC5506] is in use). 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.
Any RTP mixer or translator which forwards SR or RR packets from It is important to note that the RTP/AVPF timing rules operate on a
members of a reporting group MUST forward the corresponding RGRP SDES per-SSRC basis. Using a single reporting source to send all feedback
items as well, even if it otherwise strips SDES items other than for a reporting group will hence limit the amount of feedback that
CNAME. 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,
so they are relevant to only some members of a reporting group. Such
XR reports MUST be sent by the source to which they are relevant, and
MUST NOT be included in the common report sent by the reporting
source. This can mean that some sources send XR packets in a
compound packet that contains an empty SR/RR packet and that the time
period covered by the XR packet is different to that covered by the
SR/RR packet. If it is important that the XR packet and SR/RR packet
cover the same time period, then that source SHOULD be removed from
the RTCP reporting group, and sent standard RTCP packets.
3.5. Middlebox Considerations 3.5. Middlebox Considerations
This section discusses middlebox considerations for Reporting groups. This section discusses middlebox considerations for Reporting groups.
To be expanded. (TBD: write this section)
3.6. SDP signaling for Reporting Groups 3.6. SDP Signalling for Reporting Groups
TBD 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. A participant that proposes
the use of RTCP Reporting Groups SHALL itself support the reception
of RTCP Reporting Groups.
An offering client that wishes to use RTCP Reporting Groups MUST
include the attribute "a=rtcp-rgrp" in the SDP offer. If "a=rtcp-
rgrp" is present in the offer SDP, the answerer that supports RTCP
Reporting Groups and wishes to use it SHALL include the "a=rtcp-rgrp"
attribute in the answer.
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.
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
3.7. Bandwidth Benefits of RTCP Reporting Groups
To understand the benefits of RTCP reporting groups, consider a To understand the benefits of RTCP reporting groups, consider a
scenario in which the two endpoints in a session each have a hundred scenario in which the two endpoints in a session each have a hundred
sources, of which eight each are sending within any given reporting sources, of which eight each are sending within any given reporting
interval. interval.
For ease of analysis, we can make the simplifying approximation that For ease of analysis, we can make the simplifying approximation that
the duration of the RTCP reporting interval is equal to the total 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 size of the RTCP packets sent during an RTCP interval, divided by the
RTCP bandwidth. (This will be approximately true in scenarios where RTCP bandwidth. (This will be approximately true in scenarios where
the bandwidth is not so high that the minimum RTCP interval is the bandwidth is not so high that the minimum RTCP interval is
skipping to change at page 7, line 39 skipping to change at page 10, line 42
traffic consists of report blocks. traffic consists of report blocks.
If reporting groups are used, however, there is only 0.4 kB of If reporting groups are used, however, there is only 0.4 kB of
reports per interval, with no loss of useful information. reports per interval, with no loss of useful information.
Additionally, there will be (assuming 16-byte RGRPs, and a single Additionally, there will be (assuming 16-byte RGRPs, and a single
reporting source per reporting group) an additional 2.4 kB per cycle reporting source per reporting group) an additional 2.4 kB per cycle
of RGRP SDES items and RGRS packets. Put another way, the unmodified of RGRP SDES items and RGRS packets. Put another way, the unmodified
[RFC3550] reporting interval is approximately 8.9 times longer than [RFC3550] reporting interval is approximately 8.9 times longer than
if reporting groups are in use. if reporting groups are in use.
3.8. Consequences of RTCP Reporting Groups 4.2. Compatibility of RTCP Reporting Groups
The RTCP traffic generated by receivers using RTCP Reporting Groups The RTCP traffic generated by receivers using RTCP Reporting Groups
might appear, to observers unaware of these semantics, to be might appear, to observers unaware of these semantics, to be
generated by receivers who are experiencing a network disconnection, generated by receivers who are experiencing a network disconnection,
as the non-reporting sources appear not to be receiving a given as the non-reporting sources appear not to be receiving a given
sender at all. sender at all.
This could be a potentially critical problem for such a sender using 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 RTCP for congestion control, as such a sender might think that it is
sending so much traffic that it is causing complete congestion sending so much traffic that it is causing complete congestion
skipping to change at page 8, line 15 skipping to change at page 11, line 20
However, such an interpretation of the session statistics would However, such an interpretation of the session statistics would
require a fairly sophisticated RTCP analysis. Any receiver of RTCP require a fairly sophisticated RTCP analysis. Any receiver of RTCP
statistics which is just interested in information about itself needs statistics which is just interested in information about itself needs
to be prepared that any given reception report might not contain to be prepared that any given reception report might not contain
information about a specific media source, because reception reports information about a specific media source, because reception reports
in large conferences can be round-robined. in large conferences can be round-robined.
Thus, it is unclear to what extent such backward compatibility issues Thus, it is unclear to what extent such backward compatibility issues
would actually cause trouble in practice. would actually cause trouble in practice.
4. Security Considerations 5. Security Considerations
The security considerations of [RFC3550] and The security considerations of [RFC3550] and
[I-D.ietf-avtcore-rtp-multi-stream] apply. [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.
(tbd: any security considerations due to these extensions?) 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.
5. IANA Considerations 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 [I-D.ietf-avtcore-rtp-security-options].
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
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: please replace "TBA" with the IANA-assigned (Note to the RFC-Editor: please replace "TBA" with the IANA-assigned
value, and "XXXX" with the number of this document, prior to value, and "XXXX" with the number of this document, prior to
publication as an RFC.) publication as an RFC.)
The IANA is requested to register one new RTCP SDES items in the The IANA is requested to register one new RTCP SDES items in the
"RTCP SDES Item Types" registry, as follows: "RTCP SDES Item Types" registry, as follows:
Value Abbrev Name Reference Value Abbrev Name Reference
TBA RGRP Reporting Group [RFCXXXX] TBA RGRP Reporting Group Identifier [RFCXXXX]
Figure 1: Item for the IANA Source Attribute Registry Figure 1: Item for the IANA Source Attribute Registry
The IANA is also requested to register one new RTCP packet type as The IANA is also requested to register one new RTCP packet type as
follows: follows:
Value Abbrev Name Reference Value Abbrev Name Reference
TBA RGRR Reporting Group Reporting Sources [RFCXXXX] TBA RGRS Reporting Group Reporting Sources [RFCXXXX]
Figure 2: Item for the IANA RTCP Control Packet Types (PT) Registry Figure 2: Item for the IANA RTCP Control Packet Types (PT) Registry
6. References The IANA is also request to register one new SDP attribute "a=rtcp-
rgrp":
6.1. Normative References 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 usage of the RTCP
Reporting Group Extension.
Reference: [RFCXXXX]
Values: See [RFCXXXX]
7. References
7.1. Normative References
[I-D.ietf-avtcore-rtp-multi-stream]
Lennox, J., Westerlund, M., Wu, W., and C. Perkins,
"Sending Multiple Media Streams in a Single RTP Session",
draft-ietf-avtcore-rtp-multi-stream-02 (work in progress),
January 2014.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, July 2003. Applications", STD 64, RFC 3550, July 2003.
[RFC6222] Begen, A., Perkins, C., and D. Wing, "Guidelines for [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Choosing RTP Control Protocol (RTCP) Canonical Names Description Protocol", RFC 4566, July 2006.
(CNAMEs)", RFC 6222, April 2011.
6.2. Informative References [RFC7022] Begen, A., Perkins, C., Wing, D., and E. Rescorla,
"Guidelines for Choosing RTP Control Protocol (RTCP)
Canonical Names (CNAMEs)", RFC 7022, September 2013.
[I-D.ietf-avtcore-rtp-multi-stream] 7.2. Informative References
Lennox, J., Westerlund, M., Wu, W., and C. Perkins,
"Sending Multiple Media Streams in a Single RTP Session", [I-D.ietf-avtcore-rtp-security-options]
draft-ietf-avtcore-rtp-multi-stream-01 (work in progress), Westerlund, M. and C. Perkins, "Options for Securing RTP
July 2013. Sessions", draft-ietf-avtcore-rtp-security-options-10
(work in progress), January 2014.
[RFC2326] Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time
Streaming Protocol (RTSP)", RFC 2326, April 1998.
[RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session
Announcement Protocol", RFC 2974, October 2000.
[RFC3611] Friedman, T., Caceres, R., and A. Clark, "RTP Control [RFC3611] Friedman, T., Caceres, R., and A. Clark, "RTP Control
Protocol Extended Reports (RTCP XR)", RFC 3611, November Protocol Extended Reports (RTCP XR)", RFC 3611, November
2003. 2003.
[RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
Norrman, "The Secure Real-time Transport Protocol (SRTP)",
RFC 3711, March 2004.
[RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
"Extended RTP Profile for Real-time Transport Control "Extended RTP Profile for Real-time Transport Control
Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, July Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, July
2006. 2006.
[RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
July 2006.
[RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman,
"Codec Control Messages in the RTP Audio-Visual Profile
with Feedback (AVPF)", RFC 5104, February 2008.
[RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size
Real-Time Transport Control Protocol (RTCP): Opportunities Real-Time Transport Control Protocol (RTCP): Opportunities
and Consequences", RFC 5506, April 2009. and Consequences", RFC 5506, April 2009.
[RFC6190] Wenger, S., Wang, Y.-K., Schierl, T., and A.
Eleftheriadis, "RTP Payload Format for Scalable Video
Coding", RFC 6190, May 2011.
Authors' Addresses Authors' Addresses
Jonathan Lennox Jonathan Lennox
Vidyo, Inc. Vidyo, Inc.
433 Hackensack Avenue 433 Hackensack Avenue
Seventh Floor Seventh Floor
Hackensack, NJ 07601 Hackensack, NJ 07601
US US
Email: jonathan@vidyo.com Email: jonathan@vidyo.com
 End of changes. 59 change blocks. 
167 lines changed or deleted 433 lines changed or added

This html diff was produced by rfcdiff 1.33. The latest version is available from http://tools.ietf.org/tools/rfcdiff/