RE: Unreliable Stream Support for QUIC

Mike Bishop <Michael.Bishop@microsoft.com> Wed, 06 September 2017 18:30 UTC

Return-Path: <Michael.Bishop@microsoft.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 A0D8B132980 for <quic@ietfa.amsl.com>; Wed, 6 Sep 2017 11:30:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.801
X-Spam-Level:
X-Spam-Status: No, score=-4.801 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.8, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 qIoGy6C7Ecab for <quic@ietfa.amsl.com>; Wed, 6 Sep 2017 11:30:33 -0700 (PDT)
Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0115.outbound.protection.outlook.com [104.47.38.115]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 02E8F132941 for <quic@ietf.org>; Wed, 6 Sep 2017 11:30:32 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=CEdiK3eckQkMhTQJT3Nx/+F3FvB0F1DOxw2WcY/FNW0=; b=I9ipxoceZzOh5y1ReeC+OrmQTgrpoydjK0Rcn+t3oqAuPwip4qn4UIy8x2jWGCZpfKBg85PpmNss8DoEWtNsShgSKy43R2c7WW4mg4T/6H1oPIKWU0ITgmnMic4nnwwfslyNYVjNtnojVzKU1b/qZ73lj6RPe/GLTiSTkbEwdxM=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0510.namprd21.prod.outlook.com (10.172.95.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.35.1; Wed, 6 Sep 2017 18:30:30 +0000
Received: from MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) by MWHPR21MB0141.namprd21.prod.outlook.com ([10.173.52.11]) with mapi id 15.20.0056.003; Wed, 6 Sep 2017 18:30:30 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: "Philipp S. Tiesel" <phils@in-panik.de>, QUIC WG <quic@ietf.org>
Subject: RE: Unreliable Stream Support for QUIC
Thread-Topic: Unreliable Stream Support for QUIC
Thread-Index: AQHTJmRPIBwjFeAGckC2uCzLu/0xEKKoKAmw
Date: Wed, 06 Sep 2017 18:30:30 +0000
Message-ID: <MWHPR21MB0141281CF7544A8FBDC9940C87970@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <A9B224F6-E917-4A7F-ABF7-29FC2C60C5A6@in-panik.de>
In-Reply-To: <A9B224F6-E917-4A7F-ABF7-29FC2C60C5A6@in-panik.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [2001:4898:80e8:c::51f]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0510; 6:Z40ewC9ujIDXCgxZs1di5vH0sSJT8mMWs5fo7v8uff6L9GaUBJwbf+8IYxWWKeXD7F0BJNt7Y241tL4Y+KStI6kIFLwzjRDjamCq/a6qFB+IXKoKeOZN5eKVms1T4h/83ew1iFX16vYlIajvWD4WnevCWiSldR3oFA1GQhl+Q1KwO/8lH/ceiOtgB/Vhwajh6U6GqoYwWG3Uhv38pRPT77rUH/ZWzNZOvQ2KFxIRZ0EOmJKEO3YDYt5S1osh7nJdFXDDunS2exqwN5Oz7zQzzzei01WACT3X0tARMaD31RIJ25sDQAJ3gcBJSWJR3G0DjYagA/w2Epr995uXYZqPkg==; 5:Yry5Gi2B8/tL8U26ZNe0ae2OOcDYW8XKJd2DmL32y+/IueKrwrc9IyfkzkZ2i0wAPnjdYvsRb1PpQLqdjv6CxYWA8kf2E6nqQzgmqrpkFZV+z2+JN7fQLgHAjAuEUcwJyZrlqDwW50szdkuWGGIaUg==; 24:VquodDQiMrdEb7N8MSFRUhxVoZVl52u5lOCvBmNZf5N9fRiQd6EiiMM67yO4ajMOLX06NMXGANfZT1Q8Iu02P8pKrbaqpNf//hxUnQuStMQ=; 7:VboQr+qAW16cQgbzYkrMOK+7yzSIfg//F3tSrpmHdKQ4KRfM3EcA85Hmjgijb4p6ZRHRehyWnq+RZneHZCQZe+sIUjwwUrc3hDmpJKJCxWxMq1pmB3VQaMX3jP6NRvJCKkAUb2NaXr3W6/ZvYIEAxMYRw/BkUwgchrUE3eG1y0FF6AN70kQt3+rI4cc1/YhaIbsf2Yy4d5r+rh64K6Hey84bb74xixY4ucUCi7ZvcHo=
x-ms-exchange-antispam-srfa-diagnostics: SSOS;
x-ms-office365-filtering-correlation-id: b403ec70-9ab1-4e41-819c-08d4f5555a9a
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0510;
x-ms-traffictypediagnostic: MWHPR21MB0510:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Bishop@microsoft.com;
x-exchange-antispam-report-test: UriScan:(278428928389397)(189930954265078)(219752817060721);
x-microsoft-antispam-prvs: <MWHPR21MB05106881EB5D05E45CC114B387970@MWHPR21MB0510.namprd21.prod.outlook.com>
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(3002001)(6055026)(61426038)(61427038)(6041248)(20161123562025)(20161123564025)(20161123558100)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0510; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0510;
x-forefront-prvs: 0422860ED4
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39860400002)(47760400005)(189002)(13464003)(199003)(377454003)(5660300001)(6116002)(102836003)(33656002)(72206003)(2900100001)(6506006)(561944003)(77096006)(101416001)(25786009)(9686003)(229853002)(478600001)(97736004)(53546010)(76176999)(54356999)(50986999)(2906002)(55016002)(189998001)(3280700002)(3660700001)(99286003)(68736007)(8936002)(6306002)(53936002)(6436002)(105586002)(106356001)(5005710100001)(966005)(8676002)(8990500004)(305945005)(86362001)(575784001)(81156014)(6246003)(81166006)(74316002)(2950100002)(14454004)(7696004)(7736002)(10290500003)(10090500001)(86612001); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0510; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Sep 2017 18:30:30.6245 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0510
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/byLXJaNHd8pNW-cVm7gXOtDf40M>
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: Wed, 06 Sep 2017 18:30:35 -0000

