Re: [quicwg/base-drafts] use a HANDSHAKE_DONE frame to drive the handshake to confirmation (#3145)
Martin Thomson <notifications@github.com> Thu, 24 October 2019 05:28 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 5A0B712022C for <quic-issues@ietfa.amsl.com>; Wed, 23 Oct 2019 22:28:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.999
X-Spam-Level:
X-Spam-Status: No, score=-7.999 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_MESSAGE=0.001, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 v4bQVbA-HUmx for <quic-issues@ietfa.amsl.com>; Wed, 23 Oct 2019 22:28:31 -0700 (PDT)
Received: from out-22.smtp.github.com (out-22.smtp.github.com [192.30.252.205]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 09D4512000F for <quic-issues@ietf.org>; Wed, 23 Oct 2019 22:28:31 -0700 (PDT)
Received: from github-lowworker-f144ac1.va3-iad.github.net (github-lowworker-f144ac1.va3-iad.github.net [10.48.16.59]) by smtp.github.com (Postfix) with ESMTP id 3B012A115E for <quic-issues@ietf.org>; Wed, 23 Oct 2019 22:28:30 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1571894910; bh=883HvS5BnCFRcvWeFibh2X/F+6fYAQZzMY2HzDp9a2Y=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=QAMibw/gNz9xiN1jfczO7XpahrSoYh8B4l22ayTpmzhSJk4Za5Tmo5F+YJUF8FJnk VZX/qlRV9Dny7boJXYS1jh/5sAYff7M4E/WbfaR1IvPD/uqFxD/TTvKBYJ7+uf8Pl9 WOlqx4uCpZI7VXlrxtiXmopI4vegwS4uf5qRh6mg=
Date: Wed, 23 Oct 2019 22:28:30 -0700
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK3D3BJTT5RMWUPJT2N3XZUP5EVBNHHB475TUU@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/3145/review/306325523@github.com>
In-Reply-To: <quicwg/base-drafts/pull/3145@github.com>
References: <quicwg/base-drafts/pull/3145@github.com>
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_5db1367e2c50a_36f93fed502cd968175685"; 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/-bAO2N5Eq1D3G6W1PEv74epaF9s>
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, 24 Oct 2019 05:28:33 -0000
martinthomson commented on this pull request. This seems workable. > @@ -760,14 +756,12 @@ and ignoring any outstanding Initial packets. ### Discarding Handshake Keys -An endpoint MUST NOT discard its handshake keys until the TLS handshake is -confirmed ({{handshake-confirmed}}). An endpoint SHOULD discard its handshake -keys as soon as it has confirmed the handshake. Most application protocols -will send data after the handshake, resulting in acknowledgements that allow -both endpoints to discard their handshake keys promptly. Endpoints that do -not have reason to send immediately after completing the handshake MAY send -ack-eliciting frames, such as PING, which will cause the handshake to be -confirmed when they are acknowledged. +An endpoint MUST discard its handshake keys when the TLS handshake is confirmed A "MAY" suffices here, does it not? Or are you concerned about having to think about Handshake keys after migration? It could be enough to say that Handshake packets MUST NOT be sent on any path other than the one on which the connection was established. > @@ -760,14 +756,12 @@ and ignoring any outstanding Initial packets. ### Discarding Handshake Keys -An endpoint MUST NOT discard its handshake keys until the TLS handshake is -confirmed ({{handshake-confirmed}}). An endpoint SHOULD discard its handshake -keys as soon as it has confirmed the handshake. Most application protocols -will send data after the handshake, resulting in acknowledgements that allow -both endpoints to discard their handshake keys promptly. Endpoints that do -not have reason to send immediately after completing the handshake MAY send -ack-eliciting frames, such as PING, which will cause the handshake to be -confirmed when they are acknowledged. +An endpoint MUST discard its handshake keys when the TLS handshake is confirmed +({{handshake-confirmed}}). The server MUST send a HANDSHAKE_DONE frame when the +handshake completes. Most application protocols will send data after the +handshake. A server might want to minimize the number of packets sent by +bundling the HANDSHAKE_DONE frame with other data. It MAY delay sending of the I think that you can drop the bundling sentence. > @@ -760,14 +756,12 @@ and ignoring any outstanding Initial packets. ### Discarding Handshake Keys -An endpoint MUST NOT discard its handshake keys until the TLS handshake is -confirmed ({{handshake-confirmed}}). An endpoint SHOULD discard its handshake -keys as soon as it has confirmed the handshake. Most application protocols -will send data after the handshake, resulting in acknowledgements that allow -both endpoints to discard their handshake keys promptly. Endpoints that do -not have reason to send immediately after completing the handshake MAY send -ack-eliciting frames, such as PING, which will cause the handshake to be -confirmed when they are acknowledged. +An endpoint MUST discard its handshake keys when the TLS handshake is confirmed +({{handshake-confirmed}}). The server MUST send a HANDSHAKE_DONE frame when the +handshake completes. Most application protocols will send data after the +handshake. A server might want to minimize the number of packets sent by +bundling the HANDSHAKE_DONE frame with other data. It MAY delay sending of the +HANDSHAKE_DONE frame by no more than one round-trip. This delay sentence is somewhat in conflict with the preceding requirement, so maybe instead say "MUST send within 1 round-trip time of handshake completion." > @@ -5495,6 +5495,15 @@ Reason Phrase: This SHOULD be a UTF-8 encoded string {{!RFC3629}}. +## 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 +fields. + +This frame MUST be retransmitted until it is acknowledged by the client. You should move this statement to [Section 13.3](https://quicwg.org/base-drafts/draft-ietf-quic-transport.html#retransmission-of-information) for consistency reasons. -- 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/3145#pullrequestreview-306325523
- [quicwg/base-drafts] use a HANDSHAKE_DONE frame t… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Jana Iyengar
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Jana Iyengar
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Martin Thomson
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Jana Iyengar
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Kazuho Oku
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Martin Thomson
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… MikkelFJ
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Mike Bishop
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… MikkelFJ
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Kazuho Oku
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… ianswett
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Martin Thomson
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Martin Thomson
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… ianswett
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Ryan Hamilton
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… David Schinazi
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Martin Thomson
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Kazuho Oku
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Kazuho Oku
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… MikkelFJ
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… MikkelFJ
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… ianswett
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… David Schinazi
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… martinduke
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… martinduke
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… martinduke
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… ianswett
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… martinduke
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Kazuho Oku
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… David Schinazi
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Jana Iyengar
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… David Schinazi
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… David Schinazi
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… ianswett
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… martinduke
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Kazuho Oku
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Christian Huitema
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Jana Iyengar
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Ryan Hamilton
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Ryan Hamilton
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Martin Thomson
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Mike Bishop
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Jana Iyengar
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Martin Thomson
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Martin Thomson
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… ianswett
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Mike Bishop
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Jana Iyengar
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Marten Seemann
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Jana Iyengar
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… MikkelFJ
- Re: [quicwg/base-drafts] use a HANDSHAKE_DONE fra… Christian Huitema