Re: [quicwg/base-drafts] describe how 0-RTT is accepted and rejected (#2841)

Marten Seemann <notifications@github.com> Wed, 26 June 2019 01:40 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 8DAA5120125 for <quic-issues@ietfa.amsl.com>; Tue, 25 Jun 2019 18:40:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.999
X-Spam-Level:
X-Spam-Status: No, score=-7.999 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_HELO_NONE=0.001, 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 NEpa9oY6f2uQ for <quic-issues@ietfa.amsl.com>; Tue, 25 Jun 2019 18:40:52 -0700 (PDT)
Received: from out-18.smtp.github.com (out-18.smtp.github.com [192.30.252.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 72420120046 for <quic-issues@ietf.org>; Tue, 25 Jun 2019 18:40:52 -0700 (PDT)
Date: Tue, 25 Jun 2019 18:40:50 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1561513250; bh=5nuabqA3lB9c+6LQ5J9+kmbWd3tHSE8mgZPR0/n0q/Q=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=sHML8dwuRtu7f1tHctckU77pUWP9kdLdUkTKsbhL/bU/jelKuogkWqF++TgAAW+LQ nviF91eVmFCJy0gctyksZ793bsykOGw6gjO5RsLUhGIRzVi7uMc56FxCakAJNg6Jrj R9CAQfqGBx1pn0iCsxONNli6QRLki2pWTePBdeug=
From: Marten Seemann <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK24R5XTB3IUWVIRY6F3D772FEVBNHHBW3JQOA@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2841/review/254346008@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2841@github.com>
References: <quicwg/base-drafts/pull/2841@github.com>
Subject: Re: [quicwg/base-drafts] describe how 0-RTT is accepted and rejected (#2841)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d12cd2288e87_2b473fe0044cd9601842ac"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: marten-seemann
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/G9tlc_VUA9aCdqn9rXCMZmvyQdY>
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: Wed, 26 Jun 2019 01:40:54 -0000

marten-seemann commented on this pull request.



>  
-A server rejects 0-RTT by rejecting 0-RTT at the TLS layer.  This also prevents
-QUIC from sending 0-RTT data. A server will always reject 0-RTT if it sends a
-TLS HelloRetryRequest.
+A server rejects 0-RTT by sending a ServerHello without the EarlyDataIndication.
+A server will always reject 0-RTT if it sends a TLS HelloRetryRequest.  When
+rejecting 0-RTT, a server MUST NOT process any 0-RTT packets, even if it is in
+possesion of the keys to do so.  When 0-RTT was rejected, a client MUST treat
+receipt of an acknowledgement for a 0-RTT packet as a connection error of type

@kazuho
> The spec having different packet number spaces does not necessarily mean that every QUIC stack should be having different PN counters for each number space for the packets it sends. It is entirely plausible for a QUIC stack to use just one packet number space for the packets it sends.

The spec is actually quite clear about this (https://quicwg.org/base-drafts/draft-ietf-quic-transport.html#rfc.section.12.3)
>  Packet numbers in each space start at packet number 0.

Now I agree that it's possible to ignore this sentence and start the packet number wherever you want (if you're willing to tolerate the loss recovery response this provokes, i.e. an early ACK because of detected reordering). However, I don't think we need to modify the spec because of self-inflicted complexities of non-compliant implementations.

> IIRC, the sub-clause "if it is able to detect the condition" was added intentionally to the general rule, because people were concerned about the text being interpreted as to recommend having a way to detect such errors.

I think we added this text because for 1-RTT packets, you clear out old ACK ranges from time to time. When receiving an ACK for a very old packet you'd then not be able to check if you actually sent this packet, because you already removed the tracking state.

-- 
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/2841#discussion_r297455344