RE: Implicitly opened streams and exposing stream IDs

Nick Banks <nibanks@microsoft.com> Tue, 03 April 2018 14:02 UTC

Return-Path: <nibanks@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 56A4112DA4A for <quic@ietfa.amsl.com>; Tue, 3 Apr 2018 07:02:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 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, SPF_PASS=-0.001, 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 3c4TeerKhvws for <quic@ietfa.amsl.com>; Tue, 3 Apr 2018 07:02:30 -0700 (PDT)
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0719.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe45::719]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 99B8F1201F8 for <quic@ietf.org>; Tue, 3 Apr 2018 07:02:30 -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=5pzy4hPmTU3kqv9/4Wd9RtvAi+va4QWDInCbcLTrSUE=; b=FdIyxQtJ/HRQbWJw7SZqXXrc/P7QY2QRaAy3jXEmA/i8aVBWmEBF3eUTs2zfFNgP3sONubAIE0woh0xzm7YsD8ihEUC8ucSxjAGksCosDV1imGX0WnmupCANfkhJ61PQcV9bSQrq+xwtX0ndBiqbU9bZgFfdUYq/IdgBxGF7B/M=
Received: from DM5PR2101MB0901.namprd21.prod.outlook.com (52.132.132.158) by DM5PR2101MB0918.namprd21.prod.outlook.com (52.132.132.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.675.1; Tue, 3 Apr 2018 14:02:28 +0000
Received: from DM5PR2101MB0901.namprd21.prod.outlook.com ([fe80::49f0:9e08:d65d:b0dc]) by DM5PR2101MB0901.namprd21.prod.outlook.com ([fe80::49f0:9e08:d65d:b0dc%4]) with mapi id 15.20.0675.003; Tue, 3 Apr 2018 14:02:28 +0000
From: Nick Banks <nibanks@microsoft.com>
To: Dmitri Tikhonov <dtikhonov@litespeedtech.com>
CC: Martin Thomson <martin.thomson@gmail.com>, Marten Seemann <martenseemann@gmail.com>, Lucas Pardue <Lucas.Pardue@bbc.co.uk>, QUIC WG <quic@ietf.org>
Subject: RE: Implicitly opened streams and exposing stream IDs
Thread-Topic: Implicitly opened streams and exposing stream IDs
Thread-Index: AQHTynfdCfLv9t0HXUmEre41VboPZqPtYPOAgAE/04CAAAT5gIAATfAAgAAY1BCAAAXBgIAAAVeA
Date: Tue, 03 Apr 2018 14:02:28 +0000
Message-ID: <DM5PR2101MB09018827D00A182D596DB552B3A50@DM5PR2101MB0901.namprd21.prod.outlook.com>
References: <CAOYVs2qp3L-dTdFfBNDQT0Q=nCu+6Ew3gmF=0GMS2vVw1JfWCg@mail.gmail.com> <7CF7F94CB496BF4FAB1676F375F9666A3BB0D858@bgb01xud1012> <CAOYVs2qb+FmrC1GssCNrWvce0d=c_o4kii361vahoraNEZO=Zg@mail.gmail.com> <CABkgnnWBZ0nRxoJB9XdqQ8JF6etAnCEpjT6c=2ZD76XcghismQ@mail.gmail.com> <20180403120717.GA1695@ubuntu-dmitri> <DM5PR2101MB0901FFF8879857FA36D842D4B3A50@DM5PR2101MB0901.namprd21.prod.outlook.com> <20180403135644.GC1695@ubuntu-dmitri>
In-Reply-To: <20180403135644.GC1695@ubuntu-dmitri>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Owner=nibanks@microsoft.com; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2018-04-03T14:02:27.1274377Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Application=Microsoft Azure Information Protection; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Extended_MSFT_Method=Automatic; Sensitivity=General
x-originating-ip: [2001:4898:80e8:c::83]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; DM5PR2101MB0918; 7:CSfzysndz7nmmBa8oU2FH3m3aIU0jmXKIoRZTcSQ07GLFQxwWJ70VwQEpwLrS9zUCRsODzjp1KgF0y7gs4Kjf4re90NwKpvOSG+weZWYr9OEXUFNWDPc8u//0SYHjAP2Kwg/ARob5eQxWFRz8+PVY0sdmSj3FVQ/aGsgeU2kAyKkFL6dh4E/aEFH+ZmFociwrVAmxhkurNl3LSZF293+fSORGk/+0M5TtzSSdiaBYz9Id2UR3SpqxjAt472oBSn3; 20:hFkMgwLaJCsTclaGJTJEKdIbvvGrUT+ELISLhvQVCxQrsMjyDE2TvLpIQKeiU3bQwerikQb7dvf0i6FvJ5S7w7drsGPZmnWrrmBvpoYlVigXLVJSrWS1kSR4bsPVuh37K0X5UnPpG0Hh84Rw/3WwlnwjKIee/DN2j0vTsz8uf8c=
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-correlation-id: f4d03e53-a41a-4466-0442-08d5996b895c
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(3008032)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7193020); SRVR:DM5PR2101MB0918;
x-ms-traffictypediagnostic: DM5PR2101MB0918:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=nibanks@microsoft.com;
x-microsoft-antispam-prvs: <DM5PR2101MB09186A9935E8744551D24B65B3A50@DM5PR2101MB0918.namprd21.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(28532068793085)(89211679590171)(85827821059158)(127952516941037);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(61425038)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231221)(944501327)(52105095)(3002001)(10201501046)(6055026)(61426038)(61427038)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123560045)(20161123558120)(20161123564045)(6072148)(201708071742011); SRVR:DM5PR2101MB0918; BCL:0; PCL:0; RULEID:; SRVR:DM5PR2101MB0918;
x-forefront-prvs: 0631F0BC3D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(396003)(366004)(376002)(346002)(39380400002)(39860400002)(189003)(199004)(13464003)(10090500001)(2900100001)(3660700001)(81156014)(25786009)(6506007)(7736002)(486005)(8936002)(53546011)(186003)(10290500003)(3280700002)(6916009)(486005)(476003)(6246003)(106356001)(93886005)(53936002)(46003)(86362001)(81166006)(86612001)(2906002)(8990500004)(14454004)(105586002)(54906003)(478600001)(6116002)(7696005)(76176011)(11346002)(102836004)(33656002)(316002)(9686003)(39060400002)(99286004)(4326008)(55016002)(305945005)(229853002)(6436002)(446003)(5660300001)(68736007)(5250100002)(97736004)(22452003)(74316002)(8676002); DIR:OUT; SFP:1102; SCL:1; SRVR:DM5PR2101MB0918; H:DM5PR2101MB0901.namprd21.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
x-microsoft-antispam-message-info: HHMMP+AQK9XamyqdsmPTlHWBT1w6ILDg58TwBKq0sR0eLnNLQuG04OjKukgEQLn6mEcN1wtupU8LjV4mCWUGZzn/Ay/5h0mUq5h/pp7EZ1qfEFedxq6OAswZRydyWrIOEdSYyCuBBFjJeW5Qhhejay0vZxzHJ0wbbeZ954tAhiHM5yMui5E2VCYM28yj87lm7T2hj102HrafwwavM7rpNp+raNdZrl9OOpTKXaIna9I2XNCmVbyLz836U/ymcgfIpTlVvDdhw4Vagl0XZ3/svg4F0d6b1DtjC+2lpJGw5H54xFfV/rpTUt4k9eT/3JsRzER9QNU7dGfCvCB0YN50e5bXx5DGRv5EPXtSBt07zdrVjZmMgdpD96vx0RLX/NbjKHPQ3fw+I0XmSKqy0lc9V7SB9uecl9lYLcOTl2tVX3M=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f4d03e53-a41a-4466-0442-08d5996b895c
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Apr 2018 14:02:28.6801 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR2101MB0918
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/64Pm6lcZhZcyIV0y6xyqIz05YKk>
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: Tue, 03 Apr 2018 14:02:33 -0000

