Network Working Group H. Tschofenig
Internet-Draft L. Eggert
Intended status: Informational Z. Sarker
Expires: August 3, 2013 January 30, 2013
Report from the IAB/IRTF Workshop on Congestion Control for Interactive
Real-Time Communication
draft-iab-cc-workshop-report-00.txt
Abstract
This document provides a summary of the IAB/IRTF Workshop on
'Congestion Control for Interactive Real-Time Communication', which
took place in Vancouver, Canada, on July 28, 2012. The main goal of
the workshop was to foster a discussion on congestion control
mechanisms for interactive real-time communication. This report
summarizes the discussions and lists recommendations to the Internet
Engineering Task Force (IETF) community.
The views and positions in this report are those of the workshop
participants and do not necessarily reflect the views and positions
of the authors, the Internet Architecture Board (IAB) or the Internet
Research Task Force (IRTF).
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on August 3, 2013.
Copyright Notice
Copyright (c) 2013 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
Tschofenig, et al. Expires August 3, 2013 [Page 1]
Internet-Draft Congestion Control Workshop Report January 2013
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. Workshop Structure . . . . . . . . . . . . . . . . . . . . . . 5
2.1. History and Challenges . . . . . . . . . . . . . . . . . . 5
2.2. Simulations and Measurements . . . . . . . . . . . . . . . 8
2.3. Challenges and Design Properties . . . . . . . . . . . . . 9
3. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 14
3.1. Changes to Network Infrastructure . . . . . . . . . . . . 14
3.2. Avoiding Self-Inflicted Queuing . . . . . . . . . . . . . 15
4. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
6. Security Considerations . . . . . . . . . . . . . . . . . . . 20
7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
7.1. Normative References . . . . . . . . . . . . . . . . . . . 21
7.2. Informative References . . . . . . . . . . . . . . . . . . 21
Appendix A. Program Committee . . . . . . . . . . . . . . . . . . 25
Appendix B. Workshop Material . . . . . . . . . . . . . . . . . . 26
Appendix C. Accepted Position Papers . . . . . . . . . . . . . . 27
Appendix D. Workshop Participants . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 33
Tschofenig, et al. Expires August 3, 2013 [Page 2]
Internet-Draft Congestion Control Workshop Report January 2013
1. Introduction
Any application that sends significant amounts of data over the
Internet is expected to implement reasonable congestion control
behavior. The goals for congestion control are well understood and
documented in RFC 2914 [1] and RFC 5405 [2]:
1. Preventing congestion collapse.
2. Allowing multiple flows to share the network fairly.
The Internet has been used for interactive real-time communication
for decades, most of which is being transmitted using RTP over UDP,
often over provisioned capacity and/or using only rudimentary
congestion control mechanisms.
The development and upcoming widespread deployment of web-based real-
time media communication - where RTP is used to and from web browsers
to transmit audio, video and data - will likely result in substantial
new Internet traffic. Due to the projected volume of this traffic,
as well as the fact that it is more likely to use unprovisioned
capacity, it is essential that it is transmitted with robust and
effective congestion control mechanisms.
Designing congestion control mechanisms that perform well under a
wide variety of traffic mixes and over network paths with widely
varying characteristics is not easy. Prevention of congestion
collapse can be achieved through a "circuit breaker" mechanism (see,
for example, [3]), but for media flows that are supposed to coexist
with a user's other ongoing communication sessions, a congestion
control mechanism that shares capacity fairly in the presence of a
mix of TCP, UDP and other protocol flows is needed.
Many additional complications arise. Here are some examples:
1. Real-time interactive media sessions require low latencies,
whereas streaming media can use large play-out buffers.
2. In an Real-time Transport Protocol (RTP) session feedback
exchanged via the RTP Control Protocol (RTCP) typically arrives
much less frequently than, for example, TCP ACKs for a given TCP
connection. Theoretically, the RTP/RTCP control loop can lead to
a longer reaction time.
3. Media codecs can usually only adjust their output rates in a much
more coarse-grained fashion than, for example, TCP, and user
experience suffers if encoding rates are switched too frequently.
Codecs typically have a minimum sending rate as well.
Tschofenig, et al. Expires August 3, 2013 [Page 3]
Internet-Draft Congestion Control Workshop Report January 2013
4. Some bits of an encoded media stream are more important than
others. For example, losing or dropping an I-frame of a video
stream is more problematic than dropping a P-frame [4].
5. Ramping up the transmission rate can be problematic. Simply
increasing the output rate of the codec without knowing whether
the network path can sustain transmission at the increased rate
runs the danger of incurring a significant amount of packet loss
that can cause playback artifacts.
6. A congestion control scheme for interactive media needs to handle
bundles of interrelated flows (audio, video, data), in a way that
accommodates the preferences of the application in the event of
congestion.
7. The desire to provide a congestion control mechanism that can be
efficiently implemented inside an application (e.g., a web server
and a browser) imposes additional restrictions.
8. There are explicit congestion signals (such as Explicit
Congestion Notification (ECN) [5]), and there are implicit
indications of congestion (e.g., packet delay and loss). Care
must be taken to account for each of these signals, particularly
if various applications react on the same set of signals.
9. Large buffers are often used in network elements and end device
operating systems to better support TCP-based applications.
These buffers introduce additional communication delay, which
harms the small delay budget available for interactive real-time
applications.
The Internet Architecture Board (IAB) raised concerns regarding
possibilities of a congestion collapse due to a rapid growth in real-
time voice traffic that does not practice end-to-end congestion
control in early 2004 [6]. This congestion collapse did not happen
but the raised concerns are still valid and have gained more
relevance when applied to more bandwidth-hungry video applications.
Congestion collapse is, however, not the only concern as discussed in
this workshop report.
Tschofenig, et al. Expires August 3, 2013 [Page 4]
Internet-Draft Congestion Control Workshop Report January 2013
2. Workshop Structure
The IETF has a long history in the work on congestion control
mechanisms but with the ongoing standardization work on real-time
interactive media communication on the Web new challenges emerged and
existing work got revisited. To take a deeper look at the topic the
participants contributed 32 papers as input to the one-day workshop.
The workshop started with a keynote speech of Mark Handley describing
the history of the work on congestion control for real-time media
followed with his views of the problems. A summary of the
discussions and the identified issues are captured in the subsections
below.
2.1. History and Challenges
The primary goal of congestion control is to avoid congestion
collapse - to make the network work. The second important goal is to
guarantee some sort of fairness so that all users get some service.
Section 3 of RFC 2914 [1] discusses these two goals in detail and
references earlier work, such as [7]. [7] informs about historic
incidents, such as congestion collapse due to unnecessarily-
retransmitted, undelivered, and fragmented packets.
Mark Handley argues that since 1988, the Internet has remained
functional despite exponential growth, routers that are sometimes
buggy or misconfigured, rapidly changing applications and usage
patterns, and flash crowds. This is largely because most
applications use TCP, and TCP implements end-to-end congestion
control.
TCP's congestion control adapts the window to fit the capacity
available in the network and accomplishes approximate fairness
between two competing flows over a period of time. Mark indicates
that the provided level of fairness is not necessarily what we want:
The 1/round-trip-time relationship in TCP is not wonderful since it
means that network operators can decide to lower packet loss by
adding bigger buffers (which unfortunately leads to bufferbloat
problems). The 1/sqrt(packet drop rate) relationship is also not
necessarily desirable since TCP did not work particularly well for
high-speed flows (which had been subject for a lot of TCP research).
TCP controls the congestion window in bytes. For bulk transfer,
usually this results in controlling the number of 1500 byte packets
per second sent. Real-time media is, however, different since it has
its own time constraints. For audio we want to send one packet per
20ms and for video the ideal value would be 25 to 30 frames per
second. We therefore want to avoid additional sending delay.
Tschofenig, et al. Expires August 3, 2013 [Page 5]
Internet-Draft Congestion Control Workshop Report January 2013
As an example, in case of video, to relieve congestion one has to
reduce the number of packets-per-second transmission rate rather than
transmitting smaller packets since at higher bitrates on WiFi the
time it takes to send a packet is almost negligible compared to the
time that is spent with MAC layer operations. Reducing the packet
size makes little difference to the available capacity. For a serial
line it does not matter how big the packets are.
From a network point of view the goals of congestion control
therefore are:
1. Avoid congestion collapse
2. Avoid starvation of TCP flows
3. Avoid starvation of real-time flows. Specifically, in the case
where TCP and real-time flows share the same FIFO queue.
From an application point of view the goals of congestion control are
different, namely:
1. Robust behavior. One wants to have a good throughput when the
network is working well and it still works when the network is
working poorly.
2. Predictable behavior. This matters from a usability point of
view since variable media quality is bad for users.
3. Low latency. With large buffers along the end-to-end path the
latency will increase when interactive real-time flows compete
with TCP flows since TCP will fill up the buffers and the
increased buffering leads to additional delays for the delivery
of the interactive real-time media.
Attempts for providing congestion control for interactive real-time
media were already done much earlier in the IETF, for example, with
the work on TCP-Friendly Rate Control (TFRC) [8]. It illustrates the
challenges quite well. TFRC tries to accomplish the same throughput
as TCP, but with smoother transmission rate. It measures the loss
and the round-trip time but follows a similar model as TCP to
determine the sending rate.
In a link with low statistical multiplexing TCP can lead to bad
oscillations. The sending rate hits the maximum rate of a bottleneck
link, a lot of loss occurs, and then the sending rate peaks again.
For very small buffers the result is acceptable but bigger buffers
lead to oscillations. The result is bad for networks and for
applications. To deal with large buffers on these links a short-term
Tschofenig, et al. Expires August 3, 2013 [Page 6]
Internet-Draft Congestion Control Workshop Report January 2013
rate adaptation based on round-trip time (RTT) information is
utilized in TRFC but this requires good short-term RTT measurements.
TRFC works pretty well in theory. TFRC assumes the network is in
charge of the codec and that the codec can produce data at the
demanded rate. Modern video codecs inherently produce variable-
bitrate video streams based on the content being encoded, and it is
hard to produce data at exactly the desired bitrate without excessive
buffering or ugly quality changes.
What if we put the codec in charge instead of the network? The
network tells the codec the mean rate but it does not worry about
what happens in short time scales and the codec matches the mean rate
and does not worry whether it is over or under the rate for a
relatively short time scale. This again leads to the low statistical
multiplexing problem and leads to oscillations.
Known congestion control mechanisms work well if they can respond
quickly enough to changes if they do not bump into the low
statistical multiplexing problem.
To avoid the low statistical multiplexing problem techniques for
inferring linkspeed are needed and the work from Van Jacobson's
pathchar [9] (and successors) serve as valuable input. The idea is
to send short packet trains, to measure timing accurately, and to
infer the linkspeed from the relative delay. If we know the
linkspeed, we can avoid exceeding it. Congestion control can give us
an approximate rate, but we must not exceed linkspeed. This is a
hybrid between codec being in charge (most of the time), and network
being in charge. These work well for some links, but not for others.
Wireless links where speed can change in less than a single RTT
because of fading, bitrate adaption, etc. cause problems. We would
like to have the codec and the network to be in charge. However,
they cannot be both in charge at the same time.
Mark indicated that he is not entirely sure whether RTCP is suitable
for congestion control. "RTCP gives feedback, but it cannot send it
often enough to avoid bumping into linkspeed." he says. Circuit
breakers [3] on the other hand do not help to give good performance
on an uncongested path. With circuit breakers the sender measures
the loss rate and RTT, and runs with a loose "cap".
As a conclusion, Mark Handley claims that we know how to do good
congestion control, but only if congestion control is in charge, and
that's not acceptable for real-time applications. We only know how
to do good congestion control if we change packet/sec rate and not
packet size.
Tschofenig, et al. Expires August 3, 2013 [Page 7]
Internet-Draft Congestion Control Workshop Report January 2013
2.2. Simulations and Measurements
This second part of the workshop was focused on the presentation and
the discussion of data gathered from simulations and real-world
measurements.
Keith Winstein started the discussion with his presentation of
measurements performed in cellular operator networks in the US [10].
The measurements indicate that the analyzed cellular networks showed
varying RTT with transient latency spikes to hundreds of ms, link
speed that varies by a factor of 10 in a short time scale, and
buffers that do not drop packets until they contain 5 - 10 seconds of
data at bottleneck link speed.
Zaheduzzaman Sarker [11] presented results from real-time video
communication in an LTE simulator utilizing ECN-based packet marking
and adaptation using implicit methods like packet loss and delay.
ECN marking provides ways for the network to explicitly signal
congestion hence distributes the cost of congestion well and helps
achieving lower latency. However, although RFC 3168 [5] was
finalized in 2001 the deployment of ECN is still lacking as
investigated by Bauer, et al. [12]. A few participants noted that
they believe that the deployment of LTE networks will also increase
the deployment of ECN.
Mo Zahaty [13] discussed TFRC [8] and TFRC with weighted fairness
(MulTFRC) [14], which tunes TFRC to consider multiple flows, and
showed the impact of RTT and loss rates on the type of video quality
that can be achieved under those conditions. TFRC requires frequent
feedback, which RTCP does not provide even when considering the
extended RTP profile for RTCP-based feedback (RFC 4585 [15]). Mo
argued that application-specified weighted fairness is important but
while MulTFRC provides better performance than TFRC it is not clear
whether the added complexity over an n-times-TFRC approach is indeed
worth the effort.
Markku Kojo shared analysis results of how real-time audio is
affected by competing TCP flows. In the experiments shown in Figure
2 of [16] a real-time interactive audio stream had to compete against
one TCP flow, and, as a comparison, against six TCP flows. With one
concurrent TCP flow voice is impacted on startup and six TCP flows
destroy quality of call. Two types of losses were analyzed, namely
losses that result from a packet being dropped in the network (e.g.,
due to congestion or link errors) and losses that result from the
delayed arrival of the packet (due to buffering) when the audio
packet misses the deadline for the codec to decode and play the
transmitted content. Consequently, even a moderate number of TCP
flows typically used by browsers to retrieve content on Web pages in
Tschofenig, et al. Expires August 3, 2013 [Page 8]
Internet-Draft Congestion Control Workshop Report January 2013
parallel causes irreparable harm for audio transfers. The size of
the initial window also impacts interactive real-time communication
since a larger TCP initial window size (e.g., IW(10) with ten
segments, as proposed in [17], instead of three) leads to a bigger
burst of packets because of the initial window transmission. Note
that the study in [18] does not necessarily lead to the same
conclusion. It claims that that the increased initial window size
leads to no impact or only modest impact for buffering in the
majority of cases.
Cullen Jennings [19] presented measurement results showing
interactions between RTP and TCP flows for several widely deployed
video communication products, i.e., Apple Facetime, Google Hangout,
Cisco Movi, and Microsoft Skype. While all tested products
implemented some form of congestion control none of the applications
did additive increase and multiplicative decrease (AIMD). In
general, it was observable that video adapts more slowly than AIMD to
changes in available bandwidth, because most codecs cannot make small
increases in sending rates when available bandwidth increases, and do
not make large decreases in sending rates when available bandwidth
decreases, in order to improve the user's experience.
Stefan Holmer [20] investigated the difference between loss-based and
delay-based congestion control algorithms. The suitability of loss-
based congestion control schemes for interactive real-time
communication systems heavily depends on buffer sizes and the
deployment of active queue management mechanisms. If most routers
are using tail-drop queuing, then loss-based congestion control
cannot fulfill the requirements of interactive real-time applications
since those flows will effectively increase the bitrate until a loss
event is identified, which only happens when the bottleneck queue is
full.
2.3. Challenges and Design Properties
During the remaining part of the workshop the participants discussed
challenges and identified design properties. The discussions in this
session started with a presentation by Jim Gettys about problems
related to bufferbloat [21][22]. Bufferbloat is "a phenomenon in a
packet-switched computer network whereby excess buffering of packets
inside the network causes high latency and jitter, as well as
reducing the overall network throughput." [23]. A certain amount of
buffering is helpful to improve the efficiency. Not dropping packets
in the event of congestion leads to increasing delays for interactive
real-time communication.
Packets may get buffered at various places along the end-to-end path
including in the operating system/device drivers, customer premise
Tschofenig, et al. Expires August 3, 2013 [Page 9]
Internet-Draft Congestion Control Workshop Report January 2013
equipment (such as cable modem and DSL routers), base stations, and
routers. While the understanding of too large buffers has improved
over the last few years the participants were still concerned that
many equipment manufactures and network operators do not yet
acknowledge the existence of the problem. This lack of understanding
is caused by the strong focus on throughput network performance
measurements that do not take latency into account. For example,
only recently the Federal Communications Commission (FCC) has added
latency tests to their test suites [REF missing].
Active queue management (AQM) aims to prevent queues from growing too
large. This is accomplished by the monitoring queue length and by
informing the sender by dropping or marking packets to lower their
transmission rate. Random Early Detection (RED) [24] is one such AQM
algorithm but it has not been widely deployed in routers largely
because of challenges to configure it correctly [25]. According to
[26], RED does not work with the default settings as it is "too
gentle to handle fast changes due to TCP slow start when the
aggregate traffic is limited". There may also be a lack of
incentives to deploy AQM algorithms. Participants speculated about
the time it takes to update network equipment (to support AQM
algorithms) considering the different replacement cycles of these
devices. Measurement tools that allow an end user to determine the
performance of their network, including latency, is seen as a
promising approach to motivate network operators to upgrade their
equipment and to make use of AQM algorithms. Measurement tools would
allow users to determine how bad your network performs and to
complain to your ISP and thereby creating a market force. As to what
the right performance measurement metrics are it was noted that the
intent of the IETF IP Performance Metrics (IPPM) working group [27]
was to develop such metrics to qualify networks it may have started
too early. There are, however, recent attempts to re-visit the
measurement work and an effort by the FCC has gotten a lot of
attention recently, see [28].
Matt Mathis argued that the traffic of throughput-maximizing and
delay-minimizing applications need to be in separate queues, i.e.
that segregated queuing is applied. Requiring segregated queues
assumes you are sharing the network with other greedy traffic.
Others agreed with him. Quality of Service signaling is a way to
deploy segregated queuing but there are several simpler alternatives,
such as Stochastic Fair Queuing [29]. The Controlled Delay (CoDel)
AQM algorithm [30] can also be used in combination with stochastic
fair queuing. Note that queue segregation is not necessary for every
router to segregate and using it at the edge of a network where
bottleneck links are is already sufficient.
It was noted that current interactive voice usage over the Internet
Tschofenig, et al. Expires August 3, 2013 [Page 10]
Internet-Draft Congestion Control Workshop Report January 2013
works most of the time satisfactory. In typical networks, the reason
voice works is because networks are underloaded. As long as there is
idle capacity and the queue is empty when your packets arrive,
traffic does not be separated into distinct queues. Further
explanations were offered why many networks work surprisingly well:
LEDBAT [31] is used for the download of software updates, voice
traffic contributes only a small percentage of the overall Internet
traffic, and "human protocols" (e.g., parents asking their kids to
get off the network during the time of a conference call).
Cullen Jennings raised a concern that not providing a solid
congestion control mechanism for interactive video, as it was done
with interactive voice, could have substantial impact due to the
potential uptake in deployment triggered by the work on RTCWeb. He
phrased it as "I'm worried about the approach that says 'Let us do
the minimal' and that is what we did with voice -- nothing. If we do
the same with video, we're going to be in trouble. In the class of
space where voice is currently working, that's where I'm worried
about video failing." Ted Hardie countered by saying that RTCWeb is
trying to replace existing proprietary technologies. It may ramp up
the amount of use we are expecting, but it is not doing much that was
not being done by Adobe Flash or Skype. RTCWeb is not a totally
novel context of Internet usage. Magnus Westerlund concluded that
RTCWeb might be driver for the moment, but we are not only talking
about Web browsers.
Furthermore, Ted noted that applications will not produce media
streams that grow to 10Mbps because their sending rate is auto-rate-
limited by the production of the video. He suggested to ask
ourselves if we are trying to get TCP to be friendly to media
streams, which are already rate-limited or are we asking media
streams that are already rate-limited to be TCP friendly? He then
quoted Andrew McGregor: "It's really not good to be TCP-friendly
because it's not going to return the favor." If the desired
properties we want are no starvation, fairness, and effective goodput
for the offered loads, is the only thing we're willing to consider
changes in RTP control or are we willing to consider changes in TCP
congestion control?
This led to a discussion whether the development of a congestion
control algorithm for interactive real-time applications provides any
value if network equipment suffers from bufferbloat. Is there
something that can be done today to help interactive real-time media
or do we have to wait to get the network updated first? Replacing
home routers and updating routers with modern AQM algorithms was seen
as a longer-term effort. Also, the time scale for changing TCP's
congestion control is on the time scale as deploying ECN [5]. Colin
Perkins noted that while we cannot change TCP quickly, but the way
Tschofenig, et al. Expires August 3, 2013 [Page 11]
Internet-Draft Congestion Control Workshop Report January 2013
TCP is being used is changing quickly and we can impact the way TCP
is used. When TCP is used for file transfer it will send data as
fast as it can but when TCP is used for WebSockets, the dynamics are
different. WebSockets and SPDY are clearly changing the behavior of
TCP. Also, Netflix-style video streaming applications are huge users
of TCP and those applications can change rather quickly. Matt Mathis
added that real-time videoconferencing almost always produces video
streams at a lower bitrate than downloading equivalent-sized stored
video using best-effort file-sharing will produce.
Bill Ver Steeg suggested to consider three different deployment
environments, namely
1. Flows competing with flows from the host ("self-inflicted queuing
delay")
2. Flows competing with flows in the same sub-network (e.g. home
network)
3. Flows competing with flows from other networks (e.g., traffic
from different households that utilize the same DSL provider)
The narrowest problem domain that makes sense is to avoid self-
inflicted queuing delay. Michael Welzl indicated that this requires
an information exchange (called flow-state exchange) inside a browser
(at the level of the same host or even beyond, as described in [32])
to synchronize congestion control of different audio, video, and data
flows. Although it would provide great benefits if one could share
information about a bottleneck with all the flows sharing that
bottleneck but this is considered challenging even within a single
host. John Leslie [33] also noted: "We're acting as if we believe
congestion will magically be solved by a new transport algorithm. It
won't." Instead, an interaction between the network layer, transport
layer, and the application layer is needed whereby the application
layer is the only practical place to balance what piece(s) to
constrain to lower bandwidths. All flows relating to a user session
should have a common congestion controller. For many applications,
audio is much more critical than video. In those cases the video may
back off, but the audio transmission remains unchanged.
Mo Zanaty pointed to the importance of the media start-up behavior,
which is an area where the exchange of real-time interactive media is
different from a TCP-based file transfer. The instantaneous
experience in the first part of a video call is highly determinative
of people's perception of the call quality. Vendors are using vague
heuristics, for example, data from the last call to figure out what
to do on the next call. Lars Eggert highlighted that the start-up
behavior of an application affects ongoing performance of other flows
Tschofenig, et al. Expires August 3, 2013 [Page 12]
Internet-Draft Congestion Control Workshop Report January 2013
if, for example, an application blast at line rate at the beginning
of a video stream. You need to start slow enough to not cause
congestion to others. Randell Jesup argued that for an interactive
real-time video application, you really need to have most of your
bandwidth right away. Colin Perkins agreed and added that on startup
you need good quality video quickly, but how quickly? For a phone
call one needs to be able to say "Hello!" pretty quickly, but for
video it may not be necessary to see the other person very quickly.
Those requirements are likely going to be different from audio to
video and maybe even vary between different applications. Various
protocol exchanges take place before media is exchanged between
endpoints (such as STUN packets [34] as part of the ICE [35] or a
DTLS security handshake [36]) and may be used to the advantage to
obtain a couple simple measurements.
The group agreed that it is feasible to design a congestion control
algorithm that work on mostly idle networks. In the view of the
participants upgrades of the network infrastructure can happen in
parallel. This view was later confirmed at the RTP Media Congestion
Avoidance Techniques (RMCAT) Birds of a Feather ("BoF") meeting at
IETF#84 (July 29 - August 3, 2012, Vancouver, BC, Canada) that led to
the formation of the RMCAT working group [37].
Tschofenig, et al. Expires August 3, 2013 [Page 13]
Internet-Draft Congestion Control Workshop Report January 2013
3. Recommendations
The participants suggested to explore two complementary solution
tracks, as described in the two sub-sections below.
3.1. Changes to Network Infrastructure
Like for all other traffic on the network, better data plane
infrastructure improves the perceived quality of the best-effort
service the Internet provides for RTCWeb flows. The IETF has already
developed several technologies that would be of immediate usefulness,
if they were deployed. The workshop participants expressed the hope
that due to the volume and importance of RTCWeb traffic, some of
these technologies might finally see widespread use.
The first and by far most important improvement is traffic
segregation, i.e., the ability to use different queues for different
traffic types. Specifically jitter/delay sensitive protocols would
benefit from being in different queues from throughput maximizing
protocols. It is not possible for a single queue/AQM to be optimal
for both.
Furthermore, ECN allows routers along the end-to-end path to signal
the onset of congestion and allows applications to respond early,
avoiding losses and keep queue sizes short and therefore end-to-end
delay low. ECN is implemented on some end system stacks and routers,
but frequently not enabled. The participants expressed the
importance to increase the deployment of ECN, even if used initially
only in closed environments likes data centers (as with Data Center
TCP (DCTCP) [38].
Different mechanisms have been developed to facilitate traffic
segregation. Differentiated Services [39] are one possibility in
this space. If applications start to mark outgoing traffic
appropriately and routers would segregate traffic accordingly,
browsers could more directly control the relative importance of their
various flows, and avoid self-competition. Compared to ECN, however,
DiffServ is far more difficult to deploy meaningfully end-to-end,
especially given that DSCPs have no defined end-to-end meaning and
packets can be re-marked. Quality-of-service (QoS) signaling
together with resource reservation facilities would enable a fine-
grained and flexible way to indicate resource needs to network
elements but it is also by far the most heavyweight proposal, and
unlikely to be viable in the global Internet. However, as mentioned
in Section 2.3 QoS signaling is not the only way to accomplish
traffic segregation. Further investigations regarding stochastic
fair queuing and new AQM algorithms is seen as desirable.
Tschofenig, et al. Expires August 3, 2013 [Page 14]
Internet-Draft Congestion Control Workshop Report January 2013
In any case, network infrastructure updates will take time
particularly if the interest of the involved stakeholders is not
aligned (as is often the case for network operators). It is
therefore imperative that RTCWeb congestion control provides adequate
improvement in the absence of any of the aforementioned schemes.
3.2. Avoiding Self-Inflicted Queuing
This approach tries to ensure that the network does not suffer from
congestion collapse and that one data flow from a single host does
not harm another data stream from the same host. A single congestion
manager within the end host or the browser could already help to
coordinate various congestion control activities and to ensure a more
coordinated approach between different applications, and different
flows.
The following activities were suggested during the workshop.
Reacting to all Congestion Signals:
To initiate the congestion control process it is important to
detect congestion in the communication path. Congestion can be
detected using either an explicit mechanism or an implicit
mechanism. The explicit mechanism involves direct congestion
signaling usually from the congested network node, such as ECN.
In case of implicit mechanism, packet loss events or observed
delay increase is used as an indication for congestion. These
measurements can also be made available in a variety of different
protocols, such as RTCP reports or transport protocols. It is
recommended for applications to take all available congestion
signals into account and to couple the congestion control
algorithm, the codec and the application so that better
information exchange between these components is possible since
there are constraints on how quickly a codec can adapt to a
specific sending rate.
Delay- and Loss-based Algorithms:
The main goal of designing a congestion control algorithm for
real-time conversational media is to achieve low latency.
Although explicit congestion signals provide the most reliable way
for applications to react. However, due to the lack of ECN
deployment delay based algorithms are needed. Since there is
large delay variation in wireless networks (even in a non-
congested network) the workshop participants recommended that more
research should be done to better understand non-congestion
related delay variation in the network. General consensus among
the workshop participants was that latency-based congestion
Tschofenig, et al. Expires August 3, 2013 [Page 15]
Internet-Draft Congestion Control Workshop Report January 2013
control algorithms are needed due to the lack of loss indications
caused by large buffers but when latency-based techniques were
competing against loss-based techniques, the loss-based techniques
got all the bandwidth.
Algorithm Evaluation:
The Internet consists of heterogeneous networks, which also
includes misconfigured, and unmanaged network nodes. Bandwidth
and latency varies a lot. Not only this, different services
deployed using RTP/UDP have different requirements in terms of
media quality. A congestion control algorithm needs to perform
well not only in simulators but also in the deployed Internet. To
achieve this it is recommended to test the algorithms with real-
world loss and delay figures to ensure that the desired audio/
video rates are attainable using the proposed algorithms for the
desired services.
Media Characteristics in Focus:
Interactive real-time voice and video data is inherently variable.
Usually the content of the media and service requirements dictate
the media coding. The codec may be bursty and not all frames are
equally important (e.g., I-frames are more important than
P-frames). Thus, codecs have limited room for adaptation.
Congestion control for audio and video codecs is therefore
different to congestion control applied to bulk transfers. The
latter are allows buffering of media irrespective to their content
and more fine-grained control for a congestion control algorithm.
In the workshop these limitations were brought up and the workshop
participants recommended that a congestion controller needs to be
aware of these constraints. However, further investigation is
needed to decide what information needs to be exchanged between a
codec and the congestion manager.
Startup Behaviour:
The startup media quality is very important for real-time
interactive application and for user-perceived application
performance. The startup behavior of these is also different to
other traffic. By nature the real-time interactive communication
applications want to provide a smooth user experience and maintain
best media quality to ease the interaction. While it may be
desirable from a user experience point of view to immediately
start streaming video with high-definition quality and audio of a
wideband codec this will have impacts on the bandwidth of the
already ongoing flows. As such, it would be ideal to start slow
enough to avoid excessive congestion to other flows but fast
Tschofenig, et al. Expires August 3, 2013 [Page 16]
Internet-Draft Congestion Control Workshop Report January 2013
enough to offer a good user experience. The sweetspot, however,
yet has to be found.
Some workshop participants also recommended to change the way TCP is
used in browsers and other HTTP-based applications. For example, by
not opening too many concurrent TCP connections, and by improving the
interaction with other non-real-time applications (such as video
streaming and file sharing) additional improvements can be made. The
work on HTTP 2.0 with SPDY [40] is already the step in the right
direction since SPDY makes use of a more aggressive form of
multiplexing instead of opening a larger number of TCP connections.
Finally, it was noted that ongoing IETF standardization activities
should be supported with deployment tests, not just simulations, to
verify the effectiveness of developed congestion control algorithms.
Tschofenig, et al. Expires August 3, 2013 [Page 17]
Internet-Draft Congestion Control Workshop Report January 2013
4. Acknowledgments
We would like to thank the participants and the paper authors of the
position papers for their input.
Additionally, we would like to thank the following persons for their
review comments: Michael Welzl, John Leslie, Mirja Kuehlewind, Matt
Mathis, Mary Barnes, Spencer Dawkins, Alissa Cooper
Tschofenig, et al. Expires August 3, 2013 [Page 18]
Internet-Draft Congestion Control Workshop Report January 2013
5. IANA Considerations
This memo includes no request to IANA.
Tschofenig, et al. Expires August 3, 2013 [Page 19]
Internet-Draft Congestion Control Workshop Report January 2013
6. Security Considerations
Two position papers focused on security but these papers were not
discussed during the workshop. As such, nothing beyond the material
contained in those position papers can be reported.
Tschofenig, et al. Expires August 3, 2013 [Page 20]
Internet-Draft Congestion Control Workshop Report January 2013
7. References
7.1. Normative References
[1] Floyd, S., "Congestion Control Principles", BCP 41, RFC 2914,
September 2000.
[2] Eggert, L. and G. Fairhurst, "Unicast UDP Usage Guidelines for
Application Designers", BCP 145, RFC 5405, November 2008.
7.2. Informative References
[3] Perkins, C. and V. Singh, "RTP Congestion Control: Circuit
Breakers for Unicast Sessions",
draft-ietf-avtcore-rtp-circuit-breakers-01 (work in progress),
October 2012.
[4] Wikipedia, "Video compression picture types", URL:
http://en.wikipedia.org/wiki/Video_compression_picture_types,
Jan. 2012.
[5] Ramakrishnan, K., Floyd, S., and D. Black, "The Addition of
Explicit Congestion Notification (ECN) to IP", RFC 3168,
September 2001.
[6] Floyd, S. and J. Kempf, "IAB Concerns Regarding Congestion
Control for Voice Traffic in the Internet", RFC 3714,
March 2004.
[7] Floyd, S. and K. Fall, "Promoting the Use of End-to-End
Congestion Control in the Internet", IEEE/ACM Transactions on
Networking, URL: http://www.aciri.org/floyd/end2end-paper.html,
Aug 1999.
[8] Floyd, S., Handley, M., Padhye, J., and J. Widmer, "TCP
Friendly Rate Control (TFRC): Protocol Specification",
RFC 5348, September 2008.
[9] Jacobson, V., "pathchar - a tool to infer characteristics of
Internet paths", Presented at the Mathematical Sciences
Research Institute, Slides available from:
ftp://ftp.ee.lbl.gov/pathchar/, April 1997.
[10] Winstein, K., Sivaraman, A., and H. Balakrishnan, "Congestion
Control for Interactive Real-Time Flows on Today's Internet",
IAB / IRTF Workshop on Congestion Control for Interactive Real-
Time Communication , July 2012.
Tschofenig, et al. Expires August 3, 2013 [Page 21]
Internet-Draft Congestion Control Workshop Report January 2013
[11] Sarker, Z. and I. Johansson, "Improving the Interactive Real-
Time Video Communication with Network Provided Congestion
Notification", IAB / IRTF Workshop on Congestion Control for
Interactive Real-Time Communication , July 2012.
[12] Bauer, S., Beverly, R., and A. Berger, "Measuring the state of
ECN readiness in servers, clients,and routers", In Proceedings
of the 2011 ACM SIGCOMM conference on Internet measurement
conference (IMC '11). ACM, New York, NY, USA, pp. 171 -
180, URL: http://doi.acm.org/10.1145/2068816.2068833,
Feb. 2011.
[13] Zanaty, M., "Fairness Considerations for Congestion Control",
IAB / IRTF Workshop on Congestion Control for Interactive Real-
Time Communication , July 2012.
[14] Welzl, M., Damjanovic, D., and S. Gjessing, "MulTFRC: TFRC with
weighted fairness", draft-irtf-iccrg-multfrc-01 (work in
progress), July 2010.
[15] 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.
[16] Jarvinen, I., Chemmagate, B., Daniel, L., Ding, A., Kojo, M.,
and M. Isomaki, "Impact of TCP on Interactive Real-Time
Communication", IAB / IRTF Workshop on Congestion Control for
Interactive Real-Time Communication , July 2012.
[17] Chu, J., Dukkipati, N., Cheng, Y., and M. Mathis, "Increasing
TCP's Initial Window", draft-ietf-tcpm-initcwnd-07 (work in
progress), January 2013.
[18] Allman, M., "Comments on Bufferbloat", In SIGCOMM Comput.
Commun. Rev. 43, 1, pp. 30 - 37, URL:
http://doi.acm.org/10.1145/2427036.2427041, Jan. 2013.
[19] Jennings, C., Nandakumar, S., and H. Phan, "Vendors Considered
Harmfull", IAB / IRTF Workshop on Congestion Control for
Interactive Real-Time Communication , July 2012.
[20] Holmer, S., "On Fairness, Delay and Signaling of Different
Approaches to Real-time Congestion Control", IAB / IRTF
Workshop on Congestion Control for Interactive Real-Time
Communication , July 2012.
[21] Gettys, J. and J. Gettys, "Bufferbloat: Dark Buffers in the
Internet", IEEE Internet Computing, 15, pp. 95 - 96 , May/
Tschofenig, et al. Expires August 3, 2013 [Page 22]
Internet-Draft Congestion Control Workshop Report January 2013
June 2011.
[22] Gettys, J. and K. Nichols, "Bufferbloat: Dark Buffers in the
Internet", Communications of the ACM, Vol. 55 No. 1, Pages 57 -
65, URL:
http://cacm.acm.org/magazines/2012/1/144810-bufferbloat/,
Jan. 2012.
[23] Wikipedia, "Bufferbloat", URL:
http://en.wikipedia.org/wiki/Bufferbloat, Jan. 2012.
[24] Braden, B., Clark, D., Crowcroft, J., Davie, B., Deering, S.,
Estrin, D., Floyd, S., Jacobson, V., Minshall, G., Partridge,
C., Peterson, L., Ramakrishnan, K., Shenker, S., Wroclawski,
J., and L. Zhang, "Recommendations on Queue Management and
Congestion Avoidance in the Internet", RFC 2309, April 1998.
[25] Feng, W., Shin, K., Kandlur, D., and D. Saha, "The BLUE Active
Queue Management Algorithm", In IEEE/ACM Transactions on
Networking, 10(4), pp. 513 - 528 , August 2002.
[26] Jarvinen, I., Ding, A., Nyrhinen, A., and M. Kojo, "Harsh RED:
Improving RED for Limited Aggregate Traffic", In Proceedings of
the 26th IEEE International Conference on Advanced Information
Networking and Applications (AINA 2012) , March 2012.
[27] IETF, "IETF IP Performance Metrics (ippm) Working Group",
Jan. 2012.
[28] Schulzrinne, H., Johnston, W., and J. Miller, "Large-Scale
Measurement of Broadband Performance: Use Cases, Architecture
and Protocol Requirements",
draft-schulzrinne-lmap-requirements-00 (work in progress),
September 2012.
[29] McKenney, P., "Stochastic Fairness Queuing", In IEEE INFOCOM'90
Proceedings, pp. 733 - 740 , June 1990.
[30] Nichols, K., "Controlled Delay Active Queue Management",
draft-nichols-tsvwg-codel-00 (work in progress), July 2012.
[31] Shalunov, S., Hazel, G., Iyengar, J., and M. Kuehlewind, "Low
Extra Delay Background Transport (LEDBAT)", RFC 6817,
December 2012.
[32] Welzl, M., "One control to rule them all", IAB / IRTF Workshop
on Congestion Control for Interactive Real-Time Communication ,
July 2012.
Tschofenig, et al. Expires August 3, 2013 [Page 23]
Internet-Draft Congestion Control Workshop Report January 2013
[33] Leslie, J., "There is No Magic Transport Wand", IAB / IRTF
Workshop on Congestion Control for Interactive Real-Time
Communication , July 2012.
[34] Rosenberg, J., Weinberger, J., Huitema, C., and R. Mahy, "STUN
- Simple Traversal of User Datagram Protocol (UDP) Through
Network Address Translators (NATs)", RFC 3489, March 2003.
[35] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A
Protocol for Network Address Translator (NAT) Traversal for
Offer/Answer Protocols", RFC 5245, April 2010.
[36] Rescorla, E. and N. Modadugu, "Datagram Transport Layer
Security Version 1.2", RFC 6347, January 2012.
[37] IETF, "IETF RTP Media Congestion Avoidance Techniques (rmcat)
Working Group", Jan. 2012.
[38] Bauer, S., Greenberg, A., Maltz, D., Padhye, J., Patel, P.,
Prabhakar, B., Sengupta, S., and M. Sridharan, "Data center TCP
(DCTCP)", In Proceedings of the ACM SIGCOMM 2010 conference
(SIGCOMM '10), New York, NY, USA, pp. 63-74, URL:
http://doi.acm.org/10.1145/1851182.1851192, Aug. 2010.
[39] Blake, S., Black, D., Carlson, M., Davies, E., Wang, Z., and W.
Weiss, "An Architecture for Differentiated Services", RFC 2475,
December 1998.
[40] Belshe, M., Peon, R., Thomson, M., and A. Melnikov, "Hypertext
Transfer Protocol version 2.0", draft-ietf-httpbis-http2-01
(work in progress), January 2013.
[41] Mathis, M., "Position paper on CC for Interactive RT", IAB /
IRTF Workshop on Congestion Control for Interactive Real-Time
Communication , July 2012.
Tschofenig, et al. Expires August 3, 2013 [Page 24]
Internet-Draft Congestion Control Workshop Report January 2013
This workshop was organized by Harald Alvestrand, Bernard Aboba, Mary
Barnes, Gonzalo Camarillo, Spencer Dawkins, Lars Eggert, Matthew
Ford, Randell Jesup, Cullen Jennings, Jon Peterson, Robert Sparks,
and Hannes Tschofenig.
Tschofenig, et al. Expires August 3, 2013 [Page 25]
Internet-Draft Congestion Control Workshop Report January 2013
o Main Workshop Page:
http://www.iab.org/activities/workshops/cc-workshop/
o Position Papers:
http://www.iab.org/activities/workshops/cc-workshop/papers/
o Slides:
http://www.iab.org/activities/workshops/cc-workshop/slides/
Tschofenig, et al. Expires August 3, 2013 [Page 26]
Internet-Draft Congestion Control Workshop Report January 2013
Appendix C. Accepted Position Papers
1. "One control to rule them all" by Michael Welzl
2. "Congestion Avoidance Through Deterministic" by Pier Luca
Montessoro, Riccardo Bernardini, Franco Blanchini, Daniele
Casagrande, Mirko Loghi, and Stefan Wieser
3. "Congestion Control in Real Time Media - Context" by Harald
Alvestrand
4. "Improving the Interactive Real-Time Video Communication with
Network Provided Congestion Notification" by ANM Zaheduzzaman
Sarker, Ingemar Johansson
5. "Multiparty Requirements in Congestion Control for Real-Time
Interactive Media" by Magnus Westerlund
6. "On Fairness, Delay and Signaling of Different Approaches to
Real-time Congestion Control" by Stefan Holmer
7. "RTP Congestion Control and RTCWeb Application Feedback" by Ted
Hardie
8. "Issues with Using Packet Delays and Inter-arrival Times for
Inference of Internet Congestion" by Wesley M. Eddy
9. "Impact of TCP on Interactive Real-Time Communication" by Ilpo
Jarvinen, Binoy Chemmagate, Laila Daniel, Aaron Yi Ding, Markku
Kojo, and Markus Isomaki
10. "Security Concerns For RTCWeb Congestion Control" by Dan York
11. "Vendors Considered Harmfull" by Cullen Jennings, Suhas
Nandakumar, and Hein Phan
12. "Network-Assisted Dynamic Adaptation" by Xiaoqing Zhu and Rong
Pan
13. "Congestion Control for Interactive Real-Time Applications" by
Sanjeev Mehrotra, and Jin Li
14. "There is No Magic Transport Wand" by John Leslie
15. "Towards Adaptive Congestion Management for Interactive Real-
Time Communications" by Dirk Kutscher, and Miriam Kuehlewind
Tschofenig, et al. Expires August 3, 2013 [Page 27]
Internet-Draft Congestion Control Workshop Report January 2013
16. "Enlarge the pre-congestion spectrum usage?" by Xavier Marjou,
and Emile Stephan
17. "Congestion control for users who don't have first-class
internet access" by Maire Reavy
18. "Realtime Congestion Challenges" by Randell Jesup
19. "Congestion Control for Interactive Media: Control Loops & APIs"
by Varun Singh, Joerg Ott, and Colin Perkins
20. "Some Notes on Threat Modelling Congestion Management" by Eric
Rescorla
21. "Timely Detection of Lost Packets" by Ali C. Begen
22. "Congestion Control Considerations for Data Channels" by Michael
Tuexen
23. "Position paper on CC for Interactive RT" by Matt Mathis
24. "Overall Considerations for Congestion Control" by M. Zanaty, B.
VerSteeg, B. Christensen, D. Benham, A. Romanow
25. "Fairness Considerations for Congestion Control" by Mo Zanaty
26. "Media is not Data: The Meaning of Fairness for Competing
Multimedia Flows" by Timothy B. Terriberry
27. "Thoughts on Real-Time Congestion Control" by Murari Sridharan
28. "Congestion Control for Interactive Real-Time Flows on Today's
Internet" by Keith Winstein, Anirudh Sivaraman, and Hari
Balakrishnan
29. "Congestion Control Principles for CoAP" by Carsten Bormann,
Klaus Hartke
30. "Erasure Coding and Congestion Control for Interactive Real-Time
Communication" by Pierre-Ugo Tournoux, Tuan Tran Thai, Emmanuel
Lochin, Jerome Lacan, Vincent Roca
31. "Video Conferencing Specific Considerations for RTP Congestion
Control" by Stephen Botzko and Mary Barnes
32. "The Internet is Broken, and How to Fix It" by Jim Gettys
Tschofenig, et al. Expires August 3, 2013 [Page 28]
Internet-Draft Congestion Control Workshop Report January 2013
33. "Deployment Considerations for Congestion Control in Real-Time
Interactive Media Systems" by Jari Arkko
Tschofenig, et al. Expires August 3, 2013 [Page 29]
Internet-Draft Congestion Control Workshop Report January 2013
Appendix D. Workshop Participants
We would like to thank the following workshop participants for
attending the workshop:
o Mat Ford
o Bernard Aboba
o Alissa Cooper
o Mary Barnes
o Lars Eggert
o Harald Alvestrand
o Gonzalo Camarillo
o Robert Sparks
o Cullen Jennings
o Dirk Kutscher
o Carsten Bormann
o Michael Welzl
o Magnus Westerlund
o Colin Perkins
o Murari Sridharan
o Klaus Hartke
o Pier Luca Montessoro
o Xavier Marjou
o Vincent Roca
o Wes Eddy
o Ali C. Begen
Tschofenig, et al. Expires August 3, 2013 [Page 30]
Internet-Draft Congestion Control Workshop Report January 2013
o Mo Zanaty
o Jin Li
o Dave Thaler
o Bob Briscoe
o Barry Leiba
o Jari Arkko
o Stewart Bryant
o Martin Stiemerling
o Russ Housley
o Marc Blanchet
o Zaheduzzaman Sarker
o Xiaoqing Zhu
o Randell Jesup
o Eric Rescorla
o Suhas Nandakumar
o Hannes Tschofenig
o Bill VerSteeg
o Sean Turner
o Keith Winstein
o Jon Peterson
o Maire Reavy
o Michael Tuexen
o Stefan Holmer
o Joerg Ott
Tschofenig, et al. Expires August 3, 2013 [Page 31]
Internet-Draft Congestion Control Workshop Report January 2013
o Timothy Terriberry
o Benoit Claise
o Ted Hardie
o Stephen Botzko
o Matt Mathis
o David Benham
o Jim Gettys
o Spencer Dawkins
o Sanjeev Mehrotra
o Adrian Farrel
o Greg White
o Markku Kojo
We also had remote participants, namely
o Emmanuel Lochin
o Mark Handley
o Anirudh Sivaraman
o John Leslie
o Varun Singh
Tschofenig, et al. Expires August 3, 2013 [Page 32]
Internet-Draft Congestion Control Workshop Report January 2013
Authors' Addresses
Hannes Tschofenig
Linnoitustie 6
Espoo, 02600
Finland
Phone: +358 (50) 4871445
Email: Hannes.Tschofenig@gmx.net
URI: http://www.tschofenig.priv.at
Lars Eggert
Sonnenallee 1
Kirchheim, 85551
Germany
Phone: +49 151 12055791
Email: lars@netapp.com
URI: http://eggert.org/
Zaheduzzaman Sarker
Lulea, SE-971 28
Sweden
Phone: +46 10 717 37 43
Email: zaheduzzaman.sarker@ericsson.com
Tschofenig, et al. Expires August 3, 2013 [Page 33]