<?xml version="1.0" encoding="US-ASCII"?>
<!--
vim:et:ts=2:sw=2:spell:spelllang=en:tw=80
-->
<!-- This template is for creating an Internet Draft using xml2rfc,
    which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
    There has to be one entity for each item to be referenced.
    An alternate method (rfc include) is described in the references. -->
<!ENTITY I-D.ietf-avtcore-rtp-circuit-breakers SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-avtcore-rtp-circuit-breakers.xml">
<!ENTITY I-D.irtf-iccrg-multfrc SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.irtf-iccrg-multfrc.xml">
<!ENTITY I-D.schulzrinne-lmap-requirements SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.schulzrinne-lmap-requirements.xml">
<!ENTITY I-D.nichols-tsvwg-codel SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.nichols-tsvwg-codel.xml">
<!ENTITY I-D.ietf-httpbis-http2 SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-httpbis-http2.xml">
<!ENTITY RFC5405 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5405.xml">
<!ENTITY RFC2914 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2914.xml">
<!ENTITY RFC4585 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4585.xml">
<!ENTITY RFC5348 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5348.xml">
<!ENTITY RFC2475 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2475.xml">
<!ENTITY RFC6817 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6817.xml">
<!ENTITY RFC2309 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2309.xml">
<!ENTITY RFC5389 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5389.xml">
<!ENTITY RFC6347 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6347.xml">
<!ENTITY RFC5245 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5245.xml">
<!ENTITY RFC3168 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3168.xml">
<!ENTITY RFC3714 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3714.xml">
<!ENTITY RFC6679 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6679.xml">
<!ENTITY RFC6928 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6928.xml">

]>
<!--?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?-->
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
    please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
    (Here they are set differently than their defaults in xml2rfc v1.32) -->
<!--?rfc strict="yes" ?-->
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="mp"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
    (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="no" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-iab-cc-workshop-report-02.txt"
     ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
    ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
       or pre5378Trust200902
    you can add the attributes updates="NNNN" and obsoletes="NNNN"
    they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the
         full title is longer than 39 characters -->

    <title abbrev="Congestion Control Workshop Report">Report from the
    IAB/IRTF Workshop on Congestion Control for Interactive Real-Time
    Communication</title>

     <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
      <organization>ARM Ltd.</organization>
      <address>
        <postal>
          <street></street>
          <city>Hall</city>
          <region>Tirol</region>
          <code>6060</code>
          <country>Austria</country>
        </postal>
        <phone></phone>
        <email>Hannes.Tschofenig@gmx.net</email>
        <uri>http://www.tschofenig.priv.at</uri>
      </address>
    </author>

    <author fullname="Lars Eggert" initials="L.E." surname="Eggert">
      <organization>NetApp</organization>

      <address>
        <postal>
          <street>Sonnenallee 1</street>

          <city>Kirchheim</city>

          <region></region>

          <code>85551</code>

          <country>Germany</country>
        </postal>

        <phone>+49 151 12055791</phone>

        <email>lars@netapp.com</email>

        <uri>http://eggert.org/</uri>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Zaheduzzaman Sarker" initials="Z.S." surname="Sarker">
      <organization>Ericsson</organization>

      <address>
        <postal>
          <street></street>

          <city>Lulea</city>

          <region></region>

          <code>SE-971 28</code>

          <country>Sweden</country>
        </postal>

        <phone>+46 10 717 37 43</phone>

        <email>zaheduzzaman.sarker@ericsson.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <!--
		 <author fullname="Bill Ver Steeg" initials="B.V.S."
            surname="Ver Steeg">
      <organization>Cisco</organization>
      <address>
      <postal>
        <street></street>
        <city></city>
        <region></region>
        <code></code>
        <country></country>
      </postal>
      <phone></phone>
      <email>versteb@cisco.com</email>
      </address>
    </author>
-->

    <date year="2014" />

    <!--    <area>
    Security
    </area>-->

    <keyword>Congestion Control</keyword>

    <keyword>RTCWeb</keyword>

    <keyword>Workshop</keyword>

    <keyword>Real-Time Communication</keyword>

    <abstract>
      <t>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.</t>

      <t>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).</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>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 <xref target="RFC2914"></xref> and RFC 5405 <xref
      target="RFC5405"></xref>: <list style="numbers">
          <t>Preventing congestion collapse.</t>

          <t>Allowing multiple flows to share the network fairly.</t>
        </list></t>

		<!-- <xref target="FF99"></xref> informs about
        historic incidents, such as congestion collapse due to
        unnecessarily-retransmitted, undelivered, and fragmented packets.

		-->

      <t>The Internet has been used for interactive real-time communication
      for decades, most of which is being transmitted using Real-Time Transport
Protocol (RTP) over UDP,
      often over provisioned capacity and/or using only rudimentary congestion
      control mechanisms. In 2004, 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 <xref target="RFC3714"></xref>. That congestion
      collapse did not happen, but concerns raised about both congestion collapse and fairness are still
