Re: [rtcweb] An input for discussing congestion control (Fwd: New Version Notification for draft-alvestrand-rtcweb-congestion-00.txt)

Jim Gettys <> Wed, 21 September 2011 13:41 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 13BBB21F8CC0 for <>; Wed, 21 Sep 2011 06:41:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -3.598
X-Spam-Status: No, score=-3.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id DQTsqde0pQzN for <>; Wed, 21 Sep 2011 06:41:26 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id EB87A21F8C9E for <>; Wed, 21 Sep 2011 06:41:25 -0700 (PDT)
Received: by qyk33 with SMTP id 33so1784840qyk.10 for <>; Wed, 21 Sep 2011 06:43:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=sender:message-id:date:from:organization:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type; bh=h4HXIG+sjryH9KidRYbeE9f1xLn5tMSnPMBdOG6o+UE=; b=KzDxupOiSuj3k87N0JcrECvprobmonezEcI4NP2XM+onuBu8/fL7YQ1JXXDpm7mfDL EoMnDltf1EMe1Y16ZeZqKSXCIJjBrvmMLTb7TWmw6cvQvtthWynGL4gtzzNjQrsQVGHd cN6ssxPo6LjJ3vwkbrPG1wSzeMDRmOgXGwrwQ=
Received: by with SMTP id d2mr572228qcj.130.1316612634143; Wed, 21 Sep 2011 06:43:54 -0700 (PDT)
Received: from [] ( []) by with ESMTPS id cc12sm4915786qab.16.2011. (version=SSLv3 cipher=OTHER); Wed, 21 Sep 2011 06:43:53 -0700 (PDT)
Sender: Jim Gettys <>
Message-ID: <>
Date: Wed, 21 Sep 2011 09:43:50 -0400
From: Jim Gettys <>
Organization: Bell Labs
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:6.0.2) Gecko/20110906 Thunderbird/6.0.2
MIME-Version: 1.0
To: Randell Jesup <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Content-Type: multipart/alternative; boundary="------------090004020604090401020108"
Subject: Re: [rtcweb] An input for discussing congestion control (Fwd: New Version Notification for draft-alvestrand-rtcweb-congestion-00.txt)
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 21 Sep 2011 13:41:27 -0000

On 09/21/2011 09:28 AM, Randell Jesup wrote:
> On 9/21/2011 4:23 AM, Harald Alvestrand wrote:
>> I think receiver->sender reporting every RTT (or every packet, which
>> is frequently less frequent) is overkill, but that's a statement with
>> a lot of gut feeling and very few numbers behind it.
>> One advantage we have in RTCWEB is that we can assume that if audio
>> and video work OK across the network, we're in a good place. We don't
>> have to worry about getting gigabyte file transfers to utilize 90% of
>> the link - even thogh we have to worry about audio and video
>> functioning while those gigabyte transfers are taking place.
> Agreed.  Also, in practice the TCP flows we're competing with are
> rarely long-lived
> high-bandwidth flows like GB file transfers.  Normally they're
> flurries of short-lived TCP
> (which is important to consider since these short-lived flows can
> suddenly cause buffering
> without warning).

You get to deal with some of each. Both cause havoc in the face of
bufferbloat.  The long lived flows keep the buffers in your OS/Home
router/broadband gear near full, inserting lots of delay.  This includes
doing backups (local or remote), uploading videos, downloading videos to
disk, bittorrent, etc. The netalyzr data is quite grim, particularly
when you realise it's a lower bound on the problem (the netalyzr test is
sensitive to cross traffic and more importantly, tops out by the time it
gets to 20Mbps).

As far as the transient bufferbloat problem caused by web traffic, and
why IW10 is a problem in my view at this time, see:

> As for 1 feedback/RTT, I agree.  And if you wanted to use one
> feedback/RTT, I'd put the feedback in
> a TCP header extension or design an RTP equivalent that can carry it
> in the reverse-direction
> media flow (when available).  But that's a different argument.
I like timestamps, if only to make it easy to tell the user: you are
losing, and it's because of your broken network.

For TCP, the TCP timestamp option is on by default in Linux, and I think
may be on by default on other modern systems (anyone have any data?).
                        - Jim

Other protocols may not be so nice.