Re: QUIC ossification

Roberto Peon <fenix@fb.com> Tue, 19 February 2019 23:15 UTC

Return-Path: <prvs=7953365c4c=fenix@fb.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 E6A10130E11 for <quic@ietfa.amsl.com>; Tue, 19 Feb 2019 15:15:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.701
X-Spam-Level:
X-Spam-Status: No, score=-2.701 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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=fb.com header.b=LxtGHUSQ; dkim=pass (1024-bit key) header.d=fb.onmicrosoft.com header.b=MzcKhl9Y
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 rqKi59X2kkYb for <quic@ietfa.amsl.com>; Tue, 19 Feb 2019 15:15:01 -0800 (PST)
Received: from mx0a-00082601.pphosted.com (mx0a-00082601.pphosted.com [67.231.145.42]) (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 6F36F1274D0 for <quic@ietf.org>; Tue, 19 Feb 2019 15:15:01 -0800 (PST)
Received: from pps.filterd (m0148461.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x1JNANa5013381; Tue, 19 Feb 2019 15:14:59 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=facebook; bh=HALqEDCz3CtIwfBLkNpA/fXjCTqOZmg1qYtXViqVAyk=; b=LxtGHUSQohLruThu3YWl12qPar0CmTb+W4f6FJu/wM4aVpj6V5YwP4zeaoIygFAnMHOT hn/ffiCrnm+zzyoleiwDhayoBS0xmA5xLmgi1/LCgCyxsmLqoY/Qh9yykub2fEeaXBUS Ow1GV5AGUkWrnjSck4ncwhb3PNciyG/P31M=
Received: from maileast.thefacebook.com ([199.201.65.23]) by mx0a-00082601.pphosted.com with ESMTP id 2qrsuh8acp-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 19 Feb 2019 15:14:59 -0800
Received: from frc-hub06.TheFacebook.com (2620:10d:c021:18::176) by frc-hub01.TheFacebook.com (2620:10d:c021:18::171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3; Tue, 19 Feb 2019 15:14:27 -0800
Received: from NAM05-CO1-obe.outbound.protection.outlook.com (192.168.183.28) by o365-in.thefacebook.com (192.168.177.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.1.1531.3 via Frontend Transport; Tue, 19 Feb 2019 15:14:27 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HALqEDCz3CtIwfBLkNpA/fXjCTqOZmg1qYtXViqVAyk=; b=MzcKhl9Y3Cmb2UMnkMWnc59rbsRy5b9JgLZ/QwlFtyxMpByGsOdJNoaX5khScrliS6ZXMM2nP++GDH4wpKTgeoTr8EBDnFg4mesPmHWNrvpabwv/luifPtvrWng1cH0RaTeo6bQTW6eRR5cpX4QCPoJzqTCyt4i16X2kDmSHWD0=
Received: from BYAPR15MB2312.namprd15.prod.outlook.com (52.135.197.146) by BYAPR15MB2437.namprd15.prod.outlook.com (52.135.198.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1622.19; Tue, 19 Feb 2019 23:14:26 +0000
Received: from BYAPR15MB2312.namprd15.prod.outlook.com ([fe80::2403:324c:ac17:7084]) by BYAPR15MB2312.namprd15.prod.outlook.com ([fe80::2403:324c:ac17:7084%5]) with mapi id 15.20.1622.018; Tue, 19 Feb 2019 23:14:26 +0000
From: Roberto Peon <fenix@fb.com>
To: Jana Iyengar <jri.ietf@gmail.com>, Martin Thomson <mt@lowentropy.net>
CC: QUIC WG <quic@ietf.org>
Subject: Re: QUIC ossification
Thread-Topic: QUIC ossification
Thread-Index: AQHUwxih7UYarYoV30WBSlEhJDleK6Xcr5EA//+EwACAAKdJAP//fAuAgAGRSoCAAArqgIAABPsAgAAA14CAAAMfgIAACY0A//+6QoAAEcIhgAAHiM6AAAFCw4AAAtg4AAAAMeuAAABRNgAAAVt/AAAAuC4AAAHDNQAAHrd+gAAAHQ4AAABwzoAACKm9AAAAEgiAAAAr9QAAACHTgAAATyAAAALUMwAAywJVgAAZs5wAAA9NEYD//3slgA==
Date: Tue, 19 Feb 2019 23:14:26 +0000
Message-ID: <783327C4-3877-48F4-A41A-5987458C39B7@fb.com>
References: <f76aa399-f35d-46c5-b6a7-043d8704a90e@www.fastmail.com> <CACpbDcf_temqJ3EesvboKt280m-TEucMqa-NpYW7-UC5r0p1mQ@mail.gmail.com>
In-Reply-To: <CACpbDcf_temqJ3EesvboKt280m-TEucMqa-NpYW7-UC5r0p1mQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.15.0.190117
x-originating-ip: [2620:10d:c090:200::6:a040]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 1a3be0cd-1486-4ea1-9279-08d696bffe1a
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600110)(711020)(4605104)(2017052603328)(7153060)(7193020); SRVR:BYAPR15MB2437;
x-ms-traffictypediagnostic: BYAPR15MB2437:
x-microsoft-exchange-diagnostics: 1; BYAPR15MB2437; 20:W1c0nvwum/aOtwWsaRpV9YdOWqJPltlUXx3sotoDInhY+FFs7Ap7cKetXRQYoGzCz/CNEmdR3Ln76CjnJSDjkWH8hKOfEI4ICHS1z7QlOnjL6H0HQE+FJ8WksHnjWTlQYIYlFxpTZGzFu35cAATmBz9OtYZa8B6shkMWvl7vFAQ=
x-microsoft-antispam-prvs: <BYAPR15MB24374BB4286183C873AD3E5FCD7C0@BYAPR15MB2437.namprd15.prod.outlook.com>
x-forefront-prvs: 09538D3531
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(376002)(396003)(136003)(39860400002)(366004)(346002)(189003)(199004)(6246003)(68736007)(2906002)(46003)(33656002)(106356001)(97736004)(316002)(102836004)(5660300002)(186003)(486006)(110136005)(86362001)(105586002)(476003)(53936002)(81156014)(81166006)(8936002)(58126008)(7736002)(11346002)(8676002)(99286004)(6506007)(53546011)(2616005)(446003)(6436002)(478600001)(236005)(71200400001)(71190400001)(7116003)(3480700005)(6486002)(6512007)(6116002)(14444005)(25786009)(221733001)(54896002)(6306002)(82746002)(4326008)(36756003)(14454004)(83716004)(229853002)(76176011)(256004); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR15MB2437; H:BYAPR15MB2312.namprd15.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: fb.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: zr9jeC/rJ4XhjcvQNNRRRcNLXtLCRb8OuWuwj/Jg5iYgijkhGR4c5a0cPR1AQJehjpxGx2K6hDBxuU5otbJstAjW+WlL9fVTkVUbVd9gmEZJGXzuuDmDLVb5MY7wY33lKLXTBx5HpBf9cb6/TjHymATExGM+SKP8y9IaMGIgLY3jHaHgrnx8j1ctn0jdz/OpSQtw2XbdNwFmo+jwWdUrLuawnK05XAz4tcDVTR0LTEt2K5hpjfIzXEwHXRAlugKYBJUnwPhKJv+NuyrIv3reBFZwVYmc/w2aoAiph6BuQvyXEQirzXRZIvsTnQo5Q19MECVFCbVU9nSNnSd6u2Oym1kDOQPcx7oh8WHNi11c1FgENwgg0srAm2PrQXIturGsZodwcJChNj2sW8vqUKKpUirMHf/Tcd0BR1MBJ0ean6k=
Content-Type: multipart/alternative; boundary="_000_783327C4387748F4A41A5987458C39B7fbcom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 1a3be0cd-1486-4ea1-9279-08d696bffe1a
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2019 23:14:26.3976 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR15MB2437
X-OriginatorOrg: fb.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-02-19_15:, , signatures=0
X-Proofpoint-Spam-Reason: safe
X-FB-Internal: Safe
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/2UR0HfDKW81i8I8lrIO-8lGjWPc>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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, 19 Feb 2019 23:15:04 -0000

As others have intimated in some form or another, you can also use multiple numbers to express “version 1”.

For instance, pick 64 (or some similar constant) random numbers, and call them all version 1.
-=R

From: QUIC <quic-bounces@ietf.org> on behalf of Jana Iyengar <jri.ietf@gmail.com>
Date: Tuesday, February 19, 2019 at 3:10 PM
To: Martin Thomson <mt@lowentropy.net>
Cc: QUIC WG <quic@ietf.org>
Subject: Re: QUIC ossification

On Tue, Feb 19, 2019 at 7:52 AM Martin Thomson <mt@lowentropy.net<mailto:mt@lowentropy.net>> wrote:
I don't think that there is much value in using two version numbers to refer to the same protocol.  But even if we did, as long as we didn't establish any pattern in doing so, that couldn't be used against us.  So I might tentatively agree that 0x1 == 0x2 would be inadvisable, there is no strong need to do anything special with the first version.  Any attempt to profile QUIC will be done with full knowledge of the version number we pick, so randomness doesn't serve any real purpose.  Subsequent versions might need to use a randomized value, but we can make that decision then.

I figured that making all version assignments random instead of special-casing 0x1 made it simpler to reason about and uniform to code for, but I actually don't care about the IANA assignment for v1 for the reason you note. v1 will be one specific bit-pattern on the wire to start of with, and that can just as well be 0x1. It still does segregate the space, but we can't do anything about it anyways - it'll be 0x1 or some other random number getting special treatment.

The problem of course being that as long as v1 remains, we might find places that no other version does.  The QUIC "magic number" will be whatever we pick, and we can't prevent someone from fixating on that..  We'll convince those people in the same way they will be convinced to open up UDP for QUIC version 1: by making a QUIC version 2 worth enabling.

That was the entire point of having alternate and preferred versions to 0x1. If we have downgrade protection in place, and if there are those who try alternate version numbers for v1, that gives us what we need at the endpoints. I believe that there would be interest at some major vendors to do this at some endpoints. Presumably, we can convince Google to do something, since it has been bit by mbox ossification in the past. I am operating on the premise that we have buy in from a few major providers.

IANA is for me a publication venue where these alternate versions are published and other clients/servers interested in keeping the ecosystem from ossifying can use these alternate versions as well.

I completely get the don't segregate thing.  But to - I think - Mikkel's point about experimentation without permission, I do think that squatting is a perfectly sound approach in a space this big.  TLS people do it in a much smaller space.  As long squatters pick random values, they do so infrequently, and they get IANA registrations for codepoints relatively soon afterwards, the risk of collision is low.  Randomness here is useful - but primarily as a collision-avoidance technique.  The TLS extension codepoint 26 is a great example of why.  Keeping the bar on registrations low (FCFS is a reasonable policy) would also have the effect of making the pool of apparent versions larger, which might be more effective than any other strategy we might employ.

I'm totally fine with experimentation without permission, and using random to avoid collision. My point was entirely about using alternate on-wire version numbers for v1. Nothing here about new or experimental versions.