[quicwg/base-drafts] Proposal to make Version Negotiation more like Retry to punt VN to QUICv2 (#2313)

David Schinazi <notifications@github.com> Mon, 07 January 2019 21:36 UTC

Return-Path: <noreply@github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 24E1312D7EA for <quic-issues@ietfa.amsl.com>; Mon, 7 Jan 2019 13:36:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.065
X-Spam-Level:
X-Spam-Status: No, score=-8.065 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.065, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 kqeRoPi5MsMK for <quic-issues@ietfa.amsl.com>; Mon, 7 Jan 2019 13:36:39 -0800 (PST)
Received: from out-1.smtp.github.com (out-1.smtp.github.com [192.30.252.192]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 063EE12D4F0 for <quic-issues@ietf.org>; Mon, 7 Jan 2019 13:36:39 -0800 (PST)
Date: Mon, 07 Jan 2019 13:36:38 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1546896998; bh=/JjxsjiecaRgD5tznY4SU9n8Lt8muosG0ZUFpBMfec8=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=OmRrp2T3gex4UZSZB8mkywqcxIJvYfLII+On4miNklFeH9kI0x0+WtNm9hjwX8k81 ZDuJzL64LFW92jGT+6/+utgq7qa5q6gLqsOBcj49rh90MPc4cOTIOgmC/6trH4PvpL 3bOpwOUTScjNL1toMSxCp14vMjm1qtMyQigBYALA=
From: David Schinazi <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abd62eeb286045971b40fa3d176594a89d881f1a9e92cf00000001184b886592a169ce17a48a98@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2313@github.com>
Subject: [quicwg/base-drafts] Proposal to make Version Negotiation more like Retry to punt VN to QUICv2 (#2313)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c33c6661476_17df3fa1740d45bc4802d9"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: DavidSchinazi
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/DxKNyzM4LE_cG-Idy7sufba9u08>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Jan 2019 21:36:41 -0000

We've been talking about Version Negotiation (VN) for a while, as the current design isn't perfect yet. In particular, it is vulnerable to subtle deadlocks and downgrades and requires a full RTT.

I have a proposal for the WG that would effectively punt this issue, allowing us to focus on other QUICv1 deliverables until we actually need VN and have deployment experience.

I'm working with the following assumptions:
- when we'll have clients and servers supporting both QUICv1 and QUICv2, we will not be willing to pay a full RTT to negotiate which version to use
- when we standardize QUICv1, we will not know what QUICv2 will look like, so cannot design compatible VN in v1 and be sure it will work with v2
- compatible VN can rely on transport parameters, so it will be possible to standardize it later as an extension to QUICv1

The proposal is to make VN packets a fatal error that effectively kills the first connection, and have them transmit a new connection ID to allow clients to create a new connection that will hit the same server (or not, based on server preference). In terms of wire format, this makes VN more like Retry by making the server send a new connection ID to the client.

(Note that this was mostly inspired by EKR's proposals.)
You can view, comment on, or merge this pull request online at:

  https://github.com/quicwg/base-drafts/pull/2313

-- Commit Summary --

  * Proposal to make Version Negotiation more like Retry to punt VN to QUICv2

-- File Changes --

    M draft-ietf-quic-transport.md (231)

-- Patch Links --

https://github.com/quicwg/base-drafts/pull/2313.patch
https://github.com/quicwg/base-drafts/pull/2313.diff

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2313