Re: Long Headers and Version Negotiation

Martin Thomson <martin.thomson@gmail.com> Sun, 07 January 2018 23:19 UTC

Return-Path: <martin.thomson@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 ED284124BE8 for <quic@ietfa.amsl.com>; Sun, 7 Jan 2018 15:19:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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, RCVD_IN_DNSWL_NONE=-0.0001, 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 VHkRj8iBMP_5 for <quic@ietfa.amsl.com>; Sun, 7 Jan 2018 15:19:05 -0800 (PST)
Received: from mail-ot0-x22d.google.com (mail-ot0-x22d.google.com [IPv6:2607:f8b0:4003:c0f::22d]) (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 85675124B17 for <quic@ietf.org>; Sun, 7 Jan 2018 15:19:05 -0800 (PST)
Received: by mail-ot0-x22d.google.com with SMTP id q39so7948377otb.8 for <quic@ietf.org>; Sun, 07 Jan 2018 15:19:05 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=fjpMdD8GwQROokqlKG1FKOxGYNmJ8J6osfdGjZE8ldI=; b=CwFlNTCvtdvsXLvTZw0DUBm2uyramo3exluRNjN0ddxyBHVxfIhd/hTdrKO4fAcPCh JEJttv8VD//mbwkyZ9LCvNbObYiX2pKYQfdUw4kPHYVJ7/vjXZXjQH7aSRLUzQcAjatl Bk23smjsZY5T8y+XPnzXu2SmlGvYeiVR+qcQiOiBRR+pOUtzkXk1ldrqs0BQiom8+Vj9 Qiwv9pzp7Dc6xBXehSRPzygNyXX+KFoQcW/lDQM3T052ow5+ZH7HFuEKbm/sGsfi9wbm FCBMVe28y4XzfNx4WT1/RhUMI1hsm5/Lvb/SwXERnPENB+r5pDlHx//d7zvG9F5I2/jP wP3w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=fjpMdD8GwQROokqlKG1FKOxGYNmJ8J6osfdGjZE8ldI=; b=gK55H6UhPT5YFoet/TltvIqr5WC4ElnzyDDmiBaMBbNLLUPyMnhBhZqK0n1+Smkyj1 HpmGsv4G0tRDIJHGXbz1VsHLBnIFT0RcEP96dQs/B5fMiemsqFHFvYvfbzNtjPCn/O+D UHnMcEOo9Wg3wVryc/stX4TvqquahQqYP37JfQQJEUPu7qWibcWeIYK922JIHda8aWCV HFoVmLNG/Ed8ynT6Zst+/azci06kzPQGPysOWH5JhpzcI182f6O4VOE85H8DnupQ5FP7 qW9tXqZ8pVgRf0SuItdf22T4a5KqbtJiZvBenUZ4eAtShAvaSYDYa6nLzVBIyUhNllO4 MF6Q==
X-Gm-Message-State: AKwxytc89sCyDn+72HBNxY2imbN+xVIoMmqg+ksgzGIGEL4lGWrr5+X3 9dLUE4QGciRZD3pqTMnk3wugAQW1huBn3fgCUvA=
X-Google-Smtp-Source: ACJfBou/P6RNZJeZKQhpcBahFeF1Si0vzX97KYwjsTTblxRED6vSXVwHTC58svXXi5y75ZPfs3GO2pTvVhlFOaxocuk=
X-Received: by 10.157.40.134 with SMTP id s6mr6008768ota.133.1515367144778; Sun, 07 Jan 2018 15:19:04 -0800 (PST)
MIME-Version: 1.0
Received: by 10.157.39.16 with HTTP; Sun, 7 Jan 2018 15:19:04 -0800 (PST)
In-Reply-To: <BN6PR21MB01788D37BFE5700EB00F392AB31C0@BN6PR21MB0178.namprd21.prod.outlook.com>
References: <CAM4esxRroE5rOXEHgqJ-_5Vdm-=odN7VmWBweKQgTnT5pU87XA@mail.gmail.com> <BN6PR21MB01788D37BFE5700EB00F392AB31C0@BN6PR21MB0178.namprd21.prod.outlook.com>
From: Martin Thomson <martin.thomson@gmail.com>
Date: Mon, 08 Jan 2018 10:19:04 +1100
Message-ID: <CABkgnnWUqv2Y2UCaq6EF1cBBKiAzgvua-KQzobPMVHZBcpXvXw@mail.gmail.com>
Subject: Re: Long Headers and Version Negotiation
To: Nick Banks <nibanks@microsoft.com>
Cc: Martin Duke <martin.h.duke@gmail.com>, IETF QUIC WG <quic@ietf.org>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ERsMiC_X0tQdNUJ39VVb9iW7o9g>
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: Sun, 07 Jan 2018 23:19:07 -0000

We had a similar concern with TLS, in that a server that advertises
0-RTT support could later decide to disable TLS 1.3.  That leads to a
similar sort of issue: 0-RTT data hitting a server that doesn't know
how to handle it.  We concluded that advertising 0-RTT was a
commitment to support that configuration until the 0-RTT ticket
expired (at least to the extent that the server wouldn't choke on
0-RTT).

Mike's right in saying that QUIC is somewhat better able to cope.  Not
using ordered delivery means that this turns into a flood of version
negotiation packets rather than anything immediately fatal.  That
said, we could recommend that servers treat 0-RTT-enabled tickets as a
commitment to support a given version.  That effectively means
disabling 0-RTT on versions that you plan to decommission.  Maybe
that's a manageability consideration more than a protocol one.

On Sat, Jan 6, 2018 at 9:46 AM, Nick Banks <nibanks@microsoft.com> wrote:
> 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 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