idnits 2.17.1 draft-ietf-avt-rapid-acquisition-for-rtp-06.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Sep 2009 rather than the newer Notice from 28 Dec 2009. (See https://trustee.ietf.org/license-info/) 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 : ---------------------------------------------------------------------------- -- The document has examples using IPv4 documentation addresses according to RFC6890, but does not use any IPv6 documentation addresses. Maybe there should be IPv6 examples, too? Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == Line 601 has weird spacing: '...| Burst and |...' == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 4, 2010) is 5196 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) == Missing Reference: 'RFCXXXX' is mentioned on line 2059, but not defined == Unused Reference: 'I-D.ietf-dccp-rtp' is defined on line 2316, but no explicit reference was found in the text ** Obsolete normative reference: RFC 4566 (Obsoleted by RFC 8866) ** Obsolete normative reference: RFC 5285 (Obsoleted by RFC 8285) == Outdated reference: A later version (-13) exists of draft-ietf-avt-rapid-rtp-sync-09 == Outdated reference: A later version (-02) exists of draft-begen-avt-ports-for-ucast-mcast-rtp-01 ** Obsolete normative reference: RFC 5226 (Obsoleted by RFC 8126) == Outdated reference: A later version (-01) exists of draft-begen-avt-rams-scenarios-00 == Outdated reference: A later version (-06) exists of draft-begen-avt-rtp-mpeg2ts-preamble-04 Summary: 4 errors (**), 0 flaws (~~), 9 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 AVT B. VerSteeg 3 Internet-Draft A. Begen 4 Intended status: Standards Track Cisco 5 Expires: August 8, 2010 T. VanCaenegem 6 Alcatel-Lucent 7 Z. Vax 8 Microsoft Corporation 9 February 4, 2010 11 Unicast-Based Rapid Acquisition of Multicast RTP Sessions 12 draft-ietf-avt-rapid-acquisition-for-rtp-06 14 Abstract 16 When an RTP receiver joins a multicast session, it may need to 17 acquire and parse certain Reference Information before it can process 18 any data sent in the multicast session. Depending on the join time, 19 length of the Reference Information repetition (or appearance) 20 interval, size of the Reference Information as well as the 21 application and transport properties, the time lag before an RTP 22 receiver can usefully consume the multicast data, which we refer to 23 as the Acquisition Delay, varies and may be large. This is an 24 undesirable phenomenon for receivers that frequently switch among 25 different multicast sessions, such as video broadcasts. 27 In this document, we describe a method using the existing RTP and 28 RTCP protocol machinery that reduces the acquisition delay. In this 29 method, an auxiliary unicast RTP session carrying the Reference 30 Information to the receiver precedes/accompanies the multicast 31 stream. This unicast RTP flow may be transmitted at a faster than 32 natural rate to further accelerate the acquisition. The motivating 33 use case for this capability is multicast applications that carry 34 real-time compressed audio and video. However, the proposed method 35 can also be used in other types of multicast applications where the 36 acquisition delay is long enough to be a problem. 38 Status of this Memo 40 This Internet-Draft is submitted to IETF in full conformance with the 41 provisions of BCP 78 and BCP 79. 43 Internet-Drafts are working documents of the Internet Engineering 44 Task Force (IETF), its areas, and its working groups. Note that 45 other groups may also distribute working documents as Internet- 46 Drafts. 48 Internet-Drafts are draft documents valid for a maximum of six months 49 and may be updated, replaced, or obsoleted by other documents at any 50 time. It is inappropriate to use Internet-Drafts as reference 51 material or to cite them other than as "work in progress." 53 The list of current Internet-Drafts can be accessed at 54 http://www.ietf.org/ietf/1id-abstracts.txt. 56 The list of Internet-Draft Shadow Directories can be accessed at 57 http://www.ietf.org/shadow.html. 59 This Internet-Draft will expire on August 8, 2010. 61 Copyright Notice 63 Copyright (c) 2010 IETF Trust and the persons identified as the 64 document authors. All rights reserved. 66 This document is subject to BCP 78 and the IETF Trust's Legal 67 Provisions Relating to IETF Documents 68 (http://trustee.ietf.org/license-info) in effect on the date of 69 publication of this document. Please review these documents 70 carefully, as they describe your rights and restrictions with respect 71 to this document. Code Components extracted from this document must 72 include Simplified BSD License text as described in Section 4.e of 73 the Trust Legal Provisions and are provided without warranty as 74 described in the BSD License. 76 This document may contain material from IETF Documents or IETF 77 Contributions published or made publicly available before November 78 10, 2008. The person(s) controlling the copyright in some of this 79 material may not have granted the IETF Trust the right to allow 80 modifications of such material outside the IETF Standards Process. 81 Without obtaining an adequate license from the person(s) controlling 82 the copyright in such materials, this document may not be modified 83 outside the IETF Standards Process, and derivative works of it may 84 not be created outside the IETF Standards Process, except to format 85 it for publication as an RFC or to translate it into languages other 86 than English. 88 Table of Contents 90 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 91 1.1. Acquisition of RTP Streams vs. RTP Sessions . . . . . . . 7 92 1.2. Outline . . . . . . . . . . . . . . . . . . . . . . . . . 8 93 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 8 94 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 8 95 4. Elements of Delay in Multicast Applications . . . . . . . . . 10 96 5. Protocol Design Considerations and Their Effect on 97 Resource Management for Rapid Acquisition . . . . . . . . . . 11 98 6. Rapid Acquisition of Multicast RTP Sessions . . . . . . . . . 13 99 6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . 13 100 6.2. Message Flows . . . . . . . . . . . . . . . . . . . . . . 14 101 6.3. Synchronization of Primary Multicast Streams . . . . . . 23 102 6.4. Shaping the Unicast Burst . . . . . . . . . . . . . . . . 24 103 6.5. Failure Cases . . . . . . . . . . . . . . . . . . . . . . 26 104 7. Encoding of the Signaling Protocol in RTCP . . . . . . . . . . 27 105 7.1. Extensions . . . . . . . . . . . . . . . . . . . . . . . 27 106 7.1.1. Vendor-Neutral Extensions . . . . . . . . . . . . . . 28 107 7.1.2. Private Extensions . . . . . . . . . . . . . . . . . . 28 108 7.2. RAMS Request . . . . . . . . . . . . . . . . . . . . . . 29 109 7.3. RAMS Information . . . . . . . . . . . . . . . . . . . . 32 110 7.4. RAMS Termination . . . . . . . . . . . . . . . . . . . . 34 111 8. SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . . 35 112 8.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 35 113 8.2. Requirements . . . . . . . . . . . . . . . . . . . . . . 36 114 8.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . 36 115 9. NAT Considerations . . . . . . . . . . . . . . . . . . . . . . 39 116 10. Congestion Control Considerations . . . . . . . . . . . . . . 40 117 11. Security Considerations . . . . . . . . . . . . . . . . . . . 40 118 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 42 119 12.1. Registration of SDP Attributes . . . . . . . . . . . . . 42 120 12.2. Registration of SDP Attribute Values . . . . . . . . . . 43 121 12.3. Registration of FMT Values . . . . . . . . . . . . . . . 43 122 12.4. SFMT Values for RAMS Messages Registry . . . . . . . . . 43 123 12.5. RAMS TLV Space Registry . . . . . . . . . . . . . . . . . 44 124 12.6. RAMS Response Code Space Registry . . . . . . . . . . . . 45 125 13. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 47 126 14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 47 127 15. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 47 128 15.1. draft-ietf-avt-rapid-acquisition-for-rtp-06 . . . . . . . 47 129 15.2. draft-ietf-avt-rapid-acquisition-for-rtp-05 . . . . . . . 47 130 15.3. draft-ietf-avt-rapid-acquisition-for-rtp-04 . . . . . . . 47 131 15.4. draft-ietf-avt-rapid-acquisition-for-rtp-03 . . . . . . . 48 132 15.5. draft-ietf-avt-rapid-acquisition-for-rtp-02 . . . . . . . 48 133 15.6. draft-ietf-avt-rapid-acquisition-for-rtp-01 . . . . . . . 48 134 15.7. draft-ietf-avt-rapid-acquisition-for-rtp-00 . . . . . . . 48 135 15.8. draft-versteeg-avt-rapid-synchronization-for-rtp-03 . . . 49 136 15.9. draft-versteeg-avt-rapid-synchronization-for-rtp-02 . . . 49 137 15.10. draft-versteeg-avt-rapid-synchronization-for-rtp-01 . . . 49 138 16. References . . . . . . . . . . . . . . . . . . . . . . . . . . 50 139 16.1. Normative References . . . . . . . . . . . . . . . . . . 50 140 16.2. Informative References . . . . . . . . . . . . . . . . . 51 141 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 52 143 1. Introduction 145 Most multicast flows carry a stream of inter-related data. Certain 146 information must first be acquired by the receivers to start 147 processing any data sent in the multicast session. This document 148 refers to this information as Reference Information. The Reference 149 Information is conventionally sent periodically in the multicast 150 session (although its content may change over time) and usually 151 consists of items such as a description of the schema for the rest of 152 the data, references to which data to process, encryption information 153 including keys, as well as any other information required to process 154 the data in the multicast stream [IC2009]. 156 Real-time multicast applications require the receivers to buffer 157 data. The receiver may have to buffer data to smooth out the network 158 jitter, to allow loss-repair methods such as Forward Error Correction 159 and retransmission to recover the missing packets, and to satisfy the 160 data processing requirements of the application layer. 162 When a receiver joins a multicast session, it has no control over 163 what point in the flow is currently being transmitted. Sometimes the 164 receiver may join the session right before the Reference Information 165 is sent in the session. In this case, the required waiting time is 166 usually minimal. Other times, the receiver may join the session 167 right after the Reference Information has been transmitted. In this 168 case, the receiver has to wait for the Reference Information to 169 appear again in the flow before it can start processing any multicast 170 data. In some other cases, the Reference Information is not 171 contiguous in the flow but dispersed over a large period, which 172 forces the receiver to wait for all of the Reference Information to 173 arrive before starting to process the rest of the data. 175 The net effect of waiting for the Reference Information and waiting 176 for various buffers to fill up is that the receivers may experience 177 significantly large delays in data processing. In this document, we 178 refer to the difference between the time an RTP receiver joins the 179 multicast session and the time the RTP receiver acquires all the 180 necessary Reference Information as the Acquisition Delay. The 181 acquisition delay may not be the same for different receivers; it 182 usually varies depending on the join time, length of the Reference 183 Information repetition (or appearance) interval, size of the 184 Reference Information as well as the application and transport 185 properties. 187 The varying nature of the acquisition delay adversely affects the 188 receivers that frequently switch among multicast sessions. In this 189 specification, we address this problem for RTP-based multicast 190 applications and describe a method that uses the fundamental tools 191 offered by the existing RTP and RTCP protocols [RFC3550]. In this 192 method, either the multicast source (or the distribution source in a 193 source-specific multicast (SSM) session) retains the Reference 194 Information for a period after its transmission, or an intermediary 195 network element (that we refer to as Retransmission Server) joins the 196 multicast session and continuously caches the Reference Information 197 as it is sent in the session and acts as a feedback target (See 198 [I-D.ietf-avt-rtcpssm]) for the session. When an RTP receiver wishes 199 to join the same multicast session, instead of simply issuing a 200 Source Filtering Group Management Protocol (SFGMP) Join message, it 201 sends a request to the feedback target for the session and asks for 202 the Reference Information. The Retransmission Server starts a new 203 unicast RTP (retransmission) session and sends the Reference 204 Information to the RTP receiver over that session. If there is spare 205 bandwidth, the Retransmission Server may burst the Reference 206 Information faster than its natural rate. As soon as the receiver 207 acquires the Reference Information, it can join the multicast session 208 and start processing the multicast data. A simplified network 209 diagram showing this method through an intermediary network element 210 is depicted in Figure 1. 212 This method potentially reduces the acquisition delay. We refer to 213 this method as Unicast-based Rapid Acquisition of Multicast RTP 214 Sessions. A primary use case for this method is to reduce the 215 channel-change times in IPTV networks where compressed video streams 216 are multicast in different SSM sessions and viewers randomly join 217 these sessions. 219 ----------------------- 220 +--->| Intermediary | 221 | | Network Element | 222 | ...|(Retransmission Server)| 223 | : ----------------------- 224 | : 225 | v 226 ----------- ---------- ---------- 227 | Multicast | | |---------->| Joining | 228 | Source |------->| Router |..........>| RTP | 229 | | | | | Receiver | 230 ----------- ---------- ---------- 231 | 232 | ---------- 233 +---------------->| Existing | 234 | RTP | 235 | Receiver | 236 ---------- 238 -------> Multicast RTP Flow 239 .......> Unicast RTP Flow 241 Figure 1: Rapid acquisition through an intermediary network element 243 A principle design goal in this solution is to use the existing tools 244 in the RTP/RTCP protocol family. This improves the versatility of 245 the existing implementations, and promotes faster deployment and 246 better interoperability. To this effect, we use the unicast 247 retransmission support of RTP [RFC4588] and the capabilities of RTCP 248 to handle the signaling needed to accomplish the acquisition. 250 1.1. Acquisition of RTP Streams vs. RTP Sessions 252 By the definition given in [RFC3550], an RTP session may involve one 253 or more RTP streams each identified with a unique SSRC. All RTP 254 streams within a single RTP session are sent towards the same 255 transport address, i.e., they share the same destination IP address 256 and port. In RTP jargon, these streams are said to be SSRC- 257 multiplexed. On the other hand, an SSM session is uniquely 258 identified by its source address and destination group address. 259 However, it may carry one or more RTP sessions, each associated with 260 a different destination port. Consequently, while it is not very 261 practical, it is still possible for an SSM session to carry multiple 262 RTP sessions each carrying multiple SSRC-multiplexed RTP streams. 264 Developing a protocol that can jointly handle the rapid acquisition 265 of all of the RTP sessions in an SSM session is neither practical nor 266 necessary. Rather, in this specification we focus on developing a 267 protocol that handles the rapid acquisition of a single RTP session 268 (called primary multicast RTP session) carrying one or more RTP 269 streams (called primary multicast streams). If desired, multiple 270 instances of this protocol may be run in parallel to acquire multiple 271 RTP sessions simultaneously. 273 When an RTP receiver requests the Reference Information from the 274 Retransmission Server, it may opt to rapidly acquire a specific 275 subset of the available RTP streams in the primary multicast RTP 276 session. Alternatively, it may request the rapid acquisition of all 277 of the RTP streams in that RTP session. Regardless of how many RTP 278 streams are requested by the RTP receiver or how many will be 279 actually sent by the Retransmission Server, only one unicast RTP 280 (retransmission) session will be established by the Retransmission 281 Server serving as the feedback target for that RTP session. The RTP 282 receiver multiplexes this unicast RTP session with the primary 283 multicast RTP session it receives as part of the SSM session. If the 284 RTP receiver wants to rapidly acquire multiple RTP sessions 285 simultaneously, separate unicast RTP (retransmission) sessions will 286 be established for each of them. 288 1.2. Outline 290 In the rest of this specification, we have the following outline: In 291 Section 4, we describe the delay components in generic multicast 292 applications. Section 5 presents an overview of the protocol design 293 considerations for rapid acquisition. We provide the protocol 294 details of the rapid acquisition method in Section 6 and Section 7. 295 Section 8 and Section 9 discuss the SDP signaling issues with 296 examples and NAT-related issues, respectively. Section 10 and 297 Section 11 discuss the congestion control and security 298 considerations, respectively. 300 Section 3 provides a list of the definitions frequently used in this 301 document. 303 2. Requirements Notation 305 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 306 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 307 document are to be interpreted as described in [RFC2119]. 309 3. Definitions 311 This document uses the following acronyms and definitions frequently: 313 (Primary) SSM (or Multicast) Session: The multicast session to which 314 RTP receivers can join at a random point in time. 316 Primary Multicast RTP Session: The multicast RTP session an RTP 317 receiver is interested in acquiring rapidly. A primary SSM session 318 may carry multiple multicast RTP sessions, but only one of them can 319 be the primary from the viewpoint of rapid acquisition. 321 Primary Multicast (RTP) Streams: The RTP stream(s) carried in the 322 primary multicast RTP session. 324 Source Filtering Group Management Protocol (SFGMP): Following the 325 definition in [RFC4604], SFGMP refers to the Internet Group 326 Management Protocol (IGMP) version 3 [RFC3376] and the Multicast 327 Listener Discovery Protocol (MLD) version 2 [RFC3810] in the IPv4 and 328 IPv6 networks, respectively. However, the rapid acquisition method 329 introduced in this document does not depend on a specific version of 330 either of these group management protocols. In the remainder of this 331 document, SFGMP will refer to any group management protocol that has 332 Join and Leave functionalities. 334 Feedback Target (FT): Unicast RTCP feedback target as defined in 335 [I-D.ietf-avt-rtcpssm]. FT_Ap denotes a specific feedback target 336 running on a particular address and port. 338 Retransmission Packet: An RTP packet that is formatted as defined in 339 [RFC4588]. 341 Reference Information: The set of certain media content and metadata 342 information that is sufficient for an RTP receiver to start usefully 343 consuming a media stream. The meaning, format and size of this 344 information are specific to the application and are out of scope of 345 this document. 347 Preamble Information: A more compact form of the whole or a subset 348 of the Reference Information transmitted out-of-band. 350 (Unicast) Burst (Stream): A unicast stream of RTP retransmission 351 packets that enable an RTP receiver to rapidly acquire the Reference 352 Information associated with a primary multicast stream. Each burst 353 stream is identified by its unique SSRC identifier in the primary 354 multicast RTP session. The burst streams are typically transmitted 355 at an accelerated rate. 357 Retransmission Server (RS): The RTP/RTCP endpoint that can generate 358 the retransmission packets and the burst streams. RS may also 359 generate other non-retransmission packets to aid the rapid 360 acquisition process. 362 4. Elements of Delay in Multicast Applications 364 In an any-source (ASM) or a source-specific (SSM) multicast delivery 365 system, there are three major elements that contribute to the overall 366 acquisition delay when an RTP receiver switches from one multicast 367 session to another one. These are: 369 o Multicast switching delay 371 o Reference Information latency 373 o Buffering delays 375 Multicast switching delay is the delay that is experienced to leave 376 the current multicast session (if any) and join the new multicast 377 session. In typical systems, the multicast join and leave operations 378 are handled by a group management protocol. For example, the 379 receivers and routers participating in a multicast session may use 380 the Internet Group Management Protocol (IGMP) version 3 [RFC3376] or 381 the Multicast Listener Discovery Protocol (MLD) version 2 [RFC3810]. 382 In either of these protocols, when a receiver wants to join a 383 multicast session, it sends a message to its upstream router and the 384 routing infrastructure sets up the multicast forwarding state to 385 deliver the packets of the multicast session to the new receiver. 386 Depending on the proximity of the upstream router, the current state 387 of the multicast tree, the load on the system and the protocol 388 implementation, the join times vary. Current systems provide join 389 latencies usually less than 200 milliseconds (ms). If the receiver 390 had been participating in another multicast session before joining 391 the new session, it needs to send a Leave message to its upstream 392 router to leave the session. In common multicast routing protocols, 393 the leave times are usually smaller than the join times, however, it 394 is possible that the Leave and Join messages may get lost, in which 395 case the multicast switching delay inevitably increases. 397 Reference Information latency is the time it takes the receiver to 398 acquire the Reference Information. It is highly dependent on the 399 proximity of the actual time the receiver joined the session to the 400 next time the Reference Information will be sent to the receivers in 401 the session, whether the Reference Information is sent contiguously 402 or not, and the size of the Reference Information. For some 403 multicast flows, there is a little or no interdependency in the data, 404 in which case the Reference Information latency will be nil or 405 negligible. For other multicast flows, there is a high degree of 406 interdependency. One example of interest is the multicast flows that 407 carry compressed audio/video. For these flows, the Reference 408 Information latency may become quite large and be a major contributor 409 to the overall delay. Refer to [I-D.begen-avt-rtp-mpeg2ts-preamble] 410 for details. 412 The buffering component of the overall acquisition delay is driven by 413 the way the application layer processes the payload. In many 414 multicast applications, an unreliable transport protocol such as UDP 415 [RFC0768] is often used to transmit the data packets, and the 416 reliability, if needed, is usually addressed through other means such 417 as Forward Error Correction (e.g., 418 [I-D.ietf-fecframe-interleaved-fec-scheme]) and retransmission. 419 These loss-repair methods require buffering at the receiver side to 420 function properly. In many applications, it is also often necessary 421 to de-jitter the incoming data packets before feeding them to the 422 application. The de-jittering process also increases the buffering 423 delays. Besides these network-related buffering delays, there are 424 also specific buffering needs that are required by the individual 425 applications. For example, standard video decoders typically require 426 an amount, sometimes a significant amount, of coded video data to be 427 available in the pre-decoding buffers prior to starting to decode the 428 video bitstream. 430 5. Protocol Design Considerations and Their Effect on Resource 431 Management for Rapid Acquisition 433 Rapid acquisition is an optimization of a system that must continue 434 to work correctly and properly whether or not the optimization is 435 effective, or even fails due to lost control and feedback messages, 436 congestion, or other problems. This is fundamental to the overall 437 design requirements surrounding the protocol definition and to the 438 resource management schemes to be employed together with the protocol 439 (e.g., QoS machinery, server load management, etc). In particular, 440 the system needs to operate within a number of constraints: 442 o First, a rapid acquisition operation must fail gracefully. The 443 user experience must, except perhaps in pathological 444 circumstances, be not significantly worse for trying and failing 445 to complete rapid acquisition compared to simply joining the 446 multicast session. 448 o Second, providing the rapid acquisition optimizations must not 449 cause collateral damage to either the multicast session being 450 joined, or other multicast sessions sharing resources with the 451 rapid acquisition operation. In particular, the rapid acquisition 452 operation must avoid interference with the multicast session that 453 may be simultaneously being received by other hosts. In addition, 454 it must also avoid interference with other multicast sessions 455 sharing the same network resources. These properties are 456 possible, but are usually difficult to achieve. 458 One challenge is the existence of multiple bandwidth bottlenecks 459 between the receiver and the server(s) in the network providing the 460 rapid acquisition service. In commercial IPTV deployments, for 461 example, bottlenecks are often present in the aggregation network 462 connecting the IPTV servers to the network edge, the access links 463 (e.g., DSL, DOCSIS) and in the home network of the subscribers. Some 464 of these links may serve only a single subscriber, limiting 465 congestion impact to the traffic of only that subscriber, but others 466 can be shared links carrying multicast sessions of many subscribers. 467 Also note that the state of these links may be varying over time. 468 The receiver may have knowledge of a portion of this network, or may 469 have partial knowledge of the entire network. The methods employed 470 by the devices to acquire this network state information is out of 471 scope for this document. The receiver should be able to signal the 472 server with the bandwidth that it believes it can handle. The server 473 also needs to be able to rate limit the flow in order to stay within 474 the performance envelope that it knows about. Both the server and 475 receiver need to be able to inform the other of changes in the 476 requested and delivered rates. However, the protocol must be robust 477 in the presence of packet loss, so this signaling must include the 478 appropriate default behaviors. 480 A second challenge is that for some uses (e.g., high-bitrate video) 481 the unicast burst bitrate is high while the flow duration of the 482 unicast burst is short. This is because the purpose of the unicast 483 burst is to allow the RTP receiver to join the multicast quickly and 484 thereby limit the overall resources consumed by the burst. Such 485 high-bitrate, short-duration flows are not amenable to conventional 486 admission control techniques. For example, end-to-end per-flow 487 signaled admission control techniques such as RSVP have too much 488 latency and control channel overhead to be a good fit for rapid 489 acquisition. Similarly, using a TCP (or TCP-like) approach with a 490 3-way handshake and slow-start to avoid inducing congestion would 491 defeat the purpose of attempting rapid acquisition in the first place 492 by introducing many round-trip times (RTT) of delay. 494 These observations lead to certain unavoidable requirements and goals 495 for a rapid acquisition protocol. These are: 497 o The protocol must be designed to allow a deterministic upper bound 498 on the extra bandwidth used (compared to just joining the 499 multicast session). A reasonable size bound is e*B, where B is 500 the nominal bandwidth of the primary multicast streams, and e is 501 an excess-bandwidth coefficient. The total duration of the 502 unicast burst must have a reasonable bound; long unicast bursts 503 devolve to the bandwidth profile of multi-unicast for the whole 504 system. 506 o The scheme should minimize (or better eliminate) the overlap of 507 the unicast burst and the primary multicast stream. This 508 minimizes the window during which congestion could be induced on a 509 bottleneck link compared to just carrying the multicast or unicast 510 packets alone. 512 o The scheme must minimize (or better eliminate) any gap between the 513 unicast burst and the primary multicast stream, which has to be 514 repaired later, or in the absence of repair, will result in loss 515 being experienced by the application. 517 In addition to the above, there are some other protocol design issues 518 to be considered. First, there is at least one RTT of "slop" in the 519 control loop. In starting a rapid acquisition burst, this manifests 520 as the time between the client requesting the unicast burst and the 521 burst description and/or the first unicast burst packets arriving at 522 the receiver. For managing and terminating the unicast burst, there 523 are two possible approaches for the control loop: The receiver can 524 adapt to the unicast burst as received, converge based on observation 525 and explicitly terminate the unicast burst with a second control loop 526 exchange (which takes a minimum of one RTT, just as starting the 527 unicast burst does). Alternatively, the server generating the 528 unicast burst can pre-compute the burst parameters based on the 529 information in the initial request and tell the receiver the burst 530 duration. 532 The protocol described in the next section allows either method of 533 controlling the rapid acquisition unicast burst. 535 6. Rapid Acquisition of Multicast RTP Sessions 537 We start this section with an overview of the rapid acquisition of 538 multicast sessions (RAMS) method. 540 6.1. Overview 542 [I-D.ietf-avt-rtcpssm] specifies an extension to the RTP Control 543 Protocol (RTCP) to use unicast feedback in an SSM session. It 544 defines an architecture that introduces the concept of Distribution 545 Source, which - in an SSM context - distributes the RTP data and 546 redistributes RTCP information to all RTP receivers. This RTCP 547 information is retrieved from the Feedback Target, to which RTCP 548 unicast feedback traffic is sent. The feedback target MAY be 549 implemented in one or more entities different from the Distribution 550 Source, and different RTP receivers MAY use different feedback 551 targets. 553 This document builds further on these concepts to reduce the 554 acquisition delay when an RTP receiver joins a multicast session at a 555 random point in time by introducing the concept of the Burst Source 556 and new RTCP feedback messages. The Burst Source has a cache where 557 the most recent packets from the primary multicast RTP session are 558 continuously stored. When an RTP receiver wants to receive a primary 559 multicast stream prior to joining the SSM session, it may first 560 request a unicast burst from the Burst Source. In this burst, the 561 packets are formatted as RTP retransmission packets [RFC4588] and 562 carry the Reference Information. This information allows the RTP 563 receiver to start usefully consuming the RTP packets sent in the 564 primary multicast RTP session. 566 Using an accelerated rate (as compared to the nominal rate of the 567 primary multicast stream) for the unicast burst implies that at a 568 certain point in time, the payload transmitted in the unicast burst 569 is going to be the same as the payload in the associated multicast 570 stream, i.e., the unicast burst will catch up with the primary 571 multicast stream. At this point, the RTP receiver no longer needs to 572 receive the unicast burst and can join the SSM session. This method 573 is referred to as the Rapid Acquisition of Multicast Sessions (RAMS). 575 This document proposes extensions to [RFC4585] for an RTP receiver to 576 request a unicast burst as well as for additional control messaging 577 that can be leveraged during the acquisition process. 579 6.2. Message Flows 581 Figure 2 shows the main entities involved in rapid acquisition and 582 the message flows. They are 584 o Multicast Source 586 o Feedback Target (FT) 588 o Burst/Retransmission Source 590 o RTP Receiver (RTP_Rx) 591 ----------- ---------------- -------------- 592 | | | Retransmission | | | 593 | Multicast |------->| Server (RS) |--------->| | 594 | Source |.-.-.-.>| |.-.-.-.-.>| | 595 | | | ------------ | | | 596 ----------- | | Feedback | |<.=.=.=.=.| | 597 | | Target | |<~~~~~~~~~| RTP Receiver | 598 | ------------ | | (RTP_Rx) | 599 | | | | 600 | ------------ | | | 601 | | Burst and | |<~~~~~~~~>| | 602 | | Retrans. | |.........>| | 603 | | Source | |<.=.=.=.=>| | 604 | ------------ | | | 605 | | | | 606 ---------------- -------------- 608 -------> Multicast RTP Flow 609 .-.-.-.> Multicast RTCP Flow 610 .=.=.=.> Unicast RTCP Reports 611 ~~~~~~~> Unicast RTCP Feedback Messages 612 .......> Unicast RTP Flow 614 Figure 2: Flow diagram for unicast-based rapid acquisition 616 The feedback target (FT) is the entity as defined in 617 [I-D.ietf-avt-rtcpssm], to which RTP_Rx sends its RTCP feedback 618 messages indicating packet loss by means of an RTCP NACK message or 619 indicating RTP_Rx's desire to rapidly acquire the primary multicast 620 RTP session by means of an RTCP feedback message defined in this 621 document. While the Burst/Retransmission Source is responsible for 622 responding to these messages and for further RTCP interaction with 623 RTP_Rx in the case of a rapid acquisition process, it is assumed in 624 the remainder of the document that these two logical entities (FT and 625 Burst/Retransmission Source) are combined in a single physical entity 626 and they share state. In the remainder of the text, the term 627 Retransmission Server (RS) will be used whenever appropriate, to 628 refer to the combined functionality of the FT and Burst/ 629 Retransmission Source. 631 However, it must be noted that only FT is involved in the primary 632 multicast RTP session, whereas the Burst/Retransmission Source 633 transmits the unicast burst and retransmission packets both formatted 634 as RTP retransmission packets [RFC4588] in a single separate unicast 635 RTP retransmission session to each RTP_Rx. In the retransmission 636 session, as in any other RTP session, RS and RTP_Rx regularly send 637 the periodic sender and receiver reports, respectively. 639 The unicast burst is triggered by an RTCP feedback message that is 640 defined in this document based on the common packet format provided 641 in [RFC4585], whereas an RTP retransmission is triggered by an RTCP 642 NACK message defined in [RFC4585]. In the RTP/AVPF profile, there 643 are certain rules that apply to scheduling of both of these messages, 644 which are detailed in Section 3.5 of [RFC4585]. One of the rules 645 states that in a multi-party session such as the SSM sessions we are 646 considering in this specification, an RTP receiver cannot send an 647 RTCP feedback message for a minimum of one second period after 648 joining the session (i.e., Tmin=1.0 second). While this rule has the 649 goal of avoiding problems associated with flash crowds in typical 650 multi-party sessions, it defeats the purpose of rapid acquisition. 651 Furthermore, when RTP receivers delay their messages requesting a 652 burst by a deterministic or even a random amount, it still does not 653 make a difference since such messages are not related and their 654 timings are independent from each other. Thus, in this specification 655 we initialize Tmin to zero and allow the RTP receivers to send a 656 burst request message right at the beginning. It should, however, be 657 emphasized that for the subsequent messages during rapid acquisition, 658 the timing rules of [RFC4585] still apply. 660 Figure 3 depicts an example of messaging flow for rapid acquisition. 661 The RTCP feedback messages are explained below. The optional 662 messages are indicated in parentheses and they may or may not be 663 present during rapid acquisition. Note that in a scenario where 664 rapid acquisition is performed by a feedback target co-located with 665 the media sender, the same method (with the identical message flows) 666 still applies. 668 ------------------------- 669 | Retransmission Server | 670 ----------- | ------ ------------ | -------- ------------ 671 | Multicast | | | FT | | Burst/Ret. | | | | | RTP | 672 | Source | | | | | Source | | | Router | | Receiver | 673 | | | ------ ------------ | | | | (RTP_Rx) | 674 ----------- | | | | -------- ------------ 675 | ------------------------- | | 676 | | | | | 677 |-- RTP Multicast ---------->--------------->| | 678 |-. RTCP Multicast -.-.-.-.->-.-.-.-.-.-.-.->| | 679 | | | | | 680 | | |********************************| 681 | | |* PORT MAPPING SETUP *| 682 | | |********************************| 683 | | | | | 684 | |<~~~~~~~~~~~~~~~~~~~~~~~~~ RTCP RAMS-R ~~~| 685 | | | | | 686 | | |********************************| 687 | | |* UNICAST SESSION ESTABLISHED *| 688 | | |********************************| 689 | | | | | 690 | | |~~~ RTCP RAMS-I ~~~~~~~~~~~~~~~>| 691 | | | | | 692 | | |... Unicast RTP Burst .........>| 693 | | | | | 694 | |<~~~~~~~~~~~~~~~~~~~~~~~~ (RTCP RAMS-R) ~~| 695 | | | | | 696 | | |~~ (RTCP RAMS-I) ~~~~~~~~~~~~~~>| 697 | | | | | 698 | | | | | 699 | | | |<= SFGMP Join ==| 700 | | | | | 701 |-- RTP Multicast ------------------------------------------->| 702 |-. RTCP Multicast -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>| 703 | | | | | 704 | | | | | 705 | | |<~~~~~~~~~~~~~~~ RTCP RAMS-T ~~~| 706 | | | | | 707 | | | | | 708 | |<~~~~~~~~~~~~~~~~~~~~~~~~~~ (RTCP NACK) ~~| 709 | | | | | 710 | | | | | 711 | | |...(Unicast Retransmissions)...>| 712 | | | | | 713 : : : : : 714 : : : : : 715 | | |<.=.= Unicast RTCP Reports .=.=>| 716 : : : : : 717 : : : : : 718 | | | | | 720 -------> Multicast RTP Flow 721 .-.-.-.> Multicast RTCP Flow 722 .=.=.=.> Unicast RTCP Reports 723 ~~~~~~~> Unicast RTCP Feedback Messages 724 =======> SFGMP Messages 725 .......> Unicast RTP Flow 727 Figure 3: Message flows for unicast-based rapid acquisition 729 This document defines the expected behaviors of RS and RTP_Rx. It is 730 instructive to have independently operating implementations on RS and 731 RTP_Rx that request the burst, describe the burst, start the burst, 732 join the multicast session and stop the burst. These implementations 733 send messages to each other, but there must be provisions for the 734 cases where the control messages get lost, or re-ordered, or are not 735 being delivered to their destinations. 737 The following steps describe rapid acquisition in detail: 739 1. Port Mapping Setup: For the primary multicast RTP session, the 740 RTP and RTCP destination ports are declaratively specified 741 (Refer to Section 8 for examples in SDP). However, in the 742 unicast RTP retransmission session, RTP_Rx often needs to choose 743 its receive ports for RTP and RTCP. Since this unicast session 744 is established after RTP_Rx sends its rapid acquisition request 745 and it is received by RS in the primary multicast RTP session, 746 RTP_Rx MUST setup the port mappings between the unicast and 747 multicast sessions and send this mapping information to RS 748 before it sends its request so that RS knows how to communicate 749 with RTP_Rx. 751 The details of this setup procedure and other NAT-related issues 752 are left to Section 9 to keep the present discussion focused on 753 the RAMS message flows. 755 2. Request: RTP_Rx sends a rapid acquisition request for the 756 primary multicast RTP session to the feedback target address of 757 that session. The request contains the SSRC identifier of 758 RTP_Rx and may contain the media sender SSRC identifier(s) 759 associated with the desired primary multicast stream(s). This 760 RTCP feedback message is defined as the RAMS-Request (RAMS-R) 761 message and may contain parameters that constrain the burst, 762 such as the buffer and bandwidth limits. 764 Before joining the SSM session, RTP_Rx learns the addresses for 765 the multicast source, group and RS by out-of-band means. If 766 RTP_Rx desires to rapidly acquire only a subset of the primary 767 multicast streams available in the primary multicast RTP 768 session, the SSRC identifiers for the desired RTP streams MUST 769 also be obtained out-of-band, since no RTP packets have been 770 received yet for those streams. Based on this information, 771 RTP_Rx populates the desired SSRC(s) in its request message. 773 When RS successfully receives the RAMS-R message, it responds to 774 it by accepting or rejecting the request. Right before RS sends 775 any RTP or RTCP packet(s) described below, it establishes the 776 unicast RTP retransmission session. 778 3. Response: RS sends RAMS-Information (RAMS-I) message(s) to 779 RTP_Rx to convey the status for the burst(s) requested by 780 RTP_Rx. The RAMS-I message is sent by the Burst/Retransmission 781 Source logical entity that is part of RS. 783 In cases where the primary multicast RTP session associated with 784 FT_Ap on which the RAMS-R message was received contains only a 785 single primary multicast stream, RS SHALL always use the SSRC of 786 the RTP stream associated with FT_Ap in the RAMS-I message(s) 787 regardless of the media sender SSRC specified in the RAMS-R 788 message. In such cases the 'ssrc' attribute MAY be omitted from 789 the media description. If the requested SSRC and the actual 790 media sender SSRC do not match, RS SHOULD explicitly populate 791 the correct media sender SSRC in the initial RAMS-I message. 793 FT_Ap could also be associated with an RTP session that carries 794 two or more primary multicast streams. If RTP_Rx will issue a 795 collective request to receive the whole primary multicast RTP 796 session, it does not need the 'ssrc' attributes to be described 797 in the media description. Note that if FT_Ap is associated with 798 two or more RTP sessions, RTP_Rx's request will be ambiguous. 799 Thus, each FT_Ap MUST be associated with a single RTP session. 801 If RTP_Rx is willing to rapidly acquire only a subset of the 802 primary multicast streams, the RAMS-R message MUST explicitly 803 list the media sender SSRCs. Upon receiving such a message, RS 804 MAY accept the request for only the media sender SSRC(s) that 805 matched one of the RTP streams it serves. It MUST reject all 806 other requests with the appropriate response code. 808 * Reject Responses: RS MUST take into account any limitations 809 that MAY have been specified by RTP_Rx in the RAMS-R message 810 when making a decision regarding the request. If RTP_Rx has 811 requested to acquire the whole primary multicast RTP session 812 but RS cannot provide a rapid acquisition service for any of 813 the primary multicast streams, RS MUST reject the request via 814 a single RAMS-I message with a collective reject response 815 code and whose media sender SSRC field is set to one of SSRCs 816 served by this FT_Ap. Upon receiving this RAMS-I message, 817 RTP_Rx abandons the rapid acquisition attempt and may 818 immediately join the multicast session by sending an SFGMP 819 Join message towards its upstream multicast router. 821 In all other cases, RS MUST send a separate RAMS-I message 822 with the appropriate response code for each primary multicast 823 stream that has been requested by RTP_Rx but cannot be served 824 by RS. 826 * Accept Responses: RS MUST send a separate RAMS-I message 827 with the appropriate response code for each primary multicast 828 stream that has been requested by RTP_Rx and will be served 829 by RS. Such RAMS-I messages comprise fields that can be used 830 to describe the individual unicast burst streams. 832 A particularly important field carries the RTP sequence 833 number of the first packet transmitted in the respective RTP 834 stream to allow RTP_Rx to detect any missing initial 835 packet(s). Note that the first RTP packet transmitted in an 836 RTP stream is not necessarily a burst packet. It could be a 837 payload-specific RTP packet, which is payload-type- 838 multiplexed with the burst packets (See 839 [I-D.begen-avt-rtp-mpeg2ts-preamble] for an example). When 840 RS accepts the request, this field MUST be populated in the 841 RAMS-I message and the initial RAMS-I message SHOULD precede 842 the unicast burst or be sent at the start of the burst so 843 that RTP_Rx may quickly detect any missing initial packet(s). 845 Where possible, it is RECOMMENDED to include all RAMS-I messages 846 in the same compound RTCP packet. However, it is possible that 847 the RAMS-I message for a primary multicast stream may get 848 delayed or lost, and RTP_Rx may start receiving RTP packets 849 before receiving a RAMS-I message. Thus, RTP_Rx SHOULD NOT make 850 protocol dependencies on quickly receiving the initial RAMS-I 851 message. For redundancy purposes, it is RECOMMENDED that RS 852 repeats the RAMS-I messages multiple times as long as it follows 853 the RTCP timer rules defined in [RFC4585]. 855 4. Unicast Burst: For the primary multicast stream(s) for which 856 the request is accepted, RS starts sending the unicast burst(s) 857 that comprises one or more RTP retransmission packets. The 858 burst packet(s) are sent by the Burst/Retransmission Source 859 logical entity. In addition, there MAY be optional payload- 860 specific information that RS chooses to send to RTP_Rx. Such an 861 example is discussed in [I-D.begen-avt-rtp-mpeg2ts-preamble] for 862 transmitting the payload-specific information for MPEG2 863 Transport Streams. 865 5. Updated Request: RTP_Rx MAY send an updated RAMS-R message (to 866 the FT entity of RS) with a different value for one or more 867 fields of an earlier RAMS-R message. Upon receiving an updated 868 request, RS may use the updated values for sending/shaping the 869 burst, or refine the values and use the refined values for 870 sending/shaping the burst. Subsequently, RS MAY send an updated 871 RAMS-I message to indicate the changes it made. 873 However, the updated RAMS-I message may get lost. It is also 874 possible that the updated RAMS-R message could have been lost. 876 Thus, RTP_Rx SHOULD NOT make protocol dependencies on quickly 877 (or ever) receiving an updated RAMS-I message, or assume that RS 878 will honor the requested changes. 880 RTP_Rx may be in an environment where the available resources 881 are time-varying, which may or may not deserve sending a new 882 updated request. Determining the circumstances where RTP_Rx 883 should or should not send an updated request and the methods 884 that RTP_Rx can use to detect and evaluate the time-varying 885 available resources are not specified in this document. 887 6. Updated Response: RS may send more than one RAMS-I messages, 888 e.g., to update the value of one or more fields in an earlier 889 RAMS-I message. The updated RAMS-I messages may or may not be a 890 direct response to a RAMS-R message. RS may also send updated 891 RAMS-I messages to signal RTP_Rx in real time to join the 892 multicast session. RTP_Rx depends on RS to learn the join time, 893 which can be conveyed by the first RAMS-I message, or can be 894 sent/revised in a later RAMS-I message. If RS is not capable of 895 determining the join time in the initial RAMS-I message, it MUST 896 send another RAMS-I message (with the join time information) 897 later. 899 7. Multicast Join Signaling: The RAMS-I message allows RS to 900 signal explicitly when RTP_Rx SHOULD send the SFGMP Join 901 message. If the request is accepted, this information MUST be 902 conveyed in at least one RAMS-I message and its value MAY be 903 updated by subsequent RAMS-I messages. If RTP_Rx has received 904 multiple RAMS-I messages, it SHOULD use the information from the 905 most recent RAMS-I message. 907 There may be missing packets if RTP_Rx joins the multicast 908 session too early or too late. For example, if RTP_Rx starts 909 receiving the primary multicast stream while it is still 910 receiving the unicast burst at a high excess bitrate, this may 911 result in an increased risk of packet loss. Or, if RTP_Rx joins 912 the multicast session some time after the unicast burst is 913 finished, there may be a gap between the burst and multicast 914 data (a number of RTP packets may be missing). In both cases, 915 RTP_Rx may issue retransmissions requests (via RTCP NACK 916 messages) [RFC4585] to the FT entity of RS to fill the gap. RS 917 may or may not respond to such requests. When it responds and 918 the response causes significant changes in one or more values 919 reported earlier to RTP_Rx, an updated RAMS-I should be sent to 920 RTP_Rx. 922 8. Multicast Receive: After the join, RTP_Rx starts receiving the 923 primary multicast stream(s). 925 9. Terminate: RS may know when it needs to ultimately stop the 926 unicast burst based on its parameters. However, RTP_Rx may need 927 to ask RS to terminate the burst prematurely or at a specific 928 sequence number. For this purpose, it uses the RAMS-Termination 929 (RAMS-T) message. A separate RAMS-T message is sent for each 930 primary multicast stream served by RS unless an RTCP BYE message 931 has been sent as described in Step 10. For the burst requests 932 that were rejected by RS, there is no need to send a RAMS-T 933 message. 935 If RTP_Rx wants to terminate a burst prematurely, it SHALL send 936 a plain RAMS-T message for the particular primary multicast 937 stream, and upon receiving this message RS MUST terminate the 938 unicast burst. If RTP_Rx requested to acquire the entire 939 primary multicast RTP session but wants to terminate this 940 request before it learns the individual media sender SSRC(s) via 941 RAMS-I message(s), it cannot use RAMS-T message(s) and thus MUST 942 send an RTCP BYE message to terminate the request. 944 Otherwise, the default behavior for RTP_Rx is to send a RAMS-T 945 message right after it joined the multicast session and started 946 receiving multicast packets. In that case, RTP_Rx SHALL send a 947 RAMS-T message with the sequence number of the first RTP packet 948 received in the primary multicast stream, and RS SHOULD 949 terminate the respective burst after it sends the unicast burst 950 packet whose Original Sequence Number (OSN) field in the RTP 951 retransmission payload header matches this number minus one. 953 RTP_Rx MUST send at least one RAMS-T message for each primary 954 multicast stream served by RS (if an RTCP BYE message has not 955 been issued yet as described in Step 10). The RAMS-T message(s) 956 MUST be addressed to the Burst/Retransmission Source logical 957 entity. Against the possibility of a message loss, it is 958 RECOMMENDED that RTP_Rx repeats the RAMS-T messages multiple 959 times as long as it follows the RTCP timer rules defined in 960 [RFC4585]. 962 10. Terminate with RTCP BYE: When RTP_Rx is receiving one or more 963 burst streams, if RTP_Rx becomes no longer interested in 964 acquiring any of the primary multicast streams, RTP_Rx SHALL 965 issue an RTCP BYE message for the RTP retransmission session and 966 another RTCP BYE message for the primary multicast RTP session. 967 These RTCP BYE messages are sent to the Burst/Retransmission 968 Source and FT logical entities, respectively. 970 Upon receiving an RTCP BYE message, the Burst/Retransmission 971 Source logical entity MUST terminate the rapid acquisition 972 operation, and cease transmitting any further burst packets and 973 retransmission packets. If support for [RFC5506] has been 974 signaled, the RTCP BYE message MAY be sent in a reduced-size 975 RTCP packet. Otherwise, Section 6.1 of [RFC3550] mandates the 976 RTCP BYE message always to be sent with a sender or receiver 977 report in a compound RTCP packet (If no data has been received, 978 an empty receiver report MUST be still included). With the 979 information contained in the receiver report, RS can figure out 980 how many duplicate RTP packets have been delivered to RTP_Rx 981 (Note that this will be an upper-bound estimate as one or more 982 packets might have been lost during the burst transmission). 983 The impact of duplicate packets and measures that can be taken 984 to minimize the impact of receiving duplicate packets will be 985 addressed in Section 6.4. 987 Note that an RTCP BYE message issued for the RTP retransmission 988 session terminates the whole session and ceases transmitting any 989 further packets in that RTP session. Thus, in this case there 990 is no need for sending explicit RAMS-T messages, which would 991 only terminate their respective bursts. 993 For the purpose of gathering detailed information about RTP_Rx's 994 rapid acquisition experience, [I-D.begen-avt-rapid-sync-rtcp-xr] 995 defines an RTCP Extended Report (XR) Block. This report is designed 996 to be payload-independent, thus, it can be used by any multicast 997 application that supports rapid acquisition. Support for this XR 998 report is, however, OPTIONAL. 1000 6.3. Synchronization of Primary Multicast Streams 1002 When RTP_Rx acquires multiple primary multicast streams, it may need 1003 to synchronize them for the playout. This synchronization is 1004 traditionally achieved by the help of the RTCP sender reports 1005 [RFC3550]. If the playout will start before RTP_Rx has joined the 1006 multicast session, RTP_Rx must receive the information reflecting the 1007 synchronization among the primary multicast streams early enough so 1008 that it can play out the media in a synchronized fashion. However, 1009 this would require RS to cache the sender reports sent in the primary 1010 multicast RTP session(s), and piggyback the latest synchronization 1011 information on its own sender report and send an early sender report 1012 in the unicast RTP retransmission session. This issue and its 1013 implications are discussed in detail in 1014 [I-D.ietf-avt-rapid-rtp-sync]. 1016 An alternative approach is to use the RTP header extension mechanism 1017 [RFC5285] and convey the synchronization information in a header 1018 extension as defined in [I-D.ietf-avt-rapid-rtp-sync]. 1020 [RFC4588] says that retransmission packets SHOULD carry the same 1021 header extension carried in the header of the original RTP packets. 1022 Thus, as long as the multicast source emits a header extension with 1023 the synchronization information frequently enough, there is no 1024 additional task that needs to be carried out by RS. The 1025 synchronization information will be sent to RTP_Rx along with the 1026 burst packets. The frequent header extensions sent in the primary 1027 multicast RTP sessions also allow rapid synchronization of the RTP 1028 streams for the RTP receivers that do not support RAMS or that 1029 directly join the multicast session without running RAMS. Thus, in 1030 RAMS applications, it is RECOMMENDED that the multicast sources 1031 frequently send synchronization information by using header 1032 extensions following the rules presented in 1033 [I-D.ietf-avt-rapid-rtp-sync]. It should be noted that the regular 1034 sender reports are still sent in the unicast session by following the 1035 rules of [RFC3550]. 1037 6.4. Shaping the Unicast Burst 1039 This section provides informative guidelines about how RS can shape 1040 the transmission of the unicast burst. 1042 A higher bitrate for the unicast burst naturally conveys the 1043 Reference Information and media content to RTP_Rx faster. This way, 1044 RTP_Rx can start consuming the data sooner, which results in a faster 1045 acquisition. 1047 A higher rate also represents a better utilization of RS resources. 1048 As the burst may continue until it catches up with the primary 1049 multicast stream, the higher the bursting rate, the less data RS 1050 needs to transmit. However, a higher rate for the burst also 1051 increases the chances for congestion-caused packet loss. Thus, as 1052 discussed in Section 5, there must be an upper bound on the extra 1053 bandwidth used by the burst. 1055 When RS transmits the burst, it should take into account all 1056 available information to prevent any packet loss that may take place 1057 during the bursting as a result of buffer overflow on the path 1058 between RS and RTP_Rx and at RTP_Rx itself. The bursting rate may be 1059 determined by taking into account the following data, when available: 1061 a. Information obtained via the RAMS-R message, such as Max RAMS 1062 Buffer Fill Requirement and/or Max Receive Bitrate (See 1063 Section 7.2). 1065 b. Information obtained via RTCP receiver reports provided by RTP_Rx 1066 in the retransmission session, allowing in-session rate 1067 adaptations for the burst. When these receiver reports indicate 1068 packet loss, this may indicate a certain congestion state in the 1069 path from RS to RTP_Rx. Heuristics or algorithms that deduce 1070 such congestion state and how subsequently the RS should act, are 1071 outside the scope of this document. 1073 c. Information obtained via RTCP NACKs provided by RTP_Rx in the 1074 primary multicast RTP session, allowing in-session rate 1075 adaptations for the burst. Such RTCP NACKs are transmitted by 1076 RTP_Rx in response to packet loss detection by RTP_Rx in the 1077 burst. NACKs may indicate a certain congestion state on the path 1078 from RS to RTP_Rx. Heuristics or algorithms that deduce such 1079 congestion state and how subsequently the RS should act, are 1080 outside the scope of this document. 1082 d. There may be other feedback received from RTP_Rx, e.g., in the 1083 form of ECN-CE RTCP feedback messages 1084 [I-D.westerlund-avt-ecn-for-rtp] that may influence in-session 1085 rate adaptations. 1087 e. Information obtained via updated RAMS-R messages, allowing in- 1088 session rate adaptations, if supported by RS. 1090 f. Pre-configured settings for each RTP_Rx or a set of RTP_Rxs that 1091 indicate the upper-bound bursting rates for which no packet loss 1092 will occur as a result of congestion along the path of RS to 1093 RTP_Rx. For example, in managed IPTV networks, where the 1094 bottleneck bandwidth along the end-to-end path is known and where 1095 the network between RS and this link is provisioned and 1096 dimensioned to carry the burst streams, the bursting rate does 1097 not exceed the provisioned value. These settings may also be 1098 dynamically adapted using application-aware knowledge. 1100 The initial bursting rate of the unicast burst to RTP_Rx is 1101 determined by parameters directly obtained from RTP_Rx (a) or by pre- 1102 configured settings (f). If such information is not available, RS 1103 may choose an appropriate initial bursting rate, and could increase 1104 or decrease the rate based on the feedback information (b, c, d or 1105 e). However, this may not be an easy task as by the time packet loss 1106 is reported back to RS triggering a rate reduction, packet loss may 1107 have occurred. 1109 A specific situation occurs near the end of the unicast burst, when 1110 RS has almost no more additional data to sustain the relatively 1111 higher bursting rate, thus, the upper-bound bursting rate 1112 automatically gets limited by the nominal rate of the primary 1113 multicast stream. During this time frame, RTP_Rx eventually needs to 1114 join the multicast session. This means that both the burst packets 1115 and the multicast packets may be simultaneously received by RTP_Rx 1116 for a period of time. 1118 Since RS signals RTP_Rx when it should send the SFGMP Join message, 1119 RS may have a rough estimate of when RTP_Rx will start receiving 1120 multicast packets in the SSM session. RS may keep on sending burst 1121 packets but should reduce the rate accordingly at the appropriate 1122 instant by taking the rate of the SSM session into account. If RS 1123 ceases transmitting the burst packets before the burst catches up, 1124 any gap resulting from this imperfect switch-over by RTP_Rx can be 1125 later repaired by requesting retransmissions of the missing packets 1126 from RS. The retransmissions may be shaped by RS to make sure that 1127 they do not cause collateral loss in the primary multicast RTP 1128 session and the RTP retransmission session. 1130 6.5. Failure Cases 1132 In the following, we examine the implications of losing the RAMS-R, 1133 RAMS-I or RAMS-T messages and other failure cases. 1135 When RTP_Rx sends a RAMS-R message to initiate a rapid acquisition 1136 but the message gets lost and RS does not receive it, RTP_Rx will get 1137 neither a RAMS-I message, nor a unicast burst. In this case, RTP_Rx 1138 MAY resend the request when it is eligible to do so based on the RTCP 1139 timer rules defined in [RFC4585]. Or, after a reasonable amount of 1140 time, RTP_Rx may time out (based on the previous observed response 1141 times) and immediately join the SSM session. 1143 In the case RTP_Rx starts receiving a unicast burst but it does not 1144 receive a corresponding RAMS-I message within a reasonable amount of 1145 time, RTP_Rx may either discard the burst data or decide not to 1146 interrupt the unicast burst, and be prepared to join the SSM session 1147 at an appropriate time it determines or as indicated in a subsequent 1148 RAMS-I message (if available). To minimize the chances of losing the 1149 RAMS-I messages, it is RECOMMENDED that RS repeats the RAMS-I 1150 messages multiple times based on the RTCP timer rules defined in 1151 [RFC4585]. 1153 In the failure cases where the RAMS-R message is lost and RTP_Rx 1154 gives up, or the RAMS-I message is lost, RTP_Rx MUST still terminate 1155 the burst(s) it requested by following the rules described in 1156 Section 6.2. 1158 In the case a RAMS-T message sent by RTP_Rx does not reach its 1159 destination, RS may continue sending burst packets even though RTP_Rx 1160 no longer needs them. In such cases, it is RECOMMENDED that RTP_Rx 1161 repeats the RAMS-T message multiple times based on the RTCP timer 1162 rules defined in [RFC4585]. In the worst case, RS MUST be 1163 provisioned to deterministically terminate the burst when it can no 1164 longer send the burst packets faster than it receives the primary 1165 multicast stream packets. 1167 Section 6.3.5 of [RFC3550] explains the rules pertaining to timing 1168 out an SSRC. When RS accepts to serve the requested burst(s) and 1169 establishes the retransmission session, it should check the liveness 1170 of RTP_Rx via the RTCP messages and reports RTP_Rx sends. 1172 Editor's note: What would the timeout duration be and what action 1173 should RS take? 1175 7. Encoding of the Signaling Protocol in RTCP 1177 This section defines the formats of the RTCP transport-layer feedback 1178 messages that are exchanged between the Retransmission Server (RS) 1179 and RTP Receiver (RTP_Rx) during rapid acquisition. These messages 1180 are referred to as the RAMS Messages. They are payload-independent 1181 and MUST be used by all RTP-based multicast applications that support 1182 rapid acquisition regardless of the payload they carry. 1184 Payload-specific feedback messages are not defined in this document. 1185 However, further optional payload-independent and payload-specific 1186 information can be included in the exchange. 1188 The common packet format for the RTCP feedback messages is defined in 1189 Section 6.1 of [RFC4585]. Each feedback message has a fixed-length 1190 field for version, padding, feedback message type (FMT), payload type 1191 (PT), length, SSRC of packet sender, SSRC of media sender as well as 1192 a variable-length field for feedback control information (FCI). 1194 In the RAMS messages, the PT field is set to RTPFB (205) and the FMT 1195 field is set to RAMS (6). Individual RAMS messages are identified by 1196 a sub-field called Sub Feedback Message Type (SFMT). Any Reserved 1197 field SHALL be set to zero and ignored. 1199 Depending on the specific scenario and timeliness/importance of a 1200 RAMS message, it may be desirable to send it in a reduced-size RTCP 1201 packet [RFC5506]. However, unless support for [RFC5506] has been 1202 signaled, compound RTCP packets MUST be used by following [RFC3550] 1203 rules. 1205 Following the rules specified in [RFC3550], all integer fields in the 1206 messages defined below are carried in network-byte order, that is, 1207 most significant byte (octet) first, also known as big-endian. 1208 Unless otherwise noted, numeric constants are in decimal (base 10). 1210 7.1. Extensions 1212 To improve the functionality of the RAMS method in certain 1213 applications, it may be desirable to define new fields in the RAMS 1214 Request, Information and Termination messages. Such fields MUST be 1215 encoded as TLV elements as described below and sketched in Figure 4: 1217 o Type: A single-octet identifier that defines the type of the 1218 parameter represented in this TLV element. 1220 o Length: A two-octet field that indicates the length (in octets) 1221 of the TLV element excluding the Type and Length fields, and the 1222 8-bit Reserved field between them. Note that this length does not 1223 include any padding that is required for alignment. 1225 o Value: Variable-size set of octets that contains the specific 1226 value for the parameter. 1228 In the extensions, the Reserved field SHALL be set to zero and 1229 ignored. If a TLV element does not fall on a 32-bit boundary, the 1230 last word MUST be padded to the boundary using further bits set to 1231 zero. 1233 In a RAMS message, any vendor-neutral or private extension MUST be 1234 placed after the mandatory fields (if any). The extensions MAY be 1235 placed in any order. The support for extensions is OPTIONAL. 1237 0 1 2 3 1238 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 1239 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1240 | Type | Reserved | Length | 1241 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1242 : Value : 1243 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1245 Figure 4: Structure of a TLV element 1247 7.1.1. Vendor-Neutral Extensions 1249 If the goal in defining new TLV elements is to extend the 1250 functionality in a vendor-neutral manner, they MUST be registered 1251 with IANA through the guidelines provided in Section 12.5. 1253 The current document defines several vendor-neutral extensions in the 1254 subsequent sections. 1256 7.1.2. Private Extensions 1258 It is desirable to allow vendors to use private extensions in a TLV 1259 format. For interoperability, such extensions MUST NOT collide with 1260 each other. 1262 A certain range of TLV Types (between - and including - 128 and 254 ) 1263 is reserved for private extensions (Refer to Section 12.5). IANA 1264 management for these extensions is unnecessary and they are the 1265 responsibility of individual vendors. 1267 The structure that MUST be used for the private extensions is 1268 depicted in Figure 5. Here, the enterprise numbers are used from 1269 http://www.iana.org/assignments/enterprise-numbers. This will ensure 1270 the uniqueness of the private extensions and avoid any collision. 1272 0 1 2 3 1273 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 1274 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1275 | Type | Reserved | Length | 1276 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1277 | Enterprise Number | 1278 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1279 : Value : 1280 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1282 Figure 5: Structure of a private extension 1284 7.2. RAMS Request 1286 The RAMS Request message is identified by SFMT=1. This message is 1287 used by RTP_Rx to request rapid acquisition for a primary multicast 1288 RTP session, or one or more primary multicast streams belonging to 1289 the same primary multicast RTP session. 1291 Unless signaled otherwise, a RAMS-R message is used to request a 1292 single primary multicast stream whose SSRC is indicated in the media 1293 sender SSRC field of the message header. In cases where RTP_Rx does 1294 not know the media sender SSRC, it MUST set that field to its own 1295 SSRC. 1297 If RTP_Rx wants to request two or more primary multicast streams or 1298 all of the streams in the primary multicast RTP session, RTP_Rx MUST 1299 provide explicit signaling as described below and set the media 1300 sender SSRC field to its own SSRC to minimize the chances of 1301 accidentally requesting a wrong primary multicast stream. 1303 The FCI field MUST contain only one RAMS Request. The FCI field has 1304 the structure depicted in Figure 6. 1306 0 1 2 3 1307 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 1308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1309 | SFMT=1 | Reserved | 1310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1311 : Optional TLV-encoded Fields (and Padding, if needed) : 1312 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1314 Figure 6: FCI field syntax for the RAMS Request message 1316 o Requested Media Sender SSRC(s): Optional TLV element that lists 1317 the media sender SSRC(s) requested by RTP_Rx. If this TLV element 1318 does not exist in the RAMS-R message, it means that RTP_Rx is only 1319 interested in a single primary multicast stream whose media sender 1320 SSRC is already specified in the header of the RAMS-R message. 1321 However, if this TLV element exists, RS MUST ignore the media 1322 sender SSRC specified in the header of the RAMS-R message. If 1323 this TLV element exists but the Length field is set to zero, 1324 meaning that no media sender SSRC is listed, it means that RTP_Rx 1325 is requesting to rapidly acquire the entire primary multicast RTP 1326 session. Otherwise, RTP_Rx lists the individual media sender 1327 SSRCs in this TLV element and sets the Length field of the TLV 1328 element to 4*n, where n is the number of SSRC entries. 1330 Type: 1 1332 o Min RAMS Buffer Fill Requirement (32 bits): Optional TLV element 1333 that denotes the minimum milliseconds of data that RTP_Rx desires 1334 to have in its buffer before allowing the data to be consumed by 1335 the application. 1337 RTP_Rx may have knowledge of its buffering requirements. These 1338 requirements may be application and/or device specific. For 1339 instance, RTP_Rx may need to have a certain amount of data in its 1340 application buffer to handle transmission jitter and/or to be able 1341 to support error-control methods. If RS is told the minimum 1342 buffering requirement of the receiver, it may tailor the burst(s) 1343 more precisely, e.g., by choosing an appropriate starting point. 1344 The methods used by RTP_Rx to determine this value are application 1345 specific, and thus, out of the scope of this document. 1347 If specified, the amount of backfill that will be provided by the 1348 unicast bursts and any payload-specific information MUST NOT be 1349 smaller than the specified value since it will not be able to 1350 build up the desired level of buffer at RTP_Rx and may cause 1351 buffer underruns. 1353 Type: 2 1355 o Max RAMS Buffer Fill Requirement (32 bits): Optional TLV element 1356 that denotes the maximum milliseconds of data that RTP_Rx can 1357 buffer without losing the data due to buffer overflow. 1359 RTP_Rx may have knowledge of its buffering requirements. These 1360 requirements may be application or device specific. For instance, 1361 one particular RTP_Rx may have more physical memory than another 1362 RTP_Rx, and thus, can buffer more data. If RS knows the buffering 1363 ability of the receiver, it may tailor the burst(s) more 1364 precisely. The methods used by the receiver to determine this 1365 value are application specific, and thus, out of scope. 1367 If specified, the amount of backfill that will be provided by the 1368 unicast bursts and any payload-specific information MUST NOT be 1369 larger than this value since it may cause buffer overflows at 1370 RTP_Rx. 1372 Type: 3 1374 o Max Receive Bitrate (64 bits): Optional TLV element that denotes 1375 the maximum bitrate (in bits per second) that the RTP receiver can 1376 process the aggregation of the unicast burst(s) and any payload- 1377 specific information that will be provided by RS. The limits may 1378 include local receiver limits as well as network limits that are 1379 known to the receiver. 1381 If specified, the total bitrate of the unicast burst(s) plus any 1382 payload-specific information MUST NOT be larger than this value 1383 since it may cause congestion and packet loss. 1385 Type: 4 1387 o Request for Preamble Only (0 bits): Optional TLV element that 1388 indicates that RTP_Rx is only requesting the preamble information 1389 for the desired primary multicast stream(s). If this TLV element 1390 exists in the RAMS-R message, RS SHOULD NOT send any burst packets 1391 other than the preamble packets. Note that this TLV element does 1392 not carry a Value field. Thus, the Length field MUST be set to 1393 zero. 1395 Type: 5 1397 The semantics of the RAMS-R feedback message is independent of the 1398 payload type. 1400 7.3. RAMS Information 1402 The RAMS Information message is identified by SFMT=2. This message 1403 is used to describe the unicast burst that will be sent for rapid 1404 acquisition. It also includes other useful information for RTP_Rx as 1405 described below. 1407 A separate RAMS-I message with the appropriate media sender SSRC and 1408 response code is sent by RS for each primary multicast stream that 1409 has been requested by RTP_Rx. 1411 The FCI field MUST contain only one RAMS Information. The FCI field 1412 has the structure depicted in Figure 7. 1414 0 1 2 3 1415 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 1416 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1417 | SFMT=2 | MSN | Response | 1418 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1419 : Optional TLV-encoded Fields (and Padding, if needed) : 1420 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1422 Figure 7: FCI field syntax for the RAMS Information message 1424 o Message Sequence Number (8 bits) : Mandatory field that denotes 1425 the sequence number of the RAMS-I message for the particular media 1426 sender SSRC specified in the message header. The MSN value SHALL 1427 be set to zero only when a new RAMS request is received. During 1428 rapid acquisition, the same RAMS-I message MAY be repeated for 1429 redundancy purposes without incrementing the MSN value. If an 1430 updated RAMS-I message will be sent (either with a new information 1431 or an updated information), the MSN value SHALL be incremented by 1432 one. In the MSN field, the regular wrapping rules apply. 1434 o Response (16 bits): Mandatory field that denotes the RS response 1435 code for this RAMS-I message. This document defines several 1436 initial response codes and registers them with IANA. If a new 1437 vendor-neutral response code will be defined, it MUST be 1438 registered with IANA through the guidelines specified in 1439 Section 12.6. If the new response code is intended to be used 1440 privately by a vendor, there is no need for IANA management. 1441 Instead, the vendor MUST use the private extension mechanism 1442 (Section 7.1.2) to convey its message and MUST indicate this by 1443 putting zero in the Response field. 1445 o Media Sender SSRC (32 bits): Optional TLV element that specifies 1446 the media sender SSRC of the unicast burst stream. While this 1447 information is already available in the message header, it may be 1448 useful to repeat it in an explicit field. For example, if FT_Ap 1449 that received the RAMS-R message is associated with a single 1450 primary multicast stream but the requested media sender SSRC does 1451 not match the SSRC of the RTP stream associated with this FT_Ap, 1452 RS SHOULD include this TLV element in the initial RAMS-I message 1453 to let RTP_Rx know that the media sender SSRC has changed. If the 1454 two SSRCs match, there is no need to include this TLV element. 1456 Type: 31 1458 o RTP Seqnum of the First Packet (16 bits): TLV element that 1459 specifies the RTP sequence number of the first packet that will be 1460 sent in the respective RTP stream. This allows RTP_Rx to know 1461 whether one or more packets sent by RS have been dropped at the 1462 beginning of the stream. If RS accepts the RAMS request, this 1463 element MUST exist. If RS rejects the RAMS request, this element 1464 SHALL NOT exist. 1466 Type: 32 1468 o Earliest Multicast Join Time (32 bits): TLV element that 1469 specifies the delta time (in ms) between the arrival of the first 1470 RTP packet in the RTP stream (which could be a burst packet or a 1471 payload-specific packet) and the earliest time instant when RTP_Rx 1472 SHOULD send an SFGMP Join message to join the multicast session. 1473 A zero value in this field means that RTP_Rx may send the SFGMP 1474 Join message right away. 1476 If the RAMS request has been accepted, RS MUST send this field at 1477 least once, so that RTP_Rx knows when to join the multicast 1478 session. If the burst request has been rejected as indicated in 1479 the Response field, this field MAY be omitted or set to zero. In 1480 that case, it is up to RTP_Rx when or whether to join the 1481 multicast session. 1483 It should be noted that when RS serves two or more bursts and 1484 sends a separate RAMS-I message for each burst, the join times 1485 specified in these RAMS-I messages should correspond to more or 1486 less the same time instant, and RTP_Rx sends the SFGMP Join 1487 message based on the earliest join time. 1489 Type: 33 1491 o Burst Duration (32 bits): Optional TLV element that denotes the 1492 duration of the burst, i.e., the delta difference between the 1493 first and the last burst packet, that RS is planning to send (in 1494 ms) in the respective RTP stream. In the absence of additional 1495 stimulus, RS will send a burst of this duration. However, the 1496 burst duration may be modified by subsequent events, including 1497 changes in the primary multicast stream and reception of RAMS-T 1498 messages. 1500 Note that RS MUST terminate the flow in a deterministic timeframe, 1501 even if it does not get a RAMS-T or a BYE from RTP_Rx. It is 1502 OPTIONAL to send this field in a RAMS-I message when the burst 1503 request is accepted. If the burst request has been rejected as 1504 indicated in the Response field, this field MAY be omitted or set 1505 to zero. 1507 Type: 34 1509 o Max Transmit Bitrate (64 bits): Optional TLV element that denotes 1510 the maximum bitrate (in bits per second) that will be used by RS 1511 for the RTP stream associated with this RAMS-I message. 1513 Type: 35 1515 The semantics of the RAMS-I feedback message is independent of the 1516 payload type. 1518 The initial RAMS-I message SHOULD precede the unicast burst or be 1519 sent at the start of the burst. Subsequent RAMS-I message(s) MAY be 1520 sent during the unicast burst and convey changes in any of the 1521 fields. 1523 7.4. RAMS Termination 1525 The RAMS Termination message is identified by SFMT=3. 1527 The RAMS Termination is used to assist RS in determining when to stop 1528 the burst. A separate RAMS-T message is sent by RTP_Rx for each 1529 primary multicast stream that has been served by RS. Each of these 1530 RAMS-T messages has the appropriate media sender SSRC populated in 1531 its message header. 1533 If RTP_Rx wants RS to stop a burst prematurely, it sends a plain 1534 RAMS-T message as described below. Upon receiving this message, RS 1535 stops the respective burst immediately. If RTP_Rx wants RS to 1536 terminate all of the bursts, it should send all of the respective 1537 RAMS-T messages in a single compound RTCP packet. 1539 The default behavior for RTP_Rx is to send a RAMS-T message right 1540 after it joined the multicast session and started receiving multicast 1541 packets. In that case, RTP_Rx includes the sequence number of the 1542 first RTP packet received in the primary multicast stream in the 1543 RAMS-T message. With this information, RS can decide when to 1544 terminate the unicast burst. 1546 The FCI field MUST contain only one RAMS Termination. The FCI field 1547 has the structure depicted in Figure 8. 1549 0 1 2 3 1550 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 1551 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1552 | SFMT=3 | Reserved | 1553 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1554 : Optional TLV-encoded Fields (and Padding, if needed) : 1555 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1557 Figure 8: FCI field syntax for the RAMS Termination message 1559 o Extended RTP Seqnum of First Multicast Packet (32 bits): Optional 1560 TLV element that specifies the extended RTP sequence number of the 1561 first packet received from the SSM session for a particular 1562 primary multicast stream. The low 16 bits contain the sequence 1563 number of the first packet received from the SSM session, and the 1564 most significant 16 bits extend that sequence number with the 1565 corresponding count of sequence number cycles, which may be 1566 maintained according to the algorithm in Appendix A.1 of 1567 [RFC3550]. 1569 Type: 61 1571 The semantics of the RAMS-T feedback message is independent of the 1572 payload type. 1574 8. SDP Signaling 1576 8.1. Definitions 1578 The syntax of the 'rtcp-fb' attribute has been defined in [RFC4585]. 1579 Here we add the following syntax to the 'rtcp-fb' attribute (the 1580 feedback type and optional parameters are all case sensitive): 1582 (In the following ABNF [RFC5234], fmt, SP and CRLF are used as 1583 defined in [RFC4566].) 1584 rtcp-fb-syntax = "a=rtcp-fb:" rtcp-fb-pt SP rtcp-fb-val CRLF 1586 rtcp-fb-pt = "*" ; wildcard: applies to all formats 1587 / fmt ; as defined in SDP spec 1589 rtcp-fb-val = "nack" SP "ssli" 1591 The following parameter is defined in this document for use with 1592 'nack': 1594 o 'ssli' stands for Stream Synchronization Loss Indication and 1595 indicates the use of RAMS messages as defined in Section 7. 1597 This document also defines a new media-level SDP attribute ('rams- 1598 updates') that indicates whether RS supports updated request messages 1599 or not. This attribute is used in a declarative manner. If RS 1600 supports updated request messages and this attribute is included in 1601 the SDP description, RTP_Rx may send updated requests. RS may or may 1602 not be able to accept value changes in every field in an updated 1603 RAMS-R message. However, if the 'rams-updates' attribute is not 1604 included in the SDP description, RTP_Rx SHALL NOT send updated 1605 requests (RTP_Rx MAY still repeat its initial request without 1606 changes, though). 1608 8.2. Requirements 1610 The use of SDP to describe the RAMS entities normatively requires the 1611 support for: 1613 o The SDP grouping semantics [I-D.ietf-mmusic-rfc3388bis] 1615 o The RTP/AVPF profile [RFC4585] 1617 o The RTP retransmissions [RFC4588] 1619 o The RTCP extensions for SSM sessions with unicast feedback 1620 [I-D.ietf-avt-rtcpssm] 1622 The support for the source-specific media attributes [RFC5576] may be 1623 required in some deployments as described below. 1625 8.3. Examples 1627 This section provides a declarative SDP [RFC4566] example for 1628 enabling rapid acquisition of multicast RTP sessions. 1630 In the example shown Figure 9, we have a primary multicast (source) 1631 stream and a unicast retransmission stream. The source stream is 1632 multicast from a distribution source (with a source IP address of 1633 198.51.100.1) to the multicast destination address of 233.252.0.2 and 1634 port 41000. A Retransmission Server including feedback target 1635 functionality (with an address of 192.0.2.1 and port of 41001) is 1636 specified with the 'rtcp' attribute. The RTP receiver(s) can report 1637 missing packets on the source stream to the feedback target and 1638 request retransmissions. In the RAMS context, the parameter 'rtx- 1639 time' specifies the time in milliseconds that the Retransmission 1640 Server keeps an RTP packet in its cache available for retransmission 1641 (measured from the time the packet was received by the Retransmission 1642 Server). 1644 In this example, both the conventional retransmission and rapid 1645 acquisition support are enabled. This is achieved by the "a=rtcp- 1646 fb:98 nack ssli" line. Note that this SDP includes the "a=sendonly" 1647 line for the media description of the retransmission stream and is 1648 for the Retransmission Server (RS). Its counterpart for the RTP 1649 Receiver (RTP_Rx) includes the "a=recvonly" line as shown in 1650 Figure 10. 1652 When an RTP receiver asks for rapid acquisition before it joins a 1653 primary multicast RTP session, it sends a RAMS-R message to the 1654 feedback target of that primary multicast RTP session. If FT_Ap is 1655 associated with only one RTP stream, the RTP receiver does not need 1656 to learn the SSRC of that stream via an out-of-band method. If RS 1657 accepts the request, it will send an RAMS-I message with the correct 1658 SSRC identifier. If FT_Ap is associated with a multi-stream RTP 1659 session and the RTP receiver is willing to request rapid acquisition 1660 for the entire session, the RTP receiver again does not need to learn 1661 the SSRCs via an out-of-band method. However, if the RTP receiver is 1662 willing to request a particular subset of the primary multicast 1663 streams, it must learn their SSRC identifiers and list them in the 1664 RAMS-R message. Since this RTP receiver has not yet received any RTP 1665 packets for the primary multicast stream(s), the RTP receiver must in 1666 this case learn the SSRC value(s) from the 'ssrc' attribute of the 1667 media description. In addition to the SSRC value, the 'cname' source 1668 attribute must also be present in the SDP description [RFC5576]. 1670 Note that listing the SSRC values for the primary multicast streams 1671 in the SDP file does not create a problem in SSM sessions when an 1672 SSRC collision occurs. This is because in SSM sessions, an RTP 1673 receiver that observed an SSRC collision with a media sender MUST 1674 change its own SSRC [I-D.ietf-avt-rtcpssm] by following the rules 1675 defined in [RFC3550]. 1677 A feedback target that receives a RAMS-R feedback message becomes 1678 aware that the prediction chain at the RTP receiver side has been 1679 broken or does not exist anymore. If the necessary conditions are 1680 satisfied (as outlined in Section 7 of [RFC4585]) and available 1681 resources exist, RS may react to the RAMS-R message by sending any 1682 transport-layer and payload-specific feedback message(s) and starting 1683 the unicast burst. 1685 v=0 1686 o=ali 1122334455 1122334466 IN IP4 rams.example.com 1687 s=Rapid Acquisition Example 1688 t=0 0 1689 a=group:FID 1 2 1690 a=rtcp-unicast:rsi 1691 m=video 41000 RTP/AVPF 98 1692 i=Primary Multicast Stream 1693 c=IN IP4 233.252.0.2/255 1694 a=source-filter: incl IN IP4 233.252.0.2 198.51.100.1 1695 a=recvonly 1696 a=rtpmap:98 MP2T/90000 1697 a=rtcp:41001 IN IP4 192.0.2.1 1698 a=rtcp-fb:98 nack 1699 a=rtcp-fb:98 nack ssli 1700 a=ssrc:123321 cname:iptv-ch32@rams.example.com 1701 a=rams-updates 1702 a=mid:1 1703 m=video 41002 RTP/AVPF 99 1704 i=Unicast Retransmission Stream (Ret. and Rapid Acq. Support) 1705 c=IN IP4 192.0.2.1 1706 a=sendonly 1707 a=rtpmap:99 rtx/90000 1708 a=rtcp:41003 1709 a=fmtp:99 apt=98; rtx-time=5000 1710 a=mid:2 1712 Figure 9: Example SDP for RS when RAMS support is enabled 1714 v=0 1715 o=ali 1122334455 1122334466 IN IP4 rams.example.com 1716 s=Rapid Acquisition Example 1717 t=0 0 1718 a=group:FID 1 2 1719 a=rtcp-unicast:rsi 1720 m=video 41000 RTP/AVPF 98 1721 i=Primary Multicast Stream 1722 c=IN IP4 233.252.0.2/255 1723 a=source-filter: incl IN IP4 233.252.0.2 198.51.100.1 1724 a=recvonly 1725 a=rtpmap:98 MP2T/90000 1726 a=rtcp:41001 IN IP4 192.0.2.1 1727 a=rtcp-fb:98 nack 1728 a=rtcp-fb:98 nack ssli 1729 a=ssrc:123321 cname:iptv-ch32@rams.example.com 1730 a=rams-updates 1731 a=mid:1 1732 m=video 41002 RTP/AVPF 99 1733 i=Unicast Retransmission Stream (Ret. and Rapid Acq. Support) 1734 c=IN IP4 192.0.2.1 1735 a=recvonly 1736 a=rtpmap:99 rtx/90000 1737 a=rtcp:41003 1738 a=fmtp:99 apt=98; rtx-time=5000 1739 a=mid:2 1741 Figure 10: Example SDP for RTP_Rx when RAMS support is enabled 1743 In this section, we considered the simplest scenario where the 1744 primary multicast RTP session carried only one stream and the RTP 1745 receiver wanted to rapidly acquire this stream only. Best practices 1746 for scenarios where the primary multicast RTP session carries two or 1747 more streams or the RTP receiver wants to acquire one or more streams 1748 from multiple primary multicast RTP sessions at the same time are 1749 presented in [I-D.begen-avt-rams-scenarios]. 1751 Editor's note: Should we keep the text above? 1753 9. NAT Considerations 1755 For a variety of reasons, one or more NAPT devices (hereafter simply 1756 called NAT) may exist between RTP_Rx and RS. NATs have a variety of 1757 operating characteristics for UDP traffic [RFC4787]. For a NAT to 1758 permit traffic from RS to arrive at RTP_Rx, the NAT(s) must first 1759 either: 1761 a. See UDP traffic sent from RTP_Rx (which is on the 'inside' of the 1762 NAT) to RS (which is on the 'outside' of the NAT). This traffic 1763 is sent to the same transport address as the subsequent response 1764 traffic, or; 1766 b. Be configured to forward certain ports (e.g., using HTML 1767 configuration, UPnP IGD [UPnP-IGD], DLNA [DLNA]). Details of 1768 this are out of scope of this document. 1770 For both (a) and (b), RTP_Rx is responsible for maintaining the NAT's 1771 state if it wants to receive traffic from the RS on that port. For 1772 (a), RTP_Rx MUST send UDP traffic to keep the NAT binding alive, at 1773 least every 30 seconds [RFC4787]. Note that while (a) is more like 1774 an automatic/dynamic configuration, (b) is more like a manual/static 1775 configuration. 1777 When RTP_Rx sends a RAMS-R message in the primary multicast RTP 1778 session and the request is received by RS, a new unicast RTP 1779 retransmission session will be established between RS and RTP_Rx. 1781 While the ports on the RS side are already signaled via out-of-band 1782 means (e.g., SDP), RTP_Rx may need to convey to RS the RTP and RTCP 1783 ports it wants to use on its side for the new session. Since there 1784 are two RTP sessions involved during this process and one of them is 1785 established upon a feedback message sent in the other one, this 1786 requires an explicit port mapping method. This problem equally 1787 applies to scenarios where the RTP media is multicast in an SSM 1788 session, and an RTP receiver requests retransmission from a local 1789 repair server by using the RTCP NACK messages for the missing packets 1790 and the repair server retransmits the requested packets over a 1791 unicast session. Thus, instead of laying out a specific solution for 1792 the RAMS applications, a general solution is introduced in 1793 [I-D.begen-avt-ports-for-ucast-mcast-rtp]. 1795 Applications using RAMS MUST support this solution both on the RS and 1796 RTP_Rx side to allow RTP receivers to use their desired ports and to 1797 support RAMS behind NAT devices. 1799 10. Congestion Control Considerations 1801 Editor's note: Text for this section will be provided by Magnus W. 1803 11. Security Considerations 1805 Applications that are using RAMS make heavy use of the unicast 1806 feedback mechanism described in [I-D.ietf-avt-rtcpssm] and the 1807 payload format defined in [RFC4588]. Thus, these applications are 1808 subject to the general security considerations discussed in 1809 [I-D.ietf-avt-rtcpssm] and [RFC4588]. In this section, we give an 1810 overview of the guidelines and suggestions described in these 1811 specifications from a RAMS perspective. We also discuss the security 1812 considerations that explicitly apply to applications using RAMS. 1814 First of all, much of the session description information is 1815 available in the SDP descriptions that are distributed to the media 1816 senders, Retransmission Servers and RTP receivers. Adequate security 1817 measures are RECOMMENDED to ensure the integrity and authenticity of 1818 the SDP descriptions so that transport addresses of the media 1819 senders, distribution sources, feedback targets as well as other 1820 session-specific information can be authenticated. 1822 Compared to an RTCP NACK message that triggers one or more 1823 retransmissions, a RAMS Request (RAMS-R) message may trigger a new 1824 burst stream to be sent by the Retransmission Server. Depending on 1825 the application-specific requirements and conditions existing at the 1826 time of the RAMS-R reception by the Retransmission Server, the 1827 resulting burst stream may contain potentially a large number of 1828 retransmission packets. Since these packets are sent at a faster 1829 than the nominal rate, RAMS consumes more resources on the 1830 Retransmission Server, the RTP receiver and the network. This 1831 particularly makes denial-of-service attacks more intense, and hence, 1832 more harmful than attacks that target ordinary retransmission 1833 sessions. 1835 Following the suggestions given in [RFC4588], counter-measures SHOULD 1836 be taken to prevent tampered or spoofed RTCP packets. Tampered 1837 RAMS-R messages may trigger inappropriate burst streams or alter the 1838 existing burst streams in an inappropriate way. For example, if the 1839 Max Receive Bitrate field is altered by a tampered RAMS-R message, 1840 the updated burst may overflow the buffer on the receiver side, or 1841 oppositely, may slow down the burst to the point that it becomes 1842 useless. Tampered RAMS Termination (RAMS-T) messages may terminate 1843 valid burst streams pre-maturely resulting in gaps in the received 1844 RTP packets. RAMS Information (RAMS-I) messages contain fields that 1845 are critical for the success of the RAMS operation. Any tampered 1846 information in the RAMS-I message may easily cause the RTP receiver 1847 to make wrong decisions. Consequently, the RAMS operation may fail. 1849 While most of the denial-of-service attacks can be prevented by the 1850 integrity and authenticity checks enabled by SRTP, an attack can 1851 still be started by legitimate endpoints that send several valid 1852 RAMS-R messages to a particular feedback target in a synchronized 1853 fashion and very short amount of time. Since a RAMS operation may 1854 temporarily consume a large amount of resources, a series of the 1855 RAMS-R messages may temporarily overload the Retransmission Server. 1856 In these circumstances, the Retransmission Server may, for example, 1857 reject incoming RAMS requests until its resources become available 1858 again. One means to ameliorate this threat is to apply a per- 1859 endpoint policing mechanism on the incoming RAMS requests. A 1860 reasonable policing mechanism should consider application-specific 1861 requirements and minimize false negatives. 1863 In addition to the denial-of-service attacks, man-in-the-middle and 1864 replay attacks can also be harmful. However, RAMS itself does not 1865 bring any new risks or threats other than the ones discussed in 1866 [I-D.ietf-avt-rtcpssm]. 1868 [RFC4588] RECOMMENDS that the cryptography mechanisms are used for 1869 the retransmission payload format to provide protection against known 1870 plaintext attacks. As discussed in [RFC4588], the retransmission 1871 payload format sets the timestamp field in the RTP header to the 1872 media timestamp of the original packet and this does not compromise 1873 the confidentiality. Furthermore, if cryptography is used to provide 1874 security services on the original stream, then the same services, 1875 with equivalent cryptographic strength, MUST be provided on the 1876 retransmission stream per [RFC4588]. 1878 12. IANA Considerations 1880 The following contact information shall be used for all registrations 1881 in this document: 1883 Ali Begen 1884 abegen@cisco.com 1886 170 West Tasman Drive 1887 San Jose, CA 95134 USA 1889 Note to the RFC Editor: In the following, please replace "XXXX" with 1890 the number of this document prior to publication as an RFC. 1892 12.1. Registration of SDP Attributes 1894 This document registers a new attribute name in SDP. 1896 SDP Attribute ("att-field"): 1897 Attribute name: rams-updates 1898 Long form: Support for Updated RAMS Request Messages 1899 Type of name: att-field 1900 Type of attribute: Media level 1901 Subject to charset: No 1902 Purpose: See this document 1903 Reference: [RFCXXXX] 1904 Values: None 1906 12.2. Registration of SDP Attribute Values 1908 This document registers a new value for the 'nack' attribute to be 1909 used with the 'rtcp-fb' attribute in SDP. For more information about 1910 'rtcp-fb', refer to [RFC4585]. 1912 Value name: ssli 1913 Long name: Stream Synchronization Loss Indication 1914 Usable with: nack 1915 Reference: [RFCXXXX] 1917 12.3. Registration of FMT Values 1919 Within the RTPFB range, the following format (FMT) value is 1920 registered: 1922 Name: RAMS 1923 Long name: Rapid Acquisition of Multicast Sessions 1924 Value: 6 1925 Reference: [RFCXXXX] 1927 12.4. SFMT Values for RAMS Messages Registry 1929 This document creates a new sub-registry for the sub-feedback message 1930 type (SFMT) values to be used with the FMT value registered for RAMS 1931 messages. The registry is called the SFMT Values for RAMS Messages 1932 Registry. This registry is to be managed by the IANA according to 1933 the Specification Required policy of [RFC5226]. 1935 The length of the SFMT field in the RAMS messages is a single octet, 1936 allowing 256 values. The registry is initialized with the following 1937 entries: 1939 Value Name Reference 1940 ----- -------------------------------------------------- ------------- 1941 0 Reserved [RFCXXXX] 1942 1 RAMS Request [RFCXXXX] 1943 2 RAMS Information [RFCXXXX] 1944 3 RAMS Termination [RFCXXXX] 1945 4-254 Specification Reqired 1946 255 Reserved [RFCXXXX] 1948 The SFMT values 0 and 255 are reserved for future use. 1950 Any registration for an unassigned SFMT value MUST contain the 1951 following information: 1953 o Contact information of the one doing the registration, including 1954 at least name, address, and email. 1956 o A detailed description of what the new SFMT represents and how it 1957 shall be interpreted. 1959 Note that new RAMS functionality should be introduced by using the 1960 extension mechanism within the existing RAMS message types not by 1961 introducing new message types unless it is absolutely necessary. 1963 12.5. RAMS TLV Space Registry 1965 This document creates a new IANA TLV space registry for the RAMS 1966 extensions. The registry is called the RAMS TLV Space Registry. 1967 This registry is to be managed by the IANA according to the 1968 Specification Required policy of [RFC5226]. 1970 The length of the Type field in the TLV elements is a single octet, 1971 allowing 256 values. The Type values 0 and 255 are reserved for 1972 future use. The Type values between (and including) 128 and 254 are 1973 reserved for private extensions. 1975 The registry is initialized with the following entries: 1977 Type Description Reference 1978 ---- -------------------------------------------------- ------------- 1979 0 Reserved [RFCXXXX] 1980 1 Requested Media Sender SSRC(s) [RFCXXXX] 1981 2 Min RAMS Buffer Fill Requirement [RFCXXXX] 1982 3 Max RAMS Buffer Fill Requirement [RFCXXXX] 1983 4 Max Receive Bitrate [RFCXXXX] 1984 5 Request for Preamble Only [RFCXXXX] 1985 6-30 Specification Reqired 1986 31 Media Sender SSRC [RFCXXXX] 1987 32 RTP Seqnum of the First Packet [RFCXXXX] 1988 33 Earliest Multicast Join Time [RFCXXXX] 1989 34 Burst Duration [RFCXXXX] 1990 35 Max Transmit Bitrate [RFCXXXX] 1991 36-60 Specification Reqired 1992 61 Extended RTP Seqnum of First Multicast Packet [RFCXXXX] 1993 62-127 Specification Reqired 1994 128-254 No IANA Maintenance 1995 255 Reserved [RFCXXXX] 1997 Any registration for an unassigned Type value MUST contain the 1998 following information: 2000 o Contact information of the one doing the registration, including 2001 at least name, address, and email. 2003 o A detailed description of what the new TLV element represents and 2004 how it shall be interpreted. 2006 12.6. RAMS Response Code Space Registry 2008 This document creates a new IANA TLV space registry for the RAMS 2009 response codes. The registry is called the RAMS Response Code Space 2010 Registry. This registry is to be managed by the IANA according to 2011 the Specification Required policy of [RFC5226]. 2013 The length of the Response field is two octets, allowing 65536 codes. 2014 However, the response codes have been classified and registered 2015 following an HTTP-style code numbering in this document. New 2016 response codes SHALL follow the guidelines below: 2018 Code Level Purpose 2019 ---------- --------------- 2020 1xx Informational 2021 2xx Success 2022 3xx Redirection 2023 4xx RTP Receiver Error 2024 5xx Retransmission Server Error 2026 The Response code 65536 is reserved for future use. 2028 The registry is initialized with the following entries: 2030 Code Description Reference 2031 ----- -------------------------------------------------- ------------- 2032 0 A private response code is included in the message [RFCXXXX] 2034 100 Parameter update for RAMS session [RFCXXXX] 2036 200 RAMS request has been accepted [RFCXXXX] 2037 201 Unicast burst has been completed [RFCXXXX] 2039 400 Invalid RAMS-R message syntax 2040 401 Invalid min buffer requirement in RAMS-R message [RFCXXXX] 2041 402 Invalid max buffer requirement in RAMS-R message [RFCXXXX] 2042 403 Invalid max bitrate requirement in RAMS-R message [RFCXXXX] 2044 500 An unspecified RS internal error has occurred [RFCXXXX] 2045 501 RS has no bandwidth to start RAMS session [RFCXXXX] 2046 502 RS has no CPU available to start RAMS session [RFCXXXX] 2047 503 RAMS functionality is not available on RS [RFCXXXX] 2048 504 RAMS functionality is not available for RTP_Rx [RFCXXXX] 2049 505 RAMS functionality is not available for 2050 the requested multicast stream [RFCXXXX] 2051 506 RS has no valid starting point available for 2052 the requested multicast stream [RFCXXXX] 2053 507 RS has no reference information available for 2054 the requested multicast stream [RFCXXXX] 2055 508 RS has no RTP stream matching the requested SSRC [RFCXXXX] 2056 509 RAMS request to acquire the entire session 2057 has been denied [RFCXXXX] 2058 510 Only the preamble information is sent [RFCXXXX] 2059 511 RAMS request has been denied due to a policy [RFCXXXX] 2061 Any registration for an unassigned Response code MUST contain the 2062 following information: 2064 o Contact information of the one doing the registration, including 2065 at least name, address, and email. 2067 o A detailed description of what the new Response code describes and 2068 how it shall be interpreted. 2070 13. Contributors 2072 Dave Oran and Magnus Westerlund have contributed significantly to 2073 this specification by providing text and solutions to some of the 2074 issues raised during the development of this specification. 2076 14. Acknowledgments 2078 The following individuals have reviewed the earlier versions of this 2079 specification and provided helpful comments: Colin Perkins, Joerg 2080 Ott, Roni Even, Dan Wing, Tony Faustini, Peilin Yang, Jeff Goldberg, 2081 Muriel Deschanel, Orit Levin, Guy Hirson, Tom Taylor, Xavier Marjou, 2082 Ye-Kui Wang, Zixuan Zou, Ingemar Johansson, Haibin Song, Ning Zong, 2083 Jonathan Lennox and Sean Sheedy. 2085 15. Change Log 2087 15.1. draft-ietf-avt-rapid-acquisition-for-rtp-06 2089 The following are the major changes compared to version 05: 2091 o Comments from WGLC have been addressed. See the mailing list for 2092 the list of changes. 2094 o Support for multi-stream RTP sessions has been added. 2096 o NAT section has been revised. 2098 15.2. draft-ietf-avt-rapid-acquisition-for-rtp-05 2100 The following are the major changes compared to version 04: 2102 o Editorial changes throughout the document. 2104 15.3. draft-ietf-avt-rapid-acquisition-for-rtp-04 2106 The following are the major changes compared to version 03: 2108 o Clarifications for the definition of RS. 2110 o Response codes have been defined. 2112 15.4. draft-ietf-avt-rapid-acquisition-for-rtp-03 2114 The following are the major changes compared to version 02: 2116 o Clarifications for the RAMS-I message. 2118 o Type values have been assigned. 2120 15.5. draft-ietf-avt-rapid-acquisition-for-rtp-02 2122 The following are the major changes compared to version 01: 2124 o Port mapping discussion has been removed since it will be 2125 discussed in a separate draft. 2127 o Security considerations section has been added. 2129 o Burst shaping section has been completed. 2131 o Most of the outstanding open issues have been addressed. 2133 15.6. draft-ietf-avt-rapid-acquisition-for-rtp-01 2135 The following are the major changes compared to version 00: 2137 o Formal definitions of vendor-neutral and private extensions and 2138 their IANA registries have been added. 2140 o SDP examples were explained in more detail. 2142 o The sub-FMT field has been introduced in the RAMS messages for 2143 message type identification. 2145 o Some terminology has been fixed. 2147 o NAT considerations section has been added. 2149 15.7. draft-ietf-avt-rapid-acquisition-for-rtp-00 2151 This is a resubmission of version 03 as a WG item. 2153 15.8. draft-versteeg-avt-rapid-synchronization-for-rtp-03 2155 The following are the major changes compared to version 02: 2157 o The title and message names have been changed. 2159 o RTCP message semantics have been added. RAMS protocol has been 2160 revised to handle updated requests and responses. 2162 o Definitions have been revised. 2164 o RTP/RTCP muxing reference has been added. 2166 15.9. draft-versteeg-avt-rapid-synchronization-for-rtp-02 2168 The following are the major changes compared to version 01: 2170 o The discussion around MPEG2-TS has been moved to another document. 2172 o The RAMS-R, RAMS-I and RAMS-T messages have been extensively 2173 modified and they have been made mandatory. 2175 o IANA Considerations section has been updated. 2177 o The discussion of RTCP XR report has been moved to another 2178 document. 2180 o A new section on protocol design considerations has been added. 2182 15.10. draft-versteeg-avt-rapid-synchronization-for-rtp-01 2184 The following are the major changes compared to version 00: 2186 o The core of the rapid synchronization method is now payload- 2187 independent. But, the draft still defines payload-specific 2188 messages that are required for enabling rapid synch for the RTP 2189 flows carrying MPEG2-TS. 2191 o RTCP APP packets have been removed, new RTCP transport-layer and 2192 payload-specific feedback messages have been defined. 2194 o The step for leaving the current multicast session has been 2195 removed from Section 6.2. 2197 o A new RTCP XR (Multicast Join) report has been defined. 2199 o IANA Considerations section have been updated. 2201 o Editorial changes to clarify several points. 2203 16. References 2205 16.1. Normative References 2207 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 2208 Jacobson, "RTP: A Transport Protocol for Real-Time 2209 Applications", STD 64, RFC 3550, July 2003. 2211 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2212 Requirement Levels", BCP 14, RFC 2119, March 1997. 2214 [RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A. 2215 Thyagarajan, "Internet Group Management Protocol, Version 2216 3", RFC 3376, October 2002. 2218 [RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery 2219 Version 2 (MLDv2) for IPv6", RFC 3810, June 2004. 2221 [RFC4604] Holbrook, H., Cain, B., and B. Haberman, "Using Internet 2222 Group Management Protocol Version 3 (IGMPv3) and Multicast 2223 Listener Discovery Protocol Version 2 (MLDv2) for Source- 2224 Specific Multicast", RFC 4604, August 2006. 2226 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 2227 Description Protocol", RFC 4566, July 2006. 2229 [I-D.ietf-mmusic-rfc3388bis] 2230 Camarillo, G. and H. Schulzrinne, "The SDP (Session 2231 Description Protocol) Grouping Framework", 2232 draft-ietf-mmusic-rfc3388bis-04 (work in progress), 2233 November 2009. 2235 [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, 2236 "Extended RTP Profile for Real-time Transport Control 2237 Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, 2238 July 2006. 2240 [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. 2241 Hakenberg, "RTP Retransmission Payload Format", RFC 4588, 2242 July 2006. 2244 [I-D.ietf-avt-rtcpssm] 2245 Ott, J. and J. Chesterfield, "RTCP Extensions for Single- 2246 Source Multicast Sessions with Unicast Feedback", 2247 draft-ietf-avt-rtcpssm-19 (work in progress), 2248 November 2009. 2250 [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific 2251 Media Attributes in the Session Description Protocol 2252 (SDP)", RFC 5576, June 2009. 2254 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 2255 Specifications: ABNF", STD 68, RFC 5234, January 2008. 2257 [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size 2258 Real-Time Transport Control Protocol (RTCP): Opportunities 2259 and Consequences", RFC 5506, April 2009. 2261 [RFC5285] Singer, D. and H. Desineni, "A General Mechanism for RTP 2262 Header Extensions", RFC 5285, July 2008. 2264 [I-D.ietf-avt-rapid-rtp-sync] 2265 Perkins, C. and T. Schierl, "Rapid Synchronisation of RTP 2266 Flows", draft-ietf-avt-rapid-rtp-sync-09 (work in 2267 progress), January 2010. 2269 [I-D.begen-avt-ports-for-ucast-mcast-rtp] 2270 Begen, A. and B. Steeg, "Port Mapping Between Unicast and 2271 Multicast RTP Sessions", 2272 draft-begen-avt-ports-for-ucast-mcast-rtp-01 (work in 2273 progress), October 2009. 2275 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 2276 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 2277 May 2008. 2279 16.2. Informative References 2281 [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, 2282 August 1980. 2284 [I-D.begen-avt-rams-scenarios] 2285 Begen, A., "Considerations for RAMS Scenarios", 2286 draft-begen-avt-rams-scenarios-00 (work in progress), 2287 October 2009. 2289 [I-D.begen-avt-rtp-mpeg2ts-preamble] 2290 Begen, A. and E. Friedrich, "RTP Payload Format for 2291 MPEG2-TS Preamble", 2292 draft-begen-avt-rtp-mpeg2ts-preamble-04 (work in 2293 progress), December 2009. 2295 [I-D.begen-avt-rapid-sync-rtcp-xr] 2296 Begen, A. and E. Friedrich, "Multicast Acquisition Report 2297 Block Type for RTCP XR", 2298 draft-begen-avt-rapid-sync-rtcp-xr-03 (work in progress), 2299 October 2009. 2301 [I-D.westerlund-avt-ecn-for-rtp] 2302 Westerlund, M., Johansson, I., Perkins, C., and K. 2303 Carlberg, "Explicit Congestion Notification (ECN) for RTP 2304 over UDP", draft-westerlund-avt-ecn-for-rtp-02 (work in 2305 progress), October 2009. 2307 [I-D.ietf-fecframe-interleaved-fec-scheme] 2308 Begen, A., "RTP Payload Format for 1-D Interleaved Parity 2309 FEC", draft-ietf-fecframe-interleaved-fec-scheme-09 (work 2310 in progress), January 2010. 2312 [RFC4787] Audet, F. and C. Jennings, "Network Address Translation 2313 (NAT) Behavioral Requirements for Unicast UDP", BCP 127, 2314 RFC 4787, January 2007. 2316 [I-D.ietf-dccp-rtp] 2317 Perkins, C., "RTP and the Datagram Congestion Control 2318 Protocol (DCCP)", draft-ietf-dccp-rtp-07 (work in 2319 progress), June 2007. 2321 [UPnP-IGD] 2322 Forum, UPnP., "Universal Plug and Play (UPnP) Internet 2323 Gateway Device (IGD)", November 2001. 2325 [DLNA] , DLNA., "http://www.dlna.org/home". 2327 [IC2009] Begen, A., Glazebrook, N., and W. VerSteeg, "Reducing 2328 Channel Change Times in IPTV with Real-Time Transport 2329 Protocol (IEEE Internet Computing)", May 2009. 2331 Authors' Addresses 2333 Bill VerSteeg 2334 Cisco 2335 5030 Sugarloaf Parkway 2336 Lawrenceville, GA 30044 2337 USA 2339 Email: billvs@cisco.com 2340 Ali Begen 2341 Cisco 2342 170 West Tasman Drive 2343 San Jose, CA 95134 2344 USA 2346 Email: abegen@cisco.com 2348 Tom VanCaenegem 2349 Alcatel-Lucent 2350 Copernicuslaan 50 2351 Antwerpen, 2018 2352 Belgium 2354 Email: Tom.Van_Caenegem@alcatel-lucent.be 2356 Zeev Vax 2357 Microsoft Corporation 2358 1065 La Avenida 2359 Mountain View, CA 94043 2360 USA 2362 Email: zeevvax@microsoft.com