idnits 2.17.1 draft-ietf-avtext-rid-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 21, 2016) is 2860 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 5285 (Obsoleted by RFC 8285) ** Downref: Normative reference to an Informational RFC: RFC 7656 == Outdated reference: A later version (-17) exists of draft-ietf-mmusic-msid-14 Summary: 2 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group A. Roach 3 Internet-Draft Mozilla 4 Intended status: Standards Track S. Nandakumar 5 Expires: December 23, 2016 Cisco Systems 6 P. Thatcher 7 Google 8 June 21, 2016 10 RTP Stream Identifier Source Description (SDES) 11 draft-ietf-avtext-rid-04 13 Abstract 15 This document defines and registers two new RTCP SDES items. One, 16 named RtpStreamId, is used for unique identification of RTP streams. 17 The other, RepairedRtpStreamId, can be used to identify which stream 18 a redundancy RTP stream is to be used to repair. 20 Status of This Memo 22 This Internet-Draft is submitted in full conformance with the 23 provisions of BCP 78 and BCP 79. 25 Internet-Drafts are working documents of the Internet Engineering 26 Task Force (IETF). Note that other groups may also distribute 27 working documents as Internet-Drafts. The list of current Internet- 28 Drafts is at http://datatracker.ietf.org/drafts/current/. 30 Internet-Drafts are draft documents valid for a maximum of six months 31 and may be updated, replaced, or obsoleted by other documents at any 32 time. It is inappropriate to use Internet-Drafts as reference 33 material or to cite them other than as "work in progress." 35 This Internet-Draft will expire on December 23, 2016. 37 Copyright Notice 39 Copyright (c) 2016 IETF Trust and the persons identified as the 40 document authors. All rights reserved. 42 This document is subject to BCP 78 and the IETF Trust's Legal 43 Provisions Relating to IETF Documents 44 (http://trustee.ietf.org/license-info) in effect on the date of 45 publication of this document. Please review these documents 46 carefully, as they describe your rights and restrictions with respect 47 to this document. Code Components extracted from this document must 48 include Simplified BSD License text as described in Section 4.e of 49 the Trust Legal Provisions and are provided without warranty as 50 described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 56 3. Usage of RtpStreamId and RepairedRtpStreamId in RTP and RTCP 3 57 3.1. RTCP 'RtpStreamId' SDES Extension . . . . . . . . . . . . 4 58 3.2. RTCP 'RepairedRtpStreamId' SDES Extension . . . . . . . . 4 59 3.3. RTP 'RtpStreamId' and 'RepairedRtpStreamId' Header 60 Extensions . . . . . . . . . . . . . . . . . . . . . . . 4 61 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 62 4.1. New RtpStreamId SDES item . . . . . . . . . . . . . . . . 5 63 4.2. New RepairRtpStreamId SDES item . . . . . . . . . . . . . 5 64 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 65 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 6 66 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 6 67 7.1. Normative References . . . . . . . . . . . . . . . . . . 6 68 7.2. Informative References . . . . . . . . . . . . . . . . . 6 69 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 71 1. Introduction 73 RTP sessions frequently consist of multiple streams, each of which is 74 identified at any given time by its SSRC; however, the SSRC 75 associated with a stream is not guaranteed to be stable over its 76 lifetime. Within a session, these streams can be tagged with a 77 number of identifiers, including CNAMEs and MSIDs 78 [I-D.ietf-mmusic-msid]. Unfortunately, none of these have the proper 79 ordinality to refer to an individual stream; all such identifiers can 80 appear in more than one stream at a time. While approaches that use 81 unique Payload Types (PTs) per stream have been used in some 82 applications, this is a semantic overloading of that field, and one 83 for which its size is inadequate: in moderately complex systems that 84 use PT to uniquely identify every potential combination of codec 85 configuration and unique stream, it is possible to simply run out of 86 values. 88 To address this situation, we define a new RTCP SDES identifier, 89 RtpStreamId, that uniquely identifies a single RTP stream. A key 90 motivator for defining this identifier is the ability to 91 differentiate among different encodings of a single Source Stream 92 that are sent simultaneously (i.e., simulcast). This need for unique 93 identification extends to dependent streams (e.g., where layers used 94 by a layered codec are transmitted on separate streams). 96 At the same time, when redundancy RTP streams are in use, we also 97 need an identifier that connects such streams to the RTP stream for 98 which they are providing redundancy. For this purpose, we define an 99 additional SDES identifier, RepairedRtpStreamId. This identifier can 100 appear only in packets associated with a redundancy RTP stream. They 101 carry the same value as the RtpStreamId of the RTP stream that the 102 redundant RTP stream is correcting. 104 2. Terminology 106 In this document, the terms "source stream", "encoded stream," "RTP 107 stream", "source RTP stream", "dependent stream", "received RTP 108 stream", and "redundancy RTP stream" are used as defined in 109 [RFC7656]. 111 3. Usage of RtpStreamId and RepairedRtpStreamId in RTP and RTCP 113 The RTP fixed header includes the payload type number and the SSRC 114 values of the RTP stream. RTP defines how you de-multiplex streams 115 within an RTP session; however, in some use cases, applications need 116 further identifiers in order to effectively map the individual RTP 117 Streams to their equivalent payload configurations in the SDP. 119 This specification defines two new RTCP SDES items [RFC3550]. The 120 first item is 'RtpStreamId', which is used to carry RTP stream 121 identifiers within RTCP SDES packets. This makes it possible for a 122 receiver to associate received RTP packets (identifying the RTP 123 stream) with a media description having the format constraint 124 specified. The second is 'RepairedRtpStreamId', which can be used in 125 redundancy RTP streams to indicate the RTP stream repaired by a 126 redundancy RTP stream. 128 To be clear: the value carried in a RepairedRtpStreamId will always 129 match the RtpStreamId value from another RTP stream in the same 130 session. For example, if a source RTP stream is identified by 131 RtpStreamId "A", then any redundancy RTP stream that repairs that 132 source RTP stream will contain a RepairedRtpStreamId of "A" (if this 133 mechanism is being used to perform such correlation). These 134 redundant RTP streams may also contain their own unique RtpStreamId. 136 This specification also uses the RTP header extension for RTCP SDES 137 items [I-D.ietf-avtext-sdes-hdr-ext] to allow carrying RtpStreamId 138 and RepairedRtpStreamId values in RTP packets. This allows 139 correlation at stream startup, or after stream changes where the use 140 of RTCP may not be sufficiently responsive. 142 3.1. RTCP 'RtpStreamId' SDES Extension 144 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 145 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 146 |RtpStreamId=TBD| length | RtpStreamId ... 147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 149 The RtpStreamId payload is UTF-8 encoded and is not null-terminated. 151 RFC EDITOR NOTE: Please replace TBD with the assigned SDES 152 identifier value. 154 3.2. RTCP 'RepairedRtpStreamId' SDES Extension 156 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 157 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 158 |Repaired...=TBD| length | RepairRtpStreamId ... 159 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 161 The RepairedRtpStreamId payload is UTF-8 encoded and is not null- 162 terminated. 164 RFC EDITOR NOTE: Please replace TBD with the assigned SDES 165 identifier value. 167 3.3. RTP 'RtpStreamId' and 'RepairedRtpStreamId' Header Extensions 169 Because recipients of RTP packets will typically need to know which 170 streams they correspond to immediately upon receipt, this 171 specification also defines a means of carrying RtpStreamId and 172 RepairedRtpStreamId identifiers in RTP extension headers, using the 173 technique described in [I-D.ietf-avtext-sdes-hdr-ext]. 175 As described in that document, the header extension element can be 176 encoded using either the one-byte or two-byte header, and the 177 identification-tag payload is UTF-8 encoded, as in SDP. 179 As the identifier is included in an RTP header extension, there 180 should be some consideration given to the packet expansion caused by 181 the identifier. To avoid Maximum Transmission Unit (MTU) issues for 182 the RTP packets, the header extension's size needs to be taken into 183 account when the encoding media. Note that set of header extensions 184 included in the packet needs to be padded to the next 32-bit boundary 185 [RFC5285]. 187 In many cases, a one-byte identifier will be sufficient to 188 distinguish streams in a session; implementations are strongly 189 encouraged to use the shortest identifier that fits their purposes. 191 4. IANA Considerations 193 4.1. New RtpStreamId SDES item 195 RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number of 196 this document. 198 RFC EDITOR NOTE: Please replace TBD with the assigned SDES 199 identifier value. 201 This document adds the RtpStreamId SDES item to the IANA "RTCP SDES 202 item types" registry as follows: 204 Value: TBD 205 Abbrev.: RtpStreamId 206 Name: RTP Stream Identifier 207 Reference: RFCXXXX 209 4.2. New RepairRtpStreamId SDES item 211 RFC EDITOR NOTE: Please replace RFCXXXX with the RFC number of 212 this document. 214 RFC EDITOR NOTE: Please replace TBD with the assigned SDES 215 identifier value. 217 This document adds the RepairedRtpStreamId SDES item to the IANA 218 "RTCP SDES item types" registry as follows: 220 Value: TBD 221 Abbrev.: RepairedRtpStreamId 222 Name: Repaired RTP Stream Identifier 223 Reference: RFCXXXX 225 5. Security Considerations 227 The actual identifiers used for RtpStreamIds (and therefore 228 RepairedRtpStreamIds) are expected to be opaque. As such, they are 229 not expected to contain information that would be sensitive, were it 230 observed by third-parties. 232 6. Acknowledgements 234 Many thanks for review and input from Cullen Jennings, Magnus 235 Westerlund, Colin Perkins, Peter Thatcher, Jonathan Lennox, and Paul 236 Kyzivat. 238 7. References 240 7.1. Normative References 242 [I-D.ietf-avtext-sdes-hdr-ext] 243 Westerlund, M., Burman, B., Even, R., and M. Zanaty, "RTP 244 Header Extension for RTCP Source Description Items", 245 draft-ietf-avtext-sdes-hdr-ext-07 (work in progress), June 246 2016. 248 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 249 Jacobson, "RTP: A Transport Protocol for Real-Time 250 Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, 251 July 2003, . 253 [RFC5285] Singer, D. and H. Desineni, "A General Mechanism for RTP 254 Header Extensions", RFC 5285, DOI 10.17487/RFC5285, July 255 2008, . 257 [RFC7656] Lennox, J., Gross, K., Nandakumar, S., Salgueiro, G., and 258 B. Burman, Ed., "A Taxonomy of Semantics and Mechanisms 259 for Real-Time Transport Protocol (RTP) Sources", RFC 7656, 260 DOI 10.17487/RFC7656, November 2015, 261 . 263 7.2. Informative References 265 [I-D.ietf-mmusic-msid] 266 Alvestrand, H., "WebRTC MediaStream Identification in the 267 Session Description Protocol", draft-ietf-mmusic-msid-14 268 (work in progress), June 2016. 270 Authors' Addresses 272 Adam Roach 273 Mozilla 275 Email: adam@nostrum.com 276 Suhas Nandakumar 277 Cisco Systems 279 Email: snandaku@cisco.com 281 Peter Thatcher 282 Google 284 Email: pthatcher@google.com