Re: Second Implementation Draft Guidelines

Ian Swett <ianswett@google.com> Mon, 10 July 2017 10:34 UTC

Return-Path: <ianswett@google.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 426ED12783A for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 03:34:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 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_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 XMaJ0dwoZPxH for <quic@ietfa.amsl.com>; Mon, 10 Jul 2017 03:34:15 -0700 (PDT)
Received: from mail-yb0-x22a.google.com (mail-yb0-x22a.google.com [IPv6:2607:f8b0:4002:c09::22a]) (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 22490131689 for <quic@ietf.org>; Mon, 10 Jul 2017 03:34:15 -0700 (PDT)
Received: by mail-yb0-x22a.google.com with SMTP id f194so26535520yba.3 for <quic@ietf.org>; Mon, 10 Jul 2017 03:34:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=11L6NZCD4QBVnEiq0YnNsDAUhsQFlp2pRod2nFmbXg4=; b=hTItzO/FKWiIujxmimBE5yGZY+ugWCspk0SGp6HJmCSF9zeyqlpACYVCRszX8ri1vc 3G7XKSIsV2WPu9ovXtVteQmKDDZxZtLzC24lVZcwm5dxYNHHvzhqnrBXHi9ydsbLRg4e 4lQ7oZ3QgrihJiPe0F1ySxTUULuAILC5OVnENpLteKSteIdU43oXdc1wUchPTIOf9W/Z 1agPDkWwRH/OLDAphVbO7KzYJ633woK8eD79+jLcuUgbRiGJtF+kUzuV9upbUWgCH1Wj Weg396PDGr1IR504joAnTiwqqJbG1QzZJW4oM3jLJ/i26xPai/VXGsbfs1C+iBQPCcZC H1+g==
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=11L6NZCD4QBVnEiq0YnNsDAUhsQFlp2pRod2nFmbXg4=; b=Uzmoyi86sSyx+WLKJIeXoy08WEH98I0Av/RQlLNPy3Y7IWScjIulopPjIxclI6kMF2 oeD1KDoAj5fwB6m1m3Sp9g48bg2XVmRPwlKum7zaEF5t14My5ih6M+4uVAW2AONCRcmQ jxfd1kmQMkfG5Ahc9hrqNhCYCU2MtLYhE7Xx5HmXajVleD/dm0e4BCCZSqHA33oGH/ys vRpya/VMUoJbUi7XwwPmJH7jE0X6Dq0tK8kOZtPsKCa+Uv6SdlYOU+I/sbxgdoyWSPgJ xE7per9TMtya3a6jGlgXxJEbU4+abDaZ4YIWMBCRWJA3notSzblLlCoMZGIgKC41tBd0 xVSw==
X-Gm-Message-State: AIVw110yWZ1DtLty/j7RGW5j4h5fgIOsYbJKSiCHlIabtbEFz6xGqz61 XYq5gCKE2ld6/1pwC8hzk3EWq/YY1SsV
X-Received: by 10.37.47.67 with SMTP id v64mr12854383ybv.127.1499682854020; Mon, 10 Jul 2017 03:34:14 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.37.208.3 with HTTP; Mon, 10 Jul 2017 03:33:53 -0700 (PDT)
In-Reply-To: <CANatvzwcvDqzfCJ2Sg0zPSNVmc7UAG__CxBRrOEHuXDqZyBnOw@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>
From: Ian Swett <ianswett@google.com>
Date: Mon, 10 Jul 2017 06:33:53 -0400
Message-ID: <CAKcm_gOgr8JMQdwN17BDUi86uoKUWyJk59ROMvQ_xbydfVitHA@mail.gmail.com>
Subject: Re: Second Implementation Draft Guidelines
To: Kazuho Oku <kazuhooku@gmail.com>
Cc: Ryan Hamilton <rch@google.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>
Content-Type: multipart/alternative; boundary="001a1140ad24caa0e50553f41f9c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/QGVR2FUcouH9zz0TPm-0SUXcX_w>
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 10:34:17 -0000

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.  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
>
>