RE: Long Headers and Version Negotiation

Nick Banks <nibanks@microsoft.com> Fri, 05 January 2018 22:46 UTC

Return-Path: <nibanks@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 4A55F12D951 for <quic@ietfa.amsl.com>; Fri, 5 Jan 2018 14:46:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.019
X-Spam-Level:
X-Spam-Status: No, score=-2.019 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_PASS=-0.001, URIBL_BLOCKED=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 XhMOdD_KDVpt for <quic@ietfa.amsl.com>; Fri, 5 Jan 2018 14:46:35 -0800 (PST)
Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0129.outbound.protection.outlook.com [104.47.36.129]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id DEFC812D88D for <quic@ietf.org>; Fri, 5 Jan 2018 14:46:34 -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=eF/hyng5v6kSOlOjBkpY0iUwf0GmrqegzCm1fWink8Q=; b=aXyEn8+O7FwqovXHvYmoJHbzjMftKJUSCDTa1twM/zzrffHUevhH8o+UYPS7PeH35wnDkApfrMjlaoQTOPi3oL8Bd86EZV34N/ZiNdYZ11ltwi9hpwJIZCEo4XVqcR9uEYKFVa5s4skGgElv8Lb7vJO2vMIF4bnkMyrKPat8HuE=
Received: from BN6PR21MB0178.namprd21.prod.outlook.com (10.173.200.12) by BN6PR21MB0498.namprd21.prod.outlook.com (10.172.112.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.407.2; Fri, 5 Jan 2018 22:46:33 +0000
Received: from BN6PR21MB0178.namprd21.prod.outlook.com ([10.173.200.12]) by BN6PR21MB0178.namprd21.prod.outlook.com ([10.173.200.12]) with mapi id 15.20.0407.000; Fri, 5 Jan 2018 22:46:33 +0000
From: Nick Banks <nibanks@microsoft.com>
To: Martin Duke <martin.h.duke@gmail.com>, IETF QUIC WG <quic@ietf.org>
Subject: RE: Long Headers and Version Negotiation
Thread-Topic: Long Headers and Version Negotiation
Thread-Index: AQHThnX+J8BPuJe7nUO6Dw9FXgyXMKNl4JHw
Date: Fri, 05 Jan 2018 22:46:33 +0000
Message-ID: <BN6PR21MB01788D37BFE5700EB00F392AB31C0@BN6PR21MB0178.namprd21.prod.outlook.com>
References: <CAM4esxRroE5rOXEHgqJ-_5Vdm-=odN7VmWBweKQgTnT5pU87XA@mail.gmail.com>
In-Reply-To: <CAM4esxRroE5rOXEHgqJ-_5Vdm-=odN7VmWBweKQgTnT5pU87XA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Owner=nibanks@microsoft.com; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2018-01-05T22:46:32.0641011Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Application=Microsoft Azure Information Protection; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Extended_MSFT_Method=Automatic; Sensitivity=General
x-originating-ip: [2001:4898:80e8:1::77f]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BN6PR21MB0498; 7:A5MBTGDETBSIS+/XlmbEngQ0qjWOtY/G2YZRjfBtvg+AzLeG7htB1TV4jTDv/4r7a/sit5jEKF9WNwFmwnggpoetO28Xy/ChcTEk7GZiB9AQNncrGAuECyvOoqhMJgtKuOMNHrVASbeCyI1SOVmMe7+8wNOuvJi0S4QC5eY2uGDr5dWUVt88cT1qvxAwCw01m9mFaGgnvFjcEXJPyJ/gJzfi7R3oWFiNi3vBwnjL7zjP7sGzlmzRHhWiq2Bsno/f
x-ms-exchange-antispam-srfa-diagnostics: SSOS;
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 71cc978e-009b-4930-77e5-08d5548e2b83
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020020)(48565401081)(5600026)(4604075)(3008032)(4534040)(4602075)(4627136)(201703031133081)(201702281549075)(2017052603307); SRVR:BN6PR21MB0498;
x-ms-traffictypediagnostic: BN6PR21MB0498:
x-microsoft-antispam-prvs: <BN6PR21MB04980E6431D46D2F3322EE80B31C0@BN6PR21MB0498.namprd21.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(189930954265078)(219752817060721)(21748063052155);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(61425038)(6040470)(2401047)(5005006)(8121501046)(3231023)(944501075)(3002001)(10201501046)(93006095)(93001095)(6055026)(61426038)(61427038)(6041268)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:BN6PR21MB0498; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:BN6PR21MB0498;
x-forefront-prvs: 05437568AA
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(346002)(396003)(39380400002)(366004)(39860400002)(189003)(199004)(10090500001)(53546011)(25786009)(6506007)(110136005)(606006)(316002)(6246003)(10290500003)(8990500004)(81166006)(478600001)(53936002)(14454004)(22452003)(76176011)(39060400002)(8676002)(33656002)(790700001)(3660700001)(106356001)(6116002)(97736004)(86362001)(99286004)(19609705001)(77096006)(229853002)(2906002)(236005)(68736007)(7736002)(55016002)(7696005)(81156014)(6436002)(2950100002)(102836004)(8936002)(105586002)(86612001)(3280700002)(9686003)(2900100001)(6306002)(54896002)(5660300001)(74316002); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR21MB0498; H:BN6PR21MB0178.namprd21.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)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=nibanks@microsoft.com;
x-microsoft-antispam-message-info: Vc7Ef37+SHLbtkB5stbnRzS9SaooqH8EMjvsH+vGz0cxoIVsy4xLYautLkWWoxGxqstprqofI4P5lhIog1B/kg==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BN6PR21MB01788D37BFE5700EB00F392AB31C0BN6PR21MB0178namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 71cc978e-009b-4930-77e5-08d5548e2b83
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Jan 2018 22:46:33.3817 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR21MB0498
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/GtCnaBcM6g3xO_UF__zSp1Va5Ew>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
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: Fri, 05 Jan 2018 22:46:37 -0000

If you are sending 0-RTT packets then you have connected to this server before and should be able to remember the version you used. The only issue then, is if the server stops supporting a particular version and then you try to reconnect. Either way, a server might want to have some throttling logic for VN packets sent out; but I don’t think it would be the end of the world if it didn’t.

- Nick Banks

From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Martin Duke
Sent: Friday, January 5, 2018 2:39 PM
To: IETF QUIC WG <quic@ietf.org>
Subject: Long Headers and Version Negotiation

The invariants draft<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-thomson-quic-invariants-00&data=02%7C01%7Cnibanks%40microsoft.com%7Cd3a2449b9239497e80a608d5548d1eff%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636507887456170898&sdata=l1gMfIkx9QmJiJtkHRALPevafNru5A63IwiMsnUaj84%3D&reserved=0> only reserves the 0x80 and 0x40 codepoints in the first byte of the packet.

The transport draft suggests that only initial packets should trigger version negotiation. However, the Initial Packet byte (0xff) is not invariant. So for version negotiation to work at all, servers must send VN packets for any long header type where the version is unsupported -- otherwise, QUICv2 might select 0xe3 as the Initial Packet and v1 servers would ignore it.

On the other hand, in 0RTT cases this might create a storm of VN packets if the version is wrong. I suppose clients are probably not sending 0RTT if they don't know the supported versions.

Am I thinking about this correctly? If so, I'm happy to file an issue, and a PR if we agree that the correct solution is to reply with VN to all long headers with unsupported versions.

- Martin Duke