Network Working Group | Q. Wu |
Internet-Draft | F. Xia |
Intended status: Standards Track | R. Even |
Expires: January 12, 2012 | Huawei |
July 11, 2011 |
RTCP Extension for Third-party Loss Report
draft-ietf-avtcore-feedback-supression-rtp-05
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 a 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 January 12, 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.
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.
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.
Another use case involves video Fast Update requests. A storm of these feedback messages can occur in conversational multimedia scenarios like Topo-Video-switch-MCU [RFC5117]. In this scenario, packet loss may happen on an upstream link of an intermediate network element such as a Multipoint Control Unit(MCU). 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 further is more precise in the intended uses and less likely to be confusing to receivers. 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.
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 media source or 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.
When a receiver gets a Third Party Loss Report message, it should refrain from sending a feedback request (e.g., NACK or FIR) for the missing packets reported in the message for a period of time. 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 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.
RTCP Third Party Loss Report follows the similar format of message type as RTCP NACK. 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 system that has not seen the actual packet loss. Systems 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 may either simply forward the Third Party Loss Report message, or they may generate their own Third Party Loss Report that reports a superset of the loss reported in the Third Party Loss report they received. The Third Party Loss Report does not have the retransmission request [RFC4588] semantics.
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. One example is the middle box gets the retransmitted packet by sending a NACK upstream and sent it downstream. This retransmitted packet was lost on the downstream link. In order to deal with this, the downstream receiver can start a timeout in which it expected to get a retransmission packet. When this timeout expires and there is no retransmitted packet or a new third party loss report message, it can take its normal behavior as if there is no current retransmission suppression. In this case 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 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.
The FCI field MUST contain one or more entries of transport layer third party loss Early Indication (TLLEI). Each entry applies to a different media source, identified by its SSRC.
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.
The FCI field MUST contain a Payload Specific Third Party Loss Early Indication (PSLEI) entry. Each entry applies to a different media source, 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 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. Note that each receiver sending multicast NACK to its group may still need to send unicast NACK addressed to the media source or distribution source , this may lead to a NACK storm if feedback suppression is not performed and if the RTCP bandwidth limit is misconfigured.
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, NACKs are reflected by the distribution source to the other receivers, and there's no need for distribution source to create the third-party loss report. The third-party loss report may be generated at the distribution source when downstream loss report is received in the Distribution Source Feedback Summary model, since this summary feedback does not mandate the forwarding of NACK downstream.
In order to observe packet loss before the receivers perceive it, one or more intermediate nodes may be placed between the media source and the receivers. These intermediaries monitor for upstream packet loss . These intermediates may be Distribution source, MCUs, RTP translator, or RTP mixers, depending on the precise implementation. If an intermediary notices the loss itself, then it may send a NACK both downstream towards the receivers and upstream towards the media source, to indicate that it has noticed the loss, and to suppress feedback from other downstream receivers. In the SSM case, If the distribution source ,using the simple feedback model, receives a NACK from another system (e.g.,an intermediary), it should redistribute that NACK to all other systems that would not otherwise receive it. If the distribution source, using the summary feedback model, receives a NACK from another system, but, for some reason(e.g., to prevent revealing the identity or existence of a system sending NACK), cannot redistribute that NACK, then it 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. . Therefore the intermediate node can be reasonably certain that it will help the situation by sending a Third Party Loss Report message to all the relevant receivers, thereby indicating to the receivers that they should not transmit feedback messages for a period of time. The intermediate node needs to take into account such factors as the tolerable application delay, packet loss recovery techniques, the network dynamics, and the media type. Loss-repair methods such as retransmission and Forward Error Correction may be used to recover the missing packet.
Alternatively, the media source may directly monitor the amount of feedback reports it receives from downstream. If the media source notices the loss itself, then it may send a NACK downstream towards the receivers to suppress feedback. If the media source receives a NACK from another system, it should redistribute that NACK to all other systems that would not otherwise receive it. If the media source receives a NACK from another system, but, for some reason (e.g., hiding identity or existing a system sending NACK, cannot redistribute that NACK, then it 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.
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 multicast SSM stream from the media source. If one of the BRSes receives downstream loss report (i.e., First loss in Figure 4) on its downstream link, but the others BRSes have not, as the packet loss took place on the SSM tree branch that does not impact the other BRSes. In such case, the BRSes not being impacted are not aware of downstream loss at their downstream link, therefore these BRSes will not create new Third Party Loss Report message and send it to receivers in their downstream path. If the BRS impacted by packet loss has been told the actual packet loss, the BRS MAY choose to create new Third Party Loss Report message and send it to the receivers in the downstream link. Note that BRS must use its own SSRC as packet sender SSRC for transmitting the feedback suppress message.
+------------+ First Loss +----------+ |Burst and |Second Loss | | +-----------| Retrans. |----X--X--->| | | Upstream |Source1(BRS)| Downstream | | Link close | link 1 +------------+ link 1 | | to multicast | | | source | | | | | | | | | +------------+ | RTP | +---------+ | +-----++ |Burst and | | Receiver | |Multicast| V| | +----------| Retrans. |----------->| | | Source +-----|Router|Upstream |Source2(BRS)| Downstream | RTP_Rx | +---------+ | |link 2 +------------+ link 2 | | +-----++ | | | | | | | | | | | | +------------+ | | | |Burst and | | | +-----------+ Retrans. |----------->| | Upstream |Source k(BRS| Downstream | | link k +------------+ link k +----------+
The BRS may also send a NACK upstream to request the retransmitted packet. Upon receiving the retransmitted packet, the BRS sent it downstream. Note that this retransmitted packet may get lost (i.e., second loss in the Figure 4) on the downstream link. In order to deal with this issue, the downstream receiver can start a timeout clock in which it expected to get a retransmission packet. When this timeout expires and there is no retransmitted packet or a new Third Party Loss Report message, it can take its normal behavior as if there is no current retransmission suppression in place.
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 can identify packet loss using co-located monitor [I-D.ietf-avtcore-monarch] by receiving a NACK from another system and then the monitor can use it's own SSRC as packet sender SSRC for transmitting the Third Party Loss Report message and send this message to the unicast receivers that is not aware of packet loss.
In point to multipoint topologies using video switching MCU (Topo-Video-switch-MCU) [RFC5117], the MCU typically forwards a single media stream to each participant, selected from the available input streams. The selection of the input stream is often based on voice activity in the audio-visual conference, but other conference management mechanisms (like presentation mode or explicit floor control) exist as well.
In this case the MCU may identify packet loss by receiving a NACK from another system or may decide to switch to a new source. In both cases the receiver may lose synchronization with the video stream and may send a FIR request. If the MCU itself can detect the mis-synchronization of the video, the MCU can send the FIR suppression message to the receivers and send a FIR request to the video source. As suggested in RFC 5117, this topology is better implemented as an Topo-mixer, in which case the mixer's SSRC is used as packet sender SSRC for transmitting 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 Third Party Loss Report with 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 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 it is authenticated via SRTCP or similar. Accepting un-authenticated Third Party Loss Report can lead to a denial of service attack, where the endpoint accepts poor quality media that could be repaired.
New feedback type and New parameters for RTCP Third Party Loss Report are subject to IANA registration. For general guidelines on IANA considerations for RTCP feedback, refer to [RFC4585].
This document assigns one new feedback type value x in the RTCP feedback report registry to "Third Party Loss Report" with the following registrations format:
Name: TPLR Long Name: Third Party Loss Report Value: TBD Reference: This document.
This document also assigns the parameter value y in the RTCP TPLR feedback report Registry to " Transport Layer Third Party Loss Early Indication ", with the following registrations format:
Name: TLLEI Long name: Transport Layer Third Party Loss Early Indication Value: TBD Reference: this document.
This document also assigns the parameter value z in the RTCP TPLR feedback report Registry to "Payload Specific Third Party Loss Early Indication ", with the following registrations format:
Name: PSLEI Long name: Payload Specific Third Party Loss Early Indication Value: TBD Reference: this document.
Qin Wu sunseawq@huawei.com 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012, China
The contact information for the registrations is:
The authors would like to thank David R Oran, Ali C. Begen, Colin Perkins,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. |
[I-D.ietf-avtcore-monarch] | Wu, Q., Hunt, G. and P. Arden, "Monitoring Architectures for RTP", June 2011. |
[I-D.ietf-pmol-metrics-framework] | Clark, A. and B. Claise, "Framework for Performance Metric Development", January 2011. |
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: