draft-ietf-avtext-sdes-hdr-ext-01.txt   draft-ietf-avtext-sdes-hdr-ext-02.txt 
Network Working Group M. Westerlund Network Working Group M. Westerlund
Internet-Draft B. Burman Internet-Draft B. Burman
Intended status: Standards Track Ericsson Intended status: Standards Track Ericsson
Expires: November 12, 2015 R. Even Expires: January 7, 2016 R. Even
Huawei Technologies Huawei Technologies
M. Zanaty M. Zanaty
Cisco Systems Cisco Systems
May 11, 2015 July 6, 2015
RTP Header Extension for RTCP Source Description Items RTP Header Extension for RTCP Source Description Items
draft-ietf-avtext-sdes-hdr-ext-01 draft-ietf-avtext-sdes-hdr-ext-02
Abstract Abstract
Source Description (SDES) items are normally transported in RTP Source Description (SDES) items are normally transported in RTP
control protocol (RTCP). In some cases it can be beneficial to speed control protocol (RTCP). In some cases it can be beneficial to speed
up the delivery of these items. Mainly when a new source (SSRC) up the delivery of these items. Mainly when a new source (SSRC)
joins an RTP session and the receivers needs this source's identity, joins an RTP session and the receivers needs this source's identity,
relation to other sources, or its synchronization context, all of relation to other sources, or its synchronization context, all of
which may be fully or partially identified using SDES items. To which may be fully or partially identified using SDES items. To
enable this optimization, this document specifies a new RTP header enable this optimization, this document specifies a new RTP header
skipping to change at page 1, line 41 skipping to change at page 1, line 41
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 November 12, 2015. This Internet-Draft will expire on January 7, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 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
skipping to change at page 2, line 25 skipping to change at page 2, line 25
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 2.1. Requirements Language . . . . . . . . . . . . . . . . . . 3
2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 3
3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Motivation . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. Specification . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Specification . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1. SDES Item Header Extension . . . . . . . . . . . . . . . 5 4.1. SDES Item Header Extension . . . . . . . . . . . . . . . 5
4.1.1. One-Byte Format . . . . . . . . . . . . . . . . . . . 5 4.1.1. One-Byte Format . . . . . . . . . . . . . . . . . . . 5
4.1.2. Two-Byte Format . . . . . . . . . . . . . . . . . . . 6 4.1.2. Two-Byte Format . . . . . . . . . . . . . . . . . . . 6
4.2. Usage of the SDES Item Header Extension . . . . . . . . . 6 4.2. Usage of the SDES Item Header Extension . . . . . . . . . 6
4.2.1. One or Two Byte Headers . . . . . . . . . . . . . . . 6 4.2.1. One or Two Byte Headers . . . . . . . . . . . . . . . 6
4.2.2. MTU and Packet Expansion . . . . . . . . . . . . . . 6 4.2.2. MTU and Packet Expansion . . . . . . . . . . . . . . 7
4.2.3. Transmission Considerations . . . . . . . . . . . . . 7 4.2.3. Transmission Considerations . . . . . . . . . . . . . 7
4.2.4. Different Usages . . . . . . . . . . . . . . . . . . 8 4.2.4. Different Usages . . . . . . . . . . . . . . . . . . 9
4.2.5. SDES Items in RTCP . . . . . . . . . . . . . . . . . 9 4.2.5. SDES Items in RTCP . . . . . . . . . . . . . . . . . 9
4.2.6. Update Flaps . . . . . . . . . . . . . . . . . . . . 10 4.2.6. Update Flaps . . . . . . . . . . . . . . . . . . . . 10
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
5.1. Reservation of the SDES URN sub-space . . . . . . . . . . 10 5.1. Reservation of the SDES URN sub-space . . . . . . . . . . 11
5.2. Registration of SDES Items . . . . . . . . . . . . . . . 11 5.2. Registration of SDES Items . . . . . . . . . . . . . . . 11
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 6. Security Considerations . . . . . . . . . . . . . . . . . . . 12
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 12
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.1. Normative References . . . . . . . . . . . . . . . . . . 12 8.1. Normative References . . . . . . . . . . . . . . . . . . 12
8.2. Informative References . . . . . . . . . . . . . . . . . 13 8.2. Informative References . . . . . . . . . . . . . . . . . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
This specification defines an RTP header extension [RFC3550][RFC5285] This specification defines an RTP header extension [RFC3550][RFC5285]
that can carry RTCP source description (SDES) items. By including that can carry RTCP source description (SDES) items. By including
selected SDES items in an header extension the determination of selected SDES items in a header extension the determination of
relationship and synchronization context for new RTP streams (SSRCs) relationship and synchronization context for new RTP streams (SSRCs)
in an RTP session can be speeded up. Which relationship and what in an RTP session can be optimized. Which relationship and what
information depends on the SDES items carried. This becomes a information depends on the SDES items carried. This becomes a
complement to using only RTCP for SDES Item delivery. complement to using only RTCP for SDES Item delivery.
It is important to note that not all SDES items are appropriate to It is important to note that not all SDES items are appropriate to
transmit using RTP header extensions. Some SDES items performs transmit using RTP header extensions. Some SDES items performs
binding or identifies synchronization context with strict timeliness binding or identifies synchronization context with strict timeliness
requirements, while many other SDES items do not have such requirements, while many other SDES items do not have such
requirements. In addition, security and privacy concerns for the requirements. In addition, security and privacy concerns for the
SDES item information needs to be considered. For example, the Name SDES item information need to be considered. For example, the Name
and Location SDES items are highly sensitive from a privacy and Location SDES items are highly sensitive from a privacy
perspective and should not be transported over the network without perspective and should not be transported over the network without
strong security. No use case has identified where this information strong security. No use case has identified where this information
is required at the same time as the first RTP packets arrive. A few is required at the same time as the first RTP packets arrive. A few
seconds delay before such information is available to the receiver seconds delay before such information is available to the receiver
appears acceptable. Therefore only appropriate SDES items will be appears acceptable. Therefore only appropriate SDES items will be
registered for use with this header extension, such as CNAME. registered for use with this header extension, such as CNAME.
First, some requirements language and terminology is defined. The First, some requirements language and terminology are defined. The
following section motivates why this header extension is sometimes following section motivates why this header extension is sometimes
required or at least provides a significant improvement compared to required or at least provides a significant improvement compared to
waiting for regular RTCP packet transmissions of the information. waiting for regular RTCP packet transmissions of the information.
This is followed by a specification of the header extension and usage This is followed by a specification of the header extension and usage
recommendations. Next, a sub-space of the header-extension URN is recommendations. Next, a sub-space of the header-extension URN is
defined to be used for existing and future SDES items, and then the defined to be used for existing and future SDES items, and then the
appropriate SDES items are registered. appropriate existing SDES items are registered.
2. Definitions 2. Definitions
2.1. Requirements Language 2.1. Requirements Language
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 RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
2.2. Terminology 2.2. Terminology
skipping to change at page 4, line 12 skipping to change at page 4, line 12
Participant Participant
3. Motivation 3. Motivation
Source Description (SDES) items are associated with a particular SSRC Source Description (SDES) items are associated with a particular SSRC
and thus RTP stream. The source description items provide various and thus RTP stream. The source description items provide various
meta data associated with the SSRC. How important it is to have this meta data associated with the SSRC. How important it is to have this
data no later than when receiving the first RTP packets depends on data no later than when receiving the first RTP packets depends on
the item itself. The CNAME item is one item that is commonly needed the item itself. The CNAME item is one item that is commonly needed
if not at reception of the first RTP packet for this SSRC, then at either at reception of the first RTP packet for this SSRC, or at
least by the time the first media can be played out. If not, the least by the time the first media can be played out. If it is not
synchronization context cannot be determined and thus any related available, the synchronization context cannot be determined and thus
streams cannot be correctly synchronized. Thus, this is a valuable any related streams cannot be correctly synchronized. Thus, this is
example for having this information early when a new RTP stream is a valuable example for having this information early when a new RTP
received. stream is received.
The main reason for new SSRCs in an RTP session is when media sources The main reason for new SSRCs in an RTP session is when media sources
are added. This either because an end-point is adding a new actual are added. This can be either because an end-point is adding a new
media source, or additional participants in a multi-party session are actual media source, or additional participants in a multi-party
added to the session. Another reason for a new SSRC can be an SSRC session are added to the session. Another reason for a new SSRC can
collision that forces both colliding parties to select new SSRCs. be an SSRC collision that forces both colliding parties to select new
SSRCs.
For the case of rapid media synchronization, one may use the RTP For the case of rapid media synchronization, one may use the RTP
header extension for Rapid Synchronization of RTP Flows [RFC6051]. header extension for Rapid Synchronization of RTP Flows [RFC6051].
This header extension carries the clock information present in the This header extension carries the clock information present in the
RTCP sender report (SR) packets. It however assumes that the CNAME RTCP sender report (SR) packets. It however assumes that the CNAME
binding is known, which can be provided via signaling in some cases, binding is known, which can be provided via signaling [RFC5576] in
but not all. Thus an RTP header extension for carrying SDES items some cases, but not all. Thus an RTP header extension for carrying
like CNAME is a powerful combination to enable rapid synchronization SDES items like CNAME is a powerful combination to enable rapid
in all cases. synchronization in all cases.
The Rapid Synchronization of RTP Flows specification does provide an The Rapid Synchronization of RTP Flows specification does provide an
analysis of the initial synchronization delay for different sessions analysis of the initial synchronization delay for different sessions
depending on number of receivers as well as on session bandwidth depending on number of receivers as well as on session bandwidth
(Section 2.1 of [RFC6051]). These results are applicable also for (Section 2.1 of [RFC6051]). These results are applicable also for
other SDES items that have a similar time dependency until the other SDES items that have a similar time dependency until the
information can be sent using RTCP. Thus the benefit of reducing the information can be sent using RTCP. These figures can be used to
initial delay before information is available can be determined for determine the benefit of reducing the initial delay before
some use cases from these figures. information is available for some use cases.
That document also discusses the case of late joiners, and defines an That document also discusses the case of late joiners, and defines an
RTCP Feedback format to request synchronization information, which is RTCP Feedback format to request synchronization information, which is
another potential use case for SDES items in RTP header extension. another potential use case for SDES items in RTP header extension.
It would for example be natural to include CNAME SDES item with the It would for example be natural to include CNAME SDES item with the
header extension containing the NTP formatted reference clock to header extension containing the NTP formatted reference clock to
ensure synchronization. ensure synchronization.
There is an additional, newly defined SDES item that can benefit from There is an another SDES item that can benefit from timely delivery,
timely delivery, and an RTP header extension SDES item is therefore and an RTP header extension SDES item was therefore defined for it:
defined for it:
MID: This is a media description identifier that matches the value MID: This is a media description identifier that matches the value
of the SDP a=mid attribute, to associate RTP streams multiplexed of the Session Description Protocol (SDP) [RFC4566] a=mid
on the same transport with their respective SDP media description attribute, to associate RTP streams multiplexed on the same
as described in [I-D.ietf-mmusic-sdp-bundle-negotiation]. transport with their respective SDP media description as described
in [I-D.ietf-mmusic-sdp-bundle-negotiation].
4. Specification 4. Specification
This section first specifies the SDES item RTP header extension This section first specifies the SDES item RTP header extension
format, followed by some usage considerations. format, followed by some usage considerations.
4.1. SDES Item Header Extension 4.1. SDES Item Header Extension
The RTP header extension scheme that allows for multiple extensions An RTP header extension scheme allowing for multiple extensions is
to be included is defined in "A General Mechanism for RTP Header defined in "A General Mechanism for RTP Header Extensions" [RFC5285].
Extensions" [RFC5285]. That specification defines both short and That specification defines both short and long item headers. The
long item headers. The short headers (One-byte) are restricted to 1 short headers (One-byte) are restricted to 1 to 16 bytes of data,
to 16 bytes of data, while the long format (Two-byte) supports a data while the long format (Two-byte) supports a data length of 0 to 255
length of 0 to 255 bytes. Thus the RTP header extension formats are bytes. Thus the RTP header extension formats are capable of
capable of supporting any SDES item from a data length perspective. supporting any SDES item from a data length perspective.
The ID field, independent of short or long format, identifies both The ID field, independent of short or long format, identifies both
the type of RTP header extension and, in the case of the SDES item the type of RTP header extension and, in the case of the SDES item
header extension, the type of SDES item. The mapping is done in header extension, the type of SDES item. The mapping is done in
signaling by identifying the header extension and SDES item type signaling by identifying the header extension and SDES item type
using a URN, which is defined in the IANA consideration (Section 5) using a URN, which is defined in the IANA consideration (Section 5)
for the known SDES items appropriate to use. for the known SDES items appropriate to use.
4.1.1. One-Byte Format 4.1.1. One-Byte Format
The one-byte header format for an SDES item extension element The one-byte header format for an SDES item extension element
consists of the One-Byte header (defined in Section 4.2 of consists of the One-Byte header (defined in Section 4.2 of
[RFC5285]), which consists of a 4-bit ID followed by a 4-bit length [RFC5285]), which consists of a 4-bit ID followed by a 4-bit length
field (len) that identifies how many bytes (len value +1) of data field (len) that identifies the number of data bytes (len value +1)
following the header. The data part consists of len+1 bytes of UTF-8 following the header. The data part consists of len+1 bytes of UTF-8
text. The type of text is determined by the ID field value and its text. The type of text and its mapping to the SDES item type is
mapping to the type of SDES item. determined by the ID field value.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ID | len | SDES Item text value ... | | ID | len | SDES Item text value ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1 Figure 1
4.1.2. Two-Byte Format 4.1.2. Two-Byte Format
The two-byte header format for an SDES item extension element The two-byte header format for an SDES item extension element
consists of the two-byte header (defined in Section 4.3 of consists of the two-byte header (defined in Section 4.3 of
[RFC5285]), which consists of an 8-bit ID followed by an 8-bit length [RFC5285]), which consists of an 8-bit ID followed by an 8-bit length
field (len) that identifies how many bytes of data that follows the field (len) that identifies the number of data bytes following the
header. The data part consists of len bytes of UTF-8 text. The type header. The data part consists of len bytes of UTF-8 text. The type
of text is determined by the ID field value and its mapping to the of text and its mapping to the SDES item type is determined by the ID
type of SDES item. field value.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ID | len | SDES Item text value ... | | ID | len | SDES Item text value ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2 Figure 2
4.2. Usage of the SDES Item Header Extension 4.2. Usage of the SDES Item Header Extension
This section discusses various usage considerations; which form of This section discusses various usage considerations; which form of
header extension to use, the packet expansion, and when to send SDES header extension to use, the packet expansion, and when to send SDES
items in header extension. items in header extension.
4.2.1. One or Two Byte Headers 4.2.1. One or Two Byte Headers
The RTP header extensions for SDES items MAY use either the one-byte The RTP header extensions for SDES items MAY use either the one-byte
or two-byte header formats, depending on the text value size for the or two-byte header formats, depending on the text value size for the
used SDES items and the requirement from any other header extensions used SDES items and the requirement from any other header extensions
used. The one-byte header SHOULD be used when all non SDES item used. The one-byte header SHOULD be used when all non SDES item
header extensions supports the one-byte format and all SDES item text header extensions supports the one-byte format and all SDES item text
values contain at most 16 bytes. Note that the RTP header extension values contain at most 16 bytes. Note that the RTP header extension
specification does not allow mixing one-byte and two-byte headers for specification does not allow mixing one-byte and two-byte headers for
the same RTP stream (SSRC), so if the value size of any of the SDES the same RTP stream (SSRC), so if the value size of any of the SDES
items value requires the two-byte header, the all other header items value requires the two-byte header, then all other header
extensions MUST also use the two-byte header format. extensions MUST also use the two-byte header format.
For example using CNAMEs that are generated according to "Guidelines For example using CNAMEs that are generated according to "Guidelines
for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)" for Choosing RTP Control Protocol (RTCP) Canonical Names (CNAMEs)"
[RFC7022], using short term persistent values, and if 96-bit random [RFC7022], using short term persistent values, and if 96-bit random
values prior to base64 encoding are sufficient, then they will fit values prior to base64 encoding are sufficient, then they will fit
into the One-Byte header format. into the One-Byte header format.
An RTP middlebox needs to take care choosing between one byte headers
to two-byte headers when creating the first packets for an outgoing
stream (SSRC) with header extensions. First of all it needs to
consider all the header extensions that may potentially be used.
Secondly, it needs to know the size of the SDES items that are going
to be included, and use two bytes headers if any are longer than 16
bytes. An RTP middlebox that forwards a stream, i.e. not mixing it
or combing it with other streams, may be able to base its choice on
the header size in incoming streams. This is assuming that the
middlebox does not modify the stream or add additional header
extensions to the stream it sends, in which case it needs to make its
own decision.
4.2.2. MTU and Packet Expansion 4.2.2. MTU and Packet Expansion
The RTP packet size will clearly increase when it includes the header The RTP packet size will clearly increase when a header extension is
extension. How much depends on which header extensions and their included. How much depends on the type of header extensions and
data parts. The SDES items can vary in size. There are also some their data content. The SDES items can vary in size. There are also
use-cases which require transmitting multiple SDES items in the same some use-cases that require transmitting multiple SDES items in the
packet to ensure that all relevant data reaches the receiver. An same packet to ensure that all relevant data reaches the receiver.
example of that is when you need both the CNAME, a MID, and the rapid An example of that is when both CNAME, a MID, and the rapid time
time synchronization extension from RFC 6051. Such a combination is synchronization extension from RFC 6051 are needed. Such a
quite likely to result in at least 16+3+8 bytes of data plus the combination is quite likely to result in at least 16+3+8 bytes of
headers, which will be another 7 bytes for one-byte headers plus two data plus the headers, which will be another 7 bytes for one-byte
bytes of padding headers to make the complete header extension word headers, plus two bytes of header padding to make the complete header
aligned, thus in total 36 bytes. extension word aligned, thus in total 36 bytes.
The packet expansion can cause an issue when it cannot be taken into If the packet expansion cannot be taken into account when producing
account when producing the RTP payload. An RTP payload that is the RTP payload it can cause an issue. An RTP payload that is
created to meet a particular IP level Maximum Transmission Unit created to meet a particular IP level Maximum Transmission Unit
(MTU), taking the addition of IP/UDP/RTP headers but not RTP header (MTU), taking the addition of IP/UDP/RTP headers but not RTP header
extensions into account could exceed the MTU when the header extensions into account, could exceed the MTU when the header
extensions are present, thus resulting in IP fragmentation. IP extensions are present, thus resulting in IP fragmentation. IP
fragmentation is known to negatively impact the loss rate due to fragmentation is known to negatively impact the loss rate due to
middleboxes unwilling or not capable of dealing with IP fragments, as middleboxes unwilling or not capable of dealing with IP fragments, as
well as increasing the target surface for other types of packet well as increasing the target surface for other types of packet
losses. losses.
As this is a real issue, the media encoder and payload packetizer As this is a real issue, the media encoder and payload packetizer
should be flexible and be capable of handling dynamically varying should be flexible and be capable of handling dynamically varying
payload size restrictions to counter the packet expansion caused by payload size restrictions to counter the packet expansion caused by
header extensions. If that is not possible, some reasonable worst header extensions. If that is not possible, some reasonable worst
skipping to change at page 7, line 42 skipping to change at page 8, line 7
The general recommendation is to only send header extensions when The general recommendation is to only send header extensions when
needed. This is especially true for SDES items that can be sent in needed. This is especially true for SDES items that can be sent in
periodic repetitions of RTCP throughout the whole session. Thus, the periodic repetitions of RTCP throughout the whole session. Thus, the
different usages (Section 4.2.4) have different recommendations. different usages (Section 4.2.4) have different recommendations.
First some general considerations for getting the header extensions First some general considerations for getting the header extensions
delivered to the receiver: delivered to the receiver:
1. The probability for packet loss and burst loss determine how many 1. The probability for packet loss and burst loss determine how many
repetitions of the header extensions will be required to reach a repetitions of the header extensions will be required to reach a
targeted delivery probability, and if burst loss is likely what targeted delivery probability, and if burst loss is likely, what
dispersion would be needed to avoid getting multiple header distribution would be needed to avoid getting all repetitions of
extensions lost in a single burst. the header extensions lost in a single burst.
2. If a set of packets are all needed to enable decoding, there is 2. If a set of packets are all needed to enable decoding, there is
commonly no reason for including the header extension in all of commonly no reason for including the header extension in all of
these packets, as they share fate. Instead, at most one instance these packets, as they share fate. Instead, at most one instance
of the header extension per independently decodable set of media of the header extension per independently decodable set of media
data would be a more efficient use of the bandwidth. data would be a more efficient use of the bandwidth.
3. How early the SDES item information is needed, from the first 3. How early the SDES item information is needed, from the first
received RTP data or only after some set of packets are received, received RTP data or only after some set of packets are received,
can guide if the header extension(s) should be in all of the can guide if the header extension(s) should be in all of the
first N packets or be included only once per set of packets, for first N packets or be included only once per set of packets, for
example once per video frame. example once per video frame.
4. The use of RTP level robustness mechanisms, such as RTP 4. The use of RTP level robustness mechanisms, such as RTP
retransmission [RFC4588], or Forward Error Correction, e.g., retransmission [RFC4588], or Forward Error Correction, e.g.,
[RFC5109] may treat packets differently from a robustness [RFC5109] may treat packets differently from a robustness
perspective, and SDES header extensions should be added to perspective, and SDES header extensions should be added to
packets that get a treatment corresponding to the relative packets that get a treatment corresponding to the relative
importance of receiving the information. importance of receiving the information.
In summary, the number of header extension transmissions should be As a summary, the number of header extension transmissions should be
tailored to a desired probability of delivery taking the receiver tailored to a desired probability of delivery taking the receiver
population size into account. For the very basic case, N repetitions population size into account. For the very basic case, N repetitions
of the header extensions should be sufficient, but may not be of the header extensions should be sufficient, but may not be
optimal. N is selected so that the header extension target delivery optimal. N is selected so that the header extension target delivery
probability reaches 1-P^N, where P is the probability of packet loss. probability reaches 1-P^N, where P is the probability of packet loss.
For point to point or small receiver populations, it might also be For point to point or small receiver populations, it might also be
possible to use feedback, such as RTCP, to determine when the possible to use feedback, such as RTCP, to determine when the
information in the header extensions has reached all receivers and information in the header extensions has reached all receivers and
stop further repetitions. Feedback that can be used includes the stop further repetitions. Feedback that can be used includes the
RTCP XR Loss RLE report block [RFC3611], which will indicate RTCP XR Loss RLE report block [RFC3611], which will indicate
skipping to change at page 8, line 45 skipping to change at page 9, line 10
covering the RTP packets with the header extension. Note that loss covering the RTP packets with the header extension. Note that loss
of an RTCP packet reporting on an interval where RTP header extension of an RTCP packet reporting on an interval where RTP header extension
packets were sent, does not necessarily mean that the RTP header packets were sent, does not necessarily mean that the RTP header
extension packets themselves were lost. extension packets themselves were lost.
4.2.4. Different Usages 4.2.4. Different Usages
4.2.4.1. New SSRC 4.2.4.1. New SSRC
A new SSRC joins an RTP session. As this SSRC is completely new for A new SSRC joins an RTP session. As this SSRC is completely new for
everyone, the goal is to ensure, with high probability, that all everyone, the goal is to ensure, with high probability, that all RTP
receivers receives the information in the header extension. Thus, session participants receives the information in the header
header extension transmission strategies that allow some margins in extension. Thus, header extension transmission strategies that allow
the delivery probability should be considered. some margins in the delivery probability should be considered.
4.2.4.2. Late Joiner 4.2.4.2. Late Joiner
In a multi-party RTP session where one or a small number of receivers In a multi-party RTP session where one or a small number of receivers
join a session where the majority of receivers already have all join a session where the majority of receivers already have all
necessary information, the use of header extensions to deliver necessary information, the use of header extensions to deliver
relevant information should be tailored to reach the new receivers. relevant information should be tailored to reach the new receivers.
The trigger to send header extensions can for example either be RTCP The trigger to send header extensions can for example either be RTCP
from new receiver(s) or an explicit request like the Rapid from new receiver(s) or an explicit request like the Rapid
Resynchronization Request defined in [RFC6051]. In centralized Resynchronization Request defined in [RFC6051]. In centralized
topologies where an RTP middlebox is present, it can be responsible topologies where an RTP middlebox is present, it can be responsible
for transmitting the known information, possibly stored, to the new for transmitting the known information, possibly stored, to the new
session participant only, and not repeat it to all the session session participant only, and not repeat it to all the session
participants. participants.
4.2.4.3. Information Change 4.2.4.3. Information Change
In cases when the SDES item text value is changed and the new SDES If the SDES information is tightly coupled with the RTP data, and the
information is tightly coupled to and thus needs to be synchronized SDES information needs to be updated, then the use of the RTP header
with a related change in the RTP stream, use of a header extension is extension is superior to RTCP. Using the RTP header extension
far superior to RTCP SDES. In this case it is equal or even more ensures that the information is updated on reception of the related
important with timely SDES information than in the case of new SSRCs RTP media, ensuring synchronization between the two. Continued use
(Section 4.2.4.1). Continued use of the old SDES information can of the old SDES information can lead to undesired effects in the
lead to undesired effects in the application. Thus, header extension application. Thus, header extension transmission strategies with
transmission strategies with high probability of delivery should be high probability of delivery should be chosen.
chosen.
4.2.5. SDES Items in RTCP 4.2.5. SDES Items in RTCP
The RTP header extensions information, i.e. SDES Items, can and will The RTP header extensions information, i.e. SDES Items, can and will
be sent also in RTCP. Therefore, it is worth some reflections on be sent also in RTCP. Therefore, it is worth making some reflections
this interaction. An alternative to the header extension is the on this interaction. As an alternative to the header extension, it
possibility to schedule a non-regular RTCP packet transmission is possible to schedule a non-regular RTCP packet transmission
containing important SDES items, if one uses a RTP/AVPF based RTP containing important SDES items, if one uses an RTP/AVPF based RTP
profile. Depending on which mode one's RTCP feedback transmitter is profile. Depending on which mode one's RTCP feedback transmitter is
working on, extra RTCP packets may be sent as immediate or early working on, extra RTCP packets may be sent as immediate or early
packets, enabling more timely delivery of SDES information. packets, enabling more timely SDES information delivery.
There is however two aspects that differ between using RTP header There are however two aspects that differ between using RTP header
extensions and any non-regular transmission of RTCP packets. First, extensions and any non-regular transmission of RTCP packets. First,
as the RTCP packet is a separate packet, there is no direct relation as the RTCP packet is a separate packet, there is no direct relation
and also no fate sharing between the relevant media data and the SDES and also no fate sharing between the relevant media data and the SDES
information. The order of arrival for the packets will matter. With information. The order of arrival for the packets will matter. With
a header-extension the SDES items can be ensured to arrive if the a header-extension, the SDES items can be ensured to arrive if the
media data to play out arrives. Secondly, it is difficult to media data to play out arrives. Secondly, it is difficult to
determine if an RTCP packet is actually delivered. This, as the RTCP determine if an RTCP packet is actually delivered. This, as the RTCP
packets lack both sequence number or a mechanism providing feedback packets lack both sequence number or a mechanism providing feedback
on the RTCP packets themselves. on the RTCP packets themselves.
4.2.6. Update Flaps 4.2.6. Update Flaps
The SDES item may arrive both in RTCP and in RTP header extensions, The SDES item may arrive both in RTCP and in RTP header extensions,
this can cause the value to flap back and forth at the time of potentially causing the value to flap back and forth at the time of
updating. There are at least two reasons for these flaps. The first updating. There are at least two reasons for these flaps. The first
one is packet reordering, where a pre-update RTP or RTCP packet with one is packet reordering, where a pre-update RTP or RTCP packet with
an SDES item is delivered to the receiver after the first RTP/RTCP an SDES item is delivered to the receiver after the first RTP/RTCP
packet with the updated value. The second reason is the different packet with the updated value. The second reason is the different
code-paths for RTP and RTCP in implementations. An update to the code-paths for RTP and RTCP in implementations. An update to the
senders SDES item parameter, can take different time to propagate. sender's SDES item parameter can take a different time to propagate
For example an RTCP packet with the SDES item included, that may have to the receiver than the corresponding media data. For example, an
been generated prior to the update can still reside in a buffer and RTCP packet with the SDES item included that may have been generated
be sent unmodified. The update of the item's value can at the same prior to the update can still reside in a buffer and be sent
time cause RTP packets to be sent including the header extension, unmodified. The update of the item's value can at the same time
prior to the RTCP packet being sent. cause RTP packets to be sent including the header extension, prior to
the RTCP packet being sent.
However, most of these issues can be avoided by performing some However, most of these issues can be avoided by performing some
checks before updating the receiver's stored value. To handle flaps checks before updating the receiver's stored value. To handle flaps
caused by reordering, only SDES items received in RTP packets with a caused by reordering, only SDES items received in RTP packets with a
higher extended sequence number than the last change shall be higher extended sequence number than the last change shall be
applied, i.e. discard items that can be determined to be older than applied, i.e. discard items that can be determined to be older than
the current one. For compound RTCP packets, which will contain an the current one. For compound RTCP packets, which will contain an
Sender Report (SR) packet (assuming an active RTP sender), the Sender Report (SR) packet (assuming an active RTP sender), the
receiver can compare the RTCP Sender Report's Timestamp field, to receiver can compare the RTCP Sender Report's Timestamp field, to
determine at what approximate time it was transmitted. If the determine at what approximate time it was transmitted. If the
timestamp is earlier than the last received RTP packet extension timestamp is earlier than the last received RTP packet extension
carrying an SDES item, and especially if carrying a previously used carrying an SDES item, and especially if carrying a previously used
value, the SDES item in the RTCP SDES packet can be ignored. Note, value, the SDES item in the RTCP SDES packet can be ignored. Note
that media processing and transmission pacing can easily cause the that media processing and transmission pacing can easily cause the
RTP header timestamp field as well as the RTCP SR timestamp field to RTP header timestamp field as well as the RTCP SR timestamp field to
only lously couple with the actual transmission time. not match with the actual transmission time.
5. IANA Considerations 5. IANA Considerations
This section makes the following requests to IANA: This section makes the following requests to IANA:
o Register and reserve for SDES items the URN sub-space o Register and reserve for SDES items the URN sub-space
"urn:ietf:params:rtp-hdrext:sdes:" in the RTP Compact Header "urn:ietf:params:rtp-hdrext:sdes:" in the RTP Compact Header
Extensions registry. Extensions registry.
o Register the SDES items appropriate for use with the RTP header o Register the SDES items appropriate for use with the RTP header
skipping to change at page 12, line 11 skipping to change at page 12, line 22
PHONE, LOC and H323-CADDR. Some may contain sensitive information, PHONE, LOC and H323-CADDR. Some may contain sensitive information,
like NOTE and PRIV, while others may be sensitive from profiling like NOTE and PRIV, while others may be sensitive from profiling
implementations for vulnerability or other reasons, like TOOL. The implementations for vulnerability or other reasons, like TOOL. The
CNAME sensitivity can vary depending on how it is generated and what CNAME sensitivity can vary depending on how it is generated and what
persistence it has. A short term CNAME identifier generated using a persistence it has. A short term CNAME identifier generated using a
random number generator [RFC7022] may have minimal security random number generator [RFC7022] may have minimal security
implications, while a CNAME of the form user@host has privacy implications, while a CNAME of the form user@host has privacy
concerns, and a CNAME generated from a MAC address has long term concerns, and a CNAME generated from a MAC address has long term
tracking potentials. tracking potentials.
The above security concerns may have to be put in relation to third In RTP sessions where any type of confidentiality protection is
party monitoring needs. In RTP sessions where any type of enabled for RTCP, the SDES item header extensions MUST also be
confidentiality protection is enabled, the SDES item header protected per default. This implies that to provide confidentiality,
extensions SHOULD also be protected per default. This implies that users of SRTP need to implement encrypted header extensions per
to provide confidentiality, users of SRTP need to implement encrypted [RFC6904]. Commonly, it is expected that the same security level is
header extensions per [RFC6904]. Commonly, it is expected that the applied to RTCP packets carrying SDES items, and to an RTP header
same security level is applied to RTCP packets carrying SDES items, extension containing SDES items. If the security level is different,
and to an RTP header extension containing SDES items. If the it is important to consider the security properties as the worst in
security level is different, it is important to consider the security each aspect for the different configurations.
properties as the worst in each aspect for the different
configurations.
As the SDES items are used by the RTP based application to establish As the SDES items are used by the RTP based application to establish
relationships between RTP streams or between an RTP stream and relationships between RTP streams or between an RTP stream and
information about the originating Participant, there SHOULD be strong information about the originating Participant, there SHOULD be strong
requirements on integrity and source authentication of the header requirements on integrity and source authentication of the header
extensions. If not, an attacker can modify the SDES item value to extensions. If not, an attacker can modify the SDES item value to
create erroneous relationship bindings in the receiving application. create erroneous relationship bindings in the receiving application.
7. Acknowledgements 7. Acknowledgements
skipping to change at page 13, line 9 skipping to change at page 13, line 20
Header Extensions", RFC 5285, July 2008. Header Extensions", RFC 5285, July 2008.
[RFC6904] Lennox, J., "Encryption of Header Extensions in the Secure [RFC6904] Lennox, J., "Encryption of Header Extensions in the Secure
Real-time Transport Protocol (SRTP)", RFC 6904, April Real-time Transport Protocol (SRTP)", RFC 6904, April
2013. 2013.
8.2. Informative References 8.2. Informative References
[I-D.ietf-avtext-rtp-grouping-taxonomy] [I-D.ietf-avtext-rtp-grouping-taxonomy]
Lennox, J., Gross, K., Nandakumar, S., Salgueiro, G., and Lennox, J., Gross, K., Nandakumar, S., Salgueiro, G., and
B. Burman, "A Taxonomy of Grouping Semantics and B. Burman, "A Taxonomy of Semantics and Mechanisms for
Mechanisms for Real-Time Transport Protocol (RTP) Real-Time Transport Protocol (RTP) Sources", draft-ietf-
Sources", draft-ietf-avtext-rtp-grouping-taxonomy-06 (work avtext-rtp-grouping-taxonomy-07 (work in progress), June
in progress), March 2015. 2015.
[I-D.ietf-mmusic-sdp-bundle-negotiation] [I-D.ietf-mmusic-sdp-bundle-negotiation]
Holmberg, C., Alvestrand, H., and C. Jennings, Holmberg, C., Alvestrand, H., and C. Jennings,
"Negotiating Media Multiplexing Using the Session "Negotiating Media Multiplexing Using the Session
Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle-
negotiation-19 (work in progress), March 2015. negotiation-22 (work in progress), June 2015.
[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.
[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
Description Protocol", RFC 4566, July 2006.
[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. [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
Hakenberg, "RTP Retransmission Payload Format", RFC 4588, Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
July 2006. July 2006.
[RFC5109] Li, A., "RTP Payload Format for Generic Forward Error [RFC5109] Li, A., "RTP Payload Format for Generic Forward Error
Correction", RFC 5109, December 2007. Correction", RFC 5109, December 2007.
[RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific
Media Attributes in the Session Description Protocol
(SDP)", RFC 5576, June 2009.
[RFC6051] Perkins, C. and T. Schierl, "Rapid Synchronisation of RTP [RFC6051] Perkins, C. and T. Schierl, "Rapid Synchronisation of RTP
Flows", RFC 6051, November 2010. Flows", RFC 6051, November 2010.
[RFC7022] Begen, A., Perkins, C., Wing, D., and E. Rescorla, [RFC7022] Begen, A., Perkins, C., Wing, D., and E. Rescorla,
"Guidelines for Choosing RTP Control Protocol (RTCP) "Guidelines for Choosing RTP Control Protocol (RTCP)
Canonical Names (CNAMEs)", RFC 7022, September 2013. Canonical Names (CNAMEs)", RFC 7022, September 2013.
Authors' Addresses Authors' Addresses
Magnus Westerlund Magnus Westerlund
 End of changes. 48 change blocks. 
115 lines changed or deleted 134 lines changed or added

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