Re: [quicwg/base-drafts] use a HANDSHAKE_DONE frame to drive the handshake to confirmation (#3145)

Martin Thomson <> Wed, 11 December 2019 05:53 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id B2424120133 for <>; Tue, 10 Dec 2019 21:53:11 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.596
X-Spam-Status: No, score=-6.596 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, HTML_IMAGE_ONLY_28=1.404, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, 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 Calc_FhkX5WG for <>; Tue, 10 Dec 2019 21:53:10 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 4CFEC12002F for <>; Tue, 10 Dec 2019 21:53:10 -0800 (PST)
Date: Tue, 10 Dec 2019 21:53:09 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1576043589; bh=xSmsTyzW2bwhKJh1opyNxQiNn2pbkl7ntfq9GOSGYYU=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=iyltncUswHL4iCnYYaU1e5OAoN6xIP20wpUUY1gJjJRkCMeaWPP8rTcxYhl7ImXbG oceF8qr89qEDljRk4ayjpwLIxuHRgeLt6hHJWH/tkTy1+27oQF/uV5Kee74QdS8/5e iuOaCgGlJG5IV3QKyuV9nIEXZKuzfeceYXlrl/EQ=
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3145/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] use a HANDSHAKE_DONE frame to drive the handshake to confirmation (#3145)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5df084456cdd1_736d3ff2dd2cd96c10011f"; 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
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, 11 Dec 2019 05:53:12 -0000

martinthomson commented on this pull request.

> +## HANDSHAKE_DONE frame {#handshake-done-frame}
+The server uses the HANDSHAKE_DONE frame (type=0x1e) to signal confirmation of
+the handshake to the client.  The HANDSHAKE_DONE frame contains no additional
+This frame can only be sent by the server. Servers MUST NOT send a
+HANDSHAKE_DONE frame before completing the handshake.  A server MUST treat
+receipt of a HANDSHAKE_DONE frame as a connection error of type
+A client MAY consider the handshake to be confirmed when it receives an
+acknowledgement for a 1-RTT packet.  This can be implemented by recording
+the lowest packet number sent with 1-RTT keys, and the highest value of the
+Largest Acknowledged field in any received 1-RTT ACK frame: once the latter is
+higher than or equal to the former, the handshake can be confirmed.

Gah.  I had the same thought before but failed to write it down.  Thanks for catching that.  I'll open a PR.

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