Re: [quicwg/base-drafts] Refactor the section on connection termination (#721)
Mike Bishop <notifications@github.com> Fri, 25 August 2017 16:49 UTC
Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.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 1D6DC132938 for <quic-issues@ietfa.amsl.com>; Fri, 25 Aug 2017 09:49:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.019
X-Spam-Level:
X-Spam-Status: No, score=-2.019 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, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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 ILD7DbvG50CA for <quic-issues@ietfa.amsl.com>; Fri, 25 Aug 2017 09:49:49 -0700 (PDT)
Received: from o3.sgmail.github.com (o3.sgmail.github.com [192.254.112.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 358841329AF for <quic-issues@ietf.org>; Fri, 25 Aug 2017 09:49:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=sDEf7P1ZYBq7ZLstXkBy4jF+UYM=; b=CyQmZVOOd8tkVZLo jDvwC+W2NVtzkxBDXuVZQzqW0yBJniZHDgMyvMIviAEeclM0D1C0zxXxnVWO9ZNt 1cBDePxvdAK3/JBvHEE928GLbLYDkUskTKaETC9skJQzDi6FQ9/Q8tBaNa3EKe3e gY+tzBpkFcs3eNgLgbq1UTtdwQQ=
Received: by filter0634p1mdw1.sendgrid.net with SMTP id filter0634p1mdw1-32004-59A0552B-35 2017-08-25 16:49:47.706716313 +0000 UTC
Received: from github-smtp2b-ext-cp1-prd.iad.github.net (github-smtp2b-ext-cp1-prd.iad.github.net [192.30.253.17]) by ismtpd0033p1mdw1.sendgrid.net (SG) with ESMTP id XYMpCCupRnOxyNXRf0XPAg for <quic-issues@ietf.org>; Fri, 25 Aug 2017 16:49:47.608 +0000 (UTC)
Date: Fri, 25 Aug 2017 16:49:48 +0000
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4abf3f3a4283ff9be784375cc47a4f3a97e71ca0b2f92cf0000000115b8172b92a169ce0edf94fd@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/721/review/58704654@github.com>
In-Reply-To: <quicwg/base-drafts/pull/721@github.com>
References: <quicwg/base-drafts/pull/721@github.com>
Subject: Re: [quicwg/base-drafts] Refactor the section on connection termination (#721)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_59a0552b53598_60393fd6873d9c381643a8"; 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
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak3UJEDJRSZdx0GReV+hGMh4JgmVHfsFgHrRFw N/Zg4RH65d9keqt6o4pozBSIt1kDJHiKFRHW4Cic3l/4rfWjKbClzWfQgzws5L9DsbOqYiYcIGAtMr Nom2O+EqE9fDIj0ZvaCYFIX09R7d1fc4WOVxKZp1tY/4YS22Fi5Z26TvaUkC4hijft2dL848wc21jJ M=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/6fnN7gBvn-fQx1lvURtSI1SQ-nU>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
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: Fri, 25 Aug 2017 16:49:51 -0000
MikeBishop approved this pull request.
Very much nitpicks, and if you merged without them I wouldn't scream.
> -After receiving either a CONNECTION_CLOSE frame or a Public Reset, an
-endpoint MUST NOT send additional packets on that connection. After
-sending either a CONNECTION_CLOSE frame or a Public Reset packet,
-implementations MUST NOT send any non-closing packets on that
-connection. If additional packets are received after this time and
-before idle_timeout seconds has passed, implementations SHOULD respond
-to them by sending a CONNECTION_CLOSE (which MAY just be a duplicate
-of the previous CONNECTION_CLOSE packet) but MAY also send a Public
-Reset packet. Implementations SHOULD throttle these responses, for
-instance by exponentially backing off the number of packets which are
-received before sending a response. After this time, implementations
-SHOULD respond to unexpected packets with a Public Reset packet.
-
-
-## Stateless Reset {#stateless-reset}
+of four ways: negotiated shutdown, idle timeout, immediate close, and a
I think this comment got lost somewhere amongst the commits, so I'll re-add it: You have "negotiated shutdown" on this line, but "application close" on 1449. I think consistency would help.
> +from its peer. These packets might have been sent prior to receiving any close
+signal, or they might be retransmissions of packets for which acknowledgments
+were lost.
+
+The draining period persists for three times the maximum of minimum RTO
+(kMinRTOTimeout) or the round trip time (smoothed_rtt), see {{QUIC-RECOVERY}}
+for descriptions of these values. During this period, new packets can be
+attributed to the correct connection and acknowledged, but the connection is no
+longer considered active and usable.
+
+Different treatment is given to packets that are received while a connection is
+in the draining period depending on how the connection was closed. In all
+cases, it is possible to acknowledge packets that are received as normal, but
+other reactions might be preferable depending on how the connection was closed.
+An endpoint that is in a draining period MUST NOT send packets other than ACK,
+PADDING, or CONNECTION_CLOSE.
Nit: These aren't packets, they're frames.
> +The draining period persists for three times the maximum of minimum RTO
+(kMinRTOTimeout) or the round trip time (smoothed_rtt), see {{QUIC-RECOVERY}}
+for descriptions of these values. During this period, new packets can be
+attributed to the correct connection and acknowledged, but the connection is no
+longer considered active and usable.
+
+Different treatment is given to packets that are received while a connection is
+in the draining period depending on how the connection was closed. In all
+cases, it is possible to acknowledge packets that are received as normal, but
+other reactions might be preferable depending on how the connection was closed.
+An endpoint that is in a draining period MUST NOT send packets other than ACK,
+PADDING, or CONNECTION_CLOSE.
+
+Once the draining period has ended, an endpoint SHOULD discard per-connection
+state. This results in new packets on the connection being discarded. An
+endpoint MAY use a stateless reset in response to any further incoming packets.
use => send
> +{{transport-parameter-definitions}}) becomes closed. Either peer removes
+connection state if they have neither sent nor received a packet for this time.
+
+The time at which an idle timeout takes effect won't be perfectly synchronized
+on peers. A connection enters the draining period when the idle timeout
+expires. During this time, an endpoint that receives new packets MAY choose to
+restore the connection. Alternatively, an endpoint that receives packets MAY
+signal the timeout using an immediate close.
+
+
+### Immediate Close
+
+An endpoint sends a CONNECTION_CLOSE frame to terminate the connection
+immediately. A CONNECTION_CLOSE causes all open streams to immediately become
+closed; open streams can be assumed to be implicitly reset. After receiving a
+CONNECTION_CLOSE frame, endpoints immediately enter a draining period.
Endpoints presumably enter a draining period after sending a CONNECTION_CLOSE as well, no?
> +expires. During this time, an endpoint that receives new packets MAY choose to
+restore the connection. Alternatively, an endpoint that receives packets MAY
+signal the timeout using an immediate close.
+
+
+### Immediate Close
+
+An endpoint sends a CONNECTION_CLOSE frame to terminate the connection
+immediately. A CONNECTION_CLOSE causes all open streams to immediately become
+closed; open streams can be assumed to be implicitly reset. After receiving a
+CONNECTION_CLOSE frame, endpoints immediately enter a draining period.
+
+An endpoint that sends a CONNECTION_CLOSE frame SHOULD respond to any packet
+that it receives in the draining period with another packet containing a
+CONNECTION_CLOSE frame. To reduce the state that an endpoint maintains in this
+case, they MAY send the exact same packet. However, endpoints SHOULD limit the
they => it, since it's a single endpoint
--
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/721#pullrequestreview-58704654
- [quicwg/base-drafts] Refactor the section on conn… Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … janaiyengar
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Nick Banks
- Re: [quicwg/base-drafts] Refactor the section on … Mike Bishop
- Re: [quicwg/base-drafts] Refactor the section on … Mike Bishop
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … MikkelFJ
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Mike Bishop
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Roni Even
- Re: [quicwg/base-drafts] Refactor the section on … Roni Even
- Re: [quicwg/base-drafts] Refactor the section on … Patrick McManus
- Re: [quicwg/base-drafts] Refactor the section on … Roni Even
- Re: [quicwg/base-drafts] Refactor the section on … janaiyengar
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson
- Re: [quicwg/base-drafts] Refactor the section on … Martin Thomson