diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc8083.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc8083.txt')
-rw-r--r-- | doc/rfc/rfc8083.txt | 1403 |
1 files changed, 1403 insertions, 0 deletions
diff --git a/doc/rfc/rfc8083.txt b/doc/rfc/rfc8083.txt new file mode 100644 index 0000000..2a97f16 --- /dev/null +++ b/doc/rfc/rfc8083.txt @@ -0,0 +1,1403 @@ + + + + + + +Internet Engineering Task Force (IETF) C. Perkins +Request for Comments: 8083 University of Glasgow +Updates: 3550 V. Singh +Category: Standards Track callstats.io +ISSN: 2070-1721 March 2017 + + +Multimedia Congestion Control: Circuit Breakers for Unicast RTP Sessions + +Abstract + + The Real-time Transport Protocol (RTP) is widely used in telephony, + video conferencing, and telepresence applications. Such applications + are often run on best-effort UDP/IP networks. If congestion control + is not implemented in these applications, then network congestion can + lead to uncontrolled packet loss and a resulting deterioration of the + user's multimedia experience. The congestion control algorithm acts + as a safety measure by stopping RTP flows from using excessive + resources and protecting the network from overload. At the time of + this writing, however, while there are several proprietary solutions, + there is no standard algorithm for congestion control of interactive + RTP flows. + + This document does not propose a congestion control algorithm. It + instead defines a minimal set of RTP circuit breakers: conditions + under which an RTP sender needs to stop transmitting media data to + protect the network from excessive congestion. It is expected that, + in the absence of long-lived excessive congestion, RTP applications + running on best-effort IP networks will be able to operate without + triggering these circuit breakers. To avoid triggering the RTP + circuit breaker, any Standards Track congestion control algorithms + defined for RTP will need to operate within the envelope set by these + RTP circuit breaker algorithms. + +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 7841. + + 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/rfc8083. + + + + +Perkins & Singh Standards Track [Page 1] + +RFC 8083 RTP Circuit Breakers March 2017 + + +Copyright Notice + + Copyright (c) 2017 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. + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 + 2. Background . . . . . . . . . . . . . . . . . . . . . . . . . 3 + 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6 + 4. RTP Circuit Breakers for Systems Using the RTP/AVP Profile . 8 + 4.1. RTP/AVP Circuit Breaker #1: RTCP Timeout . . . . . . . . 10 + 4.2. RTP/AVP Circuit Breaker #2: Media Timeout . . . . . . . . 11 + 4.3. RTP/AVP Circuit Breaker #3: Congestion . . . . . . . . . 12 + 4.4. RTP/AVP Circuit Breaker #4: Media Usability . . . . . . . 16 + 4.5. Ceasing Transmission . . . . . . . . . . . . . . . . . . 17 + 5. RTP Circuit Breakers and the RTP/AVPF and RTP/SAVPF Profiles 18 + 6. Impact of RTCP Extended Reports (XR) . . . . . . . . . . . . 19 + 7. Impact of Explicit Congestion Notification (ECN) . . . . . . 19 + 8. Impact of Bundled Media and Layered Coding . . . . . . . . . 20 + 9. Security Considerations . . . . . . . . . . . . . . . . . . . 20 + 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 21 + 10.1. Normative References . . . . . . . . . . . . . . . . . . 21 + 10.2. Informative References . . . . . . . . . . . . . . . . . 22 + Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 25 + Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 + + + + + + + + + + + + + + + +Perkins & Singh Standards Track [Page 2] + +RFC 8083 RTP Circuit Breakers March 2017 + + +1. Introduction + + The Real-time Transport Protocol (RTP) [RFC3550] is widely used in + voice-over-IP, video teleconferencing, and telepresence systems. + Many of these systems run over best-effort UDP/IP networks and can + suffer from packet loss and increased latency if network congestion + occurs. Designing effective RTP congestion control algorithms to + adapt the transmission of RTP-based media to match the available + network capacity while also maintaining the user experience is a + difficult but important problem. Many such congestion control and + media adaptation algorithms have been proposed, but to date there is + no consensus on the correct approach or even that a single standard + algorithm is desirable. + + This memo does not attempt to propose a new RTP congestion control + algorithm. Instead, we propose a small set of RTP circuit breakers: + mechanisms that terminate RTP flows in conditions under which there + is general agreement that serious network congestion is occurring. + The RTP circuit breakers proposed in this memo are a specific + instance of the general class of network transport circuit breakers + [RFC8084] designed to act as a protection mechanism of last resort to + avoid persistent excessive congestion. To avoid triggering the RTP + circuit breaker, any Standards Track congestion control algorithms + defined for RTP will need to operate within the envelope set by the + RTP circuit breaker algorithms defined by this memo. + +2. Background + + We consider congestion control for unicast RTP traffic flows. This + is the problem of adapting the transmission of an audio/visual data + flow, encapsulated within an RTP transport session, from one sender + to one receiver so that it does not use more capacity than is + available along the network path. Such adaptation needs to be done + in a way that limits the disruption to the user experience caused by + both packet loss and excessive rate changes. Congestion control for + multicast flows is outside the scope of this memo. Multicast traffic + needs different solutions since the available capacity estimator for + a group of receivers will differ from that for a single receiver, and + because multicast congestion control has to consider issues of + fairness across groups of receivers that do not apply to unicast + flows. + + Congestion control for unicast RTP traffic can be implemented in one + of two places in the protocol stack. One approach is to run the RTP + traffic over a congestion-controlled transport protocol (for example, + over TCP), and to adapt the media encoding to match the dictates of + the transport-layer congestion control algorithm. This is safe for + the network but can be suboptimal for the media quality unless the + + + +Perkins & Singh Standards Track [Page 3] + +RFC 8083 RTP Circuit Breakers March 2017 + + + transport protocol is designed to support real-time media flows. We + do not consider this class of applications further in this memo, as + their network safety is guaranteed by the underlying transport. + + Alternatively, RTP flows can be run over a non-congestion-controlled + transport protocol (for example, UDP) performing rate adaptation at + the application layer based on RTP Control Protocol (RTCP) feedback. + With a well-designed, network-aware application, this allows highly + effective media quality adaptation, but there is potential to cause + persistent congestion in the network if the application does not + adapt its sending rate in a timely and effective manner. We consider + this class of applications in this memo. + + Congestion control relies on monitoring the delivery of a media flow + and responding to adapt the transmission of that flow when there are + signs that the network path is congested. Network congestion can be + detected in one of three ways: + + 1) a receiver can infer the onset of congestion by observing an + increase in one-way delay caused by queue build-up within the + network; + + 2) if Explicit Congestion Notification (ECN) [RFC3168] is supported, + the network can signal the presence of congestion by marking + packets using ECN Congestion Experienced (CE) marks (this could + potentially be augmented by mechanisms such as Congestion + Exposure (ConEx) [RFC7713] or other future protocol extensions + for network signaling of congestion); or + + 3) in the extreme case, congestion will cause packet loss that can + be detected by observing a gap in the received RTP sequence + numbers. + + Once the onset of congestion is observed, the receiver has to send + feedback to the sender to indicate that the transmission rate needs + to be reduced. How the sender reduces the transmission rate is + highly dependent on the media codec being used and is outside the + scope of this memo. + + There are several ways in which a receiver can send feedback to a + media sender within the RTP framework: + + o The base RTP specification [RFC3550] defines RTCP Receiver Report + (RR) packets to convey reception quality feedback information and + Sender Report (SR) packets to convey information about the media + transmission. RTCP SR packets contain data that can be used to + reconstruct media timing at a receiver along with a count of the + total number of octets and packets sent. RTCP RR packets report + + + +Perkins & Singh Standards Track [Page 4] + +RFC 8083 RTP Circuit Breakers March 2017 + + + on the fraction of packets lost in the last reporting interval, + the cumulative number of packets lost, the highest sequence number + received, and the inter-arrival jitter. The RTCP RR packets also + contain timing information that allows the sender to estimate the + network Round-Trip Time (RTT) to the receivers. RTCP reports are + sent periodically, with the reporting interval being determined by + the number of Synchronization Sources (SSRCs) used in the session + and a configured session bandwidth estimate (the number of SSRCs) + used is usually two in a unicast session, one for each + participant, but can be greater if the participants send multiple + media streams). The interval between reports sent from each + receiver is on the order of a few seconds on average; although it + varies with the session bandwidth, it is randomized to avoid + synchronization of reports from multiple receivers. The interval + can be less than a second in a high-bandwidth session. RTCP RR + packets allow a receiver to report ongoing network congestion to + the sender. However, if a receiver detects the onset of + congestion part way through a reporting interval, the base RTP + specification contains no provision for sending the RTCP RR packet + early, and the receiver has to wait until the next scheduled + reporting interval. + + o The RTCP Extended Reports (XR) [RFC3611] allow reporting of more + complex and sophisticated reception quality metrics but do not + change the RTCP timing rules. RTCP extended reports of potential + interest for congestion control purposes are the extended packet + loss, discard, and burst metrics [RFC3611] [RFC7002] [RFC7097] + [RFC7003] [RFC6958] as well as the extended delay metrics + [RFC6843] [RFC6798]. Other RTCP Extended Reports that could be + helpful for congestion control purposes might be developed in + future. + + o Rapid feedback about the occurrence of congestion events can be + achieved using the Extended RTP Profile for RTCP-Based Feedback + (RTP/AVPF) [RFC4585] (or its secure variant, RTP/SAVPF [RFC5124]) + in place of the RTP/AVP profile [RFC3551]. This modifies the RTCP + timing rules to allow RTCP reports to be sent early, in some cases + immediately, provided the RTCP transmission rate keeps within its + bandwidth allocation. It also defines transport-layer feedback + messages, including Negative Acknowledgements (NACKs), that can be + used to report on specific congestion events. RTP Codec Control + Messages [RFC5104] extend the RTP/AVPF profile with additional + feedback messages that can be used to influence the way in which + rate adaptation occurs but do not further change the dynamics of + how rapidly feedback can be sent. Use of the RTP/AVPF profile is + dependent on signaling. + + + + + +Perkins & Singh Standards Track [Page 5] + +RFC 8083 RTP Circuit Breakers March 2017 + + + o Finally, ECN for RTP over UDP [RFC6679] can be used to provide + feedback on the number of packets that received an ECN-CE mark. + This RTCP extension builds on the RTP/AVPF profile to allow rapid + congestion feedback when ECN is supported. + + In addition to these mechanisms for providing feedback, the sender + can include an RTP header extension in each packet to record packet + transmission times [RFC5450]. Accurate transmission timestamps can + be helpful for estimating queuing delays to get an early indication + of the onset of congestion. + + Taken together, these various mechanisms allow receivers to provide + feedback on the senders when congestion events occur, with varying + degrees of timeliness and accuracy. The key distinction is between + systems that use only the basic RTCP mechanisms, without RTP/AVPF + rapid feedback, and those that use the RTP/AVPF extensions to respond + to congestion more rapidly. + +3. Terminology + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [RFC2119]. + This interpretation of these key words applies only when written in + ALL CAPS. Mixed- or lower-case uses of these key words are not to be + interpreted as carrying special significance in this memo. + + The definition of the RTP circuit breaker is specified in terms of + the following variables: + + o Td is the deterministic RTCP reporting interval, as defined in + Section 6.3.1 of [RFC3550]. + + o Tdr is the sender's estimate of the deterministic RTCP reporting + interval, Td, calculated by a receiver of the data it is sending. + Tdr is not known at the sender but can be estimated by executing + the algorithm in Section 6.2 of [RFC3550] using the average RTCP + packet size seen at the sender, the number of members reported in + the receiver's SR/RR report blocks, and whether the receiver is + sending SR or RR packets. Tdr is recalculated when each new RTCP + SR/RR report is received, but the media timeout circuit breaker + (see Section 4.2) is only reconsidered when Tdr increases. + + + + + + + + + +Perkins & Singh Standards Track [Page 6] + +RFC 8083 RTP Circuit Breakers March 2017 + + + o Tr is the network round-trip time, which is calculated by the + sender using the algorithm in Section 6.4.1 of [RFC3550] and is + smoothed using an exponentially weighted moving average as + Tr = (0.8 * Tr) + (0.2 * Tr_new) where Tr_new is the latest RTT + estimate obtained from an RTCP report. The weight is chosen so + old estimates decay over k intervals. + + o k is the non-reporting threshold (see Section 4.2). + + o Tf is the media framing interval at the sender. For applications + sending at a constant frame rate, Tf is the inter-frame interval. + For applications that switch between a small set of possible frame + rates (for example, when sending speech with comfort noise, such + that comfort noise frames are sent less often than speech frames), + Tf is set to the longest of the inter-frame intervals of the + different frame rates. For applications that send periodic frames + but dynamically vary their frame rate, Tf is set to the largest + inter-frame interval used in the last 10 seconds. For + applications that send less than one frame every 10 seconds, or + that have no concept of periodic frames (e.g., text conversation + [RFC4103], or pointer events [RFC2862]), when each frame is sent, + Tf is set to the time interval since the previous frame. + + o G is the frame group size. That is, the number of frames that are + coded together based on a particular sending rate setting. If the + codec used by the sender can change its rate on each frame, then G + = 1; otherwise, G is set to the number of frames before the codec + can adjust to the new rate. For codecs that have the concept of a + Group of Pictures (GOP), G is likely the GOP length. + + o T_rr_interval is the minimal interval between RTCP reports, as + defined in Section 3.4 of [RFC4585]; it is only meaningful for + implementations of RTP/AVPF profile [RFC4585] or the RTP/SAVPF + profile [RFC5124]. + + o X is the estimated throughput a TCP connection would achieve over + a path, in bytes per second. + + o s is the size of RTP packets being sent, in bytes. If the RTP + packets being sent vary in size, then the average size over the + packet comprising the last 4 * G frames MUST be used (this is + intended to be comparable to the four loss intervals used in + [RFC5348]). + + o p is the loss event rate, between 0.0 and 1.0, that would be seen + by a TCP connection over a particular path. When used in the RTP + congestion circuit breaker, this is approximated as described in + Section 4.3. + + + +Perkins & Singh Standards Track [Page 7] + +RFC 8083 RTP Circuit Breakers March 2017 + + + o t_RTO is the retransmission timeout value that would be used by a + TCP connection over a particular path, in seconds. This MUST be + approximated using t_RTO = 4 * Tr when used as part of the RTP + congestion circuit breaker. + + o b is the number of packets that are acknowledged by a single TCP + acknowledgement. Following [RFC5348], it is RECOMMENDED that the + value b = 1 is used as part of the RTP congestion circuit breaker. + +4. RTP Circuit Breakers for Systems Using the RTP/AVP Profile + + The feedback mechanisms defined in [RFC3550] and available under the + RTP/AVP profile [RFC3551] are the minimum that can be assumed for a + baseline circuit breaker mechanism that is suitable for all unicast + applications of RTP. Accordingly, for an RTP circuit breaker to be + useful, it needs to be able to detect that an RTP flow is causing + excessive congestion using only basic RTCP features without needing + RTCP XR feedback or the RTP/AVPF profile for rapid RTCP reports. + + RTCP is a fundamental part of the RTP protocol, and the mechanisms + described here rely on the implementation of RTCP. Implementations + that claim to support RTP, but that do not implement RTCP, will be + unable to use the circuit breaker mechanisms described in this memo. + Such implementations SHOULD NOT be used on networks that might be + subject to congestion unless equivalent mechanisms are defined using + some non-RTCP feedback channel to report congestion and signal + circuit breaker conditions. + + The RTCP timeout circuit breaker (Section 4.1) will trigger if an + implementation of this memo attempts to interwork with an endpoint + that does not support RTCP. Implementations that sometimes need to + interwork with endpoints that do not support RTCP need to disable the + RTP circuit breakers if they don't receive some confirmation via + signaling that the remote endpoint implements RTCP (the presence of a + Session Description Protocol (SDP) "a=rtcp:" attribute in an answer + might be such an indication). The RTP circuit breaker SHOULD NOT be + disabled on networks that might be subject to congestion unless + equivalent mechanisms are defined using some non-RTCP feedback + channel to report congestion and signal circuit breaker conditions + [RFC8084]. + + Three potential congestion signals are available from the basic RTCP + SR/RR packets and are reported for each SSRC in the RTP session: + + 1. The sender can estimate the network round-trip time once per RTCP + reporting interval based on the contents and timing of RTCP SR + and RR packets. + + + + +Perkins & Singh Standards Track [Page 8] + +RFC 8083 RTP Circuit Breakers March 2017 + + + 2. Receivers report a jitter estimate (the statistical variance of + the RTP data packet inter-arrival time) calculated over the RTCP + reporting interval. Due to the nature of the jitter calculation + (Section 6.4.4. of [RFC3550]), the jitter is only meaningful for + RTP flows that send a single data packet for each RTP timestamp + value (i.e., audio flows, or video flows where each packet + comprises one video frame). + + 3. Receivers report the fraction of RTP data packets lost during the + RTCP reporting interval and the cumulative number of RTP packets + lost over the entire RTP session. + + These congestion signals limit the possible circuit breakers since + they give only limited visibility into the behavior of the network. + + RTT estimates are widely used in congestion control algorithms as a + proxy for queuing delay measures in delay-based congestion control or + to determine connection timeouts. RTT estimates derived from RTCP SR + and RR packets sent according to the RTP/AVP timing rules are too + infrequent to be useful for congestion control and don't give enough + information to distinguish a delay change due to routing updates from + queuing delay caused by congestion. Accordingly, we cannot use the + RTT estimate alone as an RTP circuit breaker. + + Increased jitter can be a signal of transient network congestion, but + in the highly aggregated form reported in RTCP RR packets, it offers + insufficient information to estimate the extent or persistence of + congestion. Jitter reports are a useful early warning of potential + network congestion but provide an insufficiently strong signal to be + used as a circuit breaker. + + The remaining congestion signals are the packet loss fraction and the + cumulative number of packets lost. If considered carefully, and over + an appropriate time frame to distinguish transient problems from long + term issues [RFC8084], these can be effective indicators that + persistent excessive congestion is occurring in networks where packet + loss is primarily due to queue overflows, although loss caused by + non-congestive packet corruption can distort the result in some + networks. TCP congestion control [RFC5681] intentionally tries to + fill the router queues and uses the resulting packet loss as + congestion feedback. An RTP flow competing with TCP traffic will + therefore expect to see a non-zero packet loss fraction, and some + variation in queuing latency, in normal operation when sharing a path + with other flows, which needs to be accounted for when determining + the circuit breaker threshold [RFC8084]. This behavior of TCP is + reflected in the congestion circuit breaker below and will affect the + design of any RTP congestion control protocol. + + + + +Perkins & Singh Standards Track [Page 9] + +RFC 8083 RTP Circuit Breakers March 2017 + + + Two packet loss regimes can be observed: 1) RTCP RR packets show a + non-zero packet loss fraction while the extended highest sequence + number received continues to increment; and 2) RR packets show a loss + fraction of zero, but the extended highest sequence number received + does not increment even though the sender has been transmitting RTP + data packets. The former corresponds to the TCP congestion avoidance + state and indicates a congested path that is still delivering data; + the latter corresponds to a TCP timeout and is most likely due to a + path failure. A third condition is that data is being sent but no + RTCP feedback is received at all, corresponding to a failure of the + reverse path. We derive circuit breaker conditions for these loss + regimes in the following. + +4.1. RTP/AVP Circuit Breaker #1: RTCP Timeout + + An RTCP timeout can occur when RTP data packets are being sent, but + there are no RTCP reports returned from the receiver. This is either + due to a failure of the receiver to send RTCP reports or a failure of + the return path that is preventing those RTCP reporting from being + delivered. In either case, it is not safe to continue transmission + since the sender has no way of knowing if it is causing congestion. + + An RTP sender that has not received any RTCP SR or RTCP RR packets + reporting on the SSRC it is using, for a time period of at least + three times its deterministic RTCP reporting interval, Td (where Td + is calculated without the randomization factor and using the fixed + minimum interval of Tmin=5 seconds), SHOULD cease transmission (see + Section 4.5). The rationale for this choice of timeout is as + described in Section 6.2 of [RFC3550] ("so that implementations which + do not use the reduced value for transmitting RTCP packets are not + timed out by other participants prematurely") and has been updated by + Section 6.1.4 of [RFC8108] to account for the use of the RTP/AVPF + profile [RFC4585] or the RTP/SAVPF profile [RFC5124]. + + To reduce the risk of premature timeout, implementations SHOULD NOT + configure the RTCP bandwidth such that Td is larger than 5 seconds. + Similarly, implementations that use the RTP/AVPF profile [RFC4585] or + the RTP/SAVPF profile [RFC5124] SHOULD NOT configure T_rr_interval to + values larger than 4 seconds (the reduced limit for T_rr_interval + follows Section 6.1.3 of [RFC8108]). + + The choice of three RTCP reporting intervals as the timeout is made + following Section 6.3.5 of RFC 3550 [RFC3550]. This specifies that + participants in an RTP session will timeout and remove an RTP sender + from the list of active RTP senders if no RTP data packets have been + received from that RTP sender within the last two RTCP reporting + intervals. Using a timeout of three RTCP reporting intervals is + therefore large enough that the other participants will have timed + + + +Perkins & Singh Standards Track [Page 10] + +RFC 8083 RTP Circuit Breakers March 2017 + + + out the sender if a network problem stops the data packets it is + sending from reaching the receivers, even allowing for loss of some + RTCP packets. + + If a sender is transmitting a large number of RTP media streams, such + that the corresponding RTCP SR or RR packets are too large to fit + into the network MTU, the receiver will generate RTCP SR or RR + packets in a round-robin manner. In this case, the sender SHOULD + treat receipt of an RTCP SR or RR packet corresponding to any SSRC it + sent on the same 5-tuple of source and destination IP address, port, + and protocol as an indication that the receiver and return path are + working and thus preventing the RTCP timeout circuit breaker from + triggering. + +4.2. RTP/AVP Circuit Breaker #2: Media Timeout + + If RTP data packets are being sent but the RTCP SR or RR packets + reporting on that SSRC indicate a non-increasing extended highest + sequence number received, this is an indication that those RTP data + packets are not reaching the receiver. This could be a short-term + issue affecting only a few RTP packets, perhaps caused by a slow-to- + open firewall or a transient connectivity problem, but if the issue + persists, it is a sign of a more ongoing and significant problem (a + "media timeout"). + + The time needed to declare a media timeout depends on the parameters + Tdr, Tr, Tf, and on the non-reporting threshold k. The value of k is + chosen so that when Tdr is large compared to Tr and Tf, receipt of at + least k RTCP reports with non-increasing extended highest sequence + number received gives reasonable assurance that the forward path has + failed and that the RTP data packets have not been lost by chance. + The RECOMMENDED value for k is 5 reports. + + When Tdr < Tf, then RTP data packets are being sent at a rate less + than one per RTCP reporting interval of the receiver, so the extended + highest sequence number received can be expected to be non-increasing + for some receiver RTCP reporting intervals. Similarly, when + Tdr < Tr, some receiver RTCP reporting intervals might pass before + the RTP data packets arrive at the receiver, also leading to reports + where the extended highest sequence number received is non- + increasing. Both issues require the media timeout interval to be + scaled relative to the threshold, k. + + The media timeout RTP circuit breaker is therefore as follows. When + starting sending, calculate MEDIA_TIMEOUT using: + + MEDIA_TIMEOUT = ceil(k * max(Tf, Tr, Tdr) / Tdr) + + + + +Perkins & Singh Standards Track [Page 11] + +RFC 8083 RTP Circuit Breakers March 2017 + + + When a sender receives an RTCP packet that indicates reception of the + media it has been sending, then it cancels the media timeout circuit + breaker. If it is still sending, then it MUST calculate a new value + for MEDIA_TIMEOUT and set a new media timeout circuit breaker. + + If a sender receives an RTCP packet indicating that its media was not + received, it MUST calculate a new value for MEDIA_TIMEOUT. If the + new value is larger than the previous, it replaces MEDIA_TIMEOUT with + the new value, extending the media timeout circuit breaker; + otherwise, it keeps the original value of MEDIA_TIMEOUT. This + process is known as reconsidering the media timeout circuit breaker. + + If MEDIA_TIMEOUT consecutive RTCP packets are received indicating + that the media being sent was not received, and the media timeout + circuit breaker has not been canceled, then the media timeout circuit + breaker triggers. When the media timeout circuit breaker triggers, + the sender SHOULD cease transmission (see Section 4.5). + + When stopping sending an RTP stream, a sender MUST cancel the + corresponding media timeout circuit breaker. + +4.3. RTP/AVP Circuit Breaker #3: Congestion + + If RTP data packets are being sent and the corresponding RTCP SR or + RR packets show non-zero packet loss fraction and increasing extended + highest sequence number received, then those RTP data packets are + arriving at the receiver, but some degree of congestion is occurring. + The RTP/AVP profile [RFC3551] states that: + + If best-effort service is being used, RTP receivers SHOULD monitor + packet loss to ensure that the packet loss rate is within + acceptable parameters. Packet loss is considered acceptable if a + TCP flow across the same network path and experiencing the same + network conditions would achieve an average throughput, measured + on a reasonable timescale, that is not less than [the throughput] + the RTP flow is achieving. This condition can be satisfied by + implementing congestion control mechanisms to adapt the + transmission rate (or the number of layers subscribed for a + layered multicast session), or by arranging for a receiver to + leave the session if the loss rate is unacceptably high. + + The comparison to TCP cannot be specified exactly, but is intended + as an "order-of-magnitude" comparison in timescale and throughput. + The timescale on which TCP throughput is measured is the round- + trip time of the connection. In essence, this requirement states + that it is not acceptable to deploy an application (using RTP or + + + + + +Perkins & Singh Standards Track [Page 12] + +RFC 8083 RTP Circuit Breakers March 2017 + + + any other transport protocol) on the best-effort Internet which + consumes bandwidth arbitrarily and does not compete fairly with + TCP within an order of magnitude. + + The phase "order of magnitude" in the above means within a factor of + ten, approximately. In order to implement this, it is necessary to + estimate the throughput a bulk TCP connection would achieve over the + path. For a long-lived TCP Reno connection, it has been shown that + the TCP throughput, X, in bytes per second, can be estimated as + follows [Padhye]: + + s + X = ------------------------------------------------------------- + Tr*sqrt(2*b*p/3)+(t_RTO * (3*sqrt(3*b*p/8) * p * (1+32*p*p))) + + This is the same approach to estimated TCP throughput that is used in + [RFC5348]. Under conditions of low packet loss, the second term on + the denominator is small, so this formula can be approximated with + reasonable accuracy as follows [Mathis]: + + s + X = ---------------- + Tr*sqrt(2*b*p/3) + + It is RECOMMENDED that this simplified throughput equation be used + since the reduction in accuracy is small, and it is much simpler to + calculate than the full equation. Measurements have shown that the + simplified TCP throughput equation is effective as an RTP circuit + breaker for multimedia flows sent to hosts on residential networks + using Asymmetric Digital Subscriber Line (ADSL) and cable modem links + [Singh]. The data shows that the full TCP throughput equation tends + to be more sensitive to packet loss and triggers the RTP circuit + breaker earlier than the simplified equation. Implementations that + desire this extra sensitivity MAY use the full TCP throughput + equation in the RTP circuit breaker. Initial measurements in LTE + networks have shown that the extra sensitivity is helpful in that + environment, with the full TCP throughput equation giving a more + balanced circuit breaker response than the simplified TCP equation + [Sarker]; other networks might see similar behavior. + + No matter what TCP throughput equation is chosen, two parameters need + to be estimated and reported to the sender in order to calculate the + throughput: the round-trip time, Tr, and the loss event rate, p (the + packet size, s, is known to the sender). The round-trip time can be + estimated from RTCP SR and RR packets. This is done too infrequently + for accurate statistics but is the best that can be done with the + standard RTCP mechanisms. + + + + +Perkins & Singh Standards Track [Page 13] + +RFC 8083 RTP Circuit Breakers March 2017 + + + Report blocks in RTCP SR or RR packets contain the packet loss + fraction, rather than the loss event rate, so p cannot be reported + (TCP typically treats the loss of multiple packets within a single + RTT as one loss event, but RTCP RR packets report the overall + fraction of packets lost and do not report when the packet losses + occurred). Using the loss fraction in place of the loss event rate + can overestimate the loss. We believe that this overestimate will + not be significant given that we are only interested in order of + magnitude comparison (Section 3.2.1 of [Floyd] shows that the + difference is small for steady-state conditions and random loss, but + using the loss fraction is more conservative in the case of bursty + loss). + + The congestion circuit breaker is therefore as follows. When a + sender that is transmitting at least one RTP packet every max(Tdr, + Tr) seconds receives an RTCP SR or RR packet that contains a report + block for an SSRC it is using, the sender MUST record the value of + the fraction lost field from the report block, and the time since the + last report block was received, for that SSRC. If more than + CB_INTERVAL (see below) report blocks have been received for that + SSRC, the sender MUST calculate the average fraction lost over the + last CB_INTERVAL reporting intervals and then estimate the TCP + throughput that would be achieved over the path using the chosen TCP + throughput equation and the measured values of the round-trip time, + Tr, the loss event rate, p (approximated by the average fraction + lost, as is described below), and the packet size, s. The estimate + of the TCP throughput, X, is then compared with the actual sending + rate of the RTP stream. If the actual sending rate of the RTP stream + is more than 10 * X, then the congestion circuit breaker is + triggered. + + The average fraction lost is calculated based on the sum (over the + last CB_INTERVAL reporting intervals) of the fraction lost in each + reporting interval that is then multiplied by the duration of the + corresponding reporting interval and then divided by the total + duration of the last CB_INTERVAL reporting intervals. The + CB_INTERVAL parameter is set to: + + CB_INTERVAL = + ceil(3*min(max(10*G*Tf, 10*Tr, 3*Tdr), max(15, 3*Td))/(3*Tdr)) + + The parameters that feed into CB_INTERVAL are chosen to give the + congestion control algorithm time to react to congestion. They give + at least three RTCP reports, ten round trip times, and ten groups of + frames to adjust the rate to reduce the congestion to a reasonable + level. It is expected that a responsive congestion control algorithm + + + + + +Perkins & Singh Standards Track [Page 14] + +RFC 8083 RTP Circuit Breakers March 2017 + + + will begin to respond with the next group of frames after it receives + indication of congestion, so CB_INTERVAL ought to be a much longer + interval than the congestion response. + + If the RTP/AVPF profile [RFC4585] or the RTP/SAVPF [RFC5124] is used, + and the T_rr_interval parameter is used to reduce the frequency of + regular RTCP reports, then the value of Tdr in the above expression + for the CB_INTERVAL parameter MUST be replaced by max(T_rr_interval, + Tdr). + + The CB_INTERVAL parameter is calculated on joining the session, and + recalculated on receipt of each RTCP packet, after checking whether + the media timeout circuit breaker or the congestion circuit breaker + has been triggered. + + To ensure a timely response to persistent congestion, implementations + SHOULD NOT configure the RTCP bandwidth such that Tdr is larger than + 5 seconds. Similarly, implementations that use the RTP/AVPF profile + [RFC4585] or the RTP/SAVPF profile [RFC5124] SHOULD NOT configure + T_rr_interval to values larger than 4 seconds (the reduced limit for + T_rr_interval follows Section 6.1.3 of [RFC8108]). + + The rationale for enforcing a minimum sending rate below which the + congestion circuit breaker will not trigger is to avoid spurious + circuit breaker triggers when the number of packets sent per RTCP + reporting interval is small, and hence, the fraction lost samples are + subject to measurement artifacts. The bound of at least one packet + every max(Tdr, Tr) seconds is derived from the one packet per RTT + minimum sending rate of TCP [RFC8085], which is adapted for use with + RTP where the RTCP reporting interval is decoupled from the network + RTT. + + When the congestion circuit breaker is triggered, the sender SHOULD + cease transmission (see Section 4.5). However, if the sender is able + to reduce its sending rate by a factor of (approximately) ten, then + it MAY first reduce its sending rate by this factor (or some larger + amount) to see if that resolves the congestion. If the sending rate + is reduced in this way and the congestion circuit breaker triggers + again after the next CB_INTERVAL RTCP reporting intervals, the sender + MUST then cease transmission. An example of such a rate reduction + might be a video conferencing system that backs off to sending audio + only before completely dropping the call. If such a reduction in + sending rate resolves the congestion problem, the sender MAY + gradually increase the rate at which it sends data after a reasonable + amount of time has passed, provided it takes care not to cause the + problem to recur ("reasonable" is intentionally not defined here + since it depends on the application, media codec, and congestion + control algorithm). + + + +Perkins & Singh Standards Track [Page 15] + +RFC 8083 RTP Circuit Breakers March 2017 + + + The RTCP reporting interval of the media sender does not affect how + quickly the congestion circuit breaker can trigger. The timing is + based on the RTCP reporting interval of the receiver that generates + the SR/RR packets from which the loss rate and RTT estimate are + derived (note that RTCP requires all participants in a session to + have similar reporting intervals, else the participant timeout rules + in [RFC3550] will not work, so this interval is likely similar to + that of the sender). If the incoming RTCP SR or RR packets are using + a reduced minimum RTCP reporting interval (as specified in + Section 6.2 of RFC 3550 [RFC3550] or the RTP/AVPF profile [RFC4585]), + then that reduced RTCP reporting interval is used when determining if + the circuit breaker is triggered. + + If there are more media streams that can be reported in a single RTCP + SR or RR packet, or if the size of a complete RTCP SR or RR packet + exceeds the network MTU, then the receiver will report on a subset of + sources in each reporting interval with the subsets selected round- + robin across multiple intervals so that all sources are eventually + reported [RFC3550]. When generating such round-robin RTCP reports, + priority SHOULD be given to reports on sources that have high packet + loss rates to ensure that senders are aware of network congestion + they are causing (this is an update to [RFC3550]). + +4.4. RTP/AVP Circuit Breaker #4: Media Usability + + Applications that use RTP are generally tolerant to some amount of + packet loss. How much packet loss can be tolerated will depend on + the application, media codec, and the amount of error correction and + packet loss concealment that is applied. There is an upper bound on + the amount of loss that can be corrected, however, beyond which the + media becomes unusable. Similarly, many applications have some upper + bound on the media capture to play-out latency that can be tolerated + before the application becomes unusable. The latency bound will + depend on the application, but typical values can range from the + order of a few hundred milliseconds for voice telephony and + interactive conferencing applications up to several seconds for some + video-on-demand systems. + + As a final circuit breaker, RTP senders SHOULD monitor the reported + packet loss and delay to estimate whether the media is likely to be + suitable for the intended purpose. If the packet loss rate and/or + latency is such that the media has become unusable and has remained + unusable for a significant time period, then the application SHOULD + cease transmission. Similarly, receivers SHOULD monitor the quality + of the media they receive, and if the quality is unusable for a + significant time period, they SHOULD terminate the session. This + memo intentionally does not define a bound on the packet loss rate or + latency that will result in unusable media, as these are highly + + + +Perkins & Singh Standards Track [Page 16] + +RFC 8083 RTP Circuit Breakers March 2017 + + + application dependent. Similarly, the time period that is considered + significant is application dependent but is likely on the order of + seconds, or tens of seconds. + + Sending media that suffers from such high packet loss or latency that + it is unusable at the receiver is both wasteful of resources and is + of no benefit to the user of the application. It also is highly + likely to be congesting the network and disrupting other + applications. As such, the congestion circuit breaker will almost + certainly trigger to stop flows where the media would be unusable due + to high packet loss or latency. However, in pathological scenarios + where the congestion circuit breaker does not stop the flow, it is + desirable to prevent the application sending unnecessary traffic that + might disrupt other uses of the network. The role of the media + usability circuit breaker is to protect the network in such cases. + +4.5. Ceasing Transmission + + What it means to cease transmission depends on the application. This + could mean stopping a single RTP flow or it could mean that multiple + bundled RTP flows are stopped. The intention is that the application + will stop sending RTP data packets on a particular 5-tuple (transport + protocol, source and destination ports, source and destination IP + addresses) until whatever network problem that triggered the RTP + circuit breaker has dissipated. RTP flows halted by the circuit + breaker SHOULD NOT be restarted automatically unless the sender has + received information that the congestion has dissipated or can + reasonably be expected to have dissipated. What could trigger this + expectation is necessarily application dependent, but could be, for + example, an indication that a competing flow has finished and freed + up some capacity, or for an application running on a mobile device it + could indicate that the device moved to a new location so the flow + would traverse a different path if it were restarted. Ideally, a + human user will be involved in the decision to try to restart the + flow since that user will eventually give up if the flows repeatedly + trigger the circuit breaker. This will help avoid problems with + automatic redial systems from congesting the network. + + It is recognized that the RTP implementation in some systems might + not be able to determine if a flow setup request was initiated by a + human user or automatically by some scripted higher-level component + of the system. These implementations MUST rate limit attempts to + restart a flow on the same 5-tuple as used by a flow that triggered + the circuit breaker so that the reaction to a triggered circuit + breaker lasts for at least the triggering interval [RFC8084]. + + + + + + +Perkins & Singh Standards Track [Page 17] + +RFC 8083 RTP Circuit Breakers March 2017 + + + The RTP circuit breaker will only trigger, and cease transmission, + for media flows subject to long-term persistent congestion. Such + flows are likely to have poor quality and usability for some time + before the circuit breaker triggers. Implementations can monitor + RTCP Receiver Report blocks being returned for their media flows and + might find it beneficial to use this information to provide a user + interface cue that problems are occurring in advance of the circuit + breaker triggering. + +5. RTP Circuit Breakers and the RTP/AVPF and RTP/SAVPF Profiles + + Use of the Extended RTP Profile for RTCP-based Feedback (RTP/AVPF) + [RFC4585] allows receivers to send early RTCP reports, in some cases, + to inform the sender about particular events in the media stream. + There are several use cases for such early RTCP reports, including + providing rapid feedback to a sender about the onset of congestion. + The RTP/SAVPF Profile [RFC5124] is a secure variant of the RTP/AVPF + profile that is treated the same in the context of the RTP circuit + breaker. These feedback profiles are often used with non-compound + RTCP reports [RFC5506] to reduce the reporting overhead. + + Receiving rapid feedback about congestion events potentially allows + congestion control algorithms to be more responsive and to better + adapt the media transmission to the limitations of the network. It + is expected that many RTP congestion control algorithms will adopt + the RTP/AVPF profile or the RTP/SAVPF profile for this reason and + thus define new transport-layer feedback reports that suit their + requirements. Since these reports are not yet defined, and likely + very specific to the details of the congestion control algorithm + chosen, they cannot be used as part of the generic RTP circuit + breaker. + + Reduced-size RTCP reports sent under the RTP/AVPF early feedback + rules that do not contain an RTCP SR or RR packet MUST be ignored by + the congestion circuit breaker (they do not contain the information + needed by the congestion circuit breaker algorithm) but MUST be + counted as received packets for the RTCP timeout circuit breaker. + Reduced-size RTCP reports sent under the RTP/AVPF early feedback + rules that contain RTCP SR or RR packets MUST be processed by the + congestion circuit breaker as if they were sent as regular RTCP + reports and counted towards the circuit breaker conditions specified + in Section 4 of this memo. This will potentially make the RTP + circuit breaker trigger earlier than it would if the RTP/AVPF profile + was not used. + + When using ECN with RTP (see Section 7), early RTCP feedback packets + can contain ECN feedback reports. The count of ECN-CE-marked packets + contained in those ECN feedback reports is counted towards the number + + + +Perkins & Singh Standards Track [Page 18] + +RFC 8083 RTP Circuit Breakers March 2017 + + + of lost packets reported if the ECN Feedback Report is sent in a + compound RTCP packet along with an RTCP SR/RR report packet. Reports + of ECN-CE packets sent as reduced-size RTCP ECN feedback packets + without an RTCP SR/RR packet MUST be ignored. + + These rules are intended to allow the use of low-overhead RTP/AVPF + feedback for generic NACK messages without triggering the RTP circuit + breaker. This is expected to make such feedback suitable for RTP + congestion control algorithms that need to quickly report loss events + in between regular RTCP reports. The reaction to reduced-size RTCP + SR/RR packets is to allow such algorithms to send feedback that can + trigger the circuit breaker when desired. + + The RTP/AVPF and RTP/SAVPF profiles include the T_rr_interval + parameter that can be used to adjust the regular RTCP reporting + interval. The use of the T_rr_interval parameter changes the + behavior of the RTP circuit breaker, as described in Section 4. + +6. Impact of RTCP Extended Reports (XR) + + RTCP Extended Report (XR) blocks provide additional reception quality + metrics, but do not change the RTCP timing rules. Some of the RTCP + XR blocks provide information that might be useful for congestion + control purposes, others provide non-congestion-related metrics. + With the exception of RTCP XR ECN Summary Reports (see Section 7), + the presence of RTCP XR blocks in a compound RTCP packet does not + affect the RTP circuit breaker algorithm. For consistency and ease + of implementation, only the receiver report blocks contained in RTCP + SR packets, RTCP RR packets, or RTCP XR ECN Summary Report packets + are used by the RTP circuit breaker algorithm. + +7. Impact of Explicit Congestion Notification (ECN) + + The use of ECN for RTP flows does not affect the RTCP timeout circuit + breaker (Section 4.1) or the media timeout circuit breaker + (Section 4.2) since these are both connectivity checks that simply + determinate if any packets are being received. + + At the time of this writing, there's no consensus on how the receipt + of ECN feedback will impact the congestion circuit breaker + (Section 4.3) or indeed whether the congestion circuit breaker ought + to take ECN feedback into account. A future replacement of this memo + is expected to provide guidance for implementers. + + For the media usability circuit breaker (Section 4.4), ECN-CE-marked + packets arrive at the receiver, and if they arrive in time, they will + be decoded and rendered as normal. Accordingly, receipt of such + packets ought not affect the usability of the media, and the arrival + + + +Perkins & Singh Standards Track [Page 19] + +RFC 8083 RTP Circuit Breakers March 2017 + + + of RTCP feedback indicating their receipt is not expected to impact + the operation of the media usability circuit breaker. + +8. Impact of Bundled Media and Layered Coding + + The RTP circuit breaker operates on a per-RTP session basis. An RTP + sender that participates in several RTP sessions MUST treat each RTP + session independently with regards to the RTP circuit breaker. + + An RTP sender can generate several media streams within a single RTP + session, with each stream using a different SSRC. This can happen if + bundled media are in use when using simulcast or when using layered + media coding. By default, each SSRC will be treated independently by + the RTP circuit breaker. However, the sender MAY choose to treat the + flows (or a subset thereof) as a group such that a circuit breaker + trigger for one flow applies to the group of flows as a whole and + either causes the entire group to cease transmission or causes the + sending rate of the group to reduce by a factor of ten, depending on + the RTP circuit breaker triggered. Grouping flows in this way is + expected to be especially useful for layered flows sent using + multiple SSRCs as it allows the layered flow to react as a whole, + thus ceasing transmission on the enhancement layers first to reduce + sending rate, if necessary, rather than treating each layer + independently. Care needs to be taken if the different media streams + sent on a single transport-layer flow use different Differentiated + Services Code Point (DSCP) values [RFC7657] [WebRTC-QoS] since + congestion could be experienced differently depending on the DSCP + marking. Accordingly, RTP media streams with different DSCP values + SHOULD NOT be considered as a group when evaluating the RTP circuit + breaker conditions. + +9. Security Considerations + + The security considerations of [RFC3550] apply. + + If the RTP/AVPF profile is used to provide rapid RTCP feedback, the + security considerations of [RFC4585] apply. If ECN feedback for RTP + over UDP/IP is used, the security considerations of [RFC6679] apply. + + If non-authenticated RTCP reports are used, an on-path attacker can + trivially generate fake RTCP packets that indicate high packet loss + rates and thus cause the circuit breaker to trigger and disrupt an + RTP session. This is somewhat more difficult for an off-path + attacker due to the need to guess the randomly chosen RTP SSRC value + and the RTP sequence number. This attack can be avoided if RTCP + packets are authenticated; authentication options are discussed in + [RFC7201]. + + + + +Perkins & Singh Standards Track [Page 20] + +RFC 8083 RTP Circuit Breakers March 2017 + + + Timely operation of the RTP circuit breaker depends on the choice of + RTCP reporting interval. If the receiver has a reporting interval + that is overly long, then the responsiveness of the circuit breaker + decreases. In the limit, the RTP circuit breaker can be disabled for + all practical purposes by configuring an RTCP reporting interval that + has a duration of many minutes. This issue is not specific to the + circuit breaker: long RTCP reporting intervals also prevent reception + quality reports, feedback messages, codec control messages, etc., + from being used. Implementations are expected to impose an upper + limit on the RTCP reporting interval they are willing to negotiate + (based on the session bandwidth and RTCP bandwidth fraction) when + using the RTP circuit breaker, as discussed in Section 4.3. + +10. References + +10.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <http://www.rfc-editor.org/info/rfc2119>. + + [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. + Jacobson, "RTP: A Transport Protocol for Real-Time + Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550, + July 2003, <http://www.rfc-editor.org/info/rfc3550>. + + [RFC3551] Schulzrinne, H. and S. Casner, "RTP Profile for Audio and + Video Conferences with Minimal Control", STD 65, RFC 3551, + DOI 10.17487/RFC3551, July 2003, + <http://www.rfc-editor.org/info/rfc3551>. + + [RFC3611] Friedman, T., Ed., Caceres, R., Ed., and A. Clark, Ed., + "RTP Control Protocol Extended Reports (RTCP XR)", + RFC 3611, DOI 10.17487/RFC3611, November 2003, + <http://www.rfc-editor.org/info/rfc3611>. + + [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, + DOI 10.17487/RFC4585, July 2006, + <http://www.rfc-editor.org/info/rfc4585>. + + [RFC5348] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP + Friendly Rate Control (TFRC): Protocol Specification", + RFC 5348, DOI 10.17487/RFC5348, September 2008, + <http://www.rfc-editor.org/info/rfc5348>. + + + + +Perkins & Singh Standards Track [Page 21] + +RFC 8083 RTP Circuit Breakers March 2017 + + + [RFC6679] Westerlund, M., Johansson, I., Perkins, C., O'Hanlon, P., + and K. Carlberg, "Explicit Congestion Notification (ECN) + for RTP over UDP", RFC 6679, DOI 10.17487/RFC6679, August + 2012, <http://www.rfc-editor.org/info/rfc6679>. + +10.2. Informative References + + [Floyd] Floyd, S., Handley, M., Padhye, J., and J. Widmer, + "Equation-Based Congestion Control for Unicast + Applications", ACM SIGCOMM Computer Communication + Review, Volume 30, Issue 4, pages 43-56, + DOI 10.1145/347059.347397, August 2000. + + [Mathis] Mathis, M., Semke, J., Mahdavi, J., and T. Ott, "The + Macroscopic Behavior of the TCP Congestion Avoidance + Algorithm", ACM SIGCOMM Computer Communication + Review, Volume 27, Issue 3, pages 67-82, + DOI 10.1145/263932.264023, July 1997. + + [Padhye] Padhye, J., Firoiu, V., Towsley, D., and J. Kurose, + "Modeling TCP Throughput: A Simple Model and its Empirical + Validation", ACM SIGCOMM Computer Communication + Review Volume 30, Issue 4, pages 303-314, + DOI 10.1145/285237.285291, August 1998. + + [RFC2862] Civanlar, M. and G. Cash, "RTP Payload Format for Real- + Time Pointers", RFC 2862, DOI 10.17487/RFC2862, June 2000, + <http://www.rfc-editor.org/info/rfc2862>. + + [RFC3168] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition + of Explicit Congestion Notification (ECN) to IP", + RFC 3168, DOI 10.17487/RFC3168, September 2001, + <http://www.rfc-editor.org/info/rfc3168>. + + [RFC4103] Hellstrom, G. and P. Jones, "RTP Payload for Text + Conversation", RFC 4103, DOI 10.17487/RFC4103, June 2005, + <http://www.rfc-editor.org/info/rfc4103>. + + [RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman, + "Codec Control Messages in the RTP Audio-Visual Profile + with Feedback (AVPF)", RFC 5104, DOI 10.17487/RFC5104, + February 2008, <http://www.rfc-editor.org/info/rfc5104>. + + [RFC5124] Ott, J. and E. Carrara, "Extended Secure RTP Profile for + Real-time Transport Control Protocol (RTCP)-Based Feedback + (RTP/SAVPF)", RFC 5124, DOI 10.17487/RFC5124, February + 2008, <http://www.rfc-editor.org/info/rfc5124>. + + + + +Perkins & Singh Standards Track [Page 22] + +RFC 8083 RTP Circuit Breakers March 2017 + + + [RFC5450] Singer, D. and H. Desineni, "Transmission Time Offsets in + RTP Streams", RFC 5450, DOI 10.17487/RFC5450, March 2009, + <http://www.rfc-editor.org/info/rfc5450>. + + [RFC5506] Johansson, I. and M. Westerlund, "Support for Reduced-Size + Real-Time Transport Control Protocol (RTCP): Opportunities + and Consequences", RFC 5506, DOI 10.17487/RFC5506, April + 2009, <http://www.rfc-editor.org/info/rfc5506>. + + [RFC5681] Allman, M., Paxson, V., and E. Blanton, "TCP Congestion + Control", RFC 5681, DOI 10.17487/RFC5681, September 2009, + <http://www.rfc-editor.org/info/rfc5681>. + + [RFC6798] Clark, A. and Q. Wu, "RTP Control Protocol (RTCP) Extended + Report (XR) Block for Packet Delay Variation Metric + Reporting", RFC 6798, DOI 10.17487/RFC6798, November 2012, + <http://www.rfc-editor.org/info/rfc6798>. + + [RFC6843] Clark, A., Gross, K., and Q. Wu, "RTP Control Protocol + (RTCP) Extended Report (XR) Block for Delay Metric + Reporting", RFC 6843, DOI 10.17487/RFC6843, January 2013, + <http://www.rfc-editor.org/info/rfc6843>. + + [RFC6958] Clark, A., Zhang, S., Zhao, J., and Q. Wu, Ed., "RTP + Control Protocol (RTCP) Extended Report (XR) Block for + Burst/Gap Loss Metric Reporting", RFC 6958, + DOI 10.17487/RFC6958, May 2013, + <http://www.rfc-editor.org/info/rfc6958>. + + [RFC7002] Clark, A., Zorn, G., and Q. Wu, "RTP Control Protocol + (RTCP) Extended Report (XR) Block for Discard Count Metric + Reporting", RFC 7002, DOI 10.17487/RFC7002, September + 2013, <http://www.rfc-editor.org/info/rfc7002>. + + [RFC7003] Clark, A., Huang, R., and Q. Wu, Ed., "RTP Control + Protocol (RTCP) Extended Report (XR) Block for Burst/Gap + Discard Metric Reporting", RFC 7003, DOI 10.17487/RFC7003, + September 2013, <http://www.rfc-editor.org/info/rfc7003>. + + [RFC7097] Ott, J., Singh, V., Ed., and I. Curcio, "RTP Control + Protocol (RTCP) Extended Report (XR) for RLE of Discarded + Packets", RFC 7097, DOI 10.17487/RFC7097, January 2014, + <http://www.rfc-editor.org/info/rfc7097>. + + [RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP + Sessions", RFC 7201, DOI 10.17487/RFC7201, April 2014, + <http://www.rfc-editor.org/info/rfc7201>. + + + + +Perkins & Singh Standards Track [Page 23] + +RFC 8083 RTP Circuit Breakers March 2017 + + + [RFC7657] Black, D., Ed. and P. Jones, "Differentiated Services + (Diffserv) and Real-Time Communication", RFC 7657, + DOI 10.17487/RFC7657, November 2015, + <http://www.rfc-editor.org/info/rfc7657>. + + [RFC7713] Mathis, M. and B. Briscoe, "Congestion Exposure (ConEx) + Concepts, Abstract Mechanism, and Requirements", RFC 7713, + DOI 10.17487/RFC7713, December 2015, + <http://www.rfc-editor.org/info/rfc7713>. + + [RFC8084] Fairhurst, G., "Network Transport Circuit Breakers", + BCP 208, RFC 8084, DOI 10.17487/RFC8084, March 2017, + <http://www.rfc-editor.org/info/rfc8084>. + + [RFC8085] Eggert, L., Fairhurst, G., and G. Shepherd, "UDP Usage + Guidelines", BCP 145, RFC 8085, DOI 10.17487/RFC8085, + March 2017, <http://www.rfc-editor.org/info/rfc8085>. + + [RFC8108] Lennox, J., Westerlund, M., Wu, Q., and C. Perkins, + "Sending Multiple RTP Streams in a Single RTP Session", + RFC 8108, DOI 10.17487/RFC8108, March 2017, + <http://www.rfc-editor.org/info/rfc8108>. + + [Sarker] Sarker, Z., Singh, V., and C. Perkins, "An Evaluation of + RTP Circuit Breaker Performance on LTE Networks", + Proceedings of the IEEE INFOCOM Workshop on Communication + and Networking Techniques for Contemporary Video, + DOI 10.1109/INFCOMW.2014.6849240, April 2014. + + [Singh] Singh, V., McQuistin, S., Ellis, M., and C. Perkins, + "Circuit Breakers for Multimedia Congestion Control", + Proceedings of the 2013 20th International Packet Video + Workshop (PV), DOI 10.1109/PV.2013.6691439, December 2013. + + [WebRTC-QoS] + Jones, P., Dhesikan, S., Jennings, C., and D. Druta, "DSCP + Packet Markings for WebRTC QoS", Work in Progress, + draft-ietf-tsvwg-rtcweb-qos-18, August 2016. + + + + + + + + + + + + + +Perkins & Singh Standards Track [Page 24] + +RFC 8083 RTP Circuit Breakers March 2017 + + +Acknowledgements + + The authors would like to thank Bernard Aboba, Harald Alvestrand, Ben + Campbell, Alissa Cooper, Spencer Dawkins, Gorry Fairhurst, Stephen + Farrell, Nazila Fough, Kevin Gross, Cullen Jennings, Randell Jesup, + Mirja Kuehlewind, Jonathan Lennox, Matt Mathis, Stephen McQuistin, + Simon Perreault, Eric Rescorla, Abheek Saha, Meral Shirazipour, Fabio + Verdicchio, and Magnus Westerlund for their valuable feedback. + +Authors' Addresses + + Colin Perkins + University of Glasgow + School of Computing Science + Glasgow G12 8QQ + United Kingdom + + Email: csp@csperkins.org + + + Varun Singh + CALLSTATS I/O Oy + Runeberginkatu 4c A 4 + Helsinki 00100 + Finland + + Email: varun@callstats.io + URI: https://www.callstats.io/about + + + + + + + + + + + + + + + + + + + + + + + +Perkins & Singh Standards Track [Page 25] + |