RE: Partially Reliable Message Stream

Mike Bishop <mbishop@evequefou.be> Wed, 30 May 2018 22:46 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 71F4D12EAAF for <quic@ietfa.amsl.com>; Wed, 30 May 2018 15:46:58 -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 Upl_jyQG5kqD for <quic@ietfa.amsl.com>; Wed, 30 May 2018 15:46:55 -0700 (PDT)
Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0134.outbound.protection.outlook.com [104.47.38.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F25EE12E054 for <quic@ietf.org>; Wed, 30 May 2018 15:46:54 -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=PLzqCjCbyuc4ZNTf7YwRD/EhRiGe08bwDH1dC/m55mE=; b=H5jAwqIUsF5cUr4pWWvlZMI5URsao3/N0S1Iusf1OQnsIt2j9QyQqlyS/1D8/A9P0bx5sbPauHNUTd1Oorjtk0RC98Vcn6ELX+VPRYidVnIMqGKXlvgC61jTkbYUHWUUEEmdxuhWLkDTyrE/Z0LZOyR1LDhq2i3q4cFtvABrYBE=
Received: from SN1PR08MB1854.namprd08.prod.outlook.com (10.169.39.8) by SN1PR08MB1758.namprd08.prod.outlook.com (10.162.134.12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.797.11; Wed, 30 May 2018 22:46:52 +0000
Received: from SN1PR08MB1854.namprd08.prod.outlook.com ([fe80::c1ff:4f0e:a59b:b9a9]) by SN1PR08MB1854.namprd08.prod.outlook.com ([fe80::c1ff:4f0e:a59b:b9a9%13]) with mapi id 15.20.0797.018; Wed, 30 May 2018 22:46:51 +0000
From: Mike Bishop <mbishop@evequefou.be>
To: "Lubashev, Igor" <ilubashe=40akamai.com@dmarc.ietf.org>, QUIC WG <quic@ietf.org>
Subject: RE: Partially Reliable Message Stream
Thread-Topic: Partially Reliable Message Stream
Thread-Index: AdP4Mo3KTicRHsMuS7e4Jrowbk1vdQAMuR2g
Date: Wed, 30 May 2018 22:46:51 +0000
Message-ID: <SN1PR08MB18541BF8B27EA5484FA6A437DA6C0@SN1PR08MB1854.namprd08.prod.outlook.com>
References: <d263c36bc5264842a65f04fc3b017538@ustx2ex-dag1mb6.msg.corp.akamai.com>
In-Reply-To: <d263c36bc5264842a65f04fc3b017538@ustx2ex-dag1mb6.msg.corp.akamai.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [2601:600:8080:5a28:c0d8:4f09:d150:c307]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; SN1PR08MB1758; 7:f33J6i2wpH5o8IKB1Kd5ltX4L4xFU9zqI3YoXxOGWA1DDn3M9c6kF4I5VlD4/jJLp3lQy0WNqp3/yBiwbiuImQLjbIt2cssTXiUWfBHO4nW6XpxoURx9Zt8kG9ocytfccQSFfNRWXXaENHZOA5Yel4nTb74wEML8PMlFGZfO3jpPcoL1Ubu/ytpte1s85paYq9n1PvdsuBEHAfSiF6Lp30N8JNf/IG9mJOdsTo8A6AMLjq6VAZe1NcPPAuEI8ciV
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(7021125)(5600026)(4534165)(7022125)(4603075)(4627221)(201702281549075)(7048125)(7024125)(7027125)(7028125)(7023125)(2017052603328)(7153060)(7193020); SRVR:SN1PR08MB1758;
x-ms-traffictypediagnostic: SN1PR08MB1758:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=mbishop@evequefou.be;
x-microsoft-antispam-prvs: <SN1PR08MB1758B600AFE9B138182A9F73DA6C0@SN1PR08MB1758.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)(8121501046)(5005006)(10201501046)(3002001)(3231254)(944501410)(52105095)(93006095)(93001095)(149027)(150027)(6041310)(20161123558120)(2016111802025)(20161123564045)(20161123560045)(20161123562045)(6072148)(6043046)(201708071742011)(7699016); SRVR:SN1PR08MB1758; BCL:0; PCL:0; RULEID:; SRVR:SN1PR08MB1758;
x-forefront-prvs: 0688BF9B46
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(376002)(39830400003)(39380400002)(346002)(396003)(189003)(199004)(446003)(11346002)(2420400007)(106356001)(74316002)(8676002)(476003)(2900100001)(33656002)(105586002)(5250100002)(486006)(606006)(99286004)(186003)(7736002)(14454004)(5660300001)(110136005)(68736007)(15650500001)(97736004)(86362001)(316002)(478600001)(54896002)(74482002)(6306002)(7696005)(76176011)(53936002)(6116002)(25786009)(55016002)(790700001)(9686003)(229853002)(236005)(102836004)(6506007)(6246003)(59450400001)(53546011)(6436002)(7110500001)(2906002)(3280700002)(81166006)(81156014)(3660700001)(46003)(10710500007)(8936002)(3480700004); DIR:OUT; SFP:1102; SCL:1; SRVR:SN1PR08MB1758; H:SN1PR08MB1854.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: izLXm+NsZZ5iY0VGZxHnsq/Q+RPQpUhlx/RzTYYUo4988RBqwDVu0szMZgx46p3UFGRuwFfkGglSNIXwtEnly8NLi13JT8bAHn0/GgP4PG7SbOld06hNoopB0iDDsDreOnoCsWRBMM1KDahSX6z6Ju+Gq+SqNr2rpxoZXcxGjXvecLi9Qvbh7mSRCBs3mzl7
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_SN1PR08MB18541BF8B27EA5484FA6A437DA6C0SN1PR08MB1854namp_"
MIME-Version: 1.0
X-MS-Office365-Filtering-Correlation-Id: 6472fedf-db17-4cce-8b80-08d5c67f3c6e
X-OriginatorOrg: evequefou.be
X-MS-Exchange-CrossTenant-Network-Message-Id: 6472fedf-db17-4cce-8b80-08d5c67f3c6e
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 May 2018 22:46:51.8254 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 41eaf50b-882d-47eb-8c4c-0b5b76a9da8f
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR08MB1758
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/B4JXdSB9mKsRxujYVn3nY1GsdJA>
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, 30 May 2018 22:46:59 -0000

I find the one octet gap a bit confusing, but as I think about it, I see why you need it.  If all the stream data arrived successfully (but hadn't been acknowledged yet due to loss of the ACK, delay, etc.) and the EXPIRED_STREAM_DATA gets lost, the receiver can only retroactively realize there was a jump.  Having an octet that is never transmitted ensures the receiver actually sees a gap, which means that an in-order API will not proceed until it has received either the missing octet or an EXPIRED_STREAM_DATA informing it the octet will never arrive.

This simplification (versus -02) comes at a price:  If an API were exposing stream data out-of-order, then in your example, the receiver knows that a message always begins on a ten-byte boundary.  A receiver can no longer find ten-byte boundaries, because the offset on the read side doesn't match the offset on the send side.  I agree with you that this seems like a reasonable trade-off for the simpler flow control.

One conflict I see in the doc:

*         Section 3 says:  Receipt of an EXPIRED_STREAM_DATA does not advance the largest received offset for the stream.

  *   Section 5 says:  A receiver SHOULD discard any stream data received for an offset smaller than the new smallest receive offset, possibly advancing the largest received offset for the stream.

Other minor nits are better done via PR.
From: QUIC <quic-bounces@ietf.org> On Behalf Of Lubashev, Igor
Sent: Wednesday, May 30, 2018 9:45 AM
To: QUIC WG <quic@ietf.org>
Subject: Partially Reliable Message Stream

I've just uploaded a new draft for partially reliable QUIC streams.  Note: this feature is likely not in scope for V1, but it can be an extension for V1 and/or a part of V2.

The new version 03 (https://tools.ietf.org/html/draft-lubashev-quic-partial-reliability-03) no longer needs complex flow control changes and removes the need to transmit multiple frames in the same packet.


  *   Igor

P.S.
  There is also a new version 02, which includes a more complex algorithm with more features and different trade-offs.  But I think version 03 is a better match for the needs so far.