valid and have gained more relevance when applied to more bandwidth-hungry video applications.
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.</t>

      <t>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, <xref
      target="I-D.ietf-avtcore-rtp-circuit-breakers"></xref>), 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.</t>

      <t>Many additional complications arise. Here are some examples: <list
          style="numbers">
          <t>Real-time interactive media sessions require low latencies,
          whereas streaming media can use large play-out buffers.</t>

          <t>In an 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.</t>

          <t>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.</t>

          <t>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 <xref
          target="video-frames"></xref>.</t>

          <t>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.</t>

          <t>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.</t>

          <t>The desire to provide a congestion control mechanism that can be
          efficiently implemented inside an application imposes additional restrictions.
For example, a Web browser is not able to take the protocol interactions of a software download
happening in another application into account.
</t>

          <t>There are explicit congestion signals (such as Explicit
          Congestion Notification (ECN) <xref target="RFC3168"></xref>), 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.</t>

          <t>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.</t>
        </list></t>

      <!--
      <t>Note that this document is a report on the proceedings of the workshop.
        The views and positions documented in this report are those of the workshop
        participants and do not necessarily reflect the views of the
        authors.</t>
-->
    </section>

    <section title="Workshop Structure">
	<t>The IETF has a long history of work on congestion control
Mechanisms. With ongoing standardization work on real-time
interactive media communication on the Web, new challenges have emerged that
have refocused engineering attention on congestion control issues. To take a
deeper look at congestion control in light of the growth of real-time traffic,
workshop participants were invited to submit position papers which were then
used to organize the workshop agenda into three principal components: a keynote
talk given by Mark Handley describing
the history of the work on congestion control for real-time media
followed and his views of current problems; a presentation of simulations and
data demonstrating current problems and solutions; and a discussion of desirable
solution properties and challenges in deploying solutions.</t>


      <section title="History and Current Challenges">

        <t>Mark Handley argued 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.</t>

        <t>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 indicated that the
        provided level of fairness is not necessarily what we want: The
        1/round-trip-time relationship in TCP is not ideal since it means
        that network operators can decide to lower packet loss by adding
        bigger buffers (which unfortunately leads to bufferbloat problems, see <xref target="Jim"/> and <xref target="Bufferbloat"/>).
        The 1/sqrt(packet drop rate) relationship is also not necessarily
        desirable since TCP initially did not work particularly well for high-speed
        flows (which had been the subject of much TCP research).</t>

        <t>TCP controls the congestion window in bytes. For bulk transfer,
        usually this results in controlling the number of 1500 byte packets sent
        per second. Real-time media is different since it has
        its own time constraints. For audio one wants to send one packet per
        20ms and for video the ideal value would be 25 to 30 frames per second. One
        therefore wants to avoid additional sending delay.</t>

        <t>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.</t>

        <t>From a network point of view the goals of congestion control
        therefore are: <list style="numbers">
            <t>Avoid congestion collapse</t>

            <t>Avoid starvation of TCP flows</t>

            <t>Avoid starvation of real-time flows, specifically in the case
            where TCP and real-time flows share the same FIFO queue.</t>
          </list></t>

        <t>From an application point of view the goals of congestion control
        are different, namely: <list style="numbers">
            <t>Robust behavior. One wants to have a good throughput when the
            network is working well and passable performance when the network is
            working poorly.</t>

            <t>Predictable behavior. This matters from a usability point of
            view since variable media creates a bad user experience.</t>

            <t>Low latency. With large buffers along the end-to-end path,
            latency will increase when interactive real-time flows compete
            with TCP flows. This results in TCP filling up the buffers;
            increased buffering will lead to additional delays for the delivery of
            the interactive real-time media.</t>
          </list></t>

        <t>Attempts to provide congestion control for interactive real-time
        media have previously been made in the IETF, for example, with
        the work on TCP-Friendly Rate Control (TFRC) <xref
        target="RFC5348"></xref>. TFRC illustrates the challenges quite well.
        TFRC tries to accomplish the same throughput as TCP, but with a smoother
        transmission rate. It measures the loss and the round-trip time but
        follows a similar model as TCP to determine the sending rate.</t>

        <t>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 rate adaptation
        based on round-trip time (RTT) information is utilized in TRFC, but
        this requires good short-term RTT measurements.</t>

        <t>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. </t>

        <t>What if the codec is put 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.</t>

        <t>
		Known congestion control mechanisms work well if they can respond quickly
		enough to changes and if they do not bump into the low
        statistical multiplexing problem.</t>

    <!--
	<t>We only know how to do congestion control well if the application is under the control of the congestion control algorithm but we do not know how to do the video streaming / video encoding part well if the codec is in charge. Trying to match the two together is where the problems are. We would like to have the codec and the network to be in charge. They cannot be both in charge at the same time.</t>
	-->

        <t>To avoid the low statistical multiplexing problem techniques for
        inferring linkspeed are needed. The work from Van Jacobson's
        pathchar <xref target="pathchar"></xref> (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 the 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.</t>

        <t>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.
        Circuit breakers <xref
        target="I-D.ietf-avtcore-rtp-circuit-breakers"></xref>, 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."</t>

        <t>As a conclusion, Mark Handley claimed 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.</t>
      </section>

      <section title="Simulations and Measurements">
        <t>This second part of the workshop was focused on the presentation
        and the discussion of data gathered from simulations and real-world
        measurements.</t>

        <t>Keith Winstein started the discussion with his presentation of
        measurements performed in cellular operator networks in the US <xref
        target="Keith"></xref>. 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.</t>

        <t>Zaheduzzaman Sarker <xref target="Zahed"></xref> 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 and hence distributes the cost of congestion
        well and helps achieve lower latency. However, although RFC 3168
        <xref target="RFC3168"></xref> was finalized in 2001, the deployment of
        ECN, is still lacking as investigated by Bauer, et al. <xref
        target="bauer-ecn"></xref>. A few participants noted that they believe
		that the deployment of LTE networks will also increase the deployment
		of ECN with the recent work on ECN for RTP over UDP <xref target="RFC6679"/>.</t>

        <t>Mo Zahaty <xref target="Mo"></xref> discussed TFRC <xref
        target="RFC5348"></xref> and TFRC with weighted fairness (MulTFRC)
        <xref target="I-D.irtf-iccrg-multfrc"></xref>, 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 <xref target="RFC4585"></xref>). 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.</t>

        <t>Markku Kojo shared analysis results of how real-time audio is
        affected by competing TCP flows. In the experiments shown in Figure 2
        of <xref target="Markku"></xref> 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 the quality of the 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
        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 <xref target="RFC6928"></xref>, instead of
        three) leads to a bigger burst of packets because of the initial
        window transmission. Note that the study in <xref
        target="comments"></xref> 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.</t>

        <t>Cullen Jennings <xref target="Cullen"></xref> presented measurement
        results showing interactions between RTP and TCP flows for several
        widely deployed video communication products: 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.</t>

        <t>Stefan Holmer <xref target="Stefan"></xref> 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.</t>
      </section>

      <section anchor="constraints" title="Design Aspects of Problems and Solutions">
        <t>During the remaining part of the workshop the participants
        discussed design aspects of both the problem and solution spaces. The discussions
        started with a presentation by Jim Gettys about
        problems related to bufferbloat <xref target="Jim"></xref><xref
        target="GN2012"></xref>. 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" <xref target="Bufferbloat"></xref>. 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.</t>

        <t>Packets may get buffered at various places along the end-to-end
        path including in the operating system/device drivers, customer
        premise 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, workshop participants were still
        concerned that many equipment manufacturers 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 <xref target="FCC"/>.</t>

        <t>Active queue management (AQM) aims to prevent queues from growing
        too large. This is accomplished by monitoring queue length and
        informing the sender by dropping or marking packets to lower their
        transmission rate. Random Early Detection (RED) <xref
        target="RFC2309"></xref> is one such AQM algorithm but it has not been
        widely deployed in routers largely because of challenges to configure
        it correctly <xref target="Feng"></xref>. According to <xref
        target="JDNK12"></xref>, 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.</t>

        <t>One outcome of that discussion on AQM at the workshop was a Birds of a Feather ("BoF") meeting on "Active Queue Management and Packet Scheduling" at
        IETF#87 (July 28 - August 5, 2013, Berlin, Germany). The
        AQM WG <xref
        target="aqm"></xref> was chartered a few weeks later, and is now designing
