Re: [quicwg/base-drafts] Ignore packet loss when the keys are not available (#2327)

janaiyengar <notifications@github.com> Wed, 16 January 2019 01:32 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 92A91130FAF for <quic-issues@ietfa.amsl.com>; Tue, 15 Jan 2019 17:32:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -12.553
X-Spam-Level:
X-Spam-Status: No, score=-12.553 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-4.553, 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] 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 pMphUIBc38VS for <quic-issues@ietfa.amsl.com>; Tue, 15 Jan 2019 17:32:48 -0800 (PST)
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 6AA14130F5C for <quic-issues@ietf.org>; Tue, 15 Jan 2019 17:32:48 -0800 (PST)
Date: Tue, 15 Jan 2019 17:32:47 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1547602367; bh=S+XkngJ2DGS2LJCCFCA5OsTjeUUdBRCfODyIujPJdOw=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=1wXY9b/3TCK0MYfhn0mVAPamoMwg3uRWNHE+znGdNsSElgcGkOSknC6ByI6xgWE4t ViazWmBDgEbrYiI43bO66IyhoDsze/P2zfTZH2MB0N6azgtt06OwUiK5s44dAQQhKq bWKZPFCrGesQVzUkTrl3aKAdeLLOc4jfkTNhMyjw=
From: janaiyengar <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab663456294334bcc20843a4385e9eaa975d69c38a92cf0000000118564bbf92a169ce17b2473c@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2327/review/192936478@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2327@github.com>
References: <quicwg/base-drafts/pull/2327@github.com>
Subject: Re: [quicwg/base-drafts] Ignore packet loss when the keys are not available (#2327)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c3e89bf819bb_6fd53f85526d45b825977a"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: janaiyengar
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/I5f3CjSmPgi1GWXgvJI2fyl15A4>
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: Wed, 16 Jan 2019 01:32:51 -0000

janaiyengar commented on this pull request.

A few comments, editorial.

>  
+When 0-RTT is rejected, recovery state for all in-flight 0-RTT packets is
+discarded.
+
+If a server accepts 0-RTT, but does not buffer 0-RTT packets that arrive
+before Initial packets, early 0-RTT packets will be declared lost, but that
+is expected to be infrequent.
+
+#### Ignoring Loss of Undecryptable Packets

This doesn't belong here. You want this in the CC section.

> @@ -427,15 +445,34 @@ packet is received.  The client MAY use this value to seed the RTT estimator for
 a subsequent connection attempt to the server.
 
 
-#### Discarding Initial State {#discard-initial}
+#### Discarding Keys and Packet State {#discarding-packets}
+
+When packet protection keys are discarded (see Section 4.9 of {{QUIC-TLS}}),
+recovery state for all in-flight packets sent with those keys is discarded.

I think a slight restructure might help make this text clearer. I've also rephrased some.

"When packet protection keys are discarded (see Section 4.9 of {{QUIC-TLS}}),
all packets that were sent with those keys can no longer be acknowledged because
their acknowledgements cannot be processed anymore. The sender considers them
no longer in flight.  That is, the sender SHOULD discard all recovery state associated
with those packets and MUST remove them from the count of bytes in flight.

As described in Section 17.5.1 of {{QUIC-TRANSPORT}}, endpoints stop sending and
receiving Initial packets once they start exchanging Handshake packets.  At this
point, recovery state for all in-flight Initial packets is discarded.

When 0-RTT is rejected, recovery state for all in-flight 0-RTT packets is
discarded.

If a server accepts 0-RTT, but does not buffer 0-RTT packets that arrive
before Initial packets, early 0-RTT packets will be declared lost, but that
is expected to be infrequent.

It is expected that keys are discarded after packets encrypted with them would be
acknowledged or declared lost, with the exception of Initial secrets, which might
destroyed earlier."


> @@ -427,15 +445,34 @@ packet is received.  The client MAY use this value to seed the RTT estimator for
 a subsequent connection attempt to the server.
 
 
-#### Discarding Initial State {#discard-initial}
+#### Discarding Keys and Packet State {#discarding-packets}
+
+When packet protection keys are discarded (see Section 4.9 of {{QUIC-TLS}}),
+recovery state for all in-flight packets sent with those keys is discarded.
+The packets are removed from the count of bytes in flight and no
+acknowledgements or loss events will occur for those packets.  Note that it
+is expected that keys are discarded after those packets would be declared lost,
+but Initial secrets are destroyed earlier.

I don't understand this last sentence. Can you rephrase?

>  
+When 0-RTT is rejected, recovery state for all in-flight 0-RTT packets is
+discarded.
+
+If a server accepts 0-RTT, but does not buffer 0-RTT packets that arrive
+before Initial packets, early 0-RTT packets will be declared lost, but that
+is expected to be infrequent.
+
+#### Ignoring Loss of Undecryptable Packets
+
+During the handshake, some packet protection keys might not be
+available when a packet arrives. In particular, Handshake and 0-RTT packets
+can't be processed until the Initial flight arrives and 1-RTT packets

```suggestion
cannot be processed until the Initial packets arrive, and 1-RTT packets
```

>  
+When 0-RTT is rejected, recovery state for all in-flight 0-RTT packets is
+discarded.
+
+If a server accepts 0-RTT, but does not buffer 0-RTT packets that arrive
+before Initial packets, early 0-RTT packets will be declared lost, but that
+is expected to be infrequent.
+
+#### Ignoring Loss of Undecryptable Packets
+
+During the handshake, some packet protection keys might not be
+available when a packet arrives. In particular, Handshake and 0-RTT packets
+can't be processed until the Initial flight arrives and 1-RTT packets
+can't be processed until the handshake completes.  Endpoints MAY

```suggestion
cannot be processed until the handshake completes.  Endpoints MAY
```

>  
+When 0-RTT is rejected, recovery state for all in-flight 0-RTT packets is
+discarded.
+
+If a server accepts 0-RTT, but does not buffer 0-RTT packets that arrive
+before Initial packets, early 0-RTT packets will be declared lost, but that
+is expected to be infrequent.
+
+#### Ignoring Loss of Undecryptable Packets
+
+During the handshake, some packet protection keys might not be
+available when a packet arrives. In particular, Handshake and 0-RTT packets
+can't be processed until the Initial flight arrives and 1-RTT packets
+can't be processed until the handshake completes.  Endpoints MAY
+ignore the loss of Handshake, 0-RTT, and 1-RTT packets that arrive before the

```suggestion
ignore the loss of Handshake, 0-RTT, and 1-RTT packets that might arrive before the
```

-- 
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/2327#pullrequestreview-192936478