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

ianswett <notifications@github.com> Tue, 11 August 2020 01:00 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 25EFF3A0E7A for <quic-issues@ietfa.amsl.com>; Mon, 10 Aug 2020 18:00:28 -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 gsBbpPLWPEL2 for <quic-issues@ietfa.amsl.com>; Mon, 10 Aug 2020 18:00:26 -0700 (PDT)
Received: from out-21.smtp.github.com (out-21.smtp.github.com [192.30.252.204]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 35CBC3A0E77 for <quic-issues@ietf.org>; Mon, 10 Aug 2020 18:00:26 -0700 (PDT)
Received: from github-lowworker-275fa97.va3-iad.github.net (github-lowworker-275fa97.va3-iad.github.net [10.48.17.64]) by smtp.github.com (Postfix) with ESMTP id 099F0520E3E for <quic-issues@ietf.org>; Mon, 10 Aug 2020 18:00:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1597107625; bh=vC0ZPiT3lr/QhNuD0RtCYvKZ4QmG4SRvAEhQXolCPQs=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=Gq99MBWVzGfNAcoyBZPYhHF5Tv+2W4rEvNrG/DYXiBj4E7uq+++jXGBx7s+prdEB3 Fy1/E9x8xCmo5VOZf+C+59hdSkGDdVok2n4ED6dt+zEarNJzKcA8AedLEp8tlcfUKb 6K7WDPp3PCyOsOd4aOKAI0iJJr8XXTvE6i+jysek=
Date: Mon, 10 Aug 2020 18:00:24 -0700
From: ianswett <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK7FS5JWP47XBJNWQTN5HXHKREVBNHHCQLL6RE@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/464677566@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_5f31eda8ecf78_4ba016f844893e"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: ianswett
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/pLQuhO11JDAGvYadvY4II17OKBg>
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 01:00:28 -0000

@ianswett commented on this pull request.

This is a big change, but seems good.  Some specific suggestions on improving the text.

> +
+An immediate close can be used after an application protocol has arranged to
+close a connection.  This might be after the application protocols negotiates a
+graceful shutdown.  The application protocol exchanges whatever messages that
+are needed to cause both endpoints to agree to close the connection, after which
+the application requests that the connection be closed.  When the application
+closes the connection, a CONNECTION_CLOSE frame with an appropriate error code
+will be used to signal closure.
+
+The closing and draining connection states exist to ensure that connections
+close cleanly and that delayed or reordered packets are properly discarded.
+These states SHOULD persist for at least three times the current Probe Timeout
+(PTO) interval as defined in {{QUIC-RECOVERY}}.
+
+Disposing of connection state prior to the exiting the closing or draining state
+could cause delayed or reordered packets to generate an unnecessary stateless

Given the situation, I believe reordered is correct.
```suggestion
could cause reordered packets to generate an unnecessary stateless
```

> +close a connection.  This might be after the application protocols negotiates a
+graceful shutdown.  The application protocol exchanges whatever messages that
+are needed to cause both endpoints to agree to close the connection, after which
+the application requests that the connection be closed.  When the application
+closes the connection, a CONNECTION_CLOSE frame with an appropriate error code
+will be used to signal closure.
+
+The closing and draining connection states exist to ensure that connections
+close cleanly and that delayed or reordered packets are properly discarded.
+These states SHOULD persist for at least three times the current Probe Timeout
+(PTO) interval as defined in {{QUIC-RECOVERY}}.
+
+Disposing of connection state prior to the exiting the closing or draining state
+could cause delayed or reordered packets to generate an unnecessary stateless
+reset. Endpoints that have some alternative means to ensure that late-arriving
+packets on the connection do not induce a response, such as those that are able

```suggestion
packets do not induce a response, such as those that are able
```

> +The closing and draining connection states exist to ensure that connections
+close cleanly and that delayed or reordered packets are properly discarded.
+These states SHOULD persist for at least three times the current Probe Timeout
+(PTO) interval as defined in {{QUIC-RECOVERY}}.
+
+Disposing of connection state prior to the exiting the closing or draining state
+could cause delayed or reordered packets to generate an unnecessary stateless
+reset. Endpoints that have some alternative means to ensure that late-arriving
+packets on the connection 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.  This results in new packets on the connection being handled
+generically.  For instance, an endpoint MAY send a stateless reset in response

This sentence is not very helpful, so I'd remove it unless you have a better suggestion.

> +connection state.  This results in new packets on the connection being handled
+generically.  For instance, an endpoint MAY send a stateless reset in response

This sentence is not very helpful, so I'd remove it unless you have a better suggestion.
```suggestion
connection state.  An endpoint MAY send a stateless reset in response
```

> +While in the closing state, an endpoint could receive packets from a new
+source address, indicating a connection migration; see {{migration}}. An
+endpoint that discards information about validated addresses might be used to
+create an amplification attack; see {{address-validation}}. To avoid being used
+for an amplication attack, 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.

Given other path migration constraints, this text seems odd.  It's possible it could be fully removed.

```suggestion
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.
```

-- 
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-464677566