AQM and network infrastructure improvements to deal with
bufferbloat and related issues.</t>

		<t>Measurement tools that allow an end user to determine the performance
        of his or her 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 their networks perform and to complain to their ISP,
        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 <xref target="ippm"></xref>
        was to develop such metrics to qualify networks. That work may have begun
before its time, but there have been recent attempts to re-visit the
        measurement work and an effort by the FCC has gotten a lot of
        attention recently (see <xref
        target="I-D.schulzrinne-lmap-requirements"></xref>, <xref target="lmap"/>).</t>

        <t>Matt Mathis and others argued that the traffic of throughput-maximizing and
        delay-minimizing applications need to be in separate queues (segregated queuing).
		Requiring segregated queues assumes you
        are sharing the network with other greedy traffic. Quality of Service signaling is a way to deploy segregated
        queuing but there are several simpler alternatives, such as Stochastic
        Fair Queuing <xref target="sfq"></xref>. The Controlled Delay (CoDel)
        AQM algorithm <xref target="I-D.nichols-tsvwg-codel"></xref> can also
        be used in combination with stochastic fair queuing. Note that queue
        segregation is not necessary for every router to implement; using it at the edge of a network where
bottleneck links are located is already sufficient.</t>

        <t>It was noted that current interactive voice usage over the Internet
        works most of the time satisfactorily. 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 packets arrive,
        traffic does not need to be separated into distinct queues. Further
        explanations were offered as to why many networks work surprisingly well:
        LEDBAT <xref target="RFC6817"></xref> is used for the download of
        software updates, voice traffic contributes only a small percentage of
        the overall Internet traffic, and users employ "human protocols" (e.g., parents
        asking their kids to get off the network during the time of a
        conference call).</t>

        <t>Cullen Jennings raised a concern that although interactive voice may be
