Re: HTTP/2 extensibility <draft-ietf-httpbis-http2-17>

Bob Briscoe <bob.briscoe@bt.com> Fri, 06 March 2015 14:37 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ietf.org@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 25CDD1ACE39 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 6 Mar 2015 06:37:54 -0800 (PST)
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 yUnEfiG2XQhx for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 6 Mar 2015 06:37:52 -0800 (PST)
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 6DC191ACE51 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 6 Mar 2015 06:37:23 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1YTtKL-0008Lp-3t for ietf-http-wg-dist@listhub.w3.org; Fri, 06 Mar 2015 14:34:09 +0000
Resent-Date: Fri, 06 Mar 2015 14:34:09 +0000
Resent-Message-Id: <E1YTtKL-0008Lp-3t@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.80) (envelope-from <bob.briscoe@bt.com>) id 1YTtKE-0008L4-I7 for ietf-http-wg@listhub.w3.org; Fri, 06 Mar 2015 14:34:02 +0000
Received: from hubrelay-rd.bt.com ([62.239.224.98]) by lisa.w3.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from <bob.briscoe@bt.com>) id 1YTtKD-0007Kk-3Q for ietf-http-wg@w3.org; Fri, 06 Mar 2015 14:34:02 +0000
Received: from EVMHR72-UKRD.domain1.systemhost.net (10.36.3.110) by EVMHR66-UKRD.bt.com (10.187.101.21) with Microsoft SMTP Server (TLS) id 14.3.195.1; Fri, 6 Mar 2015 14:33:27 +0000
Received: from EPHR01-UKIP.domain1.systemhost.net (147.149.196.177) by EVMHR72-UKRD.domain1.systemhost.net (10.36.3.110) with Microsoft SMTP Server (TLS) id 8.3.348.2; Fri, 6 Mar 2015 14:33:30 +0000
Received: from bagheera.jungle.bt.co.uk (132.146.168.158) by EPHR01-UKIP.domain1.systemhost.net (147.149.196.177) with Microsoft SMTP Server id 14.3.181.6; Fri, 6 Mar 2015 14:33:26 +0000
Received: from BTP075694.jungle.bt.co.uk ([10.111.19.140]) by bagheera.jungle.bt.co.uk (8.13.5/8.12.8) with ESMTP id t26EXPNj013385; Fri, 6 Mar 2015 14:33:25 GMT
Message-ID: <201503061433.t26EXPNj013385@bagheera.jungle.bt.co.uk>
X-Mailer: QUALCOMM Windows Eudora Version 7.1.0.9
Date: Fri, 06 Mar 2015 14:33:24 +0000
To: Martin Thomson <martin.thomson@gmail.com>, Ben Niven-Jenkins <ben@niven-jenkins.co.uk>
From: Bob Briscoe <bob.briscoe@bt.com>
CC: Mike Belshe <mbelshe@chromium.org>, "fenix@google.com" <fenix@google.com>, HTTP Working Group <ietf-http-wg@w3.org>
In-Reply-To: <CABkgnnVM3hoAMUj6TY0UztPUEa4=NuovEeeDmGgOr_R4JeKv2A@mail.g mail.com>
References: <201503051255.t25Ct8YK001645@bagheera.jungle.bt.co.uk> <CABkgnnVM3hoAMUj6TY0UztPUEa4=NuovEeeDmGgOr_R4JeKv2A@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
X-Scanned-By: MIMEDefang 2.56 on 132.146.168.158
Received-SPF: pass client-ip=62.239.224.98; envelope-from=bob.briscoe@bt.com; helo=hubrelay-rd.bt.com
X-W3C-Hub-Spam-Status: No, score=-2.1
X-W3C-Hub-Spam-Report: AWL=-1.381, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01
X-W3C-Scan-Sig: lisa.w3.org 1YTtKD-0007Kk-3Q dc7e4803837aca6ecf819e09f623bd13
X-Original-To: ietf-http-wg@w3.org
Subject: Re: HTTP/2 extensibility <draft-ietf-httpbis-http2-17>
Archived-At: <http://www.w3.org/mid/201503061433.t26EXPNj013385@bagheera.jungle.bt.co.uk>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/28895
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>

Martin, (and Ben who reinforced Martin's points),

So extensibility experience from the app-layer is being applied to a 
transport layer protocol (an unfortunate consequence of giving a name 
to a new transport protocol that makes it look like a major revision 
of an app-layer protocol).

In the IETF TCP maintenance WG, the bar to changes is very high, 
given insufficiently analysed and tested changes could be devastating 
to the Internet. When doing 'mundane' lower layer stuff like framing 
and multiplexing, it is much less likely that you will get an 
explosion of different ways of doing it. In TCPM, explosion of 
feature interactions is only a minor concern, because the number of 
revisions has remained small.

In the transport layer 'culture' changes take longer to introduce. 
But that's because the cost of failure is higher, and it's much 
harder to fix errors once they have been deployed.

inline...

At 17:57 05/03/2015, Martin Thomson wrote:
>You might like to think of this from another perspective: Postel's
>famous statement[1] is not a principle that guides protocol design, it
>is in fact a fatalistic observation about the effect of entropic decay
>of a protocol.

I assume you're referring to
" In general, an implementation must be conservative
   in its sending behavior, and liberal in its receiving behavior." [RFC791]

This /is/ a principle that guides protocol design, but perhaps 
HTTP/1.x experience shows that it is less appropriate at higher 
layers. At lower layers, it has stood the test of time, and you don't 
hear anyone questioning it.


>Finally, designing good extensibility is really, really hard.  It
>takes time.  And as the saying goes, shipping is a feature.

Oh dear. I think we are witnessing a layering violation of cultures.


> > For instance, a number of potential issues around DoS are left open.

Ben, I'm referring to the large number of DoS concerns listed in the 
HTTP/2 spec in open-ended sentences that just state the concern. Each 
one made me think "So, why haven't you redesigned the protocol then?" 
If I had designed a protocol with those concerns, I wouldn't have 
even brought it to standardisation until I had at least some idea of 
a direction to address them. Again, this seems to be a culture 
difference between app-layer and lower layers.

>If the
> > protocol has to be hardened against new attacks, I believe the recommended
> > extensibility path is to design and implement a completely new protocol
> > release, then upgraded endpoints negotiate it during the initial handshake.
> > The timescale for such a process is measured in years, during which the
> > vulnerability has to be lived with. Surely we need more granular
> > extensibility; to introduce new frame types and structures, and/or to
> > deprecate outdated/vulnerable ones.
>
>I don't know what others think, but I would expect that a small,
>necessary change to the protocol could be deployed by those affected
>in much the same timescale as an extension might be.  I do appreciate
>the fact that calling something HTTP/3 to fix a small DoS bug might
>*seem* drastic, but the only risk is in avoiding people with an axe to
>grind trying to get in other changes when you do that.

Has the WG really thought through whether this extensibility approach 
is going to work? For instance, has a revision naming scheme been 
designed that can describe forks?

Also, it's not just about how a revision is /named/. It's about a 
completely different /process/...

HTTP/3 (or even HTTP/2.0.0.1) would need to be agreed by a whole 
standards committee process, no matter how minor the change. Whereas 
a new unilateral frame type could be experimented with locally, or 
used locally to patch a vulnerability.


>(I'll also note that your concerns are largely only relevant in the
>presence of intermediaries, for what that is worth.)

Correct, revisions (whether unliateral or standardised) are v hard to 
deploy if intermediate nodes must 'discard if unknown' (see the 
thread with Mike Bishop, that I have forked).


Bob




________________________________________________________________
Bob Briscoe,                                                  BT