Request for Comments: 6642
Category: Standards Track
RTP Control Protocol (RTCP) Extension for a Third-Party Loss Report
In a large RTP session using the RTP Control Protocol (RTCP) feedback mechanism defined in RFC 4585, a feedback target may experience transient overload if some event causes a large number of receivers to send feedback at once. This overload is usually avoided by ensuring that feedback reports are forwarded to all receivers, allowing them to avoid sending duplicate feedback reports. However, there are cases where it is not recommended to forward feedback reports, and this may allow feedback implosion. This memo discusses these cases and defines a new RTCP Third-Party Loss Report that can be used to inform receivers that the feedback target is aware of some loss event, allowing them to suppress feedback. Associated Session Description Protocol (SDP) signaling is also defined.
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.
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/rfc6642.
Copyright © 2012 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.
Table of Contents
1. Introduction ....................................................3 2. Terminology .....................................................3 2.1. Requirements Notation ......................................3 2.2. Glossary ...................................................4 3. Example Use Cases ...............................................4 3.1. Source-Specific Multicast (SSM) Use Case ...................4 3.2. Unicast-Based Rapid Acquisition of Multicast Stream (RAMS) Use Case ............................................5 3.3. RTP Transport Translator Use Case ..........................5 3.4. Multipoint Control Unit (MCU) Use Case .....................6 3.5. Mixer Use Case .............................................6 4. Protocol Overview ...............................................6 5. Format of RTCP Feedback Messages ................................7 5.1. Transport-Layer Feedback: Third-Party Loss Report (TPLR) ...8 5.2. Payload-Specific Feedback: Third-Party Loss Report (TPLR) .8 6. SDP Signaling ...................................................9 7. Security Considerations ........................................10 8. IANA Considerations ............................................11 9. Acknowledgments ................................................11 10. References ....................................................12 10.1. Normative References .....................................12 10.2. Informative References ...................................12
The RTP Control Protocol (RTCP) feedback messages [RFC4585] allow the receivers in an RTP session to report events and ask for action from the media source (or a delegated feedback target when using unicast RTCP feedback with Source-Specific Multicast (SSM) [RFC5760]). There are cases where multiple receivers may initiate the same, or an equivalent, message towards the same media source or the same feedback target. When the receiver count is large, this behavior may cause transient overload of the media source, the network, or both. This is known as a "feedback storm" or a "NACK storm".
One scenario that can cause such feedback storms involves video Fast Update requests. A storm of these feedback messages can occur in conversational multimedia scenarios like multipoint video switching conference [RFC4587], where many receivers may simultaneously lose synchronization with the video stream when the speaker is changed in the middle of a session. Receivers that issue Fast Update requests (i.e., Full Intra Request (FIR) described in RFC 5104 [RFC5104]), can cause an implosion of FIR requests from receivers to the same media source since these requests must currently be made blind, without knowledge of requests made by other receivers.
RTCP feedback storms may cause short-term overload and, in extreme cases, pose a possible risk of increasing network congestion on the control channel (e.g., RTCP feedback), the data channel, or both. It is therefore desirable to provide a way of suppressing unneeded feedback. This document specifies a new Third-Party Loss Report for this function. It supplements the existing use of RTCP NACK packets and is also more precise in the uses where the network is active to suppress feedback. It tells receivers explicitly that feedback for a particular packet or frame loss is not needed and can provide an early indication before the receiver reacts to the loss and invokes its packet loss repair machinery. Section 3 provides some example use cases of when to send the Third-Party Loss Report message.
2.1. 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 RFC 2119 [RFC2119].
TPLR - Third-Party Loss Report TLLEI - Transport-Layer Third-Party Loss Early Indication PSLEI - Payload-Specific Third-Party Loss Early Indication PT - Payload Type FMT - Feedback Message Type FCI - Feedback Control Information [RFC4585] AVPF - Audio-Visual Profile with RTCP-based feedback [RFC4585] SSRC - Synchronization Source BRS - Burst/Retransmission Source [RFC6285] FIR - Full Intra Request [RFC5104] PLI - Picture Loss Indication [RFC4585] SSM - Source-Specific Multicast [RFC5760] RAMS - Unicast-based Rapid Acquisition of Multicast Stream [RFC6285] MCU - Multipoint Control Unit [RFC5117]
3. Example Use Cases
The operation of feedback suppression is similar for all types of RTP sessions and topologies [RFC5117]; however, the exact messages used and the scenarios in which suppression is employed differ for various use cases. The following sections outline some of the intended use cases for using the Third-Party Loss Report for feedback suppression and give an overview of each.
3.1. Source-Specific Multicast (SSM) Use Case
In SSM RTP sessions as described in "RTP Control Protocol (RTCP) Extensions for Single-Source Multicast Sessions with Unicast Feedback" [RFC5760], one or more media sources send RTP packets to a distribution source. The distribution source relays the RTP packets to the receivers using a source-specific multicast group.
As outlined in RFC 5760 [RFC5760], there are two Unicast Feedback models that may be used for reporting: the Simple Feedback Model and the Distribution Source Feedback Summary Model. In the Simple Feedback Model, there's no need for the distribution source to create the RTCP TPLRs; instead, RTCP NACKs are reflected by the distribution source to the other receivers. However, in the Distribution Source Feedback Summary Model, the distribution source will not redistribute the NACK for some reason (e.g., to prevent revealing the identity or existence of a system sending NACK) and may send an RTCP TPLR message to the systems that were unable to receive the NACK and won't receive the NACK via other means. The RTCP TPLR can be generated at the distribution source when downstream loss is reported (e.g., downstream loss report is received), which indicates to the receivers that they should not transmit feedback messages for the same loss event for a certain time. Therefore, the distribution source in the Distribution Source Feedback Summary Model can be reasonably certain that it will help the situation (i.e., the distribution source is unable receive the NACK) by sending this RTCP TPLR message to all the relevant receivers impacted by the packet loss.
3.2. Unicast-Based Rapid Acquisition of Multicast Stream (RAMS) Use
The typical RAMS architecture [RFC6285] may have several Burst/ Retransmission Sources (BRSs) behind the multicast source placed at the same level. These BRSs will receive the primary multicast RTP stream from the media source and cache the most recent packets after joining the multicast session. If packet loss happens at the upstream of all the BRSs or the downstream of BRSs, one or all of the BRSs may send an RTCP NACK or RTCP TPLR message to the distribution source, where the SSRC in this RTCP NACK or RTCP TPLR message is the BRS that is sending the message. The distribution source forwards/ reflects this message down on the primary SSM. The details on how the distribution source deals with this message are specified in [RETRANS-FOR-SSM].
3.3. RTP Transport Translator Use Case
A Transport Translator (Topo-Trn-Translator), as defined in RFC 5117 [RFC5117], is typically forwarding the RTP and RTCP traffic between RTP clients, for example, converting from multicast to unicast for domains that do not support multicast. The translator may suffer a loss of important video packets. In this case, the translator may forward an RTCP TPLR message received from upstream in the same way it forwards other RTCP traffic. If the translator acting as the monitor [MONARCH] is aware of packet loss, it may use the SSRC of the monitor as the SSRC of the packet sender to create a NACK message and send it to the receivers that are not aware of packet loss.
3.4. Multipoint Control Unit (MCU) Use Case
When the speaker is changed in a voice-activated multipoint video switching conference [RFC4587], an RTP mixer can be used to select the available input streams and forward them to each participant. If the MCU is doing a blind switch without waiting for a synchronization point on the new stream, it can send a FIR to the new video source. In this case, the MCU should send a FIR suppression message to the new receivers. For example, when the RTP mixer starts to receive FIR from some participants, it can suppress the remaining session participants from sending FIR by sending out an RTCP TPLR message.
3.5. Mixer Use Case
A mixer, in accordance with RFC 5117 [RFC5117], aggregates multiple RTP streams from other session participants and generates a new RTP stream sent to the session participants. In some cases, the delivery of video frames delivery may get damaged, for example, due to packet loss or delayed delivery, between the media source and the mixer. In such cases, the mixer needs to check if the packet loss will result in PLI or FIR transmissions from most of the group by analyzing the received video. If so, the mixer may initiate FIR or PLI towards the media source on behalf of all the session participants and send out an RTCP TPLR message to the session participants that may or are expected to send a PLI or FIR. Alternatively, when the mixer starts to receive FIR or PLI from some participants and would like to suppress the remaining session participants from sending FIR or PLI, it can just forward the FIR/PLI from one session participant to others.
4. Protocol Overview
This document extends the RTCP feedback messages defined in the RTP/ AVPF [RFC4585] by defining an RTCP Third-Party Loss Report (TPLR) message. The RTCP TPLR message can be used by the intermediaries to inform the receiver that the sender of the RTCP TPLR has received reports that the indicated packets were lost and ask the receiver not to send feedback to it regarding these packets. Intermediaries are variously referred to as distribution sources, Burst/Retransmission Sources, MCUs, RTP translators, or RTP mixers, depending on the precise use case described Section 3.
RTCP TPLR follows a similar message type format as RTCP NACK or Full Intra Request Command. However, RTCP TPLR is defined as an indication that the sender of the feedback has received reports that the indicated packets were lost, while NACK [RFC4585] just indicates that the sender of the NACK observed that these packets were lost. The RTCP TPLR message is generated by an intermediary that may not have seen the actual packet loss. It is sent following the same timing rule as sending NACK, defined in RFC 4585 [RFC4585]. The RTCP TPLR message may be sent in a regular full compound RTCP packet or in an early RTCP packet, as per the RTP/AVPF rules. Intermediaries in the network that receive an RTCP TPLR MUST NOT send their own additional Third-Party Loss Report messages for the same packet sequence numbers. They SHOULD simply forward the RTCP TPLR message received from upstream to the receiver(s). Additionally, they may generate their own RTCP TPLR that reports a set of the losses they see, which are different from ones reported in the RTCP TPLR they received. The RTCP TPLR does not have retransmission request [RFC4588] semantics.
When a receiver gets an RTCP TPLR message, it MUST follow the rules for NACK suppression in RFC 4585 [RFC4585] and refrain from sending a feedback request (e.g., NACK or FIR) for the missing packets reported in the message, which is dealt with in the same way as receiving a NACK.
To increase the robustness to the loss of a TPLR, the RTCP TPLR may be retransmitted. If the additional TPLR arrives at the receiver, the receiver SHOULD deal with the additional TPLR in the same way as receiving the first TPLR for the same packet, and no additional behavior for receiver is required.
A receiver may have sent a feedback message according to the RTP/AVPF scheduling algorithm of RFC 4585 [RFC4585] before receiving an RTCP TPLR message, but further feedback messages for those sequence numbers SHOULD be suppressed after receiving the RTCP TPLR. Nodes that do not understand the RTCP TPLR message will ignore it and might therefore still send feedback according to the AVPF scheduling algorithm of RFC 4585 [RFC4585]. The media source or intermediate nodes cannot be certain that the use of an RTCP TPLR message actually reduces the amount of feedback they receive.
5. Format of RTCP Feedback Messages
This document introduces two new RTCP feedback messages for Third- Party Loss Report. Applications that are employing one or more loss- repair methods MAY use the RTCP TPLR together with their existing loss-repair methods either for every packet they expect to receive or for an application-specific subset of the RTP packets in a session.
The following two sections each define an RTCP TPLR message. Both messages are feedback messages as defined in Section 6.1 of RFC 4585 [RFC4585] and use the header format defined there. Each section defines how to populate the PT, FMT, length, SSRC of packet sender, SSRC of media source, and FCI fields in that header.
5.1. Transport-Layer Feedback: Third-Party Loss Report (TPLR)
This TPLR message is identified by RTCP packet type values PT=RTPFB and FMT=7.
Within the common packet header for feedback messages (as defined in Section 6.1 of RFC 4585 [RFC4585]), the "SSRC of packet sender" field indicates the source of the request, and the "SSRC of media source" field denotes the media sender of the flow for which the indicated losses are being suppressed.
The FCI field MUST contain one or more entries of Transport-Layer Third-Party Loss Early Indication (TLLEI). Each entry applies to the same media source identified by the SSRC contained in the "SSRC of media source" field of the Feedback header. The length field in the TLLEI feedback message MUST be set to N+2, where N is the number of FCI entries.
The FCI field for TLLEI uses a similar message type format to that defined in the Section 6.2.1 of RFC 4585 [RFC4585]. The format is shown in Figure 1.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PID | BLP | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Syntax of an FCI Entry in the TLLEI Feedback Message
Packet ID (PID): 16 bits
The PID field is used to specify a lost packet. The PID field refers to the RTP sequence number of the lost packet.
bitmask of lost packets (BLP): 16 bits
The BLP allows for reporting losses of any of the 16 RTP packets immediately following the RTP packet indicated by the PID. The BLP's definition is identical to that given in Section 6.2.1 of [RFC4585].
5.2. Payload-Specific Feedback: Third-Party Loss Report (TPLR)
This TPLR message is identified by RTCP packet type values PT=PSFB and FMT=8, which are used to suppress FIR [RFC5104] and PLI [RFC4585].
Within the common packet header for feedback messages (as defined in Section 6.1 of RFC 4585 [RFC4585]), the "SSRC of packet sender" field indicates the source of the request, and the "SSRC of media source" is not used and SHALL be set to 0. The SSRCs of the media senders to which this message apply are in the corresponding FCI entries.
The FCI field for a Payload-Specific Third-Party Loss Early Indication (PSLEI) consists one or more FCI entries. Each entry applies to a different media source, identified by its SSRC, the content of which is depicted in Figure 2. The length field in the PSLEI feedback message MUST be set to N+2, where N is the number of FCI entries.
The format is shown in Figure 2.
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SSRC | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Syntax of an FCI Entry in the PSLEI Feedback Message
Synchronization source (SSRC): 32 bits
The SSRC value of the media source that is already aware, or in the process of being made aware, that some receiver lost synchronization with the media stream and for which the PSLEI receiver's own response to any such error is suppressed.
6. SDP Signaling
The Session Description Protocol (SDP) [RFC4566] attribute, rtcp-fb, is defined in Section 4 of RFC 4585 [RFC4585] and may be used to negotiate the capability to handle specific AVPF commands and indications. The ABNF for rtcp-fb is described in Section 4.2 of RFC 4585 [RFC4585]. In this section, we extend the rtcp-fb attribute to include the commands and indications that are described for Third- Party Loss Reports in the present document.
In the ABNF [RFC5234] for rtcp-fb-val defined in RFC 4585 [RFC4585], the feedback type "nack", without parameters, indicates use of the Generic NACK feedback format as defined in Section 6.2.1 of RFC 4585 [RFC4585]. In this document, we define two parameters that indicate the third-party loss supported for use with "nack", namely:
- "tllei" denotes support of Transport-Layer Third-Party Loss Early Indication.
- "pslei" denotes support of Payload-Specific Third-Party Loss Early Indication.
The ABNF for these two parameters for use with "nack" is defined here (please refer to Section 4.2 of RFC4585 [RFC4585] for complete ABNF syntax).
rtcp-fb-val =/ "nack" rtcp-fb-nack-param rtcp-fb-nack-param = SP "tllei" ;Transport-Layer Third-Party ; Loss Early Indication / SP "pslei" ;Payload-Specific Third-Party ; Loss Early Indication / SP token [SP byte-string] ; for future commands/indications token = <as defined in Section 9 of [RFC4566]> byte-string = <as defined in Section 9 of [RFC4566]>
7. Security Considerations
The security considerations documented in [RFC4585] are also applicable for the TPLR messages defined in this document.
More specifically, spoofed or maliciously created TPLR feedback messages cause missing RTP packets to not be repaired in a timely fashion and add risk of (undesired) feedback suppression at RTCP receivers that accept such TPLR messages. Any packet loss detected by a receiver that also receives a TPLR message for the same missing packet(s) will negatively impact the application that relies on the (timely) RTP retransmission capabilities.
A solution to prevent such attack with maliciously sent TPLR messages is to apply an authentication and integrity protection framework for the feedback messages. This can be accomplished using the RTP profile that combines Secure RTP [RFC3711] and AVPF into SAVPF [RFC5124].
Note that intermediaries that are not visible at the RTP layer that wish to send the Third-Party Loss Reports on behalf of the media source can only do so if they spoof the SSRC of the media source. This is difficult if SRTP is in use. If the intermediary is visible at the RTP layer, this is not an issue, provided the intermediary is part of the security context for the session.
8. IANA Considerations
Per this document, IANA has added two values to the '"ack" and "nack" Attribute Values' sub-registry [RFC4585] of the 'Session Description Protocol (SDP) Parameters' registry.
The value registration for the attribute value "nack":
Value name: tllei Long name: Transport-Layer Third-Party Loss Early Indication Usable with: nack Reference: RFC 6642 Value name: pslei Long name: Payload-Specific Third-Party Loss Early Indication Usable with: nack Reference: RFC 6642 The following value has been registered as one FMT value in the "FMT Values for RTPFB Payload Types" registry (http://www.iana.org/assignments/rtp-parameters). RTPFB range Name Long Name Value Reference -------------- --------------------------------- ----- --------- TLLEI Transport-Layer Third-Party 7 [RFC6642] Loss Early Indication The following value has been registered as one FMT value in the "FMT Values for PSFB Payload Types" registry (http://www.iana.org/assignments/rtp-parameters). PSFB range Name Long Name Value Reference -------------- --------------------------------- ----- --------- PSLEI Payload-Specific Third-Party 8 [RFC6642] Loss Early Indication
The authors would like to thank David R. Oran, Magnus Westerlund, Colin Perkins, Ali C. Begen, Tom Van Caenegem, Francis Dupont, Ingemar Johansson, Bill Ver Steeg, Jonathan Lennox, and WeeSan Lee for their valuable comments and suggestions on this document.
10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [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. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006. [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008. [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman, "Codec Control Messages in the RTP Audio-Visual Profile with Feedback (AVPF)", RFC 5104, February 2008. [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K. Norrman, "The Secure Real-time Transport Protocol (SRTP)", RFC 3711, March 2004. [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for Real-time Transport Control Protocol (RTCP)-Based Feedback (RTP/SAVPF)", RFC 5124, February 2008.
10.2. Informative References
[RFC6285] Ver Steeg, B., Begen, A., Van Caenegem, T., and Z. Vax, "Unicast-Based Rapid Acquisition of Multicast RTP Sessions", RFC 6285, June 2011. [MONARCH] Wu, Q., Hunt, G., and P. Arden, "Monitoring Architectures for RTP", Work in Progress, May 2012.
Van Caenegem, T., Ver Steeg, B., and A. Begen,
"Retransmission for Source-Specific Multicast (SSM)
Sessions", Work in Progress, May 2011.
[RFC5117] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 5117, January 2008. [RFC4587] Even, R., "RTP Payload Format for H.261 Video Streams", RFC 4587, August 2006. [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.
Qin Wu (editor) Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China
1700 Alma Dr., Suite 500
Plano, TX 75075
Phone: +1 972-509-5599 EMail: email@example.com
14 David Hamelech
Tel Aviv 64953