Re: [quicwg/base-drafts] Client connection IDs are broken (#2844)

Kazuho Oku <notifications@github.com> Tue, 25 June 2019 21:47 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 0AADB12012E for <quic-issues@ietfa.amsl.com>; Tue, 25 Jun 2019 14:47:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.999
X-Spam-Level:
X-Spam-Status: No, score=-7.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_IMAGE_ONLY_32=0.001, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, 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 WfcI8r1vAMnE for <quic-issues@ietfa.amsl.com>; Tue, 25 Jun 2019 14:47:35 -0700 (PDT)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F1BE012001B for <quic-issues@ietf.org>; Tue, 25 Jun 2019 14:47:34 -0700 (PDT)
Date: Tue, 25 Jun 2019 14:47:33 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1561499253; bh=PNHL5czFGfUoEf3eC5WQo+69zqmqyPwtubCdVl4f22g=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=VcFj3xrU03ToQ6qxrfZ+W/IXo9q9VH2QEfNRL6ZCZdz4A7VHDYnASzxmeJi5eTguk 9n+7HOGlZQqjIt18jE5Ok9aLZRTbjXPq1wprxEBvfoxEV2bWbsBqeJD6TZXotc/FXa S9qdIxCc7k55cNXlm8Uncf4GOWZMhZMb0Illl2QY=
From: Kazuho Oku <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKY7QVTHKKKGRZJJNIF3D7EPLEVBNHHBW5BWIY@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2844/505635297@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2844@github.com>
References: <quicwg/base-drafts/issues/2844@github.com>
Subject: Re: [quicwg/base-drafts] Client connection IDs are broken (#2844)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d129675c18aa_17903fb4bbccd9682421f6"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: kazuho
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/TeilDH1ti4jzBcagBBtNFouGOQY>
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: Tue, 25 Jun 2019 21:47:37 -0000

@DavidSchinazi Thank you for opening the issue. I agree that this is a design issue that needs to be fixed.

> Therefore we have two protocol features that are at odds with one another:
> (1) server can share port and use zero-length CIDs (which prohibits migration)
> (2) client can share port and use non-zero-length CIDs
> 
> We can't have both (1) and (2) because the client wanting to do (2) doesn't know if the server will do (1) or not.
> (snip)
> For client connection IDs to be useful in QUIC, I think we should ban zero-length connection IDs when you're multiplexing multiple connections on a local IP + port.

Agreed.

IIRC, the introduction of client CID was a deliberate action to allow multiple QUIC connections be coalesced on a 5-tuple. I think the reason (1) exists is simply because we did not notice that there is a conflict. Based on that, I think we should adjust (1) to allow (2) to happen.

Allowing a client use one (or few) UDP packets to handle many QUIC connections has benefits. It helps code reuse (because servers are designed to use one port for many connections) and also has performance benefits (because you can use one system call to read / write packets belonging to many connections).

-- 
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/issues/2844#issuecomment-505635297