Internet DRAFT - draft-roach-avtext-rid
draft-roach-avtext-rid
Network Working Group A. Roach
Internet-Draft Mozilla
Intended status: Standards Track S. Nandakumar
Expires: August 6, 2016 Cisco Systems
P. Thatcher
Google
February 03, 2016
RTP Stream Identifier (RID) Source Description (SDES)
draft-roach-avtext-rid-02
Abstract
This document defines and registers an RTCP SDES item, RID, for
identification of RTP streams associated with Encoded Streams and
Dependent Streams.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 6, 2016.
Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
Roach, et al. Expires August 6, 2016 [Page 1]
Internet-Draft RID SDES February 2016
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Key Words for Requirements . . . . . . . . . . . . . . . . . 3
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. Usage of 'rid' in RTP and RTCP . . . . . . . . . . . . . . . 3
4.1. RTCP 'RID' SDES Extension . . . . . . . . . . . . . . . . 4
4.2. RTP 'RID' Header Extension . . . . . . . . . . . . . . . 4
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
5.1. New SDES item . . . . . . . . . . . . . . . . . . . . . . 5
6. Security Considerations . . . . . . . . . . . . . . . . . . . 5
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5
8.1. Normative References . . . . . . . . . . . . . . . . . . 5
8.2. Informative References . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6
1. Introduction
RTP sessions frequently consist of multiple streams, each of which is
identified at any given time by its SSRC; however, the SSRC
associated with a stream is not guaranteed to be stable over its
lifetime. Within a session, these streams can be tagged with a
number of identifiers, including CNAMEs and MSIDs
[I-D.ietf-mmusic-msid]. Unfortunately, none of these have the proper
ordinality to refer to an individual stream; all such identifiers can
appear in more than one stream at a time. While approaches that use
unique Payload Types (PTs) per stream have been used in some
applications, this is a semantic overloading of that field, and one
for which its size is inadequate: in moderately complex systems that
use PT to uniquely identify every potential combination of codec
configuration and unique stream, it is possible to simply run out of
values.
To address this situation, we define a new RTCP SDES identifier that
uniquely identifies a single stream. A key motivator for defining
this identifier is the ability to differentiate among different
encodings of a single Source Stream that are sent simultaneously
(i.e., simulcast). This need for unique identification extends to
Dependent Streams (i.e., layers used by a layered codec).
At the same time, when Redundancy RTP Streams are in use, we also
need an identifier that connects such streams to the RTP stream for
which they are providing redundancy. To that end, when this new
identifier is in use, it appears (and contains the same value) in
Roach, et al. Expires August 6, 2016 [Page 2]
Internet-Draft RID SDES February 2016
both in the Redundancy RTP Stream as well as the stream it is
correcting.
For lack of a better term, we have elected to call this term "RID,"
which loosely stands for "RTP stream IDentifier." It should be noted
that this isn't an overly-precise use of the term "RTP Stream," due
to the lack of an existing well-defined term for the construct we are
attempting to identify. See Section 3 for a formal definition of the
exact scope of a RID.
The use of RIDs in SDP is described in [I-D.ietf-mmusic-rid].
2. Key Words for Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]
3. Terminology
In this document, the terms "Source Stream", "Encoded Stream," "RTP
Stream", "Source RTP Stream", "Dependent Stream", "Received RTP
Stream", and "Redundancy RTP Stream" are used as defined in
[RFC7656].
For Encoded Streams, the RID refers to the "Source RTP Stream" as
defined by [RFC7656] Section 2.1.10. For Dependent Streams, it
refers to the RTP Stream that, like the Source RTP Stream of an
Encoded Stream, is the RTP Stream that is not a Redundancy RTP
Stream. For conciseness, we define the term "RID RTP Stream" to
refer to this construct.
For clarity, when RID is used, Redundancy RTP Streams that can be
used to repair Received RTP Streams will use the same RID value as
the Received RTP Stream they are intended to be combined with.
4. Usage of 'rid' in RTP and RTCP
The RTP fixed header includes the payload type number and the SSRC
values of the RTP stream. RTP defines how you de-multiplex streams
within an RTP session; however, in some use cases, applications need
further identifiers in order to effectively map the individual RID
RTP Streams to their equivalent payload configurations in the SDP.
This specification defines a new RTCP SDES item [RFC3550], 'RID',
which is used to carry these identifiers within RTCP SDES packets.
This makes it possible for a receiver to associate received RTP
Roach, et al. Expires August 6, 2016 [Page 3]
Internet-Draft RID SDES February 2016
packets (identifying the RID RTP Stream) with a media description
having the format constraint specified.
This specification also uses the RTP header extension for RTCP SDES
items [I-D.ietf-avtext-sdes-hdr-ext] to allow carrying RID
information in RTP packets. This allowes correlation at stream
startup, or after stream changes where the use of RTCP may not be
sufficiently responsive.
4.1. RTCP 'RID' SDES Extension
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| RID=TBD | length | rid ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The rid payload is UTF-8 encoded and is not null-terminated.
RFC EDITOR NOTE: Please replace TBD with the assigned SDES
identifier value.
4.2. RTP 'RID' Header Extension
Because recipients of RTP packets will typically need to know which
"a=rid" constraints they correspond to immediately upon receipt, this
specification also defines a means of carrying RID identifiers in RTP
extension headers, using the technique described in
[I-D.ietf-avtext-sdes-hdr-ext].
As described in that document, the header extension element can be
encoded using either the one-byte or two-byte header, and the
identification-tag payload is UTF-8 encoded, as in SDP.
As the identification-tag is included in an RTP header extension,
there should be some consideration about the packet expansion caused
by the identification-tag. To avoid Maximum Transmission Unit (MTU)
issues for the RTP packets, the header extension's size needs to be
taken into account when the encoding media. Note that set of header
extensions included in the packet needs to be padded to the next
32-bit boundary [RFC5285].
It is RECOMMENDED that the identification-tag is kept short. In many
cases, a one-byte tag will be sufficient; it is RECOMMENDED that
implementations use the shortest identifier that fits their purposes.
Roach, et al. Expires August 6, 2016 [Page 4]
Internet-Draft RID SDES February 2016
5. IANA Considerations
5.1. New SDES item
RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number of
this document.
RFC EDITOR NOTE: Please replace TBD with the assigned SDES
identifier value.
This document adds the MID SDES item to the IANA "RTCP SDES item
types" registry as follows:
Value: TBD
Abbrev.: RID
Name: RTP Stream Identifier
Reference: RFCXXXX
6. Security Considerations
The actual identifiers used for RIDs are expected to be opaque. As
such, they are not expected to contain information that would be
sensitive, were it observed by third-parties.
7. Acknowledgements
Many thanks for review and input from Cullen Jennings, Magnus
Westerlund, Colin Perkins, Peter Thatcher, Jonathan Lennox, and Paul
Kyzivat.
8. References
8.1. Normative References
[I-D.ietf-avtext-sdes-hdr-ext]
Westerlund, M., Burman, B., Even, R., and M. Zanaty, "RTP
Header Extension for RTCP Source Description Items",
draft-ietf-avtext-sdes-hdr-ext-02 (work in progress), July
2015.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
Roach, et al. Expires August 6, 2016 [Page 5]
Internet-Draft RID SDES February 2016
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
July 2003, <http://www.rfc-editor.org/info/rfc3550>.
[RFC5285] Singer, D. and H. Desineni, "A General Mechanism for RTP
Header Extensions", RFC 5285, DOI 10.17487/RFC5285, July
2008, <http://www.rfc-editor.org/info/rfc5285>.
[RFC7656] Lennox, J., Gross, K., Nandakumar, S., Salgueiro, G., and
B. Burman, Ed., "A Taxonomy of Semantics and Mechanisms
for Real-Time Transport Protocol (RTP) Sources", RFC 7656,
DOI 10.17487/RFC7656, November 2015,
<http://www.rfc-editor.org/info/rfc7656>.
8.2. Informative References
[I-D.ietf-mmusic-msid]
Alvestrand, H., "WebRTC MediaStream Identification in the
Session Description Protocol", draft-ietf-mmusic-msid-11
(work in progress), October 2015.
[I-D.ietf-mmusic-rid]
Thatcher, P., Zanaty, M., Nandakumar, S., Burman, B.,
Roach, A., and B. Campen, "RTP Payload Format
Constraints", draft-ietf-mmusic-rid-01 (work in progress),
February 2016.
Authors' Addresses
Adam Roach
Mozilla
Email: adam@nostrum.com
Suhas Nandakumar
Cisco Systems
Email: snandaku@cisco.com
Peter Thatcher
Google
Email: pthatcher@google.com
Roach, et al. Expires August 6, 2016 [Page 6]