summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6679.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc6679.txt')
-rw-r--r--doc/rfc/rfc6679.txt3251
1 files changed, 3251 insertions, 0 deletions
diff --git a/doc/rfc/rfc6679.txt b/doc/rfc/rfc6679.txt
new file mode 100644
index 0000000..17cd251
--- /dev/null
+++ b/doc/rfc/rfc6679.txt
@@ -0,0 +1,3251 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) M. Westerlund
+Request for Comments: 6679 I. Johansson
+Category: Standards Track Ericsson
+ISSN: 2070-1721 C. Perkins
+ University of Glasgow
+ P. O'Hanlon
+ University of Oxford
+ K. Carlberg
+ G11
+ August 2012
+
+
+ Explicit Congestion Notification (ECN) for RTP over UDP
+
+Abstract
+
+ This memo specifies how Explicit Congestion Notification (ECN) can be
+ used with the Real-time Transport Protocol (RTP) running over UDP,
+ using the RTP Control Protocol (RTCP) as a feedback mechanism. It
+ defines a new RTCP Extended Report (XR) block for periodic ECN
+ feedback, a new RTCP transport feedback message for timely reporting
+ of congestion events, and a Session Traversal Utilities for NAT
+ (STUN) extension used in the optional initialisation method using
+ Interactive Connectivity Establishment (ICE). Signalling and
+ procedures for negotiation of capabilities and initialisation methods
+ are also defined.
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc6679.
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 1]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+Copyright Notice
+
+ 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 2]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+Table of Contents
+
+ 1. Introduction ....................................................4
+ 2. Conventions, Definitions, and Acronyms ..........................5
+ 3. Discussion, Requirements, and Design Rationale ..................6
+ 3.1. Requirements ...............................................8
+ 3.2. Applicability ..............................................8
+ 3.3. Interoperability ..........................................12
+ 4. Overview of Use of ECN with RTP/UDP/IP .........................13
+ 5. RTCP Extensions for ECN Feedback ...............................16
+ 5.1. RTP/AVPF Transport-Layer ECN Feedback Packet ..............16
+ 5.2. RTCP XR Report Block for ECN Summary Information ..........19
+ 6. SDP Signalling Extensions for ECN ..............................21
+ 6.1. Signalling ECN Capability Using SDP .......................21
+ 6.2. RTCP ECN Feedback SDP Parameter ...........................26
+ 6.3. XR Block ECN SDP Parameter ................................26
+ 6.4. ICE Parameter to Signal ECN Capability ....................27
+ 7. Use of ECN with RTP/UDP/IP .....................................27
+ 7.1. Negotiation of ECN Capability .............................27
+ 7.2. Initiation of ECN Use in an RTP Session ...................28
+ 7.3. Ongoing Use of ECN within an RTP Session ..................35
+ 7.4. Detecting Failures ........................................38
+ 8. Processing ECN in RTP Translators and Mixers ...................42
+ 8.1. Transport Translators .....................................42
+ 8.2. Fragmentation and Reassembly in Translators ...............43
+ 8.3. Generating RTCP ECN Feedback in Media Transcoders .........45
+ 8.4. Generating RTCP ECN Feedback in Mixers ....................46
+ 9. Implementation Considerations ..................................47
+ 10. IANA Considerations ...........................................47
+ 10.1. SDP Attribute Registration ...............................47
+ 10.2. RTP/AVPF Transport-Layer Feedback Message ................47
+ 10.3. RTCP Feedback SDP Parameter ..............................48
+ 10.4. RTCP XR Report Blocks ....................................48
+ 10.5. RTCP XR SDP Parameter ....................................48
+ 10.6. STUN Attribute ...........................................48
+ 10.7. ICE Option ...............................................48
+ 11. Security Considerations .......................................48
+ 12. Examples of SDP Signalling ....................................51
+ 12.1. Basic SDP Offer/Answer ...................................52
+ 12.2. Declarative Multicast SDP ................................54
+ 13. Acknowledgments ...............................................54
+ 14. References ....................................................55
+ 14.1. Normative References .....................................55
+ 14.2. Informative References ...................................56
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 3]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+1. Introduction
+
+ This memo outlines how Explicit Congestion Notification (ECN)
+ [RFC3168] can be used for Real-time Transport Protocol (RTP)
+ [RFC3550] flows running over UDP/IP that use the RTP Control Protocol
+ (RTCP) as a feedback mechanism. The solution consists of feedback of
+ ECN congestion experienced markings to the sender using RTCP,
+ verification of ECN functionality end-to-end, and procedures for how
+ to initiate ECN usage. Since the initiation process has some
+ dependencies on the signalling mechanism used to establish the RTP
+ session, a specification for signalling mechanisms using the Session
+ Description Protocol (SDP) [RFC4566] is included.
+
+ ECN can be used to minimise the impact of congestion on real-time
+ multimedia traffic. The use of ECN provides a way for the network to
+ send congestion control signals to the media transport without having
+ to impair the media. Unlike packet loss, ECN signals unambiguously
+ indicate congestion to the transport as quickly as feedback delays
+ allow and without confusing congestion with losses that might have
+ occurred for other reasons such as transmission errors, packet-size
+ errors, routing errors, badly implemented middleboxes, policy
+ violations, and so forth.
+
+ The introduction of ECN into the Internet requires changes to both
+ the network and transport layers. At the network layer, IP
+ forwarding has to be updated to allow routers to mark packets, rather
+ than discarding them in times of congestion [RFC3168]. In addition,
+ transport protocols have to be modified to inform the sender that
+ ECN-marked packets are being received, so it can respond to the
+ congestion. The Transmission Control Protocol (TCP) [RFC3168],
+ Stream Control Transmission Protocol (SCTP) [RFC4960], and Datagram
+ Congestion Control Protocol (DCCP) [RFC4340] have been updated to
+ support ECN, but to date, there is no specification describing how
+ UDP-based transports, such as RTP [RFC3550], can use ECN. This is
+ due to the lack of feedback mechanisms in UDP. Instead, the
+ signalling control protocol on top of UDP needs to provide that
+ feedback. For RTP, that feedback is provided by RTCP.
+
+ The remainder of this memo is structured as follows. We start by
+ describing the conventions, definitions, and acronyms used in this
+ memo in Section 2 and the design rationale and applicability in
+ Section 3. Section 4 gives an overview of how ECN is used with RTP
+ over UDP. RTCP extensions for ECN feedback are defined in Section 5
+ and SDP signalling extensions in Section 6. The details of how ECN
+ is used with RTP over UDP are defined in Section 7. In Section 8, we
+ describe how ECN is handled in RTP translators and mixers. Section 9
+ discusses some implementation considerations; Section 10 lists IANA
+ considerations; and Section 11 discusses security considerations.
+
+
+
+Westerlund, et al. Standards Track [Page 4]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ Finally, Section 12 provides some examples of SDP signalling for ECN
+ feedback
+
+2. Conventions, Definitions, and Acronyms
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in RFC
+ 2119 [RFC2119].
+
+ Definitions and Abbreviations:
+
+ Sender: A sender of RTP packets carrying an encoded media stream.
+ The sender can change how the media transmission is performed by
+ varying the media coding or packetisation. It is one endpoint of
+ the ECN control loop.
+
+ Receiver: A receiver of RTP packets with the intention to consume
+ the media stream. It sends RTCP feedback on the received stream.
+ It is the other endpoint of the ECN control loop.
+
+ ECN-Capable Host: A sender or receiver of a media stream that is
+ capable of setting and/or processing ECN marks.
+
+ ECN-Capable Transport (ECT): A transport flow where both sender and
+ receiver are ECN-capable hosts. Packets sent by an ECN-capable
+ transport will be marked as ECT(0) or ECT(1) on transmission. See
+ [RFC3168] for the definition of the ECT(0) and ECT(1) marks.
+
+ ECN-CE: ECN Congestion Experienced mark (see [RFC3168]).
+
+ ECN-Capable Packets: Packets with ECN mark set to either ECT(0),
+ ECT(1), or ECN-CE.
+
+ Not-ECT packets: Packets that are not sent by an ECN-capable
+ transport and are not ECN-CE marked.
+
+ ECN-Capable Queue: A queue that supports ECN-CE marking of ECN-
+ capable packets to indicate congestion.
+
+ ECN-Blocking Middlebox: A middlebox that discards ECN-capable
+ packets.
+
+ ECN-Reverting Middlebox: A middlebox that changes ECN-capable
+ packets to not-ECT packets by removing the ECN mark.
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 5]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ Note that RTP mixers or translators that operate in such a manner
+ that they terminate or split the ECN control loop will take on the
+ role of receivers or senders. This is further discussed in
+ Section 3.2.
+
+3. Discussion, Requirements, and Design Rationale
+
+ ECN has been specified for use with TCP [RFC3168], SCTP [RFC4960],
+ and DCCP [RFC4340] transports. These are all unicast protocols that
+ negotiate the use of ECN during the initial connection establishment
+ handshake (supporting incremental deployment and checking if ECN-
+ marked packets pass all middleboxes on the path). ECN-CE marks are
+ immediately echoed back to the sender by the receiving endpoint using
+ an additional bit in feedback messages, and the sender then
+ interprets the mark as equivalent to a packet loss for congestion
+ control purposes.
+
+ If RTP is run over TCP, SCTP, or DCCP, it can use the native ECN
+ support provided by those protocols. This memo does not concern
+ itself further with these use cases. However, RTP is more commonly
+ run over UDP. This combination does not currently support ECN, and
+ we observe that it has significant differences from the other
+ transport protocols for which ECN has been specified. These include:
+
+ Signalling: RTP relies on separate signalling protocols to negotiate
+ parameters before a session can be created and doesn't include an
+ in-band handshake or negotiation at session setup time (i.e.,
+ there is no equivalent to the TCP three-way handshake in RTP).
+
+ Feedback: RTP does not explicitly acknowledge receipt of datagrams.
+ Instead, the RTP Control Protocol (RTCP) provides reception
+ quality feedback, and other back channel communication, for RTP
+ sessions. The feedback interval is generally on the order of
+ seconds, rather than once per network round-trip time (RTT)
+ (although the RTP Audio-Visual Profile with Feedback (RTP/AVPF)
+ profile [RFC4585] allows more rapid feedback in most cases). RTCP
+ is also very much oriented around counting packets, which makes
+ byte-counting congestion algorithms difficult to utilise.
+
+ Congestion Response: While it is possible to adapt the transmission
+ of many audio/visual streams in response to network congestion,
+ and such adaptation is required by [RFC3550], the dynamics of the
+ congestion response may be quite different to that of TCP or other
+ transport protocols.
+
+ Middleboxes: The RTP framework explicitly supports the concept of
+ mixers and translators, which are middleboxes that are involved in
+ media transport functions.
+
+
+
+Westerlund, et al. Standards Track [Page 6]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ Multicast: RTP is explicitly a group communication protocol and was
+ designed from the start to support IP multicast (primarily Any-
+ Source Multicast (ASM) [RFC1112], although a recent extension
+ supports Source-Specific Multicast (SSM) [RFC3569] with unicast
+ feedback [RFC5760]).
+
+ Application Awareness: When ECN support is provided within the
+ transport protocol, the ability of the application to react to
+ congestion is limited, since it has little visibility into the
+ transport layer. By adding support of ECN to RTP using RTCP
+ feedback, the application is made aware of congestion, allowing a
+ wider range of reactions in response to that congestion
+ indication.
+
+ Counting vs. Detecting Congestion: TCP, and the protocols derived
+ from it, are mainly designed to respond in the same way whether
+ they experience a burst of congestion indications within one RTT
+ or just a single congestion indication, whereas real-time
+ applications may be concerned with the amount of congestion
+ experienced and whether it is distributed smoothly or in bursts.
+ When feedback of ECN was added to TCP [RFC3168], the receiver was
+ designed to flip the echo congestion experienced (ECE) flag to 1
+ for a whole RTT then flop it back to zero. ECN feedback in RTCP,
+ however, will need to report a count of how much congestion has
+ been experienced within an RTCP reporting period, irrespective of
+ round-trip times.
+
+ These differences significantly alter the shape of ECN support in RTP
+ over UDP compared to ECN support in TCP, SCTP, and DCCP but do not
+ invalidate the need for ECN support.
+
+ ECN support is more important for RTP sessions than, for instance, is
+ the case for many applications over TCP. This is because the impact
+ of packet loss in real-time audio-visual media flows is highly
+ visible to users. For TCP-based applications, however, TCP will
+ retransmit lost packets, and while extra delay is incurred by having
+ packets dropped rather than ECN-CE marked, the loss is repaired.
+ Effective ECN support for RTP flows running over UDP will allow real-
+ time audio-visual applications to respond to the onset of congestion
+ before routers are forced to drop packets, allowing those
+ applications to control how they reduce their transmission rate and
+ hence media quality, rather than responding to and trying to conceal
+ the effects of unpredictable packet loss. Furthermore, widespread
+ deployment for ECN and active queue management in routers, should it
+ occur, can potentially reduce unnecessary queuing delays in routers,
+ lowering the round-trip time and benefiting interactive applications
+ of RTP, such as voice telephony.
+
+
+
+
+Westerlund, et al. Standards Track [Page 7]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+3.1. Requirements
+
+ Considering ECN, transport protocols supporting ECN, and RTP-based
+ applications, one can create a set of requirements that must be
+ satisfied to at least some degree if ECN is to be used by RTP over
+ UDP.
+
+ o REQ 1: A mechanism must exist to negotiate and initiate the use of
+ ECN for RTP/UDP/IP sessions so that an RTP sender will not send
+ packets with ECT in the IP header unless it knows that all
+ potential receivers will understand any ECN-CE indications they
+ might receive.
+
+ o REQ 2: A mechanism must exist to feed back the reception of any
+ packets that are ECN-CE marked to the packet sender.
+
+ o REQ 3: The provided mechanism should minimise the possibility of
+ cheating (either by the sender or receiver).
+
+ o REQ 4: Some detection and fallback mechanism should exist to avoid
+ loss of communication due to the attempted usage of ECN in case an
+ intermediate node clears ECT or drops packets that are ECT marked.
+
+ o REQ 5: Negotiation of ECN should not significantly increase the
+ time taken to negotiate and set up the RTP session (an extra RTT
+ before the media can flow is unlikely to be acceptable for some
+ use cases).
+
+ o REQ 6: Negotiation of ECN should not cause media clipping at the
+ start of a session.
+
+ The following sections describe how these requirements can be met for
+ RTP over UDP.
+
+3.2. Applicability
+
+ The use of ECN with RTP over UDP is dependent on negotiation of ECN
+ capability between the sender and receiver(s) and validation of ECN
+ support in all elements on the network path(s) traversed. RTP is
+ used in a heterogeneous range of network environments and topologies,
+ with different signalling protocols. The mechanisms defined here
+ make it possible to verify support for ECN in each of these
+ environments, irrespective of the topology.
+
+ Due to the need for each RTP sender that intends to use ECN with RTP
+ to track all participants in the RTP session, the sub-sampling of the
+ group membership as specified by "Sampling of the Group Membership in
+ RTP" [RFC2762] MUST NOT be used.
+
+
+
+Westerlund, et al. Standards Track [Page 8]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ The use of ECN is further dependent on a capability of the RTP media
+ flow to react to congestion signalled by ECN-marked packets.
+ Depending on the application, media codec, and network topology, this
+ adaptation can occur in various forms and at various nodes. As an
+ example, the sender can change the media encoding, the receiver can
+ change the subscription to a layered encoding, or either reaction can
+ be accomplished by a transcoding middlebox. [RFC5117] identifies
+ seven topologies in which RTP sessions may be configured and which
+ may affect the ability to use ECN:
+
+ Topo-Point-to-Point: This utilises standard unicast flows. ECN may
+ be used with RTP in this topology in an analogous manner to its
+ use with other unicast transport protocols, with RTCP conveying
+ ECN feedback messages.
+
+ Topo-Multicast: This is either an Any-Source Multicast (ASM) group
+ [RFC3569] with potentially several active senders and multicast
+ RTCP feedback or a Source-Specific Multicast (SSM) group [RFC4607]
+ with a single distribution source and unicast RTCP feedback from
+ receivers. RTCP is designed to scale to large group sizes while
+ avoiding feedback implosion (see Section 6.2 of [RFC3550],
+ [RFC4585], and [RFC5760]) and can be used by a sender to determine
+ if all its receivers, and the network paths to those receivers,
+ support ECN (see Section 7.2). It is somewhat more difficult to
+ determine if all network paths from all senders to all receivers
+ support ECN. Accordingly, we allow ECN to be used by an RTP
+ sender using multicast UDP provided the sender has verified that
+ the paths to all its known receivers support ECN, irrespective of
+ whether the paths from other senders to their receivers support
+ ECN ("all its known receivers" are all the synchronisation sources
+ (SSRCs) from which the RTP sender has received RTP or RTCP in the
+ last five reporting intervals, i.e., they have not timed out).
+ Note that group membership may change during the lifetime of a
+ multicast RTP session, potentially introducing new receivers that
+ are not ECN capable or have a path that doesn't support ECN.
+ Senders must use the mechanisms described in Section 7.4 to check
+ that all receivers, and the network paths traversed to reach those
+ receivers, continue to support ECN, and they need to fallback to
+ non-ECN use if any receivers join that do not.
+
+ SSM groups that use unicast RTCP feedback [RFC5760] do need a few
+ extra considerations. This topology can have multiple media
+ senders that provide traffic to the distribution source (DS) and
+ are separated from the DS. There can also be multiple feedback
+ targets. The requirement for using ECN for RTP in this topology
+ is that the media sender must be provided the feedback from the
+ receivers. It may be in aggregated form from the feedback
+ targets. We will not mention this SSM use case in the below text
+
+
+
+Westerlund, et al. Standards Track [Page 9]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ specifically, but when actions are required by the media source,
+ they also apply to the case of SSM where the RTCP feedback goes to
+ the feedback target.
+
+ The mechanisms defined in this memo support multicast groups but
+ are known to be conservative and don't scale to large groups.
+ This is primarily because we require all members of the group to
+ demonstrate that they can make use of ECN before the sender is
+ allowed to send ECN-marked packets, since allowing some non-ECN-
+ capable receivers causes fairness issues when the bottleneck link
+ is shared by ECN and non-ECN flows that we have not (yet) been
+ able to satisfactorily address. The rules regarding Determination
+ of ECN Support in Section 7.2.1 may be relaxed in a future version
+ of this specification to improve scaling once these issues have
+ been resolved.
+
+ Topo-Translator: An RTP translator is an RTP-level middlebox that is
+ invisible to the other participants in the RTP session (although
+ it is usually visible in the associated signalling session).
+ There are two types of RTP translators: those that do not modify
+ the media stream and are concerned with transport parameters, for
+ example, a multicast to unicast gateway; and those that do modify
+ the media stream, for example, transcoding between different media
+ codecs. A single RTP session traverses the translator, and the
+ translator must rewrite RTCP messages passing through it to match
+ the changes it makes to the RTP data packets. A legacy, ECN-
+ unaware, RTP translator is expected to ignore the ECN bits on
+ received packets and to set the ECN bits to not-ECT when sending
+ packets, thus causing ECN negotiation on the path containing the
+ translator to fail (any new RTP translator that does not wish to
+ support ECN may do so similarly). An ECN-aware RTP translator may
+ act in one of three ways:
+
+ * If the translator does not modify the media stream, it should
+ copy the ECN bits unchanged from the incoming to the outgoing
+ datagrams, unless it is overloaded and experiencing congestion,
+ in which case it may mark the outgoing datagrams with an ECN-CE
+ mark. Such a translator passes RTCP feedback unchanged. See
+ Section 8.1.
+
+ * If the translator modifies the media stream to combine or split
+ RTP packets but does not otherwise transcode the media, it must
+ manage the ECN bits in a way analogous to that described in
+ Section 5.3 of [RFC3168]. See Section 8.2 for details.
+
+ * If the translator is a media transcoder, or otherwise modifies
+ the content of the media stream, the output RTP media stream
+ may have radically different characteristics than the input RTP
+
+
+
+Westerlund, et al. Standards Track [Page 10]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ media stream. Each side of the translator must then be
+ considered as a separate transport connection, with its own ECN
+ processing. This requires the translator to interpose itself
+ into the ECN negotiation process, effectively splitting the
+ connection into two parts with their own negotiation. Once
+ negotiation has been completed, the translator must generate
+ RTCP ECN feedback back to the source based on its own reception
+ and must respond to RTCP ECN feedback received from the
+ receiver(s) (see Section 8.3).
+
+ It is recognised that ECN and RTCP processing in an RTP translator
+ that modifies the media stream is non-trivial.
+
+ Topo-Mixer: A mixer is an RTP-level middlebox that aggregates
+ multiple RTP streams, mixing them together to generate a new RTP
+ stream. The mixer is visible to the other participants in the RTP
+ session and is also usually visible in the associated signalling
+ session. The RTP flows on each side of the mixer are treated
+ independently for ECN purposes, with the mixer generating its own
+ RTCP ECN feedback and responding to ECN feedback for data it
+ sends. Since unicast transport between the mixer and any endpoint
+ are treated independently, it would seem reasonable to allow the
+ transport on one side of the mixer to use ECN, while the transport
+ on the other side of the mixer is not ECN capable, if this is
+ desired. See Section 8.4 for details on how mixers should process
+ ECN.
+
+ Topo-Video-switch-MCU: A video-switching Multipoint Control Unit
+ (MCU) receives several RTP flows, but forwards only one of those
+ flows onwards to the other participants at a time. The flow that
+ is forwarded changes during the session, often based on voice
+ activity. Since only a subset of the RTP packets generated by a
+ sender are forwarded to the receivers, a video-switching MCU can
+ break ECN negotiation (the success of the ECN negotiation may
+ depend on the voice activity of the participant at the instant the
+ negotiation takes place - shout if you want ECN). It also breaks
+ congestion feedback and response, since RTP packets are dropped by
+ the MCU depending on voice activity rather than network
+ congestion. This topology is widely used in legacy products but
+ is NOT RECOMMENDED for new implementations and SHALL NOT be used
+ with ECN.
+
+ Topo-RTCP-terminating-MCU: In this scenario, each participant runs
+ an RTP point-to-point session between itself and the MCU. Each of
+ these sessions is treated independently for the purposes of ECN
+ and RTCP feedback, potentially with some using ECN and some not.
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 11]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ Topo-Asymmetric: It is theoretically possible to build a middlebox
+ that is a combination of an RTP mixer in one direction and an RTP
+ translator in the other. To quote [RFC5117], "This topology is so
+ problematic and it is so easy to get the RTCP processing wrong,
+ that it is NOT RECOMMENDED to implement this topology".
+
+ These topologies may be combined within a single RTP session.
+
+ The ECN mechanism defined in this memo is applicable to both sender-
+ and receiver-controlled congestion algorithms. The mechanism ensures
+ that both senders and receivers will know about ECN-CE markings and
+ any packet losses. Thus, the actual decision point for the
+ congestion control is not relevant. This is a great benefit as the
+ rate of an RTP session can be varied in a number of ways, for
+ example, a unicast media sender might use TCP Friendly Rate Control
+ (TFRC) [RFC5348] or some other algorithm, while a multicast session
+ could use a sender-based scheme adapting to the lowest common
+ supported rate or a receiver-driven mechanism using layered coding to
+ support more heterogeneous paths.
+
+ To ensure timely feedback of ECN-CE-marked packets when needed, this
+ mechanism requires support for the RTP/AVPF profile [RFC4585] or any
+ of its derivatives, such as RTP/SAVPF [RFC5124]. The standard RTP/
+ AVP profile [RFC3551] does not allow any early or immediate
+ transmission of RTCP feedback and has a minimal RTCP interval whose
+ default value (5 seconds) is many times the normal RTT between sender
+ and receiver.
+
+3.3. Interoperability
+
+ To ensure interoperability for this specification, there is need for
+ at least one common initialisation method for all implementations.
+ Since initialisation using RTP and RTCP (Section 7.2.1) is the one
+ method that works in all cases, although it is not optimal for all
+ uses, it is selected as the mandatory-to-implement initialisation
+ method. This method requires both the RTCP XR extension and the ECN
+ feedback format, which require the RTP/AVPF profile to ensure timely
+ feedback.
+
+ When one considers all the uses of ECN for RTP, it is clear that
+ congestion control mechanisms exist that are receiver driven only
+ (Section 7.3.3). These congestion control mechanisms do not require
+ timely feedback of congestion events to the sender. If such a
+ congestion control mechanism is combined with an initialisation
+ method that also doesn't require timely feedback using RTCP, like the
+ leap-of-faith method (Section 7.2.3) or the ICE-based method
+ (Section 7.2.2), then neither the ECN feedback format nor the RTP/
+ AVPF profile would appear to be needed. However, fault detection can
+
+
+
+Westerlund, et al. Standards Track [Page 12]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ be greatly improved by using receiver-side detection (Section 7.4.1)
+ and early reporting of such cases using the ECN feedback mechanism.
+
+ For interoperability, we mandate the implementation of the RTP/AVPF
+ profile, with both RTCP extensions and the necessary signalling to
+ support a common operations mode. This specification recommends the
+ use of RTP/AVPF in all cases as negotiation of the common
+ interoperability point requires RTP/AVPF, mixed negotiation of RTP/
+ AVP and RTP/AVPF depending on other SDP attributes in the same media
+ block is difficult, and the fact that fault detection can be improved
+ when using RTP/AVPF.
+
+ The use of the ECN feedback format is also recommended, but cases
+ exist where its use is not required because timely feedback is not
+ needed. These will be explicitly noted using the phrase "no timely
+ feedback required" and generally occur in combination with receiver-
+ driven congestion control and with the leap-of-faith and ICE-based
+ initialisation methods. We also note that any receiver-driven
+ congestion control solution that still requires RTCP for signalling
+ of any adaptation information to the sender will still require RTP/
+ AVPF for timeliness.
+
+4. Overview of Use of ECN with RTP/UDP/IP
+
+ The solution for using ECN with RTP over UDP/IP consists of four
+ different pieces that together make the solution work:
+
+ 1. Negotiation of the capability to use ECN with RTP/UDP/IP
+
+ 2. Initiation and initial verification of ECN-capable transport
+
+ 3. Ongoing use of ECN within an RTP session
+
+ 4. Handling of dynamic behaviour through failure detection,
+ verification, and fallback
+
+ Before an RTP session can be created, a signalling protocol is used
+ to negotiate or at least configure session parameters (see
+ Section 7.1). In some topologies, the signalling protocol can also
+ be used to discover the other participants. One of the parameters
+ that must be agreed is the capability of a participant to support
+ ECN. Note that all participants having the capability of supporting
+ ECN does not necessarily imply that ECN is usable in an RTP session,
+ since there may be middleboxes on the path between the participants
+ that don't pass ECN-marked packets (for example, a firewall that
+ blocks traffic with the ECN bits set). This document defines the
+ information that needs to be negotiated and provides a mapping to SDP
+ for use in both declarative and offer/answer contexts.
+
+
+
+Westerlund, et al. Standards Track [Page 13]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ When a sender joins a session for which all participants claim to
+ support ECN, it needs to verify that the ECN support is usable.
+ There are three ways in which this verification can be done:
+
+ o The sender may generate a (small) subset of its RTP data packets
+ with the ECN field of the IP header set to ECT(0) or ECT(1). Each
+ receiver will then send an RTCP feedback packet indicating the
+ reception of the ECT-marked RTP packets. Upon reception of this
+ feedback from each receiver it knows of, the sender can consider
+ ECN functional for its traffic. Each sender does this
+ verification independently. When a new receiver joins an existing
+ RTP session, it will send RTCP reports in the usual manner. If
+ those RTCP reports include ECN information, verification will have
+ succeeded, and sources can continue to send ECT packets. If not,
+ verification fails, and each sender MUST stop using ECN (see
+ Section 7.2.1 for details).
+
+ o Alternatively, ECN support can be verified during an initial end-
+ to-end STUN exchange (for example, as part of ICE connection
+ establishment). After having verified connectivity without ECN
+ capability, an extra STUN exchange, this time with the ECN field
+ set to ECT(0) or ECT(1), is performed on the candidate path that
+ is about to be used. If successful, the path's capability to
+ convey ECN-marked packets is verified. A new STUN attribute is
+ defined to convey feedback that the ECT-marked STUN request was
+ received (see Section 7.2.2), along with an ICE signalling option
+ (Section 6.4) to indicate that the check is to be performed.
+
+ o Thirdly, the sender may make a leap of faith that ECN will work.
+ This is only recommended for applications that know they are
+ running in controlled environments where ECN functionality has
+ been verified through other means. In this mode, it is assumed
+ that ECN works, and the system reacts to failure indicators if the
+ assumption proved wrong. The use of this method relies on a high
+ confidence that ECN operation will be successful or an application
+ where failure is not serious. The impact on the network and other
+ users must be considered when making a leap of faith, so there are
+ limitations on when this method is allowed (see Section 7.2.3).
+
+ The first mechanism, using RTP with RTCP feedback, has the advantage
+ of working for all RTP sessions, but the disadvantages of potential
+ clipping if ECN-marked RTP packets are discarded by middleboxes and
+ slow verification of ECN support. The STUN-based mechanism is faster
+ to verify ECN support but only works in those scenarios supported by
+ end-to-end STUN, such as within an ICE exchange. The third one, leap
+ of faith, has the advantage of avoiding additional tests or
+ complexities and enabling ECN usage from the first media packet. The
+ downside is that if the end-to-end path contains middleboxes that do
+
+
+
+Westerlund, et al. Standards Track [Page 14]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ not pass ECN, the impact on the application can be severe: in the
+ worst case, all media could be lost if a middlebox that discards ECN-
+ marked packets is present. A less severe effect, but still requiring
+ reaction, is the presence of a middlebox that re-marks ECT-marked
+ packets to not-ECT, possibly marking packets with an ECN-CE mark as
+ not-ECT. This could result in increased levels of congestion due to
+ non-responsiveness and impact media quality as applications end up
+ relying on packet loss as an indication of congestion.
+
+ Once ECN support has been verified (or assumed) to work for all
+ receivers, a sender marks all its RTP packets as ECT packets, while
+ receivers rapidly feed back reports on any ECN-CE marks to the sender
+ using RTCP in RTP/AVPF immediate or early feedback mode, unless no
+ timely feedback is required. Each feedback report indicates the
+ receipt of new ECN-CE marks since the last ECN feedback packet and
+ also counts the total number of ECN-CE-marked packets as a cumulative
+ sum. This is the mechanism to provide the fastest possible feedback
+ to senders about ECN-CE marks. On receipt of an ECN-CE-marked
+ packet, the system must react to congestion as if packet loss has
+ been reported. Section 7.3 describes the ongoing use of ECN within
+ an RTP session.
+
+ This rapid feedback is not optimised for reliability, so another
+ mechanism, RTCP XR ECN Summary Reports, is used to ensure more
+ reliable, but less timely, reporting of the ECN information. The ECN
+ Summary Report contains the same information as the ECN feedback
+ format, only packed differently for better efficiency with reports
+ for many sources. It is sent in a compound RTCP packet, along with
+ regular RTCP reception reports. By using cumulative counters for
+ observed ECN-CE, ECT, not-ECT, packet duplication, and packet loss,
+ the sender can determine what events have happened since the last
+ report, independently of any RTCP packets having been lost.
+
+ RTCP reports MUST NOT be ECT marked, since ECT-marked traffic may be
+ dropped if the path is not ECN compliant. RTCP is used to provide
+ feedback about what has been transmitted and what ECN markings that
+ are received, so it is important that it is received in cases when
+ ECT-marked traffic is not getting through.
+
+ There are numerous reasons why the path the RTP packets take from the
+ sender to the receiver may change, e.g., mobility and link failure
+ followed by re-routing around it. Such an event may result in the
+ packet being sent through a node that is ECN non-compliant, thus
+ re-marking or dropping packets with ECT set. To prevent this from
+ impacting the application for longer than necessary, the operation of
+ ECN is constantly monitored by all senders (Section 7.4). Both the
+ RTCP XR ECN Summary Reports and the ECN feedback packets allow the
+ sender to compare the number of ECT(0), ECT(1), and not-ECT-marked
+
+
+
+Westerlund, et al. Standards Track [Page 15]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ packets received with the number that were sent, while also reporting
+ ECN-CE-marked and lost packets. If these numbers do not agree, it
+ can be inferred that the path does not reliably pass ECN-marked
+ packets. A sender detecting a possible ECN non-compliance issue
+ should then stop sending ECT-marked packets to determine if that
+ allows the packets to be correctly delivered. If the issues can be
+ connected to ECN, then ECN usage is suspended.
+
+5. RTCP Extensions for ECN Feedback
+
+ This memo defines two new RTCP extensions: one RTP/AVPF [RFC4585]
+ transport-layer feedback format for reporting urgent ECN information
+ and one RTCP XR [RFC3611] ECN Summary Report block type for regular
+ reporting of the ECN marking information.
+
+5.1. RTP/AVPF Transport-Layer ECN Feedback Packet
+
+ This RTP/AVPF transport-layer feedback format is intended for use in
+ RTP/AVPF early or immediate feedback modes when information needs to
+ urgently reach the sender. Thus, its main use is to report reception
+ of an ECN-CE-marked RTP packet so that the sender may perform
+ congestion control or to speed up the initiation procedures by
+ rapidly reporting that the path can support ECN-marked traffic. The
+ feedback format is also defined with reduced-size RTCP [RFC5506] in
+ mind, where RTCP feedback packets may be sent without accompanying
+ Sender or Receiver Reports that would contain the extended highest
+ sequence number and the accumulated number of packet losses. Both
+ are important for ECN to verify functionality and keep track of when
+ CE marking does occur.
+
+ The RTP/AVPF transport-layer feedback packet starts with the common
+ header defined by the RTP/AVPF profile [RFC4585], which is reproduced
+ in Figure 1. The FMT field takes the value 8 to indicate that the
+ Feedback Control Information (FCI) contains an ECN Feedback Report,
+ as defined in Figure 2.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 16]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |V=2|P| FMT=8 | PT=RTPFB=205 | length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SSRC of packet sender |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | SSRC of media source |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ : Feedback Control Information (FCI) :
+ : :
+
+ Figure 1: RTP/AVPF Common Packet Format for Feedback Messages
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Extended Highest Sequence Number |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ECT (0) Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ECT (1) Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ECN-CE Counter | not-ECT Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Lost Packets Counter | Duplication Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 2: ECN Feedback Report Format
+
+ The ECN Feedback Report contains the following fields:
+
+ Extended Highest Sequence Number: The 32-bit extended highest
+ sequence number received, as defined by [RFC3550]. Indicates the
+ highest RTP sequence number to which this report relates.
+
+ ECT(0) Counter: The 32-bit cumulative number of RTP packets with
+ ECT(0) received from this SSRC.
+
+ ECT(1) Counter: The 32-bit cumulative number of RTP packets with
+ ECT(1) received from this SSRC.
+
+ ECN-CE Counter: The cumulative number of RTP packets received from
+ this SSRC since the receiver joined the RTP session that were
+ ECN-CE marked, including ECN-CE marks in any duplicate packets.
+ The receiver should keep track of this value using a local
+ representation that is at least 32 bits and only include the 16
+
+
+
+Westerlund, et al. Standards Track [Page 17]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ bits with least significance. In other words, the field will wrap
+ if more than 65535 ECN-CE-marked packets have been received.
+
+ not-ECT Counter: The cumulative number of RTP packets received from
+ this SSRC since the receiver joined the RTP session that had an
+ ECN field value of not-ECT. The receiver should keep track of
+ this value using a local representation that is at least 32 bits
+ and only include the 16 bits with least significance. In other
+ words, the field will wrap if more than 65535 not-ECT packets have
+ been received.
+
+ Lost Packets Counter: The cumulative number of RTP packets that the
+ receiver expected to receive minus the number of packets it
+ actually received that are not a duplicate of an already received
+ packet, from this SSRC since the receiver joined the RTP session.
+ Note that packets that arrive late are not counted as lost. The
+ receiver should keep track of this value using a local
+ representation that is at least 32 bits and only include the 16
+ bits with least significance. In other words, the field will wrap
+ if more than 65535 packets are lost.
+
+ Duplication Counter: The cumulative number of RTP packets received
+ that are a duplicate of an already received packet from this SSRC
+ since the receiver joined the RTP session. The receiver should
+ keep track of this value using a local representation that is at
+ least 32 bits and only include the 16 bits with least
+ significance. In other words, the field will wrap if more than
+ 65535 duplicate packets have been received.
+
+ All fields in the ECN Feedback Report are unsigned integers in
+ network byte order. Each ECN Feedback Report corresponds to a single
+ RTP source (SSRC). Multiple sources can be reported by including
+ multiple ECN Feedback Report packets in an compound RTCP packet.
+
+ The counters SHALL be initiated to 0 for each new SSRC received.
+ This enables detection of ECN-CE marks or packet loss on the initial
+ report from a specific participant.
+
+ The use of at least 32-bit counters allows even extremely high packet
+ volume applications to not have wrapping of counters within any
+ timescale close to the RTCP reporting intervals. However, 32 bits
+ are not sufficiently large to disregard the fact that wrappings may
+ happen during the lifetime of a long-lived RTP session, and
+ implementations need to be written to handle wrapping of the
+ counters. It is recommended that implementations use local
+ representation of these counters that are longer than 32 bits to
+ enable easy handling of wraps.
+
+
+
+
+Westerlund, et al. Standards Track [Page 18]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ There is a difference in packet duplication reports between the
+ packet loss counter that is defined in the Receiver Report Block
+ [RFC3550] and that defined here. To avoid holding state for what RTP
+ sequence numbers have been received, [RFC3550] specifies that one can
+ count packet loss by counting the number of received packets and
+ comparing that to the number of packets expected. As a result, a
+ packet duplication can hide a packet loss. However, when populating
+ the ECN Feedback Report, a receiver needs to track the sequence
+ numbers actually received and count duplicates and packet loss
+ separately to provide a more reliable indication. Reordering may,
+ however, still result in packet loss being reported in one report and
+ then removed in the next.
+
+ The ECN-CE counter is robust for packet duplication. Adding each
+ received ECN-CE-marked packet to the counter is not an issue; in
+ fact, it is required to ensure complete tracking of the ECN state.
+ If one of the clones was ECN-CE marked, that is still an indication
+ of congestion. Packet duplication has a potential impact on the ECN
+ verification, and there is thus a need to count the duplicates.
+
+5.2. RTCP XR Report Block for ECN Summary Information
+
+ This unilateral XR report block combined with RTCP SR or RR report
+ blocks carries the same information as the ECN Feedback Report and is
+ based on the same underlying information. However, the ECN Feedback
+ Report is intended to report an ECN-CE mark as soon as possible,
+ while this extended report is for the regular RTCP reporting and
+ continuous verification of the ECN functionality end-to-end.
+
+ The ECN Summary Report block consists of one RTCP XR report block
+ header, shown in Figure 3 followed by one or more ECN Summary Report
+ data blocks, as defined in Figure 4.
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | BT=13 | Reserved | Block Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 3: RTCP XR Report Header
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 19]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ 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 of Media Sender |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ECT (0) Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ECT (1) Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ECN-CE Counter | not-ECT Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Lost Packets Counter | Duplication Counter |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 4: RTCP XR ECN Summary Report
+
+ The RTCP XR ECN Summary Report contains the following fields:
+
+ BT: Block Type identifying the ECN Summary Report block. Value is
+ 13.
+
+ Reserved: All bits SHALL be set to 0 on transmission and ignored on
+ reception.
+
+ Block Length: The length of this XR report block, including the
+ header, in 32-bit words minus one. Used to indicate the number of
+ ECN Summary Report data blocks present in the ECN Summary Report.
+ This length will be 5*n, where n is the number of ECN Summary
+ Report blocks, since blocks are a fixed size. The block length
+ MAY be zero if there is nothing to report. Receivers MUST discard
+ reports where the block length is not a multiple of five, since
+ these cannot be valid.
+
+ SSRC of Media Sender: The SSRC identifying the media sender this
+ report is for.
+
+ ECT(0) Counter: as in Section 5.1.
+
+ ECT(1) Counter: as in Section 5.1.
+
+ ECN-CE Counter: as in Section 5.1.
+
+ not-ECT Counter: as in Section 5.1.
+
+ Lost Packets Counter: as in Section 5.1.
+
+ Duplication Counter: as in Section 5.1.
+
+
+
+
+Westerlund, et al. Standards Track [Page 20]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ The extended highest sequence number counter for each SSRC is not
+ present in an RTCP XR report, in contrast to the feedback version.
+ The reason is that this summary report will rely on the information
+ sent in the Sender Report (SR) or Receiver Report (RR) blocks part of
+ the same RTCP compound packet. The extended highest sequence number
+ is available from the SR or RR.
+
+ All the SSRCs that are present in the SR or RR SHOULD also be
+ included in the RTCP XR ECN Summary Report. In cases where the
+ number of senders are so large that the combination of SR/RR and the
+ ECN summary for all the senders exceed the MTU, then only a subset of
+ the senders SHOULD be included so that the reports for the subset
+ fits within the MTU. The subsets SHOULD be selected round-robin
+ across multiple intervals so that all sources are periodically
+ reported. In case there are no SSRCs that currently are counted as
+ senders in the session, the report block SHALL still be sent with no
+ report block entry and a zero report block length to continuously
+ indicate to the other participants the receiver capability to report
+ ECN information.
+
+6. SDP Signalling Extensions for ECN
+
+ This section defines a number of SDP signalling extensions used in
+ the negotiation of the ECN for RTP support when using SDP. This
+ includes one SDP attribute "a=ecn-capable-rtp:" that negotiates the
+ actual operation of ECN for RTP. Two SDP signalling parameters are
+ defined to indicate the use of the RTCP XR ECN summary block and the
+ RTP/AVPF feedback format for ECN. One ICE option SDP representation
+ is also defined.
+
+6.1. Signalling ECN Capability Using SDP
+
+ One new SDP attribute, "a=ecn-capable-rtp:", is defined. This is a
+ media-level attribute and MUST NOT be used at the session level. It
+ is not subject to the character set chosen. The aim of this
+ signalling is to indicate the capability of the sender and receivers
+ to support ECN, and to negotiate the method of ECN initiation to be
+ used in the session. The attribute takes a list of initiation
+ methods, ordered in decreasing preference. The defined values for
+ the initiation method are:
+
+ rtp: Using RTP and RTCP as defined in Section 7.2.1.
+
+ ice: Using STUN within ICE as defined in Section 7.2.2.
+
+ leap: Using the leap-of-faith method as defined in Section 7.2.3.
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 21]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ Further methods may be specified in the future, so unknown methods
+ MUST be ignored upon reception.
+
+ In addition, a number of OPTIONAL parameters may be included in the
+ "a=ecn-capable-rtp:" attribute as follows:
+
+ mode: This parameter signals the endpoint's capability to set and
+ read ECN marks in UDP packets. An examination of various
+ operating systems has shown that end-system support for ECN
+ marking of UDP packets may be symmetric or asymmetric. By this,
+ we mean that some systems may allow endpoints to set the ECN bits
+ in an outgoing UDP packet but not read them, while others may
+ allow applications to read the ECN bits but not set them. This
+ either/or case may produce an asymmetric support for ECN and thus
+ should be conveyed in the SDP signalling. The "mode=setread"
+ state is the ideal condition where an endpoint can both set and
+ read ECN bits in UDP packets. The "mode=setonly" state indicates
+ that an endpoint can set the ECT bit but cannot read the ECN bits
+ from received UDP packets to determine if upstream congestion
+ occurred. The "mode=readonly" state indicates that the endpoint
+ can read the ECN bits to determine if congestion has occurred for
+ incoming packets, but it cannot set the ECT bits in outgoing UDP
+ packets. When the "mode=" parameter is omitted, it is assumed
+ that the node has "setread" capabilities. This option can provide
+ for an early indication that ECN cannot be used in a session.
+ This would be the case when both the offerer and answerer set the
+ "mode=" parameter to "setonly" or both set it to "readonly".
+
+ ect: This parameter makes it possible to express the preferred ECT
+ marking. This is either "random", "0", or "1", with "0" being
+ implied if not specified. The "ect" parameter describes a
+ receiver preference and is useful in the case where the receiver
+ knows it is behind a link using IP header compression, the
+ efficiency of which would be seriously disrupted if it were to
+ receive packets with randomly chosen ECT marks. It is RECOMMENDED
+ that ECT(0) marking be used.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 22]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ The ABNF [RFC5234] grammar for the "a=ecn-capable-rtp:" attribute is
+ shown in Figure 5.
+
+ ecn-attribute = "a=ecn-capable-rtp:" SP init-list [SP parm-list]
+ init-list = init-value *("," init-value)
+ init-value = "rtp" / "ice" / "leap" / init-ext
+ init-ext = token
+ parm-list = parm-value *(";" SP parm-value)
+ parm-value = mode / ect / parm-ext
+ mode = "mode=" ("setonly" / "setread" / "readonly")
+ ect = "ect=" ("0" / "1" / "random")
+ parm-ext = parm-name "=" parm-value-ext
+ parm-name = token
+ parm-value-ext = token / quoted-string
+ quoted-string = ( DQUOTE *qdtext DQUOTE )
+ qdtext = %x20-21 / %x23-5B / %x5D-7E / quoted-pair / UTF8-NONASCII
+ ; No DQUOTE and no "\"
+ quoted-pair = "\\" / ( "\" DQUOTE )
+ UTF8-NONASCII = UTF8-1 / UTF8-2 / UTF8-3 / UTF8-4
+
+ ; external references:
+ ; token from RFC 4566
+ ; SP and DQUOTE from RFC 5234
+ ; UTF8-1, UTF8-2, UTF8-3, and UTF8-4 from RFC 3629
+
+ Figure 5: ABNF Grammar for the "a=ecn-capable-rtp:" Attribute
+
+ Note the above quoted string construct has an escaping mechanism for
+ strings containing ". This uses \ (backslash) as an escaping
+ mechanism, i.e., a " is replaced by \" (backslash double quote) and
+ any \ (backslash) is replaced by \\ (backslash backslash) when put
+ into the double quotes as defined by the above syntax. The string in
+ a quoted string is UTF-8 [RFC3629].
+
+6.1.1. Use of "a=ecn-capable-rtp:" with the Offer/Answer Model
+
+ When SDP is used with the offer/answer model [RFC3264], the party
+ generating the SDP offer MUST insert an "a=ecn-capable-rtp:"
+ attribute into the media section of the SDP offer of each RTP session
+ for which it wishes to use ECN. The attribute includes one or more
+ ECN initiation methods in a comma-separated list in decreasing order
+ of preference, with any number of optional parameters following. The
+ answering party compares the list of initiation methods in the offer
+ with those it supports in order of preference. If there is a match
+ and if the receiver wishes to attempt to use ECN in the session, it
+ includes an "a=ecn-capable-rtp:" attribute containing its single
+ preferred choice of initiation method, and any optional parameters,
+ in the media sections of the answer. If there is no matching
+
+
+
+Westerlund, et al. Standards Track [Page 23]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ initiation method capability, or if the receiver does not wish to
+ attempt to use ECN in the session, it does not include an "a=ecn--
+ capable-rtp:" attribute in its answer. If the attribute is removed
+ in the answer, then ECN MUST NOT be used in any direction for that
+ media flow. If there are initialisation methods that are unknown,
+ they MUST be ignored on reception and MUST NOT be included in an
+ answer.
+
+ The endpoints' capability to set and read ECN marks, as expressed by
+ the optional "mode=" parameter, determines whether ECN support can be
+ negotiated for flows in one or both directions:
+
+ o If the "mode=setonly" parameter is present in the "a=ecn-capable-
+ rtp:" attribute of the offer and the answering party is also
+ "mode=setonly", then there is no common ECN capability, and the
+ answer MUST NOT include the "a=ecn-capable-rtp:" attribute.
+ Otherwise, if the offer is "mode=setonly", then ECN may only be
+ initiated in the direction from the offering party to the
+ answering party.
+
+ o If the "mode=readonly" parameter is present in the "a=ecn-capable-
+ rtp:" attribute of the offer and the answering party is
+ "mode=readonly", then there is no common ECN capability, and the
+ answer MUST NOT include the "a=ecn-capable-rtp:" attribute.
+ Otherwise, if the offer is "mode=readonly", then ECN may only be
+ initiated in the direction from the answering party to the
+ offering party.
+
+ o If the "mode=setread" parameter is present in the "a=ecn-capable-
+ rtp:" attribute of the offer and the answering party is "setonly",
+ then ECN may only be initiated in the direction from the answering
+ party to the offering party. If the offering party is
+ "mode=setread" but the answering party is "mode=readonly", then
+ ECN may only be initiated in the direction from the offering party
+ to the answering party. If both offer and answer are
+ "mode=setread", then ECN may be initiated in both directions.
+ Note that "mode=setread" is implied by the absence of a "mode="
+ parameter in the offer or the answer.
+
+ o An offer that does not include a "mode=" parameter MUST be treated
+ as if a "mode=setread" parameter had been included.
+
+ In an RTP session using multicast and ECN, participants that intend
+ to send RTP packets SHOULD support setting ECT marks in RTP packets
+ (i.e., should be "mode=setonly" or "mode=setread"). Participants
+ receiving data need the capability to read ECN marks on incoming
+ packets. It is important that receivers can read ECN marks
+ ("mode=readonly" or "mode=setread"), since otherwise no sender in the
+
+
+
+Westerlund, et al. Standards Track [Page 24]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ multicast session would be able to enable ECN. Accordingly,
+ receivers that are "mode=setonly" SHOULD NOT join multicast RTP
+ sessions that use ECN. If session participants that are not aware of
+ the ECN for RTP signalling are invited to a multicast session and
+ simply ignore the signalling attribute, the other party in the offer/
+ answer exchange SHOULD terminate the SDP dialogue so that the
+ participant leaves the session.
+
+ The "ect=" parameter in the "a=ecn-capable-rtp:" attribute is set
+ independently in the offer and the answer. Its value in the offer
+ indicates a preference for the sending behaviour of the answering
+ party, and its value in the answer indicates a sending preference for
+ the behaviour of the offering party. It will be the sender's choice
+ to honour the receiver's preference for what to receive or not. In
+ multicast sessions, all senders SHOULD set the ECT marks using the
+ value declared in the "ect=" parameter.
+
+ Unknown optional parameters MUST be ignored on reception and MUST NOT
+ be included in the answer. That way, a new parameter may be
+ introduced and verified as supported by the other endpoint by having
+ the endpoint include it in any answer.
+
+6.1.2. Use of "a=ecn-capable-rtp:" with Declarative SDP
+
+ When SDP is used in a declarative manner, for example, in a multicast
+ session using the Session Announcement Protocol (SAP) [RFC2974],
+ negotiation of session description parameters is not possible. The
+ "a=ecn-capable-rtp:" attribute MAY be added to the session
+ description to indicate that the sender will use ECN in the RTP
+ session. The attribute MUST include a single method of initiation.
+ Participants MUST NOT join such a session unless they have the
+ capability to receive ECN-marked UDP packets, implement the method of
+ initiation, and generate RTCP ECN feedback. The mode parameter MAY
+ also be included in declarative usage, to indicate the minimal
+ capability is required by the consumer of the SDP. So, for example,
+ in an SSM session, the participants configured with a particular SDP
+ will all be in a media receive-only mode; thus, "mode=readonly" may
+ be used as the receiver only needs to be able to report on the ECN
+ markings. In ASM sessions, using "mode=readonly" is also reasonable,
+ unless all senders are required to attempt to use ECN for their
+ outgoing RTP data traffic, in which case the mode needs to be set to
+ "setread".
+
+6.1.3. General Use of the "a=ecn-capable-rtp:" Attribute
+
+ The "a=ecn-capable-rtp:" attribute MAY be used with RTP media
+ sessions using UDP/IP transport. It MUST NOT be used for RTP
+ sessions using TCP, SCTP, or DCCP transport or for non-RTP sessions.
+
+
+
+Westerlund, et al. Standards Track [Page 25]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ As described in Section 7.3.3, RTP sessions using ECN require rapid
+ RTCP ECN feedback, unless timely feedback is not required due to a
+ receiver-driven congestion control. To ensure that the sender can
+ react to ECN-CE-marked packets, timely feedback is usually required.
+ Thus, the use of the Extended RTP Profile for RTCP-Based Feedback
+ (RTP/AVPF) [RFC4585] or another profile that inherits RTP/AVPF's
+ signalling rules MUST be signalled unless timely feedback is not
+ required. If timely feedback is not required, it is still
+ RECOMMENDED to use RTP/AVPF. The signalling of an RTP/AVPF-based
+ profile is likely to be required even if the preferred method of
+ initialisation and the congestion control do not require timely
+ feedback, as the common interoperable method is likely to be
+ signalled or the improved fault reaction is desired.
+
+6.2. RTCP ECN Feedback SDP Parameter
+
+ A new "nack" feedback parameter "ecn" is defined to indicate the
+ usage of the RTCP ECN feedback packet format (Section 5.1). The ABNF
+ [RFC5234] definition of the SDP parameter extension is:
+
+ rtcp-fb-nack-param = <See Section 4.2 of [RFC4585]>
+ rtcp-fb-nack-param =/ ecn-fb-par
+ ecn-fb-par = SP "ecn"
+
+ The offer/answer rules for these SDP feedback parameters are
+ specified in the RTP/AVPF profile [RFC4585].
+
+6.3. XR Block ECN SDP Parameter
+
+ A new unilateral RTCP XR block for ECN summary information is
+ specified; thus, the XR block SDP signalling also needs to be
+ extended with a parameter. This is done in the same way as for the
+ other XR blocks. The XR block SDP attribute as defined in Section
+ 5.1 of the RTCP XR specification [RFC3611] is defined to be
+ extensible. As no parameter values are needed for this ECN summary
+ block, this parameter extension consists of a simple parameter name
+ used to indicate support and intent to use the XR block.
+
+ xr-format = <See Section 5.1 of [RFC3611]>
+ xr-format =/ ecn-summary-par
+ ecn-summary-par = "ecn-sum"
+
+ For SDP declarative and offer/answer usage, see the RTCP XR
+ specification [RFC3611] and its description of how to handle
+ unilateral parameters.
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 26]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+6.4. ICE Parameter to Signal ECN Capability
+
+ One new ICE [RFC5245] option, "rtp+ecn", is defined. This is used
+ with the SDP session level "a=ice-options" attribute in an SDP offer
+ to indicate that the initiator of the ICE exchange has the capability
+ to support ECN for RTP-over-UDP flows (via "a=ice-options: rtp+ecn").
+ The answering party includes this same attribute at the session level
+ in the SDP answer if it also has the capability and removes the
+ attribute if it does not wish to use ECN or doesn't have the
+ capability to use ECN. If the ICE initiation method (Section 7.2.2)
+ is actually going to be used, it is also needs to be explicitly
+ negotiated using the "a=ecn-capable-rtp:" attribute. This ICE option
+ SHALL be included when the ICE initiation method is offered or
+ declared in the SDP.
+
+ Note: This signalling mechanism is not strictly needed as long as
+ the STUN ECN testing capability is used within the context of this
+ document. It may, however, be useful if the ECN verification
+ capability is used in additional contexts.
+
+7. Use of ECN with RTP/UDP/IP
+
+ In the detailed specification of the behaviour below, the different
+ functions in the general case will first be discussed. In case
+ special considerations are needed for middleboxes, multicast usage,
+ etc., those will be specially discussed in related subsections.
+
+7.1. Negotiation of ECN Capability
+
+ The first stage of ECN negotiation for RTP over UDP is to signal the
+ capability to use ECN. An RTP system that supports ECN and uses SDP
+ for its signalling MUST implement the SDP extension to signal ECN
+ capability as described in Section 6.1, the RTCP ECN feedback SDP
+ parameter defined in Section 6.2, and the XR Block ECN SDP parameter
+ defined in Section 6.3. It MAY also implement alternative ECN
+ capability negotiation schemes, such as the ICE extension described
+ in Section 6.4. Other signalling systems will need to define
+ signalling parameters corresponding to those defined for SDP.
+
+ The "ecn-capable-rtp:" SDP attribute MUST be used when employing ECN
+ for RTP according to this specification in systems using SDP. As the
+ RTCP XR ECN Summary Report is required independently of the
+ initialisation method or congestion control scheme, the "rtcp-xr"
+ attribute with the "ecn-sum" parameter MUST also be used. The
+ "rtcp-fb" attribute with the "nack" parameter "ecn" MUST be used
+ whenever the initialisation method or a congestion control algorithm
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 27]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ requires timely sender-side knowledge of received CE markings. If
+ the congestion control scheme requires additional signalling, this
+ should be indicated as appropriate.
+
+7.2. Initiation of ECN Use in an RTP Session
+
+ Once the sender and the receiver(s) have agreed that they have the
+ capability to use ECN within a session, they may attempt to initiate
+ ECN use. All session participants connected over the same transport
+ MUST use the same initiation method. RTP mixers or translators can
+ use different initiation methods to different participants that are
+ connected over different underlying transports. The mixer or
+ translator will need to do individual signalling with each
+ participant to ensure it is consistent with the ECN support in those
+ cases where it does not function as one endpoint for the ECN control
+ loop.
+
+ At the start of the RTP session, when the first few packets with ECT
+ are sent, it is important to verify that IP packets with ECN field
+ values of ECT or ECN-CE will reach their destination(s). There is
+ some risk that the use of ECN will result in either reset of the ECN
+ field or loss of all packets with ECT or ECN-CE markings. If the
+ path between the sender and the receivers exhibits either of these
+ behaviours, the sender needs to stop using ECN immediately to protect
+ both the network and the application.
+
+ The RTP senders and receivers SHALL NOT ECT mark their RTCP traffic
+ at any time. This is to ensure that packet loss due to ECN marking
+ will not effect the RTCP traffic and the necessary feedback
+ information it carries.
+
+ An RTP system that supports ECN MUST implement the initiation of ECN
+ using in-band RTP and RTCP described in Section 7.2.1. It MAY also
+ implement other mechanisms to initiate ECN support, for example, the
+ STUN-based mechanism described in Section 7.2.2, or use the leap-of-
+ faith option if the session supports the limitations provided in
+ Section 7.2.3. If support for both in-band and out-of-band
+ mechanisms is signalled, the sender when negotiating SHOULD offer
+ detection of ECT using STUN with ICE with higher priority than
+ detection of ECT using RTP and RTCP.
+
+ No matter how ECN usage is initiated, the sender MUST continually
+ monitor the ability of the network, and all its receivers, to support
+ ECN, following the mechanisms described in Section 7.4. This is
+ necessary because path changes or changes in the receiver population
+ may invalidate the ability of the system to use ECN.
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 28]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+7.2.1. Detection of ECT Using RTP and RTCP
+
+ The ECN initiation phase using RTP and RTCP to detect if the network
+ path supports ECN comprises three stages. First, the RTP sender
+ generates some small fraction of its traffic with ECT marks to act as
+ a probe for ECN support. Then, on receipt of these ECT-marked
+ packets, the receivers send RTCP ECN feedback packets and RTCP ECN
+ Summary Reports to inform the sender that their path supports ECN.
+ Finally, the RTP sender makes the decision to use ECN or not, based
+ on whether the paths to all RTP receivers have been verified to
+ support ECN.
+
+ Generating ECN Probe Packets: During the ECN initiation phase, an
+ RTP sender SHALL mark a small fraction of its RTP traffic as ECT,
+ while leaving the reminder of the packets unmarked. The main
+ reason for only marking some packets is to maintain usable media
+ delivery during the ECN initiation phase in those cases where ECN
+ is not supported by the network path. A secondary reason to send
+ some not-ECT packets is to ensure that the receivers will send
+ RTCP reports on this sender, even if all ECT-marked packets are
+ lost in transit. The not-ECT packets also provide a baseline to
+ compare performance parameters against. Another reason for only
+ probing with a small number of packets is to reduce the risk that
+ significant numbers of congestion markings might be lost if ECT is
+ cleared to not-ECT by an ECN-reverting Middlebox. Then, any
+ resulting lack of congestion response is likely to have little
+ damaging effect on others. An RTP sender is RECOMMENDED to send a
+ minimum of two packets with ECT markings per RTCP reporting
+ interval. In case a random ECT pattern is intended to be used, at
+ least one packet with ECT(0) and one with ECT(1) should be sent
+ per reporting interval; in case a single ECT marking is to be
+ used, only that ECT value SHOULD be sent. The RTP sender SHALL
+ continue to send some ECT-marked traffic as long as the ECN
+ initiation phase continues. The sender SHOULD NOT mark all RTP
+ packets as ECT during the ECN initiation phase.
+
+ This memo does not mandate which RTP packets are marked with ECT
+ during the ECN initiation phase. An implementation should insert
+ ECT marks in RTP packets in a way that minimises the impact on
+ media quality if those packets are lost. The choice of packets to
+ mark is very media dependent. For audio formats, it would make
+ sense for the sender to mark comfort noise packets or similar.
+ For video formats, packets containing P- or B-frames (rather than
+ I-frames) would be an appropriate choice. No matter which RTP
+ packets are marked, those packets MUST NOT be sent in duplicate,
+ with and without ECT, since the RTP sequence number is used to
+ identify packets that are received with ECN markings.
+
+
+
+
+Westerlund, et al. Standards Track [Page 29]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ Generating RTCP ECN Feedback: If ECN capability has been negotiated
+ in an RTP session, the receivers in the session MUST listen for
+ ECT or ECN-CE-marked RTP packets and generate RTCP ECN feedback
+ packets (Section 5.1) to mark their receipt. An immediate or
+ early (depending on the RTP/AVPF mode) ECN feedback packet SHOULD
+ be generated on receipt of the first ECT- or ECN-CE-marked packet
+ from a sender that has not previously sent any ECT traffic. Each
+ regular RTCP report MUST also contain an ECN Summary Report
+ (Section 5.2). Reception of subsequent ECN-CE-marked packets MUST
+ result in additional early or immediate ECN feedback packets being
+ sent unless no timely feedback is required.
+
+ Determination of ECN Support: RTP is a group communication protocol,
+ where members can join and leave the group at any time. This
+ complicates the ECN initiation phase, since the sender must wait
+ until it believes the group membership has stabilised before it
+ can determine if the paths to all receivers support ECN (group
+ membership changes after the ECN initiation phase has completed
+ are discussed in Section 7.3).
+
+ An RTP sender shall consider the group membership to be stable
+ after it has been in the session and sending ECT-marked probe
+ packets for at least three RTCP reporting intervals (i.e., after
+ sending its third regularly scheduled RTCP packet) and when a
+ complete RTCP reporting interval has passed without changes to the
+ group membership. ECN initiation is considered successful when
+ the group membership is stable and all known participants have
+ sent one or more RTCP ECN feedback packets or RTCP XR ECN Summary
+ Reports indicating correct receipt of the ECT-marked RTP packets
+ generated by the sender.
+
+ As an optimisation, if an RTP sender is initiating ECN usage
+ towards a unicast address, then it MAY treat the ECN initiation as
+ provisionally successful if it receives an RTCP ECN Feedback
+ Report or an RTCP XR ECN Summary Report indicating successful
+ receipt of the ECT-marked packets, with no negative indications,
+ from a single RTP receiver (where a single RTP receiver is
+ considered as all SSRCs used by a single RTCP CNAME). After
+ declaring provisional success, the sender MAY generate ECT-marked
+ packets as described in Section 7.3, provided it continues to
+ monitor the RTCP reports for a period of three RTCP reporting
+ intervals from the time the ECN initiation started, to check if
+ there are any other participants in the session. Thus, as long as
+ any additional SSRC that report on the ECN usage are using the
+ same RTCP CNAME as the previous reports and they are all
+ indicating functional ECN, the sender may continue. If other
+ participants are detected, i.e., other RTCP CNAMEs, the sender
+ MUST fallback to only ECT-marking a small fraction of its RTP
+
+
+
+Westerlund, et al. Standards Track [Page 30]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ packets, while it determines if ECN can be supported following the
+ full procedure described above. Different RTCP CNAMEs received
+ over a unicast transport may occur when using translators in a
+ multi-party RTP session (e.g., when using a centralised conference
+ bridge).
+
+ Note: The above optimisation supports peer-to-peer unicast
+ transport with several SSRCs multiplexed onto the same flow
+ (e.g., a single participant with two video cameras or SSRC
+ multiplexed RTP retransmission [RFC4588]). It is desirable to
+ be able to rapidly negotiate ECN support for such a session,
+ but the optimisation above can fail if there are
+ implementations that use the same CNAME for different parts of
+ a distributed implementation that have different transport
+ characteristics (e.g., if a single logical endpoint is split
+ across multiple hosts).
+
+ ECN initiation is considered to have failed at the instant the
+ initiating RTP sender received an RTCP packet that doesn't contain
+ an RTCP ECN Feedback Report or ECN Summary Report from any RTP
+ session participant that has an RTCP RR with an extended RTP
+ sequence number field that indicates that it should have received
+ multiple (>3) ECT-marked RTP packets. This can be due to failure
+ to support the ECN feedback format by the receiver or some
+ middlebox or the loss of all ECT-marked packets. Both indicate a
+ lack of ECN support.
+
+ If the ECN negotiation succeeds, this indicates that the path can
+ pass some ECN-marked traffic and that the receivers support ECN
+ feedback. This does not necessarily imply that the path can robustly
+ convey ECN feedback; Section 7.3 describes the ongoing monitoring
+ that must be performed to ensure the path continues to robustly
+ support ECN.
+
+ When a sender or receiver detects ECN failures on paths, they should
+ log these to enable follow up and statistics gathering regarding
+ broken paths. The logging mechanism used is implementation
+ dependent.
+
+7.2.2. Detection of ECT Using STUN with ICE
+
+ This section describes an OPTIONAL method that can be used to avoid
+ media impact and also ensure an ECN-capable path prior to media
+ transmission. This method is considered in the context where the
+ session participants are using ICE [RFC5245] to find working
+ connectivity. We need to use ICE rather than STUN only, as the
+ verification needs to happen from the media sender to the address and
+ port on which the receiver is listening.
+
+
+
+Westerlund, et al. Standards Track [Page 31]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ Note that this method is only applicable to sessions when the remote
+ destinations are unicast addresses. In addition, transport
+ translators that do not terminate the ECN control loop and may
+ distribute received packets to more than one other receiver must
+ either disallow this method (and use the RTP/RTCP method instead) or
+ implement additional handling as discussed below. This is because
+ the ICE initialisation method verifies the underlying transport to
+ one particular address and port. If the receiver at that address and
+ port intends to use the received packets in a multi-point session,
+ then the tested capabilities and the actual session behaviour are not
+ matched.
+
+ To minimise the impact of setup delay, and to prioritise the fact
+ that one has working connectivity rather than necessarily finding the
+ best ECN-capable network path, this procedure is applied after having
+ performed a successful connectivity check for a candidate, which is
+ nominated for usage. At that point, an additional connectivity check
+ is performed, sending the "ECN-CHECK" attribute in a STUN packet that
+ is ECT marked. On reception of the packet, a STUN server supporting
+ this extension will note the received ECN field value and send a
+ STUN/UDP/IP packet in reply with the ECN field set to not-ECT and an
+ ECN-CHECK attribute included. A STUN server that doesn't understand
+ the extension, or is incapable of reading the ECN values on incoming
+ STUN packets, should follow the rule in the STUN specification for
+ unknown comprehension-optional attributes and ignore the attribute,
+ resulting in the sender receiving a STUN response without the ECN-
+ CHECK STUN attribute.
+
+ The ECN STUN checks can be lost on the path, for example, due to the
+ ECT marking but also due to various other non ECN-related reasons
+ causing packet loss. The goal is to detect when the ECT markings are
+ rewritten or if it is the ECT marking that causes packet loss so that
+ the path can be determined as not-ECT. Other reasons for packet loss
+ should not result in a failure to verify the path as ECT. Therefore,
+ a number of retransmissions should be attempted. But, the sender of
+ ECN STUN checks will also have to set a criteria for when it gives up
+ testing for ECN capability on the path. Since the ICE agent has
+ successfully verified the path, an RTT measurement for this path can
+ be performed. To have a high probability of successfully verifying
+ the path, it is RECOMMENDED that the client retransmit the ECN STUN
+ check at least 4 times. The transmission for that flow is stopped
+ when an ECN-CHECK STUN response has been received, which doesn't
+ indicate a retransmission of the request due to a temporary error, or
+ the maximum number of retransmissions has been sent. The ICE agent
+ is recommended to give up on the ECN verification MAX(1.5*RTT, 20 ms)
+ after the last ECN STUN check was sent.
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 32]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ The transmission of the ECT-marked STUN connectivity checks
+ containing the ECN-CHECK attribute can be done prior as well in
+ parallel to actual media transmission. Both cases are supported,
+ where the main difference is how aggressively the transmission of the
+ STUN checks are done. The reason for this is to avoid adding
+ additional startup delay until media can flow. If media is required
+ immediately after nomination has occurred, the STUN checks SHALL be
+ done in parallel. If the application does not require media
+ transmission immediately, the verification of ECT SHOULD start using
+ the aggressive mode. At any point in the process until ECT has been
+ verified or found to not work, media transmission MAY be started, and
+ the ICE agent SHALL transition from the aggressive mode to the
+ parallel mode.
+
+ The aggressive mode uses an interval between the retransmissions
+ based on the Ta timer as defined in Section 16.1 for RTP Media
+ Streams in ICE [RFC5245]. The number of ECN STUN checks needing to
+ be sent will depend on the number of ECN-capable flows (N) that is to
+ be established. The interval between each transmission of an ECN-
+ CHECK packet MUST be Ta. In other words, for a given flow being
+ verified for ECT, the retransmission timeout (RTO) is set to Ta*N.
+
+ The parallel mode uses transmission intervals in order to prevent the
+ ECT verification checks from increasing the total bitrate more than
+ 10%. As ICE's regular transmission schedule is mimicking a common
+ voice call in amount, to meet that goal for most media flows, setting
+ the retransmission interval to Ta*N*k where k=10 fulfills that goal.
+ Thus, the default behaviour SHALL be to use k=10 when in parallel
+ mode. In cases where the bitrate of the STUN connectivity checks can
+ be determined, they MAY be sent with smaller values of k, but k MUST
+ NOT be smaller than 1, as long as the total bitrate for the
+ connectivity checks are less than 10% of the used media bitrate. The
+ RTP media packets being sent in parallel mode SHALL NOT be ECT marked
+ prior to verification of the path as ECT.
+
+ The STUN ECN-CHECK attribute contains one field and a flag, as shown
+ in Figure 6. The flag indicates whether the echo field contains a
+ valid value or not. The field is the ECN echo field and, when valid,
+ contains the two ECN bits from the packet it echoes back. The ECN-
+ CHECK attribute is a comprehension optional attribute.
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 33]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ 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
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Reserved |ECF|V|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Figure 6: ECN-CHECK STUN Attribute
+
+ V: Valid (1 bit) ECN Echo value field is valid when set to 1 and
+ invalid when set 0.
+
+ ECF: ECN Echo value field (2 bits) contains the ECN field value of
+ the STUN packet it echoes back when the field is valid. If
+ invalid, the content is arbitrary.
+
+ Reserved: Reserved bits (29 bits) SHALL be set to 0 on transmission
+ and SHALL be ignored on reception.
+
+ This attribute MAY be included in any STUN request to request the ECN
+ field to be echoed back. In STUN requests, the V bit SHALL be set to
+ 0. A compliant STUN server receiving a request with the ECN-CHECK
+ attribute SHALL read the ECN field value of the IP/UDP packet in
+ which the request was received. Upon forming the response, the
+ server SHALL include the ECN-CHECK attribute setting the V bit to
+ valid and include the read value of the ECN field into the ECF field.
+ If the STUN responder was unable to ascertain, due to temporary
+ errors, the ECN value of the STUN request, it SHALL set the V bit in
+ the response to 0. The STUN client may retry immediately.
+
+ The ICE-based initialisation method does require some special
+ consideration when used by a translator. This is especially for
+ transport translators and translators that fragment or reassemble
+ packets, since they do not separate the ECN control loops between the
+ endpoints and the translator. When using ICE-based initiation, such
+ a translator must ensure that any participants joining an RTP session
+ for which ECN has been negotiated are successfully verified in the
+ direction from the translator to the joining participant.
+ Alternatively, it must correctly handle remarking of ECT RTP packets
+ towards that participant. When a new participant joins the session,
+ the translator will perform a check towards the new participant. If
+ that is successfully completed, the ECT properties of the session are
+ maintained for the other senders in the session. If the check fails,
+ then the existing senders will now see a participant that fails to
+ receive ECT. Thus, the failure detection in those senders will
+ eventually detect this. However, to avoid misusing the network on
+ the path from the translator to the new participant, the translator
+
+
+
+Westerlund, et al. Standards Track [Page 34]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ SHALL remark the traffic intended to be forwarded from ECT to not-
+ ECT. Any packets intended to be forwarded that are ECN-CE marked
+ SHALL be discarded and not sent. In cases where the path from a new
+ participant to the translator fails the ECT check, then only that
+ sender will not contribute any ECT-marked traffic towards the
+ translator.
+
+7.2.3. Leap-of-Faith ECT Initiation Method
+
+ This method for initiating ECN usage is a leap of faith that assumes
+ that ECN will work on the used path(s). The method is to go directly
+ to "ongoing use of ECN" as defined in Section 7.3. Thus, all RTP
+ packets MAY be marked as ECT, and the failure detection MUST be used
+ to detect any case when the assumption that the path is ECT capable
+ is wrong. This method is only recommended for controlled
+ environments where the whole path(s) between sender and receiver(s)
+ has been built and verified to be ECT.
+
+ If the sender marks all packets as ECT while transmitting on a path
+ that contains an ECN-blocking middlebox, then receivers downstream of
+ that middlebox will not receive any RTP data packets from the sender
+ and hence will not consider it to be an active RTP SSRC. The sender
+ can detect this and revert to sending packets without ECT marks,
+ since RTCP SR/RR packets from such receivers will either not include
+ a report for the sender's SSRC or will report that no packets have
+ been received, but this takes at least one RTCP reporting interval.
+ It should be noted that a receiver might generate its first RTCP
+ packet immediately on joining a unicast session, or very shortly
+ after joining an RTP/AVPF session, before it has had chance to
+ receive any data packets. A sender that receives an RTCP SR/RR
+ packet indicating lack of reception by a receiver SHOULD therefore
+ wait for a second RTCP report from that receiver to be sure that the
+ lack of reception is due to ECT-marking. Since this recovery process
+ can take several tens of seconds, during which time the RTP session
+ is unusable for media, it is NOT RECOMMENDED that the leap-of-faith
+ ECT initiation method be used in environments where ECN-blocking
+ middleboxes are likely to be present.
+
+7.3. Ongoing Use of ECN within an RTP Session
+
+ Once ECN has been successfully initiated for an RTP sender, that
+ sender begins sending all RTP data packets as ECT-marked, and its
+ receivers send ECN feedback information via RTCP packets. This
+ section describes procedures for sending ECT-marked data, providing
+ ECN feedback information via RTCP, and responding to ECN feedback
+ information.
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 35]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+7.3.1. Transmission of ECT-Marked RTP Packets
+
+ After a sender has successfully initiated ECN use, it SHOULD mark all
+ the RTP data packets it sends as ECT. The sender SHOULD mark packets
+ as ECT(0) unless the receiver expresses a preference for ECT(1) or
+ for a random ECT value using the "ect" parameter in the "a=ecn--
+ capable-rtp:" attribute.
+
+ The sender SHALL NOT include ECT marks on outgoing RTCP packets and
+ SHOULD NOT include ECT marks on any other outgoing control messages
+ (e.g., STUN [RFC5389] packets, Datagram Transport Layer Security
+ (DTLS) [RFC6347] handshake packets, or ZRTP [RFC6189] control
+ packets) that are multiplexed on the same UDP port. For control
+ packets there might be exceptions, like the STUN-based ECN-CHECK
+ defined in Section 7.2.2.
+
+7.3.2. Reporting ECN Feedback via RTCP
+
+ An RTP receiver that receives a packet with an ECN-CE mark, or that
+ detects a packet loss, MUST schedule the transmission of an RTCP ECN
+ feedback packet as soon as possible (subject to the constraints of
+ [RFC4585] and [RFC3550]) to report this back to the sender unless no
+ timely feedback is required. The feedback RTCP packet SHALL consist
+ of at least one ECN feedback packet (Section 5.1) reporting on the
+ packets received since the last ECN feedback packet and will contain
+ (at least) an RTCP SR/RR packet and an SDES packet, unless reduced-
+ size RTCP [RFC5506] is used. The RTP/AVPF profile in early or
+ immediate feedback mode SHOULD be used where possible, to reduce the
+ interval before feedback can be sent. To reduce the size of the
+ feedback message, reduced-size RTCP [RFC5506] MAY be used if
+ supported by the endpoints. Both RTP/AVPF and reduced-size RTCP MUST
+ be negotiated in the session setup signalling before they can be
+ used.
+
+ Every time a regular compound RTCP packet is to be transmitted, an
+ ECN-capable RTP receiver MUST include an RTCP XR ECN Summary Report
+ as described in Section 5.2 as part of the compound packet.
+
+ The multicast feedback implosion problem, which occurs when many
+ receivers simultaneously send feedback to a single sender, must be
+ considered. The RTP/AVPF transmission rules will limit the amount of
+ feedback that can be sent, avoiding the implosion problem but also
+ delaying feedback by varying degrees from nothing up to a full RTCP
+ reporting interval. As a result, the full extent of a congestion
+ situation may take some time to reach the sender, although some
+ feedback should arrive in a reasonably timely manner, allowing the
+ sender to react on a single or a few reports.
+
+
+
+
+Westerlund, et al. Standards Track [Page 36]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+7.3.3. Response to Congestion Notifications
+
+ The reception of RTP packets with ECN-CE marks in the IP header is a
+ notification that congestion is being experienced. The default
+ reaction on the reception of these ECN-CE-marked packets MUST be to
+ provide the congestion control algorithm with a congestion
+ notification that triggers the algorithm to react as if packet loss
+ had occurred. There should be no difference in congestion response
+ if ECN-CE marks or packet drops are detected.
+
+ Other reactions to ECN-CE may be specified in the future, following
+ IETF Review. Detailed designs of such alternative reactions MUST be
+ specified in a Standards Track RFC and be reviewed to ensure they are
+ safe for deployment under any restrictions specified. A potential
+ example for an alternative reaction could be emergency communications
+ (such as that generated by first responders, as opposed to the
+ general public) in networks where the user has been authorised. A
+ more detailed description of these other reactions, as well as the
+ types of congestion control algorithms used by end-nodes, is outside
+ the scope of this document.
+
+ Depending on the media format, type of session, and RTP topology
+ used, there are several different types of congestion control that
+ can be used:
+
+ Sender-Driven Congestion Control: The sender is responsible for
+ adapting the transmitted bitrate in response to RTCP ECN feedback.
+ When the sender receives the ECN feedback data, it feeds this
+ information into its congestion control or bitrate adaptation
+ mechanism so that it can react as if packet loss was reported.
+ The congestion control algorithm to be used is not specified here,
+ although TFRC [RFC5348] is one example that might be used.
+
+ Receiver-Driven Congestion Control: In a receiver-driven congestion
+ control mechanism, the receivers can react to the ECN-CE marks
+ themselves without providing ECN-CE feedback to the sender. This
+ may allow faster response than sender-driven congestion control in
+ some circumstances and also scale to large number of receivers and
+ multicast usage. One example of receiver-driven congestion
+ control is implemented by providing the content in a layered way,
+ with each layer providing improved media quality but also
+ increased bandwidth usage. The receiver locally monitors the
+ ECN-CE marks on received packets to check if it experiences
+ congestion with the current number of layers. If congestion is
+ experienced, the receiver drops one layer, thus reducing the
+ resource consumption on the path towards itself. For example, if
+ a layered media encoding scheme such as H.264 Scalable Video
+ Coding (SVC) is used, the receiver may change its layer
+
+
+
+Westerlund, et al. Standards Track [Page 37]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ subscription and so reduce the bitrate it receives. The receiver
+ MUST still send an RTCP XR ECN Summary to the sender, even if it
+ can adapt without contact with the sender, so that the sender can
+ determine if ECN is supported on the network path. The timeliness
+ of RTCP feedback is less of a concern with receiver-driven
+ congestion control, and regular RTCP reporting of ECN summary
+ information is sufficient (without using RTP/AVPF immediate or
+ early feedback).
+
+ Hybrid: There might be mechanisms that utilise both some receiver
+ behaviours and some sender-side monitoring, thus requiring both
+ feedback of congestion events to the sender and taking receiver
+ decisions and possible signalling to the sender. In this case,
+ the congestion control algorithm needs to use the signalling to
+ indicate which features of ECN for RTP are required.
+
+ Responding to congestion indication in the case of multicast traffic
+ is a more complex problem than for unicast traffic. The fundamental
+ problem is diverse paths, i.e., when different receivers don't see
+ the same path and thus have different bottlenecks, so the receivers
+ may get ECN-CE-marked packets due to congestion at different points
+ in the network. This is problematic for sender-driven congestion
+ control, since when receivers are heterogeneous in regards to
+ capacity, the sender is limited to transmitting at the rate the
+ slowest receiver can support. This often becomes a significant
+ limitation as group size grows. Also, as group size increases, the
+ frequency of reports from each receiver decreases, which further
+ reduces the responsiveness of the mechanism. Receiver-driven
+ congestion control has the advantage that each receiver can choose
+ the appropriate rate for its network path, rather than all receivers
+ having to settle for the lowest common rate.
+
+ We note that ECN support is not a silver bullet to improving
+ performance. The use of ECN gives the chance to respond to
+ congestion before packets are dropped in the network, improving the
+ user experience by allowing the RTP application to control how the
+ quality is reduced. An application that ignores ECN Congestion
+ Experienced feedback is not immune to congestion: the network will
+ eventually begin to discard packets if traffic doesn't respond. To
+ avoid packet loss, it is in the best interest of an application to
+ respond to ECN congestion feedback promptly.
+
+7.4. Detecting Failures
+
+ Senders and receivers can deliberately ignore ECN-CE and thus get a
+ benefit over behaving flows (cheating). The ECN nonce [RFC3540] is
+ an addition to TCP that attempts to solve this issue as long as the
+ sender acts on behalf of the network. The assumption that senders
+
+
+
+Westerlund, et al. Standards Track [Page 38]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ act on behalf of the network may be false due to the nature of peer-
+ to-peer use of RTP. Still, a significant portion of RTP senders are
+ infrastructure devices (for example, streaming media servers) that do
+ have an interest in protecting both service quality and the network.
+ Even though there may be cases where the nonce may be applicable for
+ RTP, it is not included in this specification. This is because a
+ receiver interested in cheating would simply claim to not support the
+ nonce, or even ECN itself. It is, however, worth mentioning that, as
+ real-time media is commonly sensitive to increased delay and packet
+ loss, it will be in the interest of both the media sender and
+ receivers to minimise the number and duration of any congestion
+ events as they will adversely affect media quality.
+
+ RTP sessions can also suffer from path changes resulting in a non-
+ ECN-compliant node becoming part of the path. That node may perform
+ either of two actions that has an effect on the ECN and application
+ functionality. The gravest is if the node drops packets with the ECN
+ field set to ECT(0), ECT(1), or ECN-CE. This can be detected by the
+ receiver when it receives an RTCP SR packet indicating that a sender
+ has sent a number of packets that it has not received. The sender
+ may also detect such a middlebox based on the receiver's RTCP RR
+ packet, when the extended sequence number is not advanced due to the
+ failure to receive packets. If the packet loss is less than 100%,
+ then packet loss reporting in either the ECN feedback information or
+ RTCP RR will indicate the situation. The other action is to re-mark
+ a packet from ECT or ECN-CE to not-ECT. That has less dire results;
+ however, it should be detected so that ECN usage can be suspended to
+ prevent misusing the network.
+
+ The RTCP XR ECN summary packet and the ECN feedback packet allow the
+ sender to compare the number of ECT-marked packets of different types
+ received with the number it actually sent. The number of ECT packets
+ received, plus the number of ECN-CE-marked and lost packets, should
+ correspond to the number of sent ECT-marked packets plus the number
+ of received duplicates. If these numbers don't agree, there are two
+ likely reasons: a translator changing the stream or not carrying the
+ ECN markings forward or some node re-marking the packets. In both
+ cases, the usage of ECN is broken on the path. By tracking all the
+ different possible ECN field values, a sender can quickly detect if
+ some non-compliant behaviour is happening on the path.
+
+ Thus, packet losses and non-matching ECN field value statistics are
+ possible indications of issues with using ECN over the path. The
+ next section defines both sender and receiver reactions to these
+ cases.
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 39]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+7.4.1. Fallback Mechanisms
+
+ Upon the detection of a potential failure, both the sender and the
+ receiver can react to mitigate the situation.
+
+ A receiver that detects a packet loss burst MAY schedule an early
+ feedback packet that includes at least the RTCP RR and the ECN
+ feedback message to report this to the sender. This will speed up
+ the detection of the loss at the sender, thus triggering sender-side
+ mitigation.
+
+ A sender that detects high packet loss rates for ECT-marked packets
+ SHOULD immediately switch to sending packets as not-ECT to determine
+ if the losses are potentially due to the ECT markings. If the losses
+ disappear when the ECT-marking is discontinued, the RTP sender should
+ go back to initiation procedures to attempt to verify the apparent
+ loss of ECN capability of the used path. If a re-initiation fails,
+ then two possible actions exist:
+
+ 1. Periodically retry the ECN initiation to detect if a path change
+ occurs to a path that is ECN capable.
+
+ 2. Renegotiate the session to disable ECN support. This is a choice
+ that is suitable if the impact of ECT probing on the media
+ quality is noticeable. If multiple initiations have been
+ successful, but the following full usage of ECN has resulted in
+ the fallback procedures, then disabling of the ECN support is
+ RECOMMENDED.
+
+ We foresee the possibility of flapping ECN capability due to several
+ reasons: video-switching MCU or similar middleboxes that select to
+ deliver media from the sender only intermittently; load-balancing
+ devices that may in worst case result in some packets taking a
+ different network path than the others; mobility solutions that
+ switch the underlying network path in a transparent way for the
+ sender or receiver; and membership changes in a multicast group. It
+ is, however, appropriate to mention that there are also issues such
+ as re-routing of traffic due to a flappy route table or excessive
+ reordering and other issues that are not directly ECN related but
+ nevertheless may cause problems for ECN.
+
+7.4.2. Interpretation of ECN Summary Information
+
+ This section contains discussion on how the ECN Summary Report
+ information can be used to detect various types of ECN path issues.
+ We first review the information the RTCP reports provide on a per-
+ source (SSRC) basis:
+
+
+
+
+Westerlund, et al. Standards Track [Page 40]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ ECN-CE Counter: The number of RTP packets received so far in the
+ session with an ECN field set to CE.
+
+ ECT (0/1) Counters: The number of RTP packets received so far in the
+ session with an ECN field set to ECT (0) and ECT (1) respectively.
+
+ not-ECT Counter: The number of RTP packets received so far in the
+ session with an ECN field set to not-ECT.
+
+ Lost Packets Counter: The number of RTP packets that where expected
+ based on sequence numbers but never received.
+
+ Duplication Counter: The number of received RTP packets that are
+ duplicates of already received ones.
+
+ Extended Highest Sequence number: The highest sequence number seen
+ when sending this report, but with additional bits, to handle
+ disambiguation when wrapping the RTP sequence number field.
+
+ The counters will be initialised to zero to provide values for the
+ RTP stream sender from the first report. After the first report, the
+ changes between the last received report and the previous report are
+ determined by simply taking the values of the latest minus the
+ previous, taking wrapping into account. This definition is also
+ robust to packet losses, since if one report is missing, the
+ reporting interval becomes longer, but is otherwise equally valid.
+
+ In a perfect world, the number of not-ECT packets received should be
+ equal to the number sent minus the Lost Packets Counter, and the sum
+ of the ECT(0), ECT(1), and ECN-CE counters should be equal to the
+ number of ECT-marked packet sent. Two issues may cause a mismatch in
+ these statistics: severe network congestion or unresponsive
+ congestion control might cause some ECT-marked packets to be lost,
+ and packet duplication might result in some packets being received
+ and counted in the statistics multiple times (potentially with a
+ different ECN-mark on each copy of the duplicate).
+
+ The rate of packet duplication is tracked, allowing one to take the
+ duplication into account. The value of the ECN field for duplicates
+ will also be counted, and when comparing the figures, one needs to
+ take into account in the calculation that some fraction of packet
+ duplicates are not-ECT and some are ECT. Thus, when only sending
+ not-ECT, the number of sent packets plus reported duplicates equals
+ the number of received not-ECT. When sending only ECT, the number of
+ sent ECT packets plus duplicates will equal ECT(0), ECT(1), ECN-CE,
+ and packet loss. When sending a mix of not-ECT and ECT, there is an
+ uncertainty if any duplicate or packet loss was an not-ECT or ECT.
+ If the packet duplication is completely independent of the usage of
+
+
+
+Westerlund, et al. Standards Track [Page 41]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ ECN, then the fraction of packet duplicates should be in relation to
+ the number of not-ECT vs. ECT packets sent during the period of
+ comparison. This relation does not hold for packet loss, where
+ higher rates of packet loss for not-ECT is expected than for ECT
+ traffic.
+
+ Detecting clearing of ECN field: If the ratio between ECT and not-ECT
+ transmitted in the reports has become all not-ECT, or has
+ substantially changed towards not-ECT, then this is clearly an
+ indication that the path results in clearing of the ECT field.
+
+ Dropping of ECT packets: To determine if the packet-drop ratio is
+ different between not-ECT and ECT-marked transmission requires a mix
+ of transmitted traffic. The sender should compare if the delivery
+ percentage (delivered/transmitted) between ECT and not-ECT is
+ significantly different. Care must be taken if the number of packets
+ is low in either of the categories. One must also take into account
+ the level of CE marking. A CE-marked packet would have been dropped
+ unless it was ECT marked. Thus, the packet loss level for not-ECT
+ should be approximately equal to the loss rate for ECT when counting
+ the CE-marked packets as lost ones. A sender performing this
+ calculation needs to ensure that the difference is statistically
+ significant.
+
+ If erroneous behaviour is detected, it should be logged to enable
+ follow up and statistics gathering.
+
+8. Processing ECN in RTP Translators and Mixers
+
+ RTP translators and mixers that support ECN for RTP are required to
+ process and potentially modify or generate ECN marking in RTP
+ packets. They also need to process and potentially modify or
+ generate RTCP ECN feedback packets for the translated and/or mixed
+ streams. This includes both downstream RTCP reports generated by the
+ media sender and also reports generated by the receivers, flowing
+ upstream back towards the sender.
+
+8.1. Transport Translators
+
+ Some translators only perform transport-level translations, such as
+ copying packets from one address domain, like from unicast to
+ multicast. They may also perform relaying like copying an incoming
+ packet to a number of unicast receivers. This section details the
+ ECN-related actions for RTP and RTCP.
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 42]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ For RTP data packets, the translator, which does not modify the media
+ stream, SHOULD copy the ECN bits unchanged from the incoming to the
+ outgoing datagrams, unless the translator itself is overloaded and
+ experiencing congestion, in which case it may mark the outgoing
+ datagrams with an ECN-CE mark.
+
+ A transport translator does not modify RTCP packets. However, it
+ MUST perform the corresponding transport translation of the RTCP
+ packets as it does with RTP packets being sent from the same source/
+ endpoint.
+
+8.2. Fragmentation and Reassembly in Translators
+
+ An RTP translator may fragment or reassemble RTP data packets without
+ changing the media encoding and without reference to the congestion
+ state of the networks it bridges. An example of this might be to
+ combine packets of a voice-over-IP stream coded with one 20 ms frame
+ per RTP packet into new RTP packets with two 20 ms frames per packet,
+ thereby reducing the header overhead and thus stream bandwidth, at
+ the expense of an increase in latency. If multiple data packets are
+ re-encoded into one, or vice versa, the RTP translator MUST assign
+ new sequence numbers to the outgoing packets. Losses in the incoming
+ RTP packet stream may also induce corresponding gaps in the outgoing
+ RTP sequence numbers. An RTP translator MUST rewrite RTCP packets to
+ make the corresponding changes to their sequence numbers and to
+ reflect the impact of the fragmentation or reassembly. This section
+ describes how that rewriting is to be done for RTCP ECN feedback
+ packets. Section 7.2 of [RFC3550] describes general procedures for
+ other RTCP packet types.
+
+ The processing of arriving RTP packets for this case is as follows.
+ If an ECN-marked packet is split into two, then both the outgoing
+ packets MUST be ECN marked identically to the original; if several
+ ECN-marked packets are combined into one, the outgoing packet MUST be
+ either ECN-CE marked or dropped if any of the incoming packets are
+ ECN-CE marked. If the outgoing combined packet is not ECN-CE marked,
+ then it MUST be ECT marked if any of the incoming packets were ECT
+ marked.
+
+ RTCP ECN feedback packets (Section 5.1) contain seven fields that are
+ rewritten in an RTP translator that fragments or reassembles packets:
+ the extended highest sequence number, the duplication counter, the
+ Lost Packets Counter, the ECN-CE counter, and not-ECT counter, the
+ ECT(0) counter, and the ECT(1) counter. The RTCP XR report block for
+ ECN summary information (Section 5.2) includes all of these fields
+ except the extended highest sequence number, which is present in the
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 43]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ report block in an SR or RR packet. The procedures for rewriting
+ these fields are the same for both the RTCP ECN feedback packet and
+ the RTCP XR ECN summary packet.
+
+ When receiving an RTCP ECN feedback packet for the translated stream,
+ an RTP translator first determines the range of packets to which the
+ report corresponds. The extended highest sequence number in the RTCP
+ ECN feedback packet (or in the RTCP SR/RR packet contained within the
+ compound packet, in the case of RTCP XR ECN Summary Reports)
+ specifies the end sequence number of the range. For the first RTCP
+ ECN feedback packet received, the initial extended sequence number of
+ the range may be determined by subtracting the sum of the Lost
+ Packets Counter, the ECN-CE counter, the not-ECT counter, the ECT(0)
+ counter and the ECT(1) counter minus the duplication counter, from
+ the extended highest sequence number. For subsequent RTCP ECN
+ feedback packets, the starting sequence number may be determined as
+ being one after the extended highest sequence number of the previous
+ RTCP ECN feedback packet received from the same SSRC. These values
+ are in the sequence number space of the translated packets.
+
+ Based on its knowledge of the translation process, the translator
+ determines the sequence number range for the corresponding original,
+ pre-translation, packets. The extended highest sequence number in
+ the RTCP ECN feedback packet is rewritten to match the final sequence
+ number in the pre-translation sequence number range.
+
+ The translator then determines the ratio, R, of the number of packets
+ in the translated sequence number space (numTrans) to the number of
+ packets in the pre-translation sequence number space (numOrig) such
+ that R = numTrans / numOrig. The counter values in the RTCP ECN
+ Feedback Report are then scaled by dividing each of them by R. For
+ example, if the translation process combines two RTP packets into
+ one, then numOrig will be twice numTrans, giving R=0.5, and the
+ counters in the translated RTCP ECN feedback packet will be twice
+ those in the original.
+
+ The ratio, R, may have a value that leads to non-integer multiples of
+ the counters when translating the RTCP packet. For example, a Voice
+ over IP (VoIP) translator that combines two adjacent RTP packets into
+ one if they contain active speech data, but passes comfort noise
+ packets unchanged, would have an R value of between 0.5 and 1.0
+ depending on the amount of active speech. Since the counter values
+ in the translated RTCP report are integer values, rounding will be
+ necessary in this case.
+
+ When rounding counter values in the translated RTCP packet, the
+ translator should try to ensure that they sum to the number of RTP
+ packets in the pre-translation sequence number space (numOrig). The
+
+
+
+Westerlund, et al. Standards Track [Page 44]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ translator should also try to ensure that no non-zero counter is
+ rounded to a zero value, unless the pre-translated values are zero,
+ since that will lose information that a particular type of event has
+ occurred. It is recognised that it may be impossible to satisfy both
+ of these constraints; in such cases, it is better to ensure that no
+ non-zero counter is mapped to a zero value, since this preserves
+ congestion adaptation and helps the RTCP-based ECN initiation
+ process.
+
+ One should be aware of the impact this type of translator has on the
+ measurement of packet duplication. A translator performing
+ aggregation and most likely also an fragmenting translator will
+ suppress any duplication happening prior to itself. Thus, the
+ reports and what is being scaled will only represent packet
+ duplication happening from the translator to the receiver reporting
+ on the flow.
+
+ It should be noted that scaling the RTCP counter values in this way
+ is meaningful only on the assumption that the level of congestion in
+ the network is related to the number of packets being sent. This is
+ likely to be a reasonable assumption in the type of environment where
+ RTP translators that fragment or reassemble packets are deployed, as
+ their entire purpose is to change the number of packets being sent to
+ adapt to known limitations of the network, but is not necessarily
+ valid in general.
+
+ The rewritten RTCP ECN Feedback Report is sent from the other side of
+ the translator to that from which it arrived (as part of a compound
+ RTCP packet containing other translated RTCP packets, where
+ appropriate).
+
+8.3. Generating RTCP ECN Feedback in Media Transcoders
+
+ An RTP translator that acts as a media transcoder cannot directly
+ forward RTCP packets corresponding to the transcoded stream, since
+ those packets will relate to the non-transcoded stream and will not
+ be useful in relation to the transcoded RTP flow. Such a transcoder
+ will need to interpose itself into the RTCP flow, acting as a proxy
+ for the receiver to generate RTCP feedback in the direction of the
+ sender relating to the pre-transcoded stream and acting in place of
+ the sender to generate RTCP relating to the transcoded stream to be
+ sent towards the receiver. This section describes how this proxying
+ is to be done for RTCP ECN feedback packets. Section 7.2 of
+ [RFC3550] describes general procedures for other RTCP packet types.
+
+ An RTP translator acting as a media transcoder in this manner does
+ not have its own SSRC and hence is not visible to other entities at
+ the RTP layer. RTCP ECN feedback packets and RTCP XR report blocks
+
+
+
+Westerlund, et al. Standards Track [Page 45]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ for ECN summary information that are received from downstream relate
+ to the translated stream and so must be processed by the translator
+ as if they were the original media source. These reports drive the
+ congestion control loop and media adaptation between the translator
+ and the downstream receiver. If there are multiple downstream
+ receivers, a logically separate transcoder instance must be used for
+ each receiver and must process RTCP ECN Feedback and Summary Reports
+ independently of the other transcoder instances. An RTP translator
+ acting as a media transcoder in this manner MUST NOT forward RTCP ECN
+ feedback packets or RTCP XR ECN Summary Reports from downstream
+ receivers in the upstream direction.
+
+ An RTP translator acting as a media transcoder will generate RTCP
+ reports upstream towards the original media sender, based on the
+ reception quality of the original media stream at the translator.
+ The translator will run a separate congestion control loop and media
+ adaptation between itself and the media sender for each of its
+ downstream receivers and must generate RTCP ECN feedback packets and
+ RTCP XR ECN Summary Reports for that congestion control loop using
+ the SSRC of that downstream receiver.
+
+8.4. Generating RTCP ECN Feedback in Mixers
+
+ An RTP mixer terminates one-or-more RTP flows, combines them into a
+ single outgoing media stream, and transmits that new stream as a
+ separate RTP flow. A mixer has its own SSRC and is visible to other
+ participants in the session at the RTP layer.
+
+ An ECN-aware RTP mixer must generate RTCP ECN feedback packets and
+ RTCP XR report blocks for ECN summary information relating to the RTP
+ flows it terminates, in exactly the same way it would if it were an
+ RTP receiver. These reports form part of the congestion control loop
+ between the mixer and the media senders generating the streams it is
+ mixing. A separate control loop runs between each sender and the
+ mixer.
+
+ An ECN-aware RTP mixer will negotiate and initiate the use of ECN on
+ the mixed RTP flows it generates and will accept and process RTCP ECN
+ Feedback Reports and RTCP XR report blocks for ECN relating to those
+ mixed flows as if it were a standard media sender. A congestion
+ control loop runs between the mixer and its receivers, driven in part
+ by the ECN reports received.
+
+ An RTP mixer MUST NOT forward RTCP ECN feedback packets or RTCP XR
+ ECN Summary Reports from downstream receivers in the upstream
+ direction.
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 46]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+9. Implementation Considerations
+
+ To allow the use of ECN with RTP over UDP, an RTP implementation
+ desiring to support receiving ECN-controlled media streams must
+ support reading the value of the ECT bits on received UDP datagrams,
+ and an RTP implementation desiring to support sending ECN-controlled
+ media streams must support setting the ECT bits in outgoing UDP
+ datagrams. The standard Berkeley sockets API pre-dates the
+ specification of ECN and does not provide the functionality that is
+ required for this mechanism to be used with UDP flows, making this
+ specification difficult to implement portably.
+
+10. IANA Considerations
+
+10.1. SDP Attribute Registration
+
+ Following the guidelines in [RFC4566], the IANA has registered one
+ new media-level SDP attribute:
+
+ o Contact name, email address and telephone number: Authors of RFC
+ 6679
+
+ o Attribute-name: ecn-capable-rtp
+
+ o Type of attribute: media-level
+
+ o Subject to charset: no
+
+ This attribute defines the ability to negotiate the use of ECT (ECN-
+ capable transport) for RTP flows running over UDP/IP. This attribute
+ is put in the SDP offer if the offering party wishes to receive an
+ ECT flow. The answering party then includes the attribute in the
+ answer if it wishes to receive an ECT flow. If the answerer does not
+ include the attribute, then ECT MUST be disabled in both directions.
+
+10.2. RTP/AVPF Transport-Layer Feedback Message
+
+ The IANA has registered one new RTP/AVPF Transport-Layer Feedback
+ Message in the table of FMT values for RTPFB Payload Types [RFC4585]
+ as defined in Section 5.1:
+
+ Name: RTCP-ECN-FB
+ Long name: RTCP ECN Feedback
+ Value: 8
+ Reference: RFC 6679
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 47]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+10.3. RTCP Feedback SDP Parameter
+
+ The IANA has registered one new SDP "rtcp-fb" attribute "nack"
+ parameter "ecn" in the SDP ("ack" and "nack" Attribute Values)
+ registry.
+
+ Value name: ecn
+ Long name: Explicit Congestion Notification
+ Usable with: nack
+ Reference: RFC 6679
+
+10.4. RTCP XR Report Blocks
+
+ The IANA has registered one new RTCP XR Block Type as defined in
+ Section 5.2:
+
+ Block Type: 13
+ Name: ECN Summary Report
+ Reference: RFC 6679
+
+10.5. RTCP XR SDP Parameter
+
+ The IANA has registered one new RTCP XR SDP Parameter "ecn-sum" in
+ the "RTCP XR SDP Parameters" registry.
+
+ Parameter name XR block (block type and name)
+ -------------- ------------------------------------
+ ecn-sum 13 ECN Summary Report
+
+10.6. STUN Attribute
+
+ A new STUN [RFC5389] attribute in the comprehension-optional range
+ under IETF Review (0x8000-0xFFFF) has been assigned to the ECN-CHECK
+ STUN attribute (0x802D) defined in Section 7.2.2. The STUN attribute
+ registry can currently be found at:
+ http://www.iana.org/assignments/stun-parameters.
+
+10.7. ICE Option
+
+ A new ICE option "rtp+ecn" has been registered in the "ICE Options"
+ registry created by [RFC6336].
+
+11. Security Considerations
+
+ The use of ECN with RTP over UDP as specified in this document has
+ the following known security issues that need to be considered.
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 48]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ External threats to the RTP and RTCP traffic:
+
+ Denial of Service affecting RTCP: An attacker that can modify the
+ traffic between the media sender and a receiver can achieve either
+ of two things: 1) report a lot of packets as being congestion
+ experience marked, thus forcing the sender into a congestion
+ response; or 2) ensure that the sender disables the usage of ECN
+ by reporting failures to receive ECN by changing the counter
+ fields. This can also be accomplished by injecting false RTCP
+ packets to the media sender. Reporting a lot of ECN-CE-marked
+ traffic is likely the more efficient denial-of-service tool as
+ that may likely force the application to use the lowest possible
+ bitrates. The prevention against an external threat is to
+ integrity protect the RTCP feedback information and authenticate
+ the sender.
+
+ Information leakage: The ECN feedback mechanism exposes the
+ receiver's perceived packet loss and the packets it considers to
+ be ECN-CE marked. This is mostly not considered sensitive
+ information. If it is considered sensitive, the RTCP feedback
+ should be encrypted.
+
+ Changing the ECN bits: An on-path attacker that sees the RTP packet
+ flow from sender to receiver and who has the capability to change
+ the packets can rewrite ECT into ECN-CE, thus leading to erroneous
+ congestion response in the sender or receiver. This denial of
+ service against the media quality in the RTP session is impossible
+ for an endpoint to protect itself against. Only network
+ infrastructure nodes can detect this illicit re-marking. It will
+ be mitigated by turning off ECN; however, if the attacker can
+ modify its response to drop packets, the same vulnerability exist.
+
+ Denial of Service affecting the session setup signalling: If an
+ attacker can modify the session signalling, it can prevent the
+ usage of ECN by removing the signalling attributes used to
+ indicate that the initiator is capable and willing to use ECN with
+ RTP/UDP. This attack can be prevented by authentication and
+ integrity protection of the signalling. We do note that any
+ attacker that can modify the signalling has more interesting
+ attacks they can perform than prevent the usage of ECN, like
+ inserting itself as a middleman in the media flows enabling wire-
+ tapping also for an off-path attacker.
+
+ Threats that exist from misbehaving senders or receivers:
+
+ Receivers cheating: A receiver may attempt to cheat and fail to
+ report reception of ECN-CE-marked packets. The benefit for a
+ receiver cheating in its reporting would be to get an unfair
+
+
+
+Westerlund, et al. Standards Track [Page 49]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ bitrate share across the resource bottleneck. It is far from
+ certain that a receiver would be able to get a significant larger
+ share of the resources. That assumes a high enough level of
+ aggregation that there are flows to acquire shares from. The risk
+ of cheating is that failure to react to congestion results in
+ packet loss and increased path delay.
+
+ Receivers misbehaving: A receiver may prevent the usage of ECN in an
+ RTP session by reporting itself as non-ECN capable, forcing the
+ sender to turn off usage of ECN. In a point-to-point scenario,
+ there is little incentive to do this as it will only affect the
+ receiver, thus failing to utilise an optimisation. For multi-
+ party sessions, some motivation exists for why a receiver would
+ misbehave as it can prevent the other receivers from using ECN.
+ As an insider into the session, it is difficult to determine if a
+ receiver is misbehaving or simply incapable, making it basically
+ impossible in the incremental deployment phase of ECN for RTP
+ usage to determine this. If additional information about the
+ receivers and the network is known, it might be possible to deduce
+ that a receiver is misbehaving. If it can be determined that a
+ receiver is misbehaving, the only response is to exclude it from
+ the RTP session and ensure that it no longer has any valid
+ security context to affect the session.
+
+ Misbehaving senders: The enabling of ECN gives the media packets a
+ higher degree of probability to reach the receiver compared to
+ not-ECT-marked ones on an ECN-capable path. However, this is no
+ magic bullet, and failure to react to congestion will most likely
+ only slightly delay a network buffer over-run, in which its
+ session also will experience packet loss and increased delay.
+ There is some possibility that the media sender's traffic will
+ push other traffic out of the way without being affected too
+ negatively. However, we do note that a media sender still needs
+ to implement congestion control functions to prevent the media
+ from being badly affected by congestion events. Thus, the
+ misbehaving sender is getting an unfair share. This can only be
+ detected and potentially prevented by network monitoring and
+ administrative entities. See Section 7 of [RFC3168] for more
+ discussion of this issue.
+
+ We note that the endpoint security functions needed to prevent an
+ external attacker from interfering with the signalling are source
+ authentication and integrity protection. To prevent information
+ leakage from the feedback packets, encryption of the RTCP is also
+ needed. For RTP, multiple possible solutions exist depending on the
+ application context. Secure RTP (SRTP) [RFC3711] does satisfy the
+ requirement to protect this mechanism. Note, however, that when
+ using SRTP in group communication scenarios, different parties might
+
+
+
+Westerlund, et al. Standards Track [Page 50]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ share the same security context; in this case, the authentication
+ mechanism only shows that one of those parties is involved, not
+ necessarily which one. IPsec [RFC4301] and DTLS [RFC6347] can also
+ provide the necessary security functions.
+
+ The signalling protocols used to initiate an RTP session also need to
+ be source authenticated and integrity protected to prevent an
+ external attacker from modifying any signalling. An appropriate
+ mechanism to protect the used signalling needs to be used. For SIP/
+ SDP, ideally Secure MIME (S/MIME) [RFC5751] would be used. However,
+ with the limited deployment, a minimal mitigation strategy is to
+ require use of SIPS (SIP over TLS) [RFC3261] [RFC5630] to at least
+ accomplish hop-by-hop protection.
+
+ We do note that certain mitigation methods will require network
+ functions.
+
+12. Examples of SDP Signalling
+
+ This section contains a few different examples of the signalling
+ mechanism defined in this specification in an SDP context. If there
+ are discrepancies between these examples and the specification text,
+ the specification text is definitive.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 51]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+12.1. Basic SDP Offer/Answer
+
+ This example is a basic offer/answer SDP exchange, assumed done by
+ SIP (not shown). The intention is to establish a basic audio session
+ point-to-point between two users.
+
+ The Offer:
+
+ v=0
+ o=jdoe 3502844782 3502844782 IN IP4 10.0.1.4
+ s=VoIP call
+ i=SDP offer for VoIP call with ICE and ECN for RTP
+ b=AS:128
+ b=RR:2000
+ b=RS:2500
+ a=ice-pwd:YH75Fviy6338Vbrhrlp8Yh
+ a=ice-ufrag:9uB6
+ a=ice-options:rtp+ecn
+ t=0 0
+ m=audio 45664 RTP/AVPF 97 98 99
+ c=IN IP4 192.0.2.3
+ a=rtpmap:97 G719/48000/1
+ a=fmtp:97 maxred=160
+ a=rtpmap:98 AMR-WB/16000/1
+ a=fmtp:98 octet-align=1; mode-change-capability=2
+ a=rtpmap:99 PCMA/8000/1
+ a=maxptime:160
+ a=ptime:20
+ a=ecn-capable-rtp: ice rtp ect=0 mode=setread
+ a=rtcp-fb:* nack ecn
+ a=rtcp-fb:* trr-int 1000
+ a=rtcp-xr:ecn-sum
+ a=rtcp-rsize
+ a=candidate:1 1 UDP 2130706431 10.0.1.4 8998 typ host
+ a=candidate:2 1 UDP 1694498815 192.0.2.3 45664 typ srflx raddr
+ 10.0.1.4 rport 8998
+
+ This SDP offer presents a single media stream with 3 media payload
+ types. It proposes to use ECN with RTP, with the ICE-based
+ initialisation being preferred over the RTP/RTCP one. Leap of faith
+ is not suggested to be used. The offerer is capable of both setting
+ and reading the ECN bits. In addition, the use of both the RTCP ECN
+ feedback packet and the RTCP XR ECN Summary Report are supported.
+ ICE is also proposed with two candidates. It also supports reduced-
+ size RTCP and can use it.
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 52]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ The Answer:
+
+ v=0
+ o=jdoe 3502844783 3502844783 IN IP4 198.51.100.235
+ s=VoIP call
+ i=SDP offer for VoIP call with ICE and ECN for RTP
+ b=AS:128
+ b=RR:2000
+ b=RS:2500
+ a=ice-pwd:asd88fgpdd777uzjYhagZg
+ a=ice-ufrag:8hhY
+ a=ice-options:rtp+ecn
+ t=0 0
+ m=audio 53879 RTP/AVPF 97 99
+ c=IN IP4 198.51.100.235
+ a=rtpmap:97 G719/48000/1
+ a=fmtp:97 maxred=160
+ a=rtpmap:99 PCMA/8000/1
+ a=maxptime:160
+ a=ptime:20
+ a=ecn-capable-rtp: ice ect=0 mode=readonly
+ a=rtcp-fb:* nack ecn
+ a=rtcp-fb:* trr-int 1000
+ a=rtcp-xr:ecn-sum
+ a=candidate:1 1 UDP 2130706431 198.51.100.235 53879 typ host
+
+ The answer confirms that only one media stream will be used. One RTP
+ payload type was removed. ECN capability was confirmed, and the
+ initialisation method will be ICE. However, the answerer is only
+ capable of reading the ECN bits, which means that ECN can only be
+ used for RTP flowing from the offerer to the answerer. ECT always
+ set to 0 will be used in both directions. Both the RTCP ECN feedback
+ packet and the RTCP XR ECN Summary Report will be used. Reduced-size
+ RTCP will not be used as the answerer has not indicated support for
+ it in the answer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 53]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+12.2. Declarative Multicast SDP
+
+ The session below describes an Any-Source Multicast using a session
+ with a single media stream.
+
+ v=0
+ o=jdoe 3502844782 3502844782 IN IP4 198.51.100.235
+ s=Multicast SDP session using ECN for RTP
+ i=Multicasted audio chat using ECN for RTP
+ b=AS:128
+ t=3502892703 3502910700
+ m=audio 56144 RTP/AVPF 97
+ c=IN IP4 233.252.0.212/127
+ a=rtpmap:97 g719/48000/1
+ a=fmtp:97 maxred=160
+ a=maxptime:160
+ a=ptime:20
+ a=ecn-capable-rtp: rtp mode=readonly; ect=0
+ a=rtcp-fb:* nack ecn
+ a=rtcp-fb:* trr-int 1500
+ a=rtcp-xr:ecn-sum
+
+ This is a declarative SDP example and indicates required
+ functionality in the consumer of the SDP. The initialisation method
+ required is the RTP/RTCP-based one, indicated by the "a=ecn-capable-
+ rtp: rtp ..." line. Receivers are required to be able to read ECN
+ marks ("mode=readonly"), and the ECT value is recommended to be set
+ to 0 always ("ect=0"). The ECN usage in this session requires both
+ ECN feedback and RTCP XR ECN Summary Reports, and their use is
+ indicated through the "a=rtcp-fb:" and "a=rtcp-xr:ecn-sum" lines.
+
+13. Acknowledgments
+
+ The authors wish to thank the following individuals for their reviews
+ and comments: Thomas Belling, Bob Briscoe, Roni Even, Kevin P.
+ Flemming, Tomas Frankkila, Christian Groves, Christer Holmgren,
+ Cullen Jennings, Tom Van Caenegem, Simo Veikkolainen, Bill Ver Steeg,
+ Dan Wing, Qin Wu, and Lei Zhu.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 54]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+14. References
+
+14.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition
+ of Explicit Congestion Notification (ECN) to IP",
+ RFC 3168, September 2001.
+
+ [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
+ Jacobson, "RTP: A Transport Protocol for Real-Time
+ Applications", STD 64, RFC 3550, July 2003.
+
+ [RFC3611] Friedman, T., Caceres, R., and A. Clark, "RTP Control
+ Protocol Extended Reports (RTCP XR)", RFC 3611,
+ November 2003.
+
+ [RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
+ 10646", STD 63, RFC 3629, November 2003.
+
+ [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
+ Description Protocol", RFC 4566, July 2006.
+
+ [RFC5234] Crocker, D. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", STD 68, RFC 5234, January 2008.
+
+ [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
+ (ICE): A Protocol for Network Address Translator (NAT)
+ Traversal for Offer/Answer Protocols", RFC 5245,
+ April 2010.
+
+ [RFC5348] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP
+ Friendly Rate Control (TFRC): Protocol Specification",
+ RFC 5348, September 2008.
+
+ [RFC5389] Rosenberg, J., Mahy, R., Matthews, P., and D. Wing,
+ "Session Traversal Utilities for NAT (STUN)", RFC 5389,
+ October 2008.
+
+ [RFC6336] Westerlund, M. and C. Perkins, "IANA Registry for
+ Interactive Connectivity Establishment (ICE) Options",
+ RFC 6336, July 2011.
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 55]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+14.2. Informative References
+
+ [RFC1112] Deering, S., "Host extensions for IP multicasting", STD 5,
+ RFC 1112, August 1989.
+
+ [RFC2762] Rosenberg, J. and H. Schulzrinne, "Sampling of the Group
+ Membership in RTP", RFC 2762, February 2000.
+
+ [RFC2974] Handley, M., Perkins, C., and E. Whelan, "Session
+ Announcement Protocol", RFC 2974, October 2000.
+
+ [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
+ A., Peterson, J., Sparks, R., Handley, M., and E.
+ Schooler, "SIP: Session Initiation Protocol", RFC 3261,
+ June 2002.
+
+ [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
+ with Session Description Protocol (SDP)", RFC 3264,
+ June 2002.
+
+ [RFC3540] Spring, N., Wetherall, D., and D. Ely, "Robust Explicit
+ Congestion Notification (ECN) Signaling with Nonces",
+ RFC 3540, June 2003.
+
+ [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
+ Video Conferences with Minimal Control", STD 65, RFC 3551,
+ July 2003.
+
+ [RFC3569] Bhattacharyya, S., "An Overview of Source-Specific
+ Multicast (SSM)", RFC 3569, July 2003.
+
+ [RFC3711] Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
+ Norrman, "The Secure Real-time Transport Protocol (SRTP)",
+ RFC 3711, March 2004.
+
+ [RFC4301] Kent, S. and K. Seo, "Security Architecture for the
+ Internet Protocol", RFC 4301, December 2005.
+
+ [RFC4340] Kohler, E., Handley, M., and S. Floyd, "Datagram
+ Congestion Control Protocol (DCCP)", RFC 4340, March 2006.
+
+ [RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
+ "Extended RTP Profile for Real-time Transport Control
+ Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585,
+ July 2006.
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 56]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+ [RFC4588] Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
+ Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
+ July 2006.
+
+ [RFC4607] Holbrook, H. and B. Cain, "Source-Specific Multicast for
+ IP", RFC 4607, August 2006.
+
+ [RFC4960] Stewart, R., "Stream Control Transmission Protocol",
+ RFC 4960, September 2007.
+
+ [RFC5117] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 5117,
+ January 2008.
+
+ [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for
+ Real-time Transport Control Protocol (RTCP)-Based Feedback
+ (RTP/SAVPF)", RFC 5124, February 2008.
+
+ [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size
+ Real-Time Transport Control Protocol (RTCP): Opportunities
+ and Consequences", RFC 5506, April 2009.
+
+ [RFC5630] Audet, F., "The Use of the SIPS URI Scheme in the Session
+ Initiation Protocol (SIP)", RFC 5630, October 2009.
+
+ [RFC5751] Ramsdell, B. and S. Turner, "Secure/Multipurpose Internet
+ Mail Extensions (S/MIME) Version 3.2 Message
+ Specification", RFC 5751, January 2010.
+
+ [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.
+
+ [RFC6189] Zimmermann, P., Johnston, A., and J. Callas, "ZRTP: Media
+ Path Key Agreement for Unicast Secure RTP", RFC 6189,
+ April 2011.
+
+ [RFC6347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
+ Security Version 1.2", RFC 6347, January 2012.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 57]
+
+RFC 6679 ECN for RTP over UDP/IP August 2012
+
+
+Authors' Addresses
+
+ Magnus Westerlund
+ Ericsson
+ Farogatan 6
+ SE-164 80 Kista
+ Sweden
+ Phone: +46 10 714 82 87
+ EMail: magnus.westerlund@ericsson.com
+
+
+ Ingemar Johansson
+ Ericsson
+ Laboratoriegrand 11
+ SE-971 28 Lulea
+ Sweden
+ Phone: +46 73 0783289
+ EMail: ingemar.s.johansson@ericsson.com
+
+
+ Colin Perkins
+ University of Glasgow
+ School of Computing Science
+ Glasgow G12 8QQ
+ United Kingdom
+ EMail: csp@csperkins.org
+
+
+ Piers O'Hanlon
+ University of Oxford
+ Oxford Internet Institute
+ 1 St Giles
+ Oxford OX1 3JS
+ United Kingdom
+ EMail: piers.ohanlon@oii.ox.ac.uk
+
+
+ Ken Carlberg
+ G11
+ 1600 Clarendon Blvd
+ Arlington, VA
+ USA
+ EMail: carlberg@g11.org.uk
+
+
+
+
+
+
+
+
+Westerlund, et al. Standards Track [Page 58]
+