Re: [quicwg/base-drafts] Send complete SETTINGS (#2972)

David Benjamin <notifications@github.com> Thu, 22 August 2019 02:26 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 026FE120048 for <quic-issues@ietfa.amsl.com>; Wed, 21 Aug 2019 19:26:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -8
X-Spam-Level:
X-Spam-Status: No, score=-8 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] 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 mWNYpigYgQGa for <quic-issues@ietfa.amsl.com>; Wed, 21 Aug 2019 19:26:18 -0700 (PDT)
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 CC8C412003F for <quic-issues@ietf.org>; Wed, 21 Aug 2019 19:26:17 -0700 (PDT)
Date: Wed, 21 Aug 2019 19:26:17 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1566440777; bh=jOO7I8uS7rxlPYUFK1gD7fwiqn3wnLrrmlBjo1pAMu0=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=taupDWCrA9frV04S+Kx3PsEEmv4+YLJ4aamrAfcetoPtLmXh5oE72K0hU/XiIHXCx VfgUwNeHxoiOle11i3LHEbyhSbpFPmcVCEBxyezLh3dxgh8JjF0/upsPjpqe9Zppba YfDMFq7uSzOsGzfvFcMef/hy3miNUpi0vPgCqQhc=
From: David Benjamin <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJK32CYWLNKLR6VFZ5C53NMX4TEVBNHHBZNSWTM@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2972/review/278161580@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2972@github.com>
References: <quicwg/base-drafts/pull/2972@github.com>
Subject: Re: [quicwg/base-drafts] Send complete SETTINGS (#2972)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d5dfd4974b3_512a3fde064cd9602909d5"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: davidben
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/wmoVcDznKsW7-LOtqjIG631ASIE>
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, 22 Aug 2019 02:26:20 -0000

davidben commented on this pull request.



>  initial value of each server setting is the value used in the previous session.
-Clients MUST store the settings the server provided in the session being resumed
-and MUST comply with stored settings until the current server settings are
-received.  A client can use these initial values to send requests before the
-server's SETTINGS frame has arrived.  This removes the need for a client to wait
-for the SETTINGS frame before sending requests.
+Clients SHOULD store the settings the server provided in the connection where
+resumption information was provided. A client MUST comply with either stored
+settings -- or default values, if no values are stored -- when attempting 0-RTT.
+Once a server has provided new settings, clients MUST comply with those values.

This does smooth over the worst of this mess, but since the ordering issue is not obvious, I think it's worth calling out explicitly that the client may choose not to store the settings if things were received in the wrong order.

>  
 A server can remember the settings that it advertised, 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 HTTP/3 settings values in
-determining whether to accept 0-RTT data.
+determining whether to accept 0-RTT data.  If the server cannot determine that
+the settings remembered by a client are compatible with its current settings, it
+MUST NOT accept 0-RTT data.  (Remembered settings are compatible if a client
+complying with those settings would not violate the server's current settings.)

(I expect our implementation will just require an exact byte-for-byte match. It saves adding a funny callback and I wouldn't expect the values to actually change much. Same for the QUIC transport parameters.)

>  
 A server MAY accept 0-RTT and subsequently provide different settings in its
 SETTINGS frame. If 0-RTT data is accepted by the server, its SETTINGS frame MUST
 NOT reduce any limits or alter any values that might be violated by the client
-with its 0-RTT data.  The server MAY omit settings from its SETTINGS frame which
-are unchanged from the initial value.
+with its 0-RTT data.  The server MUST include all settings which differ from
+their default values.

What should the client do if it sees the server reduce limits or otherwise alter values?
What if it sees the server do so implicitly by omitting a non-default setting that was previously set in the remembered SETTINGS frame?

-- 
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/2972#pullrequestreview-278161580