RE: HTTP/2 and TCP CWND

Gabriel Montenegro <Gabriel.Montenegro@microsoft.com> Mon, 15 April 2013 18:11 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3375021F961C for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 15 Apr 2013 11:11:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.466
X-Spam-Level:
X-Spam-Status: No, score=-7.466 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8, UNRESOLVED_TEMPLATE=3.132]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id AM-LBQBaAdSZ for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 15 Apr 2013 11:11:41 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 7A3E021F960D for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 15 Apr 2013 11:11:41 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1URnre-0006oP-U1 for ietf-http-wg-dist@listhub.w3.org; Mon, 15 Apr 2013 18:10:50 +0000
Resent-Date: Mon, 15 Apr 2013 18:10:50 +0000
Resent-Message-Id: <E1URnre-0006oP-U1@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <Gabriel.Montenegro@microsoft.com>) id 1URnrY-0006mV-Ce for ietf-http-wg@listhub.w3.org; Mon, 15 Apr 2013 18:10:44 +0000
Received: from mail-bl2lp0203.outbound.protection.outlook.com ([207.46.163.203] helo=na01-bl2-obe.outbound.protection.outlook.com) by maggie.w3.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from <Gabriel.Montenegro@microsoft.com>) id 1URnrU-0003ue-CP for ietf-http-wg@w3.org; Mon, 15 Apr 2013 18:10:44 +0000
Received: from BY2FFO11FD018.protection.gbl (10.1.15.200) by BY2FFO11HUB034.protection.gbl (10.1.14.118) with Microsoft SMTP Server (TLS) id 15.0.664.0; Mon, 15 Apr 2013 18:10:06 +0000
Received: from TK5EX14HUBC102.redmond.corp.microsoft.com (131.107.125.37) by BY2FFO11FD018.mail.protection.outlook.com (10.1.14.106) with Microsoft SMTP Server (TLS) id 15.0.675.0 via Frontend Transport; Mon, 15 Apr 2013 18:10:37 +0000
Received: from ch1outboundpool.messaging.microsoft.com (157.54.51.112) by mail.microsoft.com (157.54.7.154) with Microsoft SMTP Server (TLS) id 14.2.318.3; Mon, 15 Apr 2013 18:09:48 +0000
Received: from mail150-ch1-R.bigfish.com (10.43.68.232) by CH1EHSOBE011.bigfish.com (10.43.70.61) with Microsoft SMTP Server id 14.1.225.23; Mon, 15 Apr 2013 18:07:28 +0000
Received: from mail150-ch1 (localhost [127.0.0.1]) by mail150-ch1-R.bigfish.com (Postfix) with ESMTP id 451F73E09B2 for <ietf-http-wg@w3.org.FOPE.CONNECTOR.OVERRIDE>; Mon, 15 Apr 2013 18:07:28 +0000 (UTC)
X-Forefront-Antispam-Report-Untrusted: CIP:157.56.240.21; KIP:(null); UIP:(null); (null); H:BL2PRD0310HT001.namprd03.prod.outlook.com; R:internal; EFV:INT
X-SpamScore: -2
X-BigFish: PS-2(zzbb2dI98dI9371Ic85fh4015Izz1f42h1fc6h1ee6h1de0h1fdah1202h1e76h1d1ah1d2ahzz17326ah18c673h8275bh8275dh8275chz31h2a8h668h839hd24hf0ah1288h12a5h12bdh137ah1441h1504h1537h153bh162dh1631h1758h18e1h1946h19b5h19ceh1ad9h1b0ah1bceh9a9j1155h)
Received-SPF: softfail (mail150-ch1: transitioning domain of microsoft.com does not designate 157.56.240.21 as permitted sender) client-ip=157.56.240.21; envelope-from=Gabriel.Montenegro@microsoft.com; helo=BL2PRD0310HT001.namprd03.prod.outlook.com ; .outlook.com ;
X-Forefront-Antispam-Report-Untrusted: SFV:SKI; SFS:; DIR:OUT; SFP:; SCL:-1; SRVR:BN1PR03MB236; H:BN1PR03MB072.namprd03.prod.outlook.com; LANG:en;
Received: from mail150-ch1 (localhost.localdomain [127.0.0.1]) by mail150-ch1 (MessageSwitch) id 1366049245817691_18356; Mon, 15 Apr 2013 18:07:25 +0000 (UTC)
Received: from CH1EHSMHS032.bigfish.com (snatpool2.int.messaging.microsoft.com [10.43.68.231]) by mail150-ch1.bigfish.com (Postfix) with ESMTP id C3B8C40004A; Mon, 15 Apr 2013 18:07:25 +0000 (UTC)
Received: from BL2PRD0310HT001.namprd03.prod.outlook.com (157.56.240.21) by CH1EHSMHS032.bigfish.com (10.43.70.32) with Microsoft SMTP Server (TLS) id 14.1.225.23; Mon, 15 Apr 2013 18:07:25 +0000
Received: from BN1PR03MB236.namprd03.prod.outlook.com (10.255.200.28) by BL2PRD0310HT001.namprd03.prod.outlook.com (10.255.97.36) with Microsoft SMTP Server (TLS) id 14.16.299.2; Mon, 15 Apr 2013 18:07:25 +0000
Received: from BN1PR03MB072.namprd03.prod.outlook.com (10.255.225.156) by BN1PR03MB236.namprd03.prod.outlook.com (10.255.200.28) with Microsoft SMTP Server (TLS) id 15.0.670.13; Mon, 15 Apr 2013 18:07:23 +0000
Received: from BN1PR03MB072.namprd03.prod.outlook.com ([169.254.10.181]) by BN1PR03MB072.namprd03.prod.outlook.com ([169.254.10.181]) with mapi id 15.00.0670.000; Mon, 15 Apr 2013 18:07:23 +0000
From: Gabriel Montenegro <Gabriel.Montenegro@microsoft.com>
To: Roberto Peon <grmocg@gmail.com>, "Simpson, Robby (GE Energy Management)" <robby.simpson@ge.com>
CC: Eliot Lear <lear@cisco.com>, Robert Collins <robertc@squid-cache.org>, Jitu Padhye <padhye@microsoft.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>, "Brian Raymor (MS OPEN TECH)" <Brian.Raymor@microsoft.com>, Rob Trace <Rob.Trace@microsoft.com>, Dave Thaler <dthaler@microsoft.com>, Martin Thomson <martin.thomson@skype.net>, "Eggert, Lars" <lars@netapp.com>, Martin Stiemerling <martin.stiemerling@neclab.eu>
Thread-Topic: HTTP/2 and TCP CWND
Thread-Index: Ac4u/JrxD8HEzB3rR8CdUf/Gdhfe2wAColQAAADGCYAAANjQAAIugYQQAHNvHAAAFR2MAAAAqK4AAAWKg+A=
Date: Mon, 15 Apr 2013 18:07:23 +0000
Message-ID: <cf53405c48dc431693573a9148776c8a@BN1PR03MB072.namprd03.prod.outlook.com>
References: <516B8824.8040904@cisco.com> <DF8F6DB7E5D58B408041AE4D927B2F48CBB88103@CINURCNA14.e2k.ad.ge.com> <CAP+FsNfeUtKfOMPKriYP7Ak_YzsjEFKvprJOAQaxYP7_BxTBsw@mail.gmail.com>
In-Reply-To: <CAP+FsNfeUtKfOMPKriYP7Ak_YzsjEFKvprJOAQaxYP7_BxTBsw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [24.17.62.250]
Content-Type: multipart/alternative; boundary="_000_cf53405c48dc431693573a9148776c8aBN1PR03MB072namprd03pro_"
MIME-Version: 1.0
X-OrganizationHeadersPreserved: BN1PR03MB236.namprd03.prod.outlook.com
X-FOPE-CONNECTOR: Id%0$Dn%*$RO%0$TLS%0$FQDN%$TlsDn%
X-FOPE-CONNECTOR: Id%59$Dn%W3.ORG$RO%2$TLS%6$FQDN%corpf5vips-237160.customer.frontbridge.com$TlsDn%
X-FOPE-CONNECTOR: Id%59$Dn%NETAPP.COM$RO%2$TLS%6$FQDN%corpf5vips-237160.customer.frontbridge.com$TlsDn%
X-FOPE-CONNECTOR: Id%59$Dn%NECLAB.EU$RO%2$TLS%6$FQDN%corpf5vips-237160.customer.frontbridge.com$TlsDn%
X-FOPE-CONNECTOR: Id%59$Dn%SQUID-CACHE.ORG$RO%2$TLS%6$FQDN%corpf5vips-237160.customer.frontbridge.com$TlsDn%
X-FOPE-CONNECTOR: Id%59$Dn%GMAIL.COM$RO%2$TLS%6$FQDN%corpf5vips-237160.customer.frontbridge.com$TlsDn%
X-FOPE-CONNECTOR: Id%59$Dn%GE.COM$RO%2$TLS%6$FQDN%corpf5vips-237160.customer.frontbridge.com$TlsDn%
X-FOPE-CONNECTOR: Id%59$Dn%CISCO.COM$RO%2$TLS%6$FQDN%corpf5vips-237160.customer.frontbridge.com$TlsDn%
X-CrossPremisesHeadersPromoted: TK5EX14HUBC102.redmond.corp.microsoft.com
X-CrossPremisesHeadersFiltered: TK5EX14HUBC102.redmond.corp.microsoft.com
X-Forefront-Antispam-Report: CIP:131.107.125.37; CTRY:US; IPV:CAL; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(199002)(189002)(479174001)(377454001)(164054002)(24454001)(6806002)(16236675002)(50986001)(47446002)(65816001)(15202345002)(31966008)(63696002)(56776001)(5343655001)(5343635001)(81342001)(56816002)(46102001)(54316002)(80022001)(5343645001)(77982001)(69226001)(33646001)(74662001)(51856001)(49866001)(18276755001)(18277545001)(74502001)(76482001)(53806001)(59766001)(564824004)(44976003)(66066001)(16676001)(47976001)(4396001)(71186001)(54356001)(512954001)(47736001)(20776003)(79102001)(81542001)(24736002); DIR:OUT; SFP:; SCL:1; SRVR:BY2FFO11HUB034; H:TK5EX14HUBC102.redmond.corp.microsoft.com; RD:InfoDomainNonexistent; A:1; MX:1; LANG:en;
X-OriginatorOrg: microsoft.onmicrosoft.com
X-Forefront-PRVS: 0817737FD1
Received-SPF: pass client-ip=207.46.163.203; envelope-from=Gabriel.Montenegro@microsoft.com; helo=na01-bl2-obe.outbound.protection.outlook.com
X-W3C-Hub-Spam-Status: No, score=-0.6
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, UNRESOLVED_TEMPLATE=1.252
X-W3C-Scan-Sig: maggie.w3.org 1URnrU-0003ue-CP ff768fd02b1ff704023da9fd6fe124be
X-Original-To: ietf-http-wg@w3.org
Subject: RE: HTTP/2 and TCP CWND
Archived-At: <http://www.w3.org/mid/cf53405c48dc431693573a9148776c8a@BN1PR03MB072.namprd03.prod.outlook.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17238
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

