diff options
Diffstat (limited to 'doc/rfc/rfc6285.txt')
-rw-r--r-- | doc/rfc/rfc6285.txt | 3139 |
1 files changed, 3139 insertions, 0 deletions
diff --git a/doc/rfc/rfc6285.txt b/doc/rfc/rfc6285.txt new file mode 100644 index 0000000..dd500b6 --- /dev/null +++ b/doc/rfc/rfc6285.txt @@ -0,0 +1,3139 @@ + + + + + + +Internet Engineering Task Force (IETF) B. Ver Steeg +Request for Comments: 6285 A. Begen +Category: Standards Track Cisco +ISSN: 2070-1721 T. Van Caenegem + Alcatel-Lucent + Z. Vax + Magnum Semiconductor + June 2011 + + + Unicast-Based Rapid Acquisition of Multicast RTP Sessions + +Abstract + + When an RTP receiver joins a multicast session, it may need to + acquire and parse certain Reference Information before it can process + any data sent in the multicast session. Depending on the join time, + length of the Reference Information repetition (or appearance) + interval, size of the Reference Information, and the application and + transport properties, the time lag before an RTP receiver can + usefully consume the multicast data, which we refer to as the + Acquisition Delay, varies and can be large. This is an undesirable + phenomenon for receivers that frequently switch among different + multicast sessions, such as video broadcasts. + + In this document, we describe a method using the existing RTP and RTP + Control Protocol (RTCP) machinery that reduces the acquisition delay. + In this method, an auxiliary unicast RTP session carrying the + Reference Information to the receiver precedes or accompanies the + multicast stream. This unicast RTP flow can be transmitted at a + faster than natural bitrate to further accelerate the acquisition. + The motivating use case for this capability is multicast applications + that carry real-time compressed audio and video. However, this + method can also be used in other types of multicast applications + where the acquisition delay is long enough to be a problem. + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 5741. + + + + + + +Ver Steeg, et al. Standards Track [Page 1] + +RFC 6285 RAMS June 2011 + + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + http://www.rfc-editor.org/info/rfc6285. + +Copyright Notice + + Copyright (c) 2011 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (http://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Simplified BSD License text as described in Section 4.e of + the Trust Legal Provisions and are provided without warranty as + described in the Simplified BSD License. + + This document may contain material from IETF Documents or IETF + Contributions published or made publicly available before November + 10, 2008. The person(s) controlling the copyright in some of this + material may not have granted the IETF Trust the right to allow + modifications of such material outside the IETF Standards Process. + Without obtaining an adequate license from the person(s) controlling + the copyright in such materials, this document may not be modified + outside the IETF Standards Process, and derivative works of it may + not be created outside the IETF Standards Process, except to format + it for publication as an RFC or to translate it into languages other + than English. + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 + 1.1. Acquisition of RTP Streams vs. RTP Sessions . . . . . . . 6 + 1.2. Outline . . . . . . . . . . . . . . . . . . . . . . . . . 6 + 2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 7 + 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 7 + 4. Elements of Delay in Multicast Applications . . . . . . . . . 8 + 5. Protocol Design Considerations and Their Effect on + Resource Management for Rapid Acquisition . . . . . . . . . . 10 + 6. Rapid Acquisition of Multicast RTP Sessions (RAMS) . . . . . . 12 + 6.1. Overview . . . . . . . . . . . . . . . . . . . . . . . . . 12 + 6.2. Message Flows . . . . . . . . . . . . . . . . . . . . . . 13 + 6.3. Synchronization of Primary Multicast Streams . . . . . . . 24 + 6.4. Burst Shaping and Congestion Control in RAMS . . . . . . . 25 + 6.5. Failure Cases . . . . . . . . . . . . . . . . . . . . . . 27 + 7. Encoding of the Signaling Protocol in RTCP . . . . . . . . . . 28 + + + +Ver Steeg, et al. Standards Track [Page 2] + +RFC 6285 RAMS June 2011 + + + 7.1. Extensions . . . . . . . . . . . . . . . . . . . . . . . . 29 + 7.1.1. Vendor-Neutral Extensions . . . . . . . . . . . . . . 30 + 7.1.2. Private Extensions . . . . . . . . . . . . . . . . . . 30 + 7.2. RAMS Request . . . . . . . . . . . . . . . . . . . . . . . 31 + 7.3. RAMS Information . . . . . . . . . . . . . . . . . . . . . 34 + 7.3.1. Response Code Definitions . . . . . . . . . . . . . . 37 + 7.4. RAMS Termination . . . . . . . . . . . . . . . . . . . . . 39 + 8. SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . . 40 + 8.1. Definitions . . . . . . . . . . . . . . . . . . . . . . . 40 + 8.2. Requirements . . . . . . . . . . . . . . . . . . . . . . . 41 + 8.3. Example and Discussion . . . . . . . . . . . . . . . . . . 41 + 9. NAT Considerations . . . . . . . . . . . . . . . . . . . . . . 44 + 10. Security Considerations . . . . . . . . . . . . . . . . . . . 45 + 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 47 + 11.1. Registration of SDP Attributes . . . . . . . . . . . . . . 48 + 11.2. Registration of SDP Attribute Values . . . . . . . . . . . 48 + 11.3. Registration of FMT Values . . . . . . . . . . . . . . . . 48 + 11.4. SFMT Values for RAMS Messages Registry . . . . . . . . . . 48 + 11.5. RAMS TLV Space Registry . . . . . . . . . . . . . . . . . 49 + 11.6. RAMS Response Code Space Registry . . . . . . . . . . . . 50 + 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . . 52 + 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 52 + 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 52 + 14.1. Normative References . . . . . . . . . . . . . . . . . . . 52 + 14.2. Informative References . . . . . . . . . . . . . . . . . . 54 + +1. Introduction + + Most multicast flows carry a stream of inter-related data. Receivers + need to acquire certain information to start processing any data sent + in the multicast session. This document refers to this information + as Reference Information. The Reference Information is + conventionally sent periodically in the multicast session (although + its content can change over time) and usually consists of items such + as a description of the schema for the rest of the data, references + to which data to process, encryption information including keys, and + any other information required to process the data in the multicast + stream [IC2009]. + + Real-time multicast applications require receivers to buffer data. + Receivers may have to buffer data to smooth out the network jitter, + to allow loss-repair methods such as Forward Error Correction and + retransmission to recover the missing packets, and to satisfy the + data-processing requirements of the application layer. + + When a receiver joins a multicast session, it has no control over + what point in the flow is currently being transmitted. Sometimes the + receiver might join the session right before the Reference + + + +Ver Steeg, et al. Standards Track [Page 3] + +RFC 6285 RAMS June 2011 + + + Information is sent in the session. In this case, the required + waiting time is usually minimal. Other times, the receiver might + join the session right after the Reference Information has been + transmitted. In this case, the receiver has to wait for the + Reference Information to appear again in the flow before it can start + processing any multicast data. In some other cases, the Reference + Information is not contiguous in the flow but dispersed over a large + period, which forces the receiver to wait for the whole Reference + Information to arrive before starting to process the rest of the + data. + + The net effect of waiting for the Reference Information and waiting + for various buffers to fill up is that receivers can experience + significantly large delays in data processing. In this document, we + refer to the difference between the time an RTP receiver wants to + join the multicast session and the time the RTP receiver acquires all + the necessary Reference Information as the Acquisition Delay. The + acquisition delay might not be the same for different receivers; it + usually varies depending on the join time, length of the Reference + Information repetition (or appearance) interval, and size of the + Reference Information, as well as the application and transport + properties. + + The varying nature of the acquisition delay adversely affects the + receivers that frequently switch among multicast sessions. While + this problem equally applies to both any-source multicast (ASM) and + source-specific multicast (SSM) applications, in this specification + we address it for the SSM-based applications by describing a method + that uses the fundamental tools offered by the existing RTP and RTCP + protocols [RFC3550]. In this method, either the multicast source (or + the distribution source in an SSM session) retains the Reference + Information for a period after its transmission, or an intermediary + network element (that we refer to as Retransmission Server) joins the + multicast session and continuously caches the Reference Information + as it is sent in the session and acts as a feedback target (see + [RFC5760]) for the session. When an RTP receiver wishes to join the + same multicast session, instead of simply issuing a Source Filtering + Group Management Protocol (SFGMP) Join message, it sends a request to + the feedback target for the session and asks for the Reference + Information. The retransmission server starts a new unicast RTP + (retransmission) session and sends the Reference Information to the + RTP receiver over that session. If there is residual bandwidth, the + retransmission server might burst the Reference Information faster + than its natural rate. As soon as the receiver acquires the + Reference Information, it can join the multicast session and start + processing the multicast data. A simplified network diagram showing + this method through an intermediary network element is depicted in + Figure 1. + + + +Ver Steeg, et al. Standards Track [Page 4] + +RFC 6285 RAMS June 2011 + + + This method potentially reduces the acquisition delay. We refer to + this method as Unicast-Based Rapid Acquisition of Multicast RTP + Sessions. A primary use case for this method is to reduce the + channel-change times in IPTV networks where compressed video streams + are multicast in different SSM sessions and viewers randomly join + these sessions. + + ----------------------- + +--->| Intermediary | + | | Network Element | + | ...|(Retransmission Server)| + | : ----------------------- + | : + | v + ----------- ---------- ---------- + | Multicast | | |---------->| Joining | + | Source |------->| Router |..........>| RTP | + | | | | | Receiver | + ----------- ---------- ---------- + | + | ---------- + +---------------->| Existing | + | RTP | + | Receiver | + ---------- + + + -------> Multicast RTP Flow + .......> Unicast RTP Flow + + Figure 1: Rapid Acquisition through an Intermediary Network Element + + A principle design goal in this solution is to use the existing tools + in the RTP/RTCP protocol family. This improves the versatility of + the existing implementations and promotes faster deployment and + better interoperability. To this effect, we use the unicast + retransmission support of RTP [RFC4588] and the capabilities of RTCP + to handle the signaling needed to accomplish the acquisition. + + A reasonable effort has been made in this specification to design a + solution that reliably works in both engineered and best-effort + networks. However, a proper congestion control combined with the + desired behavior of this solution is difficult to achieve. Rather, + this solution has been designed based on the assumption that the + retransmission server and the RTP receivers have some knowledge about + where the bottleneck between them is. This assumption does not + generally hold unless both the retransmission server and the RTP + receivers are in the same edge network. Thus, this solution should + + + +Ver Steeg, et al. Standards Track [Page 5] + +RFC 6285 RAMS June 2011 + + + not be used across any best-effort path of the Internet. + Furthermore, this solution should only be used in networks that are + already carrying non-congestion-responsive multicast traffic and have + throttling mechanisms in the retransmission servers to ensure the + (unicast) burst traffic is a known constant upper-bound multiplier on + the multicast load. + +1.1. Acquisition of RTP Streams vs. RTP Sessions + + In this memo, we describe a protocol that handles the rapid + acquisition of a single multicast RTP session (called a primary + multicast RTP session) carrying one or more RTP streams (called + primary multicast streams). If desired, multiple instances of this + protocol may be run in parallel to acquire multiple RTP sessions + simultaneously. + + When an RTP receiver requests the Reference Information from the + retransmission server, it can opt to rapidly acquire a specific + subset of the available RTP streams in the primary multicast RTP + session. Alternatively, the RTP receiver can request the rapid + acquisition of all of the RTP streams in that RTP session. + Regardless of how many RTP streams are requested by the RTP receiver + or how many will be actually sent by the retransmission server, only + one unicast RTP session will be established by the retransmission + server. This unicast RTP session is separate from the associated + primary multicast RTP session. As a result, there are always two + different RTP sessions in a single instance of the rapid acquisition + protocol: (i) the primary multicast RTP session with its associated + unicast feedback and (ii) the unicast RTP session. + + If the RTP receiver wants to rapidly acquire multiple RTP sessions + simultaneously, separate unicast RTP sessions will be established for + each of them. + +1.2. Outline + + The rest of this specification is as follows. Section 3 provides a + list of the definitions frequently used in this document. In + Section 4, we describe the delay components in generic multicast + applications. Section 5 presents an overview of the protocol design + considerations for rapid acquisition. We provide the protocol + details of the rapid acquisition method in Sections 6 and 7. + Sections 8 and 9 discuss the Session Description Protocol (SDP) + signaling issues with examples and NAT-related issues, respectively. + Finally, Section 10 discusses the security considerations, and + Section 11 details the IANA considerations. + + + + + +Ver Steeg, et al. Standards Track [Page 6] + +RFC 6285 RAMS June 2011 + + +2. Requirements Notation + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in [RFC2119]. + +3. Definitions + + This document uses the following acronyms and definitions frequently: + + (Primary) SSM Session: The multicast session to which RTP receivers + can join at a random point in time. A primary SSM session can carry + multiple RTP streams. + + Primary Multicast RTP Session: The multicast RTP session an RTP + receiver is interested in acquiring rapidly. From the RTP receiver's + viewpoint, the primary multicast RTP session has one associated + unicast RTCP feedback stream to a Feedback Target, in addition to the + primary multicast RTP stream(s). + + Primary Multicast (RTP) Streams: The RTP stream(s) carried in the + primary multicast RTP session. + + Source Filtering Group Management Protocol (SFGMP): Following the + definition in [RFC4604], SFGMP refers to the Internet Group + Management Protocol (IGMP) version 3 [RFC3376] and the Multicast + Listener Discovery Protocol (MLD) version 2 [RFC3810] in the IPv4 and + IPv6 networks, respectively. However, the rapid acquisition method + introduced in this document does not depend on a specific version of + either of these group management protocols. In the remainder of this + document, SFGMP will refer to any group management protocol that has + Join and Leave functionalities. + + Feedback Target (FT): Unicast RTCP feedback target as defined in + [RFC5760]. FT_Ap denotes a specific feedback target running on a + particular address and port. + + Retransmission (or Burst) Packet: An RTP packet that is formatted as + defined in Section 4 of [RFC4588]. The payload of a retransmission + or burst packet comprises the retransmission payload header followed + by the payload of the original RTP packet. + + Reference Information: The set of certain media content and metadata + information that is sufficient for an RTP receiver to start usefully + consuming a media stream. The meaning, format, and size of this + information are specific to the application and are out of the scope + of this document. + + + + +Ver Steeg, et al. Standards Track [Page 7] + +RFC 6285 RAMS June 2011 + + + Preamble Information: A more compact form of the whole or a subset + of the Reference Information transmitted out-of-band. + + (Unicast) Burst (or Retransmission) RTP Session: The unicast RTP + session used to send one or more unicast burst RTP streams and their + associated RTCP messages. The terms "burst RTP session" and + "retransmission RTP session" can be used interchangeably. + + (Unicast) Burst (Stream): A unicast stream of RTP retransmission + packets that enable an RTP receiver to rapidly acquire the Reference + Information associated with a primary multicast stream. Each burst + stream is identified by its Synchronization Source (SSRC) identifier + that is unique in the primary multicast RTP session. Following the + session-multiplexing guidelines in [RFC4588], each unicast burst + stream will use the same SSRC and Canonical Name (CNAME) as its + primary multicast RTP stream. + + Retransmission Server (RS): The RTP/RTCP endpoint that can generate + the retransmission packets and the burst streams. The RS may also + generate other non-retransmission packets to aid rapid acquisition. + +4. Elements of Delay in Multicast Applications + + In a source-specific multicast (SSM) delivery system, there are three + major elements that contribute to the acquisition delay when an RTP + receiver switches from one multicast session to another one. These + are: + + o Multicast-switching delay + + o Reference Information latency + + o Buffering delays + + Multicast-switching delay is the delay that is experienced when + leaving the current multicast session (if any) and joining the new + multicast session. In typical systems, the multicast join and leave + operations are handled by a group management protocol. For example, + the receivers and routers participating in a multicast session can + use the Internet Group Management Protocol (IGMP) version 3 [RFC3376] + or the Multicast Listener Discovery Protocol (MLD) version 2 + [RFC3810]. In either of these protocols, when a receiver wants to + join a multicast session, it sends a message to its upstream router + and the routing infrastructure sets up the multicast forwarding state + to deliver the packets of the multicast session to the new receiver. + The join times vary depending on the proximity of the upstream + router, the current state of the multicast tree, the load on the + system, and the protocol implementation. Current systems provide + + + +Ver Steeg, et al. Standards Track [Page 8] + +RFC 6285 RAMS June 2011 + + + join latencies, usually less than 200 milliseconds (ms). If the + receiver had been participating in another multicast session before + joining the new session, it needs to send a Leave message to its + upstream router to leave the session. In common multicast routing + protocols, the leave times are usually smaller than the join times; + however, it is possible that the Leave and Join messages might get + lost, in which case the multicast-switching delay inevitably + increases. + + Reference Information latency is the time it takes the receiver to + acquire the Reference Information. It is highly dependent on the + proximity of the actual time the receiver joined the session to the + next time the Reference Information will be sent to the receivers in + the session, whether or not the Reference Information is sent + contiguously, and the size of the Reference Information. For some + multicast flows, there is a little or no interdependency in the data, + in which case the Reference Information latency will be nil or + negligible. For other multicast flows, there is a high degree of + interdependency. One example of interest is the multicast flows that + carry compressed audio/video. For these flows, the Reference + Information latency can become quite large and be a major contributor + to the overall delay. + + The buffering component of the overall acquisition delay is driven by + the way the application layer processes the payload. In many + multicast applications, an unreliable transport protocol such as UDP + [RFC0768] is often used to transmit the data packets, and the + reliability, if needed, is usually addressed through other means such + as Forward Error Correction (e.g., [RFC6015]) and retransmission. + These loss-repair methods require buffering at the receiver side to + function properly. In many applications, it is also often necessary + to de-jitter the incoming data packets before feeding them to the + application. The de-jittering process also increases the buffering + delays. Besides these network-related buffering delays, there are + also specific buffering needs that are required by the individual + applications. For example, standard video decoders typically require + a certain amount, sometimes up to a few seconds, of coded video data + to be available in the pre-decoding buffers prior to starting to + decode the video bitstream. + + + + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 9] + +RFC 6285 RAMS June 2011 + + +5. Protocol Design Considerations and Their Effect on Resource + Management for Rapid Acquisition + + This section is for informational purposes and does not contain + requirements for implementations. + + Rapid acquisition is an optimization of a system that is expected to + continue to work correctly and properly whether or not the + optimization is effective or even fails due to lost control and + feedback messages, congestion, or other problems. This is + fundamental to the overall design requirements surrounding the + protocol definition and to the resource management schemes to be + employed together with the protocol (e.g., Quality of Service (QoS) + machinery, server load management, etc). In particular, the system + needs to operate within a number of constraints: + + o First, a rapid acquisition operation must fail gracefully. The + user experience must not be significantly worse for trying and + failing to complete rapid acquisition compared to simply joining + the multicast session. + + o Second, providing the rapid acquisition optimizations must not + cause collateral damage to either the multicast session being + joined or other multicast sessions sharing resources with the + rapid acquisition operation. In particular, the rapid acquisition + operation must avoid interference with the multicast session that + might be simultaneously being received by other hosts. In + addition, it must also avoid interference with other multicast and + non-multicast sessions sharing the same network resources. These + properties are possible but are usually difficult to achieve. + + One challenge is the existence of multiple bandwidth bottlenecks + between the receiver and the server(s) in the network providing the + rapid acquisition service. In commercial IPTV deployments, for + example, bottlenecks are often present in the aggregation network + connecting the IPTV servers to the network edge, the access links + (e.g., DSL, Data Over Cable Service Interface Specification + (DOCSIS)), and the home network of the subscribers. Some of these + links might serve only a single subscriber, limiting congestion + impact to the traffic of only that subscriber, but others can be + shared links carrying multicast sessions of many subscribers. Also + note that the state of these links can vary over time. The receiver + might have knowledge of a portion of this network or might have + partial knowledge of the entire network. The methods employed by the + devices to acquire this network state information is out of the scope + of this document. The receiver should be able to signal the server + with the bandwidth that it believes it can handle. The server also + needs to be able to rate limit the flow in order to stay within the + + + +Ver Steeg, et al. Standards Track [Page 10] + +RFC 6285 RAMS June 2011 + + + performance envelope that it knows about. Both the server and + receiver need to be able to inform the other of changes in the + requested and delivered rates. However, the protocol must be robust + in the presence of packet loss, so this signaling must include the + appropriate default behaviors. + + A second challenge is that for some uses (e.g., high-bitrate video) + the unicast burst bitrate is high while the flow duration of the + unicast burst is short. This is because the purpose of the unicast + burst is to allow the RTP receiver to join the multicast quickly and + thereby limit the overall resources consumed by the burst. Such + high-bitrate, short-duration flows are not amenable to conventional + admission-control techniques. For example, end-to-end per-flow + signaled admission-control techniques such as Resource Reservation + Protocol (RSVP) have too much latency and control channel overhead to + be a good fit for rapid acquisition. Similarly, using a TCP (or TCP- + like) approach with a 3-way handshake and slow-start to avoid + inducing congestion would defeat the purpose of attempting rapid + acquisition in the first place by introducing many round-trip times + (RTTs) of delay. + + These observations lead to certain unavoidable requirements and goals + for a rapid acquisition protocol. These are: + + o The protocol must be designed to allow a deterministic upper bound + on the extra bandwidth used (compared to just joining the + multicast session). A reasonable size bound is e*B, where B is + the nominal bandwidth of the primary multicast streams and e is an + excess-bandwidth coefficient. The total duration of the unicast + burst must have a reasonable bound; long unicast bursts devolve to + the bandwidth profile of multi-unicast for the whole system. + + o The scheme should minimize (or better eliminate) the overlap of + the unicast burst and the primary multicast stream. This + minimizes the window during which congestion could be induced on a + bottleneck link compared to just carrying the multicast or unicast + packets alone. + + o The scheme must minimize (or better eliminate) any gap between the + unicast burst and the primary multicast stream, which has to be + repaired later or, in the absence of repair, will result in loss + being experienced by the application. + + In addition to the above, there are some other protocol design issues + to be considered. First, there is at least one RTT of "slop" in the + control loop. In starting a rapid acquisition burst, this manifests + as the time between the client requesting the unicast burst and the + burst description and/or the first unicast burst packets arriving at + + + +Ver Steeg, et al. Standards Track [Page 11] + +RFC 6285 RAMS June 2011 + + + the receiver. For managing and terminating the unicast burst, there + are two possible approaches for the control loop. First, the + receiver can adapt to the unicast burst as received, converge based + on observation, and explicitly terminate the unicast burst with a + second control loop exchange (which takes a minimum of one RTT, just + as starting the unicast burst does). Alternatively, the server + generating the unicast burst can precompute the burst parameters + based on the information in the initial request and tell the receiver + the burst duration. + + The protocol described in the next section allows either method of + controlling the rapid acquisition unicast burst. + +6. Rapid Acquisition of Multicast RTP Sessions (RAMS) + + We start this section with an overview of the Rapid Acquisition of + Multicast RTP Sessions (RAMS) method. + +6.1. Overview + + [RFC5760] specifies an extension to the RTP Control Protocol (RTCP) + to use unicast feedback in an SSM session. It defines an + architecture that introduces the concept of Distribution Source, + which, in an SSM context, distributes the RTP data and redistributes + RTCP information to all RTP receivers. This RTCP information is + retrieved from the Feedback Target, to which RTCP unicast feedback + traffic is sent. One or more entities different from the + Distribution Source MAY implement the feedback target functionality, + and different RTP receivers MAY use different feedback targets. + + This document builds further on these concepts to reduce the + acquisition delay when an RTP receiver joins a multicast session at a + random point in time by introducing the concept of the Burst Source + and new RTCP feedback messages. The Burst Source has a cache where + the most recent packets from the primary multicast RTP session are + continuously stored. When an RTP receiver wants to receive a primary + multicast stream, it can first request a unicast burst from the Burst + Source before it joins the SSM session. In this burst, the packets + are formatted as RTP retransmission packets [RFC4588] and carry + Reference Information. This information allows the RTP receiver to + start usefully consuming the RTP packets sent in the primary + multicast RTP session. + + Using an accelerated bitrate (as compared to the nominal bitrate of + the primary multicast stream) for the unicast burst implies that at a + certain point in time, the payload transmitted in the unicast burst + is going to be the same as the payload in the associated multicast + stream, i.e., the unicast burst will catch up with the primary + + + +Ver Steeg, et al. Standards Track [Page 12] + +RFC 6285 RAMS June 2011 + + + multicast stream. At this point, the RTP receiver no longer needs to + receive the unicast burst and can join the SSM session. This method + is referred to as the Rapid Acquisition of Multicast RTP Sessions + (RAMS). + + This document defines extensions to [RFC4585] for an RTP receiver to + request a unicast burst as well as for additional control messaging + that can be leveraged during the acquisition process. + +6.2. Message Flows + + As shown in Figure 2, the main entities involved in rapid acquisition + and the message flows are: + + o Multicast Source + + o Feedback Target (FT) + + o Burst/Retransmission Source (BRS) + + o RTP Receiver (RTP_Rx) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 13] + +RFC 6285 RAMS June 2011 + + + ----------- -------------- + | |------------------------------------>| | + | |.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.->| | + | | | | + | Multicast | ---------------- | | + | Source | | Retransmission | | | + | |-------->| Server (RS) | | | + | |.-.-.-.->| | | | + | | | ------------ | | | + ----------- | | Feedback | |<.=.=.=.=.| | + | | Target (FT)| |<~~~~~~~~~| RTP Receiver | + PRIMARY MULTICAST | ------------ | | (RTP_Rx) | + RTP SESSION with | | | | + UNICAST FEEDBACK | | | | + | | | | + - - - - - - - - - - - |- - - - - - - - |- - - - - |- - - - - - - |- - + | | | | + UNICAST BURST | ------------ | | | + (or RETRANSMISSION) | | Burst/ | |<~~~~~~~~>| | + RTP SESSION | | Retrans. | |.........>| | + | |Source (BRS)| |<.=.=.=.=>| | + | ------------ | | | + | | | | + ---------------- -------------- + + -------> Multicast RTP Flow + .-.-.-.> Multicast RTCP Flow + .=.=.=.> Unicast RTCP Reports + ~~~~~~~> Unicast RTCP Feedback Messages + .......> Unicast RTP Flow + + Figure 2: Flow Diagram for Unicast-Based Rapid Acquisition + + As defined in [RFC5760], the feedback target (FT) is the entity to + which the RTP_Rx sends its RTCP feedback messages indicating packet + loss by means of an RTCP NACK message or indicating RTP_Rx's desire + to rapidly acquire the primary multicast RTP session by means of an + RTCP feedback message defined in this document. While the Burst/ + Retransmission Source (BRS) is responsible for responding to these + messages and for further RTCP interaction with the RTP_Rx in the case + of a rapid acquisition process, it is assumed in the remainder of + this document that these two logical entities (FT and BRS) are + combined in a single physical entity and they share state. In the + remainder of the text, the term Retransmission Server (RS) is used + whenever appropriate, to refer to this single physical entity. + + + + + + +Ver Steeg, et al. Standards Track [Page 14] + +RFC 6285 RAMS June 2011 + + + The FT is involved in the primary multicast RTP session and receives + unicast feedback for that session as in [RFC5760]. The BRS is + involved in the unicast burst (or retransmission) RTP session and + transmits the unicast burst and retransmission packets formatted as + RTP retransmission packets [RFC4588] in a single separate unicast RTP + session to each RTP_Rx. In the unicast burst RTP session, as in any + other RTP session, the BRS and RTP_Rx regularly send the periodic + sender and receiver reports, respectively. + + The unicast burst is started by an RTCP feedback message that is + defined in this document based on the common packet format provided + in [RFC4585]. An RTP retransmission is triggered by an RTCP NACK + message defined in [RFC4585]. Both of these messages are sent to the + FT of the primary multicast RTP session and can start the unicast + burst/retransmission RTP session. + + In the extended RTP profile for RTCP-based feedback (RTP/Audio-Visual + Profile with Feedback (AVPF)), there are certain rules that apply to + scheduling of both of these messages sent to the FT in the primary + multicast RTP session; these are detailed in Section 3.5 of + [RFC4585]. One of the rules states that in a multi-party session + such as the SSM sessions we are considering in this specification, an + RTP_Rx cannot send an RTCP feedback message for a minimum of one + second after joining the session (i.e., Tmin=1.0 second). While this + rule has the goal of avoiding problems associated with flash crowds + in typical multi-party sessions, it defeats the purpose of rapid + acquisition. Furthermore, when RTP receivers delay their messages + requesting a burst by a deterministic or even a random amount, it + still does not make a difference since such messages are not related + and their timings are independent from each other. Thus, in this + specification, we initialize Tmin to zero and allow the RTP receivers + to send a burst request message right at the beginning. For the + subsequent messages (e.g., updated requests) during rapid + acquisition, the timing rules of [RFC4585] still apply. + + Figure 3 depicts an example of messaging flow for rapid acquisition. + The RTCP feedback messages are explained below. The optional + messages are indicated in parentheses, and they might or might not be + present during rapid acquisition. In a scenario where rapid + acquisition is performed by a feedback target co-located with the + media sender, the same method (with the identical message flows) + still applies. + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 15] + +RFC 6285 RAMS June 2011 + + + ------------------------- + | Retransmission Server | + ----------- | ------ ------------ | -------- ------------ + | Multicast | | | FT | | Burst/Ret. | | | | | RTP | + | Source | | | | | Source | | | Router | | Receiver | + | | | ------ ------------ | | | | (RTP_Rx) | + ----------- | | | | -------- ------------ + | ------------------------- | | + | | | | | + |-- RTP Multicast ---------->--------------->| | + |-. RTCP Multicast -.-.-.-.->-.-.-.-.-.-.-.->| | + | | | | | + | | |********************************| + | | |* PORT MAPPING SETUP *| + | | |********************************| + | | | | | + | |<~~~~~~~~~~~~~~~~~~~~~~~~~ RTCP RAMS-R ~~~| + | | | | | + | | |********************************| + | | |* UNICAST SESSION ESTABLISHED *| + | | |********************************| + | | | | | + | | |~~~ RTCP RAMS-I ~~~~~~~~~~~~~~~>| + | | | | | + | | |... Unicast RTP Burst .........>| + | | | | | + | |<~~~~~~~~~~~~~~~~~~~~~~~~ (RTCP RAMS-R) ~~| + | | | | | + | | |~~ (RTCP RAMS-I) ~~~~~~~~~~~~~~>| + | | | | | + | | | | | + | | | |<= SFGMP Join ==| + | | | | | + |-- RTP Multicast ------------------------------------------->| + |-. RTCP Multicast -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.>| + | | | | | + | | | | | + | | |<~~~~~~~~~~~~~~~ RTCP RAMS-T ~~~| + | | | | | + : : : : : + | | |<.=.= Unicast RTCP Reports .=.=>| + : : : for the unicast session : + | | | | | + + + + + + + + +Ver Steeg, et al. Standards Track [Page 16] + +RFC 6285 RAMS June 2011 + + + -------> Multicast RTP Flow + .-.-.-.> Multicast RTCP Flow + .=.=.=.> Unicast RTCP Reports + ~~~~~~~> Unicast RTCP Feedback Messages + =======> SFGMP Messages + .......> Unicast RTP Flow + + Figure 3: Message Flows for Unicast-Based Rapid Acquisition + + This document defines the expected behaviors of the RS and RTP_Rx. + It is instructive to consider independently operating implementations + on the RS and RTP_Rx that request the burst, describe the burst, + start the burst, join the multicast session, and stop the burst. + These implementations send messages to each other, but provisions are + needed for the cases where the control messages get lost, or + reordered, or are not being delivered to their destinations. + + The following steps describe rapid acquisition in detail: + + 1. Port Mapping Setup: For the primary multicast RTP session, the + RTP and RTCP destination ports are declaratively specified + (refer to Section 8 for examples in SDP). However, the RTP_Rx + needs to choose its RTP and RTCP receive ports for the unicast + burst RTP session. Since this unicast session is established + after the RTP_Rx has sent a RAMS Request (RAMS-R) message as + unicast feedback in the primary multicast RTP session, the + RTP_Rx MUST first set up the port mappings between the unicast + and multicast sessions and send this mapping information to the + FT along with the RAMS-R message so that the BRS knows how to + communicate with the RTP_Rx. + + The details of this setup procedure are explained in [RFC6284]. + Other NAT-related issues are left to Section 9 to keep the + present discussion focused on the RAMS message flows. + + 2. Request: The RTP_Rx sends a rapid acquisition request (RAMS-R) + for the primary multicast RTP session to the unicast feedback + target of that session. The request contains the SSRC + identifier of the RTP_Rx (aka SSRC of packet sender) and can + contain the media sender SSRC identifier(s) of the primary + multicast stream(s) of interest (aka SSRC of media source). The + RAMS-R message can contain parameters that constrain the burst, + such as the buffer and bandwidth limits. + + Before joining the SSM session, the RTP_Rx learns the addresses + for the multicast source, group, and RS by out-of-band means. + If the RTP_Rx desires to rapidly acquire only a subset of the + primary multicast streams available in the primary multicast RTP + + + +Ver Steeg, et al. Standards Track [Page 17] + +RFC 6285 RAMS June 2011 + + + session, the RTP_Rx MUST also acquire the SSRC identifiers for + the desired RTP streams out-of-band. Based on this information, + the RTP_Rx populates the desired SSRC(s) in the RAMS-R message. + + When the FT successfully receives the RAMS-R message, the BRS + responds to it by accepting or rejecting the request. + Immediately before the BRS sends any RTP or RTCP packet(s) + described below, it establishes the unicast burst RTP session. + + 3. Response: The BRS sends RAMS Information (RAMS-I) message(s) to + the RTP_Rx to convey the status for the burst(s) requested by + the RTP_Rx. + + If the primary multicast RTP session associated with the FT_Ap + (a specific feedback target running on a particular address and + port) on which the RAMS-R message was received contains only a + single primary multicast stream, the BRS SHALL always use the + SSRC of the RTP stream associated with the FT_Ap in the RAMS-I + message(s) regardless of the media sender SSRC requested in the + RAMS-R message. In such cases the 'ssrc' attribute MAY be + omitted from the media description. If the requested SSRC and + the actual media sender SSRC do not match, the BRS MUST + explicitly populate the correct media sender SSRC in the initial + RAMS-I message (see Section 7.3). + + The FT_Ap could also be associated with an RTP session that + carries two or more primary multicast streams. If the RTP_Rx + wants to issue a collective request to receive the whole primary + multicast RTP session, it does not need the 'ssrc' attributes to + be described in the media description. + + If the FT_Ap is associated with two or more RTP sessions, + RTP_Rx's request will be ambiguous. To avoid any ambiguity, + each FT_Ap MUST be only associated with a single RTP session. + + If the RTP_Rx is willing to rapidly acquire only a subset of the + primary multicast streams, the RTP_Rx MUST list all the media + sender SSRC(s) denoting the stream(s) it wishes to acquire in + the RAMS-R message. Upon receiving such a message, the BRS MAY + accept the request for all or a subset of the media sender + SSRC(s) that match the RTP stream(s) it serves. The BRS MUST + reject all other requests with an appropriate response code. + + * Reject Responses: The BRS MUST take into account any + limitations that may have been specified by the RTP_Rx in the + RAMS-R message when making a decision regarding the request. + If the RTP_Rx has requested to acquire the whole primary + multicast RTP session but the BRS cannot provide a rapid + + + +Ver Steeg, et al. Standards Track [Page 18] + +RFC 6285 RAMS June 2011 + + + acquisition service for any of the primary multicast streams, + the BRS MUST reject the request via a single RAMS-I message + with a collective reject response code, which is defined as + 510 in Section 11.6 and whose media sender SSRC field is set + to one of SSRCs served by this FT_Ap. Upon receiving this + RAMS-I message, the RTP_Rx abandons the rapid acquisition + attempt and can immediately join the multicast session by + sending an SFGMP Join message towards its upstream multicast + router. + + In all other cases, the BRS MUST send a separate RAMS-I + message with the appropriate 5xx-level response code (as + defined in Section 11.6) for each primary multicast stream + that has been requested by the RTP_Rx but cannot be served by + the BRS. There could be multiple reasons why the BRS has + rejected the request; however, the BRS chooses the most + appropriate response code to inform the RTP_Rx. + + Upon receiving a reject response indicating a transient + problem such as insufficient BRS or network resources, if the + RTP_Rx wants to retry sending the same request, the RTP_Rx + MUST follow the RTCP timer rules of [RFC4585] to allow the + transient problems to go away. However, if the reject + response indicates a non-transient problem (such as the ones + reported by response codes 504, 505, and 506), the RTP_Rx + MUST NOT attempt a retry. Different response codes have + different scopes. Refer to Section 7.3.1 for details. + + The BRS can employ a policing mechanism against the broken + RTP_Rx implementations that are not following these rules. + See Section 10 for details. + + * Accept Responses: The BRS MUST send at least one separate + RAMS-I message with the appropriate response code (either + zero indicating a private response or response code 200 + indicating success as listed in Section 11.6) for each + primary multicast stream that has been requested by the + RTP_Rx and will be served by the BRS. Such RAMS-I messages + comprise fields that can be used to describe the individual + unicast burst streams. When there is a RAMS-R request for + multiple primary multicast streams, the BRS MUST include all + the individual RAMS-I messages corresponding to that RAMS-R + request in the same compound RTCP packet if these messages + fit in the same packet. Note that if the BRS is sending only + the preamble information but not the whole unicast burst + stream, it will not accept the request but will send a + response code 511 instead, as defined in Section 11.6. + + + + +Ver Steeg, et al. Standards Track [Page 19] + +RFC 6285 RAMS June 2011 + + + The RAMS-I message carries the RTP sequence number of the + first packet transmitted in the respective RTP stream to + allow the RTP_Rx to detect any missing initial packet(s). + When the BRS accepts a request for a primary multicast + stream, this field MUST always be populated in the RAMS-I + message(s) sent for this particular primary multicast stream. + It is RECOMMENDED that the BRS sends a RAMS-I message at the + start of the burst so that the RTP_Rx can quickly detect any + missing initial packet(s). + + It is possible that the RAMS-I message for a primary multicast + stream can get delayed or lost, and the RTP_Rx can start + receiving RTP packets before receiving a RAMS-I message. An + RTP_Rx implementation MUST NOT assume it will quickly receive + the initial RAMS-I message. For redundancy purposes, it is + RECOMMENDED that the BRS repeats the RAMS-I messages multiple + times as long as it follows the RTCP timer rules defined in + [RFC4585]. + + 4. Unicast Burst: For the primary multicast stream(s) for which + the request is accepted, the BRS starts sending the unicast + burst(s) that comprises one or more RTP retransmission packets + sent in the unicast burst RTP session. In some applications, + the BRS can send preamble information data to the RTP_Rx in + addition to the requested burst to prime the media decoder(s). + However, for the BRS to send the preamble information in a + particular format, explicit signaling from the RTP_Rx is + required. In other words, the BRS MUST NOT send preamble + information in a particular format unless the RTP_Rx has + signaled support for that format in the RAMS-R message through a + public or private extension as defined in Section 7.1. + + The format of this preamble data is RTP-payload specific and not + specified here. + + 5. Updated Request: The RTP_Rx MAY send an updated RAMS-R message + (as unicast feedback in the primary multicast RTP session) with + a different value for one or more fields of an earlier RAMS-R + message. The BRS MUST be able to detect whether a burst is + already planned for or being transmitted to this particular + RTP_Rx for this particular media sender SSRC. If there is an + existing burst planned for or being transmitted, the newly + arriving RAMS-R is an updated request; otherwise, it is a new + request. It is also possible that the RTP_Rx has sent an + improperly formatted RAMS-R message or used an invalid value in + the RAMS-R message. If notified by the BRS using a 4xx-level + + + + + +Ver Steeg, et al. Standards Track [Page 20] + +RFC 6285 RAMS June 2011 + + + response code (as defined in Section 11.6) and only after + following the timing rules of [RFC4585], the RTP_Rx MAY resend + its corrected request. + + The BRS determines the identity of the requesting RTP_Rx by + looking at its canonical name identifier (CNAME item in the + source description (SDES)). Thus, the RTP_Rx MUST choose a + method that ensures it uses a unique CNAME identifier. Such + methods are provided in [RFC6222]. In addition to one or more + fields with updated values, an updated RAMS-R message may also + include the fields whose values did not change. + + Upon receiving an updated request, the BRS can use the updated + values for sending/shaping the burst or refine the values and + use the refined values for sending/shaping the burst. + Subsequently, the BRS MAY send an updated RAMS-I message in the + unicast burst RTP session to indicate the changes it made. + + It is an implementation-dependent decision for an RTP_RX whether + and when to send an updated request. However, note that the + updated request messages can get delayed and arrive at the BRS + after the initial unicast burst was completed. In this case, + the updated request message can trigger a new unicast burst, and + by then if the RTP_Rx has already started receiving multicast + data, a congestion is likely to occur. In this case, the RTP_Rx + can detect this only after a delay, and then it can try to + terminate the new burst. However, in the meantime, the RTP_Rx + can experience packet loss or other problems. This and other + similar corner cases SHOULD be carefully examined if updated + requests are to be used. + + 6. Updated Response: The BRS can send more than one RAMS-I message + in the unicast burst RTP session, e.g., to update the value of + one or more fields in an earlier RAMS-I message. The updated + RAMS-I messages might or might not be a direct response to a + RAMS-R message. The BRS can also send updated RAMS-I messages + to signal the RTP_Rx in real time to join the SSM session when + the BRS had already sent an initial RAMS-I message, e.g., at the + start of the burst. The RTP_Rx depends on the BRS to learn the + join time, which can be conveyed by the first RAMS-I message or + can be sent/revised in a later RAMS-I message. If the BRS is + not capable of determining the join time in the initial RAMS-I + message, the BRS MUST send another RAMS-I message (with the join + time information) later. + + 7. Multicast Join Signaling: The RAMS-I message allows the BRS to + signal explicitly when the RTP_Rx needs to send the SFGMP Join + message. The RTP_Rx SHOULD use this information from the most + + + +Ver Steeg, et al. Standards Track [Page 21] + +RFC 6285 RAMS June 2011 + + + recent RAMS-I message unless it has more accurate information. + If the request is accepted, this information MUST be conveyed in + at least one RAMS-I message, and its value MAY be updated by + subsequent RAMS-I messages. + + There can be missing packets if the RTP_Rx joins the multicast + session too early or too late. For example, if the RTP_Rx + starts receiving the primary multicast stream while it is still + receiving the unicast burst at a high excess bitrate, this can + result in an increased risk of packet loss. Or, if the RTP_Rx + joins the multicast session some time after the unicast burst is + finished, there can be a gap between the burst and multicast + data (a number of RTP packets might be missing). In both cases, + the RTP_Rx can issue retransmission requests (via RTCP NACK + messages sent as unicast feedback in the primary multicast RTP + session) [RFC4585] to the FT entity of the RS to fill the gap. + The BRS might or might not respond to such requests. When it + responds and the response causes significant changes in one or + more values reported earlier to the RTP_Rx, an updated RAMS-I + SHOULD be sent to the RTP_Rx. + + 8. Multicast Receive: After the join, the RTP_Rx starts receiving + the primary multicast stream(s). + + 9. Terminate: The BRS can know when it needs to ultimately stop + the unicast burst based on its parameters. However, the RTP_Rx + may need to ask the BRS to terminate the burst prematurely or at + a specific sequence number. For this purpose, the RTP_Rx uses + the RAMS Termination (RAMS-T) message sent as RTCP feedback in + the unicast burst RTP session. A separate RAMS-T message is + sent for each primary multicast stream served by the BRS unless + an RTCP BYE message has been sent in the unicast burst RTP + session as described in Step 10. For the burst requests that + were rejected by the BRS, there is no need to send a RAMS-T + message. + + If the RTP_Rx wants to terminate a burst prematurely, it MUST + send a RAMS-T message for the SSRC of the primary multicast + stream it wishes to terminate. This message is sent in the + unicast burst RTP session. Upon receiving this message, the BRS + MUST terminate the unicast burst. If the RTP_Rx requested to + acquire the entire primary multicast RTP session but wants to + terminate this request before it learns the individual media + sender SSRC(s) via RAMS-I message(s) or RTP packets, the RTP_Rx + cannot use RAMS-T message(s) and thus MUST send an RTCP BYE + message in the unicast burst RTP session to terminate the + request. + + + + +Ver Steeg, et al. Standards Track [Page 22] + +RFC 6285 RAMS June 2011 + + + Otherwise, the default behavior for the RTP_Rx is to send a + RAMS-T message in the unicast burst RTP session immediately + after it joins the multicast session and has started receiving + multicast packets. In that case, the RTP_Rx MUST send a RAMS-T + message with the sequence number of the first RTP packet + received in the primary multicast stream. Then, the BRS MUST + terminate the respective burst after it sends the unicast burst + packet whose Original Sequence Number (OSN) field in the RTP + retransmission payload header matches this number minus one. If + the BRS has already sent that unicast burst packet when the + RAMS-T message arrives, the BRS MUST terminate the respective + burst immediately. + + If an RTCP BYE message has not been issued yet as described in + Step 10, the RTP_Rx MUST send at least one RAMS-T message for + each primary multicast stream served by the BRS. The RAMS-T + message(s) MUST be sent to the BRS in the unicast burst RTP + session. Against the possibility of a message loss, it is + RECOMMENDED that the RTP_Rx repeats the RAMS-T messages multiple + times as long as it follows the RTCP timer rules defined in + [RFC4585]. + + The binding between RAMS-T and ongoing bursts is achieved + through RTP_Rx's CNAME identifier and packet sender and media + sender SSRCs. Choosing a globally unique CNAME makes sure that + the RAMS-T messages are processed correctly. + + 10. Terminate with RTCP BYE: When the RTP_Rx is receiving one or + more burst streams, if the RTP_Rx becomes no longer interested + in acquiring any of the primary multicast streams, the RTP_Rx + SHALL issue an RTCP BYE message for the unicast burst RTP + session and another RTCP BYE message for the primary multicast + RTP session. These RTCP BYE messages are sent to the BRS and FT + logical entities, respectively. + + Upon receiving an RTCP BYE message, the BRS MUST terminate the + rapid acquisition operation and cease transmitting any further + burst packets and retransmission packets. If support for + [RFC5506] has been signaled, the RTCP BYE message MAY be sent in + a reduced-size RTCP packet. Otherwise, Section 6.1 of [RFC3550] + mandates the RTCP BYE message always be sent with a sender or + receiver report in a compound RTCP packet. If no data has been + received, an empty receiver report MUST be still included. With + the information contained in the receiver report, the RS can + figure out how many duplicate RTP packets have been delivered to + the RTP_Rx (note that this will be an upper-bound estimate as + one or more packets might have been lost during the burst + + + + +Ver Steeg, et al. Standards Track [Page 23] + +RFC 6285 RAMS June 2011 + + + transmission). The impact of duplicate packets and measures + that can be taken to minimize the impact of receiving duplicate + packets will be addressed in Section 6.4. + + Since an RTCP BYE message issued for the unicast burst RTP + session terminates that session and ceases transmitting any + further packets in that session, there is no need for sending + explicit RAMS-T messages, which would only terminate their + respective bursts. + + For the purpose of gathering detailed information about RTP_Rx's + rapid acquisition experience, [MULTICAST-ACQ] defines an RTCP + Extended Report (XR) Block. This report is designed to be payload- + independent; thus, it can be used by any multicast application that + supports rapid acquisition. + +6.3. Synchronization of Primary Multicast Streams + + When an RTP_RX acquires multiple primary multicast streams, it might + need to synchronize them for playout. This synchronization is + achieved by the help of the RTCP sender reports [RFC3550]. If the + playout will start before the RTP_Rx has joined the multicast + session, the RTP_Rx needs to receive the information reflecting the + synchronization among the primary multicast streams early enough so + that it can play out the media in a synchronized fashion. + + The suggested approach is to use the RTP header extension mechanism + [RFC5285] and convey the synchronization information in a header + extension as defined in [RFC6051]. Per [RFC4588], "if the original + RTP header carried an RTP header extension, the retransmission packet + SHOULD carry the same header extension". Thus, as long as the + multicast source emits a header extension with the synchronization + information frequently enough, there is no additional task that needs + to be carried out by the BRS. The synchronization information will + be sent to the RTP_Rx along with the burst packets. The frequent + header extensions sent in the primary multicast RTP sessions also + allow rapid synchronization of the RTP streams for the RTP receivers + that do not support RAMS or that directly join the multicast session + without running RAMS. Thus, in RAMS applications, it is RECOMMENDED + that the multicast sources frequently send synchronization + information by using header extensions following the rules presented + in [RFC6051]. The regular sender reports are still sent in the + unicast session by following the rules of [RFC3550]. + + + + + + + + +Ver Steeg, et al. Standards Track [Page 24] + +RFC 6285 RAMS June 2011 + + +6.4. Burst Shaping and Congestion Control in RAMS + + This section provides informative guidelines about how the BRS can + shape the transmission of the unicast burst and how congestion can be + dealt with in the RAMS process. When the RTP_Rx detects that the + unicast burst is causing severe congestion, it can prefer to send a + RAMS-T message immediately to stop the unicast burst. + + A higher bitrate for the unicast burst naturally conveys the + Reference Information and media content to the RTP_Rx faster. This + way, the RTP_Rx can start consuming the data sooner, which results in + a faster acquisition. A higher bitrate also represents a better + utilization of the BRS resources. As the burst may continue until it + catches up with the primary multicast stream, the higher the bursting + bitrate, the less data the BRS needs to transmit. However, a higher + bitrate for the burst also increases the chances for congestion- + caused packet loss. Thus, as discussed in Section 5, there has to be + an upper bound on the bandwidth used by the burst. + + When the BRS transmits the unicast burst, it is expected to take into + account all available information to prevent any packet loss that + might take place during the bursting as a result of buffer overflow + on the path between the RS and RTP_Rx and at the RTP_Rx itself. The + bursting bitrate can be determined by taking into account the + following information, when available: + + (a) Information obtained via the RAMS-R message, such as Max RAMS + Buffer Fill Requirement and/or Max Receive Bitrate (see + Section 7.2). + + (b) Information obtained via RTCP receiver reports provided by the + RTP_Rx in the retransmission session, allowing in-session + bitrate adaptations for the burst. When these receiver reports + indicate packet loss, this can indicate a certain congestion + state in the path from the RS to the RTP_Rx. + + (c) Information obtained via RTCP NACKs provided by the RTP_Rx in + the primary multicast RTP session, allowing in-session bitrate + adaptations for the burst. Such RTCP NACKs are transmitted by + the RTP_Rx in response to packet loss detection in the burst. + NACKs can indicate a certain congestion state on the path from + the RS to RTP_Rx. + + (d) There can be other feedback received from the RTP_Rx, e.g., in + the form of Explicit Congestion Notification - Congestion + Experienced (ECN-CE) markings [ECN-FOR-RTP] that can influence + in-session bitrate adaptation. + + + + +Ver Steeg, et al. Standards Track [Page 25] + +RFC 6285 RAMS June 2011 + + + (e) Information obtained via updated RAMS-R messages, allowing in- + session bitrate adaptations, if supported by the BRS. + + (f) Transport protocol-specific information. For example, when + Datagram Congestion Control Protocol (DCCP) is used to transport + the RTP burst, the ACKs from the DCCP client can be leveraged by + the BRS / DCCP server for burst shaping and congestion control. + + (g) Preconfigured settings for each RTP_Rx or a set of RTP_Rxs that + indicate the upper-bound bursting bitrates for which no packet + loss will occur as a result of congestion along the path of the + RS to RTP_Rx. For example, in managed IPTV networks, where the + bottleneck bandwidth along the end-to-end path is known and + where the network between the RS and this link is provisioned + and dimensioned to carry the burst streams, the bursting bitrate + does not exceed the provisioned value. These settings can also + be dynamically adapted using application-aware knowledge. + + The BRS chooses the initial burst bitrate as follows: + + o When using RAMS in environments as described in (g), the BRS MUST + transmit the burst packets at an initial bitrate higher than the + nominal bitrate but within the engineered or reserved bandwidth + limit. + + o When the BRS cannot determine a reliable bitrate value for the + unicast burst (using (a) through (g)), it is desirable for the BRS + to choose an appropriate initial bitrate not above the nominal + bitrate and increase it gradually unless a congestion is detected. + + In both cases, during the burst transmission, the BRS MUST + continuously monitor for packet losses as a result of congestion by + means of one or more of the mechanisms described in (b) through (f). + When the BRS relies on RTCP receiver reports, sufficient bandwidth + needs to be provided to RTP_Rx for RTCP transmission in the unicast + burst RTP session. To achieve a reasonable fast adaptation against + congestion, it is recommended that the RTP_Rx sends a receiver report + at least once every two RTTs between the RS and RTP_Rx. Although the + specific heuristics and algorithms that deduce a congestion state and + how the BRS acts subsequently are outside the scope of this + specification, the following two methods are the best practices: + + o Upon detection of a significant amount of packet loss, which the + BRS attributes to congestion, the BRS decreases the burst bitrate. + The rate by which the BRS increases and decreases the bitrate for + the burst can be determined by a TCP-friendly bitrate adaptation + algorithm for RTP over UDP or, in the case of (f), by the + congestion control algorithms defined in DCCP [RFC5762]. + + + +Ver Steeg, et al. Standards Track [Page 26] + +RFC 6285 RAMS June 2011 + + + o If the congestion is persistent and the BRS has to reduce the + burst bitrate to a point where the RTP_Rx buffer might underrun or + the burst will consume too many resources, the BRS terminates the + burst and transmits a RAMS-I message to RTP_Rx with the + appropriate response code. It is then up to RTP_Rx to decide when + to join the multicast session. + + Even though there is no congestion experienced during the burst, + congestion may anyway arise near the end of the burst as the RTP_Rx + eventually needs to join the multicast session. During this brief + period, both the burst packets and the multicast packets can be + simultaneously received by the RTP_Rx, thus enhancing the risk of + congestion. + + Since the BRS signals the RTP_Rx when the BRS expects the RTP_Rx to + send the SFGMP Join message, the BRS can have a rough estimate of + when the RTP_Rx will start receiving multicast packets in the SSM + session. The BRS can keep on sending burst packets but reduces the + bitrate accordingly at the appropriate instant by taking the bitrate + of the whole SSM session into account. If the BRS ceases + transmitting the burst packets before the burst catches up, any gap + resulting from this imperfect switch-over by the RTP_Rx can be later + repaired by requesting retransmissions for the missing packets from + the RS. The retransmissions can be shaped by the BRS to make sure + that they do not cause collateral loss in the primary multicast RTP + session and the unicast burst RTP session. + +6.5. Failure Cases + + In this section, we examine the implications of losing the RAMS-R, + RAMS-I, or RAMS-T messages and other failure cases. + + When the RTP_Rx sends a RAMS-R message to initiate a rapid + acquisition but the message gets lost and the FT does not receive it, + the RTP_Rx will get neither a RAMS-I message nor a unicast burst. In + this case, the RTP_Rx MAY resend the request when it is eligible to + do so based on the RTCP timer rules defined in [RFC4585]. Or, after + a reasonable amount of time, the RTP_Rx can time out (based on the + previous observed response times) and immediately join the SSM + session. + + In the case where RTP_Rx starts receiving a unicast burst but does + not receive a corresponding RAMS-I message within a reasonable amount + of time, the RTP_Rx can either discard the burst data or decide not + to interrupt the unicast burst and be prepared to join the SSM + session at an appropriate time it determines or as indicated in a + subsequent RAMS-I message (if available). If the network is subject + + + + +Ver Steeg, et al. Standards Track [Page 27] + +RFC 6285 RAMS June 2011 + + + to packet loss, it is RECOMMENDED that the BRS repeats the RAMS-I + messages multiple times based on the RTCP timer rules defined in + [RFC4585]. + + In the failure cases where the RAMS-I message is lost or the RAMS-R + message is lost and the RTP_Rx gives up, the RTP_Rx MUST still + terminate the burst(s) it requested by following the rules described + in Section 6.2. + + In the case where a RAMS-T message sent by the RTP_Rx does not reach + its destination, the BRS can continue sending burst packets even + though the RTP_Rx no longer needs them. If an RTP_Rx is receiving + burst packets it no longer needs after sending a RAMS-T message, it + is RECOMMENDED that the RTP_Rx repeats the RAMS-T message multiple + times based on the RTCP timer rules defined in [RFC4585]. The BRS + MUST be provisioned to terminate the burst when it can no longer send + the burst packets faster than it receives the primary multicast + stream packets. + + Section 6.3.5 of [RFC3550] explains the rules pertaining to timing + out an SSRC. When the BRS accepts to serve the requested burst(s) + and establishes the retransmission session, the BRS needs to check + the liveness of the RTP_Rx via the RTCP messages and reports the + RTP_Rx sends. The default rules explained in [RFC3550] apply in RAMS + as well. + +7. Encoding of the Signaling Protocol in RTCP + + This section defines the formats of the RTCP transport-layer feedback + messages that are exchanged between the retransmission server (RS) + and RTP receiver (RTP_Rx) during rapid acquisition. These messages + are referred to as the RAMS Messages. They are payload-independent + and MUST be used by all RTP-based multicast applications that support + rapid acquisition regardless of the payload they carry. + + Payload-specific feedback messages are not defined in this document. + However, further optional payload-independent and payload-specific + information can be included in the exchange. + + The common packet format for the RTCP feedback messages is defined in + Section 6.1 of [RFC4585] and is also sketched in Figure 4. + + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 28] + +RFC 6285 RAMS June 2011 + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + |V=2|P| FMT | PT | length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SSRC of packet sender | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SSRC of media source | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + : Feedback Control Information (FCI) : + : : + + Figure 4: The Common Packet Format for the RTCP Feedback Messages + + Each feedback message has a fixed-length field for version, padding, + feedback message type (FMT), packet type (PT), length, SSRC of packet + sender, SSRC of media source, and a variable-length field for + feedback control information (FCI). + + In the RAMS messages, the PT field is set to RTPFB (205) and the FMT + field is set to RAMS (6). Individual RAMS messages are identified by + a sub-field called sub-feedback message type (SFMT). Any Reserved + field SHALL be set to zero and ignored. + + Depending on the specific scenario and timeliness/importance of a + RAMS message, it can be desirable to send it in a reduced-size RTCP + packet [RFC5506]. However, unless support for [RFC5506] has been + signaled, compound RTCP packets MUST be used by following [RFC3550] + rules. + + Following the rules specified in [RFC3550], all integer fields in the + messages defined below are carried in network-byte order, that is, + most significant byte (octet) first, also known as big-endian. + Unless otherwise stated, numeric constants are in decimal (base 10). + +7.1. Extensions + + To improve the functionality of the RAMS method in certain + applications, it can be desirable to define new fields in the RAMS + Request, Information, and Termination messages. Such fields MUST be + encoded as Type-Length-Value (TLV) elements as described below and + sketched in Figure 5: + + o Type: A single-octet identifier that defines the type of the + parameter represented in this TLV element. + + + + + + +Ver Steeg, et al. Standards Track [Page 29] + +RFC 6285 RAMS June 2011 + + + o Length: A two-octet field that indicates the length (in octets) + of the TLV element excluding the Type and Length fields and the + 8-bit Reserved field between them. This length does not include + any padding that is required for alignment. + + o Value: Variable-size set of octets that contains the specific + value for the parameter. + + In the extensions, the Reserved field SHALL be set to zero and + ignored. If a TLV element does not fall on a 32-bit boundary, the + last word MUST be padded to the boundary using further bits set to + zero. + + An RTP_Rx or BRS MAY include vendor-neutral and private extensions in + any RAMS message. The RTP_Rx or BRS MUST place such extensions after + the mandatory fields and mandatory TLV elements (if any) and MAY + place such extensions in any order. The RTP_Rx or BRS MUST NOT + include multiple TLV elements with the same Type value in a RAMS + message. + + The support for extensions (unless specified otherwise) is OPTIONAL. + An RTP_Rx or BRS receiving a vendor-neutral or private extension that + it does not understand MUST ignore that extension. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Type | Reserved | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + : Value : + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 5: Structure of a TLV Element + +7.1.1. Vendor-Neutral Extensions + + If the goal in defining new TLV elements is to extend the + functionality in a vendor-neutral manner, they MUST be registered + with IANA through the guidelines provided in Section 11.5. + + The current document defines several vendor-neutral extensions in the + subsequent sections. + +7.1.2. Private Extensions + + It is desirable to allow vendors to use private extensions in a TLV + format. For interoperability, such extensions must not collide with + each other. + + + +Ver Steeg, et al. Standards Track [Page 30] + +RFC 6285 RAMS June 2011 + + + A certain range of TLV Types (between and including 128 and 254 ) is + reserved for private extensions (refer to Section 11.5). IANA + management for these extensions is unnecessary, and they are the + responsibility of individual vendors. + + The structure that MUST be used for the private extensions is + depicted in Figure 6. Here, the enterprise numbers are as listed on + http://www.iana.org. This will ensure the uniqueness of the private + extensions and avoid any collision. + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Type | Reserved | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | Enterprise Number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + : Value : + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 6: Structure of a Private Extension + +7.2. RAMS Request + + The RAMS Request (RAMS-R) message is identified by SFMT=1. This + message is sent as unicast feedback in the primary multicast RTP + session by the RTP_Rx to request rapid acquisition of a primary + multicast RTP session or one or more primary multicast streams + belonging to the same primary multicast RTP session. In the RAMS-R + message, the RTP_Rx MUST set both the packet sender SSRC and media + sender SSRC fields to its own SSRC since the media sender SSRC may + not be known. The RTP_Rx MUST provide explicit signaling as + described below to request stream(s). This minimizes the chances of + accidentally requesting a wrong primary multicast stream. + + The FCI field MUST contain only one RAMS Request. The FCI field has + the structure depicted in Figure 7. + + The semantics of the RAMS-R message is independent of the payload + type carried in the primary multicast RTP session. + + + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 31] + +RFC 6285 RAMS June 2011 + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SFMT=1 | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + : Requested Media Sender SSRC(s) : + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + : Optional TLV-encoded Fields (and Padding, if needed) : + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 7: FCI Field Syntax for the RAMS Request Message + + o Requested Media Sender SSRC(s): Mandatory TLV element that lists + the media sender SSRC(s) requested by the RTP_Rx. The BRS MUST + ignore the media sender SSRC specified in the header of the RAMS-R + message. + + If the Length field is set to zero (i.e., no media sender SSRC is + listed), it means that the RTP_Rx is requesting to rapidly acquire + the entire primary multicast RTP session. Otherwise, the RTP_Rx + lists the individual media sender SSRCs in this TLV element and + sets the Length field of the TLV element to 4*n, where n is the + number of SSRC entries. + + Type: 1 + + o Min RAMS Buffer Fill Requirement (32 bits): Optional TLV element + that denotes the minimum milliseconds of data that the RTP_Rx + desires to have in its buffer before allowing the data to be + consumed by the application. + + The RTP_Rx can have knowledge of its buffering requirements. + These requirements can be application and/or device specific. For + instance, the RTP_Rx might need to have a certain amount of data + in its application buffer to handle transmission jitter and/or to + be able to support error-control methods. If the BRS is told the + minimum buffering requirement of the receiver, the BRS can tailor + the burst(s) more precisely, e.g., by choosing an appropriate + starting point. The methods used by the RTP_Rx to determine this + value are application specific and thus out of the scope of this + document. + + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 32] + +RFC 6285 RAMS June 2011 + + + If specified, the amount of backfill that will be provided by the + unicast bursts and any payload-specific information MUST NOT be + smaller than the specified value. Otherwise, the backfill will + not be able to build up the desired level of buffer at the RTP_Rx + and can cause buffer underruns. + + Type: 2 + + o Max RAMS Buffer Fill Requirement (32 bits): Optional TLV element + that denotes the maximum milliseconds of data that the RTP_Rx can + buffer without losing the data due to buffer overflow. + + The RTP_Rx can have knowledge of its buffering requirements. + These requirements can be application or device specific. For + instance, one particular RTP_Rx might have more physical memory + than another RTP_Rx and thus can buffer more data. If the BRS + knows the buffering ability of the receiver, the BRS can tailor + the burst(s) more precisely. The methods used by the receiver to + determine this value are application specific and thus out of the + scope of this document. + + If specified, the amount of backfill that will be provided by the + unicast bursts and any payload-specific information MUST NOT be + larger than this value. Otherwise, the backfill may cause buffer + overflows at the RTP_Rx. + + Type: 3 + + o Max Receive Bitrate (64 bits): Optional TLV element that denotes + the maximum bitrate (in bits per second) at which the RTP_Rx can + process the aggregation of the unicast burst(s) and any payload- + specific information that will be provided by the BRS. The limits + can include local receiver limits as well as network limits that + are known to the receiver. + + If specified, the total bitrate of the unicast burst(s) plus any + payload-specific information MUST NOT be larger than this value. + Otherwise, congestion and packet loss are more likely to occur. + + Type: 4 + + o Preamble-only Allowed (0 bits): Optional TLV element that + indicates that the RTP_Rx is willing to receive only the preamble + information for the desired primary multicast stream(s) in case + the BRS cannot send the unicast burst stream(s). (In such cases, + the BRS will not accept the request, but will send a response code + 511 in the RAMS-I message as defined in Section 11.6.) Note that + + + + +Ver Steeg, et al. Standards Track [Page 33] + +RFC 6285 RAMS June 2011 + + + the RTP_Rx signals the particular preamble format(s) it supports + through a public or a private extension in the same RAMS-R + message. + + If this TLV element does not exist in the RAMS-R message, the BRS + MUST NOT respond to the RAMS-R message by sending the preamble + information only. Since this TLV element does not carry a Value + field, the Length field MUST be set to zero. + + Type: 5 + + o Supported Enterprise Number(s): Optional TLV element that + indicates the enterprise number(s) that the RTP_Rx implementation + supports. Similar to the private extensions, the enterprise + numbers here are as listed on http://www.iana.org. This TLV + element, if exists, provides a hint to the BRS about which private + extensions the RTP_Rx can potentially support. Note that an + RTP_Rx does not necessarily support all the private extensions + under a particular enterprise number. Unless the BRS explicitly + knows which private extensions an RTP_Rx supports (through this or + some out-of-band means), the BRS SHOULD NOT use private extensions + in the RAMS-I messages. The BRS SHOULD rather use only vendor- + neutral extensions. The Length field of this TLV element is set + to 4*n, where n is the number of enterprise number entries. + + Type: 6 + +7.3. RAMS Information + + The RAMS Information (RAMS-I) message is identified by SFMT=2. This + message is used to describe the unicast burst that will be sent for + rapid acquisition. It also includes other useful information for the + RTP_Rx as described below. + + A separate RAMS-I message with the appropriate response code is sent + in the unicast burst RTP session by the BRS for each primary + multicast stream that has been requested by the RTP_Rx. In each of + these RAMS-I messages, the media sender SSRC and packet sender SSRC + fields are both set to the SSRC of the BRS, which equals the SSRC of + the respective primary multicast stream. + + The FCI field MUST contain only one RAMS Information message. The + FCI field has the structure depicted in Figure 8. + + The semantics of the RAMS-I message is independent of the payload + type carried in the primary multicast RTP session. + + + + + +Ver Steeg, et al. Standards Track [Page 34] + +RFC 6285 RAMS June 2011 + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SFMT=2 | MSN | Response | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + : Optional TLV-encoded Fields (and Padding, if needed) : + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 8: FCI Field Syntax for the RAMS Information Message + + A RAMS-I message has the following fields: + + o Message Sequence Number (MSN) (8 bits) : Mandatory field that + denotes the sequence number of the RAMS-I message for the + particular media sender SSRC specified in the message header. The + MSN value SHALL be set to zero when a new RAMS request is + received. During rapid acquisition, the same RAMS-I message MAY + be repeated for redundancy purposes without incrementing the MSN + value. If an updated RAMS-I message will be sent (either with new + information or updated information), the MSN value SHALL be + incremented by one. In the MSN field, the regular wrapping rules + apply. Note that if the RTP_Rx has sent an updated request, it + MUST check every RAMS-I message entirely, regardless of whether or + not the MSN value has changed. + + o Response (16 bits): Mandatory field that denotes the response + code for this RAMS-I message. This document defines several + initial response codes in Section 7.3.1 and registers them with + IANA in Section 11.6. If a new vendor-neutral response code will + be defined, it MUST be registered with IANA through the guidelines + specified in Section 11.6. If the new response code is intended + to be used privately by a vendor, there is no need for IANA + management. Instead, the vendor MUST use the private extension + mechanism (Section 7.1.2) to convey its message and MUST indicate + this by putting zero in the Response field. + + When the RTP_Rx receives a RAMS-I message with a response code + that it does not understand, the RTP_Rx MUST send a RAMS-T message + immediately to the BRS. + + The following TLV elements have been defined for the RAMS-I messages: + + o Media Sender SSRC (32 bits): Optional TLV element that specifies + the media sender SSRC of the unicast burst stream. If the FT_Ap + that received the RAMS-R message is associated with a single + primary multicast stream but the requested media sender SSRC does + not match the SSRC of the RTP stream associated with this FT_Ap, + + + + +Ver Steeg, et al. Standards Track [Page 35] + +RFC 6285 RAMS June 2011 + + + the BRS includes this TLV element in the initial RAMS-I message to + let the RTP_Rx know that the media sender SSRC has changed. If + the two SSRCs match, there is no need to include this TLV element. + + Type: 31 + + o RTP Seqnum of the First Packet (16 bits): TLV element that + specifies the RTP sequence number of the first packet that will be + sent in the respective unicast RTP stream. This allows the RTP_Rx + to know whether one or more packets sent by the BRS have been + dropped at the beginning of the stream. If the BRS accepts the + RAMS request, this element exists. If the BRS rejects the RAMS + request, this element SHALL NOT exist. + + Type: 32 + + o Earliest Multicast Join Time (32 bits): TLV element that + specifies the delta time (in ms) between the arrival of the first + RTP packet in the unicast RTP stream (which could be a burst + packet or a payload-specific packet) and the earliest time instant + when an RTP_Rx MAY send an SFGMP Join message to join the + multicast session. A zero value indicated in this element means + that the RTP_Rx MAY send the SFGMP Join message right away. If + the RTP_Rx does not want to wait until the earliest multicast join + time, it MAY send a RAMS-T message, and after a reasonable amount + of time, it MAY join the SSM session. + + If the RAMS request has been accepted, the BRS sends this element + at least once so that the RTP_Rx knows when to join the multicast + session. If the burst request has been rejected as indicated in + the Response field, this element MUST indicate a zero value. In + that case, it is up to the RTP_Rx when or whether to join the + multicast session. + + When the BRS serves two or more bursts and sends a separate RAMS-I + message for each burst, the join times specified in these RAMS-I + messages SHOULD correspond to more or less the same time instant, + and the RTP_Rx sends the SFGMP Join message based on the earliest + join time. + + Type: 33 + + o Burst Duration (32 bits): Optional TLV element that denotes the + time the burst will last (in ms), i.e., the difference between the + expected transmission times of the first and the last burst + packets that the BRS is planning to send in the respective unicast + RTP stream. In the absence of additional stimulus, the BRS will + + + + +Ver Steeg, et al. Standards Track [Page 36] + +RFC 6285 RAMS June 2011 + + + send a burst of this duration. However, the burst duration can be + modified by subsequent events, including changes in the primary + multicast stream and reception of RAMS-T messages. + + The BRS MUST terminate the flow in the timeframe indicated by this + burst duration or the duration established by those subsequent + events even if it does not get a RAMS-T or a BYE message from the + RTP_Rx. It is OPTIONAL to send this element in a RAMS-I message + when the burst request is accepted. If the burst request has been + rejected as indicated in the Response field, this element MAY be + omitted or indicate a zero value. + + Type: 34 + + o Max Transmit Bitrate (64 bits): Optional TLV element that denotes + the maximum bitrate (in bits per second) that will be used by the + BRS for the RTP stream associated with this RAMS-I message. + + Type: 35 + +7.3.1. Response Code Definitions + + 1xx-Level Response Codes: These response codes are sent for + informational purposes. + + o 100: This is used when the BRS wants to update a value that was + sent earlier to the RTP_Rx. + + 2xx-Level Response Codes: These response codes are sent to indicate + success. + + o 200: This is used when the server accepts the RAMS request. + + o 201: This is used when the unicast burst has been completed and + the BRS wants to notify the RTP_Rx. + + 4xx-Level Response Codes: These response codes are sent to indicate + that the message sent by the RTP_Rx is either improperly formatted or + contains an invalid value. The rules the RTP_Rx needs to follow upon + receiving one of these response codes are outlined in Step 5 in + Section 6.2. The 4xx-level response codes are also used as status + codes in the Multicast Acquisition Report Block [MULTICAST-ACQ] in + order to collect RTP_Rx-based error conditions. + + o 400: This is used when the RAMS-R message is improperly + formatted. + + + + + +Ver Steeg, et al. Standards Track [Page 37] + +RFC 6285 RAMS June 2011 + + + o 401: This is used when the minimum RAMS buffer fill requirement + value indicated in the RAMS-R message is invalid. + + o 402: This is used when the maximum RAMS buffer fill requirement + value indicated in the RAMS-R message is invalid. + + o 403: This is used when the maximum receive bitrate value + indicated in the RAMS-R message is insufficient. + + o 404: This is used when the RAMS-T message is improperly + formatted. + + 5xx-Level Response Codes: These response codes are sent to indicate + an error on the BRS side. The rules the RTP_Rx needs to follow upon + receiving one of these response codes are outlined in Step 3 in + Section 6.2. The 5xx-level response codes are also used as status + codes in the Multicast Acquisition Report Block [MULTICAST-ACQ] in + order to collect BRS-based error conditions. + + o 500: This is used when the BRS has experienced an internal error + and cannot accept the RAMS request. + + o 501: This is used when the BRS does not have enough bandwidth to + send the unicast burst stream. + + o 502: This is used when the BRS terminates the unicast burst + stream due to network congestion. + + o 503: This is used when the BRS does not have enough CPU resources + to send the unicast burst stream. + + o 504: This is used when the BRS does not support sending a unicast + burst stream. + + o 505: This is used when the requesting RTP_Rx is not eligible to + receive a unicast burst stream. + + o 506: This is used when RAMS functionality is not enabled for the + requested multicast stream. + + o 507: This is used when the BRS cannot find a valid starting point + for the unicast burst stream that satisfies the RTP_Rx's + requirements. + + o 508: This is used when the BRS cannot find the essential + reference information for the requested multicast stream. + + + + + +Ver Steeg, et al. Standards Track [Page 38] + +RFC 6285 RAMS June 2011 + + + o 509: This is used when the BRS cannot match the requested SSRC to + any of the streams it is serving. + + o 510: This is used when the BRS cannot serve the requested entire + session. + + o 511: This is used when the BRS sends only the preamble + information but not the whole unicast burst stream. + + o 512: This is used when the RAMS request is denied due to a policy + for the requested multicast stream, the RTP_Rx, or this particular + BRS. + +7.4. RAMS Termination + + The RAMS Termination (RAMS-T) message is identified by SFMT=3. + + The RAMS Termination is used to assist the BRS in determining when to + stop the burst. A separate RAMS-T message is sent in the unicast + burst RTP session by the RTP_Rx for each primary multicast stream + that has been served by the BRS. Each of these RAMS-T message's + media sender SSRC field SHALL BE populated with the SSRC of the media + stream to be terminated. If the media sender SSRC populated in the + RAMS-T message does not match the SSRC of the burst served by the + BRS, BRS SHALL ignore the RAMS-T message. + + If the RTP_Rx wants the BRS to stop a burst prematurely, it sends a + RAMS-T message as described below. Upon receiving this message, the + BRS stops the respective burst immediately. If the RTP_Rx wants the + BRS to terminate all of the bursts, it needs to send all of the + respective RAMS-T messages in a single compound RTCP packet. + + The default behavior for the RTP_Rx is to send a RAMS-T message + immediately after it joined the multicast session and started + receiving multicast packets. In that case, the RTP_Rx includes the + sequence number of the first RTP packet received in the primary + multicast stream in the RAMS-T message. With this information, the + BRS can decide when to terminate the unicast burst. + + The FCI field MUST contain only one RAMS Termination. The FCI field + has the structure depicted in Figure 9. + + The semantics of the RAMS-T message is independent of the payload + type carried in the primary multicast RTP session. + + + + + + + +Ver Steeg, et al. Standards Track [Page 39] + +RFC 6285 RAMS June 2011 + + + 0 1 2 3 + 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | SFMT=3 | Reserved | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + : Optional TLV-encoded Fields (and Padding, if needed) : + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Figure 9: FCI field syntax for the RAMS Termination message + + o Extended RTP Seqnum of First Multicast Packet (32 bits): Optional + TLV element that specifies the extended RTP sequence number of the + first packet received from the SSM session for a particular + primary multicast stream. The low 16 bits contain the sequence + number of the first packet received from the SSM session, and the + most significant 16 bits extend that sequence number with the + corresponding count of sequence number cycles, which can be + maintained according to the algorithm in Appendix A.1 of + [RFC3550]. + + Type: 61 + +8. SDP Signaling + +8.1. Definitions + + The syntax of the 'rtcp-fb' attribute has been defined in [RFC4585]. + Here we add the following syntax to the 'rtcp-fb' attribute (the + feedback type and optional parameters are all case sensitive): + + (In the following ABNF [RFC5234], rtcp-fb-nack-param is used as + defined in [RFC4585].) + + rtcp-fb-nack-param =/ SP "rai" + + The following parameter is defined in this document for use with + 'nack': + + o 'rai' stands for Rapid Acquisition Indication and indicates the + use of RAMS messages as defined in Section 7. + + This document also defines a new media-level SDP attribute + ('rams-updates') that indicates whether or not the BRS supports + updated request messages. This attribute is used in a declarative + manner and no Offer/Answer Model behavior is specified. If the BRS + supports updated request messages and this attribute is included in + the SDP description, the RTP_Rx can send updated requests. The BRS + might or might not be able to accept value changes in every field in + + + +Ver Steeg, et al. Standards Track [Page 40] + +RFC 6285 RAMS June 2011 + + + an updated RAMS-R message. However, if the 'rams-updates' attribute + is not included in the SDP description, the RTP_Rx SHALL NOT send + updated requests. The RTP_Rx MAY still repeat its initial request + without changes, though. + +8.2. Requirements + + The use of SDP to describe the RAMS entities normatively requires + support for: + + o The SDP grouping framework and flow identification (FID) semantics + [RFC5888] + + o The RTP/AVPF profile [RFC4585] + + o The RTP retransmission payload format [RFC4588] + + o The RTCP extensions for SSM sessions with unicast feedback + [RFC5760] + + o The 'multicast-rtcp' attribute [RFC6128] + + o Multiplexing RTP and RTCP on a single port on both endpoints in + the unicast session [RFC5761] + + o The 'portmapping-req' attribute [RFC6284] + + Support for the source-specific media attributes [RFC5576] can also + be needed when the 'ssrc' attribute is to be used for the media + descriptions. + +8.3. Example and Discussion + + This section provides a declarative SDP [RFC4566] example (for the + RTP_Rx side) for enabling rapid acquisition of multicast RTP + sessions. + + v=0 + o=ali 1122334455 1122334466 IN IP4 rams.example.com + s=Rapid Acquisition Example + t=0 0 + a=group:FID 1 2 + a=rtcp-unicast:rsi + m=video 41000 RTP/AVPF 98 + i=Primary Multicast Stream + c=IN IP4 233.252.0.2/255 + a=source-filter:incl IN IP4 233.252.0.2 198.51.100.1 + a=rtpmap:98 MP2T/90000 + + + +Ver Steeg, et al. Standards Track [Page 41] + +RFC 6285 RAMS June 2011 + + + a=multicast-rtcp:42000 + a=rtcp:43000 IN IP4 192.0.2.1 + a=rtcp-fb:98 nack + a=rtcp-fb:98 nack rai + a=ssrc:123321 cname:iptv-ch32@rams.example.com + a=rams-updates + a=portmapping-req:54000 IN IP4 192.0.2.1 + a=mid:1 + m=video 51000 RTP/AVPF 99 + i=Unicast Retransmission Stream (Ret. and Rapid Acq. Support) + c=IN IP4 192.0.2.1 + a=sendonly + a=rtpmap:99 rtx/90000 + a=rtcp-mux + a=rtcp:51500 + a=fmtp:99 apt=98;rtx-time=5000 + a=portmapping-req:55000 + a=mid:2 + + Figure 10: Example SDP for a Single-Channel RAMS Scenario + + In this example SDP description, we have a primary multicast (source) + stream and a unicast retransmission stream. The source stream is + multicast from a distribution source (with a source IP address of + 198.51.100.1) to the multicast destination address of 233.252.0.2 and + port 41000. The corresponding RTCP traffic is multicast to the same + multicast destination address at port 42000. Here, we are assuming + that the multicast RTP and RTCP ports are carefully chosen so that + different RTP and RTCP streams do not collide with each other. + + The feedback target (FT_Ap) residing on the RS (with an address of + 192.0.2.1) at port 43000 is declared with the "a=rtcp" line + [RFC3605]. The support for the conventional retransmission is + indicated through the "a=rtcp-fb:98 nack" line. The RTP receiver(s) + can report missing packets on the source stream to the feedback + target and request retransmissions. The SDP above includes the + "a=sendonly" line for the media description of the retransmission + stream since the retransmissions are sent in only one direction. + + The support for rapid acquisition is indicated through the "a=rtcp- + fb:98 nack rai" line. The parameter 'rtx-time' applies to both the + conventional retransmissions and rapid acquisition. However, when + rapid acquisition is enabled, the standard definition for the + parameter 'rtx-time' given in [RFC4588] is not followed. Instead, + when rapid acquisition support is enabled, 'rtx-time' specifies the + time in milliseconds that the BRS keeps an RTP packet in its cache + + + + + +Ver Steeg, et al. Standards Track [Page 42] + +RFC 6285 RAMS June 2011 + + + available for retransmission (measured from the time the packet was + received by the BRS, not from the time indicated in the packet + timestamp). + + Once an RTP_Rx has acquired an SDP description, it can ask for rapid + acquisition before it joins a primary multicast RTP session. To do + so, it sends a RAMS-R message to the feedback target of that primary + multicast RTP session. If the FT_Ap is associated with only one RTP + stream, the RTP_Rx does not need to learn the SSRC of that stream via + an out-of-band method. If the BRS accepts the rapid acquisition + request, it will send a RAMS-I message with the correct SSRC + identifier. If the FT_Ap is associated with a multi-stream RTP + session and the RTP_Rx is willing to request rapid acquisition for + the entire session, the RTP_Rx again does not need to learn the SSRCs + via an out-of-band method. However, if the RTP_Rx intends to request + a particular subset of the primary multicast streams, it must learn + their SSRC identifiers and list them in the RAMS-R message. Since + this RTP_Rx has not yet received any RTP packets for the primary + multicast stream(s), the RTP_Rx must in this case learn the SSRC + value(s) from the 'ssrc' attribute of the media description + [RFC5576]. In addition to the SSRC value, the 'cname' source + attribute must also be present in the SDP description [RFC5576]. + + Listing the SSRC values for the primary multicast streams in the SDP + file does not create a problem in SSM sessions when an SSRC collision + occurs. This is because in SSM sessions, an RTP_Rx that observed an + SSRC collision with a media sender must change its own SSRC [RFC5760] + by following the rules defined in [RFC3550]. + + A feedback target that receives a RAMS-R message becomes aware that + the RTP_Rx wants to rapidly catch up with a primary multicast RTP + session. If the necessary conditions are satisfied (as outlined in + Section 7 of [RFC4585]) and available resources exist, the BRS can + react to the RAMS-R message by sending any transport-layer (and + optional payload-specific, when allowed) feedback message(s) and + starting the unicast burst. + + In this section, we considered the simplest scenario where the + primary multicast RTP session carried only one stream and the RTP_Rx + wanted to rapidly acquire this stream only. Best practices for + scenarios where the primary multicast RTP session carries two or more + streams or the RTP_Rx wants to acquire one or more streams from + multiple primary multicast RTP sessions at the same time are + presented in [RAMS-SCENARIOS]. + + + + + + + +Ver Steeg, et al. Standards Track [Page 43] + +RFC 6285 RAMS June 2011 + + +9. NAT Considerations + + For a variety of reasons, one or more Network Address Port + Translators (NAPT, hereafter simply called NAT) can exist between the + RTP_Rx and RS. NATs have a variety of operating characteristics for + UDP traffic [RFC4787]. For a NAT to permit traffic from the BRS to + arrive at the RTP_Rx, the NAT(s) must first either: + + a. See UDP (or DCCP) traffic sent from the RTP_Rx (which is on the + 'inside' of the NAT) to the BRS (which is on the 'outside' of the + NAT). This traffic has the same transport address as the + subsequent response traffic, or + + b. Be configured to forward certain ports (e.g., using HTML + configuration or Universal Plug and Play (UPnP) Internet Gateway + Device (IGD) [UPnP-IGD]). Details of this are out of the scope + of this document. + + For both (a) and (b), the RTP_Rx is responsible for maintaining the + NAT's state if it wants to receive traffic from the BRS on that port. + For (a), the RTP_Rx MUST send UDP traffic to keep the NAT binding + alive, at least every 30 seconds [RFC4787]. While (a) is more like + an automatic/dynamic configuration, (b) is more like a manual/static + configuration. + + When the RTP_Rx sends a request (RAMS-R) message to the FT as unicast + feedback in the primary multicast RTP session and the request is + received by the FT, a new unicast burst RTP session will be + established between the BRS and RTP_Rx. + + While the FT and BRS ports on the RS are already signaled via out-of- + band means (e.g., SDP), the RTP_Rx needs to convey the RTP and RTCP + ports it wants to use on its side for the new session. Since there + are two RTP sessions (one multicast and one unicast) involved during + this process and one of them is established upon a feedback message + sent in the other one, this requires an explicit port mapping method. + + Applications using RAMS MUST support the method presented in + [RFC6284] both on the RS and RTP_Rx side to allow RTP receivers to + use their desired ports and to support RAMS behind NAT devices. The + port mapping message exchange needs to take place whenever the RTP_Rx + intends to make use of the RAMS protocol for rapidly acquiring a + specific multicast RTP session prior to joining the associated SSM + session. + + + + + + + +Ver Steeg, et al. Standards Track [Page 44] + +RFC 6285 RAMS June 2011 + + +10. Security Considerations + + Applications that are using RAMS make heavy use of the unicast + feedback mechanism described in [RFC5760], the payload format defined + in [RFC4588], and the port mapping solution specified in [RFC6284]. + Thus, these applications are subject to the general security + considerations discussed in those documents. In particular, the + threats and risks discussed in [RFC5760] need to be considered + carefully. In this section, we give an overview of the guidelines + and suggestions described in these specifications from a RAMS + perspective. We also discuss the security considerations that + explicitly apply to applications using RAMS. + + First of all, much of the session description information is + available in the SDP descriptions that are distributed to the media + senders, retransmission servers, and RTP receivers. Adequate + security measures are RECOMMENDED to ensure the integrity and + authenticity of the SDP descriptions so that transport addresses of + the media senders, distribution sources, feedback targets, and other + session-specific information can be protected. See [RFC4566] for + details. + + Compared to an RTCP NACK message that triggers one or more + retransmissions, a RAMS Request (RAMS-R) message can trigger a new + burst stream to be sent by the retransmission server. Depending on + the application-specific requirements and conditions existing at the + time of the RAMS-R reception by the retransmission server, the + resulting burst stream can potentially contain a large number of + retransmission packets. Since these packets are sent faster than the + nominal rate, RAMS consumes more resources on the retransmission + servers, RTP receivers, and the network. In particular, this can + make denial-of-service (DoS) attacks more intense and hence more + harmful than attacks that target ordinary retransmission sessions. + + As RAMS messages are sent as RTCP messages, counter-measures SHOULD + be taken to prevent tampered or spoofed RTCP packets, following the + suggestions given in [RFC4588]. Tampered RAMS-R messages can trigger + inappropriate burst streams or alter the existing burst streams in an + inappropriate way. For example, if the Max Receive Bitrate field is + altered by a tampered RAMS-R message, the updated burst can overflow + the buffer at the receiver side or, oppositely, can slow down the + burst to the point that it becomes useless. Tampered RAMS + Termination (RAMS-T) messages can terminate valid burst streams + prematurely resulting in gaps in the received RTP packets. RAMS + Information (RAMS-I) messages contain fields that are critical for a + successful rapid acquisition. Any tampered information in the RAMS-I + message can easily cause an RTP receiver to make wrong decisions. + Consequently, the RAMS operation can fail. + + + +Ver Steeg, et al. Standards Track [Page 45] + +RFC 6285 RAMS June 2011 + + + RTCP BYE messages are similar to RAMS-T messages in the sense that + they can be used to stop an existing burst. The CNAME of an RTP + receiver is used to bind the RTCP BYE message to an existing burst. + Thus, one should be careful if the CNAMEs are reasonably easy to + guess and off-path attacks can be performed. Also note that the + CNAMEs might be redistributed to all participants in the multicast + group (as in ASM or the simple feedback model of [RFC5760]). + + The retransmission server has to consider if values indicated in a + RAMS-R message are reasonable. For example, a request demanding a + large value of many seconds in the Min RAMS Buffer Fill Requirement + element should, unless special use cases exist, likely be rejected + since it is likely to be an attempt to prolong a DoS attack on the + retransmission server, RTP receiver, and/or the network. The Max + Receive Bitrate could also be set to a very large value to try to get + the retransmission server to cause massive congestion by bursting at + a bitrate that will not be supported by the network. An RTP_Rx + should also consider if the values for the Earliest Multicast Join + Time and Burst Duration indicated by the retransmission server in a + RAMS-I message are reasonable. For example, if the burst packets + stop arriving and the join time is still significantly far into the + future, this could be a sign of a man-in-the-middle attack where the + RAMS-I message has been manipulated by an attacker. + + A basic mitigation against DoS attacks introduced by an attacker + injecting tampered RAMS messages is source address validation + [RFC2827]. Also, most of the DoS attacks can be prevented by the + integrity and authenticity checks enabled by Secure RTP (SRTP) + [RFC3711]. However, an attack can still be started by legitimate + endpoints that send several valid RAMS-R messages to a particular + feedback target in a synchronized fashion and in a very short amount + of time. Since a RAMS operation can temporarily consume a large + amount of resources, a series of the RAMS-R messages can temporarily + overload the retransmission server. In these circumstances, the + retransmission server can, for example, reject incoming RAMS requests + until its resources become available again. One means to ameliorate + this threat is to apply a per-endpoint policing mechanism on the + incoming RAMS requests. A reasonable policing mechanism should + consider application-specific requirements and minimize false + negatives. + + In addition to the DoS attacks, man-in-the-middle and replay attacks + will also be harmful. RAMS-R messages do not carry any information + that allows the retransmission server to detect duplication or replay + attacks. Thus, the possibility of a replay attack using a captured + valid RAMS-R message exists unless a mitigation method such as Secure + RTCP (SRTCP) is used. Similarly, RAMS-T messages can be replayed. + The RAMS-I has a sequence number that makes replay attacks less + + + +Ver Steeg, et al. Standards Track [Page 46] + +RFC 6285 RAMS June 2011 + + + likely but not impossible. Man-in-the-middle attacks that are + capable of capturing, injecting, or modifying the RAMS messages can + easily accomplish the attacks described above. Thus, cryptographic + integrity and authentication is the only reliable protection. To + protect the RTCP messages from man-in-the-middle and replay attacks, + the RTP receivers and retransmission server SHOULD perform a Datagram + Transport Layer Security (DTLS)-SRTP handshake [RFC5764] over the + RTCP channel. Because there is no integrity-protected signaling + channel between an RTP receiver and the retransmission server, the + retransmission server MUST maintain a list of certificates owned by + legitimate RTP receivers, or their certificates MUST be signed by a + trusted Certificate Authority. Once the DTLS-SRTP security is + established, non-SRTCP-protected messages received from a particular + RTP receiver are ignored by the retransmission server. To reduce the + impact of DTLS-SRTP overhead when communicating with different + feedback targets on the same retransmission server, it is RECOMMENDED + that RTP receivers and the retransmission server both support TLS + Session Resumption without Server-side State [RFC5077]. To help + scale SRTP to handle many RTP receivers asking for retransmissions of + identical data, implementors may consider using the same SRTP key for + SRTP data sent to the receivers [SRTP-EKT] and be aware that such key + sharing allows those receivers to impersonate the sender. Thus, + source address validation remains important. + + [RFC4588] RECOMMENDS that cryptography mechanisms be used for the + retransmission payload format to provide protection against known + plain-text attacks. As discussed in [RFC4588], the retransmission + payload format sets the timestamp field in the RTP header to the + media timestamp of the original packet, and this does not compromise + the confidentiality. Furthermore, if cryptography is used to provide + security services on the original stream, then the same services, + with equivalent cryptographic strength, MUST be provided on the + retransmission stream per [RFC4588]. + + Finally, a retransmission server that has become subverted by an + attacker is almost impossible to protect against as such a server can + perform a large number of different actions to deny service to + receivers. + +11. IANA Considerations + + The following contact information is used for all registrations in + this document: + + Ali Begen + abegen@cisco.com + + + + + +Ver Steeg, et al. Standards Track [Page 47] + +RFC 6285 RAMS June 2011 + + + Note that the "RAMS" (value 2) in the Multicast Acquisition Method + Registry refers to the method described in Section 6 of this + document. + +11.1. Registration of SDP Attributes + + This document registers a new attribute name in SDP. + + SDP Attribute ("att-field"): + Attribute name: rams-updates + Long form: Support for Updated RAMS Request Messages + Type of name: att-field + Type of attribute: Media level + Subject to charset: No + Purpose: See this document + Reference: [RFC6285] + Values: None + +11.2. Registration of SDP Attribute Values + + This document registers a new value for the 'nack' attribute to be + used with the 'rtcp-fb' attribute in SDP. For more information about + the 'rtcp-fb' attribute, refer to Section 4.2 of [RFC4585]. + + Value name: rai + Long name: Rapid Acquisition Indication + Usable with: nack + Reference: [RFC6285] + +11.3. Registration of FMT Values + + Within the RTPFB range, the following format (FMT) value is + registered: + + Name: RAMS + Long name: Rapid Acquisition of Multicast Sessions + Value: 6 + Reference: [RFC6285] + +11.4. SFMT Values for RAMS Messages Registry + + This document creates a new sub-registry for the sub-feedback message + type (SFMT) values to be used with the FMT value registered for RAMS + messages. The registry is called the SFMT Values for RAMS Messages + Registry. This registry is managed by the IANA according to the + Specification Required policy of [RFC5226]. + + + + + +Ver Steeg, et al. Standards Track [Page 48] + +RFC 6285 RAMS June 2011 + + + The length of the SFMT field in the RAMS messages is a single octet, + allowing 256 values. The registry is initialized with the following + entries: + + Value Name Reference + ----- -------------------------------------------------- ------------ + 0 Reserved [RFC6285] + 1 RAMS Request [RFC6285] + 2 RAMS Information [RFC6285] + 3 RAMS Termination [RFC6285] + 4-254 Unassigned - Specification Required + 255 Reserved [RFC6285] + + The SFMT values 0 and 255 are reserved for future use. + + Any registration for an unassigned SFMT value needs to contain the + following information: + + o Contact information of the one doing the registration, including + at least name, address, and email. + + o A detailed description of what the new SFMT represents and how it + shall be interpreted. + + New RAMS functionality is intended to be introduced by using the + extension mechanism within the existing RAMS message types not by + introducing new message types unless it is absolutely necessary. + +11.5. RAMS TLV Space Registry + + This document creates a new IANA TLV space registry for the RAMS + extensions. The registry is called the RAMS TLV Space Registry. + This registry is managed by the IANA according to the Specification + Required policy of [RFC5226]. + + The length of the Type field in the TLV elements is a single octet, + allowing 256 values. The Type values 0 and 255 are reserved for + future use. The Type values between (and including) 128 and 254 are + reserved for private extensions. + + + + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 49] + +RFC 6285 RAMS June 2011 + + + The registry is initialized with the following entries: + + Type Description Reference + ---- ----------------------------------------------- ------------- + 0 Reserved [RFC6285] + 1 Requested Media Sender SSRC(s) [RFC6285] + 2 Min RAMS Buffer Fill Requirement [RFC6285] + 3 Max RAMS Buffer Fill Requirement [RFC6285] + 4 Max Receive Bitrate [RFC6285] + 5 Request for Preamble Only [RFC6285] + 6 Supported Enterprise Number(s) [RFC6285] + 7-30 Unassigned - Specification Required + 31 Media Sender SSRC [RFC6285] + 32 RTP Seqnum of the First Packet [RFC6285] + 33 Earliest Multicast Join Time [RFC6285] + 34 Burst Duration [RFC6285] + 35 Max Transmit Bitrate [RFC6285] + 36-60 Unassigned - Specification Required + 61 Extended RTP Seqnum of First Multicast Packet [RFC6285] + 62-127 Unassigned - Specification Required + 128-254 Reserved for Private Use + 255 Reserved [RFC6285] + + Any registration for an unassigned Type value needs to contain the + following information: + + o Contact information of the one doing the registration, including + at least name, address, and email. + + o A detailed description of what the new TLV element represents and + how it shall be interpreted. + +11.6. RAMS Response Code Space Registry + + This document creates a new IANA TLV space registry for the RAMS + response codes. The registry is called the RAMS Response Code Space + Registry. This registry is managed by the IANA according to the + Specification Required policy of [RFC5226]. + + The length of the Response field is two octets, allowing 65536 codes. + However, in this document, the response codes have been classified + and registered following an HTTP-style code numbering. New response + codes should be classified following the guidelines below: + + + + + + + + +Ver Steeg, et al. Standards Track [Page 50] + +RFC 6285 RAMS June 2011 + + + Code Level Purpose + ---------- --------------- + 1xx Informational + 2xx Success + 3xx Redirection + 4xx RTP Receiver (RTP_Rx) Error + 5xx Burst/Retransmission Source (BRS) Error + + The Response code 65535 is reserved for future use. + + The registry is initialized with the following entries: + + Code Description Reference + ----- -------------------------------------------------- ------------ + 0 A private response code is included in the message [RFC6285] + + 100 Parameter update for RAMS session [RFC6285] + + 200 RAMS request has been accepted [RFC6285] + 201 Unicast burst has been completed [RFC6285] + + 400 Invalid RAMS-R message syntax [RFC6285] + 401 Invalid min buffer requirement in RAMS-R message [RFC6285] + 402 Invalid max buffer requirement in RAMS-R message [RFC6285] + 403 Insufficient max bitrate requirement in RAMS-R + message [RFC6285] + 404 Invalid RAMS-T message syntax [RFC6285] + + 500 An unspecified BRS internal error has occurred [RFC6285] + 501 BRS has insufficient bandwidth to start RAMS + session [RFC6285] + 502 Burst is terminated due to network congestion [RFC6285] + 503 BRS has insufficient CPU cycles to start RAMS + session [RFC6285] + 504 RAMS functionality is not available on BRS [RFC6285] + 505 RAMS functionality is not available for RTP_Rx [RFC6285] + 506 RAMS functionality is not available for + the requested multicast stream [RFC6285] + 507 BRS has no valid starting point available for + the requested multicast stream [RFC6285] + 508 BRS has no reference information available for + the requested multicast stream [RFC6285] + 509 BRS has no RTP stream matching the requested SSRC [RFC6285] + 510 RAMS request to acquire the entire session + has been denied [RFC6285] + 511 Only the preamble information is sent [RFC6285] + 512 RAMS request has been denied due to a policy [RFC6285] + + + + +Ver Steeg, et al. Standards Track [Page 51] + +RFC 6285 RAMS June 2011 + + + Any registration for an unassigned Response code needs to contain the + following information: + + o Contact information of the one doing the registration, including + at least name, address, and email. + + o A detailed description of what the new Response code describes and + how it shall be interpreted. + +12. Contributors + + Dave Oran, Magnus Westerlund, and Colin Perkins have contributed + significantly to this specification by providing text and solutions + to some of the issues raised during the development of this + specification. + +13. Acknowledgments + + The following individuals reviewed earlier versions of this + specification and provided helpful comments: Joerg Ott, Roni Even, + Dan Wing, Tony Faustini, Peilin Yang, Jeff Goldberg, Muriel + Deschanel, Orit Levin, Guy Hirson, Tom Taylor, Xavier Marjou, Ye-Kui + Wang, Zixuan Zou, Ingemar Johansson, Haibin Song, Ning Zong, Jonathan + Lennox, Jose Rey, Sean Sheedy, and Keith Drage. + +14. References + +14.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, March 1997. + + [RFC2827] Ferguson, P. and D. Senie, "Network Ingress Filtering: + Defeating Denial of Service Attacks which employ IP Source + Address Spoofing", BCP 38, RFC 2827, May 2000. + + [RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B., and A. + Thyagarajan, "Internet Group Management Protocol, Version + 3", RFC 3376, October 2002. + + [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. + Jacobson, "RTP: A Transport Protocol for Real-Time + Applications", STD 64, RFC 3550, July 2003. + + [RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute + in Session Description Protocol (SDP)", RFC 3605, + October 2003. + + + + +Ver Steeg, et al. Standards Track [Page 52] + +RFC 6285 RAMS June 2011 + + + [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. + Norrman, "The Secure Real-time Transport Protocol (SRTP)", + RFC 3711, March 2004. + + [RFC3810] Vida, R. and L. Costa, "Multicast Listener Discovery + Version 2 (MLDv2) for IPv6", RFC 3810, June 2004. + + [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session + Description Protocol", RFC 4566, July 2006. + + [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey, + "Extended RTP Profile for Real-time Transport Control + Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, + July 2006. + + [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R. + Hakenberg, "RTP Retransmission Payload Format", RFC 4588, + July 2006. + + [RFC4604] Holbrook, H., Cain, B., and B. Haberman, "Using Internet + Group Management Protocol Version 3 (IGMPv3) and Multicast + Listener Discovery Protocol Version 2 (MLDv2) for Source- + Specific Multicast", RFC 4604, August 2006. + + [RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, + "Transport Layer Security (TLS) Session Resumption without + Server-Side State", RFC 5077, January 2008. + + [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax + Specifications: ABNF", STD 68, RFC 5234, January 2008. + + [RFC5285] Singer, D. and H. Desineni, "A General Mechanism for RTP + Header Extensions", RFC 5285, July 2008. + + [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size + Real-Time Transport Control Protocol (RTCP): Opportunities + and Consequences", RFC 5506, April 2009. + + [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific + Media Attributes in the Session Description Protocol + (SDP)", RFC 5576, June 2009. + + [RFC5760] Ott, J., Chesterfield, J., and E. Schooler, "RTP Control + Protocol (RTCP) Extensions for Single-Source Multicast + Sessions with Unicast Feedback", RFC 5760, February 2010. + + [RFC5761] Perkins, C. and M. Westerlund, "Multiplexing RTP Data and + Control Packets on a Single Port", RFC 5761, April 2010. + + + +Ver Steeg, et al. Standards Track [Page 53] + +RFC 6285 RAMS June 2011 + + + [RFC5764] McGrew, D. and E. Rescorla, "Datagram Transport Layer + Security (DTLS) Extension to Establish Keys for the Secure + Real-time Transport Protocol (SRTP)", RFC 5764, May 2010. + + [RFC5888] Camarillo, G. and H. Schulzrinne, "The Session Description + Protocol (SDP) Grouping Framework", RFC 5888, June 2010. + + [RFC6051] Perkins, C. and T. Schierl, "Rapid Synchronisation of RTP + Flows", RFC 6051, November 2010. + + [RFC6128] Begen, A., "RTP Control Protocol (RTCP) Port for Source- + Specific Multicast (SSM) Sessions", RFC 6128, + February 2011. + + [RFC6284] Begen, A., Wing, D., and T. Van Caenegem, "Port Mapping + Between Unicast and Multicast RTP Sessions", RFC 6284, + June 2011. + +14.2. Informative References + + [ECN-FOR-RTP] + Westerlund, M., Johansson, I., Perkins, C., O'Hanlon, P., + and K. Carlberg, "Explicit Congestion Notification (ECN) + for RTP over UDP", Work in Progress, May 2011. + + [IC2009] Begen, A., Glazebrook, N., and W. Ver Steeg, "Reducing + Channel Change Times in IPTV with Real-Time Transport + Protocol (IEEE Internet Computing)", May 2009. + + [MULTICAST-ACQ] + Begen, A. and E. Friedrich, "Multicast Acquisition Report + Block Type for RTP Control Protocol (RTCP) Extended + Reports (XRs)", Work in Progress, May 2011. + + [RAMS-SCENARIOS] + Begen, A., "Considerations and Guidelines for Deploying + the Rapid Acquisition of Multicast Sessions (RAMS) + Method", Work in Progress, June 2011. + + [RFC0768] Postel, J., "User Datagram Protocol", STD 6, RFC 768, + August 1980. + + [RFC4787] Audet, F. and C. Jennings, "Network Address Translation + (NAT) Behavioral Requirements for Unicast UDP", BCP 127, + RFC 4787, January 2007. + + + + + + +Ver Steeg, et al. Standards Track [Page 54] + +RFC 6285 RAMS June 2011 + + + [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an + IANA Considerations Section in RFCs", BCP 26, RFC 5226, + May 2008. + + [RFC5762] Perkins, C., "RTP and the Datagram Congestion Control + Protocol (DCCP)", RFC 5762, April 2010. + + [RFC6015] Begen, A., "RTP Payload Format for 1-D Interleaved Parity + Forward Error Correction (FEC)", RFC 6015, October 2010. + + [RFC6222] Begen, A., Perkins, C., and D. Wing, "Guidelines for + Choosing RTP Control Protocol (RTCP) Canonical Names + (CNAMEs)", RFC 6222, April 2011. + + [SRTP-EKT] McGrew, D., Andreasen, F., Wing, D., and K. Fischer, + "Encrypted Key Transport for Secure RTP", Work + in Progress, March 2011. + + [UPnP-IGD] UPnP Forum, "Universal Plug and Play (UPnP) Internet + Gateway Device (IGD)", December 2010. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 55] + +RFC 6285 RAMS June 2011 + + +Authors' Addresses + + Bill Ver Steeg + Cisco + 5030 Sugarloaf Parkway + Lawrenceville, GA 30044 + USA + + EMail: billvs@cisco.com + + + Ali Begen + Cisco + 181 Bay Street + Toronto, ON M5J 2T3 + Canada + + EMail: abegen@cisco.com + + + Tom Van Caenegem + Alcatel-Lucent + Copernicuslaan 50 + Antwerpen 2018 + Belgium + + EMail: Tom.Van_Caenegem@alcatel-lucent.be + + + Zeev Vax + Magnum Semiconductor, Inc. + 591 Yosemite Drive + Milpitas, CA 95035 + USA + + EMail: zeev.vax@magnumsemi.com + + + + + + + + + + + + + + + +Ver Steeg, et al. Standards Track [Page 56] + |