Re: QUIC Version Negotiation Extension
David Schinazi <dschinazi.ietf@gmail.com> Wed, 06 November 2019 19:17 UTC
Return-Path: <dschinazi.ietf@gmail.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 CD8C8120104 for <quic@ietfa.amsl.com>; Wed, 6 Nov 2019 11:17:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 ZjkxMt1_x5Mw for <quic@ietfa.amsl.com>; Wed, 6 Nov 2019 11:17:45 -0800 (PST)
Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com [IPv6:2a00:1450:4864:20::230]) (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 F2731120044 for <quic@ietf.org>; Wed, 6 Nov 2019 11:17:44 -0800 (PST)
Received: by mail-lj1-x230.google.com with SMTP id n5so16424096ljc.9 for <quic@ietf.org>; Wed, 06 Nov 2019 11:17:44 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=f7bNM/4LhVY97m2NbS8gHZVYud9KK9INDKygjMtWsPw=; b=cka7knVkPcHz6MDyUwXWT6jALpSKIy0BIa3+C3vh7XOJ41XMXpdyO3TWKiyBmepvOG 2EWIbL5nZloaZd6V8y0B9hXIykWSjmlo/fO6U6ZhvfVrdqp86uIUUBPDz30XBSnYAkaj n/JP8moQf/eMRkJuovt7T5urriQf8pu1CfziKEnfvlgO8pqybtDQOVzn+dB3usRHDpwA yZRMcN8BqLw28ZS9nC/0mo4LISn/vcEw4GdT6ys3F7Dq03r6XPxqptgk7xGPocfV8LRb M1o1FG+ZNaSPAe/TUbklGhmoRjFudzhuzyUGanqXTgyJtpDTvz7W5WZz9ykSof5s5406 3J0Q==
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=f7bNM/4LhVY97m2NbS8gHZVYud9KK9INDKygjMtWsPw=; b=CPVgaoUzzgF6sZbErjZc+qIJlJz19Ph7c8IqaL7OYTxoqZhEgJQSduIHFKEIryN5TY lQzydsfL1suIJ8X0VrMzuslJ/zZWEanB6lbTYkk96EhPS1ZN/zw7nr9gm/C1GWVBQArB cI2847cUZAc+LO70OHlgZTR1t4G900hWK51BRGT+l4uOwGVI2xXnf2nIOzllGAtxpfnR 2QjCI61RfMo8a39ipendeFmM/dWsR2I4P31WGL4UdZyuJDjKQxJB4DwxYVgUR4vnIbEs WAgrNWqz8LkJ8rMYEM0+RJ2JGSS3YD5+f/jM2LPpRKr1IeMKEQQ8K/hDKzzfFvgcW6Vu uPIg==
X-Gm-Message-State: APjAAAUAZZnzuTczxBodBsUHO/6PWoqQChHf7YMLolyIigEK6euq3ptc tDKQFFT5XsQ92d/uvXKdg0t0AaHU4qOKHRjdWNU=
X-Google-Smtp-Source: APXvYqy9jOKWGVx4O/EpYHPAn6UWhUhL91Yrw5xALg3BqME+RubNUo4X5Abt5kyZ5PxMxUCNKSidmt7+8HmUgF8ptL0=
X-Received: by 2002:a2e:b5a2:: with SMTP id f2mr3068733ljn.108.1573067863142; Wed, 06 Nov 2019 11:17:43 -0800 (PST)
MIME-Version: 1.0
References: <CAPDSy+4wrhqejh9k8=G7W267EgcT5Z2sDK7ZBGKtNn5kkbXGfg@mail.gmail.com> <BN6PR2201MB1700BB1DAD2872A2FA50059FDA790@BN6PR2201MB1700.namprd22.prod.outlook.com>
In-Reply-To: <BN6PR2201MB1700BB1DAD2872A2FA50059FDA790@BN6PR2201MB1700.namprd22.prod.outlook.com>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Wed, 06 Nov 2019 11:17:32 -0800
Message-ID: <CAPDSy+5GgGHMCtVM5DAjNnfdr4KjAtC2EezVeJYjRkGwUrRCRg@mail.gmail.com>
Subject: Re: QUIC Version Negotiation Extension
To: Mike Bishop <mbishop@evequefou.be>, Martin Thomson <mt@lowentropy.net>
Cc: QUIC <quic@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000030b6c10596b26785"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/pLt7cED4KSN3jLPyUYeGsFgfef8>
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: Wed, 06 Nov 2019 19:17:48 -0000
Thanks Mike and Martin. I agree with your comments. The current draft evolved from the previous revision that only supported compatible versions, and I agree that more of the text needs to be refactored or rewritten. I've filed GitHub issues to make sure we don't lose track of your specific comments: https://github.com/ekr/draft-schinazi-quic-version-negotiation/issues/4 https://github.com/ekr/draft-schinazi-quic-version-negotiation/issues/5 David On Wed, Nov 6, 2019 at 10:29 AM Mike Bishop <mbishop@evequefou.be> wrote: > Some notes: > > - *Section 3: *“Version negotiation takes place after the retry cycle > is over.” This is only possible for compatible versions; if the server > does not support the version the client attempted, it obviously cannot send > a Retry packet in that version, because Retry packets are version-specific. > - *Section 3: *“Servers must retain the ability to process the > Initial packet from older versions….” No, it means that *if the > server wants to avoid a VN packet*, it needs to be able to process the > Initial packet from the version the client tried. > - *Section 4: *Rather than putting a count-prefixed list of versions, > perhaps consider just embedding the VN packet payload? It’s equivalent, > but easier to explain. > - *Section 7: *Clearly it is possible to possible to add new frame > types to Initial packets in a future version, I think what you mean to say > is that this is a change that would break compatibility between versions. > > > > As a general statement on the document, you assume throughout that all > versions have packet types, contain packet types called Initial and Retry, > and that Initial packets contain frames. The odds of those things being > true across QUIC versions is likely high, but they’re not invariants, so > you can’t assume them here. You need to state general principles, and then > use concepts from QUICv1 as examples of the principle. > > > > For example, rather than discussing version compatibility in terms of > Initial packets, you might want to say that versions A and B are > “compatible” if the first flight of packets sent by the client in version A > carries enough information for the server to generate the corresponding > flight in version B, the server speaks version B, and is able to parse at > least the first flight of version A. > > > > Also not discussed is the case where the server speaks version(s) which > are compatible with what the client offered, but doesn’t speak the version > the client offered, even enough to generate the response. With the right > definition of “compatible,” this just falls into the “incompatible” path > and works for the server, but you need to call out the fact that the client > shouldn’t consider it an error if the server uses the incompatible path > between versions that the client thinks are compatible. > > > > *From:* QUIC <quic-bounces@ietf.org> *On Behalf Of * David Schinazi > *Sent:* Monday, November 4, 2019 3:30 PM > *To:* QUIC <quic@ietf.org> > *Subject:* QUIC Version Negotiation Extension > > > > Hi everyone, > > > > From the recent discussion on multiple PRs, it appears that there might be > a need for downgrade-safe QUIC version negotiation, earlier than we > expected. > > > > EKR and I updated our extension to hopefully suit these needs: > > https://tools.ietf.org/html/draft-schinazi-quic-version-negotiation-02 > > > > Comments welcome here or on the GitHub (link in draft). > > > > Thanks, > > David >
- QUIC Version Negotiation Extension David Schinazi
- Re: QUIC Version Negotiation Extension Mikkel Fahnøe Jørgensen
- Re: QUIC Version Negotiation Extension David Schinazi
- Re: QUIC Version Negotiation Extension Christian Huitema
- Re: QUIC Version Negotiation Extension Mikkel Fahnøe Jørgensen
- Re: QUIC Version Negotiation Extension David Schinazi
- Re: QUIC Version Negotiation Extension David Schinazi
- Re: QUIC Version Negotiation Extension Mikkel Fahnøe Jørgensen
- Re: QUIC Version Negotiation Extension Mikkel Fahnøe Jørgensen
- Re: QUIC Version Negotiation Extension David Schinazi
- Re: QUIC Version Negotiation Extension Martin Thomson
- RE: QUIC Version Negotiation Extension Mike Bishop
- Re: QUIC Version Negotiation Extension David Schinazi