I agree that for *existing* issues we need advice and collaboration with the transport folks, and am glad Mark is looping them in.

Issue #65, however, is a *new* potential issue with transport, so we should simply not add it to the list of transport problems to solve.  In response to Mark, yes, this feature is marked as experimental. But experimental features are there, because presumably they might have a future within the spec if we judge it works well.

There are two problems with that in this case. (1) HTTPbis does not have the expertise to decide if any modification to TCP works well or not. Beyond layering violations, I'm talking about expertise. The folks who understand those TCP dynamics do not participate in the working group. Even if we decided that the experiment goes swimmingly, I don't believe the feature has any future in the spec. IESG would likely trip on it and not allow it anyways. Again, this is from my interaction off line as I said before, but I agree that it would be best to hear from transport folks directly.

That is why I'm saying this particular feature is not even worth experimenting with. Especially, if transport already has an RFC that provides an alternative.

From: Roberto Peon [mailto:grmocg@gmail.com]
Sent: Monday, 15 April, 2013 08:18
To: Simpson, Robby (GE Energy Management)
Cc: Eliot Lear; Gabriel Montenegro; Robert Collins; Jitu Padhye; ietf-http-wg@w3.org; Brian Raymor (MS OPEN TECH); Rob Trace; Dave Thaler; Martin Thomson; Eggert, Lars; Martin Stiemerling
Subject: Re: HTTP/2 and TCP CWND

