draft-ietf-avtcore-feedback-supression-rtp-09.txt   draft-ietf-avtcore-feedback-supression-rtp-10.txt 
Network Working Group Q. Wu Network Working Group Q. Wu
Internet-Draft F. Xia Internet-Draft F. Xia
Intended status: Standards Track R. Even Intended status: Standards Track R. Even
Expires: June 1, 2012 Huawei Expires: August 9, 2012 Huawei
November 29, 2011 February 6, 2012
RTCP Extension for Third-party Loss Report RTCP Extension for Third-party Loss Report
draft-ietf-avtcore-feedback-supression-rtp-09 draft-ietf-avtcore-feedback-supression-rtp-10
Abstract Abstract
In a large RTP session using the RTCP feedback mechanism defined in In a large RTP session using the RTCP feedback mechanism defined in
RFC 4585, a feedback target may experience transient overload if some RFC 4585, a feedback target may experience transient overload if some
event causes a large number of receivers to send feedback at once. event causes a large number of receivers to send feedback at once.
This overload is usually avoided by ensuring that feedback reports This overload is usually avoided by ensuring that feedback reports
are forwarded to all receivers, allowing them to avoid sending are forwarded to all receivers, allowing them to avoid sending
duplicate feedback reports. However, there are cases where it is not duplicate feedback reports. However, there are cases where it is not
recommended to forward feedback reports, and this may allow feedback recommended to forward feedback reports, and this may allow feedback
skipping to change at page 1, line 41 skipping to change at page 1, line 41
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 1, 2012. This Internet-Draft will expire on August 9, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 4 3. Protocol Overview . . . . . . . . . . . . . . . . . . . . . . 4
4. Format of RTCP Feedback Messages . . . . . . . . . . . . . . . 5 4. Format of RTCP Feedback Messages . . . . . . . . . . . . . . . 5
4.1. Transport Layer Feedback: Third-party Loss Report . . . . 5 4.1. Transport Layer Feedback: Third-party Loss Report . . . . 5
4.2. Payload Specific Feedback: Third-party Loss Report . . . . 6 4.2. Payload Specific Feedback: Third-party Loss Report . . . . 6
5. SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . . 7 5. SDP Signaling . . . . . . . . . . . . . . . . . . . . . . . . 7
6. Example Use Cases . . . . . . . . . . . . . . . . . . . . . . 8 6. Example Use Cases . . . . . . . . . . . . . . . . . . . . . . 8
6.1. Source Specific Multicast (SSM) use case . . . . . . . . . 8 6.1. Source Specific Multicast (SSM) use case . . . . . . . . . 8
6.2. Unicast based Rapid Acquisition of Multicast Stream 6.2. Unicast based Rapid Acquisition of Multicast Stream
(RAMS) use case . . . . . . . . . . . . . . . . . . . . . 9 (RAMS) use case . . . . . . . . . . . . . . . . . . . . . 8
6.3. RTP Transport Translator use case . . . . . . . . . . . . 9 6.3. RTP Transport Translator use case . . . . . . . . . . . . 9
6.4. Multipoint Control Unit (MCU) use case . . . . . . . . . . 9 6.4. Multipoint Control Unit (MCU) use case . . . . . . . . . . 9
6.5. Mixer use case . . . . . . . . . . . . . . . . . . . . . . 10 6.5. Mixer use case . . . . . . . . . . . . . . . . . . . . . . 9
7. Security Considerations . . . . . . . . . . . . . . . . . . . 10 7. Security Considerations . . . . . . . . . . . . . . . . . . . 10
8. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . 11 8. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . 10
9. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 11 9. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 11
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
10.1. Normative References . . . . . . . . . . . . . . . . . . . 12 10.1. Normative References . . . . . . . . . . . . . . . . . . . 11
10.2. Informative References . . . . . . . . . . . . . . . . . . 12 10.2. Informative References . . . . . . . . . . . . . . . . . . 12
Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 13 Appendix A. Change Log . . . . . . . . . . . . . . . . . . . . . 13
A.1. draft-ietf-avtcore-feedback-suppression-rtp-01 . . . . . . 13 A.1. draft-ietf-avtcore-feedback-suppression-rtp-01 . . . . . . 13
A.2. draft-ietf-avtcore-feedback-suppression-rtp-02 . . . . . . 14 A.2. draft-ietf-avtcore-feedback-suppression-rtp-02 . . . . . . 13
A.3. draft-ietf-avtcore-feedback-suppression-rtp-03 . . . . . . 14 A.3. draft-ietf-avtcore-feedback-suppression-rtp-03 . . . . . . 14
A.4. draft-ietf-avtcore-feedback-suppression-rtp-04 . . . . . . 14 A.4. draft-ietf-avtcore-feedback-suppression-rtp-04 . . . . . . 14
A.5. draft-ietf-avtcore-feedback-suppression-rtp-05 . . . . . . 15 A.5. draft-ietf-avtcore-feedback-suppression-rtp-05 . . . . . . 14
A.6. draft-ietf-avtcore-feedback-suppression-rtp-06 . . . . . . 15 A.6. draft-ietf-avtcore-feedback-suppression-rtp-06 . . . . . . 15
A.7. draft-ietf-avtcore-feedback-suppression-rtp-07 . . . . . . 15 A.7. draft-ietf-avtcore-feedback-suppression-rtp-07 . . . . . . 15
A.8. draft-ietf-avtcore-feedback-suppression-rtp-08 . . . . . . 16 A.8. draft-ietf-avtcore-feedback-suppression-rtp-08 . . . . . . 15
A.9. draft-ietf-avtcore-feedback-suppression-rtp-09 . . . . . . 16 A.9. draft-ietf-avtcore-feedback-suppression-rtp-09 . . . . . . 16
A.10. draft-ietf-avtcore-feedback-suppression-rtp-10 . . . . . . 16
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 16
1. Introduction 1. Introduction
RTCP feedback messages [RFC4585] allow the receivers in an RTP RTCP feedback messages [RFC4585] allow the receivers in an RTP
session to report events and ask for action from the media source (or session to report events and ask for action from the media source (or
a delegated feedback target when using unicast RTCP feedback with SSM a delegated feedback target when using unicast RTCP feedback with SSM
[RFC5760]). There are cases where multiple receivers may initiate [RFC5760]). There are cases where multiple receivers may initiate
the same, or an equivalent message towards the same media source. the same, or an equivalent message towards the same media source or
When the receiver count is large, this behavior may cause transient the same feedback target. When the receiver count is large, this
overload of the media source, the network or both. This is known as behavior may cause transient overload of the media source, the
a "feedback storm" or a "NACK storm". One common cause of such a network or both. This is known as a "feedback storm" or a "NACK
feedback storm is receivers utilizing RTP retransmission [RFC4588] as storm". One common cause of such a feedback storm is receivers
a packet loss recovery technique, sending feedback using RTCP NACK utilizing RTP retransmission [RFC4588] as a packet loss recovery
messages [RFC4585] without proper dithering of the retransmission technique, sending feedback using RTCP NACK messages [RFC4585]
requests (e.g., not implementing the RFC 4585 dithering rules or without proper dithering of the retransmission requests (e.g., not
sending NACKs to a middlebox that doesn't redistribute them to other implementing the RFC 4585 dithering rules or sending NACKs to a
receivers). feedback target that doesn't redistribute them to other receivers).
Another use case involves video Fast Update requests. A storm of Another use case involves video Fast Update requests. A storm of
these feedback messages can occur in conversational multimedia these feedback messages can occur in conversational multimedia
scenarios like multipoint video switching conference [RFC4587]. In scenarios like multipoint video switching conference [RFC4587]. In
this scenario, the receiver may lose synchronization with the video this scenario, the receiver may lose synchronization with the video
stream when speaker is changed in the middle of session. Poorly stream when speaker is changed in the middle of session. Poorly
designed receivers that blindly issue fast update requests (i.e., designed receivers that blindly issue fast update requests (i.e.,
Full Intra Request (FIR) described in [RFC5104]), can cause an Full Intra Request (FIR) described in [RFC5104]), can cause an
implosion of FIR requests from receivers to the same media source. implosion of FIR requests from receivers to the same media source.
RTCP feedback storms may cause short term overload, and in extreme RTCP feedback storms may cause short term overload, and in extreme
cases to pose a possible risk of increasing network congestion on the cases to pose a possible risk of increasing network congestion on the
control channel (e.g. RTCP feedback), the data channel, or both. It control channel (e.g. RTCP feedback), the data channel, or both. It
is therefore desirable to provide a way of suppressing unneeded is therefore desirable to provide a way of suppressing unneeded
feedback. feedback. This document specifies a new third-party loss report for
this function. It supplements the existing the use of RTCP NACK
One approach to this, suggested in [DVB-IPTV], involves sending a packet and further is more precise in the uses where the network is
NACK message to the other clients (or receiver) in the same group as active to suppress feedback. It tells receivers explicitly that
the sender of NACK. However NACK is defined as a receiver report feedback for a particular packet or frame loss is not needed for a
sent from a receiver observing a packet loss, therefore it only period of time and can provide an early indication before the
inform others that sender of NACK detected loss while the case where receiver reacts to the loss and invokes its packet loss repair
the sender of the feedback has received reports that the indicated machinery. Section 6 provides some examples of when to send the
packets were lost is not covered. This document specifies a new Third Party Loss Report message.
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.
2. Terminology 2. Terminology
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
3. Protocol Overview 3. Protocol Overview
This document extends the RTCP feedback messages defined in the This document extends the RTCP feedback messages defined in the
Audio-Visual Profile with feedback (RTP/AVPF) [RFC4585] defining a Audio-Visual Profile with feedback (RTP/AVPF) [RFC4585] defining a
Third Party Loss Report message. The Third Party Loss Report message Third Party Loss Report message. The Third Party Loss Report message
can be used by the intermediaries to inform the receiver that the can be used by the intermediaries to inform the receiver that the
sender of the Third Party Loss Report has received reports 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 indicated packets were lost, and asks the receiver not to send
feedback to it regarding these packets. 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 in section 6.
RTCP Third Party Loss Report follows the similar format of message RTCP Third Party Loss Report follows the similar format of message
type as RTCP NACK or Full Intra Request Command. However, the Third 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 Party Loss Report is defined as an indication that the sender of the
feedback has received reports that the indicated packets were lost, feedback has received reports that the indicated packets were lost,
while NACK [RFC4585] just indicates that the sender of the NACK while NACK [RFC4585] just indicates that the sender of the NACK
observed that these packets were lost. The Third Party Loss Report observed that these packets were lost. The Third Party Loss Report
(TPLR) message is generated by a RTP system that may not seen the (TPLR) message is generated by a intermediary that may not seen the
actual packet loss. It is sent following the same timing rule as actual packet loss. It is sent following the same timing rule as
sending NACK defined in [RFC4585]. The TPLR feedback message may be sending NACK defined in [RFC4585]. The TPLR feedback message may be
sent in a regular full compound RTCP packet or in an early RTCP sent in a regular full compound RTCP packet or in an early RTCP
packet, as per the RTP/AVPF rules. RTP Systems in the network that packet, as per the RTP/AVPF rules. Intermediaries in the network
receive a Third Party Loss Report SHOULD NOT send their own that receive a Third Party Loss Report SHOULD NOT send their own
additional Third Party Loss Report messages for the same packet additional Third Party Loss Report messages for the same packet
sequence numbers. They should simply forward the Third Party Loss sequence numbers. They should simply forward the Third Party Loss
Report message received from upstream direction, additionally, they Report message received from upstream direction to the receiver(s),
may generate their own Third Party Loss Report that reports a set of additionally, they may generate their own Third Party Loss Report
the losses they see, which are different from ones reported in the that reports a set of the losses they see, which are different from
Third Party Loss report they received. The Third Party Loss Report ones reported in the Third Party Loss report they received. The
does not have the retransmission request [RFC4588] semantics. Third Party Loss Report does not have the retransmission request
[RFC4588] semantics.
When a receiver gets a Third Party Loss Report message, it should When a receiver gets a Third Party Loss Report message, it should
follow the rules for NACK suppression in RFC 4585 and refrain from follow the rules for NACK suppression in RFC 4585 and refrain from
sending a feedback request (e.g., NACK or FIR) for the missing 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 packets reported in the message,which is dealt with in the same way
as receiving NACK. as receiving NACK.
To increase the robustness to the loss of a TPLR or of a transmission To increase the robustness to the loss of a TPLR, TPLR may be
RTP data packet, TPLR or the RTP packet for the same missing Packet retransmitted. If the additional TPLR arrives at receiver, the
may be retransmitted when RTP systems are aware that the same packet
loss occurs again. If the additional TPLR arrives at receiver, the
receiver should deal with the additional TPLR in the same way as receiver should deal with the additional TPLR in the same way as
receiving the first TPLR for the same packet and no additional receiving the first TPLR for the same packet and no additional
behavior for receiver is required. When the retransmitted packet is behavior for receiver is required.
received by the receiver,it should take its normal behavior as if
there is no current feedback suppression.
A receiver may still have sent a Feedback message according to the A receiver may still have sent a Feedback message according to the
RTP/AVPF scheduling algorithm of [RFC4585] before receiving a Third RTP/AVPF scheduling algorithm of [RFC4585] before receiving a Third
Party Loss Report message, but further feedback messages for those Party Loss Report message, but further feedback messages for those
sequence numbers SHOULD be suppressed for a period of time after sequence numbers SHOULD be suppressed for a period of time after
receiving the TPLR. Nodes that do not understand the Third Party receiving the TPLR. Nodes that do not understand the Third Party
Loss Report message will ignore it, and might therefore still send Loss Report message will ignore it, and might therefore still send
feedback according to the AVPF scheduling algorithm of [RFC4585]. feedback according to the AVPF scheduling algorithm of [RFC4585].
The media source or intermediate nodes cannot be certain that the use The media source or intermediate nodes cannot be certain that the use
of a Third Party Loss Report message actually reduces the amount of of a Third Party Loss Report message actually reduces the amount of
feedback it receives. 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 media source. When the loss was detected and repair initiated
much closer to the media 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.
4. Format of RTCP Feedback Messages 4. Format of RTCP Feedback Messages
This document registers two new RTCP Feedback messages for Third This document registers two new RTCP Feedback messages for Third
Party Loss Report. Applications that are employing one or more loss- Party Loss Report. Applications that are employing one or more loss-
repair methods MAY use the Third Party Loss Report together with repair methods MAY use the Third Party Loss Report together with
their existing loss-repair methods either for every packet they their existing loss-repair methods either for every packet they
expect to receive, or for an application-specific subset of the RTP expect to receive, or for an application-specific subset of the RTP
packets in a session. In other words, receivers MAY ignore Third packets in a session. In other words, receivers MAY ignore Third
Party Loss Report messages, but SHOULD react to them unless they have Party Loss Report messages, but SHOULD react to them unless they have
good reason to still send feedback messages despite having been good reason to still send feedback messages despite having been
skipping to change at page 6, line 6 skipping to change at page 5, line 35
4.1. Transport Layer Feedback: Third-party Loss Report 4.1. Transport Layer Feedback: Third-party Loss Report
This Third Party Loss Report message is an extension to the RTCP This Third Party Loss Report message is an extension to the RTCP
Transport Layer Feedback Report and identified by RTCP packet type Transport Layer Feedback Report and identified by RTCP packet type
value PT=RTPFB and FMT=TBD. value PT=RTPFB and FMT=TBD.
Within the common packet header for feedback messages (as defined in Within the common packet header for feedback messages (as defined in
section 6.1 of [RFC4585]), the "SSRC of packet sender" field section 6.1 of [RFC4585]), the "SSRC of packet sender" field
indicates the source of the request, and the "SSRC of media source" indicates the source of the request, and the "SSRC of media source"
denotes the media sender of the flow for which the indicated losses denotes the media sender of the flow for which the indicated losses
are being suppressed . are being suppressed.
The FCI field MUST contain one or more entries of transport layer The FCI field MUST contain one or more entries of transport layer
third party loss Early Indication (TLLEI). Each entry applies to the third party loss Early Indication (TLLEI). Each entry applies to the
same media source identified by the SSRC contained in the SSRC of same media source identified by the SSRC contained in the SSRC of
media source field of Feedback header. The length of the TLLEI media source field of Feedback header. The length of the TLLEI
feedback message MUST be set to 2+1*N, where N is the number of FCI feedback message MUST be set to 2+1*N, where N is the number of FCI
entries. entries.
The Feedback Control Information (FCI) for TLLEI uses the similar The Feedback Control Information (FCI) for TLLEI uses the similar
format of message Types defined in the section 6.2.1 of [RFC4585]. format of message Types defined in the section 6.2.1 of [RFC4585].
skipping to change at page 6, line 36 skipping to change at page 6, line 22
Packet ID (PID): 16 bits Packet ID (PID): 16 bits
The PID field is used to specify a lost packet. The PID field The PID field is used to specify a lost packet. The PID field
refers to the RTP sequence number of the lost packet. refers to the RTP sequence number of the lost packet.
bitmask of proceeding lost packets (BLP): 16 bits bitmask of proceeding lost packets (BLP): 16 bits
The BLP allows for reporting losses of any of the 16 RTP packets The BLP allows for reporting losses of any of the 16 RTP packets
immediately following the RTP packet indicated by the PID. The immediately following the RTP packet indicated by the PID. The
BLP's definition is identical to that given in [RFC4585]. BLP's definition is identical to that given in the section 6.2.1
of [RFC4585].
4.2. Payload Specific Feedback: Third-party Loss Report 4.2. Payload Specific Feedback: Third-party Loss Report
This message is an extension to the RTCP Payload Specific Feedback This message is an extension to the RTCP Payload Specific Feedback
report and identified by RTCP packet type value PT=PSFB and FMT=TBD, report and identified by RTCP packet type value PT=PSFB and FMT=TBD,
which is used to suppress FIR [RFC5104]or PLI [RFC4585]. which is used to suppress FIR [RFC5104]and PLI [RFC4585].
Within the common packet header for feedback messages (as defined in Within the common packet header for feedback messages (as defined in
section 6.1 of [RFC4585]), the "SSRC of packet sender" field section 6.1 of [RFC4585]), the "SSRC of packet sender" field
indicates the source of the request, and the "SSRC of media source" 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 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. which this message applies are in the corresponding FCI entries.
The Feedback Control Information (FCI) for a Payload Specific Third The Feedback Control Information (FCI) for a Payload Specific Third
Party Loss Early Indication (PSLEI) consists one or more FCI entries. Party Loss Early Indication (PSLEI) consists one or more FCI entries.
Each entry applies to a different media Source, identified by its Each entry applies to a different media Source, identified by its
skipping to change at page 7, line 22 skipping to change at page 7, line 9
0 1 2 3 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 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 | | SSRC |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Syntax of an FCI Entry in the PSLEI Feedback Message Figure 2: Syntax of an FCI Entry in the PSLEI Feedback Message
Synchronization source (SSRC):32 bits Synchronization source (SSRC):32 bits
The SSRC value of the media source that is requested to send a The SSRC value of the media source that has already been aware the
decoder refresh point or that is indicated that it lost receiver lost synchronization with the video stream and signal to
synchronization with the video stream. the receiver not sending a decoder refresh point.
5. SDP Signaling 5. SDP Signaling
A new feedback value "tplr" needs to be defined for the Third Party The Session Description Protocol (SDP) [RFC4566] attribute, rtcp-fb,
Loss Report message to be used with Session Description Protocol is defined in the Section 4 of [RFC4585] and may be used to negotiate
(SDP) [RFC4566] using the Augmented Backus-Naur Form (ABNF) the capability to handle specific AVPF commands and indications. The
[RFC4585]. ABNF for rtcp-fb is described in section 4.2 of [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.
The "tplr" feedback value SHOULD be used with parameters that In the ABNF [RFC5234] for rtcp-fb-val defined in [RFC4585], the
indicate the third party loss supported. In this document, we define feedback type "nack", without parameters, indicates use of the
two such parameter, namely: Generic NACK feedback format as defined in Section 6.2.1of [RFC4585].
In this document, we define two parameters that indicate the third
party loss supported for use with "nack", namely:
o "tllei" denotes support of transport layer third party loss early o "tllei" denotes support of transport layer third party loss early
indication. indication.
o "pslei" denotes support of payload specific third party loss early o "pslei" denotes support of payload specific third party loss early
indication. indication.
In the ABNF [RFC5234] for rtcp-fb-val defined in [RFC4585], there is The ABNF for these two parameters for "nack" is defined here (please
a placeholder called rtcp-fb-id to define new feedback types. "tplr" refer to section 4.2 of [RFC4585] for complete ABNF syntax).
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-val =/ "nack" rtcp-fb-nack-param
rtcp-fb-tplr-param = SP "tllei" rtcp-fb-nack-param = SP "tllei"
;transport layer third party ;transport layer third party
; loss early indication ; loss early indication
/ SP "pslei" / SP "pslei"
;payload specific third party ;payload specific third party
; loss early indication ; loss early indication
/ SP token [SP byte-string] / SP token [SP byte-string]
; for future commands/indications ; for future commands/indications
token = <as defined in section 9 of [RFC4566]> token = <as defined in section 9 of [RFC4566]>
byte-string = <as defined in section 4.2 of [RFC4585] > byte-string = <as defined in section 4.2 of [RFC4585] >
skipping to change at page 8, line 31 skipping to change at page 8, line 17
The operation of feedback suppression is similar for all types of RTP The operation of feedback suppression is similar for all types of RTP
sessions and topologies [RFC5117], however the exact messages used sessions and topologies [RFC5117], however the exact messages used
and the scenarios in which suppression is employed differ for various and the scenarios in which suppression is employed differ for various
use cases. The following sections outline some of the intended use use cases. The following sections outline some of the intended use
cases for using the Third Party Loss Report for feedback suppression cases for using the Third Party Loss Report for feedback suppression
and give an overview of the particular mechanisms. and give an overview of the particular mechanisms.
6.1. Source Specific Multicast (SSM) use case 6.1. Source Specific Multicast (SSM) use case
In SSM RTP sessions as described in [RFC5760], one or more Media In SSM RTP sessions as described in "RTP Control Protocol (RTCP)
Sources send RTP packets to a Distribution Source. The Distribution Extensions for Single-Source Multicast Sessions with Unicast
Source relays the RTP packets to the receivers using a source- Feedback" [RFC5760], one or more Media Sources send RTP packets to a
specific multicast group. 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 As outlined in the [RFC5760], there are two Unicast Feedback models
that may be used for reporting, the Simple Feedback model and the that may be used for reporting, the Simple Feedback model and the
Distribution Source Feedback Summary Model. In the simple Feedback Distribution Source Feedback Summary Model. In the simple Feedback
Model, there's no need for distribution source to create the Third Model, there's no need for distribution source to create the Third
Party Loss Report, instead, NACKs are reflected by the distribution Party Loss Report, instead, NACKs are reflected by the distribution
source to the other Receivers. However in the Distribution Source source to the other Receivers. However in the Distribution Source
Feedback Summary model, the distribution source will not redistribute Feedback Summary model, the distribution source will not redistribute
the NACK for some reason(e.g., to prevent revealing the identity or 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 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 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 receive the NACK via other means. Since the summary feedback does
mandate the forwarding of NACK downstream. The Third Party Loss not mandate the forwarding of NACK downstream. The Third Party Loss
Report can be generated at the distribution source when downstream Report can be generated at the distribution source when downstream
loss is told (e.g., downstream loss report is received), which loss is told (e.g., downstream loss report is received), which
indicates to the receivers that they should not transmit feedback indicates to the receivers that they should not transmit feedback
messages for the same loss event for a certain time. Therefore the messages for the same loss event for a certain time. Therefore the
distribution source in the feedback summary model can be reasonably distribution source in the feedback summary model can be reasonably
certain that it will help the situation by sending this Third Party certain that it will help the situation by sending this Third Party
Loss Report message to all the relevant receivers impacted by the Loss Report message to all the relevant receivers impacted by the
packet loss. packet loss.
6.2. Unicast based Rapid Acquisition of Multicast Stream (RAMS) use 6.2. Unicast based Rapid Acquisition of Multicast Stream (RAMS) use
skipping to change at page 9, line 32 skipping to change at page 9, line 20
[RETRANSMISSION-FOR-SSM]. [RETRANSMISSION-FOR-SSM].
6.3. RTP Transport Translator use case 6.3. RTP Transport Translator use case
A Transport Translator (Topo-Trn-Translator), as defined in [RFC5117] A Transport Translator (Topo-Trn-Translator), as defined in [RFC5117]
is typically forwarding the RTP and RTCP traffic between RTP clients, is typically forwarding the RTP and RTCP traffic between RTP clients,
for example converting from multicast to unicast for domains that do for example converting from multicast to unicast for domains that do
not support multicast. The translator may suffer a loss of important not support multicast. The translator may suffer a loss of important
video packets. In this case, the translator may forward TPLR message video packets. In this case, the translator may forward TPLR message
received from upstream in the same way as forwarding other RTCP received from upstream in the same way as forwarding other RTCP
traffic. If the translator acting as quality monitor [Monarch]is traffic. If the translator acting as the monitor [MONARCH]is aware
aware of packet loss, it may use the SSRC of monitor as packet sender of packet loss, it may use the SSRC of monitor as packet sender SSRC
SSRC to create NACK message and send it to the receivers that is not to create NACK message and send it to the receivers that is not aware
aware of packet loss. of packet loss.
6.4. Multipoint Control Unit (MCU) use case 6.4. Multipoint Control Unit (MCU) use case
When the speaker is changed in a voice-activated multipoint video When the speaker is changed in a voice-activated multipoint video
switching conference [RFC4587], an RTP mixer can be used to select switching conference [RFC4587], an RTP mixer can be used to select
the available input streams and forward them to each participants. the available input streams and forward them to each participants.
If the MCU is doing a blind switch without waiting for a 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 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 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 message to the new receivers. e.g., when the RTP Mixer starts to
receive FIR from some participants it can suppress the remaining receive FIR from some participants it can suppress the remaining
session participants from sending FIR by sending out a Third party session participants from sending FIR by sending out a Third party
Loss report message. Loss report message.
6.5. Mixer use case 6.5. Mixer use case
A Mixer, in accordance with [RFC5117], aggregates multiple RTP A Mixer, in accordance with [RFC5117], aggregates multiple RTP
streams from other session participants and generates a new RTP streams from other session participants and generates a new RTP
stream sent to the session participants. In some cases, the video stream sent to the session participants. In some cases, the video
frames may get badly screwed up between media source and the mixer. frames may get badly screwed up between media source and the mixer.
skipping to change at page 10, line 40 skipping to change at page 10, line 25
Sending the spurious Third Party Loss Report (e.g., the Third Party Sending the spurious Third Party Loss Report (e.g., the Third Party
Loss Report with the wrong sequence number of lost packet) that Loss Report with the wrong sequence number of lost packet) that
causes missing RTP packets to not be repaired in a timely fashion. causes missing RTP packets to not be repaired in a timely fashion.
To prevent these attacks, there is a need to apply authentication and To prevent these attacks, there is a need to apply authentication and
integrity protection of the feedback messages. This can be integrity protection of the feedback messages. This can be
accomplished against threats external to the current RTP session accomplished against threats external to the current RTP session
using the RTP profile that combines Secure RTP [RFC3711] and AVPF using the RTP profile that combines Secure RTP [RFC3711] and AVPF
into SAVPF [RFC5124]. into SAVPF [RFC5124].
Note that middleboxes that are not visible at the RTP layer that wish Note that intermediaries that are not visible at the RTP layer that
to send the Third Party Loss Reports on behalf of the media source wish to send the Third Party Loss Reports on behalf of the media
can only do so if they spoof the SSRC of the media source. This is source can only do so if they spoof the SSRC of the media source.
difficult in case SRTP is in use. If the middlebox is visible at the This is difficult in case SRTP is in use. If the intermediary is
RTP layer, this is not an issue, provided the middlebox is part of visible at the RTP layer, this is not an issue, provided the
the security context for the session. intermediary is part of the security context for the session.
Also note that endpoints that receive a Third Party Loss Report would 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 be well-advised to ignore it, unless the security is in place to
authenticate the sender of the Third Party Loss Report. Accepting authenticate the sender of the Third Party Loss Report. Accepting
Third Party Loss Report from un-authenticated sender can lead to a Third Party Loss Report from un-authenticated sender can lead to a
denial of service attack, where the endpoint accepts poor quality denial of service attack, where the endpoint accepts poor quality
media that could be repaired. media that could be repaired.
8. IANA Consideration 8. IANA Consideration
The new value "TPLR" has been registered with IANA in the "rtcp-fb" For use with "nack" [RFC4585], a joint sub-registry has been set up
Attribute Values registry located at the time of publication at: that registers the following two values:
http://www.iana.org/assignments/sdp-parameters
Value name: tplr The value registration for the attribute value "nack":
Long Name: Third Party Loss Reports
Reference: This document
A new registry " Third Party Loss Report Messages" has been created Value name: tllei
to hold "tplr" parameters located at time of publication at: Long name: Transport Layer Third Party Loss Early Indication
http://www.iana.org/assignments/sdp-parameters Usable with: nack
Reference: RFC 4585.
New registration in this registry follows the "Specification Value name: pslei
required" policy as defined by [RFC5226]. In addition, they are Long name: Payload Specific Third Party
required to indicate any additional RTCP feedback types, such as Usable with: nack
"nack" and "ack". Reference: RFC 4585.
The following value have been registered as one FMT value in the "FMT The following value have been registered as one FMT value in the "FMT
Values for RTPFB Payload Types" registry located at the time of Values for RTPFB Payload Types" registry located at the time of
publication at: http://www.iana.org/assignments/rtp-parameters publication at: http://www.iana.org/assignments/rtp-parameters
RTPFB range RTPFB range
Name Long Name Value Reference Name Long Name Value Reference
-------------- --------------------------------- ----- --------- -------------- --------------------------------- ----- ---------
TLLEI Transport Layer Third Party TBA1 [RFCXXXX] TLLEI Transport Layer Third Party TBA1 [RFCXXXX]
Loss Early Indication Loss Early Indication
skipping to change at page 12, line 42 skipping to change at page 12, line 33
[RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman, [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman,
"Codec Control Messages in the RTP Audio-Visual Profile "Codec Control Messages in the RTP Audio-Visual Profile
with Feedback (AVPF)", RFC 5104, February 2008. with Feedback (AVPF)", RFC 5104, February 2008.
10.2. Informative References 10.2. Informative References
[RFC5740] Adamson, B., Bormann, C., Handley, M., and J. Macker, [RFC5740] Adamson, B., Bormann, C., Handley, M., and J. Macker,
"NACK-Oriented Reliable Multicast (NORM) Transport "NACK-Oriented Reliable Multicast (NORM) Transport
Protocol", November 2009. 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- [RFC6285] Steeg, B., Begen, A., Caenegem, T., and Z. Vax, "Unicast-
Based Rapid Acquisition of Multicast RTP Sessions", Based Rapid Acquisition of Multicast RTP Sessions",
June 2011. June 2011.
[Monarch] Wu, Q., Hunt, G., and P. Arden, "Monitoring Architectures [MONARCH] Wu, Q., Hunt, G., and P. Arden, "Monitoring Architectures
for RTP", June 2011. for RTP", June 2011.
[RETRANSMISSION-FOR-SSM] [RETRANSMISSION-FOR-SSM]
Caenegem, T., Steeg, B., and A. Begen, "Retransmission for Caenegem, T., Steeg, B., and A. Begen, "Retransmission for
Source-Specific Multicast (SSM) Sessions", May 2011. Source-Specific Multicast (SSM) Sessions", May 2011.
[RFC5117] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 5117, [RFC5117] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 5117,
January 2008. January 2008.
[RFC4587] Even, R., "RTP Payload Format for H.261 Video Streams", [RFC4587] Even, R., "RTP Payload Format for H.261 Video Streams",
skipping to change at page 16, line 31 skipping to change at page 16, line 14
A.9. draft-ietf-avtcore-feedback-suppression-rtp-09 A.9. draft-ietf-avtcore-feedback-suppression-rtp-09
The following are the major changes compared to previous version: The following are the major changes compared to previous version:
o Clarify to suppression interval with regard to how long to receive o Clarify to suppression interval with regard to how long to receive
the retransmitted packet. Treating TPLR in the same way as the retransmitted packet. Treating TPLR in the same way as
receiving NACK .Replace timer based approach with timeless based receiving NACK .Replace timer based approach with timeless based
approach approach
A.10. draft-ietf-avtcore-feedback-suppression-rtp-10
The following are the major changes compared to previous version:
o Fix the definition of Synchronization source for TPLR in section
4.2.
o Associate SDP parameters tllei and pslei with "nack".
o Remove the packet loss recovery from TPLR loss handling part.
o Other typo fixed.
Authors' Addresses Authors' Addresses
Qin Wu Qin Wu
Huawei Huawei
101 Software Avenue, Yuhua District 101 Software Avenue, Yuhua District
Nanjing, Jiangsu 210012 Nanjing, Jiangsu 210012
China China
Email: sunseawq@huawei.com Email: sunseawq@huawei.com
 End of changes. 42 change blocks. 
124 lines changed or deleted 113 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/