Path forward with stream headers

Mike Bishop <mbishop@evequefou.be> Tue, 19 June 2018 21:22 UTC

Return-Path: <mbishop@evequefou.be>
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 21BB8130E51 for <quic@ietfa.amsl.com>; Tue, 19 Jun 2018 14:22:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=evequefou.onmicrosoft.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 TiDG34UB2PIV for <quic@ietfa.amsl.com>; Tue, 19 Jun 2018 14:22:41 -0700 (PDT)
Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700111.outbound.protection.outlook.com [40.107.70.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8A884130E2F for <quic@ietf.org>; Tue, 19 Jun 2018 14:22:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=evequefou.onmicrosoft.com; s=selector1-evequefou-be; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BOJzVfHwsZHFFW6WKoOWlM3iFlSzW+uhZy0JQ9Q0dNc=; b=KCMgbz5Xn809qdO4P5oi7qYhxVT7fh5YPB2VsbnyICjD1YiCu7SjSEKbtkWWOmOvsByuhvBI6hoiLZ+8XcWghwFN3dkboieCvsgneZqWp8rrFLEuBa7cUNIhz550y02ZFIugqvNQ46FejfMMuD4Sj3mPABs3TgP32P7M9L4g43M=
Received: from BYAPR08MB3944.namprd08.prod.outlook.com (52.135.194.30) by BYAPR08MB3942.namprd08.prod.outlook.com (52.135.194.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.863.16; Tue, 19 Jun 2018 21:22:38 +0000
Received: from BYAPR08MB3944.namprd08.prod.outlook.com ([fe80::6093:5ef9:46a3:ca1f]) by BYAPR08MB3944.namprd08.prod.outlook.com ([fe80::6093:5ef9:46a3:ca1f%4]) with mapi id 15.20.0863.016; Tue, 19 Jun 2018 21:22:38 +0000
From: Mike Bishop <mbishop@evequefou.be>
To: QUIC WG <quic@ietf.org>
Subject: Path forward with stream headers
Thread-Topic: Path forward with stream headers
Thread-Index: AdQIENSUAUHFuhsDSVSI2JhFySDeGw==
Date: Tue, 19 Jun 2018 21:22:37 +0000
Message-ID: <BYAPR08MB39446BABB72F7EAC6E87CF99DA700@BYAPR08MB3944.namprd08.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=mbishop@evequefou.be;
x-originating-ip: [38.134.241.6]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BYAPR08MB3942; 7:+u0es09Bxq158XdLECOrnFGkB9JfWaO6CKa1MC5JnIqDDmC6BgTt8lKwQ6idnxrG4u2RJ2ps929ZAsYdDIycRJhTzphCNExhenVWT8YakMRRD77zcQJJoSq+8j/4eHxQSC+XaVUSiLdFPSyoKYb9nwfj/M6auxKhTxjSrcmeNcNZvEmUo/4LMH/e3aljYUVxJFwNUvp7c6c+Qcd3kQGBBBXa9qYLdCbNLd2guffX0gLYkNLfSbTUrclnfcXJoC08
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: bfd59951-90f0-46e8-a98b-08d5d62ac86f
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(7021125)(4534165)(7022125)(4603075)(4627221)(201702281549075)(7048125)(7024125)(7027125)(7028125)(7023125)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:BYAPR08MB3942;
x-ms-traffictypediagnostic: BYAPR08MB3942:
x-microsoft-antispam-prvs: <BYAPR08MB3942BFDD89815D79E46ADC27DA700@BYAPR08MB3942.namprd08.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(28532068793085)(21748063052155);
x-ms-exchange-senderadcheck: 1
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040522)(2401047)(5005006)(8121501046)(93006095)(93001095)(3231254)(944501410)(52105095)(10201501046)(3002001)(149027)(150027)(6041310)(20161123564045)(20161123558120)(2016111802025)(20161123560045)(20161123562045)(6043046)(6072148)(201708071742011)(7699016); SRVR:BYAPR08MB3942; BCL:0; PCL:0; RULEID:; SRVR:BYAPR08MB3942;
x-forefront-prvs: 07083FF734
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(376002)(346002)(39380400002)(366004)(39830400003)(189003)(199004)(6916009)(26005)(14454004)(99286004)(186003)(5660300001)(97736004)(81156014)(59450400001)(6506007)(81166006)(74482002)(74316002)(66066001)(102836004)(3280700002)(478600001)(3660700001)(25786009)(7696005)(68736007)(86362001)(9686003)(561944003)(6436002)(55016002)(316002)(8936002)(7736002)(33656002)(5250100002)(486006)(8676002)(2900100001)(105586002)(6116002)(6306002)(2906002)(106356001)(3846002)(476003)(790700001)(53936002)(54896002); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR08MB3942; H:BYAPR08MB3944.namprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:0;
received-spf: None (protection.outlook.com: evequefou.be does not designate permitted sender hosts)
x-microsoft-antispam-message-info: x3Md++dwErv/Ol3RQC2qr6ZUpOXGBviVvib4WI4UimEtu9Idh1L8B5oqpPAJPpn8/9Oef71V0ZU5RqItmMwZKeJwDJQz1vtAWFX3C6nqoK3uqXBaadBwA+NXIkYjfbyMRcgsvYdZoDsShE466UQB2pDOm6E9UZD1hOX24OMzyVpU5oWzHpoTBXzBLPS4ou1PLDYQ4sBpo4bRGW/mIsq4+1tlrHYWHJlqM+Fggp7F49piS985lrf3k64TzQXvNV0yMHZhqTV0ttYArNka7eId1JDRCXz3figwN1bddcl+BB/374B33XDmnApXIVybf4S7+Tsj9kfGXc2qAr0JrNDLcA==
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BYAPR08MB39446BABB72F7EAC6E87CF99DA700BYAPR08MB3944namp_"
MIME-Version: 1.0
X-OriginatorOrg: evequefou.be
X-MS-Exchange-CrossTenant-Network-Message-Id: bfd59951-90f0-46e8-a98b-08d5d62ac86f
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2018 21:22:38.0083 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 41eaf50b-882d-47eb-8c4c-0b5b76a9da8f
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR08MB3942
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/W7nVDK6_hCzzZYETdSeG-o8WOek>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.26
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: Tue, 19 Jun 2018 21:22:44 -0000

During the Kista interim, we discussed the Unidirectional Stream Headers proposal (PR #1359).  In the current spec, the first three unidirectional streams have a designated purpose identified by the stream ID; all remaining server-initiated unidirectional streams are used for push, and no other client-initiated unidirectional streams are used.

The proposal is, at the most basic level, to use the first byte of a unidirectional stream to indicate its purpose.

Pros:

  *   Reduces need for application layer to reach into transport and get a particular stream ID; this simplifies initialization and insulates the application from how the transport chooses to manage stream allocation.
  *   Enables extensibility - without this, it is problematic to add a unidirectional stream for any purpose in the future without a protocol rev.  As with QPACK, there are cases where a long-lived stream might be preferable to a series of control-stream frames that need to be correlated together.

Cons:

  *   Streams aren't required to be presented "in order;" in the event of reordering, this makes the remainder of the stream unusable until the first byte has arrived.
  *   Assuming that different stream types get dispatched to different handlers, the stream might exist but not be assignable to a handler until the first byte arrives (different view of previous issue).  This creates a stream object that no one "owns."

Some implementations that have looked at this think the first con is irrelevant (since HTTP/QUIC doesn't make affordances for out-of-order consumption anyway) and the second can be addressed by the use of a "dispatch" handler whose job is to read the first byte and invoke the correct next handler.  This handler would own the stream until the first byte was available.

Following the discussion in Kista, the hum was largely split between "Do this" and "Need more time/info," with only a few "Don't do this" hums.  However, there hasn't been any substantive discussion of the proposal since then.

What does the WG need to move folks from the middle bucket into one of the other two?