Re: [quicwg/base-drafts] Allow endpoints to generate traffic keys asynchronously (#3874)

Martin Thomson <notifications@github.com> Thu, 09 July 2020 04:04 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 A3EE53A0EDA for <quic-issues@ietfa.amsl.com>; Wed, 8 Jul 2020 21:04:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.101
X-Spam-Level:
X-Spam-Status: No, score=-3.101 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, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_MSPIKE_H2=-0.001, 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 LuXqnXsggVpY for <quic-issues@ietfa.amsl.com>; Wed, 8 Jul 2020 21:04:56 -0700 (PDT)
Received: from out-28.smtp.github.com (out-28.smtp.github.com [192.30.252.211]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3544A3A0DE6 for <quic-issues@ietf.org>; Wed, 8 Jul 2020 21:04:56 -0700 (PDT)
Received: from github-lowworker-a6a2749.va3-iad.github.net (github-lowworker-a6a2749.va3-iad.github.net [10.48.16.62]) by smtp.github.com (Postfix) with ESMTP id 542478C0F80 for <quic-issues@ietf.org>; Wed, 8 Jul 2020 21:04:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1594267495; bh=lEcK2N1PIqAoi8mtDC09/dvtHBXWbKIoS2I/fcLIn/I=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=eGd1Zy5UWZEEehGNZCWzjlAGEhPkkkimnvuZld4IRFhHKHKoi41SYcf7YwJZWgX0k aXrQLPcnTEjvcC+XpBBXp7/+oJsU3aeMgvrF0i1xyTEzpKAqtHJuoz/LhNTmav3Fwi ysVqlNNfT38m/bSW3hTIffVaE/9oTpWixrFUEuGY=
Date: Wed, 08 Jul 2020 21:04:55 -0700
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK7LJFSNVNVKH43UDVF5CJ4GPEVBNHHCN3MY3A@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/3874/review/445275426@github.com>
In-Reply-To: <quicwg/base-drafts/pull/3874@github.com>
References: <quicwg/base-drafts/pull/3874@github.com>
Subject: Re: [quicwg/base-drafts] Allow endpoints to generate traffic keys asynchronously (#3874)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5f0697674342d_37e43ff51cecd96026407b"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
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/3U9UB69g1ZRjis14q-9JzpTouqE>
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: Thu, 09 Jul 2020 04:04:58 -0000

@martinthomson commented on this pull request.



> @@ -518,14 +518,20 @@ or when Initial or Handshake keys are discarded. This ensures the PTO is always
 set based on the latest RTT information and for the last sent packet in the
 correct packet number space.
 
+When setting the PTO timer, the ApplicationData packet number space (Section
+4.1.1 of {{QUIC-TLS}}) MUST be ignored until the handshake completes. PTO is not
+armed because issues other than packet loss might prevent an endpoint from
+receiving an acknowledgement. A receiver might lack the keys necessary to
+process packets, or the sender might lack the keys necessary to process
+acknowledgments. This occurs when the client sends 0-RTT packets as the server
+might not accept 0-RTT and the client will not have 1-RTT keys for processing
+acknowledgments until the handshake completes. This occurs for 1-RTT packets as
+either endpoint might not have the ability to read until the handshake is
+complete or confirmed.

```suggestion
complete.
```

Confirmation tells us that our peer has a completed handshake.  This is not a useful state here, because we are talking about a specific endpoint and their ability to read doesn't depend on confirmation.

I was questioning whether we should block probing more.  That is, until the handshake is confirmed.  That has performance implications, because you don't probe for longer, but it does mean that you never probe without being sure that the probe can be answered.

I suspect that there is a trade-off here.  Waiting for handshake complete is not perfect, but it is close enough that it is good enough.  Ideally we could run experiments to tell us when spurious losses due to keys not being available and set a policy based on that.  Because that is ultimately what this is: a policy that we use to protect the core recovery algorithm.

Maybe that suggests a different answer: we are going to pick a point at which we recommend that probing starts.  That will be imperfect and that's OK.  To that end, this MUST seems like a problem.

-- 
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/3874#pullrequestreview-445275426