Re: [quicwg/base-drafts] Closing and draining tidy (#3988)

Mike Bishop <notifications@github.com> Tue, 11 August 2020 15:46 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 48AFB3A1135 for <quic-issues@ietfa.amsl.com>; Tue, 11 Aug 2020 08:46:19 -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 9cFEUFU66fR2 for <quic-issues@ietfa.amsl.com>; Tue, 11 Aug 2020 08:46:17 -0700 (PDT)
Received: from out-27.smtp.github.com (out-27.smtp.github.com [192.30.252.210]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 6D8C53A1120 for <quic-issues@ietf.org>; Tue, 11 Aug 2020 08:46:17 -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 A4C379026F3 for <quic-issues@ietf.org>; Tue, 11 Aug 2020 08:46:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1597160776; bh=Yoz2bHJXOc7jT27R+GMhgu088LbgjxVjArJhPemIlVA=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=pcU02HnkKzEpoJDdhmQUNYVkTRBoQrvtENoykubLjS58wolyBVYnCGLUAJ7mT6X/f JNa0AEZBmCFQaf7zG9XWxmBhmP35NCfrB7YOVEgxA0NA0K0iDUd9npO0rnhbIH79m2 e2M6AaCqAIDdtDjtkBOtN6XMbuaO4MWe7HWKzPxc=
Date: Tue, 11 Aug 2020 08:46:16 -0700
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK7YRW4SX534STNMWSV5H2PEREVBNHHCQLL6RE@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/3988/review/465183222@github.com>
In-Reply-To: <quicwg/base-drafts/pull/3988@github.com>
References: <quicwg/base-drafts/pull/3988@github.com>
Subject: Re: [quicwg/base-drafts] Closing and draining tidy (#3988)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5f32bd4895237_7e816f81180f1"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: MikeBishop
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/9ibVULnE1qqO-7Jz6Hjq9ALBn9o>
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: Tue, 11 Aug 2020 15:46:19 -0000

@MikeBishop approved this pull request.

I think this flows a lot better.  Thanks for the time you put into this!

> +Disposing of connection state prior to exiting the closing or draining state
+could cause could result in an generating unnecessary stateless reset in
+response to receiving a packet.  Endpoints that have some alternative means to
+ensure that late-arriving packets do not induce a response, such as those that
+are able to close the UDP socket, MAY end these states earlier to allow for
+faster resource recovery.  Servers that retain an open socket for accepting new
+connections SHOULD NOT end the closing or draining states early.
+
+Once the closing or draining state ends, an endpoint SHOULD discard all
+connection state.  An endpoint MAY send a stateless reset in response
+to any further incoming packets.
+
+
+### Closing Connection State {#closing}
+
+An endpoint enters a closing state after initiating an immediate close.

```suggestion
An endpoint enters the closing state after initiating an immediate close.
```

> @@ -2763,26 +2805,37 @@ Note:
   congestion control, which are not expected to be relevant for a closed
   connection. Retransmitting the final packet requires less state.
 
-New packets from unverified addresses could be used to create an amplification
-attack; see {{address-validation}}.  To avoid this, endpoints MUST either limit
-transmission of CONNECTION_CLOSE frames to validated addresses or drop packets
-without response if the response would be more than three times larger than the
-received packet.
+While in the closing state, an endpoint could receive packets from a new source
+address, possibly indicating a connection migration; see {{migration}}.  An
+endpoint in the closing state MUST either discard packets received from
+unvalidated addresses or limit the cumulative size of packets it sends to
+unvalidated addresses to 3 times the size of packets it receives from the
+address.
+
+An endpoint is not expected to handle key updates when it is closing. A key
+update might prevent the endpoint from moving from the closing state to
+draining, but it otherwise has no impact.

```suggestion
the draining state, but it otherwise has no impact.
```

>  containing a CONNECTION_CLOSE frame before entering the draining state, using a
 CONNECTION_CLOSE frame and a NO_ERROR code if appropriate.  An endpoint MUST NOT

Existing text, but "single packet containing a CONNECTION_CLOSE frame ... using a CONNECTION_CLOSE frame" seems redundant.
```suggestion
containing a CONNECTION_CLOSE frame before entering the draining state, using a
NO_ERROR code if appropriate.  An endpoint MUST NOT
```

> +An endpoint MAY transition from the closing state to the draining state if it
+receives a CONNECTION_CLOSE frame, which indicates that the peer is also
+closing or draining. In this case, the draining state SHOULD end when the
+closing state would have ended. In other words, the endpoint uses the same end
+time, but cease retransmission of the closing packet.

```suggestion
An endpoint MAY transition from the closing state to the draining state if it
receives a CONNECTION_CLOSE frame, which indicates that the peer is also
closing or draining. In this case, the draining state SHOULD end when the
closing state would have ended. In other words, the endpoint uses the same end
time, but ceases retransmission of the closing packet.
```

-- 
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/3988#pullrequestreview-465183222