Re: [quicwg/base-drafts] Applications need to disable or selectively reject 0-RTT (#3138)

Martin Thomson <> Thu, 24 October 2019 02:12 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id E5A661200E7 for <>; Wed, 23 Oct 2019 19:12:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -7.999
X-Spam-Status: No, score=-7.999 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_32=0.001, 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 iJUJBg7TMQ8D for <>; Wed, 23 Oct 2019 19:12:32 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id BE3E712010D for <>; Wed, 23 Oct 2019 19:12:32 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id E069D8C1112 for <>; Wed, 23 Oct 2019 19:12:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=pf2014; t=1571883151; bh=cHfmXqvAkgFRkUFkOJaBmGwB1qT6U6U4+ClUfP1COIE=; h=Date:From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=JvtvkUbTX0D2vupia3v06m2v3aIM7+hqFJpwOZAW+iukK3tEMPVJjhTP6fyCXjt4U sdss0UPjq0PKQus7PnUOMG8mJw9JMoo14afWRSVXugsWZgTV4YM6xqKgBL7FVq492E libz41zjL1y3LGocKZlN/Y79WJ8Y7MHRA0osoI2Y=
Date: Wed, 23 Oct 2019 19:12:31 -0700
From: Martin Thomson <>
Reply-To: quicwg/base-drafts <>
To: quicwg/base-drafts <>
Cc: Subscribed <>
Message-ID: <quicwg/base-drafts/pull/3138/review/>
In-Reply-To: <quicwg/base-drafts/pull/>
References: <quicwg/base-drafts/pull/>
Subject: Re: [quicwg/base-drafts] Applications need to disable or selectively reject 0-RTT (#3138)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5db1088fd0ef4_653f3feda5ccd96845089"; 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: Thu, 24 Oct 2019 02:12:35 -0000

martinthomson commented on this pull request.

> @@ -1159,7 +1159,7 @@ the operations described in this section on a QUIC connection.
 When implementing the client role, applications need to be able to:
 - open a connection, which begins the exchange described in {{handshake}};
-- enable 0-RTT; and
+- disable or selectively reject 0-RTT; and

The application (protocol) definitely need to know when 0-RTT is rejected because it has to start over completely for anything that it might have already sent (that's the very next interface requirement).  However, for that to happen, it makes sense for the application to know when it was attempting 0-RTT.

Our API would satisfy this simply by allowing stream creation and writing prior to handshake completion: the application just needs to understand that writing before handshake completion means that you are attempting 0-RTT.  Our TLS stack has a different API, because of backward compatibility: you have to explicitly turn on 0-RTT.  Either approach works fine, except that QUIC doesn't need to concern itself as much with backward compatibility.

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