Re: Second Implementation Draft Guidelines

Martin Duke <martin.h.duke@gmail.com> Fri, 14 July 2017 16:51 UTC

Return-Path: <martin.h.duke@gmail.com>
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 8E323127369 for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 09:51:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 ObV9FqZbLjAV for <quic@ietfa.amsl.com>; Fri, 14 Jul 2017 09:51:01 -0700 (PDT)
Received: from mail-wr0-x236.google.com (mail-wr0-x236.google.com [IPv6:2a00:1450:400c:c0c::236]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3734A126C22 for <quic@ietf.org>; Fri, 14 Jul 2017 09:51:01 -0700 (PDT)
Received: by mail-wr0-x236.google.com with SMTP id u110so5584628wrb.0 for <quic@ietf.org>; Fri, 14 Jul 2017 09:51:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=h3AyRe6HVwGe0R/0f7qU1FCRxtQvR/L32Cuv9ThKDIs=; b=Cu6zS3qcjempgv2nkl+Hy4UHfTcZzW2LB9tJvvyaLg73lkF5aAs3EsdqrAX0HR42nd ecSli//W/wNTWc8MeW2Yc2DyrQvjHfQBv8SrAN+0NNyrY020/M9AHdsU1r509W6G1gHx E5spwTlJPl3CW2K1fftIEMXoS9akWehQD7A8D/XvAWV5/ChTaCVyJHrBBn7r7tb0eWTN 3d6O1wrJ0tJWhMq8LySoX84B/7gE6MvHVM+t1w2T2BLX9fDv9zHHT1opDk/NOIpiIscA mrXpNIhWJiUEU0K0/rJRA1OWIikMfUixbacfzZ/Vs0lvLfQHPczzRDNb8ftcfVZc4e3w n4Lw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=h3AyRe6HVwGe0R/0f7qU1FCRxtQvR/L32Cuv9ThKDIs=; b=kMv5q34Wjh0AKdTECtUJkL5LXxPrusXooBMRFpUkG6NBypYwpqxtzANriqmsR6EGhD TVQFIc1diTrL02R6GHh/ZwMot6uYuEdMuaejnVoM5iipLGzoazH2urzE/kJpvef4Hgoj ENDWmy/tzqI1DvtFl+ulYw/oTZAhxOTQZLDHN2qcCSvYeFldxGVYDrJB20npWyw8a9rS FpuLwxldM08EcGJATMyhk4bb2Ew6hMMxHm28YcqaIHMBCL+APuq5BAyaMKaDwKIh+ber 31fVI84ZCz+aQH2OH5Fk8gAojmxp7cSrrR2OtikQMBUn6zS5dCNDl44Pk/sRE0mQFDcH NlQA==
X-Gm-Message-State: AIVw111m9gCx/I9rlqVnNWReQMCL543hRPTeas+J1oaPMiC4S5F4bwHF xbspMTzE7hkscYHMApMchT0wQOd+EQ==
X-Received: by 10.223.157.35 with SMTP id k35mr4790677wre.156.1500051059711; Fri, 14 Jul 2017 09:50:59 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Fri, 14 Jul 2017 09:50:58 -0700 (PDT)
In-Reply-To: <CANatvzy-wR6PGuTHm-xhBuGHNTwXCDgNJHT=DnE1tHeDVWHLuA@mail.gmail.com>
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> <CAM4esxQAUdYBOJi3tBe4=q4sSwOZub-+qtMzzz3z5M2sMhV9xA@mail.gmail.com> <CAKcm_gMTCrG+YmvnDDtn0qL9HeM-dN5tPpR9wr6A8U31c9p4CA@mail.gmail.com> <CAM4esxQ9CWQeQhb0vCqtmAHczZHcTQiKVccWg77XPEH7uXQnAA@mail.gmail.com> <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@mail.gmail.com> <CAM4esxTnE335An=9Z00c15y88ZPZKs4VgLF3mAboU88WgtUTOA@mail.gmail.com> <CAKcm_gOvw5ynFXkpoiw3oBz0mue8_z4Y5qHmsRrukrhwhiQ5bQ@mail.gmail.com> <CANatvzy-wR6PGuTHm-xhBuGHNTwXCDgNJHT=DnE1tHeDVWHLuA@mail.gmail.com>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Fri, 14 Jul 2017 09:50:58 -0700
Message-ID: <CAM4esxRb4+xMXgL=qNEnQiO53uJXL0AxRFN654N5vxAUj8LQHw@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Ian Swett <ianswett@google.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, Jana Iyengar <jri@google.com>, IETF QUIC WG <quic@ietf.org>, Ryan Hamilton <rch@google.com>
Content-Type: multipart/alternative; boundary="f40304388d0c8f255b055449da8c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/GjgLWkVGZOohOoYVK-IkoUA2Uxg>
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: Fri, 14 Jul 2017 16:51:04 -0000

OK, I understand now. I've added a third option as you described. But I
omitted

Further revisions to mechanisms in the First Implementation Draft (e.g.
changes to the public header format, connection close).

as something that might not be entirely relevant to getting something
deployed, in the interests of reducing scope. If that's a big mistake, let
me know.

On Thu, Jul 13, 2017 at 6:33 PM, Kazuho Oku <kazuhooku@gmail.com> wrote:

> 2017-07-14 9:57 GMT+09:00 Ian Swett <ianswett@google.com>:
> > I think it is an MVP of HTTP over QUIC, and one I believe Google would be
> > willing to deploy at some scale.
> >
> > That's not to say I'm opposed to the other two options, but I have a
> > preference for something I believe can run real applications with
> reasonable
> > performance, even if it's not ideal.
>
> +1.
>
> I agree that think that sending multiple HTTP requests / responses
> over QUIC, with stateless HPACK would be a nicely balanced approach
> that can be used deployed at some scale as well as one that can be
> used for preliminary performance measurements.
>
> > On Thu, Jul 13, 2017 at 8:47 PM, Martin Duke <martin.h.duke@gmail.com>
> > wrote:
> >>
> >> I'm a little concerned that a blend of the strategies leaves us with
> >> something that still allows ossification and isn't quite enough for
> decent
> >> performance testing. But I did add your further clarifications about
> HTTP/2,
> >> and the "at scale" provision.
> >>
> >> Is your option 3 the MVP for something you'd like to do with this
> >> iteration?
> >>
> >> On Thu, Jul 13, 2017 at 5:28 PM, Ian Swett <ianswett@google.com> wrote:
> >>>
> >>> Thanks for the update.  I would suggest a third potential option, which
> >>> is a mix of what you have with a small clarification(in bold):
> >>>
> >>> Further revisions to mechanisms in the First Implementation Draft (e.g.
> >>> changes to the public header format, connection close).
> >>>
> >>> Transport Parameter Exchange. At the very least, the four parameters
> >>> specified as MUST in the draft.
> >>>
> >>> Address validation and HelloRetryRequest
> >>>
> >>> An HTTP/2 application to require multiple streams (with stateless HPACK
> >>> compression, no QPACK, QCRAM, etc) and no server push.
> >>>
> >>>
> >>> Any implementations that deploy at any scale must also do:
> >>>
> >>> Loss Recovery beyond the exising 1-RTO retransmissions. (I believe this
> >>> includes a number of concepts that are extensively tested in TCP and
> has low
> >>> interoperability concerns).
> >>>
> >>> Congestion Control
> >>>
> >>>
> >>> The reasoning being that both stateless reset and 0RTT are a fair bit
> of
> >>> work to get right based on my experience, and are not critical to
> having a
> >>> useful QUIC application.
> >>>
> >>> On Thu, Jul 13, 2017 at 7:46 PM, Martin Duke <martin.h.duke@gmail.com>
> >>> wrote:
> >>>>
> >>>> Alright, I updated the second implementation draft significantly.
> >>>>
> >>>> https://github.com/quicwg/base-drafts/wiki/Second-
> Implementation-Draft
> >>>>
> >>>> There are now two strategies: "Lock down the wire image" and "do what
> we
> >>>> need to allow useful performance testing". I much prefer the former
> but it
> >>>> is worth discussing, since people appear to be interested in both.
> >>>>
> >>>> It's also clear (at least to me) that we need to do basic stream
> >>>> life-cycle stuff in either case, so that has moved into the "must
> include"
> >>>> category.
> >>>>
> >>>> Martin
> >>>>
> >>>> On Mon, Jul 10, 2017 at 5:06 PM, Ian Swett <ianswett@google.com>
> wrote:
> >>>>>
> >>>>> Agreed, performance analysis is going to be useless in the absence of
> >>>>> loss recovery and congestion control.  Presumably anyone deploying
> this at
> >>>>> scale would implement the recovery draft in a relatively complete
> manner,
> >>>>> but that doesn't mean everyone has to do it.
> >>>>>
> >>>>> But there's nothing interesting to measure with no application.
> >>>>>
> >>>>> On Mon, Jul 10, 2017 at 12:55 PM, Martin Duke <
> martin.h.duke@gmail.com>
> >>>>> wrote:
> >>>>>>
> >>>>>> I'm not sure how "performance analysis" is going to function in the
> >>>>>> absence of loss recovery or congestion control. An alternate
> approach to
> >>>>>> implementations is to tackle the big performance drivers first,
> presumably
> >>>>>> loss recovery, congestion control, and streaming to prevent HOL
> blocking.
> >>>>>> However, this would run directly opposite to Jana's suggestion to
> lock down
> >>>>>> the wire image to prevent ossification.
> >>>>>>
> >>>>>> On Mon, Jul 10, 2017 at 12: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
> >>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>
> >
>
>
>
> --
> Kazuho Oku
>