Re: Closing on CONNECTION_CLOSE

Patrick McManus <pmcmanus@mozilla.com> Fri, 28 July 2017 17:15 UTC

Return-Path: <pmcmanus@mozilla.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1AAD9131F5A for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 10:15:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.735
X-Spam-Level:
X-Spam-Status: No, score=-0.735 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_SORBS_SPAM=0.5, SPF_HELO_PASS=-0.001, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
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 rs2i99RFZXaG for <quic@ietfa.amsl.com>; Fri, 28 Jul 2017 10:15:13 -0700 (PDT)
Received: from linode64.ducksong.com (www.ducksong.com [192.155.95.102]) by ietfa.amsl.com (Postfix) with ESMTP id 63CF0131CED for <quic@ietf.org>; Fri, 28 Jul 2017 10:15:13 -0700 (PDT)
Received: from mail-qk0-f170.google.com (mail-qk0-f170.google.com [209.85.220.170]) by linode64.ducksong.com (Postfix) with ESMTPSA id E95DA3A021 for <quic@ietf.org>; Fri, 28 Jul 2017 13:15:11 -0400 (EDT)
Received: by mail-qk0-f170.google.com with SMTP id d136so126451954qkg.3 for <quic@ietf.org>; Fri, 28 Jul 2017 10:15:11 -0700 (PDT)
X-Gm-Message-State: AIVw113qkQF5ICVBAuDKmPthQwHu2JkbabjIJA7vfCGR2xmYnWOwH2Kj HY//fIH+aAgr4KYbCsjeolAhCkUzbg==
X-Received: by 10.55.26.94 with SMTP id a91mr6544050qka.174.1501262111744; Fri, 28 Jul 2017 10:15:11 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.182.17 with HTTP; Fri, 28 Jul 2017 10:15:11 -0700 (PDT)
In-Reply-To: <20170728124951.GB2686@ubuntu-dmitri>
References: <CABcZeBP_Xh1QC9Qxhy5HYiMiTfknPs7Yp7+X_KnQE1O-juxJ5g@mail.gmail.com> <cb7caadd-73bd-6505-7a57-4b0271fb66d2@huitema.net> <DB5PR07MB1237960D04442972441D9B8B84BE0@DB5PR07MB1237.eurprd07.prod.outlook.com> <CAKcm_gOSSWOiY7S3KCW4674KO76PxoFmcTbFSsbO-71aQmCXHg@mail.gmail.com> <CABcZeBP3s=XrOXjzN=SvjrYkc-eSUAx8BZXTO-BFAQW-55TXzw@mail.gmail.com> <CAGD1bZYEOxSXaw3cMBZTjkdwCVyJ+cca6fhY0Rh1OaGiB0ihSA@mail.gmail.com> <20170728124951.GB2686@ubuntu-dmitri>
From: Patrick McManus <pmcmanus@mozilla.com>
Date: Fri, 28 Jul 2017 13:15:11 -0400
X-Gmail-Original-Message-ID: <CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=0D-G-TcRbw@mail.gmail.com>
Message-ID: <CAOdDvNo0v2ckD1fy9C2iofcMBtVtCBi5QzeVY9w=0D-G-TcRbw@mail.gmail.com>
Subject: Re: Closing on CONNECTION_CLOSE
To: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
Cc: Jana Iyengar <jri@google.com>, Eric Rescorla <ekr@rtfm.com>, IETF QUIC WG <quic@ietf.org>, Christian Huitema <huitema@huitema.net>, "Swindells, Thomas (Nokia - GB/Cambridge, UK)" <thomas.swindells@nokia.com>, Ian Swett <ianswett@google.com>
Content-Type: multipart/alternative; boundary="001a1146eb62e2af93055563d2d6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/-ChQ06_7d9haEcpeO2hp-FkjJiw>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 28 Jul 2017 17:15:16 -0000

I agree that the rst-like semantic in the pull request is sensible here.
Some more language around expecting applications to do graceful shutdown
before this happens would be helpful - especially with the definition of
GOAWAY migrating out of the transport document. This works well with the
silent close concept so that makes me happy.

I would like the text to say that the receiver should not discard data that
it has acknowledged before receipt of the CLOSE (discarding it is the TCP
receiver RST behavior). Are there objections to adding that?

I disagree a little bit with (I think) Subodh and Wily regarding what to
send when you recv data after you have sent a CLOSE. I want to strongly
encourage implementations to have a TIME_WAIT like period of being able to
a fully protected CLOSE (it can be a memcpy retransmit). public reset ought
to be left as a last resort.