Re: Second Implementation Draft Guidelines

"Brian Trammell (IETF)" <ietf@trammell.ch> Mon, 10 July 2017 13:12 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 857A0131758 for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 06:12:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
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 CJ8xMHPTclKp for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 06:12:05 -0700 (PDT)
Received: from capri.iway.ch (capri.iway.ch [212.25.24.45]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 596D913175A for <quic@ietf.org>; Mon, 10 Jul 2017 06:12:05 -0700 (PDT)
Received: from gozo.iway.ch (localhost [127.0.0.1]) by localhost (Postfix) with ESMTP id 0238E340D54; Mon, 10 Jul 2017 15:12:04 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1]) by localhost (ACF/18338.27984); Mon, 10 Jul 2017 15:12:03 +0200 (CEST)
Received: from switchplus-mail.ch (switchplus-mail.ch [212.25.8.236]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by gozo.iway.ch (Postfix) with ESMTPS; Mon, 10 Jul 2017 15:12:03 +0200 (CEST)
Received: from [213.144.146.206] (account ietf@trammell.ch HELO [192.168.115.25]) by switchplus-mail.ch (CommuniGate Pro SMTP 6.1.14) with ESMTPSA id 23300309; Mon, 10 Jul 2017 15:12:03 +0200
Subject: Re: Second Implementation Draft Guidelines
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Content-Type: multipart/signed; boundary="Apple-Mail=_D64857BC-A8CA-4BB7-AEC8-AFA071A0BC68"; protocol="application/pgp-signature"; micalg="pgp-sha512"
X-Pgp-Agent: GPGMail
From: "Brian Trammell (IETF)" <ietf@trammell.ch>
In-Reply-To: <CAKcm_gOgr8JMQdwN17BDUi86uoKUWyJk59ROMvQ_xbydfVitHA@mail.gmail.com>
Date: Mon, 10 Jul 2017 15:12:01 +0200
Cc: Kazuho Oku <kazuhooku@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Martin Duke <martin.h.duke@gmail.com>, Ryan Hamilton <rch@google.com>
Message-Id: <54A7EC17-5F0A-4BB8-A099-3728B0C25144@trammell.ch>
References: <CAM4esxQqbcuB_naqU+L-ZQ+8CF23oHN37u7OAfPOw_TT2yUBYQ@mail.gmail.com> <CAGD1bZa6vjLTdsyy3-3Kvg15BXZxtwWaBb2ajeBT_4gYGs10WA@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A377241F8@bgb01xud1012> <CAGD1bZY=kXE1mkuG3LOBD7JOZD+HFgZGFu88i3_pWHHjtCjRVA@mail.gmail.com> <CANatvzzH4s=_rt8Dh2BEFj7f9sab8tV_Br0i7OAL+BnC0d59LQ@mail.gmail.com> <CAJ_4DfQKmBZoKt9onj2HrnM4TFF+Ket5NNCL5zy+2e-8Es9X9A@mail.gmail.com> <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@mail.gmail.com> <CAKcm_gOgr8JMQdwN17BDUi86uoKUWyJk59ROMvQ_xbydfVitHA@mail.gmail.com>
To: Ian Swett <ianswett@google.com>
X-Mailer: Apple Mail (2.3124)
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/3mb344OPKHG67kxD0V7izqXBEZE>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 10 Jul 2017 13:12:07 -0000

> On 10 Jul 2017, at 12:33, Ian Swett <ianswett@google.com> wrote:
> 
> There are two practical options to mitigate performance issues on opposite ends of the spectrum, and both of which I expect to perform at least slightly better than H2 over TCP for most applications.
> 
> 1) Run HTTP/2 over a single QUIC stream.  This should be easy for most implementers, but incurs maximum HOL blocking.
> 2) Use the HPACK static dictionary to get some of the header compression benefits.  I think this provides a better baseline to evaluate QPACK/QCRAM from.
> 
> On a high level, I support adding some sort of HTTP application mapping to the second draft, with the knowledge it is likely to change a large amount.

This seems like a good target, as long as it's possible to ensure it's blindingly obvious to everyone that it is likely to change a large amount.

We have a bit of a paradox here. In order to keep people from shipping 2nd impl it needs to be functionally limited to the point that it's obviously silly to ship. But it can only be useful as a test of the features in the spec that it implements, which argues against an obviously silly profile.

A useful question to ask at this point: how many separate implementation drafts do we target before WGLC?

Cheers,

Brian

>  GQUIC has already changed it's HTTP mapping at least twice that I'm aware of, and it has some challenges, but it's fairly doable, even when supporting both for long periods of time.
> 
> On Mon, Jul 10, 2017 at 3:32 AM, Kazuho Oku <kazuhooku@gmail.com> wrote:
> 2017-07-10 12:28 GMT+09:00 Ryan Hamilton <rch@google.com>:
> >
> >
> > On Sun, Jul 9, 2017 at 5:39 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:
> >>
> >> 2017-07-09 1:45 GMT+09:00 Jana Iyengar <jri@google.com>:
> >> > I've been thinking about this, and I'm starting to think that we should
> >> > cover more ground in the second implementation draft.
> >> >
> >> > I'm hearing about increasing deployments of gQUIC, largely due to market
> >> > pressures. The availability of the Chromium implementation makes it
> >> > particularly easy for folks to deploy QUIC with that code. I think we
> >> > need
> >> > to move with some urgency, even if we don't change everything about QUIC
> >> > to
> >> > make it perfect, so that we can start getting IETF QUIC deployments out
> >> > there. Specifically, I think we should:
> >> > 1. work out the wire-visible invariants and finalize all of those for
> >> > the
> >> > second impl draft. We know that there are some middleboxes that already
> >> > have
> >> > classifiers for gQUIC, and we need to move quickly and push IETF-QUIC so
> >> > we
> >> > can test that IETF-QUIC is deployable. I fear that the longer we take,
> >> > the
> >> > more widespread gQUIC ossification will be.
> >> > 2. allow impls to make serious progress towards a basic HTTP mapping
> >> > over
> >> > QUIC. We can punt on header compression (QPACK/QCRAM), but perhaps test
> >> > a
> >> > basic HTTP request-response over QUIC. We can still punt
> >> > performance-oriented things such as full loss recovery and congestion
> >> > control to later. This forces us to try and finalize the HTTP mapping
> >> > details, which is a good thing, IMO.
> >>
> >> I agree with Jana.
> >>
> >> If we can have some basic HTTP mapping (it can be as basic as using
> >> HTTP/1.0 over each stream), we can use that to test how the IETF
> >> version of QUIC performs well in the field, by comparing its
> >> performance to HTTP over TCP.
> >
> >
> > Interesting idea. One challenge with performance analysis is that it'll be a
> > bit of an apples to oranges comparison. QUIC will be doing HTTP/1 (without
> > header compression) against HTTP/2 (with header compression) or HTTP/1.1
> > (over multiple connections).
> 
> Agreed.
> 
> Though I might argue that collecting metrics of a QUIC implementation
> without header compression could be useful. We can use that as a
> baseline when we formalize QPACK / QCRAM.
> 
> --
> Kazuho Oku
> 
>