For implicit opening, you only need to track the following, and you know the state of all stream IDs:

 - Set of all currently opened stream objects
 - Largest stream ID ever opened

For explicit opening, since the streams below the largest stream ID ever opened, may never have been opened, you need to additionally track the stream IDs that have been closed (or inversely the set of stream IDs that have ever been opened).

- Nick

-----Original Message-----
From: Dmitri Tikhonov <dtikhonov@litespeedtech.com> 
Sent: Tuesday, April 3, 2018 6:57 AM
To: Nick Banks <nibanks@microsoft.com>
Cc: Martin Thomson <martin.thomson@gmail.com>; Marten Seemann <martenseemann@gmail.com>; Lucas Pardue <Lucas.Pardue@bbc.co.uk>; QUIC WG <quic@ietf.org>
Subject: Re: Implicitly opened streams and exposing stream IDs

On Tue, Apr 03, 2018 at 01:47:36PM +0000, Nick Banks wrote:
> +1 for keeping the implicit opening of streams.
> 
> It does greatly simplify the tracking of idle/opened/closed streams.

I don't see how this is a simplification.  You will need a "set" data structure of some sort in both cases:

    A. Implicit opening.  Opened streams can be tracked with a single
       number -- *but* closed streams need to be tracked one by one
       (using a set or a hash).

    B. Explicit opening.  Opened streams are tracked using a hash.

One can argue that (B) is actually simpler.

  - Dmitri.