Network Working Group | Q. Wu |
Internet-Draft | F. Xia |
Intended status: Standards Track | R. Even |
Expires: September 08, 2012 | Huawei |
March 09, 2012 |
RTCP Extension for Third-party Loss Report
draft-ietf-avtcore-feedback-supression-rtp-15
In a large RTP session using the 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 SDP signalling is also defined.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 08, 2012.
Copyright (c) 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.
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 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 common cause of such a feedback storm is receivers utilizing RTP retransmission [RFC4588] as a packet loss recovery technique, sending feedback using RTCP NACK messages [RFC4585] without proper dithering of the retransmission requests (e.g., not implementing the RFC 4585 dithering rules or sending NACKs to a feedback target that doesn't redistribute them to other receivers).
Another use case involves video Fast Update requests. A storm of these feedback messages can occur in conversational multimedia scenarios like multipoint video switching conference [RFC4587]. In this scenario, the receiver may lose synchronization with the video stream when speaker is changed in the middle of session. Poorly designed receivers that blindly issue fast update requests (i.e., Full Intra Request (FIR) described in RFC5104 [RFC5104]), can cause an implosion of FIR requests from receivers to the same media source.
RTCP feedback storms may cause short term overload, and in extreme cases to 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 the use of RTCP NACK packet and further is 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 6 provides some examples of when to send the Third Party Loss Report message.
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 [RFC2119].
This document extends the RTCP feedback messages defined in the RTP/AVPF [RFC4585] defining a 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 asks the receiver not to send feedback to it regarding these packets. Intermediaries are variously referred to as Distribution source, Burst/Retransmission Sources (BRS), MCUs, RTP translator, or RTP mixers, depending on the precise use case described Section 6.
RTCP TPLR follows the similar format of message type as RTCP NACK or Full Intra Request Command. However, the 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 RFC4585 [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 a RTCP TPLR SHOULD 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 direction 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 the retransmission request [RFC4588] semantics.
When a receiver gets a RTCP TPLR message, it MUST follow the rules for NACK suppression in RFC4585 [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 NACK.
To increase the robustness to the loss of a TPLR, The RTCP TPLR may be retransmitted. If the additional TPLR arrives at 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 RFC4585 [RFC4585] before receiving a 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 RFC4585 [RFC4585]. The media source or intermediate nodes cannot be certain that the use of a RTCP TPLR message actually reduces the amount of feedback it receives.
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 a RTCP TPLR message. Both messages are feedback messages as defined in section 6.1 of RFC4585 [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.
This TPLR message is identified by RTCP packet type value PT=RTPFB and FMT=TBA1.
Within the common packet header for feedback messages (as defined in section 6.1 of RFC4585 [RFC4585]), the "SSRC of packet sender" field indicates the source of the request, and the "SSRC of media source" denotes the media sender of the flow for which the indicated losses are being suppressed.
The Feedback Control Information (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 Feedback header. The length field in the TLLEI feedback message MUST be set to 2+1*N, where N is the number of FCI entries.
The FCI field for TLLEI uses the similar format of message Types defined in the section 6.2.1 of RFC4585 [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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
This TPLR message is identified by RTCP packet type value PT=PSFB and FMT=TBA2, which is used to suppress FIR [RFC5104] and PLI [RFC4585].
Within the common packet header for feedback messages (as defined in section 6.1 of RFC4585 [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 applies 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 2+1*N, 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The Session Description Protocol (SDP) [RFC4566] attribute, rtcp-fb, is defined in the Section 4 of RFC4585 [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 RFC4585 [RFC4585]. In this section, we extend the rtcp-fb attribute to include the commands and indications that are described for third party loss report in the present document.
In the ABNF [RFC5234] for rtcp-fb-val defined in RFC4585 [RFC4585], the feedback type "nack", without parameters, indicates use of the Generic NACK feedback format as defined in Section 6.2.1of RFC4585 [RFC4585]. In this document, we define two parameters that indicate the third party loss supported for use with "nack", namely:
The ABNF for these two parameters for "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 4.2 of [RFC4585] >
Refer to Section 4.2 of RFC4585 [RFC4585] for a detailed description and the full syntax of the "rtcp-fb" attribute.
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 the particular mechanisms.
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 the RFC5760 [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 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 a 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 feedback summary model can be reasonably certain that it will help the situation (i.e., unable receive the NACK) by sending this RTCP TPLR message to all the relevant receivers impacted by the packet loss.
The typical RAMS architecture [RFC6285] may have several Burst/ Retransmission Sources(BRS) behind the multicast source (MS) placed at the same level. These BRSes will receive the primary multicast RTP stream from the media source and cache most recent packets after joining multicast session. If packet loss happens at the upstream of all the BRSs or the downstream of BRSes. One of the BRSes or all the BRSes may send a RTCP NACK or RTCP TPLR message to the DS, where the SSRC in this RTCP NACK or RTCP TPLR message is the BRS that is sending the message. The DS forwards/reflects this message down on the primary SSM. The details on how DS deal with this message is specified in [RETRANSMISSION-FOR-SSM].
A Transport Translator (Topo-Trn-Translator), as defined in RFC5117 [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 RTCP TPLR message received from upstream in the same way as forwarding other RTCP traffic. If the translator acting as the monitor [MONARCH] is aware of packet loss, it may use the SSRC of monitor as packet sender SSRC to create NACK message and send it to the receivers that are not aware of packet loss.
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 participants. 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. e.g., when the RTP Mixer starts to receive FIR from some participants it can suppress the remaining session participants from sending FIR by sending out a RTCP TPLR message.
A Mixer, in accordance with RFC5117 [RFC5117], aggregates multiple RTP streams from other session participants and generates a new RTP stream sent to the session participants. In some cases, the video frames may get badly screwed up between media source and the mixer. In such case, the mixer need 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 a RTCP TPLR message to these 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 like to suppress the remaining session participants from sending FIR or PLI by forwarding the FIR/PLI from one session participant to others.
The defined messages have certain properties that have security implications. These must be addressed and taken into account by users of this protocol.
Spoofed or maliciously created feedback messages of the type defined in this specification can have the following implications:
Sending the spurious Third Party Loss Report packet(e.g., the RTCP TPLR with the wrong sequence number of lost packet) that causes missing RTP packets to not be repaired in a timely fashion. If a receiver accepts such unauthenticated packet, an attacker could cause packet loss disrupting an important part of a session, preemptively sending feedback suppression. An attacker that is also a receiver has enough information to suppress all the feedbacks from any other listeners that don't accept unauthenticated packets.
To prevent these attacks, there is a need to apply authentication and integrity protection of the feedback messages. This can be accomplished against threats external to the current RTP session 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 in case 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.
Also note that endpoints that receive a Third Party Loss Report would be well-advised to ignore it, unless the security is in place to authenticate the sender of the Third Party Loss Report. Accepting Third Party Loss Report from un-authenticated sender can lead to a denial of service attack, where the endpoint accepts poor quality media that could be repaired.
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 4585. Value name: pslei Long name: Payload Specific Third Party Usable with: nack Reference: RFC 4585.
This document instructs IANA to add two values to the '"ack" and "nack" Attribute Values' sub-registry [RFC4585] of the 'Session Description Protocol (SDP) Parameters' registry.
RTPFB range Name Long Name Value Reference -------------- --------------------------------- ----- --------- TLLEI Transport Layer Third Party TBA1 [RFCXXXX] Loss Early Indication
The following value have been registered as one FMT value in the "FMT Values for RTPFB Payload Types" registry located at the time of publication at: http://www.iana.org/assignments/rtp-parameters
PSFB range Name Long Name Value Reference -------------- --------------------------------- ----- -------- PSLEI Payload Specific Third Party TBA2 [RFCXXXX] Loss Early Indication
The following value have been registered as one FMT value in the "FMT Values for PSFB Payload Types" registry located at the time of publication at: http://www.iana.org/assignments/rtp-parameters
The authors would like to thank David R Oran, Magnus Westerlund, Colin Perkins, Ali C. Begen, Tom VAN CAENEGEM, Ingemar Johansson S, Bill Ver Steeg, Jonathan Lennox, WeeSan Lee for their valuable comments and suggestions on this document.
[RFC6285] | Steeg, B., Begen, A., Caenegem, T. and Z. Vax, "Unicast- Based Rapid Acquisition of Multicast RTP Sessions", June 2011. |
[MONARCH] | Wu, Q., Hunt, G. and P. Arden, "Monitoring Architectures for RTP", June 2011. |
[RETRANSMISSION-FOR-SSM] | Caenegem, T., Steeg, B. and A. Begen, "Retransmission for Source-Specific Multicast (SSM) Sessions", 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. |
Note to the RFC-Editor: please remove this section prior to publication as an RFC.
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version:
The following are the major changes compared to previous version: