Re: [quicwg/base-drafts] Refine Discussion of 0-RTT Transport Parameters (#2467)

Mike Bishop <notifications@github.com> Thu, 14 February 2019 23:42 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 88725128B36 for <quic-issues@ietfa.amsl.com>; Thu, 14 Feb 2019 15:42:56 -0800 (PST)
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 T6vHiLGMcgjD for <quic-issues@ietfa.amsl.com>; Thu, 14 Feb 2019 15:42:54 -0800 (PST)
Received: from out-4.smtp.github.com (out-4.smtp.github.com [192.30.252.195]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5DCAE1289FA for <quic-issues@ietf.org>; Thu, 14 Feb 2019 15:42:54 -0800 (PST)
Date: Thu, 14 Feb 2019 15:42:53 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1550187773; bh=tAk4zBEo6Enr6x2xChg2U3wJf05DcAsmk3Sq7rSks8c=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=J5hjkPtueUYZjW+05p4u+0APB6iXFXid/g4k6iFnkobYFnvcRstUVM2DtQX0f1KzZ TJsjAcxGWDWm3KfddvzRq5gnO7GDhrxaMtsCai4uDciaC+38vrFbLovi/sgcL/Juxv bNDdxSvOf3yw8DmKwWM363stSgu1kPjh6pMebCGw=
From: Mike Bishop <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab9f2a39ea80378c38e4dad8acca5e1a71e804c14092cf00000001187dbefd92a169ce187830aa@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2467/review/204018138@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2467@github.com>
References: <quicwg/base-drafts/pull/2467@github.com>
Subject: Re: [quicwg/base-drafts] Refine Discussion of 0-RTT Transport Parameters (#2467)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5c65fcfd23065_597a3fb4f1ad45b8117443"; 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
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/UpBouHFb8mIqcKeNzYtVS2N9XBI>
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, 14 Feb 2019 23:42:57 -0000

MikeBishop approved this pull request.

Looks reasonable to me.  I'm not opposed to @ianswett's suggestion that lets future transport parameters decide whether they need to be remembered or not, either.

> -A server MAY accept 0-RTT and subsequently provide different values for
-transport parameters for use in the new connection.  If 0-RTT data is accepted
-by the server, the server MUST NOT reduce any limits or alter any values that
-might be violated by the client with its 0-RTT data.  In particular, a server
-that accepts 0-RTT data MUST NOT set values for the following parameters
-({{transport-parameter-definitions}}) that are smaller
-than the remembered value of those parameters.
+The value of the server's previous original_connection_id, preferred_address,
+stateless_reset_token, and ack_delay_exponent MUST NOT be used when
+establishing a new connection; rather, the client should wait to observe the
+server's new values in the handshake.
+
+The client MAY store the server's original max_ack_delay and max_packet_size
+transport parameters. The server MAY accept 0-RTT and subsequently provide
+different values for these transport parameters for use in the new connection.
+The client MUST use these values after acknowledging them. If the server does

```suggestion
The client MUST use these values after the handshake completes. If the server does
```
...modulo any rewrapping needed from line-length changes.

> +establishing a new connection; rather, the client should wait to observe the
+server's new values in the handshake.
+
+The client MAY store the server's original max_ack_delay and max_packet_size
+transport parameters. The server MAY accept 0-RTT and subsequently provide
+different values for these transport parameters for use in the new connection.
+The client MUST use these values after acknowledging them. If the server does
+not provide a new value, the client MUST use the default value.
+
+A client that attempts to send 0-RTT data MUST remember all other transport
+parameters used by the server, including new transport parameters
+({{new-transport-parameters}}) that it is able to process. The server can
+remember these transport parameters, or store an integrity-protected copy of
+the values in the ticket and recover the information when accepting 0-RTT
+data. A server uses the transport parameters in determining whether to accept
+0-RTT data.

I think this comment about the server remembering needs to be paired with the prohibition on the server reducing values.  Since you've split out the "in particular" ones already, it might be reasonable to say that the server must not reduce limits / alter values in the transport parameters the client is required to remember.

This is especially true if we go with Ian's suggestion to require future transport parameter definitions to specify which remembering category they fall in.

>  A server MUST either reject 0-RTT data or abort a handshake if the implied
 values for transport parameters cannot be supported.
 
-
-### New Transport Parameters
+### New Transport Parameters {#new-transport-parameters}

Technically unnecessary, since that's the auto-generated anchor anyway.  But it doesn't hurt anything.

-- 
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/2467#pullrequestreview-204018138