functional without a congestion control mechanism, the potentially large uptake
of interactive video spurred on by RTCWeb could create substantially more
significant problems. In the class of space
        where voice is currently working, video may fail.
		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 added that RTCWeb might be
        the driver for the moment, but web
        browsers are not the only consumers of such congestion control algorithm.</t>

        <t>Furthermore, Ted Hardie 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
        that are already rate-limited, or if we are asking media streams that are
        already rate-limited to be TCP friendly. To quote 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, are we
        only willing to consider changes in RTP control, or are
        we willing to consider changes in TCP congestion control?</t>

        <t>This led to a discussion about 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 same time scale as deploying ECN <xref target="RFC3168"></xref>.
        Colin Perkins noted that we cannot change TCP quickly, the
        way 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. </t>

        <t>Bill Ver Steeg suggested to consider three different deployment
        environments, namely: <list style="numbers">
            <t>Flows competing with flows from the host ("self-inflicted
            queuing delay")</t>

            <t>Flows competing with flows in the same sub-network (e.g., home
            network)</t>

            <t>Flows competing with flows from other networks (e.g., traffic
            from different households that utilize the same DSL provider)</t>
          </list></t>

        <t>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
        <xref target="Michael"></xref>) 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, this is considered
        challenging even within a single host. John Leslie <xref
        target="John"></xref> 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.</t>

        <t>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 if, for
        example, an application blasts 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 perhaps not as quickly as voice. The
		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
        <xref target="RFC5389"></xref> as part of the ICE <xref
        target="RFC5245"></xref> or a DTLS security handshake <xref
        target="RFC6347"></xref>) and may be used to obtain
		simple start-up measurements.</t>

        <t>The group agreed that it is feasible to design a congestion control
        algorithm that works 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 <xref
        target="rmcat"></xref>.</t>

        <!--
There's work going on that allows an end host to query the firewall what the last mile bandwidth or available capacity is. If it's bandwidth, that's an upper bound (if that's the bottleneck link), if it's available capacity, that's even better.
-->
      </section>
    </section>

    <section title="Recommendations">

	<t>The participants suggested to explore two primary solution
tracks: changes to network infrastructure, and the development of algorithms
to avoid self-inflicted queuing. These are discussed below.
A third approach recommended by some participants was 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 <xref target="I-D.ietf-httpbis-http2"></xref> is already a 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.</t>

      <section title="Changes to Network Infrastructure">
        <t>As for all other traffic on the network, better data plane
        infrastructure improves the perceived quality of the best-effort
        service that the Internet provides for RTCWeb flows. The IETF has already
        developed several technologies that would be of immediate usefulness
        if they were to be 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.</t>

        <t>The first and by far most important improvement is traffic
        segregation: the ability to use different queues for different
        traffic types. Specifically, jitter- and 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.</t>

        <t>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 keeping queue sizes short and therefore end-to-end
        delay low. ECN is implemented on some end system stacks and routers,
        but is frequently not enabled. The participants expressed the importance
        of increasing the deployment of ECN, even if used initially only in
        closed environments, such as data centers (as with Data Center TCP
        (DCTCP) <xref target="dctcp"></xref>).</t>

        <t>Different mechanisms have been developed to facilitate traffic
        segregation. Differentiated Services <xref target="RFC2475"/> is one possibility in this space.
		If applications start to mark outgoing traffic appropriately and
        routers 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.
		</t>

		<t>
        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 <xref target="constraints"></xref>,
        QoS signaling is not the only way to accomplish traffic segregation.
        Further investigations regarding stochastic fair queuing and new AQM
        algorithms are seen as desirable.</t>

        <t>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 when dealing with overthe-
top real-time traffic).). It is therefore imperative that RTCWeb
        congestion control provides adequate improvement in the absence of any
        of the aforementioned schemes.</t>
      </section>

      <section title="Avoiding Self-Inflicted Queuing">
        <t>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 flow from the same host. A single congestion
        manager within the end host or the browser could help to
        coordinate various congestion control activities and to ensure a more
        coordinated approach between different applications and different
        flows.</t>

        <t>The following design and testing aspects were considered relevant to this
approach:</t>

        <t><list style="hanging">
            <t hangText="Reacting to All Congestion Signals:"><vspace
            blankLines="1" /> 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. An explicit mechanism involves direct
            congestion signaling usually from the congested network node, such
            as ECN. <!-- The ECN bits are set in the IP header by the network node
   before it starts to drop the packets and gives end hosts to react to
   the congestion.--> In case of an implicit mechanism, packet loss events or
            observed delay increase are 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.
            <!-- Communication endpoints can trigger congestion
   control on the event of these phenomena.  It is also possible to
   correlate these events to detect congestion in the communication
   path.  The implicit and explicit signals can come in any sequence and
   at any time during the ongoing media session.--> 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.</t>

            <t hangText="Delay- and Loss-based Algorithms:"><vspace
            blankLines="1" /> The main goal of designing a congestion control
            algorithm for real-time conversational media is to achieve low
            latency. Explicit congestion signals provide the most
            reliable way for applications to react, but 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
            control algorithms are needed due to the lack of loss indications
            caused by large buffers, even though loss-based techniques dominate
