Re: Overhead of HTTP/2 Stream Management.

Willy Tarreau <w@1wt.eu> Mon, 06 April 2015 00:20 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@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 (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 277441ACE82 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 5 Apr 2015 17:20:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.912
X-Spam-Level:
X-Spam-Status: No, score=-6.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Hg2s_0cib3GY for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 5 Apr 2015 17:20:28 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6E9AB1ACE83 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 5 Apr 2015 17:20:26 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Yeuia-0006Z1-Nr for ietf-http-wg-dist@listhub.w3.org; Mon, 06 Apr 2015 00:16:44 +0000
Resent-Date: Mon, 06 Apr 2015 00:16:44 +0000
Resent-Message-Id: <E1Yeuia-0006Z1-Nr@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.80) (envelope-from <w@1wt.eu>) id 1YeuiX-0006Xb-FD for ietf-http-wg@listhub.w3.org; Mon, 06 Apr 2015 00:16:41 +0000
Received: from wtarreau.pck.nerim.net ([62.212.114.60] helo=1wt.eu) by maggie.w3.org with esmtp (Exim 4.80) (envelope-from <w@1wt.eu>) id 1YeuiW-0007sp-Fd for ietf-http-wg@w3.org; Mon, 06 Apr 2015 00:16:41 +0000
Received: (from willy@localhost) by pcw.home.local (8.14.3/8.14.3/Submit) id t360GGCE016584; Mon, 6 Apr 2015 02:16:16 +0200
Date: Mon, 06 Apr 2015 02:16:16 +0200
From: Willy Tarreau <w@1wt.eu>
To: Max Bruce <max.bruce12@gmail.com>
Cc: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Message-ID: <20150406001616.GC16399@1wt.eu>
References: <CABb0SYTLVFYXymJ75TkNkku3oT5pRcSAahjq2HcD5gDLouskpA@mail.gmail.com> <20150405183651.GA11551@1wt.eu> <CABb0SYTSW+M1NjBAa_s7dcB56obj1nEbQmt5r6P7eStTBmTwHg@mail.gmail.com> <20150405185755.GD8875@1wt.eu> <CABb0SYR0wV1U5i2n=PbZd+BFTBntJFvzFD0DPPRVHXyJP=Oyqg@mail.gmail.com> <20150405234911.GA16399@1wt.eu> <CABb0SYRkaX_FJGv4n9_hg+1UYydao0sOCU13WsVFEdPdjkMfiQ@mail.gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CABb0SYRkaX_FJGv4n9_hg+1UYydao0sOCU13WsVFEdPdjkMfiQ@mail.gmail.com>
User-Agent: Mutt/1.4.2.3i
Received-SPF: pass client-ip=62.212.114.60; envelope-from=w@1wt.eu; helo=1wt.eu
X-W3C-Hub-Spam-Status: No, score=-4.0
X-W3C-Hub-Spam-Report: AWL=-2.019, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1YeuiW-0007sp-Fd 00f6c8290f44ce7185262512811dcb61
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Overhead of HTTP/2 Stream Management.
Archived-At: <http://www.w3.org/mid/20150406001616.GC16399@1wt.eu>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/29273
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 Sun, Apr 05, 2015 at 04:55:04PM -0700, Max Bruce wrote:
> Each request adds a X-Req-ID to the headers as such:
> 
> GET / HTTP/1.1
> X-Req-ID: random-unique-per-connection-id
> other headers...
> 
> and the server responds...
> 
> HTTP/1.1 200 OK
> X-Req-ID: request-id-here
> X-Req-Target: /
> other headers...
> 
> BUT, can also respond twice or more for server pushing:
> 
> HTTP/1.1 200 OK
> X-Req-ID: -PUSH-
> X-Req-Target: /logo.png
> other headers...

But that doesn't work. You don't have multiplexed streams this way, just
full requests then full responses. Try to download two videos in parallel
and you'll have a full video and once completely downloaded, you'll get
the second one. What you are proposing here is just a very minor add-on
to what we were doing with HTTP/1, basically you allow the server to
respond out of order, that's all.

H2 supports multiple streams over the same TCP connection to limit the
buffer bloat issue, to reduce the connection counts, and to try to
conserve the TCP congestion windows. And it supports these streams
in *parallel*, yours are serialized.

Regards,
Willy