Reading through the draft, a few thoughts with no particular organization.

Your proposal says that "Unreliable streams are subject to regular congestion control.  CLOSE_STREAM Frames are, like ACK and RST_STREAM frames not subject to congestion control."  I'm not sure where you're finding that ACK and RST_STREAM frames are ignored by congestion control, nor what it means for a frame not to be subject to congestion control (which deals with packets).

I think in 5.3 you might want to expand on what you mean by "UDP-like behavior."  Perhaps something like "Unreliable streams prefer data loss rather than delayed delivery due to retransmission.  Applications which need to avoid delays in the initial transmission would also need to ensure..."

I really dislike the "zombie stream" issue.  I'm not opposed to the CLOSE_STREAM design, though I'd note that you could as easily say that a STREAM frame bearing a FIN MUST be delivered reliably.  If an implementation wants to retransmit it without data, that would still be valid.  Either way, flow control requires that the final offset be delivered reliably regardless of whether the data is.

My other hesitation with a CLOSE_STREAM frame is that it increases the overhead of an application using the stream-as-message abstraction.  (And using RST_STREAM NO_ERROR to indicate normal closure even more so -- spending the bytes to transport an error code for every stream when most of them won't need it seems excessive.)

As with #720, this adds even more stream properties.  I am wondering whether there's value in simply having a collected declaration of what a stream's properties are, and how we might handle this with a minimum of bytes per the previous thought.

-----Original Message-----
From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Philipp S. Tiesel
Sent: Tuesday, September 5, 2017 9:30 AM
To: QUIC WG <quic@ietf.org>
Subject: Unreliable Stream Support for QUIC

Hi,

as promised, we just submitted a draft on unreliable streams for QUIC, including support for partial reliability: 
   https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-tiesel-quic-unreliable-streams%2F&data=02%7C01%7Cmichael.bishop%40microsoft.com%7Cc14329b9f7ac46f21d6508d4f47b6f88%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636402258384840440&sdata=8DIkFAbzCylWgO6%2FSB5EjBSSt50z5Pp51VJcOPWrits%3D&reserved=0

TL;DR: 

 - In principal, supporting unreliable streams in QUIC
   does not require changes to the datft-05 wire-protocol.

 - To get a nice interface between QUIC transport and the
   application, we need one bit in the stream frame header
   to indicate whether a stream is supposed to be reliable.


To give an application example, we did also draft how HTTP/2 over QUIC can be extended to support partial reliability based on the draft above:
   https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fdraft-tiesel-quic-unreliable-http%2F&data=02%7C01%7Cmichael.bishop%40microsoft.com%7Cc14329b9f7ac46f21d6508d4f47b6f88%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636402258384840440&sdata=hBcFX4o0aE5Z8i4MZszSkLXh23DT7GjMFwW4FgrpAec%3D&reserved=0

We have no finished implementation yet, but are working on one. 

AVE!
  Philipp S. Tiesel / phils…