Re: Need your help: different connection IDs in the same datagram
David Schinazi <dschinazi.ietf@gmail.com> Thu, 16 July 2020 00:00 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 D6F5D3A0B97 for <quic@ietfa.amsl.com>; Wed, 15 Jul 2020 17:00:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 8GUiNW6OOBGD for <quic@ietfa.amsl.com>; Wed, 15 Jul 2020 17:00:36 -0700 (PDT)
Received: from mail-lj1-x22f.google.com (mail-lj1-x22f.google.com [IPv6:2a00:1450:4864:20::22f]) (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 756EC3A0D12 for <quic@ietf.org>; Wed, 15 Jul 2020 17:00:28 -0700 (PDT)
Received: by mail-lj1-x22f.google.com with SMTP id q7so4935119ljm.1 for <quic@ietf.org>; Wed, 15 Jul 2020 17:00:28 -0700 (PDT)
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=7OXxaLy2MoqAzRPSGxLRIWhXg7l/v3qhYHHoMf6QXhQ=; b=KxZX3oN/Cm5ow9ad4jQ4autDeXOZhGAB6WAcYtUgMqqe69JYqZrT+MdzDNSBQ/Yqoc rcjD/N9ja2haaU8aoap5Ql7LDyatt+OA1MYhvy/1mfQrdn9SW6xmpf24NCdtD+IlEbCU qJTkep/3PfnXh1p1KF8E1rJss6YHT0aKWxV6hGPQFeedgVf20J7nYPrhbbIwbC+rh+1l kmk4PPy0NlO8zhfeCRSzbxJUhDltiMYK20TEcgaMgFAw+egUjd6fjpFjmRccacVOYhgr ROq74P76sYQSa6Mg0gOf/icuLl3R+Z6pfx5Y07tejZv/fsuUQdTO0v7yUXaCYeOl701M WYcg==
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=7OXxaLy2MoqAzRPSGxLRIWhXg7l/v3qhYHHoMf6QXhQ=; b=qkvd+yC4XoRhdiqNJRQf+cdmEJue8g8ThreMjdYMHupSwVVj70wsA9H/EbGt+7wN55 bPUvks/dRwoKDD2Hs6ifTvvyDvQueo1F0bwWbfrqBMyJ12w9rl3COwMuCUAQVQmoxwTv 6jiXIQ4XzAtbLeasly797N5K/0TeiQStD24glm1NElvFdGiiTGBXIO33EDULdZKwSiRD BsQiNskp9SxfpZSYPwMpPYVnJ5bO7dTXeyR6Y0EOm/QTxOKpYN0iUO+HK4RQjT7rb7vu ojgdOx4tTMKQp19jBZpEAVmGQoTjTGgSejKBFF/b64zwYSIfEApmFTY2bLzTGQGuvHvY 2rbQ==
X-Gm-Message-State: AOAM532VyY0UpCnLhAbvvQAHrjKWiuiPJenOk9lYHKd9C82XMVJ9fi0r Pv2lxRcOZKTGNbn2nf5n5xHC7w12xsAvfnjF47SC3Q==
X-Google-Smtp-Source: ABdhPJwdO2a70iBZ6CvTUWbhWLue19ku31V5erlZf2qhPdQFh5EOYtlaJZKbC+2PeUff3sra1poO7N/EUuYz7B/OPsQ=
X-Received: by 2002:a05:651c:550:: with SMTP id q16mr679383ljp.188.1594857626571; Wed, 15 Jul 2020 17:00:26 -0700 (PDT)
MIME-Version: 1.0
References: <ae21cc02-3357-40c8-a1e9-3966fdf575a5@www.fastmail.com> <20200715180231.GB9808@lubuntu> <CAKcm_gPfc3sFy0kuyTzUFk2XFMZ8NdXTd7CuNf0o0v+RXDG=xg@mail.gmail.com> <CH2PR22MB20861D3BEA06EE61AA882245DA7E0@CH2PR22MB2086.namprd22.prod.outlook.com> <CAKcm_gP24=x64QwcCdki-jxFXsLKiTPH8UYFdGOG3H1YJgEbOQ@mail.gmail.com> <9b265aef-d1bd-47cc-9a1c-677eef223c73@www.fastmail.com>
In-Reply-To: <9b265aef-d1bd-47cc-9a1c-677eef223c73@www.fastmail.com>
From: David Schinazi <dschinazi.ietf@gmail.com>
Date: Wed, 15 Jul 2020 17:00:15 -0700
Message-ID: <CAPDSy+4VkRcHJvgSrr86K56esVvnNXdANJOF=yfe5gmPtd9J5w@mail.gmail.com>
Subject: Re: Need your help: different connection IDs in the same datagram
To: Martin Thomson <mt@lowentropy.net>
Cc: QUIC <quic@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000004c958005aa83ba7c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/LWW3Zd1IyB13eaTSoUcR1BiydlA>
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: Thu, 16 Jul 2020 00:00:38 -0000
On Wed, Jul 15, 2020 at 3:49 PM Martin Thomson <mt@lowentropy.net> wrote: > On Thu, Jul 16, 2020, at 07:17, Ian Swett wrote: > > I forgot there's a contradiction, because I thought we disallowed > > sending mixed-CID packets. So I'd prefer changing to MUST NOT coalesce > > packets with different CIDs. Even if you generate them and then > > coalesce them(which we do), that's not that hard to enforce in the > > coalescing code. > > OK, this is good information. I had understood that you were concerned > that you might violate a requirement to have consistent connection IDs. > > Here's one example of how you might: > > Client receives server's first flight, which comprises Initial, Handshake, > 1-RTT (which includes NEW_CONNECTION_ID, because this is a good time to > send that in a lot of cases). Assume this all comes at once, in a single > datagram. > > 1. Client processes Initial and Handshake. > 2. Client generates a Handshake packet (that includes TLS Finished) and > sets that aside. This uses the connection ID from the servers Initial. > 3. Client processes 1-RTT. Sees NEW_CONNECTION_ID, decides to use it. > 4. Client generates first application data, and makes a 1-RTT packet using > the new connection ID. > 5. Client gathers all generated packets and sends them. > > Does anyone care about doing this, or something like it? I think we should disallow this unless someone can show it provides real benefit. If an implementation supports coalescing, it has to handle cases where the last packet doesn't fit so it needs to have code to for example send the handshake packet by itself if the 1-RTT packet is too big. Once one has such code, it's pretty simple to add a check that also triggers this if the connection IDs differ. If someone really cares about not losing the benefits of coalescing, then they can make sure that they don't act on NEW_CONNECTION_ID until the handshake is confirmed. > Because if not, I make a new proposal that changes the requirements to: > > * Senders MUST ensure that all coalesced packets include the same value > for the Destination Connection ID field. > * Receivers SHOULD discard coalesced packets if they are for a different > connection than the first; senders MAY discard coalesced packets that > contain a different value in the Destination Connection ID field than the > first. > I support this proposal.
- Need your help: different connection IDs in the s… Martin Thomson
- Re: Need your help: different connection IDs in t… Marten Seemann
- RE: Need your help: different connection IDs in t… Nick Banks
- Re: Need your help: different connection IDs in t… Dmitri Tikhonov
- Re: Need your help: different connection IDs in t… Ian Swett
- Re: Need your help: different connection IDs in t… David Schinazi
- RE: Need your help: different connection IDs in t… Mike Bishop
- Re: Need your help: different connection IDs in t… Ian Swett
- Re: Need your help: different connection IDs in t… Martin Thomson
- Re: Need your help: different connection IDs in t… Martin Thomson
- Re: Need your help: different connection IDs in t… Dmitri Tikhonov
- Re: Need your help: different connection IDs in t… Dmitri Tikhonov
- Re: Need your help: different connection IDs in t… Martin Thomson
- Re: Need your help: different connection IDs in t… David Schinazi
- Re: Need your help: different connection IDs in t… Dmitri Tikhonov
- Re: Need your help: different connection IDs in t… Martin Thomson
- Re: Need your help: different connection IDs in t… Jana Iyengar
- Re: Need your help: different connection IDs in t… Kazuho Oku