Re: [quicwg/base-drafts] Permit 0-RTT after Retry and VN (#1514)
Mike Bishop <notifications@github.com> Thu, 05 July 2018 16:19 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 5246A130E35 for <quic-issues@ietfa.amsl.com>; Thu, 5 Jul 2018 09:19:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.01
X-Spam-Level:
X-Spam-Status: No, score=-8.01 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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, T_DKIMWL_WL_HIGH=-0.01] 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 hR-e0VnqM0yL for <quic-issues@ietfa.amsl.com>; Thu, 5 Jul 2018 09:19:46 -0700 (PDT)
Received: from out-2.smtp.github.com (out-2.smtp.github.com [192.30.252.193]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6DEEC129C6A for <quic-issues@ietf.org>; Thu, 5 Jul 2018 09:19:46 -0700 (PDT)
Date: Thu, 05 Jul 2018 09:19:45 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1530807585; bh=kkUMc3IH/U403zdTkRp46FuztTgNRKTsbdb0tNU0s7k=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=ZWSSzCtbkmDreVgW0UlAuSpuSm1FJn2ZbL7qsPQY/mQpz9nnp5LXcvXuGoWQb7hhP RAJtsx5nXklhkJeu5kk2GfD6kAq49PzJb/DELeyc80FF9VaCBAErWyQ9CpWFvJTXUI v7U93/FuWffuVZQTTxQQigmKEw6CcFPG9geL/8+Q=
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab278d485d5e0383dcc0b2f8dd1f1f4fa89f3c6d9492cf000000011756072192a169ce1421be50@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/1514/review/134717567@github.com>
In-Reply-To: <quicwg/base-drafts/pull/1514@github.com>
References: <quicwg/base-drafts/pull/1514@github.com>
Subject: Re: [quicwg/base-drafts] Permit 0-RTT after Retry and VN (#1514)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5b3e45218c8fe_716d3fa654d64f7c588369"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
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/GY3-QBsjGrmnlpoeD3dtBEx2zoI>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.26
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: Thu, 05 Jul 2018 16:19:48 -0000
MikeBishop requested changes on this pull request.
I eventually figured out what you actually meant, but it didn't click for me reading the text the first time. If it's not just me, perhaps more/different explanation is in order.
The key point is that if the CID doesn't change, the 0-RTT packets from before and after the Retry can both be accepted and processed as part of the connection, either via buffering or reordering. So you have to resend all that data, but can't reuse those packet numbers.
>
-The Retry indicates that the Initial was received but not processed. It MUST
-NOT be treated as an acknowledgment for the Initial, but it MAY be used for an
-RTT measurement.
+Either packet indicates that the Initial was received but not processed. Either
+packet cannot be treated as an acknowledgment for the Initial, but they MAY be
"Either ... cannot" feels awkward. Maybe "Neither packet can be...."?
> @@ -727,16 +732,16 @@ Connection ID.
### Tokens
-If the client has a token received in a NEW_TOKEN frame on a previous connection
-to what it believes to be the same server, it can include that value in the
-Token field of its Initial packet.
+If the client has a token received in a NEW_TOKEN frame on a previous
+connection to what it believes to be the same server, it can include that value
+in the Token field of its Initial packet.
This paragraph looks like a rewrap to a shorter line length than the rest of the document. The original layout appears to be fine.
>
-A client SHOULD NOT reuse a token. Reusing a token on different network paths
-would allow activity to be linked between paths (see {{migration-linkability}}).
-A client MUST NOT reuse a token if it believes that its point of network
-attachment has changed; that is, if there is a change in its local IP address or
-network interface. A client needs to start the connection process over if it
-migrates prior to completing the handshake.
+A client SHOULD NOT reuse a token. Reusing a token could allow different
+connections to be identified as coming from the same endpoint (see also
+{{migration-linkability}}). A client MUST NOT reuse a token if it believes that
+its point of network attachment has changed; that is, if there is a change in
+its local IP address or network interface. A client MUST start the connection
I know you didn't change this text, but this seems to preclude clients keeping a cache of tokens and the associated network connections. For example, a mobile device that went to Wi-Fi could keep the cellular token in expectation that it will be on cellular again. Perhaps the better prohibition is that you MUST NOT use the token on a different network than where you received it?
> @@ -770,6 +775,29 @@ are in a different packet number space to other packets (see
{{packet-numbers}}).
+### 0-RTT Packet Numbers {#retry-0rtt-pn}
+
+Packet numbers for 0-RTT protected packets use the same space as 1-RTT protected
+packets.
+
+After a client receives a Retry or Version Negotiation packet, it MAY attempt to
+send data in 0-RTT packets after it sends a new Initial packet. However, a
+client MUST NOT reset the packet number it uses for 0-RTT packets. The keys
If the CID doesn't change, reordering or caching could cause the first flight of 0-RTT packets to remain valid after the new Initial lands. So unless the CID changes (and maybe even if it does, if the server is trying too hard), you have to assume those packets are still outstanding but potentially lost. Maybe we should frame this in terms of fast retransmit?
> @@ -1311,6 +1339,10 @@ Version Negotiation packet.
A client MUST ignore a Version Negotiation packet that lists the client's chosen
version.
+A client MAY attempt 0-RTT after receiving a Version Negotiation packet. A
+client that sends additional 0-RTT packets MUST NOT reset the packet number to 0
+after a Retry packet, see {{retry-0rtt-pn}}.
Since this section is about Version Negotiation packets, the mention of Retry packets seems a *non sequitur*. It's fine to reset the 0-RTT packet number space after a VN packet, because the previous 0-RTT packets will be of a version unknown to the server and therefore will just be discarded (or rather, will trigger more VN packets).
--
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/1514#pullrequestreview-134717567
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… ianswett
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… janaiyengar
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Kazuho Oku
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Kazuho Oku
- [quicwg/base-drafts] Permit 0-RTT after Retry and… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… ianswett
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… MikkelFJ
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Nick Banks
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Mike Bishop
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… MikkelFJ
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… MikkelFJ
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… MikkelFJ
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Mike Bishop
- Re: [quicwg/base-drafts] Permit 0-RTT after Retry… Martin Thomson