RE: 0-RTT Design for HTTP/2

Mike Bishop <mbishop@evequefou.be> Thu, 17 December 2020 20:10 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 (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AA9343A0FD2 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 17 Dec 2020 12:10:02 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.637
X-Spam-Level:
X-Spam-Status: No, score=-2.637 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.25, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=evequefou.onmicrosoft.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 YwEriSKSB2J0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Thu, 17 Dec 2020 12:10:00 -0800 (PST)
Received: from lyra.w3.org (lyra.w3.org [128.30.52.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2855E3A0FC7 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Thu, 17 Dec 2020 12:09:59 -0800 (PST)
Received: from lists by lyra.w3.org with local (Exim 4.92) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1kpzY5-0002Rg-SE for ietf-http-wg-dist@listhub.w3.org; Thu, 17 Dec 2020 20:06:53 +0000
Resent-Date: Thu, 17 Dec 2020 20:06:53 +0000
Resent-Message-Id: <E1kpzY5-0002Rg-SE@lyra.w3.org>
Received: from titan.w3.org ([128.30.52.76]) by lyra.w3.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mbishop@evequefou.be>) id 1kpzY2-0002Qu-U6 for ietf-http-wg@listhub.w3.org; Thu, 17 Dec 2020 20:06:50 +0000
Received: from mail-co1nam11on2109.outbound.protection.outlook.com ([40.107.220.109] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by titan.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from <mbishop@evequefou.be>) id 1kpzXz-0003kq-Ul for ietf-http-wg@w3.org; Thu, 17 Dec 2020 20:06:50 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N2OAUofOMsrTkZf45fhke0uevUIen5UuwNKubYpUaQUyFEY6H1sAVkz5maSChToWY7M891P+lAoz1kVfqdz1ysJ04yKN4LXMi5i2jQFze8RfA1fQ2sslVj7dsQ3aCY5xrpLc2QW7YMMkTEhlX3zv79++K50AeaV8YPD3a7iOjMvlq5IRPlHIYjbv/AEq+4z7eTYiDhVG65k/r6kWLNpmUgyzMEdBkOZsPlGvILBwJOYfBUeeQNYM5TlPhPrQGG5D8gMAAAV53b2GJd38+K9ffORWolAQ9oUDNbwkG/4LDuDnWE1EgyNfhyqLYVRlPFNp3zBkKXiiYhlncQ36gSkgpQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MtdvUGPNJ2pIXyIRZPcMo41rlw6oM9Ta0km0cfa8CzQ=; b=GS50SKFx/6nYD+kNoIdCG04VRkEa1UdKwRalBIDksHHUzpOuTXAVm116/EK0u8pVCcCji5AFaMhxhYbo8GQ3onlSuV86O6G1AVsWFkEmZ3SDAwf7n/7ounkvOt+ymObzYCGREk1xq665/rBcmF9JaoqfxCW/UOkLE/11g1padny6IETogkb8/u5zK10dB6IRSVoSAs7hkSediosQg2R9HCM1Zq+RbvHv0z+EV0+UNn3Xh/Wbvyd6N9t3mOWyEg0AauQUmYOM6EjTSZrnBfFPh0zWhFBXeMiy1QHA5VUoc4Fc+RLODJ7W3KffdsLiRPRGwEctv5I8Bt8sWG3OjYZc2g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=evequefou.be; dmarc=pass action=none header.from=evequefou.be; dkim=pass header.d=evequefou.be; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=evequefou.onmicrosoft.com; s=selector2-evequefou-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MtdvUGPNJ2pIXyIRZPcMo41rlw6oM9Ta0km0cfa8CzQ=; b=OMxxPdSsw6W64gYvZc9xSeu7ayj3RywgY6WL6x0lDpg9i/lDAaAvT2jyp7YyTGyh7WXNdv+Tg0x4osuqi9h/lfWb1GmUKmaf7DjpSTdHQfnxlMlLEk85MT6L7rwIHuMnizLYzVgy9uNeymQ0FduV8IsfANdipe6YbYw5lZnCW5E=
Received: from CH2PR22MB2086.namprd22.prod.outlook.com (2603:10b6:610:8c::8) by CH2PR22MB2056.namprd22.prod.outlook.com (2603:10b6:610:5d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3654.24; Thu, 17 Dec 2020 20:06:33 +0000
Received: from CH2PR22MB2086.namprd22.prod.outlook.com ([fe80::5c87:a789:7ed6:8687]) by CH2PR22MB2086.namprd22.prod.outlook.com ([fe80::5c87:a789:7ed6:8687%3]) with mapi id 15.20.3654.025; Thu, 17 Dec 2020 20:06:32 +0000
From: Mike Bishop <mbishop@evequefou.be>
To: Martin Thomson <mt@lowentropy.net>, "ietf-http-wg@w3.org" <ietf-http-wg@w3.org>
Thread-Topic: 0-RTT Design for HTTP/2
Thread-Index: AQHW03s28l7TXq7P0EG7KalsBtFvw6n7q4Cg
Date: Thu, 17 Dec 2020 20:06:32 +0000
Message-ID: <CH2PR22MB208685B1C40086A3C7373B73DAC40@CH2PR22MB2086.namprd22.prod.outlook.com>
References: <126ee381-7828-451f-865a-db6357928243@www.fastmail.com>
In-Reply-To: <126ee381-7828-451f-865a-db6357928243@www.fastmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
authentication-results: lowentropy.net; dkim=none (message not signed) header.d=none;lowentropy.net; dmarc=none action=none header.from=evequefou.be;
x-originating-ip: [72.49.212.17]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 29fcd0ed-02a1-4054-b3da-08d8a2c74011
x-ms-traffictypediagnostic: CH2PR22MB2056:
x-microsoft-antispam-prvs: <CH2PR22MB205659DAACF93B5C1D7E8006DAC40@CH2PR22MB2056.namprd22.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:186;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: FpfyPWzAnzsFmm+SwDsZySly/oA3yersOFeL2ba99BgY/lAb0nTYaufprh6A7osRulQo2gHpcp7aM/62Sk8bkjoGPgbIfUZtHIALFqGwdfqrLSiDPQg0JS8QBhBI+RVBYmwn90Si4GRkPKgC0dmkv7I+DDfYDzEXp6rHM8JxF6WF6pR+NWtR9tlKTpDP3oQOrm+IY9MPMHVRppA3e05BXUvfBkXjE8FBhvnQp6sS6AJUw3IwCBmqAhdCDMpW0cI9LGWzBfk1kjX63q8R2FmnuEjB/mi7wEchgrcEhl4ms9iNiRsEYyEPQSdNIOnLF0TBied0K+hCiOc2bgl3yrT7JG7hGa+K6Dicv0klNDdsZ/iVPBeaBaw8tuAApaWziAXgFUW/uxIdIJNSoIGb1gjORQ==
x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR22MB2086.namprd22.prod.outlook.com;PTR:;CAT:NONE;SFS:(346002)(396003)(136003)(39830400003)(366004)(376002)(64756008)(66446008)(66946007)(76116006)(71200400001)(5660300002)(55016002)(966005)(9686003)(316002)(86362001)(186003)(508600001)(7696005)(2906002)(8936002)(52536014)(83380400001)(110136005)(26005)(33656002)(53546011)(166002)(66556008)(99936003)(66616009)(6506007)(8676002)(21615005)(66476007);DIR:OUT;SFP:1102;
x-ms-exchange-antispam-messagedata: zbeG4nkp1ra8x52PZox9p4edC5PEtwbAFs0D9xQJp1YZbTjcDTTCsGGj+chwQpDETEWOUrxkLgJBzevyUajEzpnyRD8Da0yJWo0yzdIsvJZlGdbFXUi/qobcAd0fY1uLthRdYgvXP0R200Vhu5jpzhB4FRu3pP5RCiZtecVnBYMHEK/ME0Nl47JUAb0Ffk0n9BhKvzYr66EV89q6s1Vy4MuSDoXsd1hwYaRbC9jHH4mw8NcYeDGCVN+G7qr+4XYph57wbgpDO/hkOIRTTTGfaNng4QU+jQjbmMSIsBZCp3zIScXnoTehBeGNc5SnbBlJffRonfZSmup4XaYe9oj1pNQrSw1DYSSIWCFhXRess4xYXE2IpTBdLiamYpnesq6pGUEDsYkODQse/vtJwaUHFXwnlvWBSkpsB5SRIiE2a/OXbdk/rEJm6J4C/QxL21znbmMlI22nEv4qmhlAeUjiJRFcWspR/42DDFuUh02M30F5mqs/VNDYuzd5VOVWcz70JUjsdmAMErt/egbJeBCHv4hTLrCy4ZQyyQljt3w0NuYbT0W6N0Ckl9t3c9RW7nBj+b6w+z50H0yW60uHxjQdAMRoVU1F0qcWfTrIrN4wEzzebQFCKa6aSJA1xqJBl5ftT1S7aZ3UtNaPpVVwTxUUnd3/EX+xRpm0r6aDq9Awav6VPApH32SvYkZ/BjPMSdOp0ljitUg0SnwZZRPloMWoVsrJq1aHRT+iXVPrpllnDtA5LsuwZSfKBUhVfSoa+rDqkMk99PhWRvhOe0EA60wsZv6+8UUceHAEG2mFaGY89CrcCEVeKBFcb0qPi4HJxzOQ8JE1Fvit1wQ+FxcFtny03aqrLnLsuDzNtRu/qqZ0sYMKWS5O8XSEzGP5FYD3wabGgx6YoGzUPvzBdSQU+QC757pLxfomAj+wGm/oGFvCCxSKtTA89yM2PKZmvGxtc1bosh97Nw3tXMXgjcML8k8qtb71oEOZEQaJU4k5tQPEi0c=
x-ms-exchange-transport-forked: True
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="2.16.840.1.101.3.4.2.1"; boundary="----=_NextPart_000_005D_01D6D486.34061B90"
MIME-Version: 1.0
X-OriginatorOrg: evequefou.be
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: CH2PR22MB2086.namprd22.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 29fcd0ed-02a1-4054-b3da-08d8a2c74011
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Dec 2020 20:06:32.8644 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 41eaf50b-882d-47eb-8c4c-0b5b76a9da8f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: u91zp8YhfCNMC2cZtvE1x/w9GVXKOn0RM/8OfP6VacMmbJE1RjIlcuYJjV5aR1pP42KPlixGo0kyYbQ+u+ZejQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR22MB2056
Received-SPF: pass client-ip=40.107.220.109; envelope-from=mbishop@evequefou.be; helo=NAM11-CO1-obe.outbound.protection.outlook.com
X-W3C-Hub-Spam-Status: No, score=-3.9
X-W3C-Hub-Spam-Report: BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, W3C_AA=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1kpzXz-0003kq-Ul 50f9844890a464c1840e4db384479ab5
X-Original-To: ietf-http-wg@w3.org
Subject: RE: 0-RTT Design for HTTP/2
Archived-At: <https://www.w3.org/mid/CH2PR22MB208685B1C40086A3C7373B73DAC40@CH2PR22MB2086.namprd22.prod.outlook.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/38317
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: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Thanks for working on this, Martin.  A few thoughts:

*	There initially seems to be limited value in the client sending this
setting:

*	In a 1-RTT connection, the server does nothing with the client's
value - it has committed to store settings in the tickets and does so once
it has sent the setting.  The only value appears to be that it might disable
the feature and somewhat reduce ticket sizes if the client doesn't support
the feature.
*	In a 0-RTT connection, the server likely can't condition acceptance
of Early Data on the client sending this commitment, since the commitment is
itself contained in the Early Data.  Servers decide whether to accept or not
based purely on the ticket and their own state.

You later discuss that a server might not offer Early Data support in
tickets at all to clients which don't send the setting; this is a reasonable
argument and probably worth moving earlier.

*	The spec doesn't directly address this, but it carries the
implication that the client might prefer an older ticket where the server
committed to remembering values over a later ticket where the server does
not so commit.  That's worth calling out, that the TLS stack will need a way
not only to store settings alongside tickets, but a way to establish a
preference between old and new tickets on a connection.
*	4.1:  I presume you mean settings, instead of extensions
*	This is missing discussion of the interaction with the SETTINGS
frame(s) which arrive subsequently.  A few things that need to be covered,
coming from hashing this out in both HTTP/3 and QUIC TPs:

*	If a setting has a remembered non-default value, but is not
mentioned in the server's SETTINGS frame, what happens when the first
SETTINGS frame is received?
*	What settings apply when the client has received the server's
Finished, but has not yet received the server's SETTINGS frame?
*	Is the client required to remember settings values that it does not
support?  How does this interact with having added support for those
settings between the old session and the new one?

 

I have some thoughts on the relationship between this draft and ALPS, but I
think I need to re-read ALPS again before I go into that.

 

-----Original Message-----
From: Martin Thomson <mt@lowentropy.net> 
Sent: Wednesday, December 16, 2020 2:12 AM
To: ietf-http-wg@w3.org
Subject: 0-RTT Design for HTTP/2

 

As part of our adoption call for HTTP/2 (reprise), I opened
<https://github.com/httpwg/http2-spec/issues/781>
https://github.com/httpwg/http2-spec/issues/781 regarding the use of TLS
early data.

 

I thought that it might be worth the time to go through the exercise of
defining an extension to h2 that enabled saving of settings across
connections.  Here it is:

 

 
<https://martinthomson.github.io/h2-0rtt/draft-thomson-httpbis-h2-0rtt.html>
https://martinthomson.github.io/h2-0rtt/draft-thomson-httpbis-h2-0rtt.html

 

For those who prefer text:
<https://tools.ietf.org/html/draft-thomson-httpbis-h2-0rtt-00>
https://tools.ietf.org/html/draft-thomson-httpbis-h2-0rtt-00

 

Though this is conceptually simple (indicate 1 if you are prepared to
remember settings), there are enough fiddly details here that I'm now unsure
whether it is worthwhile trying to roll into our revision of HTTP/2.

 

I'm interested in what people think about this.  One of the major criticisms
of the current arrangement is the time it takes to learn that an extension
is available and this could help with that.

 

Cheers,

Martin