Re: [quicwg/base-drafts] When to send the SETTINGS frame (#2945)

Nick Harper <notifications@github.com> Fri, 02 August 2019 21: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 73405120168 for <quic-issues@ietfa.amsl.com>; Fri, 2 Aug 2019 14:37:32 -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 qT1oyCYA7fw8 for <quic-issues@ietfa.amsl.com>; Fri, 2 Aug 2019 14:37:30 -0700 (PDT)
Received: from out-1.smtp.github.com (out-1.smtp.github.com [192.30.252.192]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D27741200E9 for <quic-issues@ietf.org>; Fri, 2 Aug 2019 14:37:29 -0700 (PDT)
Date: Fri, 02 Aug 2019 14:37:28 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1564781848; bh=DA6L3bSwl13jL6aCNv9qVnxkGWBpKZtLh2dZPVdkX58=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=v8ILAzeXiGhVBL+PTe/2XShou2y3O0IbnNxE/P9NN6364Sup+q2ZEgDZgO4h6kc6u mlsvSoxmZbS4Ex1J+ubCrxNb+iJujMXbmz9tDwwaT6zNcn15mNSeh5oVImecl5jJwB dwssCWEN7FTdi9LnVc/TEwTQ0qwCZg2Vdi7VWPaw=
From: Nick Harper <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKYX3UGFIEX4OGXGIC53KHPZREVBNHHBYVUFKY@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/2945/517851505@github.com>
In-Reply-To: <quicwg/base-drafts/issues/2945@github.com>
References: <quicwg/base-drafts/issues/2945@github.com>
Subject: Re: [quicwg/base-drafts] When to send the SETTINGS frame (#2945)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d44ad188e6d6_2133f9c7a8cd95c1759aa"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: nharper
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/n6T-Co7bXUVf1r4qdBCjex1tQPU>
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: Fri, 02 Aug 2019 21:37:33 -0000

The asymmetry between having client send SETTINGS in an H3 frame and a server sending SETTINGS in TP doesn't bother me because those settings serve different purposes. The client's SETTINGS serves solely to indicate H3 configuration for the connection on which it was sent. The server's SETTINGS serves both that purpose and to indicate H3 configuration that will be accepted for early data sent on a future connection. We already have an asymmetry in the purpose of the two SETTINGS frames.

Why not consider the two use cases for the server's SETTINGS separately? The second use case (use these settings for early data on a future connection) would be better served if it were more tightly coupled to other information sent to the client about what to do on that future connection. That could be done by sending it in a NewSessionTicket extension; it could also be done by putting it in the TLS handshake (e.g. in EncryptedExtensions or in transport parameters).

If we consider the use cases completely separately, then we could have the server send an H3 SETTINGS frame for the current connection and put settings in NST or EE for use for the future connection. This leads to duplication of data sent (if n NSTs are sent, the settings are sent n+1 times), although it allows the server to specify different parameters for the current connection vs the future ones. Using EE instead of NST reduces the duplication when multiple NSTs are sent.

A design of both client and server sending SETTINGS as an H3 frame to apply for the current connection (and only that connection) meets the requirements for symmetry. The requirement for allowing non-default SETTINGS to apply in early data is solved by having the server signal the SETTINGS for early data of a future connection via some other mechanism, either in the NST or in EE. Is putting server SETTINGS in both an H3 frame and EE preferable to putting them just in EE?

-- 
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/2945#issuecomment-517851505