Re: [quicwg/base-drafts] Pull some H2 content into the introduction (#2683)

Martin Thomson <notifications@github.com> Tue, 14 May 2019 01:43 UTC

Return-Path: <bounces+848413-a050-quic-issues=ietf.org@sgmail.github.com>
X-Original-To: quic-issues@ietfa.amsl.com
Delivered-To: quic-issues@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CA5C3120033 for <quic-issues@ietfa.amsl.com>; Mon, 13 May 2019 18:43:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.01
X-Spam-Level:
X-Spam-Status: No, score=-3.01 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, MAILING_LIST_MULTI=-1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=github.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 66up-2pt9aGI for <quic-issues@ietfa.amsl.com>; Mon, 13 May 2019 18:43:48 -0700 (PDT)
Received: from o7.sgmail.github.com (o7.sgmail.github.com [167.89.101.198]) (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 9C46B120026 for <quic-issues@ietf.org>; Mon, 13 May 2019 18:43:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=github.com; h=from:reply-to:to:cc:in-reply-to:references:subject:mime-version:content-type:content-transfer-encoding:list-id:list-archive:list-post:list-unsubscribe; s=s20150108; bh=2yKzyCchwVCEnEpaYeZGULR4n9w=; b=wiwt8D2XqY1zwPEJ ZhOTC4e2mwzmnv9FURkqWb1+cS3M2fH/waJ6juKhKZXTdMQpaUeQ9Q3fUJcYfRTw 92qYm8AhfwKUmjLaF6JDS8iMX1yQdQYWLfJWQFIj0uJuPAPc1zitimTELrP4VTgG b9K1TpXhskTpY6atdANtmtK+6WM=
Received: by filter0705p1las1.sendgrid.net with SMTP id filter0705p1las1-2340-5CDA1D51-22 2019-05-14 01:43:45.964562546 +0000 UTC m=+15749.018165813
Received: from github-lowworker-819f804.cp1-iad.github.net (unknown [140.82.115.5]) by ismtpd0001p1iad1.sendgrid.net (SG) with ESMTP id bBfPDKmHQ5iI39iluaqYTA for <quic-issues@ietf.org>; Tue, 14 May 2019 01:43:45.950 +0000 (UTC)
Received: from github.com (localhost [127.0.0.1]) by github-lowworker-819f804.cp1-iad.github.net (Postfix) with ESMTP id D93173601B3 for <quic-issues@ietf.org>; Mon, 13 May 2019 18:43:45 -0700 (PDT)
Date: Tue, 14 May 2019 01:43:46 +0000
From: Martin Thomson <notifications@github.com>
Reply-To: quicwg/base-drafts <reply+AFTOJKZ3GA6EUFG7BTN2G7F245H5DEVBNHHBUX2AKM@reply.github.com>
To: quicwg/base-drafts <base-drafts@noreply.github.com>
Cc: Subscribed <subscribed@noreply.github.com>
Message-ID: <quicwg/base-drafts/pull/2683/review/236990732@github.com>
In-Reply-To: <quicwg/base-drafts/pull/2683@github.com>
References: <quicwg/base-drafts/pull/2683@github.com>
Subject: Re: [quicwg/base-drafts] Pull some H2 content into the introduction (#2683)
Mime-Version: 1.0
Content-Type: multipart/alternative; boundary="--==_mimepart_5cda1d51d72f9_3c823fd73aecd960276392"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Precedence: list
X-GitHub-Sender: martinthomson
X-GitHub-Recipient: quic-issues
X-GitHub-Reason: subscribed
X-Auto-Response-Suppress: All
X-GitHub-Recipient-Address: quic-issues@ietf.org
X-SG-EID: l64QuQ2uJCcEyUykJbxN122A6QRmEpucztpreh3Pak1QjLUqd7TYlxQdOnWWYCOq/KFH0pJ8fcD2q5 C4R9Bgfx22BBeeq+uUzPOadDOjpUGQE61iOKoTkr69MpEhzw+dR+8FRvakZwg8Wfc++Yj8EkrcF2pA yVpIT9V2/2VtLx2hQiMiJvG5rHANSoJXB2yDPqcyJ2D5Hc4c9U91bANKYkY4qGfC0o4rc41FGsr0SH U=
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic-issues/kDIsiUiWybGvES7kJ3g9STlG8R8>
X-BeenThere: quic-issues@ietf.org
X-Mailman-Version: 2.1.29
List-Id: Notification list for GitHub issues related to the QUIC WG <quic-issues.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic-issues/>
List-Post: <mailto:quic-issues@ietf.org>
List-Help: <mailto:quic-issues-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic-issues>, <mailto:quic-issues-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 14 May 2019 01:43:51 -0000

martinthomson commented on this pull request.

Generally pretty good.

> @@ -88,28 +88,101 @@ code and issues list for this draft can be found at
 
 HTTP semantics are used for a broad range of services on the Internet. These
 semantics have commonly been used with two different TCP mappings, HTTP/1.1 and
-HTTP/2.  HTTP/2 introduced a framing and multiplexing layer to improve latency
-without modifying the transport layer.  However, TCP's lack of visibility into
-parallel requests in both mappings limited the possible performance gains.
+HTTP/2.  HTTP/3 supports the same semantics over a new transport protocol, QUIC.
+
+## Prior versions of HTTP
+
+HTTP/1.1 is a TCP mapping which uses whitespace-delimited text fields to convey
+HTTP messages.  While these exchanges are human-readable, the whitespace leads

It isn't just the whitespace, but the use of whitespace for delineation makes some aspects of parsing and processing difficult.  You should be careful not to talk about shortcomings that this version doesn't address.

> @@ -88,28 +88,101 @@ code and issues list for this draft can be found at
 
 HTTP semantics are used for a broad range of services on the Internet. These
 semantics have commonly been used with two different TCP mappings, HTTP/1.1 and
-HTTP/2.  HTTP/2 introduced a framing and multiplexing layer to improve latency
-without modifying the transport layer.  However, TCP's lack of visibility into
-parallel requests in both mappings limited the possible performance gains.
+HTTP/2.  HTTP/3 supports the same semantics over a new transport protocol, QUIC.
+
+## Prior versions of HTTP
+
+HTTP/1.1 is a TCP mapping which uses whitespace-delimited text fields to convey
+HTTP messages.  While these exchanges are human-readable, the whitespace leads
+to parsing difficulties and workarounds to be tolerant of variant behavior.
+Because each connection can transfer only a single HTTP request or response at a
+time in each direction, multiple parallel TCP connections are used, reducing the

"are used" or "are often used"

> @@ -88,28 +88,101 @@ code and issues list for this draft can be found at
 
 HTTP semantics are used for a broad range of services on the Internet. These
 semantics have commonly been used with two different TCP mappings, HTTP/1.1 and
-HTTP/2.  HTTP/2 introduced a framing and multiplexing layer to improve latency
-without modifying the transport layer.  However, TCP's lack of visibility into
-parallel requests in both mappings limited the possible performance gains.
+HTTP/2.  HTTP/3 supports the same semantics over a new transport protocol, QUIC.
+
+## Prior versions of HTTP
+
+HTTP/1.1 is a TCP mapping which uses whitespace-delimited text fields to convey
+HTTP messages.  While these exchanges are human-readable, the whitespace leads
+to parsing difficulties and workarounds to be tolerant of variant behavior.
+Because each connection can transfer only a single HTTP request or response at a
+time in each direction, multiple parallel TCP connections are used, reducing the
+ability of the congestion controller to accurately manage traffic between
+endpoints.

Only because people haven't worked out how to run the same congestion controller for multiple connections.  I mean, there is no reason you can't do that... in theory.

>  
-## Notational Conventions
+HTTP/3 provides a transport for HTTP semantics using the QUIC transport protocol
+and an internal framing layer similar to HTTP/2.
+
+An HTTP/3 endpoint can be discovered using HTTP Alternative Services; this
+process is described in greater detail in {{discovery}}.  Once a client knows
+that an HTTP/3 server exists at a certain endpoint, it opens a QUIC connection.
+QUIC provides protocol negotiation, stream-based multiplexing, and flow control.

I'd invert this paragraph.  The key points are in the second sentence.  The alternative services thing is really secondary here.

>  
+endpoint:
+: Either the client or server of the connection.

Love the circular definition here.

>  
 HTTP/3 is strongly informed by HTTP/2, and bears many similarities.  This
 section describes the approach taken to design HTTP/3, points out important
 differences from HTTP/2, and describes how to map HTTP/2 extensions into HTTP/3.
 
 HTTP/3 begins from the premise that similarity to HTTP/2 is preferable, but not
-a hard requirement.  HTTP/3 departs from HTTP/2 primarily where necessary to
-accommodate the differences in behavior between QUIC and TCP (lack of ordering,
-support for streams).  We intend to avoid gratuitous changes which make it
-difficult or impossible to build extensions with the same semantics applicable
-to both protocols at once.
+a hard requirement.  HTTP/3 departs from HTTP/2 where QUIC's behavior
+differences from TCP (lack of ordering, support for streams) are either

```suggestion
where QUIC differs from TCP, either to take advantage of QUIC features (like streams) or to accommodate important shortcomings (such as a lack of total ordering).
```

>  
 HTTP/3 is strongly informed by HTTP/2, and bears many similarities.  This
 section describes the approach taken to design HTTP/3, points out important
 differences from HTTP/2, and describes how to map HTTP/2 extensions into HTTP/3.
 
 HTTP/3 begins from the premise that similarity to HTTP/2 is preferable, but not
-a hard requirement.  HTTP/3 departs from HTTP/2 primarily where necessary to
-accommodate the differences in behavior between QUIC and TCP (lack of ordering,
-support for streams).  We intend to avoid gratuitous changes which make it
-difficult or impossible to build extensions with the same semantics applicable
-to both protocols at once.
+a hard requirement.  HTTP/3 departs from HTTP/2 where QUIC's behavior
+differences from TCP (lack of ordering, support for streams) are either
+beneficial or need to be accommodated.  HTTP/3 attempts to avoid gratuitous
+changes which make it difficult or impossible to build extensions with the same
+semantics applicable to both protocols at once.

I think that we can lose this sentence now.  It might be time to face up to reality:

> These differences make HTTP/3 similar to HTTP/2 in key aspects, such as the relationship of requests and responses to streams.  However, the details of the HTTP/3 design are substantially different than HTTP/2.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/quicwg/base-drafts/pull/2683#pullrequestreview-236990732