Re: Higher layer comments on stream 0 proposal, WG schedule, and gQUIC

Patrick McManus <> Wed, 23 May 2018 20:51 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id C6E7412D7F0 for <>; Wed, 23 May 2018 13:51:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.234
X-Spam-Status: No, score=-1.234 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id rrIr-L4I62Fr for <>; Wed, 23 May 2018 13:51:00 -0700 (PDT)
Received: from ( [IPv6:2600:3c02::f03c:91ff:fe6e:e8da]) by (Postfix) with ESMTP id EBCD7127010 for <>; Wed, 23 May 2018 13:50:59 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTPSA id BDFC63A043 for <>; Wed, 23 May 2018 16:50:58 -0400 (EDT)
Received: by with SMTP id 77-v6so26854531otd.4 for <>; Wed, 23 May 2018 13:50:58 -0700 (PDT)
X-Gm-Message-State: ALKqPwcWqRdUjC9wZ+5H4KGjNJnwByNSU/5b4BWksgq59ayDKpcAAEw5 oal1rvCqAU5aIwCvrMEvETWCP4+bXdACihHKVBk=
X-Google-Smtp-Source: AB8JxZoVZ9bsiIr1SWtmOfOnHoD+tu+2peG/XIJIgUxHHIoaGqdm/PNADBRYAW7nIp5AIfJsj0M2SegXVtOYPUCum8o=
X-Received: by 2002:a9d:1ba8:: with SMTP id z37-v6mr2984885otd.85.1527108658429; Wed, 23 May 2018 13:50:58 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a4a:8a24:0:0:0:0:0 with HTTP; Wed, 23 May 2018 13:50:57 -0700 (PDT)
In-Reply-To: <>
References: <>
From: Patrick McManus <>
Date: Wed, 23 May 2018 16:50:57 -0400
X-Gmail-Original-Message-ID: <>
Message-ID: <>
Subject: Re: Higher layer comments on stream 0 proposal, WG schedule, and gQUIC
To: Ted Hardie <>
Content-Type: multipart/alternative; boundary="0000000000001e889b056ce5b167"
Archived-At: <>
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 23 May 2018 20:51:04 -0000

Schedule needs to be part of this conversation - it certainly was within
the design team. But its not the initial (or solely determinative)
question, in my mind.

At the end of the DT process the group had consensus that it was more
important to get it right with reasonable cost instead of constraining
ourselves to near zero cost. The output reflects that.

In particular the proposal does a nice job of sorting out the issues of
encryption level (which is a terrible problem with stream 0 and the
associated acks) while still maintaining a unified reliability layer.
That's a pretty neat trick and a tough circle to square.

There was a bit of a personal journey on this as well for me (it may have
helped to have internalized an entire potential shift to DTLS first before
settling on this much more modest approach). I would encourage you to get
comfortable with the details, and lets all have a discussion of the merits
instead of jumping ahead to the cost benefit discussion (I'm not suggesting
eliding that discussion entirely - shipping is a feature, and we should
balance all the features as we've done in the past.). As the details start
to come together it actually feels less ambitious - just a reasonable
ordering of things really that solves a number of very practical issues
we've shown during our running code exercises. It just looks at the
boundaries between security/application/transport in a novel way.. which is
just a synonym for the QUIC WG :)

That's my experience anyhow.

Personally, I've been reassured that the owners of a number of TLS stacks
embraced this approach so eagerly, as a significant amount of the burden
falls on them. There will, as always, be laggards and trailblazers on that
front.. as long as there are existence proofs that it can be done
reasonably I wouldn't let the competitive details of which libraries are at
what stage tell us too much about what is right for the protocol we're


On Wed, May 23, 2018 at 4:16 PM, Ted Hardie <> wrote:

> The charter for the working group currently says:
> This work will describe how the protocol uses TLS 1.3 for key negotiation
> and will also describe how those keys are used to provide confidentiality
> and integrity protection of both application data and QUIC headers.
> It's easy to read that as saying the work should be constrained to use TLS
> 1..3 as provided.  If we read it that way, the design team proposal is
> strictly speaking out of charter, because it requires the creation of not
> just new APIs for TLS 1.3 but essentially a new formal analysis that the
> security guarantees work when there is no record layer and where the
> replacement has somewhat different facilities.
> But the charter also says
> Note that consensus is required both for changes to the current
> protocol mechanisms and retention of current mechanisms. In particular,
> because something is in the initial document set does not imply that
> there is consensus around the feature or around how it is specified.
> That argues that the community was willing to see serious change in
> adopting this work and that this work falls within the kind of change that
> was contemplated, even if happens to be across working groups.  Personally,
> I think that means the design should be considered.
> But I have grave concerns about the implications.  My back of the envelope
> calculation is that this means at least one more cycle of specification and
> interop will be required before we get back to where we are with draft -11,
> and that estimate is because I'm in a hopeful mood that Sean and Eric can
> move the required work in TLS along.  A more practical Ted would see this
> as adding at minimum 6 months to the schedule.  The changes in TLS are also
> large enough that I expect that the deployment time to see significant
> penetration of the new libraries to be longer than it would be for the
> previous design.   Call it 9 months, with 3 months of error bar.
> During that time, the penetration of gQUIC outside Google does not seem
> likely to slow.  If you want what QUIC has to offer now, you will take the
> already available code and go.  For Web usages, there are some down sides
> to that, and it may slow the eventual deployment of IETF QUIC.
> But there are also down sides to all of the other protocols that would
> like to use QUIC but have been told to wait for the completion of this
> effort.  We're likely to see DNS over HTTPS over QUIC instead of DNS over
> QUIC, simply because the DOH transport docs will be done.  There are some
> advantages there, but also disadvantages in enmeshing the HTTP and DNS
> caching semantics.    There are also a number of groups who want to use
> QUIC as a replacement for the WebRTC data channel (and some as the
> substrate for media).  This additional delay will certainly cause some code
> to be written that will either need extensive change or will bit rot (or
> fork).  None of that is without costs, especially opportunity costs.
> If the working group does decide to adopt this design, I believe part of
> the milestone adjustment must be a serious consideration of delaying the
> qpack and HTTP-specific work while the core transport is finished.  The
> good news, I think this design could end up making the document separation
> that requires much cleaner, as well as making how to use QUIC with other
> application protocols much more obvious.
> My thanks again for doing the work of bringing the design forward,
> Ted