One way or another, we will most certainly need significantly more interaction and thought between the Transport and Application groups with respect to this topic.
The fact that most sites end up with a CWND which is 36 times larger than the default (by opening up that many connections on average) means that the interaction between transport and application layer is totally broken today.
This really needs addressing, else all the wonderful pictures we have about separation of layers are already defunct and broken...

To be absolutely clear, the problem that Gabriel stated here is far less scary (it still converges, we rarely see large windows requested, we do see *smaller* windows requested) given the one connection of HTTP/2 that the current behavior is with the many connections of HTTP/1 as it exists today.
If the one connection of HTTP/2 fails to compete with the many of HTTP/1, implementors will "work around" this limitation and make things strictly worse for everyone.
-=R

On Mon, Apr 15, 2013 at 7:59 AM, Simpson, Robby (GE Energy Management) <robby.simpson@ge.com<mailto:robby.simpson@ge.com>> wrote:
At the risk of piling on, I'd like to elaborate (some of) my concerns with SETTINGS_CURRENT_CWND:

When I saw this thread start 2 weeks ago, I thought of replying with a simple "+1 layer violation".  However, I have seen the argument that "layers are lovely ways of thinking about things - but they aren't goals unto themselves" so I took some time to think about some problems this could cause.

User-land vs. Kernel-land - HTTP (and likely HTTP/2.0) is often (at least partially) implemented in user-land.  Most TCP implementations are implemented in "kernel-land".  From a pragmatic implementation approach, this could be problematic.  I'll grant that many parameters are passed from one layer to another, but in this case, where is the history or state preserved?  This could get nasty.  Bottom line, this does cross some typical implementation boundaries.

