Re: [quicwg/base-drafts] Include handshake anti-deadlock logic in pseudocode (#2281)

Benjamin Saunders <> Wed, 16 January 2019 01:46 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4B1F2130FF0 for <>; Tue, 15 Jan 2019 17:46:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -12.552
X-Spam-Status: No, score=-12.552 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_IMAGE_ONLY_32=0.001, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id K5hFcI7EJsWU for <>; Tue, 15 Jan 2019 17:45:59 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 49FB6130FFF for <>; Tue, 15 Jan 2019 17:45:59 -0800 (PST)
Date: Tue, 15 Jan 2019 17:45:58 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1547603158; bh=vN7JExzjwo4KBR9PawrTYPH6CUuNMvIGwBZzrXOTwhs=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=UG8GOTktIqVtSdP91b5pXhYLdSM3C2EgUSkhmhhVqi6rg61fv4eBiZMB2M6jEKyK7 bnuMufUxG17g2YVzptRn9OimEJBpzNr3mEJgc6fXkIwHeXIkLQWfOI5G+B3whiWaME XrTdJc+aOcNwQF5JqXRcPjnJjZfWjDrU5rvH22EQ=
From: Benjamin Saunders <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2281/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Include handshake anti-deadlock logic in pseudocode (#2281)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c3e8cd63a5a9_21b93f8fbdad45bc15467a"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: Ralith
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 16 Jan 2019 01:46:11 -0000

Ralith commented on this pull request.

> @@ -699,6 +703,9 @@ Pseudocode for OnAckReceived and UpdateRtt follow:
     largest_acked_packet = max(largest_acked_packet,
+    if (from Handshake packet):

> The client can know that it is unverified if it is sending Initial packets and not Handshake (or greater).

That's not true, though: the client doesn't know it's been validated until it's seen an ACK using Handshake keys (or greater). The server needs to see a Handshake packet to validate the client, and until the client's seen such an ACK it can't be sure that any Handshake packets it might have sent so far weren't lost.

> As for the test in SetLossDetectionTimer() or LossDetectionTimeout(), how is it possible for a crypto packet to be in flight, where this condition would be true?

I'm not sure I understand the question. The tests in those functions are to ensure that a client sends packets to either earn anti-amplification credit or validate its address even when it has no information to send.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: