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

Martin Thomson <> Wed, 07 August 2019 02:38 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 879C4120096 for <>; Tue, 6 Aug 2019 19:38:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.596
X-Spam-Status: No, score=-6.596 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_IMAGE_ONLY_28=1.404, 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: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id sHbPNdaeWqPF for <>; Tue, 6 Aug 2019 19:38:06 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B868212000E for <>; Tue, 6 Aug 2019 19:38:06 -0700 (PDT)
Date: Tue, 06 Aug 2019 19:38:05 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1565145485; bh=3O4TqvhTlIR+XmdkV5Dy0g0DuhPjqB/slwh9gx+AKsk=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=05lGqnBw2Dj5sJqwFoS9xPe+on59P2D8giL75kGxooRXEsGvpek7tQcXlgdPm10cK 8XWorSIBC/ZRXUdg6g9t5+QVvIwkFUE89mquaJiDlPZ/PSP6lcoHCT9vINJgmeuTOa a/k5+TvS+vHX4Wavt5ccHgq2A3aPDJzCw5G6KTUk=
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/issues/2945/>
In-Reply-To: <quicwg/base-drafts/issues/>
References: <quicwg/base-drafts/issues/>
Subject: Re: [quicwg/base-drafts] When to send the SETTINGS frame (#2945)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5d4a398db497b_2aa03fcfcb0cd96c464660"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
Archived-At: <>
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 07 Aug 2019 02:38:09 -0000

That seems unwise in the extreme.  SETTINGS was designed to be non-blocking.

The advice here seems simple enough:

1. send SETTINGS always

  corollary (that I didn't think needed to be stated explicitly, but we can do that): don't condition your SETTINGS on the value from your peer
  optional: maybe recommend always sending all non-default settings and not assuming that a peer has saved values

2. don't use a ticket unless you also have SETTINGS

   inference: if you don't, you get vanilla h3 (and Alan will be sad that he spent all that time on QPACK only to have you not use it, you ingrate)

I think that addresses concerns about resumption as well as 0-RTT.  I agree that this is not great from an implementation perspective, but I'm fairly sure that we can all use `&&` in our code.  Async handling for NewSessionTicket will suck for sure, but that's not the worst complication ever.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub: