Re: HTTP/2 and TCP CWND

Roberto Peon <grmocg@gmail.com> Mon, 15 April 2013 15:19 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 EE89921F8F4A for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 15 Apr 2013 08:19:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.598
X-Spam-Level:
X-Spam-Status: No, score=-10.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
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 SXbBQmxGh836 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Mon, 15 Apr 2013 08:19:46 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 8BA0721F8AD5 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Mon, 15 Apr 2013 08:19:46 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1URlBT-0007li-7z for ietf-http-wg-dist@listhub.w3.org; Mon, 15 Apr 2013 15:19:07 +0000
Resent-Date: Mon, 15 Apr 2013 15:19:07 +0000
Resent-Message-Id: <E1URlBT-0007li-7z@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1URlBL-0007ky-GI for ietf-http-wg@listhub.w3.org; Mon, 15 Apr 2013 15:18:59 +0000
Received: from mail-ob0-f170.google.com ([209.85.214.170]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1URlBG-00041e-7l for ietf-http-wg@w3.org; Mon, 15 Apr 2013 15:18:59 +0000
Received: by mail-ob0-f170.google.com with SMTP id x4so2009510obh.29 for <ietf-http-wg@w3.org>; Mon, 15 Apr 2013 08:18:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=PQT4Xv9EJFoTXJMMz1QjcmO53UgXJ8n8kQGMbj2mvxA=; b=fV2BHpfdNWCmhorP3ktNwtW3KAyQEi8u2oiZGlInjqiHlHYU8LZWRIeUVTv/+Pv17b pyZ9gsDZA43xjTkIX8lzZJCLt3SA4YiRnP5E2RrT3Ul1kTQ1qDV2VpfJdk+LchPzY79h pFqdNs83IQ2xLMIkpZD/7tZvvlx4uHYwPndbdc48aMvU2gYBmBBzKZDqHnGwcVJwpBe9 Nnr5iY77I86dFTIgOjIz8VVWGRPqyCv8tMhopqbrAYlc0FpvxFD17KWXpuFBsYCRVXeU gj/t8UAi3WghKUiE4ZTVx6T3wpBHZ3tZxzsaRcb/3mNJRiSkfjDCtrQ4FzRXCNMgwZHd Yq/A==
MIME-Version: 1.0
X-Received: by 10.182.226.162 with SMTP id rt2mr7307757obc.9.1366039108232; Mon, 15 Apr 2013 08:18:28 -0700 (PDT)
Received: by 10.76.141.83 with HTTP; Mon, 15 Apr 2013 08:18:28 -0700 (PDT)
In-Reply-To: <DF8F6DB7E5D58B408041AE4D927B2F48CBB88103@CINURCNA14.e2k.ad.ge.com>
References: <516B8824.8040904@cisco.com> <DF8F6DB7E5D58B408041AE4D927B2F48CBB88103@CINURCNA14.e2k.ad.ge.com>
Date: Mon, 15 Apr 2013 08:18:28 -0700
Message-ID: <CAP+FsNfeUtKfOMPKriYP7Ak_YzsjEFKvprJOAQaxYP7_BxTBsw@mail.gmail.com>
From: Roberto Peon <grmocg@gmail.com>
To: "Simpson, Robby (GE Energy Management)" <robby.simpson@ge.com>
Cc: Eliot Lear <lear@cisco.com>, Gabriel Montenegro <Gabriel.Montenegro@microsoft.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>
Content-Type: multipart/alternative; boundary="001a11c2e93ccbab3104da67c304"
Received-SPF: pass client-ip=209.85.214.170; envelope-from=grmocg@gmail.com; helo=mail-ob0-f170.google.com
X-W3C-Hub-Spam-Status: No, score=-4.4
X-W3C-Hub-Spam-Report: AWL=-1.732, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1URlBG-00041e-7l 90fc15a547fb9126e17fd47a0cfa40c7
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP/2 and TCP CWND
Archived-At: <http://www.w3.org/mid/CAP+FsNfeUtKfOMPKriYP7Ak_YzsjEFKvprJOAQaxYP7_BxTBsw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17231
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>

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> 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
>
>
> From: Eliot Lear <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>>
> Cc: Roberto Peon <grmocg@gmail.com<mailto:grmocg@gmail.com>>, Robert
> Collins <robertc@squid-cache.org<mailto:robertc@squid-cache.org>>, Jitu
> Padhye <padhye@microsoft.com<mailto:padhye@microsoft.com>>, "
> ietf-http-wg@w3.org<mailto:ietf-http-wg@w3.org>" <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>>, Rob Trace
> <Rob.Trace@microsoft.com<mailto:Rob.Trace@microsoft.com>>, Dave Thaler <
> dthaler@microsoft.com<mailto:dthaler@microsoft.com>>, Martin Thomson <
> martin.thomson@skype.net<mailto:martin.thomson@skype.net>>, "Eggert,
> Lars" <lars@netapp.com<mailto:lars@netapp.com>>, Martin Stiemerling <
> 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>>
> 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
>
>