Re: [quicwg/base-drafts] Clarify server CONNECTION_CLOSE with Handshake (#2688)

Martin Thomson <> Thu, 06 June 2019 01:59 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A24D0120148 for <>; Wed, 5 Jun 2019 18:59:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -8.009
X-Spam-Status: No, score=-8.009 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_HELO_NONE=0.001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] 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 STNp1ReVW5XK for <>; Wed, 5 Jun 2019 18:59:27 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 446FF120130 for <>; Wed, 5 Jun 2019 18:59:27 -0700 (PDT)
Date: Wed, 05 Jun 2019 18:59:25 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1559786365; bh=Zqt30cmflVT2PkaDVbzmB2XtCyMz8nnM09JKYeJaGoc=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=w0JXK8A3tM5s80oWrVR/u83dJ5PoQEwpgp14vIZYjapyHdYhc4UWJ6TUeslg7zluL MoZA2h1JqmDA6imEeUWZKjoxuYDL188+23RG7G2z1+eJbAtzLXpwwfrQntC92ZkCsQ CumzkBwAoF/lbhtIFh3MwwiNTAQgtH9GEubu4HOU=
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/2688/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Clarify server CONNECTION_CLOSE with Handshake (#2688)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5cf8737d6b673_67233f971a2cd9681643ca"; 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: Thu, 06 Jun 2019 01:59:30 -0000

martinthomson commented on this pull request.

> @@ -2304,13 +2304,25 @@ the application requests that the connection be closed.  The application
 protocol can use an CONNECTION_CLOSE frame with an appropriate error code to
 signal closure.
-If the connection has been successfully established, endpoints MUST send any
-CONNECTION_CLOSE frames in a 1-RTT packet.  Prior to connection establishment a
-peer might not have 1-RTT keys, so endpoints SHOULD send CONNECTION_CLOSE frames
-in a Handshake packet.  If the endpoint does not have Handshake keys, or it is
-not certain that the peer has Handshake keys, it MAY send CONNECTION_CLOSE
-frames in an Initial packet.  If multiple packets are sent, they can be
-coalesced (see {{packet-coalesce}}) to facilitate retransmission.
+When sending CONNECTION_CLOSE, the goal is to ensure that a peer will process
+the frame.  Generally, this means sending the frame in a packet with the highest
+level of packet protection to avoid the packet being discarded.  However, during
+the handshake, it is possible that more advanced packet protection keys are not
+available to a peer, so the frame MAY be replicated in a packet that uses a
+lower packet protection level.

The point was to articulate the principles behind the design.  It might be that the mechanics are sufficiently precise that that is not necessary, but we did have #2151.  @ianswett's changes didn't really directly address that.

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