Re: ALPN and QUIC versions
Ian Swett <ianswett@google.com> Fri, 04 June 2021 18:48 UTC
Return-Path: <ianswett@google.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 337E73A1CC5 for <quic@ietfa.amsl.com>; Fri, 4 Jun 2021 11:48:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.6
X-Spam-Level:
X-Spam-Status: No, score=-17.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 mX59viBsW7Vu for <quic@ietfa.amsl.com>; Fri, 4 Jun 2021 11:48:49 -0700 (PDT)
Received: from mail-wm1-x334.google.com (mail-wm1-x334.google.com [IPv6:2a00:1450:4864:20::334]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 675E53A1CC0 for <quic@ietf.org>; Fri, 4 Jun 2021 11:48:49 -0700 (PDT)
Received: by mail-wm1-x334.google.com with SMTP id o127so5927021wmo.4 for <quic@ietf.org>; Fri, 04 Jun 2021 11:48:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1R5yGzGZa9NXhx/0EsuTMLEZASEWtnmtfzQHtK+sJik=; b=tUOHku6Qa7wHyw4UNu9JV1AUEBYTcSwaokLMRaIuk4570kePqj2lnCIRNnPE1Q/yMe KTDkAAxxddLnbMVr0e08ur2vhBtahgC6XEE8DfhoaTbH7ikCOLT/D5ChE7lAlzQJh/NV AHP5h6LXbgjaMOvfyGN0xZPtRrRFNU6MwqgIFRjN3U4e61NgmUIb6IJYBGWEkCDDbkOv 6UMyl96a8LXkrY2R68EAU7GUbr31RaBS6MzDumKEQBFLrCFQXBeCiY7fa1oJtHgMnxEQ v8KCK4pp/9rspepi6cbg3ORhaYmYeGYdYHXJ04rzVbLg/ZIFjSHfN1UUySEcnTykrL96 WgJw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1R5yGzGZa9NXhx/0EsuTMLEZASEWtnmtfzQHtK+sJik=; b=RKuhSncydxbzbebv39iJD/0nZcFH5ltdBuDQ0/lwhbEMARSupQWDFGp5Il4WzrpXPB QfbrPbGUVNPgg1B+3+WjMjmJ3x78wxMsTd5IyJTNavtfj5Ovmgk45WgJw7/KCEjbqUW8 HdTNNH1qCABirsW26dxHrdYhG8THnPxDG5qOBnaAvds5WuvG46YbEOgqNhEXB6jvKR7C HXWS117U8maxv0/Pz4DBMn8lvbbJG2e9auv+r9veMHt/fszsijAOIgPb9eWUNZV7uLQB I/zGi2ZGjHIfEHI+MSqHUwN6QPCz2BJb0OukFi85c9VCYsu8pQcRl75a9K+ZsHGNq29B H9JA==
X-Gm-Message-State: AOAM5318BE/TE242rXSTjg+VcjCD33TwapdgitYVHkZunUMGFS5uJZU5 7RGnKofwYOVntRHyxKV844cJtXXJ36lOboLz9oEslA==
X-Google-Smtp-Source: ABdhPJx97XmJfU1pJr0DlvAmNgPIMMFO/B8PpAp2vzgM69YMMoBzgaH//0tUGp8d/UgMalmM/2RSGB4/dlTLBXpTuOU=
X-Received: by 2002:a1c:4e03:: with SMTP id g3mr4885068wmh.127.1622832526931; Fri, 04 Jun 2021 11:48:46 -0700 (PDT)
MIME-Version: 1.0
References: <CAM4esxSLAMNZQ73sEk-8LnVRiv00b-PDVPmUqY3iMxCSYui0fw@mail.gmail.com> <CALGR9oYhPLC0cUAxt-9a7OqCL5-VLJ-2K+UihFmJ=-8w=QR=Fg@mail.gmail.com>
In-Reply-To: <CALGR9oYhPLC0cUAxt-9a7OqCL5-VLJ-2K+UihFmJ=-8w=QR=Fg@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Fri, 04 Jun 2021 14:48:35 -0400
Message-ID: <CAKcm_gNQEqB4cymek2CoqkKEvdS14eSbS0f3wYXed7m3VFRhMA@mail.gmail.com>
Subject: Re: ALPN and QUIC versions
To: Lucas Pardue <lucaspardue.24.7@gmail.com>
Cc: Martin Duke <martin.h.duke@gmail.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000004c9ec905c3f52447"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/9ODo2CbdfvUxLCEoGgt_eOKAon8>
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: Fri, 04 Jun 2021 18:48:54 -0000
I do think this is worth discussing(again) now that we're about to ship the first application on top of QUICv1 as well as the applicability drafts. We don't have a ton of time to make adjustments, but maybe enough time. I think Lucas' thinking is heading in a good direction. My mental model is that new versions could declare if they offer the featureset of another version. So I can mint a bespoke version of QUIC and as long as it supports the v1 featureset, it'll use the same ALPN. Could a version of QUIC specify that it supports the features of multiple versions(ie: a version of QUIC like v1 and one that only supports datagrams)? Having every application or extension specify which features it's dependent upon sounds a bit problematic in practice to me, but maybe it's not so bad. There are lots of workable ways to do this, but minting a new alpn for every transport version does seem a bit excessive unless we're not going to have many transport versions. Ian On Wed, May 19, 2021 at 8:09 PM Lucas Pardue <lucaspardue.24.7@gmail.com> wrote: > Hi Martin > > Speaking as an individual. There's a lot to consider here, I don't have a > complete response. > > For a start, I think there are ways to rephrase the applicability draft > text to get over some thorniness - seems I'm on the hook to do that, > reviews will will welcome. > > To respond to one of your suggestions > > > On Wed, 19 May 2021, 16:27 Martin Duke, <martin.h.duke@gmail.com> wrote: > >> >> 4) There is no formal trail of linkages. New version RFCs should say what >> apps they support (possibly as generic as "all v1 applications work with >> the new version") and applications should say if (a) the list of usable >> versions is other than the full known set and (b) what properties it needs >> from a QUIC version to operate. This is the path I took in a v2 PR >> <https://github.com/martinduke/draft-duke-quic-v2/pull/6> [3], which has >> no official standing whatsoever. This makes the forensics to obtain the >> full list of usable versions quite a bit harder, but won't explode the ALPN >> registry or the front page of HTTP/3. >> > > I might grade incompatible breaking versions on at least two criteria. > First, is the wire image the same? Second, are the protocol feature changes > that break the contract with upper layers, which would cover removing > features, changing features in ways that break dependent behaviour, adding > features that break dependent behaviour. > > Such a grading exercise would appear to be a useful function of the QUIC > WG in the long run. What I mean by this is that (hypothetically) we should > encourage versions to state if their compatibility with other versions is > breaking or non-breaking. The QUIC version IANA table could, for example, > codify some of this. > The group has the expertise to assess such claims and the desire to avoid > version relationship explosion in breadth or depth (I.e. we would heavily > normalize). > > QUIC extensions could state the known (at the time of writing) version(s) > that they extend. To keep it simple, they'd just need to state the earliest > registered version on each breaking version. We assume that non-breaking > versions published by the IETF all work. A single QUIC extension document > can define how it extends several breaking QUIC versions. We have a similar > situation right now when defining logically equivalent behavioral > extensions that need to work over H1, H2 and H3. > > Application protocols could also state known (at the time of writing) > version(s) that they run over. Same as above. > > When future breaking QUIC versions are published, extension and > application protocols can respond. Update documents could be effectively > no-op, require major/minor surgery, or state explicitly that a version is > not supported if they help the strong need to. > To make this activity easier, both extensions and application protocols > (and their extensions!) would benefit from stating the QUIC protocol > features that they depend on. Reviewing those statements is likely a > service the QUIC WG should provide to other groups. > > I think this possibly leads to a hybrid option 4, where the ALPN registry > has a column that lists only breaking QUIC versions. And we don't mandate > any rules on the number of versions that a token can relate to. > > Cheers > Lucas >
- ALPN and QUIC versions Martin Duke
- Re: ALPN and QUIC versions Spencer Dawkins at IETF
- Re: ALPN and QUIC versions Martin Duke
- Re: ALPN and QUIC versions Lucas Pardue
- Re: ALPN and QUIC versions Ian Swett
- Re: ALPN and QUIC versions David Schinazi