Re: Overhead of HTTP/2 Stream Management.

Max Bruce <max.bruce12@gmail.com> Sun, 05 April 2015 20:12 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 997341A1B21 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 5 Apr 2015 13:12:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.011
X-Spam-Level:
X-Spam-Status: No, score=-7.011 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, 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 cpFVqOobnnQE for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 5 Apr 2015 13:12:45 -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 D84051A1A3B for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 5 Apr 2015 13:12:45 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1Yeqr1-0007Mn-0i for ietf-http-wg-dist@listhub.w3.org; Sun, 05 Apr 2015 20:09:11 +0000
Resent-Date: Sun, 05 Apr 2015 20:09:11 +0000
Resent-Message-Id: <E1Yeqr1-0007Mn-0i@frink.w3.org>
Received: from maggie.w3.org ([128.30.52.39]) by frink.w3.org with esmtp (Exim 4.80) (envelope-from <max.bruce12@gmail.com>) id 1Yeqqn-0007Lv-HO for ietf-http-wg@listhub.w3.org; Sun, 05 Apr 2015 20:08:57 +0000
Received: from mail-ie0-f171.google.com ([209.85.223.171]) by maggie.w3.org with esmtps (TLS1.2:RSA_ARCFOUR_SHA1:128) (Exim 4.80) (envelope-from <max.bruce12@gmail.com>) id 1Yeqqk-0002q5-K1 for ietf-http-wg@w3.org; Sun, 05 Apr 2015 20:08:57 +0000
Received: by iebmp1 with SMTP id mp1so9566063ieb.0 for <ietf-http-wg@w3.org>; Sun, 05 Apr 2015 13:08:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=JbcsXzZ6djfG+KRZZWbv9XRWWMrmpEBheApZ2SozJP4=; b=JnLYNV01hx9oNcUiCoearD7Ed0VQrizrFh2KsH1+aqXOnCahoK3QX1NNNoBaCKTt0X z9ZLP7wJ+xlGPgo2+uTCtdtOmUEpzpqQWyYeAzkaOW5Q/aqMJMAJicW6gfVjEaLUbhkW 8Kp/kU8FvUsJoWFWX2ZJpXilFdcrI63OBFy/ePtaRsFwp98HeQrLPN5bW0xstBpFwKYr IjeScM4cR4/o/Fgv4s8l/NsJ2f9MH2fWxaZl0wvTs1bvoeQ261wNic6A4b1Nw2MLas8e vqtt2azRBS7XMKiCcK3uDmjrsEX+hKRdaEigX9Pa7nXNjZTvkwGrwt0JVs4DqJLgBZxp r5nQ==
MIME-Version: 1.0
X-Received: by 10.42.24.195 with SMTP id x3mr15422834icb.81.1428264508802; Sun, 05 Apr 2015 13:08:28 -0700 (PDT)
Received: by 10.36.58.142 with HTTP; Sun, 5 Apr 2015 13:08:28 -0700 (PDT)
In-Reply-To: <20150405185755.GD8875@1wt.eu>
References: <CABb0SYTLVFYXymJ75TkNkku3oT5pRcSAahjq2HcD5gDLouskpA@mail.gmail.com> <20150405183651.GA11551@1wt.eu> <CABb0SYTSW+M1NjBAa_s7dcB56obj1nEbQmt5r6P7eStTBmTwHg@mail.gmail.com> <20150405185755.GD8875@1wt.eu>
Date: Sun, 05 Apr 2015 13:08:28 -0700
Message-ID: <CABb0SYR0wV1U5i2n=PbZd+BFTBntJFvzFD0DPPRVHXyJP=Oyqg@mail.gmail.com>
From: Max Bruce <max.bruce12@gmail.com>
To: Willy Tarreau <w@1wt.eu>
Cc: "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="20cf303bf796b14dfe0512ffbea4"
Received-SPF: pass client-ip=209.85.223.171; envelope-from=max.bruce12@gmail.com; helo=mail-ie0-f171.google.com
X-W3C-Hub-Spam-Status: No, score=-3.9
X-W3C-Hub-Spam-Report: AWL=-1.382, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: maggie.w3.org 1Yeqqk-0002q5-K1 ed22eb7bdeb6c71a84f6190284800709
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Overhead of HTTP/2 Stream Management.
Archived-At: <http://www.w3.org/mid/CABb0SYR0wV1U5i2n=PbZd+BFTBntJFvzFD0DPPRVHXyJP=Oyqg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/29266
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>

The way HTTP works though, we don't need streams in such a conventional and
TCP-like way. We only need multiplexed packets to carry data over, so just
associate request/response pairs with an ID, and allow server push via
server sending the request path in a header too. Why do we even need a
frame structure? It's unnecessary overhead. Same with the virtual streams.

On Sun, Apr 5, 2015 at 11:57 AM, Willy Tarreau <w@1wt.eu> wrote:

> On Sun, Apr 05, 2015 at 11:45:53AM -0700, Max Bruce wrote:
> > My thoughts is that you just don't use so much overhead. You don't get
> rid
> > of stream IDs, you just don't need so much complex things surrounding it.
> > Example: You append a header to HTTP/1.1 request, with a response ID,
> > server responds with it. Server can push responses by sending a unsent
> ID &
> > request path in a header.
>
> You still need the stream IDs in the frames themselves so that you know
> which stream each frame belongs to.
>
> Multiplexed systems always look simple at first, until you start to
> implement them, cover the corner cases (eg: who closes first etc) and
> you finally realize once everything is done how much your system looks
> like tcp...
>
> There was an elegant (in my opinion) simplification in H/2 compared to
> other systems, the stream IDs are always incremented until the largest
> encodable ID is reached, which is where a new connection must be used.
> I find this elegant because you don't need to keep track of IDs in use
> vs available ones and it really simplifies a number of things (eg: no
> risk to have late frames from an old stream using the same ID).
>
> It doesn't please me either to have to implement such a complex system
> but I am absolutely convinced that it can hardly be simplified further
> as long as we want non-blocking, multiplexed streams. I have already
> implemented multiplexed streams in the past for some projects, and it
> resulted in almost the same design (but more complex).
>
> Willy
>
>