Re: [quicwg/base-drafts] Rejection of 0-RTT: start over? (#761)

Ryan Hamilton <notifications@github.com> Wed, 20 September 2017 14:09 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 719E0129A89 for <quic-issues@ietfa.amsl.com>; Wed, 20 Sep 2017 07:09:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7
X-Spam-Level:
X-Spam-Status: No, score=-7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, 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 ATL6iOS8EEK7 for <quic-issues@ietfa.amsl.com>; Wed, 20 Sep 2017 07:09:34 -0700 (PDT)
Received: from github-smtp2a-ext-cp1-prd.iad.github.net (github-smtp2-ext4.iad.github.net [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 C9BB3126B6D for <quic-issues@ietf.org>; Wed, 20 Sep 2017 07:09:34 -0700 (PDT)
Date: Wed, 20 Sep 2017 07:09:33 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=github.com; s=pf2014; t=1505916573; bh=T80AMvyWp+Blph6cBKWWBMckjaSmBcg8dk6NNk20Nak=; h=From:Reply-To:To:Cc:In-Reply-To:References:Subject:List-ID: List-Archive:List-Post:List-Unsubscribe:From; b=g/pwvJ6ZsnZByU/NTbIuYBHwQB2pVl1CpAEmeuSPzQkLwE3y09LnauxTAoyXRL3IY VQQaL2l/u4It09WHB92g0ng6pMMeX5LwPVnlLQm7k7JTl7Q3mVInref9GpkxTgG0Vp 0v4jRmLSdiUbDMPB5iAGLKKPfl4kTCkUpZPVMVMs=
From: Ryan Hamilton <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+0166e4ab0df47267bb61c9d0ef3e20591d9ed4d06ac3d13492cf0000000115da389d92a169ce0f39dd03@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/issues/761/330863379@github.com>
In-Reply-To: <quicwg/base-drafts/issues/761@github.com>
References: <quicwg/base-drafts/issues/761@github.com>
Subject: Re: [quicwg/base-drafts] Rejection of 0-RTT: start over? (#761)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_59c2769dd3ffc_7ad33fbc8f0b4f8877472"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: RyanAtGoogle
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/RZC0QX2orC3GpZU4bXUaKtyYwJs>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.22
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: Wed, 20 Sep 2017 14:09:36 -0000

On Tue, Sep 5, 2017 at 6:00 PM, Martin Thomson <notifications@github.com>
wrote:

> If 0-RTT is rejected should the client:
>
>    1. start over at the application layer
>    2. close all streams that it initiated (can't do that because stream 1
>    is special)
>    3. just pretend that the packets were lost and need retransmission
>
> Previously, people (@RyanAtGoogle <https://github.com/ryanatgoogle>)
> advocated for 3. So far the preponderance of feedback on the list has been
> in favour of 1, which is at least consistent with the approach in TLS.
>
​Yeah, we do #3 in Google's QUIC implementation which is super simple. Yay
for simple. Until recently I thought everyone should just do the simple
thing.

Alas, it can also be incorrect :(​ In particular, if there are any
properties of the request which depend on the connection's key (for example
Token Binding headers) then they will not be updated to reflect the new
keys. So in our implementation we're going to eventually move away from #3.

That being said, can you clarify the difference between 1 and 2? For
example, in the case of HTTP over QUIC using Token Binding, we need to
request headers to be regenerated which (in the case of Chrome's network
stack) means that the request needs to be restarted up in the application
and hence. Would this be an example of 1 or 2? (2 could definitely work,
but I'm not sure I understand the details of 1)


-- 
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/761#issuecomment-330863379