Multiple applications, threads, or whatever - If HTTP/2.0 is going to be tracking settings from previous flows, these settings will need to persist across multiple threads, processes, or whatever (where flow properties may differ - think caches) as well as different applications (I personally use multiple HTTP/1.1 applications simultaneously).

Other applications - While I recognize that HTTP/1.1 is a large contributor to TCP traffic, it is not the only application that uses TCP.  I realize we may all be excited with the optimizations we can provide as part of HTTP/2.0, but wouldn't it be better if all applications that use TCP could utilize these improvements?

Other TCP flavors - Most of my interest in HTTP/2.0 is in the embedded space.  Sometimes in the embedded space we use other TCP flavors and do various "weird" things.  I think this group would be best-served not having to consider all of those various scenarios and the impact that SETTINGS_CURRENT_CWND may have.

I'm quite glad that folks are thinking about ways to improve TCP flows.  I really hope that continues.  However, I'd suggest that work not occur here, but within the transport area, and that SETTINGS_CURRENT_CWND be removed from HTTP/2.0.

Thanks,
Robby



Robby Simpson, PhD

System Architect

GE Energy

Digital Energy

M: +1 404 219 1851

Robby.Simpson@GE.com<mailto:Robby.Simpson@GE.com>


From: Eliot Lear <lear@cisco.com<mailto:lear@cisco.com><mailto:lear@cisco.com<mailto:lear@cisco.com>>>
Date: Monday, April 15, 2013 12:55 AM
To: Gabriel Montenegro <Gabriel.Montenegro@microsoft.com<mailto:Gabriel.Montenegro@microsoft.com><mailto:Gabriel.Montenegro@microsoft.com<mailto:Gabriel.Montenegro@microsoft.com>>>
Cc: Roberto Peon <grmocg@gmail.com<mailto:grmocg@gmail.com><mailto:grmocg@gmail.com<mailto:grmocg@gmail.com>>>, Robert Collins <robertc@squid-cache.org<mailto:robertc@squid-cache.org><mailto:robertc@squid-cache.org<mailto:robertc@squid-cache.org>>>, Jitu Padhye <padhye@microsoft.com<mailto:padhye@microsoft.com><mailto:padhye@microsoft.com<mailto:padhye@microsoft.com>>>, "ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org><mailto:ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>>" <ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org><mailto:ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>>>, "Brian Raymor (MS OPEN TECH)" <Brian.Raymor@microsoft.com<mailto:Brian.Raymor@microsoft.com><mailto:Brian.Raymor@microsoft.com<mailto:Brian.Raymor@microsoft.com>>>, Rob Trace <Rob.Trace@microsoft.com<mailto:Rob.Trace@microsoft.com><mailto:Rob.Trace@microsoft.com<mailto:Rob.Trace@microsoft.com>>>, Dave Thaler <dthaler@microsoft.com<mailto:dthaler@microsoft.com><mailto:dthaler@microsoft.com<mailto:dthaler@microsoft.com>>>, Martin Thomson <martin.thomson@skype.net<mailto:martin.thomson@skype.net><mailto:martin.thomson@skype.net<mailto:martin.thomson@skype.net>>>, "Eggert, Lars" <lars@netapp.com<mailto:lars@netapp.com><mailto:lars@netapp.com<mailto:lars@netapp.com>>>, Martin Stiemerling <martin.stiemerling@neclab.eu<mailto:martin.stiemerling@neclab.eu><mailto:martin.stiemerling@neclab.eu<mailto:martin.stiemerling@neclab.eu>>>
Subject: Re: HTTP/2 and TCP CWND
Resent-From: <ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org><mailto:ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>>>
Resent-Date: Monday, April 15, 2013 12:55 AM


On 4/12/13 11:52 PM, Gabriel Montenegro wrote:
I've opened issue #65 to track what we should do about SETTINGS_CURRENT_CWND:
https://github.com/http2/http2-spec/issues/65

As for my opinion about what to do: I think we should delete this TCP congestion window setting from HTTP/2.0.

+1 for all the reasons Gabriel mentioned.

Eliot