Re: Increasing QUIC connection ID size

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Mon, 15 January 2018 10:24 UTC

Return-Path: <mikkelfj@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 7284F12DA0A for <quic@ietfa.amsl.com>; Mon, 15 Jan 2018 02:24:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level:
X-Spam-Status: No, score=-2.698 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_LOW=-0.7, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 xElNuVmEEccE for <quic@ietfa.amsl.com>; Mon, 15 Jan 2018 02:24:05 -0800 (PST)
Received: from mail-io0-x22b.google.com (mail-io0-x22b.google.com [IPv6:2607:f8b0:4001:c06::22b]) (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 0833E12DA2B for <quic@ietf.org>; Mon, 15 Jan 2018 02:24:02 -0800 (PST)
Received: by mail-io0-x22b.google.com with SMTP id f6so12548708ioh.8 for <quic@ietf.org>; Mon, 15 Jan 2018 02:24:01 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:in-reply-to:references:mime-version:date:message-id:subject:to :cc; bh=YBsBv7mOR8/tpm5Y7MhTbhlYwPOLWxudu1QKlBbQVEI=; b=kGCcsxF1JuIfBEeeHOnOgHPNozSTNe0HUXZRto1BpuWQJM//ejpKc+QqSXJ4xwk87H OorwvJnjZvq8Q/LV0KuGE72B7FAryunbe2PxIueJURAj0hQMos1w4+0sUS/VXlCZk4EK 2sOp+6w4RRuN34FZslIwG1FE4Egqq+fJJaSNywe5OaM8ysZ9wK/2X1/Xt3+IPcwEjrC6 fqpyJ6tvBRFbPOS3EXs0glYj8qeDL32TnTpQhYFzz9sKt3sxBSxSAPC/6Srhf0h3NJBf mMdqDNQi7u9zxB3Asw4tBSJhJRzVjEOAqD0x8GvhkxCSuqA3FD7KYplu8FQhiHUuuFov u+Gw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:in-reply-to:references:mime-version:date :message-id:subject:to:cc; bh=YBsBv7mOR8/tpm5Y7MhTbhlYwPOLWxudu1QKlBbQVEI=; b=f21ISoVTBRinaOLU0mW93DSfR7zfFAiY3nddWBMaWNUuQgDZOHqr5g6h4hj6ZwmHlp z4B1jfZDKBjR5MB4QEZJwx+IOZWx5hon5Gwgk951p/hhWjumpZTNcspmDNKXNK9+IQW6 FNe3DcPr+V9CtZ/VJ5b9jtpAdNdmmd20sNldNMvcIXP3SmYyDUqY9WNzSFH7Tf79sMdT 6zZ3yH4gPMp//wZpO+CKJwMJaWrZiAHRdEKe0LeWZMg/E3/OGMh011dXk0hy+73R3WK1 W/Z0FFVgcqYMJrpA2JxfzZxdyibREFYE9WP0WfsIlFMw/EwbUdpg3krQygDJPG4vAW3W AJiw==
X-Gm-Message-State: AKwxyteiBPYonNxwDy5+t7tJSmxGEzrDDOXBxRkxFrojnOadSZOFsyDu naCFIqaMCwiNYBm0/C8P1pQZULtREWtIkthhawAvWQ==
X-Google-Smtp-Source: ACJfBou6LjDGlyghsyorrped+ZC4s1OtGeYI4rTTeAwT58vXnTmVHm85z9WBGmg2Ffx/xRGDEpmUuwYjVYlDgCGHeo0=
X-Received: by 10.107.168.25 with SMTP id r25mr13209016ioe.16.1516011841325; Mon, 15 Jan 2018 02:24:01 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Mon, 15 Jan 2018 05:24:00 -0500
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
In-Reply-To: <CABkgnnVfy+Jyffj_TsyCBpkXC73T2W=qPiHM24z=UtXfkPC94A@mail.gmail.com>
References: <CAAZdMad=YnTyXG-q0ACpT=tyCSX1GgRLvb=8HT3Au=e9_XT5Ag@mail.gmail.com> <CABkgnnVfy+Jyffj_TsyCBpkXC73T2W=qPiHM24z=UtXfkPC94A@mail.gmail.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Mon, 15 Jan 2018 05:24:00 -0500
Message-ID: <CAN1APdcs2siVO3s=DHiPx=Tg7NpnEHZwKpqJHNgWf-3F2cv5rQ@mail.gmail.com>
Subject: Re: Increasing QUIC connection ID size
To: Martin Thomson <martin.thomson@gmail.com>, Victor Vasiliev <vasilvv@google.com>
Cc: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a11427bca470f9c0562ce038e"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/VFSargWTUpz53_oYtJ1llMvg0n0>
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: Mon, 15 Jan 2018 10:24:07 -0000

I’m corcerned about the overhead. In the p2p use case, there’s no need for
encoding any routing information into the connection ID, and since every
node just handles a small number of connections, even 4 bytes would be more
than enough to distinguish between connections.

This is true. In some cases you might want a long routing ID in p2p, but
messages are routed inside established connections where each node has only
a few “physical” connections and each message has a large number of
possible targets. Having both a connection ID and a long internal routing
ID, and the auth tag would be a lot to carry for short status messages.

I earlier suggested a possible varlen extension to 64 bits. An alternative
is to have the client always connect with 128-bits and have the server
respond with a connection id of chosen size.

Having a 128-bit client ID that only exists during handshake ought to be
always enough. It could also be used for fast rejection of invalid
connection attempts by placing some hashed knowledge in the ID, which is
deployment specific. Or it could provide priority access during a DoS
scenario.

The server can choose an established connection ID length that is agreeable
with the infrastructure, which could be down to a single byte - which still
allows for single port client usage with little overhead. This is
especially useful on micro-controller deployments where a UDP header might
be skipped. Routers can assume a fixed size connection ID because the
servers will use something the routers can understand.

I am a bit concerned about connection migration because a new path might
need a different kind of connection ID both in size and in encoding. Simply
using the next NEW_CONNECTION_ID might not be optimal because the routers
on the new path might be different.