idnits 2.17.1 draft-ietf-avt-rapid-acquisition-for-rtp-07.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 604 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 18, 2010) is 5175 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 2085, but not defined ** 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 ** 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 (~~), 7 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 22, 2010 T. VanCaenegem 6 Alcatel-Lucent 7 Z. Vax 8 Microsoft Corporation 9 February 18, 2010 11 Unicast-Based Rapid Acquisition of Multicast RTP Sessions 12 draft-ietf-avt-rapid-acquisition-for-rtp-07 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 birate 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 22, 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. Burst Shaping and Congestion Control in RAMS . . . . . . 24 103 6.5. Failure Cases . . . . . . . . . . . . . . . . . . . . . . 27 104 7. Encoding of the Signaling Protocol in RTCP . . . . . . . . . . 27 105 7.1. Extensions . . . . . . . . . . . . . . . . . . . . . . . 28 106 7.1.1. Vendor-Neutral Extensions . . . . . . . . . . . . . . 29 107 7.1.2. Private Extensions . . . . . . . . . . . . . . . . . . 29 108 7.2. RAMS Request . . . . . . . . . . . . . . . . . . . . . . 30 109 7.3. RAMS Information . . . . . . . . . . . . . . . . . . . . 32 110 7.4. RAMS Termination . . . . . . . . . . . . . . . . . . . . 35 111 8. SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . . 36 112 8.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 36 113 8.2. Requirements . . . . . . . . . . . . . . . . . . . . . . 37 114 8.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . 37 115 9. NAT Considerations . . . . . . . . . . . . . . . . . . . . . . 40 116 10. Security Considerations . . . . . . . . . . . . . . . . . . . 41 117 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 43 118 11.1. Registration of SDP Attributes . . . . . . . . . . . . . 43 119 11.2. Registration of SDP Attribute Values . . . . . . . . . . 44 120 11.3. Registration of FMT Values . . . . . . . . . . . . . . . 44 121 11.4. SFMT Values for RAMS Messages Registry . . . . . . . . . 44 122 11.5. RAMS TLV Space Registry . . . . . . . . . . . . . . . . . 45 123 11.6. RAMS Response Code Space Registry . . . . . . . . . . . . 46 124 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 48 125 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 48 126 14. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 48 127 14.1. draft-ietf-avt-rapid-acquisition-for-rtp-07 . . . . . . . 48 128 14.2. draft-ietf-avt-rapid-acquisition-for-rtp-06 . . . . . . . 48 129 14.3. draft-ietf-avt-rapid-acquisition-for-rtp-05 . . . . . . . 49 130 14.4. draft-ietf-avt-rapid-acquisition-for-rtp-04 . . . . . . . 49 131 14.5. draft-ietf-avt-rapid-acquisition-for-rtp-03 . . . . . . . 49 132 14.6. draft-ietf-avt-rapid-acquisition-for-rtp-02 . . . . . . . 49 133 14.7. draft-ietf-avt-rapid-acquisition-for-rtp-01 . . . . . . . 49 134 14.8. draft-ietf-avt-rapid-acquisition-for-rtp-00 . . . . . . . 50 135 14.9. draft-versteeg-avt-rapid-synchronization-for-rtp-03 . . . 50 136 14.10. draft-versteeg-avt-rapid-synchronization-for-rtp-02 . . . 50 137 14.11. draft-versteeg-avt-rapid-synchronization-for-rtp-01 . . . 50 138 15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 51 139 15.1. Normative References . . . . . . . . . . . . . . . . . . 51 140 15.2. Informative References . . . . . . . . . . . . . . . . . 52 141 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 53 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. Finally, Section 10 297 discusses the security considerations. 299 Section 3 provides a list of the definitions frequently used in this 300 document. 302 2. Requirements Notation 304 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 305 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 306 document are to be interpreted as described in [RFC2119]. 308 3. Definitions 310 This document uses the following acronyms and definitions frequently: 312 (Primary) SSM (or Multicast) Session: The multicast session to which 313 RTP receivers can join at a random point in time. 315 Primary Multicast RTP Session: The multicast RTP session an RTP 316 receiver is interested in acquiring rapidly. A primary SSM session 317 may carry multiple multicast RTP sessions, but only one of them can 318 be the primary from the viewpoint of rapid acquisition. 320 Primary Multicast (RTP) Streams: The RTP stream(s) carried in the 321 primary multicast RTP session. 323 Source Filtering Group Management Protocol (SFGMP): Following the 324 definition in [RFC4604], SFGMP refers to the Internet Group 325 Management Protocol (IGMP) version 3 [RFC3376] and the Multicast 326 Listener Discovery Protocol (MLD) version 2 [RFC3810] in the IPv4 and 327 IPv6 networks, respectively. However, the rapid acquisition method 328 introduced in this document does not depend on a specific version of 329 either of these group management protocols. In the remainder of this 330 document, SFGMP will refer to any group management protocol that has 331 Join and Leave functionalities. 333 Feedback Target (FT): Unicast RTCP feedback target as defined in 334 [I-D.ietf-avt-rtcpssm]. FT_Ap denotes a specific feedback target 335 running on a particular address and port. 337 Retransmission (Burst) Packet: An RTP packet that is formatted as 338 defined in [RFC4588]. 340 Reference Information: The set of certain media content and metadata 341 information that is sufficient for an RTP receiver to start usefully 342 consuming a media stream. The meaning, format and size of this 343 information are specific to the application and are out of scope of 344 this document. 346 Preamble Information: A more compact form of the whole or a subset 347 of the Reference Information transmitted out-of-band. 349 (Unicast) Burst (Stream): A unicast stream of RTP retransmission 350 packets that enable an RTP receiver to rapidly acquire the Reference 351 Information associated with a primary multicast stream. Each burst 352 stream is identified by its SSRC identifier that is unique in the 353 primary multicast RTP session. The burst streams are typically 354 transmitted at an accelerated rate. 356 Retransmission Server (RS): The RTP/RTCP endpoint that can generate 357 the retransmission packets and the burst streams. RS may also 358 generate other non-retransmission packets to aid the rapid 359 acquisition process. 361 4. Elements of Delay in Multicast Applications 363 In an any-source (ASM) or a source-specific (SSM) multicast delivery 364 system, there are three major elements that contribute to the overall 365 acquisition delay when an RTP receiver switches from one multicast 366 session to another one. These are: 368 o Multicast switching delay 370 o Reference Information latency 372 o Buffering delays 374 Multicast switching delay is the delay that is experienced to leave 375 the current multicast session (if any) and join the new multicast 376 session. In typical systems, the multicast join and leave operations 377 are handled by a group management protocol. For example, the 378 receivers and routers participating in a multicast session may use 379 the Internet Group Management Protocol (IGMP) version 3 [RFC3376] or 380 the Multicast Listener Discovery Protocol (MLD) version 2 [RFC3810]. 381 In either of these protocols, when a receiver wants to join a 382 multicast session, it sends a message to its upstream router and the 383 routing infrastructure sets up the multicast forwarding state to 384 deliver the packets of the multicast session to the new receiver. 385 Depending on the proximity of the upstream router, the current state 386 of the multicast tree, the load on the system and the protocol 387 implementation, the join times vary. Current systems provide join 388 latencies usually less than 200 milliseconds (ms). If the receiver 389 had been participating in another multicast session before joining 390 the new session, it needs to send a Leave message to its upstream 391 router to leave the session. In common multicast routing protocols, 392 the leave times are usually smaller than the join times, however, it 393 is possible that the Leave and Join messages may get lost, in which 394 case the multicast switching delay inevitably increases. 396 Reference Information latency is the time it takes the receiver to 397 acquire the Reference Information. It is highly dependent on the 398 proximity of the actual time the receiver joined the session to the 399 next time the Reference Information will be sent to the receivers in 400 the session, whether the Reference Information is sent contiguously 401 or not, and the size of the Reference Information. For some 402 multicast flows, there is a little or no interdependency in the data, 403 in which case the Reference Information latency will be nil or 404 negligible. For other multicast flows, there is a high degree of 405 interdependency. One example of interest is the multicast flows that 406 carry compressed audio/video. For these flows, the Reference 407 Information latency may become quite large and be a major contributor 408 to the overall delay. Refer to [I-D.begen-avt-rtp-mpeg2ts-preamble] 409 for details. 411 The buffering component of the overall acquisition delay is driven by 412 the way the application layer processes the payload. In many 413 multicast applications, an unreliable transport protocol such as UDP 414 [RFC0768] is often used to transmit the data packets, and the 415 reliability, if needed, is usually addressed through other means such 416 as Forward Error Correction (e.g., 417 [I-D.ietf-fecframe-interleaved-fec-scheme]) and retransmission. 418 These loss-repair methods require buffering at the receiver side to 419 function properly. In many applications, it is also often necessary 420 to de-jitter the incoming data packets before feeding them to the 421 application. The de-jittering process also increases the buffering 422 delays. Besides these network-related buffering delays, there are 423 also specific buffering needs that are required by the individual 424 applications. For example, standard video decoders typically require 425 an amount, sometimes a significant amount, of coded video data to be 426 available in the pre-decoding buffers prior to starting to decode the 427 video bitstream. 429 5. Protocol Design Considerations and Their Effect on Resource 430 Management for Rapid Acquisition 432 Rapid acquisition is an optimization of a system that must continue 433 to work correctly and properly whether or not the optimization is 434 effective, or even fails due to lost control and feedback messages, 435 congestion, or other problems. This is fundamental to the overall 436 design requirements surrounding the protocol definition and to the 437 resource management schemes to be employed together with the protocol 438 (e.g., QoS machinery, server load management, etc). In particular, 439 the system needs to operate within a number of constraints: 441 o First, a rapid acquisition operation must fail gracefully. The 442 user experience must, except perhaps in pathological 443 circumstances, be not significantly worse for trying and failing 444 to complete rapid acquisition compared to simply joining the 445 multicast session. 447 o Second, providing the rapid acquisition optimizations must not 448 cause collateral damage to either the multicast session being 449 joined, or other multicast sessions sharing resources with the 450 rapid acquisition operation. In particular, the rapid acquisition 451 operation must avoid interference with the multicast session that 452 may be simultaneously being received by other hosts. In addition, 453 it must also avoid interference with other multicast sessions 454 sharing the same network resources. These properties are 455 possible, but are usually difficult to achieve. 457 One challenge is the existence of multiple bandwidth bottlenecks 458 between the receiver and the server(s) in the network providing the 459 rapid acquisition service. In commercial IPTV deployments, for 460 example, bottlenecks are often present in the aggregation network 461 connecting the IPTV servers to the network edge, the access links 462 (e.g., DSL, DOCSIS) and in the home network of the subscribers. Some 463 of these links may serve only a single subscriber, limiting 464 congestion impact to the traffic of only that subscriber, but others 465 can be shared links carrying multicast sessions of many subscribers. 466 Also note that the state of these links may be varying over time. 467 The receiver may have knowledge of a portion of this network, or may 468 have partial knowledge of the entire network. The methods employed 469 by the devices to acquire this network state information is out of 470 scope for this document. The receiver should be able to signal the 471 server with the bandwidth that it believes it can handle. The server 472 also needs to be able to rate limit the flow in order to stay within 473 the performance envelope that it knows about. Both the server and 474 receiver need to be able to inform the other of changes in the 475 requested and delivered rates. However, the protocol must be robust 476 in the presence of packet loss, so this signaling must include the 477 appropriate default behaviors. 479 A second challenge is that for some uses (e.g., high-bitrate video) 480 the unicast burst bitrate is high while the flow duration of the 481 unicast burst is short. This is because the purpose of the unicast 482 burst is to allow the RTP receiver to join the multicast quickly and 483 thereby limit the overall resources consumed by the burst. Such 484 high-bitrate, short-duration flows are not amenable to conventional 485 admission control techniques. For example, end-to-end per-flow 486 signaled admission control techniques such as RSVP have too much 487 latency and control channel overhead to be a good fit for rapid 488 acquisition. Similarly, using a TCP (or TCP-like) approach with a 489 3-way handshake and slow-start to avoid inducing congestion would 490 defeat the purpose of attempting rapid acquisition in the first place 491 by introducing many round-trip times (RTT) of delay. 493 These observations lead to certain unavoidable requirements and goals 494 for a rapid acquisition protocol. These are: 496 o The protocol must be designed to allow a deterministic upper bound 497 on the extra bandwidth used (compared to just joining the 498 multicast session). A reasonable size bound is e*B, where B is 499 the nominal bandwidth of the primary multicast streams, and e is 500 an excess-bandwidth coefficient. The total duration of the 501 unicast burst must have a reasonable bound; long unicast bursts 502 devolve to the bandwidth profile of multi-unicast for the whole 503 system. 505 o The scheme should minimize (or better eliminate) the overlap of 506 the unicast burst and the primary multicast stream. This 507 minimizes the window during which congestion could be induced on a 508 bottleneck link compared to just carrying the multicast or unicast 509 packets alone. 511 o The scheme must minimize (or better eliminate) any gap between the 512 unicast burst and the primary multicast stream, which has to be 513 repaired later, or in the absence of repair, will result in loss 514 being experienced by the application. 516 In addition to the above, there are some other protocol design issues 517 to be considered. First, there is at least one RTT of "slop" in the 518 control loop. In starting a rapid acquisition burst, this manifests 519 as the time between the client requesting the unicast burst and the 520 burst description and/or the first unicast burst packets arriving at 521 the receiver. For managing and terminating the unicast burst, there 522 are two possible approaches for the control loop: The receiver can 523 adapt to the unicast burst as received, converge based on observation 524 and explicitly terminate the unicast burst with a second control loop 525 exchange (which takes a minimum of one RTT, just as starting the 526 unicast burst does). Alternatively, the server generating the 527 unicast burst can pre-compute the burst parameters based on the 528 information in the initial request and tell the receiver the burst 529 duration. 531 The protocol described in the next section allows either method of 532 controlling the rapid acquisition unicast burst. 534 6. Rapid Acquisition of Multicast RTP Sessions 536 We start this section with an overview of the rapid acquisition of 537 multicast sessions (RAMS) method. 539 6.1. Overview 541 [I-D.ietf-avt-rtcpssm] specifies an extension to the RTP Control 542 Protocol (RTCP) to use unicast feedback in an SSM session. It 543 defines an architecture that introduces the concept of Distribution 544 Source, which - in an SSM context - distributes the RTP data and 545 redistributes RTCP information to all RTP receivers. This RTCP 546 information is retrieved from the Feedback Target, to which RTCP 547 unicast feedback traffic is sent. The feedback target MAY be 548 implemented in one or more entities different from the Distribution 549 Source, and different RTP receivers MAY use different feedback 550 targets. 552 This document builds further on these concepts to reduce the 553 acquisition delay when an RTP receiver joins a multicast session at a 554 random point in time by introducing the concept of the Burst Source 555 and new RTCP feedback messages. The Burst Source has a cache where 556 the most recent packets from the primary multicast RTP session are 557 continuously stored. When an RTP receiver wants to receive a primary 558 multicast stream prior to joining the SSM session, it may first 559 request a unicast burst from the Burst Source. In this burst, the 560 packets are formatted as RTP retransmission packets [RFC4588] and 561 carry the Reference Information. This information allows the RTP 562 receiver to start usefully consuming the RTP packets sent in the 563 primary multicast RTP session. 565 Using an accelerated bitrate (as compared to the nominal bitrate of 566 the primary multicast stream) for the unicast burst implies that at a 567 certain point in time, the payload transmitted in the unicast burst 568 is going to be the same as the payload in the associated multicast 569 stream, i.e., the unicast burst will catch up with the primary 570 multicast stream. At this point, the RTP receiver no longer needs to 571 receive the unicast burst and can join the SSM session. This method 572 is referred to as the Rapid Acquisition of Multicast Sessions (RAMS). 574 This document proposes extensions to [RFC4585] for an RTP receiver to 575 request a unicast burst as well as for additional control messaging 576 that can be leveraged during the acquisition process. 578 6.2. Message Flows 580 Figure 2 shows the main entities involved in rapid acquisition and 581 the message flows. They are 583 o Multicast Source 585 o Feedback Target (FT) 587 o Burst/Retransmission Source 589 o RTP Receiver (RTP_Rx) 590 ----------- -------------- 591 | |----------------------------------->| | 592 | |.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>| | 593 | | | | 594 | Multicast | ---------------- | | 595 | Source | | Retransmission | | | 596 | |------->| Server (RS) |--------->| | 597 | |.-.-.-.>| |.-.-.-.-.>| | 598 | | | ------------ | | | 599 ----------- | | Feedback | |<.=.=.=.=.| | 600 | | Target | |<~~~~~~~~~| RTP Receiver | 601 | ------------ | | (RTP_Rx) | 602 | | | | 603 | ------------ | | | 604 | | Burst and | |<~~~~~~~~>| | 605 | | Retrans. | |.........>| | 606 | | Source | |<.=.=.=.=>| | 607 | ------------ | | | 608 | | | | 609 ---------------- -------------- 611 -------> Multicast RTP Flow 612 .-.-.-.> Multicast RTCP Flow 613 .=.=.=.> Unicast RTCP Reports 614 ~~~~~~~> Unicast RTCP Feedback Messages 615 .......> Unicast RTP Flow 617 Figure 2: Flow diagram for unicast-based rapid acquisition 619 The feedback target (FT) is the entity as defined in 620 [I-D.ietf-avt-rtcpssm], to which RTP_Rx sends its RTCP feedback 621 messages indicating packet loss by means of an RTCP NACK message or 622 indicating RTP_Rx's desire to rapidly acquire the primary multicast 623 RTP session by means of an RTCP feedback message defined in this 624 document. While the Burst/Retransmission Source is responsible for 625 responding to these messages and for further RTCP interaction with 626 RTP_Rx in the case of a rapid acquisition process, it is assumed in 627 the remainder of the document that these two logical entities (FT and 628 Burst/Retransmission Source) are combined in a single physical entity 629 and they share state. In the remainder of the text, the term 630 Retransmission Server (RS) will be used whenever appropriate, to 631 refer to the combined functionality of the FT and Burst/ 632 Retransmission Source. 634 However, it must be noted that only FT is involved in the primary 635 multicast RTP session, whereas the Burst/Retransmission Source 636 transmits the unicast burst and retransmission packets both formatted 637 as RTP retransmission packets [RFC4588] in a single separate unicast 638 RTP retransmission session to each RTP_Rx. In the retransmission 639 session, as in any other RTP session, RS and RTP_Rx regularly send 640 the periodic sender and receiver reports, respectively. 642 The unicast burst is triggered by an RTCP feedback message that is 643 defined in this document based on the common packet format provided 644 in [RFC4585], whereas an RTP retransmission is triggered by an RTCP 645 NACK message defined in [RFC4585]. In the RTP/AVPF profile, there 646 are certain rules that apply to scheduling of both of these messages, 647 which are detailed in Section 3.5 of [RFC4585]. One of the rules 648 states that in a multi-party session such as the SSM sessions we are 649 considering in this specification, an RTP receiver cannot send an 650 RTCP feedback message for a minimum of one second period after 651 joining the session (i.e., Tmin=1.0 second). While this rule has the 652 goal of avoiding problems associated with flash crowds in typical 653 multi-party sessions, it defeats the purpose of rapid acquisition. 654 Furthermore, when RTP receivers delay their messages requesting a 655 burst by a deterministic or even a random amount, it still does not 656 make a difference since such messages are not related and their 657 timings are independent from each other. Thus, in this specification 658 we initialize Tmin to zero and allow the RTP receivers to send a 659 burst request message right at the beginning. It should, however, be 660 emphasized that for the subsequent messages during rapid acquisition, 661 the timing rules of [RFC4585] still apply. 663 Figure 3 depicts an example of messaging flow for rapid acquisition. 664 The RTCP feedback messages are explained below. The optional 665 messages are indicated in parentheses and they may or may not be 666 present during rapid acquisition. Note that in a scenario where 667 rapid acquisition is performed by a feedback target co-located with 668 the media sender, the same method (with the identical message flows) 669 still applies. 671 ------------------------- 672 | Retransmission Server | 673 ----------- | ------ ------------ | -------- ------------ 674 | Multicast | | | FT | | Burst/Ret. | | | | | RTP | 675 | Source | | | | | Source | | | Router | | Receiver | 676 | | | ------ ------------ | | | | (RTP_Rx) | 677 ----------- | | | | -------- ------------ 678 | ------------------------- | | 679 | | | | | 680 |-- RTP Multicast ---------->--------------->| | 681 |-. RTCP Multicast -.-.-.-.->-.-.-.-.-.-.-.->| | 682 | | | | | 683 | | |********************************| 684 | | |* PORT MAPPING SETUP *| 685 | | |********************************| 686 | | | | | 687 | |<~~~~~~~~~~~~~~~~~~~~~~~~~ RTCP RAMS-R ~~~| 688 | | | | | 689 | | |********************************| 690 | | |* UNICAST SESSION ESTABLISHED *| 691 | | |********************************| 692 | | | | | 693 | | |~~~ RTCP RAMS-I ~~~~~~~~~~~~~~~>| 694 | | | | | 695 | | |... Unicast RTP Burst .........>| 696 | | | | | 697 | |<~~~~~~~~~~~~~~~~~~~~~~~~ (RTCP RAMS-R) ~~| 698 | | | | | 699 | | |~~ (RTCP RAMS-I) ~~~~~~~~~~~~~~>| 700 | | | | | 701 | | | | | 702 | | | |<= SFGMP Join ==| 703 | | | | | 704 |-- RTP Multicast ------------------------------------------->| 705 |-. RTCP Multicast -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>| 706 | | | | | 707 | | | | | 708 | | |<~~~~~~~~~~~~~~~ RTCP RAMS-T ~~~| 709 | | | | | 710 | | | | | 711 | |<~~~~~~~~~~~~~~~~~~~~~~~~~~ (RTCP NACK) ~~| 712 | | | | | 713 | | | | | 714 | | |...(Unicast Retransmissions)...>| 715 | | | | | 716 : : : : : 717 : : : : : 718 | | |<.=.= Unicast RTCP Reports .=.=>| 719 : : : : : 720 : : : : : 721 | | | | | 723 -------> Multicast RTP Flow 724 .-.-.-.> Multicast RTCP Flow 725 .=.=.=.> Unicast RTCP Reports 726 ~~~~~~~> Unicast RTCP Feedback Messages 727 =======> SFGMP Messages 728 .......> Unicast RTP Flow 730 Figure 3: Message flows for unicast-based rapid acquisition 732 This document defines the expected behaviors of RS and RTP_Rx. It is 733 instructive to have independently operating implementations on RS and 734 RTP_Rx that request the burst, describe the burst, start the burst, 735 join the multicast session and stop the burst. These implementations 736 send messages to each other, but there must be provisions for the 737 cases where the control messages get lost, or re-ordered, or are not 738 being delivered to their destinations. 740 The following steps describe rapid acquisition in detail: 742 1. Port Mapping Setup: For the primary multicast RTP session, the 743 RTP and RTCP destination ports are declaratively specified 744 (Refer to Section 8 for examples in SDP). However, in the 745 unicast RTP retransmission session, RTP_Rx often needs to choose 746 its receive ports for RTP and RTCP. Since this unicast session 747 is established after RTP_Rx sends its rapid acquisition request 748 and it is received by RS in the primary multicast RTP session, 749 RTP_Rx MUST setup the port mappings between the unicast and 750 multicast sessions and send this mapping information to RS 751 before it sends its request so that RS knows how to communicate 752 with RTP_Rx. 754 The details of this setup procedure and other NAT-related issues 755 are left to Section 9 to keep the present discussion focused on 756 the RAMS message flows. 758 2. Request: RTP_Rx sends a rapid acquisition request for the 759 primary multicast RTP session to the feedback target address of 760 that session. The request contains the SSRC identifier of 761 RTP_Rx and may contain the media sender SSRC identifier(s) 762 associated with the desired primary multicast stream(s). This 763 RTCP feedback message is defined as the RAMS-Request (RAMS-R) 764 message and may contain parameters that constrain the burst, 765 such as the buffer and bandwidth limits. 767 Before joining the SSM session, RTP_Rx learns the addresses for 768 the multicast source, group and RS by out-of-band means. If 769 RTP_Rx desires to rapidly acquire only a subset of the primary 770 multicast streams available in the primary multicast RTP 771 session, the SSRC identifiers for the desired RTP streams MUST 772 also be obtained out-of-band, since no RTP packets have been 773 received yet for those streams. Based on this information, 774 RTP_Rx populates the desired SSRC(s) in its request message. 776 When RS successfully receives the RAMS-R message, it responds to 777 it by accepting or rejecting the request. Right before RS sends 778 any RTP or RTCP packet(s) described below, it establishes the 779 unicast RTP retransmission session. 781 3. Response: RS sends RAMS-Information (RAMS-I) message(s) to 782 RTP_Rx to convey the status for the burst(s) requested by 783 RTP_Rx. The RAMS-I message is sent by the Burst/Retransmission 784 Source logical entity that is part of RS. 786 In cases where the primary multicast RTP session associated with 787 FT_Ap on which the RAMS-R message was received contains only a 788 single primary multicast stream, RS SHALL always use the SSRC of 789 the RTP stream associated with FT_Ap in the RAMS-I message(s) 790 regardless of the media sender SSRC specified in the RAMS-R 791 message. In such cases the 'ssrc' attribute MAY be omitted from 792 the media description. If the requested SSRC and the actual 793 media sender SSRC do not match, RS SHOULD explicitly populate 794 the correct media sender SSRC in the initial RAMS-I message. 796 FT_Ap could also be associated with an RTP session that carries 797 two or more primary multicast streams. If RTP_Rx will issue a 798 collective request to receive the whole primary multicast RTP 799 session, it does not need the 'ssrc' attributes to be described 800 in the media description. Note that if FT_Ap is associated with 801 two or more RTP sessions, RTP_Rx's request will be ambiguous. 802 Thus, each FT_Ap MUST be associated with a single RTP session. 804 If RTP_Rx is willing to rapidly acquire only a subset of the 805 primary multicast streams, the RAMS-R message MUST explicitly 806 list the media sender SSRCs. Upon receiving such a message, RS 807 MAY accept the request for only the media sender SSRC(s) that 808 matched one of the RTP streams it serves. It MUST reject all 809 other requests with the appropriate response code. 811 * Reject Responses: RS MUST take into account any limitations 812 that MAY have been specified by RTP_Rx in the RAMS-R message 813 when making a decision regarding the request. If RTP_Rx has 814 requested to acquire the whole primary multicast RTP session 815 but RS cannot provide a rapid acquisition service for any of 816 the primary multicast streams, RS MUST reject the request via 817 a single RAMS-I message with a collective reject response 818 code and whose media sender SSRC field is set to one of SSRCs 819 served by this FT_Ap. Upon receiving this RAMS-I message, 820 RTP_Rx abandons the rapid acquisition attempt and may 821 immediately join the multicast session by sending an SFGMP 822 Join message towards its upstream multicast router. 824 In all other cases, RS MUST send a separate RAMS-I message 825 with the appropriate response code for each primary multicast 826 stream that has been requested by RTP_Rx but cannot be served 827 by RS. 829 * Accept Responses: RS MUST send a separate RAMS-I message 830 with the appropriate response code for each primary multicast 831 stream that has been requested by RTP_Rx and will be served 832 by RS. Such RAMS-I messages comprise fields that can be used 833 to describe the individual unicast burst streams. 835 A particularly important field carries the RTP sequence 836 number of the first packet transmitted in the respective RTP 837 stream to allow RTP_Rx to detect any missing initial 838 packet(s). Note that the first RTP packet transmitted in an 839 RTP stream is not necessarily a burst packet. It could be a 840 payload-specific RTP packet, which is payload-type- 841 multiplexed with the burst packets (See 842 [I-D.begen-avt-rtp-mpeg2ts-preamble] for an example). When 843 RS accepts the request, this field MUST be populated in the 844 RAMS-I message and the initial RAMS-I message SHOULD precede 845 the unicast burst or be sent at the start of the burst so 846 that RTP_Rx may quickly detect any missing initial packet(s). 848 Where possible, it is RECOMMENDED to include all RAMS-I messages 849 in the same compound RTCP packet. However, it is possible that 850 the RAMS-I message for a primary multicast stream may get 851 delayed or lost, and RTP_Rx may start receiving RTP packets 852 before receiving a RAMS-I message. Thus, RTP_Rx SHOULD NOT make 853 protocol dependencies on quickly receiving the initial RAMS-I 854 message. For redundancy purposes, it is RECOMMENDED that RS 855 repeats the RAMS-I messages multiple times as long as it follows 856 the RTCP timer rules defined in [RFC4585]. 858 4. Unicast Burst: For the primary multicast stream(s) for which 859 the request is accepted, RS starts sending the unicast burst(s) 860 that comprises one or more RTP retransmission packets. The 861 burst packet(s) are sent by the Burst/Retransmission Source 862 logical entity. In addition, there MAY be optional payload- 863 specific information that RS chooses to send to RTP_Rx. Such an 864 example is discussed in [I-D.begen-avt-rtp-mpeg2ts-preamble] for 865 transmitting the payload-specific information for MPEG2 866 Transport Streams. 868 5. Updated Request: RTP_Rx MAY send an updated RAMS-R message (to 869 the FT entity of RS) with a different value for one or more 870 fields of an earlier RAMS-R message. Upon receiving an updated 871 request, RS may use the updated values for sending/shaping the 872 burst, or refine the values and use the refined values for 873 sending/shaping the burst. Subsequently, RS MAY send an updated 874 RAMS-I message to indicate the changes it made. 876 However, the updated RAMS-I message may get lost. It is also 877 possible that the updated RAMS-R message could have been lost. 878 Thus, RTP_Rx SHOULD NOT make protocol dependencies on quickly 879 (or ever) receiving an updated RAMS-I message, or assume that RS 880 will honor the requested changes. 882 RTP_Rx may be in an environment where the available resources 883 are time-varying, which may or may not deserve sending a new 884 updated request. Determining the circumstances where RTP_Rx 885 should or should not send an updated request and the methods 886 that RTP_Rx can use to detect and evaluate the time-varying 887 available resources are not specified in this document. 889 6. Updated Response: RS may send more than one RAMS-I messages, 890 e.g., to update the value of one or more fields in an earlier 891 RAMS-I message. The updated RAMS-I messages may or may not be a 892 direct response to a RAMS-R message. RS may also send updated 893 RAMS-I messages to signal RTP_Rx in real time to join the 894 multicast session. RTP_Rx depends on RS to learn the join time, 895 which can be conveyed by the first RAMS-I message, or can be 896 sent/revised in a later RAMS-I message. If RS is not capable of 897 determining the join time in the initial RAMS-I message, it MUST 898 send another RAMS-I message (with the join time information) 899 later. 901 7. Multicast Join Signaling: The RAMS-I message allows RS to 902 signal explicitly when RTP_Rx SHOULD send the SFGMP Join 903 message. If the request is accepted, this information MUST be 904 conveyed in at least one RAMS-I message and its value MAY be 905 updated by subsequent RAMS-I messages. If RTP_Rx has received 906 multiple RAMS-I messages, it SHOULD use the information from the 907 most recent RAMS-I message. 909 There may be missing packets if RTP_Rx joins the multicast 910 session too early or too late. For example, if RTP_Rx starts 911 receiving the primary multicast stream while it is still 912 receiving the unicast burst at a high excess bitrate, this may 913 result in an increased risk of packet loss. Or, if RTP_Rx joins 914 the multicast session some time after the unicast burst is 915 finished, there may be a gap between the burst and multicast 916 data (a number of RTP packets may be missing). In both cases, 917 RTP_Rx may issue retransmissions requests (via RTCP NACK 918 messages) [RFC4585] to the FT entity of RS to fill the gap. RS 919 may or may not respond to such requests. When it responds and 920 the response causes significant changes in one or more values 921 reported earlier to RTP_Rx, an updated RAMS-I should be sent to 922 RTP_Rx. 924 8. Multicast Receive: After the join, RTP_Rx starts receiving the 925 primary multicast stream(s). 927 9. Terminate: RS may know when it needs to ultimately stop the 928 unicast burst based on its parameters. However, RTP_Rx may need 929 to ask RS to terminate the burst prematurely or at a specific 930 sequence number. For this purpose, it uses the RAMS-Termination 931 (RAMS-T) message. A separate RAMS-T message is sent for each 932 primary multicast stream served by RS unless an RTCP BYE message 933 has been sent as described in Step 10. For the burst requests 934 that were rejected by RS, there is no need to send a RAMS-T 935 message. 937 If RTP_Rx wants to terminate a burst prematurely, it SHALL send 938 a plain RAMS-T message for the particular primary multicast 939 stream, and upon receiving this message RS MUST terminate the 940 unicast burst. If RTP_Rx requested to acquire the entire 941 primary multicast RTP session but wants to terminate this 942 request before it learns the individual media sender SSRC(s) via 943 RAMS-I message(s), it cannot use RAMS-T message(s) and thus MUST 944 send an RTCP BYE message to terminate the request. 946 Otherwise, the default behavior for RTP_Rx is to send a RAMS-T 947 message right after it joined the multicast session and started 948 receiving multicast packets. In that case, RTP_Rx SHALL send a 949 RAMS-T message with the sequence number of the first RTP packet 950 received in the primary multicast stream, and RS SHOULD 951 terminate the respective burst after it sends the unicast burst 952 packet whose Original Sequence Number (OSN) field in the RTP 953 retransmission payload header matches this number minus one. 955 RTP_Rx MUST send at least one RAMS-T message for each primary 956 multicast stream served by RS (if an RTCP BYE message has not 957 been issued yet as described in Step 10). The RAMS-T message(s) 958 MUST be addressed to the Burst/Retransmission Source logical 959 entity. Against the possibility of a message loss, it is 960 RECOMMENDED that RTP_Rx repeats the RAMS-T messages multiple 961 times as long as it follows the RTCP timer rules defined in 962 [RFC4585]. 964 10. Terminate with RTCP BYE: When RTP_Rx is receiving one or more 965 burst streams, if RTP_Rx becomes no longer interested in 966 acquiring any of the primary multicast streams, RTP_Rx SHALL 967 issue an RTCP BYE message for the RTP retransmission session and 968 another RTCP BYE message for the primary multicast RTP session. 969 These RTCP BYE messages are sent to the Burst/Retransmission 970 Source and FT logical entities, respectively. 972 Upon receiving an RTCP BYE message, the Burst/Retransmission 973 Source logical entity MUST terminate the rapid acquisition 974 operation, and cease transmitting any further burst packets and 975 retransmission packets. If support for [RFC5506] has been 976 signaled, the RTCP BYE message MAY be sent in a reduced-size 977 RTCP packet. Otherwise, Section 6.1 of [RFC3550] mandates the 978 RTCP BYE message always to be sent with a sender or receiver 979 report in a compound RTCP packet (If no data has been received, 980 an empty receiver report MUST be still included). With the 981 information contained in the receiver report, RS can figure out 982 how many duplicate RTP packets have been delivered to RTP_Rx 983 (Note that this will be an upper-bound estimate as one or more 984 packets might have been lost during the burst transmission). 985 The impact of duplicate packets and measures that can be taken 986 to minimize the impact of receiving duplicate packets will be 987 addressed in Section 6.4. 989 Note that an RTCP BYE message issued for the RTP retransmission 990 session terminates the whole session and ceases transmitting any 991 further packets in that RTP session. Thus, in this case there 992 is no need for sending explicit RAMS-T messages, which would 993 only terminate their respective bursts. 995 For the purpose of gathering detailed information about RTP_Rx's 996 rapid acquisition experience, [I-D.begen-avt-rapid-sync-rtcp-xr] 997 defines an RTCP Extended Report (XR) Block. This report is designed 998 to be payload-independent, thus, it can be used by any multicast 999 application that supports rapid acquisition. Support for this XR 1000 report is, however, OPTIONAL. 1002 6.3. Synchronization of Primary Multicast Streams 1004 When RTP_Rx acquires multiple primary multicast streams, it may need 1005 to synchronize them for the playout. This synchronization is 1006 traditionally achieved by the help of the RTCP sender reports 1007 [RFC3550]. If the playout will start before RTP_Rx has joined the 1008 multicast session, RTP_Rx must receive the information reflecting the 1009 synchronization among the primary multicast streams early enough so 1010 that it can play out the media in a synchronized fashion. However, 1011 this would require RS to cache the sender reports sent in the primary 1012 multicast RTP session(s), and piggyback the latest synchronization 1013 information on its own sender report and send an early sender report 1014 in the unicast RTP retransmission session. This issue and its 1015 implications are discussed in detail in 1016 [I-D.ietf-avt-rapid-rtp-sync]. 1018 An alternative approach is to use the RTP header extension mechanism 1019 [RFC5285] and convey the synchronization information in a header 1020 extension as defined in [I-D.ietf-avt-rapid-rtp-sync]. 1022 [RFC4588] says that retransmission packets SHOULD carry the same 1023 header extension carried in the header of the original RTP packets. 1024 Thus, as long as the multicast source emits a header extension with 1025 the synchronization information frequently enough, there is no 1026 additional task that needs to be carried out by RS. The 1027 synchronization information will be sent to RTP_Rx along with the 1028 burst packets. The frequent header extensions sent in the primary 1029 multicast RTP sessions also allow rapid synchronization of the RTP 1030 streams for the RTP receivers that do not support RAMS or that 1031 directly join the multicast session without running RAMS. Thus, in 1032 RAMS applications, it is RECOMMENDED that the multicast sources 1033 frequently send synchronization information by using header 1034 extensions following the rules presented in 1035 [I-D.ietf-avt-rapid-rtp-sync]. It should be noted that the regular 1036 sender reports are still sent in the unicast session by following the 1037 rules of [RFC3550]. 1039 6.4. Burst Shaping and Congestion Control in RAMS 1041 This section provides informative guidelines about how RS can shape 1042 the transmission of the unicast burst and how congestion can be dealt 1043 within the RAMS process. 1045 A higher bitrate for the unicast burst naturally conveys the 1046 Reference Information and media content to RTP_Rx faster. This way, 1047 RTP_Rx can start consuming the data sooner, which results in a faster 1048 acquisition. A higher bitrate also represents a better utilization 1049 of RS resources. As the burst may continue until it catches up with 1050 the primary multicast stream, the higher the bursting bitrate, the 1051 less data RS needs to transmit. However, a higher bitrate for the 1052 burst also increases the chances for congestion-caused packet loss. 1053 Thus, as discussed in Section 5, there must be an upper bound on the 1054 bandwidth used by the burst. 1056 When RS transmits the burst, it should take into account all 1057 available information to prevent any packet loss that may take place 1058 during the bursting as a result of buffer overflow on the path 1059 between RS and RTP_Rx and at RTP_Rx itself. The bursting bitrate may 1060 be determined by taking into account the following information, when 1061 available: 1063 a. Information obtained via the RAMS-R message, such as Max RAMS 1064 Buffer Fill Requirement and/or Max Receive Bitrate (See 1065 Section 7.2). 1067 b. Information obtained via RTCP receiver reports provided by RTP_Rx 1068 in the retransmission session, allowing in-session bitrate 1069 adaptations for the burst. When these receiver reports indicate 1070 packet loss, this may indicate a certain congestion state in the 1071 path from RS to RTP_Rx. 1073 c. Information obtained via RTCP NACKs provided by RTP_Rx in the 1074 primary multicast RTP session, allowing in-session bitrate 1075 adaptations for the burst. Such RTCP NACKs are transmitted by 1076 RTP_Rx in response to packet loss detection in the burst. NACKs 1077 may indicate a certain congestion state on the path from RS to 1078 RTP_Rx. 1080 d. There may be other feedback received from RTP_Rx, e.g., in the 1081 form of ECN-CE markings [I-D.westerlund-avt-ecn-for-rtp] that may 1082 influence in-session bitrate adaptation. 1084 e. Information obtained via updated RAMS-R messages, allowing in- 1085 session bitrate adaptations, if supported by RS. 1087 f. Transport protocol-specific information. For example, when DCCP 1088 is used to transport the RTP burst, the ACKs from the DCCP client 1089 can be leveraged by the RS / DCCP server for burst shaping and 1090 congestion control. 1092 g. Pre-configured settings for each RTP_Rx or a set of RTP_Rxs that 1093 indicate the upper-bound bursting bitrates for which no packet 1094 loss will occur as a result of congestion along the path of RS to 1095 RTP_Rx. For example, in managed IPTV networks, where the 1096 bottleneck bandwidth along the end-to-end path is known and where 1097 the network between RS and this link is provisioned and 1098 dimensioned to carry the burst streams, the bursting bitrate does 1099 not exceed the provisioned value. These settings may also be 1100 dynamically adapted using application-aware knowledge. 1102 RS chooses the initial burst bitrate as follows: 1104 o When using RAMS in environments as described in (g), RS MUST 1105 transmit the burst packets at an initial bitrate higher than the 1106 nominal bitrate, but within the engineered or reserved bandwidth 1107 limit. 1109 o When RS cannot determine a reliable bitrate value for the unicast 1110 burst (through a or g), RS should choose an appropriate initial 1111 bitrate not above the nominal bitrate and increase it gradually 1112 unless a congestion is detected. 1114 In both cases, during the burst transmission RS MUST continuously 1115 monitor for packet losses as a result of congestion by means of one 1116 or more of the mechanisms described in (b,c,d,e,f). When RS relies 1117 on RTCP receiver reports, sufficient bandwidth must be provided to 1118 RTP Rx for RTCP transmission. To achieve a reasonable fast 1119 adaptation against congestion, it is recommended that RTP_Rx sends a 1120 receiver report at least once every two RTTs between RS and RTP_Rx. 1121 Although the specific heuristics and algorithms that deduce a 1122 congestion state and how subsequently RS should act are outside the 1123 scope of this specification, the following two practices are 1124 recommended: 1126 o Upon detection of a significant packet loss, which RS attributes 1127 to congestion, RS should decrease the burst bitrate. The rate by 1128 which RS increases and decreases the bitrate for the burst may be 1129 determined by a TCP-friendly bitrate adaptation algorithm for RTP 1130 over UDP , or in the case of (f) by the congestion control 1131 algorithms defined in DCCP [I-D.ietf-dccp-rtp]. 1133 o If the congestion is persistent and RS has to reduce the burst 1134 bitrate to a point where the RTP Rx buffer may underrun or the 1135 burst will consume too much RS resources, RS should terminate the 1136 burst and transmit a RAMS-I message to RTP Rx with the appropriate 1137 response code. It is then up to RTP Rx to decide when to join the 1138 multicast session. 1140 In case there is no congestion experienced during the burst, a 1141 specific situation occurs near the end of the unicast burst, when RS 1142 has almost no more additional data to sustain the relatively higher 1143 burst bitrate, thus, the upper-bound burst bitrate automatically gets 1144 limited by the nominal bitrate of the primary multicast stream. 1145 During this time frame, RTP_Rx eventually needs to join the multicast 1146 session. This means that both the burst packets and the multicast 1147 packets may be simultaneously received by RTP_Rx for a period of 1148 time, enhancing the risk of congestion again. 1150 Since RS signals RTP_Rx when it should send the SFGMP Join message, 1151 RS may have a rough estimate of when RTP_Rx will start receiving 1152 multicast packets in the SSM session. RS may keep on sending burst 1153 packets but should reduce the bitrate accordingly at the appropriate 1154 instant by taking the bitrate of the whole SSM session into account. 1155 If RS ceases transmitting the burst packets before the burst catches 1156 up, any gap resulting from this imperfect switch-over by RTP_Rx can 1157 be later repaired by requesting retransmissions for the missing 1158 packets from RS. The retransmissions may be shaped by RS to make 1159 sure that they do not cause collateral loss in the primary multicast 1160 RTP session and the RTP retransmission session. 1162 6.5. Failure Cases 1164 In the following, we examine the implications of losing the RAMS-R, 1165 RAMS-I or RAMS-T messages and other failure cases. 1167 When RTP_Rx sends a RAMS-R message to initiate a rapid acquisition 1168 but the message gets lost and RS does not receive it, RTP_Rx will get 1169 neither a RAMS-I message, nor a unicast burst. In this case, RTP_Rx 1170 MAY resend the request when it is eligible to do so based on the RTCP 1171 timer rules defined in [RFC4585]. Or, after a reasonable amount of 1172 time, RTP_Rx may time out (based on the previous observed response 1173 times) and immediately join the SSM session. 1175 In the case RTP_Rx starts receiving a unicast burst but it does not 1176 receive a corresponding RAMS-I message within a reasonable amount of 1177 time, RTP_Rx may either discard the burst data or decide not to 1178 interrupt the unicast burst, and be prepared to join the SSM session 1179 at an appropriate time it determines or as indicated in a subsequent 1180 RAMS-I message (if available). To minimize the chances of losing the 1181 RAMS-I messages, it is RECOMMENDED that RS repeats the RAMS-I 1182 messages multiple times based on the RTCP timer rules defined in 1183 [RFC4585]. 1185 In the failure cases where the RAMS-R message is lost and RTP_Rx 1186 gives up, or the RAMS-I message is lost, RTP_Rx MUST still terminate 1187 the burst(s) it requested by following the rules described in 1188 Section 6.2. 1190 In the case a RAMS-T message sent by RTP_Rx does not reach its 1191 destination, RS may continue sending burst packets even though RTP_Rx 1192 no longer needs them. In such cases, it is RECOMMENDED that RTP_Rx 1193 repeats the RAMS-T message multiple times based on the RTCP timer 1194 rules defined in [RFC4585]. In the worst case, RS MUST be 1195 provisioned to deterministically terminate the burst when it can no 1196 longer send the burst packets faster than it receives the primary 1197 multicast stream packets. 1199 Section 6.3.5 of [RFC3550] explains the rules pertaining to timing 1200 out an SSRC. When RS accepts to serve the requested burst(s) and 1201 establishes the retransmission session, it should check the liveness 1202 of RTP_Rx via the RTCP messages and reports RTP_Rx sends. The 1203 default rules explained in [RFC3550] apply in RAMS as well. 1205 7. Encoding of the Signaling Protocol in RTCP 1207 This section defines the formats of the RTCP transport-layer feedback 1208 messages that are exchanged between the Retransmission Server (RS) 1209 and RTP Receiver (RTP_Rx) during rapid acquisition. These messages 1210 are referred to as the RAMS Messages. They are payload-independent 1211 and MUST be used by all RTP-based multicast applications that support 1212 rapid acquisition regardless of the payload they carry. 1214 Payload-specific feedback messages are not defined in this document. 1215 However, further optional payload-independent and payload-specific 1216 information can be included in the exchange. 1218 The common packet format for the RTCP feedback messages is defined in 1219 Section 6.1 of [RFC4585]. Each feedback message has a fixed-length 1220 field for version, padding, feedback message type (FMT), payload type 1221 (PT), length, SSRC of packet sender, SSRC of media sender as well as 1222 a variable-length field for feedback control information (FCI). 1224 In the RAMS messages, the PT field is set to RTPFB (205) and the FMT 1225 field is set to RAMS (6). Individual RAMS messages are identified by 1226 a sub-field called Sub Feedback Message Type (SFMT). Any Reserved 1227 field SHALL be set to zero and ignored. 1229 Depending on the specific scenario and timeliness/importance of a 1230 RAMS message, it may be desirable to send it in a reduced-size RTCP 1231 packet [RFC5506]. However, unless support for [RFC5506] has been 1232 signaled, compound RTCP packets MUST be used by following [RFC3550] 1233 rules. 1235 Following the rules specified in [RFC3550], all integer fields in the 1236 messages defined below are carried in network-byte order, that is, 1237 most significant byte (octet) first, also known as big-endian. 1238 Unless otherwise noted, numeric constants are in decimal (base 10). 1240 7.1. Extensions 1242 To improve the functionality of the RAMS method in certain 1243 applications, it may be desirable to define new fields in the RAMS 1244 Request, Information and Termination messages. Such fields MUST be 1245 encoded as TLV elements as described below and sketched in Figure 4: 1247 o Type: A single-octet identifier that defines the type of the 1248 parameter represented in this TLV element. 1250 o Length: A two-octet field that indicates the length (in octets) 1251 of the TLV element excluding the Type and Length fields, and the 1252 8-bit Reserved field between them. Note that this length does not 1253 include any padding that is required for alignment. 1255 o Value: Variable-size set of octets that contains the specific 1256 value for the parameter. 1258 In the extensions, the Reserved field SHALL be set to zero and 1259 ignored. If a TLV element does not fall on a 32-bit boundary, the 1260 last word MUST be padded to the boundary using further bits set to 1261 zero. 1263 In a RAMS message, any vendor-neutral or private extension MUST be 1264 placed after the mandatory fields (if any). The extensions MAY be 1265 placed in any order. The support for extensions is OPTIONAL. 1267 0 1 2 3 1268 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 1269 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1270 | Type | Reserved | Length | 1271 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1272 : Value : 1273 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1275 Figure 4: Structure of a TLV element 1277 7.1.1. Vendor-Neutral Extensions 1279 If the goal in defining new TLV elements is to extend the 1280 functionality in a vendor-neutral manner, they MUST be registered 1281 with IANA through the guidelines provided in Section 11.5. 1283 The current document defines several vendor-neutral extensions in the 1284 subsequent sections. 1286 7.1.2. Private Extensions 1288 It is desirable to allow vendors to use private extensions in a TLV 1289 format. For interoperability, such extensions MUST NOT collide with 1290 each other. 1292 A certain range of TLV Types (between - and including - 128 and 254 ) 1293 is reserved for private extensions (Refer to Section 11.5). IANA 1294 management for these extensions is unnecessary and they are the 1295 responsibility of individual vendors. 1297 The structure that MUST be used for the private extensions is 1298 depicted in Figure 5. Here, the enterprise numbers are used from 1299 http://www.iana.org/assignments/enterprise-numbers. This will ensure 1300 the uniqueness of the private extensions and avoid any collision. 1302 0 1 2 3 1303 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 1304 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1305 | Type | Reserved | Length | 1306 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1307 | Enterprise Number | 1308 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1309 : Value : 1310 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1312 Figure 5: Structure of a private extension 1314 7.2. RAMS Request 1316 The RAMS Request message is identified by SFMT=1. This message is 1317 used by RTP_Rx to request rapid acquisition for a primary multicast 1318 RTP session, or one or more primary multicast streams belonging to 1319 the same primary multicast RTP session. 1321 Unless signaled otherwise, a RAMS-R message is used to request a 1322 single primary multicast stream whose SSRC is indicated in the media 1323 sender SSRC field of the message header. In cases where RTP_Rx does 1324 not know the media sender SSRC, it MUST set that field to its own 1325 SSRC. 1327 If RTP_Rx wants to request two or more primary multicast streams or 1328 all of the streams in the primary multicast RTP session, RTP_Rx MUST 1329 provide explicit signaling as described below and set the media 1330 sender SSRC field to its own SSRC to minimize the chances of 1331 accidentally requesting a wrong primary multicast stream. 1333 The FCI field MUST contain only one RAMS Request. The FCI field has 1334 the structure depicted in Figure 6. 1336 0 1 2 3 1337 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 1338 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1339 | SFMT=1 | Reserved | 1340 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1341 : Optional TLV-encoded Fields (and Padding, if needed) : 1342 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1344 Figure 6: FCI field syntax for the RAMS Request message 1346 o Requested Media Sender SSRC(s): Optional TLV element that lists 1347 the media sender SSRC(s) requested by RTP_Rx. If this TLV element 1348 does not exist in the RAMS-R message, it means that RTP_Rx is only 1349 interested in a single primary multicast stream whose media sender 1350 SSRC is already specified in the header of the RAMS-R message. 1351 However, if this TLV element exists, RS MUST ignore the media 1352 sender SSRC specified in the header of the RAMS-R message. If 1353 this TLV element exists but the Length field is set to zero, 1354 meaning that no media sender SSRC is listed, it means that RTP_Rx 1355 is requesting to rapidly acquire the entire primary multicast RTP 1356 session. Otherwise, RTP_Rx lists the individual media sender 1357 SSRCs in this TLV element and sets the Length field of the TLV 1358 element to 4*n, where n is the number of SSRC entries. 1360 Type: 1 1362 o Min RAMS Buffer Fill Requirement (32 bits): Optional TLV element 1363 that denotes the minimum milliseconds of data that RTP_Rx desires 1364 to have in its buffer before allowing the data to be consumed by 1365 the application. 1367 RTP_Rx may have knowledge of its buffering requirements. These 1368 requirements may be application and/or device specific. For 1369 instance, RTP_Rx may need to have a certain amount of data in its 1370 application buffer to handle transmission jitter and/or to be able 1371 to support error-control methods. If RS is told the minimum 1372 buffering requirement of the receiver, it may tailor the burst(s) 1373 more precisely, e.g., by choosing an appropriate starting point. 1374 The methods used by RTP_Rx to determine this value are application 1375 specific, and thus, out of the scope of this document. 1377 If specified, the amount of backfill that will be provided by the 1378 unicast bursts and any payload-specific information MUST NOT be 1379 smaller than the specified value since it will not be able to 1380 build up the desired level of buffer at RTP_Rx and may cause 1381 buffer underruns. 1383 Type: 2 1385 o Max RAMS Buffer Fill Requirement (32 bits): Optional TLV element 1386 that denotes the maximum milliseconds of data that RTP_Rx can 1387 buffer without losing the data due to buffer overflow. 1389 RTP_Rx may have knowledge of its buffering requirements. These 1390 requirements may be application or device specific. For instance, 1391 one particular RTP_Rx may have more physical memory than another 1392 RTP_Rx, and thus, can buffer more data. If RS knows the buffering 1393 ability of the receiver, it may tailor the burst(s) more 1394 precisely. The methods used by the receiver to determine this 1395 value are application specific, and thus, out of scope. 1397 If specified, the amount of backfill that will be provided by the 1398 unicast bursts and any payload-specific information MUST NOT be 1399 larger than this value since it may cause buffer overflows at 1400 RTP_Rx. 1402 Type: 3 1404 o Max Receive Bitrate (64 bits): Optional TLV element that denotes 1405 the maximum bitrate (in bits per second) that the RTP receiver can 1406 process the aggregation of the unicast burst(s) and any payload- 1407 specific information that will be provided by RS. The limits may 1408 include local receiver limits as well as network limits that are 1409 known to the receiver. 1411 If specified, the total bitrate of the unicast burst(s) plus any 1412 payload-specific information MUST NOT be larger than this value 1413 since it may cause congestion and packet loss. 1415 Type: 4 1417 o Request for Preamble Only (0 bits): Optional TLV element that 1418 indicates that RTP_Rx is only requesting the preamble information 1419 for the desired primary multicast stream(s). If this TLV element 1420 exists in the RAMS-R message, RS SHOULD NOT send any burst packets 1421 other than the preamble packets. Note that this TLV element does 1422 not carry a Value field. Thus, the Length field MUST be set to 1423 zero. 1425 Type: 5 1427 The semantics of the RAMS-R feedback message is independent of the 1428 payload type. 1430 7.3. RAMS Information 1432 The RAMS Information message is identified by SFMT=2. This message 1433 is used to describe the unicast burst that will be sent for rapid 1434 acquisition. It also includes other useful information for RTP_Rx as 1435 described below. 1437 A separate RAMS-I message with the appropriate media sender SSRC and 1438 response code is sent by RS for each primary multicast stream that 1439 has been requested by RTP_Rx. 1441 The FCI field MUST contain only one RAMS Information. The FCI field 1442 has the structure depicted in Figure 7. 1444 0 1 2 3 1445 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 1446 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1447 | SFMT=2 | MSN | Response | 1448 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1449 : Optional TLV-encoded Fields (and Padding, if needed) : 1450 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1452 Figure 7: FCI field syntax for the RAMS Information message 1454 o Message Sequence Number (8 bits) : Mandatory field that denotes 1455 the sequence number of the RAMS-I message for the particular media 1456 sender SSRC specified in the message header. The MSN value SHALL 1457 be set to zero only when a new RAMS request is received. During 1458 rapid acquisition, the same RAMS-I message MAY be repeated for 1459 redundancy purposes without incrementing the MSN value. If an 1460 updated RAMS-I message will be sent (either with a new information 1461 or an updated information), the MSN value SHALL be incremented by 1462 one. In the MSN field, the regular wrapping rules apply. 1464 o Response (16 bits): Mandatory field that denotes the RS response 1465 code for this RAMS-I message. This document defines several 1466 initial response codes and registers them with IANA. If a new 1467 vendor-neutral response code will be defined, it MUST be 1468 registered with IANA through the guidelines specified in 1469 Section 11.6. If the new response code is intended to be used 1470 privately by a vendor, there is no need for IANA management. 1471 Instead, the vendor MUST use the private extension mechanism 1472 (Section 7.1.2) to convey its message and MUST indicate this by 1473 putting zero in the Response field. 1475 o Media Sender SSRC (32 bits): Optional TLV element that specifies 1476 the media sender SSRC of the unicast burst stream. While this 1477 information is already available in the message header, it may be 1478 useful to repeat it in an explicit field. For example, if FT_Ap 1479 that received the RAMS-R message is associated with a single 1480 primary multicast stream but the requested media sender SSRC does 1481 not match the SSRC of the RTP stream associated with this FT_Ap, 1482 RS SHOULD include this TLV element in the initial RAMS-I message 1483 to let RTP_Rx know that the media sender SSRC has changed. If the 1484 two SSRCs match, there is no need to include this TLV element. 1486 Type: 31 1488 o RTP Seqnum of the First Packet (16 bits): TLV element that 1489 specifies the RTP sequence number of the first packet that will be 1490 sent in the respective RTP stream. This allows RTP_Rx to know 1491 whether one or more packets sent by RS have been dropped at the 1492 beginning of the stream. If RS accepts the RAMS request, this 1493 element MUST exist. If RS rejects the RAMS request, this element 1494 SHALL NOT exist. 1496 Type: 32 1498 o Earliest Multicast Join Time (32 bits): TLV element that 1499 specifies the delta time (in ms) between the arrival of the first 1500 RTP packet in the RTP stream (which could be a burst packet or a 1501 payload-specific packet) and the earliest time instant when RTP_Rx 1502 SHOULD send an SFGMP Join message to join the multicast session. 1503 A zero value in this field means that RTP_Rx may send the SFGMP 1504 Join message right away. 1506 If the RAMS request has been accepted, RS MUST send this field at 1507 least once, so that RTP_Rx knows when to join the multicast 1508 session. If the burst request has been rejected as indicated in 1509 the Response field, this field MAY be omitted or set to zero. In 1510 that case, it is up to RTP_Rx when or whether to join the 1511 multicast session. 1513 It should be noted that when RS serves two or more bursts and 1514 sends a separate RAMS-I message for each burst, the join times 1515 specified in these RAMS-I messages should correspond to more or 1516 less the same time instant, and RTP_Rx sends the SFGMP Join 1517 message based on the earliest join time. 1519 Type: 33 1521 o Burst Duration (32 bits): Optional TLV element that denotes the 1522 duration of the burst, i.e., the delta difference between the 1523 first and the last burst packet, that RS is planning to send (in 1524 ms) in the respective RTP stream. In the absence of additional 1525 stimulus, RS will send a burst of this duration. However, the 1526 burst duration may be modified by subsequent events, including 1527 changes in the primary multicast stream and reception of RAMS-T 1528 messages. 1530 Note that RS MUST terminate the flow in a deterministic timeframe, 1531 even if it does not get a RAMS-T or a BYE from RTP_Rx. It is 1532 OPTIONAL to send this field in a RAMS-I message when the burst 1533 request is accepted. If the burst request has been rejected as 1534 indicated in the Response field, this field MAY be omitted or set 1535 to zero. 1537 Type: 34 1539 o Max Transmit Bitrate (64 bits): Optional TLV element that denotes 1540 the maximum bitrate (in bits per second) that will be used by RS 1541 for the RTP stream associated with this RAMS-I message. 1543 Type: 35 1545 The semantics of the RAMS-I feedback message is independent of the 1546 payload type. 1548 The initial RAMS-I message SHOULD precede the unicast burst or be 1549 sent at the start of the burst. Subsequent RAMS-I message(s) MAY be 1550 sent during the unicast burst and convey changes in any of the 1551 fields. 1553 7.4. RAMS Termination 1555 The RAMS Termination message is identified by SFMT=3. 1557 The RAMS Termination is used to assist RS in determining when to stop 1558 the burst. A separate RAMS-T message is sent by RTP_Rx for each 1559 primary multicast stream that has been served by RS. Each of these 1560 RAMS-T messages has the appropriate media sender SSRC populated in 1561 its message header. 1563 If RTP_Rx wants RS to stop a burst prematurely, it sends a plain 1564 RAMS-T message as described below. Upon receiving this message, RS 1565 stops the respective burst immediately. If RTP_Rx wants RS to 1566 terminate all of the bursts, it should send all of the respective 1567 RAMS-T messages in a single compound RTCP packet. 1569 The default behavior for RTP_Rx is to send a RAMS-T message right 1570 after it joined the multicast session and started receiving multicast 1571 packets. In that case, RTP_Rx includes the sequence number of the 1572 first RTP packet received in the primary multicast stream in the 1573 RAMS-T message. With this information, RS can decide when to 1574 terminate the unicast burst. 1576 The FCI field MUST contain only one RAMS Termination. The FCI field 1577 has the structure depicted in Figure 8. 1579 0 1 2 3 1580 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 1581 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1582 | SFMT=3 | Reserved | 1583 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1584 : Optional TLV-encoded Fields (and Padding, if needed) : 1585 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1587 Figure 8: FCI field syntax for the RAMS Termination message 1589 o Extended RTP Seqnum of First Multicast Packet (32 bits): Optional 1590 TLV element that specifies the extended RTP sequence number of the 1591 first packet received from the SSM session for a particular 1592 primary multicast stream. The low 16 bits contain the sequence 1593 number of the first packet received from the SSM session, and the 1594 most significant 16 bits extend that sequence number with the 1595 corresponding count of sequence number cycles, which may be 1596 maintained according to the algorithm in Appendix A.1 of 1597 [RFC3550]. 1599 Type: 61 1601 The semantics of the RAMS-T feedback message is independent of the 1602 payload type. 1604 8. SDP Signaling 1606 8.1. Definitions 1608 The syntax of the 'rtcp-fb' attribute has been defined in [RFC4585]. 1609 Here we add the following syntax to the 'rtcp-fb' attribute (the 1610 feedback type and optional parameters are all case sensitive): 1612 (In the following ABNF [RFC5234], fmt, SP and CRLF are used as 1613 defined in [RFC4566].) 1615 rtcp-fb-syntax = "a=rtcp-fb:" rtcp-fb-pt SP rtcp-fb-val CRLF 1617 rtcp-fb-pt = "*" ; wildcard: applies to all formats 1618 / fmt ; as defined in SDP spec 1620 rtcp-fb-val = "nack" SP "ssli" 1622 The following parameter is defined in this document for use with 1623 'nack': 1625 o 'ssli' stands for Stream Synchronization Loss Indication and 1626 indicates the use of RAMS messages as defined in Section 7. 1628 This document also defines a new media-level SDP attribute ('rams- 1629 updates') that indicates whether RS supports updated request messages 1630 or not. This attribute is used in a declarative manner. If RS 1631 supports updated request messages and this attribute is included in 1632 the SDP description, RTP_Rx may send updated requests. RS may or may 1633 not be able to accept value changes in every field in an updated 1634 RAMS-R message. However, if the 'rams-updates' attribute is not 1635 included in the SDP description, RTP_Rx SHALL NOT send updated 1636 requests (RTP_Rx MAY still repeat its initial request without 1637 changes, though). 1639 8.2. Requirements 1641 The use of SDP to describe the RAMS entities normatively requires the 1642 support for: 1644 o The SDP grouping semantics [I-D.ietf-mmusic-rfc3388bis] 1646 o The RTP/AVPF profile [RFC4585] 1648 o The RTP retransmissions [RFC4588] 1650 o The RTCP extensions for SSM sessions with unicast feedback 1651 [I-D.ietf-avt-rtcpssm] 1653 The support for the source-specific media attributes [RFC5576] may be 1654 required in some deployments as described below. 1656 8.3. Examples 1658 This section provides a declarative SDP [RFC4566] example for 1659 enabling rapid acquisition of multicast RTP sessions. 1661 In the example shown Figure 9, we have a primary multicast (source) 1662 stream and a unicast retransmission stream. The source stream is 1663 multicast from a distribution source (with a source IP address of 1664 198.51.100.1) to the multicast destination address of 233.252.0.2 and 1665 port 41000. A Retransmission Server including feedback target 1666 functionality (with an address of 192.0.2.1 and port of 41001) is 1667 specified with the 'rtcp' attribute. The RTP receiver(s) can report 1668 missing packets on the source stream to the feedback target and 1669 request retransmissions. In the RAMS context, the parameter 'rtx- 1670 time' specifies the time in milliseconds that the Retransmission 1671 Server keeps an RTP packet in its cache available for retransmission 1672 (measured from the time the packet was received by the Retransmission 1673 Server). 1675 In this example, both the conventional retransmission and rapid 1676 acquisition support are enabled. This is achieved by the "a=rtcp- 1677 fb:98 nack ssli" line. Note that this SDP includes the "a=sendonly" 1678 line for the media description of the retransmission stream and is 1679 for the Retransmission Server (RS). Its counterpart for the RTP 1680 Receiver (RTP_Rx) includes the "a=recvonly" line as shown in 1681 Figure 10. 1683 When an RTP receiver asks for rapid acquisition before it joins a 1684 primary multicast RTP session, it sends a RAMS-R message to the 1685 feedback target of that primary multicast RTP session. If FT_Ap is 1686 associated with only one RTP stream, the RTP receiver does not need 1687 to learn the SSRC of that stream via an out-of-band method. If RS 1688 accepts the request, it will send an RAMS-I message with the correct 1689 SSRC identifier. If FT_Ap is associated with a multi-stream RTP 1690 session and the RTP receiver is willing to request rapid acquisition 1691 for the entire session, the RTP receiver again does not need to learn 1692 the SSRCs via an out-of-band method. However, if the RTP receiver is 1693 willing to request a particular subset of the primary multicast 1694 streams, it must learn their SSRC identifiers and list them in the 1695 RAMS-R message. Since this RTP receiver has not yet received any RTP 1696 packets for the primary multicast stream(s), the RTP receiver must in 1697 this case learn the SSRC value(s) from the 'ssrc' attribute of the 1698 media description. In addition to the SSRC value, the 'cname' source 1699 attribute must also be present in the SDP description [RFC5576]. 1701 Note that listing the SSRC values for the primary multicast streams 1702 in the SDP file does not create a problem in SSM sessions when an 1703 SSRC collision occurs. This is because in SSM sessions, an RTP 1704 receiver that observed an SSRC collision with a media sender MUST 1705 change its own SSRC [I-D.ietf-avt-rtcpssm] by following the rules 1706 defined in [RFC3550]. 1708 A feedback target that receives a RAMS-R feedback message becomes 1709 aware that the prediction chain at the RTP receiver side has been 1710 broken or does not exist anymore. If the necessary conditions are 1711 satisfied (as outlined in Section 7 of [RFC4585]) and available 1712 resources exist, RS may react to the RAMS-R message by sending any 1713 transport-layer and payload-specific feedback message(s) and starting 1714 the unicast burst. 1716 v=0 1717 o=ali 1122334455 1122334466 IN IP4 rams.example.com 1718 s=Rapid Acquisition Example 1719 t=0 0 1720 a=group:FID 1 2 1721 a=rtcp-unicast:rsi 1722 m=video 41000 RTP/AVPF 98 1723 i=Primary Multicast Stream 1724 c=IN IP4 233.252.0.2/255 1725 a=source-filter: incl IN IP4 233.252.0.2 198.51.100.1 1726 a=recvonly 1727 a=rtpmap:98 MP2T/90000 1728 a=rtcp:41001 IN IP4 192.0.2.1 1729 a=rtcp-fb:98 nack 1730 a=rtcp-fb:98 nack ssli 1731 a=ssrc:123321 cname:iptv-ch32@rams.example.com 1732 a=rams-updates 1733 a=mid:1 1734 m=video 41002 RTP/AVPF 99 1735 i=Unicast Retransmission Stream (Ret. and Rapid Acq. Support) 1736 c=IN IP4 192.0.2.1 1737 a=sendonly 1738 a=rtpmap:99 rtx/90000 1739 a=rtcp:41003 1740 a=fmtp:99 apt=98; rtx-time=5000 1741 a=mid:2 1743 Figure 9: Example SDP for RS when RAMS support is enabled 1745 v=0 1746 o=ali 1122334455 1122334466 IN IP4 rams.example.com 1747 s=Rapid Acquisition Example 1748 t=0 0 1749 a=group:FID 1 2 1750 a=rtcp-unicast:rsi 1751 m=video 41000 RTP/AVPF 98 1752 i=Primary Multicast Stream 1753 c=IN IP4 233.252.0.2/255 1754 a=source-filter: incl IN IP4 233.252.0.2 198.51.100.1 1755 a=recvonly 1756 a=rtpmap:98 MP2T/90000 1757 a=rtcp:41001 IN IP4 192.0.2.1 1758 a=rtcp-fb:98 nack 1759 a=rtcp-fb:98 nack ssli 1760 a=ssrc:123321 cname:iptv-ch32@rams.example.com 1761 a=rams-updates 1762 a=mid:1 1763 m=video 41002 RTP/AVPF 99 1764 i=Unicast Retransmission Stream (Ret. and Rapid Acq. Support) 1765 c=IN IP4 192.0.2.1 1766 a=recvonly 1767 a=rtpmap:99 rtx/90000 1768 a=rtcp:41003 1769 a=fmtp:99 apt=98; rtx-time=5000 1770 a=mid:2 1772 Figure 10: Example SDP for RTP_Rx when RAMS support is enabled 1774 In this section, we considered the simplest scenario where the 1775 primary multicast RTP session carried only one stream and the RTP 1776 receiver wanted to rapidly acquire this stream only. Best practices 1777 for scenarios where the primary multicast RTP session carries two or 1778 more streams or the RTP receiver wants to acquire one or more streams 1779 from multiple primary multicast RTP sessions at the same time are 1780 presented in [I-D.begen-avt-rams-scenarios]. 1782 9. NAT Considerations 1784 For a variety of reasons, one or more NAPT devices (hereafter simply 1785 called NAT) may exist between RTP_Rx and RS. NATs have a variety of 1786 operating characteristics for UDP traffic [RFC4787]. For a NAT to 1787 permit traffic from RS to arrive at RTP_Rx, the NAT(s) must first 1788 either: 1790 a. See UDP traffic sent from RTP_Rx (which is on the 'inside' of the 1791 NAT) to RS (which is on the 'outside' of the NAT). This traffic 1792 is sent to the same transport address as the subsequent response 1793 traffic, or; 1795 b. Be configured to forward certain ports (e.g., using HTML 1796 configuration, UPnP IGD [UPnP-IGD], DLNA [DLNA]). Details of 1797 this are out of scope of this document. 1799 For both (a) and (b), RTP_Rx is responsible for maintaining the NAT's 1800 state if it wants to receive traffic from the RS on that port. For 1801 (a), RTP_Rx MUST send UDP traffic to keep the NAT binding alive, at 1802 least every 30 seconds [RFC4787]. Note that while (a) is more like 1803 an automatic/dynamic configuration, (b) is more like a manual/static 1804 configuration. 1806 When RTP_Rx sends a RAMS-R message in the primary multicast RTP 1807 session and the request is received by RS, a new unicast RTP 1808 retransmission session will be established between RS and RTP_Rx. 1810 While the ports on the RS side are already signaled via out-of-band 1811 means (e.g., SDP), RTP_Rx may need to convey to RS the RTP and RTCP 1812 ports it wants to use on its side for the new session. Since there 1813 are two RTP sessions involved during this process and one of them is 1814 established upon a feedback message sent in the other one, this 1815 requires an explicit port mapping method. This problem equally 1816 applies to scenarios where the RTP media is multicast in an SSM 1817 session, and an RTP receiver requests retransmission from a local 1818 repair server by using the RTCP NACK messages for the missing packets 1819 and the repair server retransmits the requested packets over a 1820 unicast session. Thus, instead of laying out a specific solution for 1821 the RAMS applications, a general solution is introduced in 1822 [I-D.begen-avt-ports-for-ucast-mcast-rtp]. 1824 Applications using RAMS MUST support this solution both on the RS and 1825 RTP_Rx side to allow RTP receivers to use their desired ports and to 1826 support RAMS behind NAT devices. 1828 10. Security Considerations 1830 Applications that are using RAMS make heavy use of the unicast 1831 feedback mechanism described in [I-D.ietf-avt-rtcpssm] and the 1832 payload format defined in [RFC4588]. Thus, these applications are 1833 subject to the general security considerations discussed in 1834 [I-D.ietf-avt-rtcpssm] and [RFC4588]. In this section, we give an 1835 overview of the guidelines and suggestions described in these 1836 specifications from a RAMS perspective. We also discuss the security 1837 considerations that explicitly apply to applications using RAMS. 1839 First of all, much of the session description information is 1840 available in the SDP descriptions that are distributed to the media 1841 senders, Retransmission Servers and RTP receivers. Adequate security 1842 measures are RECOMMENDED to ensure the integrity and authenticity of 1843 the SDP descriptions so that transport addresses of the media 1844 senders, distribution sources, feedback targets as well as other 1845 session-specific information can be authenticated. 1847 Compared to an RTCP NACK message that triggers one or more 1848 retransmissions, a RAMS Request (RAMS-R) message may trigger a new 1849 burst stream to be sent by the Retransmission Server. Depending on 1850 the application-specific requirements and conditions existing at the 1851 time of the RAMS-R reception by the Retransmission Server, the 1852 resulting burst stream may contain potentially a large number of 1853 retransmission packets. Since these packets are sent at a faster 1854 than the nominal rate, RAMS consumes more resources on the 1855 Retransmission Server, the RTP receiver and the network. This 1856 particularly makes denial-of-service attacks more intense, and hence, 1857 more harmful than attacks that target ordinary retransmission 1858 sessions. 1860 Following the suggestions given in [RFC4588], counter-measures SHOULD 1861 be taken to prevent tampered or spoofed RTCP packets. Tampered 1862 RAMS-R messages may trigger inappropriate burst streams or alter the 1863 existing burst streams in an inappropriate way. For example, if the 1864 Max Receive Bitrate field is altered by a tampered RAMS-R message, 1865 the updated burst may overflow the buffer on the receiver side, or 1866 oppositely, may slow down the burst to the point that it becomes 1867 useless. Tampered RAMS Termination (RAMS-T) messages may terminate 1868 valid burst streams pre-maturely resulting in gaps in the received 1869 RTP packets. RAMS Information (RAMS-I) messages contain fields that 1870 are critical for the success of the RAMS operation. Any tampered 1871 information in the RAMS-I message may easily cause the RTP receiver 1872 to make wrong decisions. Consequently, the RAMS operation may fail. 1874 While most of the denial-of-service attacks can be prevented by the 1875 integrity and authenticity checks enabled by SRTP, an attack can 1876 still be started by legitimate endpoints that send several valid 1877 RAMS-R messages to a particular feedback target in a synchronized 1878 fashion and very short amount of time. Since a RAMS operation may 1879 temporarily consume a large amount of resources, a series of the 1880 RAMS-R messages may temporarily overload the Retransmission Server. 1881 In these circumstances, the Retransmission Server may, for example, 1882 reject incoming RAMS requests until its resources become available 1883 again. One means to ameliorate this threat is to apply a per- 1884 endpoint policing mechanism on the incoming RAMS requests. A 1885 reasonable policing mechanism should consider application-specific 1886 requirements and minimize false negatives. 1888 In addition to the denial-of-service attacks, man-in-the-middle and 1889 replay attacks can also be harmful. However, RAMS itself does not 1890 bring any new risks or threats other than the ones discussed in 1891 [I-D.ietf-avt-rtcpssm]. 1893 [RFC4588] RECOMMENDS that the cryptography mechanisms are used for 1894 the retransmission payload format to provide protection against known 1895 plaintext attacks. As discussed in [RFC4588], the retransmission 1896 payload format sets the timestamp field in the RTP header to the 1897 media timestamp of the original packet and this does not compromise 1898 the confidentiality. Furthermore, if cryptography is used to provide 1899 security services on the original stream, then the same services, 1900 with equivalent cryptographic strength, MUST be provided on the 1901 retransmission stream per [RFC4588]. 1903 11. IANA Considerations 1905 The following contact information shall be used for all registrations 1906 in this document: 1908 Ali Begen 1909 abegen@cisco.com 1911 170 West Tasman Drive 1912 San Jose, CA 95134 USA 1914 Note to the RFC Editor: In the following, please replace "XXXX" with 1915 the number of this document prior to publication as an RFC. 1917 11.1. Registration of SDP Attributes 1919 This document registers a new attribute name in SDP. 1921 SDP Attribute ("att-field"): 1922 Attribute name: rams-updates 1923 Long form: Support for Updated RAMS Request Messages 1924 Type of name: att-field 1925 Type of attribute: Media level 1926 Subject to charset: No 1927 Purpose: See this document 1928 Reference: [RFCXXXX] 1929 Values: None 1931 11.2. Registration of SDP Attribute Values 1933 This document registers a new value for the 'nack' attribute to be 1934 used with the 'rtcp-fb' attribute in SDP. For more information about 1935 'rtcp-fb', refer to [RFC4585]. 1937 Value name: ssli 1938 Long name: Stream Synchronization Loss Indication 1939 Usable with: nack 1940 Reference: [RFCXXXX] 1942 11.3. Registration of FMT Values 1944 Within the RTPFB range, the following format (FMT) value is 1945 registered: 1947 Name: RAMS 1948 Long name: Rapid Acquisition of Multicast Sessions 1949 Value: 6 1950 Reference: [RFCXXXX] 1952 11.4. SFMT Values for RAMS Messages Registry 1954 This document creates a new sub-registry for the sub-feedback message 1955 type (SFMT) values to be used with the FMT value registered for RAMS 1956 messages. The registry is called the SFMT Values for RAMS Messages 1957 Registry. This registry is to be managed by the IANA according to 1958 the Specification Required policy of [RFC5226]. 1960 The length of the SFMT field in the RAMS messages is a single octet, 1961 allowing 256 values. The registry is initialized with the following 1962 entries: 1964 Value Name Reference 1965 ----- -------------------------------------------------- ------------- 1966 0 Reserved [RFCXXXX] 1967 1 RAMS Request [RFCXXXX] 1968 2 RAMS Information [RFCXXXX] 1969 3 RAMS Termination [RFCXXXX] 1970 4-254 Specification Required 1971 255 Reserved [RFCXXXX] 1973 The SFMT values 0 and 255 are reserved for future use. 1975 Any registration for an unassigned SFMT value MUST contain the 1976 following information: 1978 o Contact information of the one doing the registration, including 1979 at least name, address, and email. 1981 o A detailed description of what the new SFMT represents and how it 1982 shall be interpreted. 1984 Note that new RAMS functionality should be introduced by using the 1985 extension mechanism within the existing RAMS message types not by 1986 introducing new message types unless it is absolutely necessary. 1988 11.5. RAMS TLV Space Registry 1990 This document creates a new IANA TLV space registry for the RAMS 1991 extensions. The registry is called the RAMS TLV Space Registry. 1992 This registry is to be managed by the IANA according to the 1993 Specification Required policy of [RFC5226]. 1995 The length of the Type field in the TLV elements is a single octet, 1996 allowing 256 values. The Type values 0 and 255 are reserved for 1997 future use. The Type values between (and including) 128 and 254 are 1998 reserved for private extensions. 2000 The registry is initialized with the following entries: 2002 Type Description Reference 2003 ---- -------------------------------------------------- ------------- 2004 0 Reserved [RFCXXXX] 2005 1 Requested Media Sender SSRC(s) [RFCXXXX] 2006 2 Min RAMS Buffer Fill Requirement [RFCXXXX] 2007 3 Max RAMS Buffer Fill Requirement [RFCXXXX] 2008 4 Max Receive Bitrate [RFCXXXX] 2009 5 Request for Preamble Only [RFCXXXX] 2010 6-30 Specification Required 2011 31 Media Sender SSRC [RFCXXXX] 2012 32 RTP Seqnum of the First Packet [RFCXXXX] 2013 33 Earliest Multicast Join Time [RFCXXXX] 2014 34 Burst Duration [RFCXXXX] 2015 35 Max Transmit Bitrate [RFCXXXX] 2016 36-60 Specification Required 2017 61 Extended RTP Seqnum of First Multicast Packet [RFCXXXX] 2018 62-127 Specification Required 2019 128-254 No IANA Maintenance 2020 255 Reserved [RFCXXXX] 2022 Any registration for an unassigned Type value MUST contain the 2023 following information: 2025 o Contact information of the one doing the registration, including 2026 at least name, address, and email. 2028 o A detailed description of what the new TLV element represents and 2029 how it shall be interpreted. 2031 11.6. RAMS Response Code Space Registry 2033 This document creates a new IANA TLV space registry for the RAMS 2034 response codes. The registry is called the RAMS Response Code Space 2035 Registry. This registry is to be managed by the IANA according to 2036 the Specification Required policy of [RFC5226]. 2038 The length of the Response field is two octets, allowing 65536 codes. 2039 However, the response codes have been classified and registered 2040 following an HTTP-style code numbering in this document. New 2041 response codes SHALL follow the guidelines below: 2043 Code Level Purpose 2044 ---------- --------------- 2045 1xx Informational 2046 2xx Success 2047 3xx Redirection 2048 4xx RTP Receiver Error 2049 5xx Retransmission Server Error 2051 The Response code 65536 is reserved for future use. 2053 The registry is initialized with the following entries: 2055 Code Description Reference 2056 ----- -------------------------------------------------- ------------- 2057 0 A private response code is included in the message [RFCXXXX] 2059 100 Parameter update for RAMS session [RFCXXXX] 2061 200 RAMS request has been accepted [RFCXXXX] 2062 201 Unicast burst has been completed [RFCXXXX] 2064 400 Invalid RAMS-R message syntax 2065 401 Invalid min buffer requirement in RAMS-R message [RFCXXXX] 2066 402 Invalid max buffer requirement in RAMS-R message [RFCXXXX] 2067 403 Invalid max bitrate requirement in RAMS-R message [RFCXXXX] 2069 500 An unspecified RS internal error has occurred [RFCXXXX] 2070 501 RS has no bandwidth to start RAMS session [RFCXXXX] 2071 502 Burst is terminated due to network congestion [RFCXXXX] 2072 503 RS has no CPU available to start RAMS session [RFCXXXX] 2073 504 RAMS functionality is not available on RS [RFCXXXX] 2074 505 RAMS functionality is not available for RTP_Rx [RFCXXXX] 2075 506 RAMS functionality is not available for 2076 the requested multicast stream [RFCXXXX] 2077 507 RS has no valid starting point available for 2078 the requested multicast stream [RFCXXXX] 2079 508 RS has no reference information available for 2080 the requested multicast stream [RFCXXXX] 2081 509 RS has no RTP stream matching the requested SSRC [RFCXXXX] 2082 510 RAMS request to acquire the entire session 2083 has been denied [RFCXXXX] 2084 511 Only the preamble information is sent [RFCXXXX] 2085 512 RAMS request has been denied due to a policy [RFCXXXX] 2087 Any registration for an unassigned Response code MUST contain the 2088 following information: 2090 o Contact information of the one doing the registration, including 2091 at least name, address, and email. 2093 o A detailed description of what the new Response code describes and 2094 how it shall be interpreted. 2096 12. Contributors 2098 Dave Oran and Magnus Westerlund have contributed significantly to 2099 this specification by providing text and solutions to some of the 2100 issues raised during the development of this specification. 2102 13. Acknowledgments 2104 The following individuals have reviewed the earlier versions of this 2105 specification and provided helpful comments: Colin Perkins, Joerg 2106 Ott, Roni Even, Dan Wing, Tony Faustini, Peilin Yang, Jeff Goldberg, 2107 Muriel Deschanel, Orit Levin, Guy Hirson, Tom Taylor, Xavier Marjou, 2108 Ye-Kui Wang, Zixuan Zou, Ingemar Johansson, Haibin Song, Ning Zong, 2109 Jonathan Lennox and Sean Sheedy. 2111 14. Change Log 2113 14.1. draft-ietf-avt-rapid-acquisition-for-rtp-07 2115 The following are the major changes compared to version 06: 2117 o Congestion control considerations text has been added to Section 2118 6.4. 2120 14.2. draft-ietf-avt-rapid-acquisition-for-rtp-06 2122 The following are the major changes compared to version 05: 2124 o Comments from WGLC have been addressed. See the mailing list for 2125 the list of changes. 2127 o Support for multi-stream RTP sessions has been added. 2129 o NAT section has been revised. 2131 14.3. draft-ietf-avt-rapid-acquisition-for-rtp-05 2133 The following are the major changes compared to version 04: 2135 o Editorial changes throughout the document. 2137 14.4. draft-ietf-avt-rapid-acquisition-for-rtp-04 2139 The following are the major changes compared to version 03: 2141 o Clarifications for the definition of RS. 2143 o Response codes have been defined. 2145 14.5. draft-ietf-avt-rapid-acquisition-for-rtp-03 2147 The following are the major changes compared to version 02: 2149 o Clarifications for the RAMS-I message. 2151 o Type values have been assigned. 2153 14.6. draft-ietf-avt-rapid-acquisition-for-rtp-02 2155 The following are the major changes compared to version 01: 2157 o Port mapping discussion has been removed since it will be 2158 discussed in a separate draft. 2160 o Security considerations section has been added. 2162 o Burst shaping section has been completed. 2164 o Most of the outstanding open issues have been addressed. 2166 14.7. draft-ietf-avt-rapid-acquisition-for-rtp-01 2168 The following are the major changes compared to version 00: 2170 o Formal definitions of vendor-neutral and private extensions and 2171 their IANA registries have been added. 2173 o SDP examples were explained in more detail. 2175 o The sub-FMT field has been introduced in the RAMS messages for 2176 message type identification. 2178 o Some terminology has been fixed. 2180 o NAT considerations section has been added. 2182 14.8. draft-ietf-avt-rapid-acquisition-for-rtp-00 2184 This is a resubmission of version 03 as a WG item. 2186 14.9. draft-versteeg-avt-rapid-synchronization-for-rtp-03 2188 The following are the major changes compared to version 02: 2190 o The title and message names have been changed. 2192 o RTCP message semantics have been added. RAMS protocol has been 2193 revised to handle updated requests and responses. 2195 o Definitions have been revised. 2197 o RTP/RTCP muxing reference has been added. 2199 14.10. draft-versteeg-avt-rapid-synchronization-for-rtp-02 2201 The following are the major changes compared to version 01: 2203 o The discussion around MPEG2-TS has been moved to another document. 2205 o The RAMS-R, RAMS-I and RAMS-T messages have been extensively 2206 modified and they have been made mandatory. 2208 o IANA Considerations section has been updated. 2210 o The discussion of RTCP XR report has been moved to another 2211 document. 2213 o A new section on protocol design considerations has been added. 2215 14.11. draft-versteeg-avt-rapid-synchronization-for-rtp-01 2217 The following are the major changes compared to version 00: 2219 o The core of the rapid synchronization method is now payload- 2220 independent. But, the draft still defines payload-specific 2221 messages that are required for enabling rapid synch for the RTP 2222 flows carrying MPEG2-TS. 2224 o RTCP APP packets have been removed, new RTCP transport-layer and 2225 payload-specific feedback messages have been defined. 2227 o The step for leaving the current multicast session has been 2228 removed from Section 6.2. 2230 o A new RTCP XR (Multicast Join) report has been defined. 2232 o IANA Considerations section have been updated. 2234 o Editorial changes to clarify several points. 2236 15. References 2238 15.1. Normative References 2240 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. 2241 Jacobson, "RTP: A Transport Protocol for Real-Time 2242 Applications", STD 64, RFC 3550, July 2003. 2244 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 2245 Requirement Levels", BCP 14, RFC 2119, March 1997. 2247 [RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A. 2248 Thyagarajan, "Internet Group Management Protocol, Version 2249 3", RFC 3376, October 2002. 2251 [RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery 2252 Version 2 (MLDv2) for IPv6", RFC 3810, June 2004. 2254 [RFC4604] Holbrook, H., Cain, B., and B. Haberman, "Using Internet 2255 Group Management Protocol Version 3 (IGMPv3) and Multicast 2256 Listener Discovery Protocol Version 2 (MLDv2) for Source- 2257 Specific Multicast", RFC 4604, August 2006. 2259 [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session 2260 Description Protocol", RFC 4566, July 2006. 2262 [I-D.ietf-mmusic-rfc3388bis] 2263 Camarillo, G. and H. Schulzrinne, "The SDP (Session 2264 Description Protocol) Grouping Framework", 2265 draft-ietf-mmusic-rfc3388bis-04 (work in progress), 2266 November 2009. 2268 [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, 2269 "Extended RTP Profile for Real-time Transport Control 2270 Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, 2271 July 2006. 2273 [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. 2275 Hakenberg, "RTP Retransmission Payload Format", RFC 4588, 2276 July 2006. 2278 [I-D.ietf-avt-rtcpssm] 2279 Ott, J. and J. Chesterfield, "RTCP Extensions for Single- 2280 Source Multicast Sessions with Unicast Feedback", 2281 draft-ietf-avt-rtcpssm-19 (work in progress), 2282 November 2009. 2284 [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific 2285 Media Attributes in the Session Description Protocol 2286 (SDP)", RFC 5576, June 2009. 2288 [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax 2289 Specifications: ABNF", STD 68, RFC 5234, January 2008. 2291 [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size 2292 Real-Time Transport Control Protocol (RTCP): Opportunities 2293 and Consequences", RFC 5506, April 2009. 2295 [RFC5285] Singer, D. and H. Desineni, "A General Mechanism for RTP 2296 Header Extensions", RFC 5285, July 2008. 2298 [I-D.ietf-avt-rapid-rtp-sync] 2299 Perkins, C. and T. Schierl, "Rapid Synchronisation of RTP 2300 Flows", draft-ietf-avt-rapid-rtp-sync-09 (work in 2301 progress), January 2010. 2303 [I-D.begen-avt-ports-for-ucast-mcast-rtp] 2304 Begen, A. and B. Steeg, "Port Mapping Between Unicast and 2305 Multicast RTP Sessions", 2306 draft-begen-avt-ports-for-ucast-mcast-rtp-02 (work in 2307 progress), February 2010. 2309 [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an 2310 IANA Considerations Section in RFCs", BCP 26, RFC 5226, 2311 May 2008. 2313 15.2. Informative References 2315 [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, 2316 August 1980. 2318 [I-D.begen-avt-rams-scenarios] 2319 Begen, A., "Considerations for RAMS Scenarios", 2320 draft-begen-avt-rams-scenarios-00 (work in progress), 2321 October 2009. 2323 [I-D.begen-avt-rtp-mpeg2ts-preamble] 2324 Begen, A. and E. Friedrich, "RTP Payload Format for 2325 MPEG2-TS Preamble", 2326 draft-begen-avt-rtp-mpeg2ts-preamble-04 (work in 2327 progress), December 2009. 2329 [I-D.begen-avt-rapid-sync-rtcp-xr] 2330 Begen, A. and E. Friedrich, "Multicast Acquisition Report 2331 Block Type for RTCP XR", 2332 draft-begen-avt-rapid-sync-rtcp-xr-03 (work in progress), 2333 October 2009. 2335 [I-D.westerlund-avt-ecn-for-rtp] 2336 Westerlund, M., Johansson, I., Perkins, C., and K. 2337 Carlberg, "Explicit Congestion Notification (ECN) for RTP 2338 over UDP", draft-westerlund-avt-ecn-for-rtp-02 (work in 2339 progress), October 2009. 2341 [I-D.ietf-fecframe-interleaved-fec-scheme] 2342 Begen, A., "RTP Payload Format for 1-D Interleaved Parity 2343 FEC", draft-ietf-fecframe-interleaved-fec-scheme-09 (work 2344 in progress), January 2010. 2346 [RFC4787] Audet, F. and C. Jennings, "Network Address Translation 2347 (NAT) Behavioral Requirements for Unicast UDP", BCP 127, 2348 RFC 4787, January 2007. 2350 [I-D.ietf-dccp-rtp] 2351 Perkins, C., "RTP and the Datagram Congestion Control 2352 Protocol (DCCP)", draft-ietf-dccp-rtp-07 (work in 2353 progress), June 2007. 2355 [UPnP-IGD] 2356 Forum, UPnP., "Universal Plug and Play (UPnP) Internet 2357 Gateway Device (IGD)", November 2001. 2359 [DLNA] , DLNA., "http://www.dlna.org/home". 2361 [IC2009] Begen, A., Glazebrook, N., and W. VerSteeg, "Reducing 2362 Channel Change Times in IPTV with Real-Time Transport 2363 Protocol (IEEE Internet Computing)", May 2009. 2365 Authors' Addresses 2367 Bill VerSteeg 2368 Cisco 2369 5030 Sugarloaf Parkway 2370 Lawrenceville, GA 30044 2371 USA 2373 Email: billvs@cisco.com 2375 Ali Begen 2376 Cisco 2377 170 West Tasman Drive 2378 San Jose, CA 95134 2379 USA 2381 Email: abegen@cisco.com 2383 Tom VanCaenegem 2384 Alcatel-Lucent 2385 Copernicuslaan 50 2386 Antwerpen, 2018 2387 Belgium 2389 Email: Tom.Van_Caenegem@alcatel-lucent.be 2391 Zeev Vax 2392 Microsoft Corporation 2393 1065 La Avenida 2394 Mountain View, CA 94043 2395 USA 2397 Email: zeevvax@microsoft.com