Re: Second Implementation Draft Guidelines
Martin Duke <martin.h.duke@gmail.com> Fri, 14 July 2017 00:42 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 CA3D7126B72 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:42:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.718
X-Spam-Level:
X-Spam-Status: No, score=-1.718 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_FONT_FACE_BAD=0.981, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, 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 jeu2V86BwGF6 for <quic@ietfa.amsl.com>; Thu, 13 Jul 2017 17:42:24 -0700 (PDT)
Received: from mail-wm0-x22b.google.com (mail-wm0-x22b.google.com [IPv6:2a00:1450:400c:c09::22b]) (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 27664127866 for <quic@ietf.org>; Thu, 13 Jul 2017 17:42:23 -0700 (PDT)
Received: by mail-wm0-x22b.google.com with SMTP id i127so7965602wma.0 for <quic@ietf.org>; Thu, 13 Jul 2017 17:42:23 -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=VY2EMJbHfFsfvUzs8XZ61ctgzpibBokZLUR+skhgxMI=; b=PPTrR/OXp/Mp3a5lVkqoFC31SMw8GOQ6W9xD13083x01oWu5dwFOqEU8DeuRB+JBH5 3kYUpOswQr/izKRnGo41uLNuibcLKxvJXQPZWJN4OaF+/n1tlX8UItajdZvU03VwvUk0 APcidVKZZpbsmUKgoXJKBDSFObXgXfezJ2jOLvB1I5ofGpnKyuoIeAynqsFBx3rzK7al kHKXen9stytQwEcJ/qUjDv9r1wvGlr2PRwwPv3xRYR6U4/OHKE5ZpsGOtl+Cw80XB0jF EB1ZnEj+V3ofWSqyfILW+1hgo/Kbili99R0IMDcZVsbeSUwvlsfUXAhRqUgKnNCRyK8P 3zQw==
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=VY2EMJbHfFsfvUzs8XZ61ctgzpibBokZLUR+skhgxMI=; b=BjzAC6XoaGCoIKQqEhOBpeoOWv4WDW0zReEPT4QgaECWG13GoqcupnoVvdpv4RKysD aQHOHZHUH8ZWAAylXlhUqsJTkpjvLmrn9okLuJW32x51jUh1hb2pbB+PBw8Epra0yFRA wAMb3ebuK4F1b9j0nzRjJ79NbknUlnB5KeA4Qhn9Uu/HikV7OVIT8+poq+x0SIailyE9 Zu3g9KgFzzc62cZ++krPlL0YBuRprgsKUv62GvXsxAPKHUs4drxx7a4PuJLwIg/cNoDG uaddM/z5lbBlwsxgmRscRt8Ik6wPXDIz+upT2siWXajOYQgAtrxIbQ1HIvacK8zH1PqB 4Wrw==
X-Gm-Message-State: AIVw113OAGJtLV+TD6GLN3LBji37SJlfgERgkNlbRCPb7A1xb9ScPJCX eprlLSg3dpeMDONG6ibfQglKGlhL/Q==
X-Received: by 10.28.173.65 with SMTP id w62mr784660wme.113.1499992941646; Thu, 13 Jul 2017 17:42:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.223.137.26 with HTTP; Thu, 13 Jul 2017 17:42:21 -0700 (PDT)
In-Reply-To: <CAKcm_gOSur0SJuAXvLgCZm-jQzJF54jH6i_P-QgRBzUnmELQXw@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>
From: Martin Duke <martin.h.duke@gmail.com>
Date: Thu, 13 Jul 2017 17:42:21 -0700
Message-ID: <CAM4esxSjmdFsqpeasRe3-V8RNXOzOQUxJSxcideiQn=kSa6=jw@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Ian Swett <ianswett@google.com>
Cc: Kazuho Oku <kazuhooku@gmail.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="001a1144270e73e3ae05543c52c5"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/_Y_pgmjt5q9tYQKsMimmdg3buiA>
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 00:42:27 -0000
Stateless reset (NOT stateless Reject) is in option 1 because it is a wire image issue. 0-RTT is in option 2 because I think it's an important to performance. 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 >>>>> >>>> >>>> >>> >> >
- Second Implementation Draft Guidelines Martin Duke
- Re: Second Implementation Draft Guidelines Jana Iyengar
- RE: Second Implementation Draft Guidelines Lucas Pardue
- Re: Second Implementation Draft Guidelines Jana Iyengar
- Re: Second Implementation Draft Guidelines Willy Tarreau
- Re: Second Implementation Draft Guidelines Kazuho Oku
- Re: Second Implementation Draft Guidelines Ryan Hamilton
- Re: Second Implementation Draft Guidelines Kazuho Oku
- Re: Second Implementation Draft Guidelines Ian Swett
- Re: Second Implementation Draft Guidelines Brian Trammell (IETF)
- Re: Second Implementation Draft Guidelines Martin Duke
- Re: Second Implementation Draft Guidelines Martin Duke
- Re: Second Implementation Draft Guidelines Ian Swett
- Re: Second Implementation Draft Guidelines Martin Duke
- Re: Second Implementation Draft Guidelines Ian Swett
- Re: Second Implementation Draft Guidelines Martin Duke
- Re: Second Implementation Draft Guidelines Ian Swett
- Re: Second Implementation Draft Guidelines Martin Duke
- Re: Second Implementation Draft Guidelines Ian Swett
- Re: Second Implementation Draft Guidelines Kazuho Oku
- Re: Second Implementation Draft Guidelines Martin Duke
- Re: Second Implementation Draft Guidelines Ian Swett
- Re: Second Implementation Draft Guidelines Eric Rescorla
- Re: Second Implementation Draft Guidelines Martin Duke