latency-based techniques when the two are competing for bandwidth.</t>

            <t hangText="Algorithm Evaluation:"><vspace blankLines="1" /> The
            Internet consists of heterogeneous networks, which include
            misconfigured and unmanaged network nodes. Bandwidth and latency
            vary a lot. 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.</t>

            <t hangText="Media Characteristics:"><vspace
            blankLines="1" /> Interactive real-time voice and video data are
            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 from congestion control applied to bulk file
            transfers where buffering is not a problem and the transmission rate
			can be changed to any rate suitable for the 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.</t>

            <t hangText="Start-up Behavior:"><vspace blankLines="1" /> The
            startup media quality is very important for real-time interactive
            applications and for user-perceived application performance. The
            startup behavior of these is also different from other traffic. By
            nature real-time interactive communication applications want
            to provide a smooth user experience and maintain the best media
            quality possible 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 causing excessive
            congestion to other flows but fast enough to offer a good user
            experience. The sweetspot, however, yet has to be found.</t>
          </list></t>

      </section>
    </section>

    <section anchor="Acknowledgments" title="Acknowledgments">
      <t>We would like to thank the participants and the paper authors of the
      position papers for their input.</t>

      <t>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, Dave Thaler, and Alissa Cooper.</t>
    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>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.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
    1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
    2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
       (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

    Both are cited textually in the same manner: by using xref elements.
    If you use the PI option, xml2rfc will, by default, try to find included files in the same
    directory as the including file. You can also define the XML_LIBRARY environment variable
    with a value containing a set of directories to search.  These can be either in the local
    filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Informative References">
      &RFC5405;

      &RFC2914;

      &I-D.ietf-avtcore-rtp-circuit-breakers;

      &I-D.irtf-iccrg-multfrc;

      &RFC4585;

      &I-D.nichols-tsvwg-codel;

      &I-D.schulzrinne-lmap-requirements;

      &RFC6817;

      &RFC2309;

	  &RFC2475;

	  &RFC6679;

      &RFC5348;

      &RFC5389;

      &RFC6347;

      &RFC5245;

      &I-D.ietf-httpbis-http2;

      &RFC3714;

      &RFC6928;

      &RFC3168;

<!--      <reference anchor="FF99">
        <front>
          <title>Promoting the Use of End-to-End Congestion Control in the
          Internet</title>

          <author fullname="Sally Floyd" initials="S." surname="Floyd"></author>

          <author fullname="Kevin Fall" initials="K." surname="Fall"></author>

          <date month="Aug" year="1999" />
        </front>

        <seriesInfo name="IEEE/ACM Transactions on Networking,"
                    value="URL: http://www.aciri.org/floyd/end2end-paper.html" />

        <format target="http://www.aciri.org/floyd/end2end-paper.html"
                type="HTML" />
      </reference>
-->
      <reference anchor="Mo">
        <front>
          <title>Fairness Considerations for Congestion Control</title>

          <author fullname="Mo Zanaty" initials="M." surname="Zanaty"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>

      <reference anchor="Zahed">
        <front>
          <title>Improving the Interactive Real-Time Video Communication with
          Network Provided Congestion Notification</title>

          <author fullname="Zaheduzzaman Sarker" initials="Z."
                  surname="Sarker"></author>

          <author fullname="Ingemar Johansson" initials="I."
                  surname="Johansson"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>

      <reference anchor="Keith">
        <front>
          <title>Congestion Control for Interactive Real-Time Flows on Today's
          Internet</title>

          <author fullname="Keith Winstein" initials="K." surname="Winstein"></author>

          <author fullname="Anirudh Sivaraman" initials="A."
                  surname="Sivaraman"></author>

          <author fullname="Hari Balakrishnan" initials="H."
                  surname="Balakrishnan"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>

      <reference anchor="JDNK12">
        <front>
          <title>Harsh RED: Improving RED for Limited Aggregate
          Traffic</title>

          <author fullname="Ilpo Jarvinen" initials="I." surname="Jarvinen"></author>

          <author fullname="Aaron Yi Ding" initials="A." surname="Ding"></author>

          <author fullname="A. Nyrhinen" initials="A." surname="Nyrhinen"></author>

          <author fullname="Markku Kojo" initials="M." surname="Kojo"></author>

          <date month="March" year="2012" />
        </front>

        <seriesInfo name="In Proceedings of the 26th IEEE International Conference on Advanced Information Networking and Applications (AINA 2012)"
                    value="" />
      </reference>

      <reference anchor="comments">
        <front>
          <title>Comments on Bufferbloat</title>

          <author fullname="Mark Allman" initials="M." surname="Allman"></author>

          <date month="Jan." year="2013" />
        </front>

        <seriesInfo name="In SIGCOMM Comput. Commun. Rev. 43, 1, pp. 30 - 37,"
                    value="URL: http://doi.acm.org/10.1145/2427036.2427041" />
      </reference>

      <reference anchor="bauer-ecn">
        <front>
          <title>Measuring the state of ECN readiness in servers, clients,and
          routers</title>

          <author fullname="Steven Bauer" initials="S." surname="Bauer"></author>

          <author fullname="Robert Beverly" initials="R." surname="Beverly"></author>

          <author fullname="Arthur Berger" initials="A." surname="Berger"></author>

          <date month="Feb." year="2011" />
        </front>

        <seriesInfo name=" In Proceedings of the 2011 ACM SIGCOMM conference on Internet measurement conference (IMC '11). ACM, New York, NY, USA, pp. 171 - 180,"
                    value="URL: http://doi.acm.org/10.1145/2068816.2068833" />
      </reference>

      <reference anchor="dctcp">
        <front>
          <title>Data center TCP (DCTCP)</title>

          <author fullname="Mohammad Alizadeh" initials="S." surname="Bauer"></author>

          <author fullname="Albert Greenberg" initials="A."
                  surname="Greenberg"></author>

          <author fullname="David A. Maltz" initials="D." surname="Maltz"></author>

          <author fullname="Jitendra Padhye" initials="J." surname="Padhye"></author>

          <author fullname="Parveen Patel" initials="P." surname="Patel"></author>

          <author fullname="Balaji Prabhakar" initials="B."
                  surname="Prabhakar"></author>

          <author fullname="Sudipta Sengupta" initials="S." surname="Sengupta"></author>

          <author fullname="Murari Sridharan" initials="M."
                  surname="Sridharan"></author>

          <date month="Aug." year="2010" />
        </front>

        <seriesInfo name="In Proceedings of the ACM SIGCOMM 2010 conference (SIGCOMM '10), New York, NY, USA, pp. 63-74,"
                    value="URL: http://doi.acm.org/10.1145/1851182.1851192" />
      </reference>

      <reference anchor="Markku">
        <front>
          <title>Impact of TCP on Interactive Real-Time Communication</title>

          <author fullname="Ilpo Jarvinen" initials="I." surname="Jarvinen"></author>

          <author fullname="Binoy Chemmagate" initials="B."
                  surname="Chemmagate"></author>

          <author fullname="Laila Daniel" initials="L." surname="Daniel"></author>

          <author fullname="Aaron Yi Ding" initials="A." surname="Ding"></author>

          <author fullname="Markku Kojo" initials="M." surname="Kojo"></author>

          <author fullname="Markus Isomaki" initials="M." surname="Isomaki"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>

      <reference anchor="Cullen">
        <front>
          <title>Vendors Considered Harmfull</title>

          <author fullname="Cullen Jennings" initials="C." surname="Jennings"></author>

          <author fullname="Suhas Nandakumar" initials="S."
                  surname="Nandakumar"></author>

          <author fullname="Hein Phan" initials="H." surname="Phan"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>

      <reference anchor="Michael">
        <front>
          <title>One control to rule them all</title>

          <author fullname="Michael Welzl" initials="M." surname="Welzl"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>

      <reference anchor="John">
        <front>
          <title>There is No Magic Transport Wand</title>

          <author fullname="John Leslie" initials="J." surname="Leslie"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>

<!--      <reference anchor="Matt">
        <front>
          <title>Position paper on CC for Interactive RT</title>

          <author fullname="Matt Mathis" initials="M." surname="Mathis"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>
-->
      <reference anchor="Jim">
        <front>
          <title>Bufferbloat: Dark Buffers in the Internet</title>

          <author fullname="Jim Gettys" initials="J." surname="Gettys"></author>

          <author fullname="Jim Gettys" initials="J." surname="Gettys"></author>

          <date month="May/June" year="2011" />
        </front>

        <seriesInfo name="IEEE Internet Computing, 15, pp. 95 - 96" value="" />
      </reference>

      <reference anchor="Feng">
        <front>
          <title>The BLUE Active Queue Management Algorithm</title>

          <author fullname="Wu-Chang Feng" initials="W." surname="Feng"></author>

          <author fullname="Kang G. Shin" initials="K." surname="Shin"></author>

          <author fullname="Dilip D. Kandlur" initials="D." surname="Kandlur"></author>

          <author fullname="Debanjan Saha" initials="D." surname="Saha"></author>

          <date month="August" year="2002" />
        </front>

        <seriesInfo name="In IEEE/ACM Transactions on Networking, 10(4), pp. 513 - 528"
                    value="" />
      </reference>

      <reference anchor="ippm">
        <front>
          <title>IETF IP Performance Metrics (ippm) Working Group</title>

          <author fullname="IETF" initials="" surname="IETF"></author>

          <date month="Jan." year="2012" />
        </front>

        <format target="http://datatracker.ietf.org/wg/ippm/charter/"
                type="HTML" />
      </reference>

      <reference anchor="rmcat">
        <front>
          <title>IETF RTP Media Congestion Avoidance Techniques (rmcat)
          Working Group</title>

          <author fullname="IETF" initials="" surname="IETF"></author>

          <date month="Jan." year="2012" />
        </front>

        <format target="http://datatracker.ietf.org/wg/rmcat/charter/"
                type="HTML" />
      </reference>

      <reference anchor="aqm">
        <front>
          <title>IETF Active Queue Management and Packet Scheduling (aqm)
          Working Group</title>

          <author fullname="IETF" initials="" surname="IETF"></author>

          <date month="Sep." year="2013" />
        </front>

        <format target="http://datatracker.ietf.org/wg/aqm/charter/"
                type="HTML" />
      </reference>

      <reference anchor="GN2012">
        <front>
          <title>Bufferbloat: Dark Buffers in the Internet</title>

          <author fullname="Jim Gettys" initials="J." surname="Gettys"></author>

          <author fullname="Kathleen Nichols" initials="K." surname="Nichols"></author>

          <date month="Jan." year="2012" />
        </front>

        <seriesInfo name="Communications of the ACM, Vol. 55 No. 1, Pages 57 - 65,"
                    value="URL: http://cacm.acm.org/magazines/2012/1/144810-bufferbloat/" />

        <format target="http://cacm.acm.org/magazines/2012/1/144810-bufferbloat/"
                type="HTML" />
      </reference>

      <reference anchor="pathchar">
        <front>
          <title>pathchar - a tool to infer characteristics of Internet
          paths</title>

          <author fullname="Van Jacobson" initials="V." surname="Jacobson"></author>

          <date month="April" year="1997" />
        </front>

        <seriesInfo name="Presented at the Mathematical Sciences Research Institute,"
                    value="Slides available from: ftp://ftp.ee.lbl.gov/pathchar/" />

        <format target="ftp://ftp.ee.lbl.gov/pathchar/" type="FTP" />
      </reference>

      <reference anchor="sfq">
        <front>
          <title>Stochastic Fairness Queuing</title>

          <author fullname="Paul McKenney" initials="P." surname="McKenney"></author>

          <date month="June" year="1990" />
        </front>

        <seriesInfo name="In IEEE INFOCOM'90 Proceedings, pp. 733 - 740"
                    value="" />
      </reference>

      <reference anchor="Bufferbloat">
        <front>
          <title>Bufferbloat</title>

          <author fullname="Wikipedia" initials="" surname="Wikipedia"></author>

          <date month="Jan." year="2012" />
        </front>

        <seriesInfo name=""
                    value="URL: http://en.wikipedia.org/wiki/Bufferbloat" />

        <format target="http://en.wikipedia.org/wiki/Bufferbloat" type="HTML" />
      </reference>

      <reference anchor="video-frames">
        <front>
          <title>Video compression picture types</title>

          <author fullname="Wikipedia" initials="" surname="Wikipedia"></author>

          <date month="Jan." year="2012" />
        </front>

        <seriesInfo name=""
                    value="URL: http://en.wikipedia.org/wiki/Video_compression_picture_types" />

        <format target="http://en.wikipedia.org/wiki/Video_compression_picture_types"
                type="HTML" />
      </reference>


  <reference anchor="FCC">
        <front>
          <title>Methodology - Measuring Broadband America July Report 2012</title>

          <author fullname="FCC" initials="" surname="FCC"></author>

          <date month="July" year="2012" />
        </front>

        <seriesInfo name=""
                    value="URL: http://www.fcc.gov/measuring-broadband-america/2012/methodology-july-report-2012" />

        <format target="http://www.fcc.gov/measuring-broadband-america/2012/methodology-july-report-2012"
                type="HTML" />
      </reference>


  <reference anchor="lmap">
        <front>
          <title>Large Scale Measurement of Access network Performance (lmap) Mailing List</title>

          <author fullname="IETF" initials="" surname="IETF"></author>

          <date year="2012" />
        </front>

        <seriesInfo name=""
                    value="URL: https://www.ietf.org/mailman/listinfo/lmap" />

        <format target="https://www.ietf.org/mailman/listinfo/lmap"
                type="HTML" />
      </reference>



      <reference anchor="Stefan">
        <front>
          <title>On Fairness, Delay and Signaling of Different Approaches to
          Real-time Congestion Control</title>

          <author fullname="Stefan Holmer" initials="S." surname="Holmer"></author>

          <date day="28" month="July" year="2012" />
        </front>

        <seriesInfo name="IAB / IRTF Workshop on Congestion Control for Interactive Real-Time Communication"
                    value="" />
      </reference>
    </references>

    <section anchor="app-program" title="Program Committee">
      <t>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.</t>
    </section>

    <section anchor="app-material" title="Workshop Material">
      <t><list style="symbols">
          <t>Main Workshop Page:
          http://www.iab.org/activities/workshops/cc-workshop/</t>

          <t>Position Papers:
          http://www.iab.org/activities/workshops/cc-workshop/papers/</t>

          <t>Slides:
          http://www.iab.org/activities/workshops/cc-workshop/slides/</t>
        </list></t>
    </section>

    <section anchor="app-papers" title="Accepted Position Papers">
      <t><list style="numbers">
          <t>"One control to rule them all" by Michael Welzl</t>

          <t>"Congestion Avoidance Through Deterministic" by Pier Luca
          Montessoro, Riccardo Bernardini, Franco Blanchini, Daniele
          Casagrande, Mirko Loghi, and Stefan Wieser</t>

          <t>"Congestion Control in Real Time Media - Context" by Harald
          Alvestrand</t>

          <t>"Improving the Interactive Real-Time Video Communication with
          Network Provided Congestion Notification" by ANM Zaheduzzaman
          Sarker, Ingemar Johansson</t>

          <t>"Multiparty Requirements in Congestion Control for Real-Time
          Interactive Media" by Magnus Westerlund</t>

          <t>"On Fairness, Delay and Signaling of Different Approaches to
          Real-time Congestion Control" by Stefan Holmer</t>

          <t>"RTP Congestion Control and RTCWeb Application Feedback" by Ted
          Hardie</t>

          <t>"Issues with Using Packet Delays and Inter-arrival Times for
          Inference of Internet Congestion" by Wesley M. Eddy</t>

          <t>"Impact of TCP on Interactive Real-Time Communication" by Ilpo
          Jarvinen, Binoy Chemmagate, Laila Daniel, Aaron Yi Ding, Markku
          Kojo, and Markus Isomaki</t>

          <t>"Security Concerns For RTCWeb Congestion Control" by Dan York</t>

          <t>"Vendors Considered Harmfull" by Cullen Jennings, Suhas
          Nandakumar, and Hein Phan</t>

          <t>"Network-Assisted Dynamic Adaptation" by Xiaoqing Zhu and Rong
          Pan</t>

          <t>"Congestion Control for Interactive Real-Time Applications" by
          Sanjeev Mehrotra, and Jin Li</t>

          <t>"There is No Magic Transport Wand" by John Leslie</t>

          <t>"Towards Adaptive Congestion Management for Interactive Real-Time
          Communications" by Dirk Kutscher, and Miriam Kuehlewind</t>

          <t>"Enlarge the pre-congestion spectrum usage?" by Xavier Marjou,
          and Emile Stephan</t>

          <t>"Congestion control for users who don't have first-class internet
          access" by Maire Reavy</t>

          <t>"Realtime Congestion Challenges" by Randell Jesup</t>

          <t>"Congestion Control for Interactive Media: Control Loops &amp;
          APIs" by Varun Singh, Joerg Ott, and Colin Perkins</t>

          <t>"Some Notes on Threat Modelling Congestion Management" by Eric
          Rescorla</t>

          <t>"Timely Detection of Lost Packets" by Ali C. Begen</t>

          <t>"Congestion Control Considerations for Data Channels" by Michael
          Tuexen</t>

          <t>"Position paper on CC for Interactive RT" by Matt Mathis</t>

          <t>"Overall Considerations for Congestion Control" by M. Zanaty, B.
          VerSteeg, B. Christensen, D. Benham, A. Romanow</t>

          <t>"Fairness Considerations for Congestion Control" by Mo Zanaty</t>

          <t>"Media is not Data: The Meaning of Fairness for Competing
          Multimedia Flows" by Timothy B. Terriberry</t>

          <t>"Thoughts on Real-Time Congestion Control" by Murari
          Sridharan</t>

          <t>"Congestion Control for Interactive Real-Time Flows on Today's
          Internet" by Keith Winstein, Anirudh Sivaraman, and Hari
          Balakrishnan</t>

          <t>"Congestion Control Principles for CoAP" by Carsten Bormann,
          Klaus Hartke</t>

          <t>"Erasure Coding and Congestion Control for Interactive Real-Time
          Communication" by Pierre-Ugo Tournoux, Tuan Tran Thai, Emmanuel
          Lochin, Jerome Lacan, Vincent Roca</t>

          <t>"Video Conferencing Specific Considerations for RTP Congestion
          Control" by Stephen Botzko and Mary Barnes</t>

          <t>"The Internet is Broken, and How to Fix It" by Jim Gettys</t>

          <t>"Deployment Considerations for Congestion Control in Real-Time
          Interactive Media Systems" by Jari Arkko</t>
        </list></t>
    </section>

    <section anchor="app-participants" title="Workshop Participants">
      <t>We would like to thank the following workshop participants for
      attending the workshop: <list style="symbols">
          <t>Mat Ford</t>

          <t>Bernard Aboba</t>

          <t>Alissa Cooper</t>

          <t>Mary Barnes</t>

          <t>Lars Eggert</t>

          <t>Harald Alvestrand</t>

          <t>Gonzalo Camarillo</t>

          <t>Robert Sparks</t>

          <t>Cullen Jennings</t>

          <t>Dirk Kutscher</t>

          <t>Carsten Bormann</t>

          <t>Michael Welzl</t>

          <t>Magnus Westerlund</t>

          <t>Colin Perkins</t>

          <t>Murari Sridharan</t>

          <t>Klaus Hartke</t>

          <t>Pier Luca Montessoro</t>

          <t>Xavier Marjou</t>

          <t>Vincent Roca</t>

          <t>Wes Eddy</t>

          <t>Ali C. Begen</t>

          <t>Mo Zanaty</t>

          <t>Jin Li</t>

          <t>Dave Thaler</t>

          <t>Bob Briscoe</t>

          <t>Barry Leiba</t>

          <t>Jari Arkko</t>

          <t>Stewart Bryant</t>

          <t>Martin Stiemerling</t>

          <t>Russ Housley</t>

          <t>Marc Blanchet</t>

          <t>Zaheduzzaman Sarker</t>

          <t>Xiaoqing Zhu</t>

          <t>Randell Jesup</t>

          <t>Eric Rescorla</t>

          <t>Suhas Nandakumar</t>

          <t>Hannes Tschofenig</t>

          <t>Bill VerSteeg</t>

          <t>Sean Turner</t>

          <t>Keith Winstein</t>

          <t>Jon Peterson</t>

          <t>Maire Reavy</t>

          <t>Michael Tuexen</t>

          <t>Stefan Holmer</t>

          <t>Joerg Ott</t>

          <t>Timothy Terriberry</t>

          <t>Benoit Claise</t>

          <t>Ted Hardie</t>

          <t>Stephen Botzko</t>

          <t>Matt Mathis</t>

          <t>David Benham</t>

          <t>Jim Gettys</t>

          <t>Spencer Dawkins</t>

          <t>Sanjeev Mehrotra</t>

          <t>Adrian Farrel</t>

          <t>Greg White</t>

          <t>Markku Kojo</t>
        </list></t>

      <t>We also had remote participants, namely <list style="symbols">
          <t>Emmanuel Lochin</t>

          <t>Mark Handley</t>

          <t>Anirudh Sivaraman</t>

          <t>John Leslie</t>

          <t>Varun Singh</t>
        </list></t>
    </section>
  </back>
</rfc>
