Network Working Group | Q. Wu |
Internet-Draft | F. Xia |
Intended status: Standards Track | R. Even |
Expires: March 29, 2012 | Huawei |
September 26, 2011 |
RTCP Extension for Third-party Loss Report
draft-ietf-avtcore-feedback-supression-rtp-07
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 network 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 March 29, 2012.
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.
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. 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 based, sending feedback using RTCP NACK messages [RFC4585] without proper dithering of the retransmission requests (e.g., implementing the RFC 4585 dithering rules or sending NACKs to a middlebox 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]), 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.
One approach to this, suggested in [DVB-IPTV], involves sending a NACK message to the other clients (or receiver) in the same group as the sender of NACK. However NACK is defined as a receiver report sent from a receiver observing a packet loss, therefore it only inform others that sender of NACK detected loss while the case the sender of the feedback has received reports that the indicated packets were lost is not covered. 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 for a period of time 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. Section 6 provides some examples of when to send the Third Party Loss Report message.
The keywords "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].
This document extends the RTCP feedback messages defined in the Audio-Visual Profile with feedback (RTP/AVPF) [RFC4585] defining a Third Party Loss Report message. The Third Party Loss Report message can be used by the intermediaries to inform the receiver that the sender of the Third Party Loss Report has received reports that the indicated packets were lost, and asks the receiver not to send feedback to it regarding these packets.
RTCP Third Party Loss Report follows the similar format of message type as RTCP NACK or Full Intra Request Command. However, the Third Party Loss Report 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 Third Party Loss Report message is generated by a RTP system that has not seen the actual packet loss and sent following the same timing rule as sending NACK defined in [RFC4585], e.g., The TPLR message may be sent in a regular full compound RTCP packet or in an early RTCP packet, as per AVPF. RTP Systems in the network that receive a Third Party Loss Report SHOULD NOT initiate their own additional Third Party Loss Report messages for the same packet sequence numbers. They should simply forward the Third Party Loss Report message received from upstream direction, additionally, they may generate their own Third Party Loss Report that reports a set of the losses they see, which are different from ones reported in the Third Party Loss report they received. The Third Party Loss Report does not have the retransmission request [RFC4588] semantics.
When a receiver gets a Third Party Loss Report message, it should start a timer for this message and refrain from sending a feedback request (e.g., NACK or FIR) for the missing packets reported in the message during the lifetime of the timer. The timer value shall be based on the observed round-trip time. A receiver should compute an estimate of the round-trip time (RTT) to the sender of TPLR from RTCP report round-trip time if available, or its reception time of the reflected RTCP FB message (e.g.,NACK), or any other means.
To increase the robustness to the loss of a TPLR or of a transmission packet, a receiver is allowed to receive additional TPLR for the same packet. In the case the first TPLR is lost and the additional TPLR arrives at the receiver, the receiver should immediately refresh the timer. When the timer for this message expires and there is no retransmitted packet or a new Third Party Loss Report message, the receiver should take its normal behavior as if there is no current retransmission suppression.
A receiver may still have sent a Feedback message according to the RTP/AVPF scheduling algorithm of [RFC4585] before receiving a Third Party Loss Report message, but further feedback messages for those sequence numbers will be suppressed by this technique for a certain period of time. Nodes that do not understand the Third Party Loss Report message will ignore it, and might therefore still send feedback according to the AVPF scheduling algorithm of [RFC4585]. The media source or intermediate nodes cannot assume that the use of a Third Party Loss Report message actually reduces the amount of feedback it receives.
Since Third Party Loss Report interacts strongly with repair timing, it has to work together with feedback to not adversely impact the repair of lost source packets. In order not to incur a lot of NACK requests due to additional TPLR described above, it is recommended that the RTP system sending TPLR should be implemented more closer to the source. Also when the loss was detected and repair initiated much closer to the source, the delay for the receiver to recover from packet loss can be reduced through the combination of intermediary feedback to the source and Third Party Loss Report downstream.
This document registers two new RTCP Feedback messages for Third Party Loss Report. Applications that are employing one or more loss- repair methods MAY use the Third Party Loss Report 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. In other words, receivers MAY ignore Third Party Loss Report messages, but SHOULD react to them unless they have good reason to still send feedback messages despite having been requested to suppress them.
This Third Party Loss Report message is an extension to the RTCP Transport Layer Feedback Report and identified by RTCP packet type value PT=RTPFB and FMT=TBD.
Within the common packet header for feedback messages (as defined in section 6.1 of [RFC4585]), the "SSRC of packet sender" field indicates the source of the request, and the "SSRC of media source" denotes the media sender.
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 Feedback header.
The Feedback Control Information (FCI) for TLLEI uses the similar format of message Types defined in the section 6.2.1 of [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 message is an extension to the RTCP Payload Specific Feedback report and identified by RTCP packet type value PT=PSFB and FMT=TBD, which is used to suppress FIR [RFC5104]or PLI [RFC4585].
Within the common packet header for feedback messages (as defined in section 6.1 of [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 MUST contain a Payload Specific Third Party Loss Early Indication (PSLEI) entry. Each entry applies to a different media Source that is requested to send a decoder refresh point or that is indicated that it lost synchronization with the video stream, identified by its SSRC.
The Feedback Control Information (FCI) for PSLEI uses the similar format of message Types defined in the section 4.3.1.1 of [RFC5104]. 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 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Seq nr. | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
A new feedback value "tplr" needs to be defined for the Third Party Loss Report message to be used with Session Description Protocol (SDP) [RFC4566] using the Augmented Backus-Naur Form (ABNF) [RFC4585].
The "tplr" feedback value SHOULD be used with parameters that indicate the third party loss supported. In this document, we define two such parameter, namely:
In the ABNF for rtcp-fb-val defined in [RFC4585], there is a placeholder called rtcp-fb-id to define new feedback types. "tplr" is defined as a new feedback type in this document, and the ABNF for the parameters for tplr is defined here (please refer to section 4.2 of [RFC4585] for complete ABNF syntax).
rtcp-fb-val =/ "tplr" rtcp-fb-tplr-param rtcp-fb-tplr-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 byte-string = <as defined in section 4.2 of [RFC4585] >
Refer to Section 4.2 of [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 [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], 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 Third Party Loss Report, instead, 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 Third Party Loss Report to the systems that were unable to receive the NACK, and won't receive the NACK via other means. since the summary feedback does not mandate the forwarding of NACK downstream. The Third Party Loss Report can be generated at the distribution source when downstream loss is told (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 by sending this Third Party Loss Report 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 one or more BRSes. one of the BRSes or all the BRSes may send a NACK or TPLR message to the DS, where the SSRC in this NACK or TPLR message is the one of the BRS. 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] is typically forwarding the RTP and RTCP traffic between RTP clients, for example converting between multicast and unicast for domains that do not support multicast. The translator acting as quality monitoring [Monarch] may suffer a loss of important video packets. In this case, the translator may trigger repair by the media sender and at the same time,use it's own SSRC as packet sender SSRC to create a new Third Party Loss Report message and send it to the receivers that is 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 Third party Loss report message.
A Mixer, in accordance with [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 initiates FIR or PLI towards the media source on behalf of all the session participants and send out a Third party Loss report message to these session participants that may or are expected to send a PLI or FIR Another possible way for mixer to deal with, is 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 sending out a Third party Loss report message.
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 (e.g., the Third Party Loss Report with the wrong sequence number of lost packet) that makes missing RTP packets can not be compensated.
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 middleboxes 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 middlebox is visible at the RTP layer, this is not an issue, provided the middlebox 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.
Value name: tplr Long Name: Third Party Loss Reports Reference: This document
The new value "TPLR" has been registered with IANA in the "rtcp-fb" Attribute Values registry located at the time of publication at: http://www.iana.org/assignments/sdp-parameters
A new registry " Third Party Loss Report Messages" has been created to hold "tplr" parameters located at time of publication at: http://www.iana.org/assignments/sdp-parameters
New registration in this registry follows the "Specification required" policy as defined by [RFC2434]. In addition, they are required to indicate any additional RTCP feedback types, such as "nack" and "ack".
RTPFB range Name Long Name Value Reference -------------- --------------------------------- ----- --------- TLLEI Transport Layer Third Party X [RFCXXXX] Loss Early Indication
The following values have been registered as FMT values 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 X [RFCXXXX] Loss Early Indication
The following values have been registered as FMT values 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.
[RFC5740] | Adamson, B., Bormann, C., Handley, M. and J. Macker, "NACK-Oriented Reliable Multicast (NORM) Transport Protocol", November 2009. |
[DVB-IPTV] | ETSI Standard, "Digital Video Broadcasting(DVB); Transport of MPEG-2 TS Based DVB Services over IP Based Networks", ETSI TS 102 034, V1.4.1 , August 2009. |
[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. |
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: