Re: [QUIC] h2 mapping - extensions

Mike Bishop <Michael.Bishop@microsoft.com> Tue, 08 November 2016 02:23 UTC

Return-Path: <Michael.Bishop@microsoft.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6E7F51294EC for <quic@ietfa.amsl.com>; Mon, 7 Nov 2016 18:23:19 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.021
X-Spam-Level:
X-Spam-Status: No, score=-2.021 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_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.com
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 AN9nLAEhIoun for <quic@ietfa.amsl.com>; Mon, 7 Nov 2016 18:23:16 -0800 (PST)
Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0090.outbound.protection.outlook.com [104.47.33.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3F8541294B9 for <quic@ietf.org>; Mon, 7 Nov 2016 18:23:16 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=KqtE27afEw6k/7oMmspNjfwhrUtQ0lcx925V3AZkbr4=; b=agGGnoUoc7gYVhwbwB/OM1M4PEUCvnNOMJVDZbkRLkQA07ixLEIA5L8Q1Dx668n42tgOJh4cmwrRVQ1j4I0UjBX1IvOq6wZISTDHLYX1eUzhvQPCNgxlR1WP8GkDTazJqzSxg5Gg17hTwiq+Y2ej5WFFyyPVRz9/Xvr0DQrxv2I=
Received: from CY4PR03MB2710.namprd03.prod.outlook.com (10.173.43.141) by CY4PR03MB2709.namprd03.prod.outlook.com (10.173.43.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.707.6; Tue, 8 Nov 2016 02:23:13 +0000
Received: from CY4PR03MB2710.namprd03.prod.outlook.com ([10.173.43.141]) by CY4PR03MB2710.namprd03.prod.outlook.com ([10.173.43.141]) with mapi id 15.01.0707.006; Tue, 8 Nov 2016 02:23:13 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: Jana Iyengar <jri@google.com>, Patrick McManus <pmcmanus@mozilla.com>
Thread-Topic: [QUIC] h2 mapping - extensions
Thread-Index: AQHSNhrWVkwvFIuWr0eoGbjCghGjY6DN7XKAgAACUICAADTogIAAOkaw
Date: Tue, 08 Nov 2016 02:23:12 +0000
Message-ID: <CY4PR03MB2710302DAFFB6926E882824D87A60@CY4PR03MB2710.namprd03.prod.outlook.com>
References: <CAOdDvNpGf7bcwt3Nyqk0_HPPSoXE-w8ZeYEdo4c76vpuXku0mg@mail.gmail.com> <CAGD1bZa94aJ1C8iqxe4MNrWFsC0mVMYwvTujpBVbL2RyFPwmMw@mail.gmail.com> <CAOdDvNo3YnR2h4aTDFGeRg7Q5t3-DOFPmdAqUeBkncOz1mF=EA@mail.gmail.com> <CAGD1bZaiePu6GJYUUr5GtvD=Ge5_POMtSqdZDKjUxaVa1iO5QA@mail.gmail.com>
In-Reply-To: <CAGD1bZaiePu6GJYUUr5GtvD=Ge5_POMtSqdZDKjUxaVa1iO5QA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com;
x-originating-ip: [172.56.42.178]
x-ms-office365-filtering-correlation-id: 5e241549-2056-4142-0296-08d4077e30c1
x-microsoft-exchange-diagnostics: 1; CY4PR03MB2709; 7:alQAAZWGLyUCg/uFCVODNLFW/KGCZ66lOfMpkTXdsxv3JRAPIyo3hrY5taix8H+el9vuVgT+ezunSFG9AnCqYCoau61GG6dFaK/CPNchaUHAXi/MJfsDXCOUqlJkZpU5Ol1GvUwfLKdf1xU+DFrUiOiODexulA7+1kmwLc3l5ZJH6grDUAhMh/o7nj2RtaeCZY3xZTiTfVplzVdH51/TCNvI7mfCQ0OzAC9fR4V9Ls/MEU1TdQuDF/oEfPtnwm6EYI84V0uKgGj/nrZ9GqSTg3jHsxHN+W1o2M8h6jzsIYPDCe5NdoN2fPKg2l4wY2RaU+XADDTv3RwUsH/imVOwqKYZ5UXdX5xxExcXntORqg+jKZ+FprZS1DHvxC4zTB9Y
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY4PR03MB2709;
x-microsoft-antispam-prvs: <CY4PR03MB27092DD5F4396E131F0D47BA87A60@CY4PR03MB2709.namprd03.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(211936372134217)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6045074)(6060229)(6040176)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6055026)(61426038)(61427038)(6061226)(6046074); SRVR:CY4PR03MB2709; BCL:0; PCL:0; RULEID:; SRVR:CY4PR03MB2709;
x-forefront-prvs: 01208B1E18
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(7916002)(24454002)(189002)(199003)(377454003)(101416001)(2900100001)(68736007)(3660700001)(77096005)(50986999)(9686002)(66066001)(2906002)(4326007)(54356999)(76176999)(106356001)(74316002)(5005710100001)(86362001)(19609705001)(5660300001)(7736002)(87936001)(7906003)(7846002)(7696004)(86612001)(92566002)(189998001)(10290500002)(3280700002)(99286002)(8936002)(561944003)(8990500004)(105586002)(10090500001)(106116001)(5001770100001)(97736004)(586003)(102836003)(93886004)(2950100002)(3846002)(6116002)(790700001)(76576001)(33656002)(81156014)(8676002)(81166006)(122556002); DIR:OUT; SFP:1102; SCL:1; SRVR:CY4PR03MB2709; H:CY4PR03MB2710.namprd03.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_CY4PR03MB2710302DAFFB6926E882824D87A60CY4PR03MB2710namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2016 02:23:12.8689 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR03MB2709
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/7jF73AufNg_WHR2AIy9kIXa1u1Y>
Cc: "quic@ietf.org" <quic@ietf.org>
Subject: Re: [QUIC] h2 mapping - extensions
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 08 Nov 2016 02:23:19 -0000

Jana, h2 extensions are very broad – you can negotiate (method unspecified, but usually a mutual SETTING) any departure from or addition to the spec.  Additionally, clients MUST ignore unknown frame types, so anything that doesn’t change the core of the protocol (e.g. ORIGIN) can be sent speculatively, without knowing whether the peer will understand.

In the current mapping, you’re effectively running a full HTTP/2 framing layer and mux on Stream 3.  It’s referred to as “the HEADERS stream,” but it actually carries SETTINGS, PUSH_PROMISE, PRIORITY, and basically anything else.  The mapping document calls out things that are delegated to the QUIC layer (PING, GOAWAY, WINDOW_UPDATE) or other QUIC streams (DATA), but otherwise you could take arbitrary h2 extensions and drop it on Stream 3 without much change.  If we keep that model, that’s probably the default answer – an extension works unless it has some hard dependency on ordering w.r.t. message body.

That said, I’d prefer to break out of the double-mux model if we can, moving things to their own streams as much as possible to take advantage of getting out of head-of-line blocking.  I’m working on a draft, albeit too late for Seoul, and at least HEADERS/PUSH_PROMISE/DATA (and everyone’s favorite, CONTINUATION) can be dropped to other streams pretty easily.  We may still need a dedicated stream for SETTINGS, though, which means putting extensions there too still isn’t as much of a stretch – at least, for things that live on stream zero.  And on-stream extensions, too, perhaps.

From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Jana Iyengar
Sent: Monday, November 7, 2016 2:44 PM
To: Patrick McManus <pmcmanus@mozilla.com>
Cc: quic@ietf.org
Subject: Re: [QUIC] h2 mapping - extensions



On Mon, Nov 7, 2016 at 11:34 AM, Patrick McManus <pmcmanus@mozilla.com<mailto:pmcmanus@mozilla.com>> wrote:


On Mon, Nov 7, 2016 at 2:26 PM, Jana Iyengar <jri@google.com<mailto:jri@google.com>> wrote:
On Thu, Nov 3, 2016 at 2:39 PM, Patrick McManus <pmcmanus@mozilla.com<mailto:pmcmanus@mozilla.com>> wrote:
Hi Robbie, Mike, et al. Thanks for getting the ball rolling with https://tools.ietf.org/html/draft-shade-quic-http2-mapping-00..
What is the thinking about rfc 7540 h2 extensions and the h2/quic mapping.. particularly the way it allows unspecified frame types which may or may not require negotiation.
it seems some of these extensions may have stateful issues across streams, ala hpack and some may not.
If the extension were only defined for h2-over-quic that would be for the extension to sort out.. but it doesn't seem like we are limiting things to quic vs tcp, or are we?

Not sure what you mean by not limiting things to QUIC vs. TCP -- do you have a different mapping in mind?

I meant explicitly scoping h2 extensions so that they only apply to quic and/or tcp.. and it does seem like that's what you mean :)

Gotcha. I think it makes sense to limit to QUIC and TCP at the moment since there is a proposal to run HTTP over these, until such a time as there is a need to define over another transport (let's call it Essy Transport Protocol, you know, EssyTP). I suspect at that point the httpbis wg (hey, that's you! :-)) can figure out how to define extensions over the other transport.

My sense is that we'll need to
(i) define how current extensions will work with QUIC (eg, HPACK), and

fwiw HPACK/QPACK is not an extension and you can't define it as one in quic because it would need to be negotiated and that's going to break the 0RTT goal of the protocol. I don't think that's a problem though as there is no need to make it an extension :)

Ah, sorry -- my grasp of which things are extensions and which ones not in HTTP-land is weak. I think compression is likely to be one of those things that is different in QUIC than in HTTP/2.

(ii) require that future extensions be defined explicitly  for both TCP and QUIC.

So the mapping document will need to establish a new h2 extension registry?

Do you mean an IANA registry? It's probably safest to put these extensions will be in different namespaces entirely, so yes, if I understand your question correctly.

- jana


-P