Feedback from first read of QUIC/HTTP draft 08

Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com> Fri, 08 December 2017 08:45 UTC

Return-Path: <mikkelfj@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 6CB141201F8 for <quic@ietfa.amsl.com>; Fri, 8 Dec 2017 00:45:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.698
X-Spam-Level:
X-Spam-Status: No, score=-2.698 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_LOW=-0.7, SPF_PASS=-0.001, UNPARSEABLE_RELAY=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 P4sahXBY6gpa for <quic@ietfa.amsl.com>; Fri, 8 Dec 2017 00:45:42 -0800 (PST)
Received: from mail-it0-x230.google.com (mail-it0-x230.google.com [IPv6:2607:f8b0:4001:c0b::230]) (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 9ABFC126DEE for <quic@ietf.org>; Fri, 8 Dec 2017 00:45:32 -0800 (PST)
Received: by mail-it0-x230.google.com with SMTP id b5so3384539itc.3 for <quic@ietf.org>; Fri, 08 Dec 2017 00:45:32 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:date:message-id:subject:to; bh=ZE+o8THP8r/S0+Lvxeub8ffz3wP3tsdrjx6gSt/VTUs=; b=dLVRDl02605xwpqdjiHpJRGujyTsZptWQeqsRPtmb4oucMsvlxUAjsaQl4GsgQE7kD e23ZFoGKdsENdbIRTtvCzpoJlqm7f1kvIWKGQKAO2Ij8JWNARXSB/Q7mh91FQjLPKPvr /I/7lPICTyaUyEVnn/I3GLgWKCjvRREbWof3lzkNZrgiJfQcjMTqqTzBgFsC9UmZ/XHp dCLrwPVoQn4wIgHADyO+SVqFbhmiUEDInKo62+e9aVYIYHauMUwdtgDMEvLNpyKeROkv d537YKM3mLDlhpdNQjU8KefczSrcB/5qHCQOF8PVq+FJeR7/c3OxUqdMslx8gkG8lmkd Zt1Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:date:message-id:subject:to; bh=ZE+o8THP8r/S0+Lvxeub8ffz3wP3tsdrjx6gSt/VTUs=; b=Erustl2TrTXFTA8g0rTmy5AmULUG5PEy1CYxHCl1+cURDWWRMca9r5LY4OQWNwt5rN B0am2QPU95BeNyKUiZQojIoRZ3a+UYi1Mvs+ESbLjbCQPZU1/smxYL+qfQBydSsqsIKu z6FrEL2/pStq3IBvcYaqZrDg976dNUgnkoR8pahncJE0GaXjMQFEzQsCx2Hr6K/GtfL4 TIuYEuBkAAEcbaYPhZiIfP9w+wwa9RNzFVtMrbmGvPBdkL/jnAIMxvRycnnYq9zYIHY1 svikAAr+idLMbF4JDGIQaAVtiZiepmwpUzybJLQp3HXw7smj//l1U5vLC9p70cj1vhCH qE1w==
X-Gm-Message-State: AJaThX6UoFNwUOSc5GjP9Cfyrm+nOoYnV4yr9Ud5vxv7BSFtqF3h70PB VGESDwQJaC4VZMfD9AgPLxir0k4U0TkHc9OVd+TcJA==
X-Google-Smtp-Source: AGs4zMYhguuaOpxgychaMNTf5nbM/tjLq0PnVUzXI91thNcMqXbCf4Pp9h/KwlEsQjEN3+cEK1wz4i4/ETWQ6nAn/Tw=
X-Received: by 10.107.47.234 with SMTP id v103mr38919608iov.96.1512722731662; Fri, 08 Dec 2017 00:45:31 -0800 (PST)
Received: from 1058052472880 named unknown by gmailapi.google.com with HTTPREST; Fri, 8 Dec 2017 00:45:30 -0800
From: Mikkel Fahnøe Jørgensen <mikkelfj@gmail.com>
X-Mailer: Airmail (420)
MIME-Version: 1.0
Date: Fri, 08 Dec 2017 00:45:30 -0800
Message-ID: <CAN1APdcNRyJJToL5Ym8T9v2svCfiJLekqmbbEzkVNdMbGZUfAQ@mail.gmail.com>
Subject: Feedback from first read of QUIC/HTTP draft 08
To: IETF QUIC WG <quic@ietf.org>
Content-Type: multipart/alternative; boundary="001a1135a438109da7055fd035a7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/EOx_afm-1RpUhqWHEQwKOz7zWMk>
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, 08 Dec 2017 08:45:44 -0000

This was originally #1001, but moved here on upon request.

Reading through the QUIC/HTTP-draft-08 a few things appeared unclear. This
is just a summary based on my first pass over the document, so take it for
what it is. I have only superficial knowledge of HTTP/2 in advance.

   1. A bit too much discussion of HTTP/2 instead of leaving that for
   section 8. It does not help understanding QUIC/HTTP from scratch. And
   perhaps a bit too much assumption about HTTP/2 knowledge while implementers
   might have skipped that step in their evolution.
   2. No explanation of how methods are communicated. Header fields
   reference HTTP 1.1 draft, but from skimming HTTP/2 doc, it is clear that
   these (as suspected) are transfered via special headers known as pseudo
   headers).
   3. Lots of frame type flags, none used, and only a few types. Why not
   either remove flags and have more types, or have a type bit encoding for
   flags presence (this may be due to early state of draft, just mentioning).
   4. Why are settings 16 bits instead of varints, and why is the space so
   large. A 256 or even 2K space would be easy to have in a table, 64K
   requires a map or switching logic. A settings space still requires that
   both ends understands a signficant portion of settings to make any real
   sense. Who decides to add more settings. Is this to have space for the next
   century, or just until the next QUIC version?
   5. There is an End Header Block something, but it is unclear what it is.
   Is it a flag to be defined, or some pseudo header?
   6. The GOWAY discussion could probably be shortened and made it bit
   clearer - it takes a few readings to understand the point of multiple GOWAY
   frames and why the ID can decrease (not sure I do fully understand).
   7. A basic example of a short HTTP 1.1 request and how it looks in the
   protocol would be helpful.
   8. The HPACK, to be replaced, doc is hard to parse, and it doesn't sound
   like it is as complicated as it reads. Hopefully a future QUIC equivalent
   would be a bit easier to digest.
   9. The entire push hierarchy sounds very complex - I wonder what the
   takeaway from HTTP/2 is - is it really worthwhile, or is no-one using it
   yet, but in 10 years it will be huge?