Re: [tcpm] Increasing the Initial Window - Notes

Jerry Chu <hkchu@google.com> Wed, 17 November 2010 18:13 UTC

Return-Path: <hkchu@google.com>
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 8E2B83A6912 for <tcpm@core3.amsl.com>; Wed, 17 Nov 2010 10:13:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.675
X-Spam-Level:
X-Spam-Status: No, score=-105.675 tagged_above=-999 required=5 tests=[AWL=0.302, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tV6WNKIp3FMB for <tcpm@core3.amsl.com>; Wed, 17 Nov 2010 10:13:00 -0800 (PST)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id 78F4E3A6947 for <tcpm@ietf.org>; Wed, 17 Nov 2010 10:13:00 -0800 (PST)
Received: from kpbe11.cbf.corp.google.com (kpbe11.cbf.corp.google.com [172.25.105.75]) by smtp-out.google.com with ESMTP id oAHIDjZa031132 for <tcpm@ietf.org>; Wed, 17 Nov 2010 10:13:45 -0800
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1290017625; bh=FHm8xP/lR4NHDhVzjre6msb6eMc=; h=MIME-Version:In-Reply-To:References:Date:Message-ID:Subject:From: To:Cc:Content-Type:Content-Transfer-Encoding; b=fPNGLT5kEI7yfaE/zl6pxB9XwlXu0sVmPQloTWqPDMGwjK1sWSrXyOvbcQavECzMj Sy4pHDOpGdJp3mIvylnCA==
Received: from gxk23 (gxk23.prod.google.com [10.202.11.23]) by kpbe11.cbf.corp.google.com with ESMTP id oAHIDha0019691 for <tcpm@ietf.org>; Wed, 17 Nov 2010 10:13:44 -0800
Received: by gxk23 with SMTP id 23so1289973gxk.19 for <tcpm@ietf.org>; Wed, 17 Nov 2010 10:13:43 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=V7yjCLIdIl/uVp8XIPZpN+8xToWMMe/4sxhV5ZKPhNs=; b=gpqld0TrclM4DMwvrWTrluVYjXevvh1fT45vDeeBG+ry0mk2R+J3gZuQ4cS0pp3ugp pNPD5k75adOc1MfhR4Qg==
DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=J2MuF/DKLjO8lkWDwBpuVazTAdxQbGbAac8IWapw9pJLmc8mM070cVHjTpSAulmuO7 XlnW51YWWS9n75dfMXNA==
MIME-Version: 1.0
Received: by 10.150.92.7 with SMTP id p7mr9470626ybb.405.1290017623169; Wed, 17 Nov 2010 10:13:43 -0800 (PST)
Received: by 10.151.158.13 with HTTP; Wed, 17 Nov 2010 10:13:42 -0800 (PST)
In-Reply-To: <AANLkTinHvFGFyYvmoignyKidO93_e13QCnMj+pTRH_ud@mail.gmail.com>
References: <20101110152857.GA5094@hell> <AANLkTi=RzbPbVRDQh7y-ydY-P7H16wDri=8EtXP5QuV3@mail.gmail.com> <20101111012453.GB2691@hell> <29E76BE6-32D9-45AD-85A1-791DAADDE520@ifi.uio.no> <AANLkTik69zRJ7XcWK7ZKCYaHPP0=Z6hnhP1SUnYP=d=8@mail.gmail.com> <824FC88F-4877-45DC-AFD9-E5272ACD7C3E@ifi.uio.no> <4CDBCA4E.8000705@tlc.polito.it> <9C745827-D861-45D0-B096-AFC3E4FE5182@ifi.uio.no> <AANLkTinMKHVf_HAQ-YT8K-Tq9jdmpqQXdgnQyS8+gAcd@mail.gmail.com> <AANLkTinHvFGFyYvmoignyKidO93_e13QCnMj+pTRH_ud@mail.gmail.com>
Date: Wed, 17 Nov 2010 10:13:42 -0800
Message-ID: <AANLkTin4wbqnz6AThpXfm2EA7FmZkmA4utWN0x=r7hy6@mail.gmail.com>
From: Jerry Chu <hkchu@google.com>
To: John Heffner <johnwheffner@gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-System-Of-Record: true
Cc: tcpm <tcpm@ietf.org>, tmrg <tmrg-interest@icsi.berkeley.edu>
Subject: Re: [tcpm] Increasing the Initial Window - Notes
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/tcpm>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Nov 2010 18:13:01 -0000

[sorry I'm trying to catchup while on vacation]

On Mon, Nov 15, 2010 at 7:45 PM, John Heffner <johnwheffner@gmail.com> wrote:
> On Thu, Nov 11, 2010 at 5:56 PM, Jerry Chu <hkchu@google.com> wrote:
>> On Thu, Nov 11, 2010 at 2:58 AM, Michael Welzl <michawe@ifi.uio.no> wrote:
>>>
>>> On Nov 11, 2010, at 11:49 AM, Marco Mellia wrote:
>>>
>>>>
>>>>
>>>>>> I certainly won't object to this, if that's all it takes for
>>>>>> standardization. Unfortunately the
>>>>>> point for the non-convinced is they don't want ANY flows to use IW10
>>>>>> for fear of hurting
>>>>>> the performance of their flows.
>>>>>
>>>>> ... but here, your "browsers open tens of flows" argument totally holds.
>>>>> How is a web flow with IW10 worse than a browser opening tens of flows? If
>>>>> people only use it for the web, like Google has been successfully doing,
>>>>> this seems to be quite safe, based on experience.
>>>>>
>>>>> I'm curious what the opposition says to this  :)
>>>>
>>>> If today a brower opens 10 flows with a server using IW=1 you gets 10
>>>> packets equivalent IW.
>>>> Increasing the IW to 10 leads to an equivalent IW of 100 packets. At that
>>>> point, you DSL modem will definitively start dropping most of them...
>>>
>>> ... which is a good reason to open fewer connections. So that's a matter
>>> of bringing of bringing out an update of a web client with a different
>>> behavior for the case that a web server uses a larger IW. But how does the
>>> web browser know what the web server is doing? I guess they could exchange
>>> this information with HTTP. Hm. Are we getting somewhere here, or is this a
>>> dead end?
>>
>> One solution to safely migrate to IW10 for browsers opening multiple
>> connections is to mandate browsers that open X connections, when X is, e.g.,
>>> 4 to set the initial receive window to 3 (assuming OSes allow initrwnd to
>> be set on a per connection basis). But I don't know how this can be
>> enforced...
>> Jerry
>
>
> I'm not a Googler, so you probably have better insight into this than
> I do, but my impression is that one big reason (if not the *primary*
> reason) browsers open multiple connections is being able to submit
> requests in parallel.  HTTP pipelining can help some, but (a) most
> browsers disable this because of some buggy and widely deployed
> servers, and (b) it is still susceptible to head-of-line blocking on
> responses.  Might limiting the number of simultaneous connections
> based on IW hurt more than it helps?
>
> The solution would seem to be shared congestion state on the server.
> Like the "congestion manager" (http://nms.lcs.mit.edu/cm/), or using
> multiple channels in SCTP.  Of course, this may not be practical with
> a lot of load-balancing systems.

The various points you raised above have been covered in our earlier
slides and/or discussed on the list. The following is a short summary
for you:

1. Browsers requires multiple connections to schedule web object downloads
in parallel to get the best user experience, much like a multi-threaded
application requires a multi-core CPU to run well. TCP's small IW is one
important but not the only reason for simultaneous connections. Avoiding
HOLB is another.

2. The # of simultaneous connections by all popular browsers have
continued to increase in the past few years. By increasing IW we hope
to reverse this trend because with a much large IW the browser won't
need that many connections to get the best user experience.

3. The solutions you've mentioned above are well understood on paper
and not deployed for various reasons. Also they would require an even
larger IW to work well.

Best,

Jerry

>
> Thanks,
>  -John
>