Re: HTTP/2 and TCP CWND

Roberto Peon <grmocg@gmail.com> Tue, 16 April 2013 18:51 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 B5C3821F9677 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 16 Apr 2013 11:51:49 -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 Hkxm+-I51nS7 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 16 Apr 2013 11:51:48 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id B36D621F964F for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 16 Apr 2013 11:51:48 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1USAyL-0007M9-BK for ietf-http-wg-dist@listhub.w3.org; Tue, 16 Apr 2013 18:51:17 +0000
Resent-Date: Tue, 16 Apr 2013 18:51:17 +0000
Resent-Message-Id: <E1USAyL-0007M9-BK@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 1USAyF-0007Jz-FX for ietf-http-wg@listhub.w3.org; Tue, 16 Apr 2013 18:51:11 +0000
Received: from mail-oa0-f51.google.com ([209.85.219.51]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <grmocg@gmail.com>) id 1USAyE-000292-AS for ietf-http-wg@w3.org; Tue, 16 Apr 2013 18:51:11 +0000
Received: by mail-oa0-f51.google.com with SMTP id k14so842784oag.10 for <ietf-http-wg@w3.org>; Tue, 16 Apr 2013 11:50:44 -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=AledXOZK3oUMu08j8QsLnn2c7g5Gq3NNww/0Wb2qi4A=; b=kWFdS3rfHeiukbaHvakes+YJ0XfZLNIcRB8V2zsG58neQrIRRK+RahOrkT5KcdylKP pIrz9F4L2rZiNZ2XI65QhubR91yWwFX1yx3p0ZVGJ8W29TUFkfr91VquFUaKxdAbU4Z7 WXBdlbdvqDtsAKkK+X83j2gbuVRZRm2y3imIkcHltrs9D9UwUOL00I8JbTk9Vi6wkknL m/BxVTDMaZkvXqCSDemjxcQPzea3iobzIWkBaRA30KLAoKVOmw+Lyw78CgpVF1NV1+X7 Bw57xV16eztd5OxoiqzufQXMahbOveD1qsaqCZXSEv9gv1rj1r3bH1wn4DJa/viedC2S g92Q==
MIME-Version: 1.0
X-Received: by 10.60.15.71 with SMTP id v7mr1321985oec.10.1366138244397; Tue, 16 Apr 2013 11:50:44 -0700 (PDT)
Received: by 10.76.141.83 with HTTP; Tue, 16 Apr 2013 11:50:44 -0700 (PDT)
In-Reply-To: <DF8F6DB7E5D58B408041AE4D927B2F48CBB89724@CINURCNA14.e2k.ad.ge.com>
References: <CAP+FsNfEjTN=xQt7OcXgA84rhN1jncq=iSF9ZLJ05xiqDwfiFQ@mail.gmail.com> <DF8F6DB7E5D58B408041AE4D927B2F48CBB89724@CINURCNA14.e2k.ad.ge.com>
Date: Tue, 16 Apr 2013 11:50:44 -0700
Message-ID: <CAP+FsNeH8n6xKM1VEa1dB4ALPVRmi5wLS=EZyfo9+MPr56UeEw@mail.gmail.com>
From: Roberto Peon <grmocg@gmail.com>
To: "Simpson, Robby (GE Energy Management)" <robby.simpson@ge.com>
Cc: "Brian Raymor (MS OPEN TECH)" <Brian.Raymor@microsoft.com>, Rob Trace <Rob.Trace@microsoft.com>, Eliot Lear <lear@cisco.com>, Gabriel Montenegro <Gabriel.Montenegro@microsoft.com>, "Eggert, Lars" <lars@netapp.com>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>, Dave Thaler <dthaler@microsoft.com>, Martin Thomson <martin.thomson@skype.net>, Robert Collins <robertc@squid-cache.org>, Martin Stiemerling <martin.stiemerling@neclab.eu>, Jitu Padhye <padhye@microsoft.com>
Content-Type: multipart/alternative; boundary="089e013cc14ac582b304da7ed8dc"
Received-SPF: pass client-ip=209.85.219.51; envelope-from=grmocg@gmail.com; helo=mail-oa0-f51.google.com
X-W3C-Hub-Spam-Status: No, score=-3.5
X-W3C-Hub-Spam-Report: AWL=-2.668, 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 1USAyE-000292-AS 5731d7e850a7185a1cebd9831e1e7e03
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP/2 and TCP CWND
Archived-At: <http://www.w3.org/mid/CAP+FsNeH8n6xKM1VEa1dB4ALPVRmi5wLS=EZyfo9+MPr56UeEw@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/17267
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>

On Tue, Apr 16, 2013 at 10:58 AM, Simpson, Robby (GE Energy Management) <
robby.simpson@ge.com> wrote:

> On 4/16/13 12:03 PM, "Roberto Peon" <grmocg@gmail.com<mailto:
> grmocg@gmail.com>> wrote:
>
> Unfortunately, most flows with http/1 are short (and bursty) flows, so it
> is incorrect to say that they have reached steady-state w.r.t. congestion
> control. Many resource fetches complete in between one and three rtts, then
> much of time the connection(s) sit idle for extended periods of time
> (seconds to minutes).
>
> Good point.  Most of my work with HTTP/1 (and TCP) are with long-lived
> flows and I live in the long tail.  My gut tells me you are correct when it
> comes to traditional web usage.
>
> I'm hoping Will will chime in here with data soon, but the distribution on
> single connection cwnds as measured on traffic in the wild shows us that
> using multiple connections puts more packets on the wire as a result of
> init-cwnd (and thus not subject to congestion control, ouch) than a single
> stable-state, heavily used and reused connection such as Spdy or HTTP/2
> would allow.
>
> Wouldn't Spdy or HTTP/2 still face the issues regarding steady-state then?
>

No-- by muxing the many separate requests onto one connection, we are far
more likely to achieve steady-state before we stop sending bytes around.
Thusfar we've seen that the one connection thing wins (so long as it is not
handicapped by startup) so long as packet loss is less than ~1.5%. It does
better there, often with smaller aggregate window size and packets. Part of
this is that it stays along enough to actually trigger the fast rexmit
path. Above ~1.5%, and the circumvention of connections (with crap
duty-cycle) wins out, as the loss strikes fewer than all of the
connections, and thus the CWND closes more slowly than it does for the
connection with a much better proportion of time where it is actually
sending/receiving packets.


>
> Part of my concern is that we may, once again, create an HTTP that
> unfairly dominates traffic due to lots of bursty flows.
>

I understand. I worry about the same thing, just from the other end. If we
don't make a single connection competitive with many, we'll have people
using many, and we know that is a bad thing as it is a very effective
circumvention method for both initial burst size AND avoiding loss backoff
:/


>
> <snip>
>
> I agree that solving the problem for http/2 alone won't fix it for
> everything. On the other hand, we also need to act swiftly to solve
> problems on timescales that matter to users, and http is a fine venue for
> that. The fact that http/2 could do this doesn't stop us from coming up
> with an opaque blob that *any* latency sensitive application protocol
>  could use to communicate with the transport layer.
>
> As someone stated earlier, I fear the opposite to be true.  This may end
> up slowing down HTTP/2 and not be swift at all..
>
>
This is true of any starting condition. The question becomes: Is past
experience of X time ago less wrong on average than starting with an
arbitrary constant.

-=R