[quicwg/base-drafts] Clients cannot abandon Initial packets while server can still send initial close (#2541)

mjoras <notifications@github.com> Thu, 21 March 2019 18:37 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 7AFB413157D for <quic-issues@ietfa.amsl.com>; Thu, 21 Mar 2019 11:37:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8.001
X-Spam-Level:
X-Spam-Status: No, score=-8.001 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_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 TEQKBagy77Sc for <quic-issues@ietfa.amsl.com>; Thu, 21 Mar 2019 11:37:06 -0700 (PDT)
Received: from out-6.smtp.github.com (out-6.smtp.github.com [192.30.252.197]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 44D9A13157B for <quic-issues@ietf.org>; Thu, 21 Mar 2019 11:37:06 -0700 (PDT)
Date: Thu, 21 Mar 2019 11:37:05 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1553193425; bh=hPbDIEjUK/e/mU717ZgnRa2NhYjO4js0hYwAE5qiBuY=; h=Date:From:Reply-To:To:Cc:Subject:List-ID:List-Archive:List-Post: List-Unsubscribe:From; b=x8NHq71erztkZUtOZsXLZvzPXAK14RxQLiAqReO6pUrHmVkqlGZa762OOzqmi+HFm A2SMUyyw55FC3Vp35m4dLuDOhFVZPsAYxIya93BUaUpQJ8odtIxim3oQ+yfwXNvcIJ oZafXJsay5i1lp97QF5OplZxCECBFvdqxd+WLdNc=
From: mjoras <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab2bd493ace0977eb339d1f366b7af652867fb17c392cf0000000118ab9bd092a169ce1943f1d8@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2541@github.com>
Subject: [quicwg/base-drafts] Clients cannot abandon Initial packets while server can still send initial close (#2541)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c93d9d1f15_32d53ff7b18d45bc549589"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: mjoras
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/hoZd7oUa9zFHKvgIKXEqeSsinSc>
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, 21 Mar 2019 18:37:09 -0000

17.2.2.1 of the spec current reads:
"**A client stops both sending and processing Initial packets when it sends its first Handshake packet.** A server stops sending and processing Initial packets when it receives its first Handshake packet. Though packets might still be in flight or awaiting acknowledgment, no further Initial packets need to be exchanged beyond this point. Initial packet protection keys are discarded (see Section 4.10 of [QUIC-TLS]) along with any loss recovery and congestion control state (see Sections 5.3.1.2 and 6.9 of [QUIC-RECOVERY])."

I believe this is inconsistent with section 10.3, regarding sending an initial connection close:
"If the connection has been successfully established, endpoints MUST send any CONNECTION_CLOSE frames in a 1-RTT packet. Prior to connection establishment a peer might not have 1-RTT keys, so endpoints SHOULD send CONNECTION_CLOSE frames in a Handshake packet. **If the endpoint does not have Handshake keys, or it is not certain that the peer has Handshake keys, it MAY send CONNECTION_CLOSE frames in an Initial packet.** If multiple packets are sent, they can be coalesced (see Section 12.2) to facilitate retransmission."

The client may have started sending handshake packets at the point which the server decides to send a close. Since the server does not know if the client has the handshake keys it MAY send the close in an initial packet. However since the client stops (though it is missing a MUST or MAY qualifier) processing initial packets it will never process the close from the server.

-- 
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/issues/2541