RE: Unidirectional streams PR

Mike Bishop <Michael.Bishop@microsoft.com> Thu, 29 June 2017 16:57 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 5E23B129B4B for <quic@ietfa.amsl.com>; Thu, 29 Jun 2017 09:57:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.01
X-Spam-Level:
X-Spam-Status: No, score=-2.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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=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 sm9wTbeiVbzD for <quic@ietfa.amsl.com>; Thu, 29 Jun 2017 09:57:29 -0700 (PDT)
Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0106.outbound.protection.outlook.com [104.47.40.106]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5323F129B41 for <quic@ietf.org>; Thu, 29 Jun 2017 09:57:29 -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=/3X5AyWTP1NBCFdyZO0akPGzuxbE9ma9uaeKhMjIL8g=; b=XRmTUsYb05u8vFtB+bKZ27Wpz4BP2ReLoUQfXAVHt9QujS2Tz5OrnJsbZdGDUZErT0IIHSp3CoCtMhiYqT0oZfC9cerdAnHmCzKP9T6+d1lN3whWCa6FSZgQrlfBNh8W+9FrSN504T4GqznAk3mKOb0dBdOWq/NvHM4XHkxnPbU=
Received: from MWHPR21MB0141.namprd21.prod.outlook.com (10.173.52.11) by MWHPR21MB0125.namprd21.prod.outlook.com (10.173.52.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1240.5; Thu, 29 Jun 2017 16:57:28 +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.01.1240.007; Thu, 29 Jun 2017 16:57:28 +0000
From: Mike Bishop <Michael.Bishop@microsoft.com>
To: huitema <huitema@huitema.net>, "quic@ietf.org" <quic@ietf.org>
Subject: RE: Unidirectional streams PR
Thread-Topic: Unidirectional streams PR
Thread-Index: AQHS7K+GEgoMqpt2Pk2cfh8bhUTRCKI0Yv2AgATdKACAAP5zgIAAEIwAgAAHqgCAAA02gIAAfOeQgAASMwCAAAzfAIAAEzGAgAD+vQCAAAS6QA==
Date: Thu, 29 Jun 2017 16:57:27 +0000
Message-ID: <MWHPR21MB0141DAB51088DE57504B12F087D20@MWHPR21MB0141.namprd21.prod.outlook.com>
References: <CAN1APdc_ckZu39ZZTETv04iZieogoE_NQCBR-n0jHrC-9dM7Aw@mail.gmail.com> <5d69489d-8f46-ebbe-4e5c-fa6c02ffd8dd@huitema.net> <CAF4GZgBm7525i2GxiN-Pv66g0WqbDH==fRXN27=7ursNA70w1Q@mail.gmail.com> <20170628124221.GA15608@ubuntu-dmitri> <CAN1APdc3YO4-FEc6C--PzFGxzQiAUeBZ96HkjtjS1RR0qigrzw@mail.gmail.com> <CAE=ybzNtSZx9-bj9-n-ieLMB=YvJCjCExugvA3_JPVrdEEqK9A@mail.gmail.com> <DB5PR07MB123748F2AB7374DAC0CC9E1484DD0@DB5PR07MB1237.eurprd07.prod.outlook.com> <MWHPR21MB0141BD23011EB26F882C864787DD0@MWHPR21MB0141.namprd21.prod.outlook.com> <CABkgnnXEq9-jxedU_Rmi4XQ+t0SNUOAMbyWXcnhyLKz+OzP2CQ@mail.gmail.com> <2240c2a68910453e97fc50d42e8a1d4f@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gMb9PkBKhTRF3ue2KGgwHgKN8rsanD8rqqr_wUFJ3GNZQ@mail.gmail.com> <83e22460-8864-e6f7-546a-d0e77e4f8ae8@huitema.net>
In-Reply-To: <83e22460-8864-e6f7-546a-d0e77e4f8ae8@huitema.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: huitema.net; dkim=none (message not signed) header.d=none;huitema.net; dmarc=none action=none header.from=microsoft.com;
x-originating-ip: [2001:4898:80e8::de]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; MWHPR21MB0125; 7:OuZpO14bi6UCSCOHi1idpVN6M3iRsDhBJbofrqcSFUtV4O+8CcUBq2rEbtXwPA3m9nrn0lHbqptilhijpdFpbT2fWCo//qy6QAWfzJ1XigJAR1DOMl/Pk/n0E0UjNE1sAvJcdiuyWQPOjyXEWJ9S88XNDBft9kjcRAjCtZWHR+jShfWLVDP8mt+7XnzR2LLCxXaGY0sKxMA+qK9MPvdyA2tr80NtDPazQDf2UYBZOwxrebc2oZGZVVfyqBPuvkI+qxDeOPpfR7NAa5NBPe/DTe6VtYPLM4vkOYsiirNBnuSk7omNCW2iNv/usWVM2lRYYP0p7CyegVxrXvOp6mh1QtOw+ieEw+cVB5nzKt2iyGOngMLg3T+bWnB683sFEh6Lgx2PaB0vtIKuFDy9vCscmbK6pqY08wSox7JpaAUGq2zLa3qno1ZGx6iX2A6/XTtxWMRVAiIyf+xcFe8HyYNCu2Qb6CWJw4DvmMLe3GSueGnpcVwOePXo1eXzemR1jLXKdJpR/w3S1rAeKG2c5hD2UVUPXgByGYyMCrFfysU76VKMYH60sNxVCHQeb76LP1q1yMZz6kT62JShZbN1q+TcZxFnydJYjUMT46NpQ+c5ec24AX49n7tkkAP5SR0rcvBk6CedvUuTYhuW9mI+ZXi9K4m0kV1cIyzF6Dkop1RumKPxxVvS+oywF++IqKU83hVyLgBD7fUuKAclKKCkF22Uaydrjxb5Oq/5M5+mypf6Jc1nv40/cEzv8iJvy6w76yiTl0FDLkOZ85YxlL3l8yGp52t9k8uU83CDuwR+HHQLADwMKN4rlxuY45D0cjSp9Pbv
x-ld-processed: 72f988bf-86f1-41af-91ab-2d7cd011db47,ExtAddr
x-ms-office365-filtering-correlation-id: 102c5164-4f26-4fe1-ce12-08d4bf0fec94
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(48565401081)(300000503095)(300135400095)(2017052603026)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR21MB0125;
x-ms-traffictypediagnostic: MWHPR21MB0125:
x-microsoft-antispam-prvs: <MWHPR21MB01253BDB6436EA488146160D87D20@MWHPR21MB0125.namprd21.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(151999592597050)(158342451672863)(26388249023172)(236129657087228)(189930954265078)(48057245064654)(148574349560750)(219752817060721)(21748063052155)(247924648384137);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(8121501046)(2017060910016)(5005006)(10201501046)(100000703101)(100105400095)(3002001)(93006095)(93001095)(6055026)(61426038)(61427038)(6041248)(20161123555025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123562025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR21MB0125; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR21MB0125;
x-forefront-prvs: 0353563E2B
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(39860400002)(39840400002)(39450400003)(39850400002)(39400400002)(39410400002)(377454003)(55674003)(24454002)(6506006)(7736002)(5005710100001)(10090500001)(33656002)(3480700004)(77096006)(25786009)(6436002)(478600001)(7116003)(5660300001)(8936002)(54356999)(50986999)(76176999)(86612001)(86362001)(81166006)(2950100002)(10290500003)(2501003)(229853002)(7696004)(74316002)(3280700002)(189998001)(14454004)(790700001)(6116002)(53546010)(93886004)(2900100001)(6306002)(6246003)(8676002)(236005)(9686003)(72206003)(38730400002)(3660700001)(54896002)(606006)(55016002)(53936002)(99286003)(102836003); DIR:OUT; SFP:1102; SCL:1; SRVR:MWHPR21MB0125; H:MWHPR21MB0141.namprd21.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_MWHPR21MB0141DAB51088DE57504B12F087D20MWHPR21MB0141namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jun 2017 16:57:27.8953 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR21MB0125
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/b1FVlM0ipnFHVGZttBgP-TdsFtA>
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: Thu, 29 Jun 2017 16:57:32 -0000

Moot point – there is no concurrent stream limit in the protocol.  There is only a maximum stream ID, and how your implementation decides what maximum stream ID to issue to the peer allows you to choose any resolution to these questions you like.

Now, in the unidirectional or mixed designs, you do have the corner case where a client can send a request, but not give the server enough Stream IDs to respond.  (Don’t do that.)  More realistically, the server can have a limited number of Stream IDs and spend them on pushes instead of actual responses.

From: QUIC [mailto:quic-bounces@ietf.org] On Behalf Of Christian Huitema
Sent: Thursday, June 29, 2017 9:35 AM
To: quic@ietf.org
Subject: Re: Unidirectional streams PR


On 6/28/2017 6:23 PM, Ian Swett wrote:
I updated my PR(#656<https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fquicwg%2Fbase-drafts%2Fpull%2F656&data=02%7C01%7Cmichael.bishop%40microsoft.com%7C50b7c91a6bf441d6674d08d4bf0cd498%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636343509210959657&sdata=zdHHgc1IfzdwEWFQCPIk%2B7iufCR1jzJ9eHtqXx9Bak0%3D&reserved=0>) today, sorry for the delay.  I attempted to address the issues identified with text.  Some may prefer more tweaks to the state diagram, which are also possible, so I'm open to suggestions.

In the meantime, I've been considering other alternatives, including variations on Mike's direction and a variation of the "Do Nothing" option which involved the application signaling to the transport that streams of a certain sort(ie: server to client for server push) were unidirectional, as GQUIC does today.  Overall, I think the approach I've outlined does a good job of iterating on existing deployment experience and adding explicit signaling for unidirectional streams instead of implicit signaling at the application layer.  There are pros and cons to both explicit and implicit signaling, but I think explicit signaling is more complete and less prone to application error.


I understand how to handle concurrent stream limits with plain bidirectional streams or with plain unidirectional streams, but things are not so clear when we start mixing models by adding a unidirectional option to bidirectional or vice versa. In the clean models, we can count the number of streams initiated by one entity and not yet closed. But in the mixed models, what do we count, exactly?

For example, let's suppose that in an unidirectional stream model, the client creates a stream that also "implies" a stream creation in the other direction. Does this implied stream count against the server limit or the client limit?

Or vice versa. Suppose that in a bidirectional stream model the client creates a stream that is declared as actually unidirectional. And suppose that this stream is immediately closed -- a stream frame with both the FIN bit and the PR 656 UNI bit set. This stream counts against the client's number of concurrent streams, but it is immediately closed by both parties. Does it count as zero?
--

Christian Huitema