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

Nick Harper <notifications@github.com> Fri, 02 August 2019 02:25 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 5FACE120089 for <quic-issues@ietfa.amsl.com>; Thu, 1 Aug 2019 19:25:36 -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 lHrvp-IxBg7G for <quic-issues@ietfa.amsl.com>; Thu, 1 Aug 2019 19:25:34 -0700 (PDT)
Received: from out-7.smtp.github.com (out-7.smtp.github.com [192.30.252.198]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 811E312001A for <quic-issues@ietf.org>; Thu, 1 Aug 2019 19:25:34 -0700 (PDT)
Date: Thu, 01 Aug 2019 19:25:33 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1564712733; bh=3YlZDi8Xell3I6BUvPdmYvKah2FapDYuSUm6e5/MMTM=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=ZtK1uYGNloxxvwXXMabKuxec7nyNfhCB/QUExkKf9PzREXcgR93aODgTyQnghhCM7 HBEQa/nvfsriBOuF996NYVIqrJbBtZ7Fg2qYMPexCSARRrECLF+ZInv2/pe/SkLW3t OqvLHsj2YAX40m4GFT9ozUkEpXrtB/uZZ7eaif54=
From: Nick Harper <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKY5MBN3LEVQCQ6RODF3KDIZ3EVBNHHBYVUFKY@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/517523146@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_5d439f1d6c0d0_4aec3fb982ccd960402417"; 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/VGWpVfW0XS2NiQGbHayLxaPachk>
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 02:25:36 -0000

I was thinking of asymmetry (client sends SETTINGS in an H3 frame, server sends them in TP in EE), though collapsing them entirely to TP and half a round trip earlier has some appeal. (My biggest concern with that is the client's SETTINGS are sent in the clear.)

In thinking about how to implement #2790 (and how to specify/clarify some of that language), there's quite a bit of interaction between the H3 layer and TLS layer. I see how it's tempting to move the TLS session ticket to an H3 frame. However, this means that any application that wants to use QUIC for its transport has to provide some mechanism to convey session tickets (otherwise that application can't use 0-RTT), which seems like a large downside.

Having everything at one layer for handling session tickets sounds like it would work best, and I think the transport layer (instead of the application layer) is the right place for that. The server's transport parameters already need to be remembered by both peers for 0-RTT resumption, so we're stuck with the transport-layer interaction with tickets. If we add an "application layer parameters" field to transport parameters, we can put the server's SETTINGS in there (and possibly the client's), and we get all of the logic for remembering SETTINGS for free. Also all of the ordering problems between SETTINGS and the NewSessionTicket go away.

-- 
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-517523146