RE: Why allow empty STREAM frames when offset is zero?
"Lubashev, Igor" <ilubashe@akamai.com> Fri, 11 May 2018 01:28 UTC
Return-Path: <ilubashe@akamai.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 4724612E85B for <quic@ietfa.amsl.com>; Thu, 10 May 2018 18:28:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.711
X-Spam-Level:
X-Spam-Status: No, score=-2.711 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_LOW=-0.7, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.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 YcFHH3KtAmkg for <quic@ietfa.amsl.com>; Thu, 10 May 2018 18:28:03 -0700 (PDT)
Received: from mx0b-00190b01.pphosted.com (mx0b-00190b01.pphosted.com [IPv6:2620:100:9005:57f::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 31CAF12426E for <quic@ietf.org>; Thu, 10 May 2018 18:28:03 -0700 (PDT)
Received: from pps.filterd (m0050102.ppops.net [127.0.0.1]) by m0050102.ppops.net-00190b01. (8.16.0.22/8.16.0.22) with SMTP id w4B1ReSF012147; Fri, 11 May 2018 02:27:55 +0100
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=jan2016.eng; bh=c8hZUYIP9kDX+bJPBhYaeDQ9yWTrE1K/+ff09ymD+0A=; b=S3xg1ZiTvZR1F1jaYIbxjGBeDKlNCfDtDkq3sxpXEb+X2ilwJr0ubo54x6LYTPEtLkCZ 0KdO1//QFwf42aMzHm5IhekUDRGCLUt6uKrNyOfk4KivpCPU38JlwYPST+aqLQUzN+kH b1SQSOw0hJUY6ikm2ws93Tqmq2jCkPhuO3GELuL4hnci+5mXOz5TZ1AmrUVRPe92IONr pMRVqNHDkm1dEecza+vfl3W9J/cXzb/oJwAsFyMHylVggJK610j2WJBHkvwpWPov4WMg TbuekEBH9lSUiSl8axKJfo2kp/G/3a+vIxX8JmF22fwcDccOZlpKJk5o/rrp+6th61yC RQ==
Received: from prod-mail-ppoint4 ([96.6.114.87]) by m0050102.ppops.net-00190b01. with ESMTP id 2hvwmk0h65-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 11 May 2018 02:27:55 +0100
Received: from pps.filterd (prod-mail-ppoint4.akamai.com [127.0.0.1]) by prod-mail-ppoint4.akamai.com (8.16.0.21/8.16.0.21) with SMTP id w4B1R7M9002028; Thu, 10 May 2018 21:27:54 -0400
Received: from email.msg.corp.akamai.com ([172.27.123.53]) by prod-mail-ppoint4.akamai.com with ESMTP id 2hs7xwnnku-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 10 May 2018 21:27:53 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag1mb2.msg.corp.akamai.com (172.27.123.102) with Microsoft SMTP Server (TLS) id 15.0.1365.1; Thu, 10 May 2018 21:27:48 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com ([172.27.123.105]) by usma1ex-dag1mb5.msg.corp.akamai.com ([172.27.123.105]) with mapi id 15.00.1365.000; Thu, 10 May 2018 21:27:48 -0400
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: Martin Thomson <martin.thomson@gmail.com>, Ian Swett <ianswett@google.com>
CC: Nick Banks <nibanks@microsoft.com>, Mike Bishop <mbishop@evequefou.be>, Roberto Peon <fenix@fb.com>, QUIC WG <quic@ietf.org>, Dmitri Tikhonov <dtikhonov@litespeedtech.com>
Subject: RE: Why allow empty STREAM frames when offset is zero?
Thread-Topic: Why allow empty STREAM frames when offset is zero?
Thread-Index: AQHT6ImJSKTfLtwgAkSWTEz8kX9aw6QpiqWAgAAFW4CAAATBAIAAAq8A///p/YCAAGmmgIAAB1yA///KuaA=
Date: Fri, 11 May 2018 01:27:48 +0000
Message-ID: <1c9ddb102f854ed890c0e4d9f2a0724e@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <20180510180509.GA2505@ubuntu-dmitri> <SN1PR08MB18543D4C234CC672616E37BFDA980@SN1PR08MB1854.namprd08.prod.outlook.com> <20180510184505.GA23837@ubuntu-dmitri> <DM5PR2101MB090184FC657942BD294E555DB3980@DM5PR2101MB0901.namprd21.prod.outlook.com> <BY2PR15MB0775E5FA5E6869C85AB98933CD980@BY2PR15MB0775.namprd15.prod.outlook.com> <c0b4cd48aa5f491f91828d529a7d2c68@usma1ex-dag1mb5.msg.corp.akamai.com> <CAKcm_gNgYUhvu6g_TVqP-gVwA0e__hqK7bGbNs_JnumvyaQeqQ@mail.gmail.com> <CABkgnnWZHcVaRzEmG5QwZCFUOXE8khyHbf8Hav=RZQHiDdsOfQ@mail.gmail.com>
In-Reply-To: <CABkgnnWZHcVaRzEmG5QwZCFUOXE8khyHbf8Hav=RZQHiDdsOfQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.19.34.240]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-05-11_01:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1805110007
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-05-11_01:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1805110007
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/ZzMQmUHEdsd730Uf4zEJ3fvj1Rg>
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: Fri, 11 May 2018 01:28:05 -0000
Done. https://github.com/quicwg/base-drafts/pull/1350 -----Original Message----- From: Martin Thomson [mailto:martin.thomson@gmail.com] Sent: Thursday, May 10, 2018 8:37 PM To: Ian Swett <ianswett@google.com> Cc: Lubashev, Igor <ilubashe@akamai.com>; Nick Banks <nibanks@microsoft.com>; Mike Bishop <mbishop@evequefou.be>; Roberto Peon <fenix@fb.com>; QUIC WG <quic@ietf.org>; Dmitri Tikhonov <dtikhonov@litespeedtech.com> Subject: Re: Why allow empty STREAM frames when offset is zero? That's possible, if someone wants to open a PR. To be clear, I don't think that there is a valid use case for an empty STREAM frame (other than at the start or end) that isn't satisfied better by other frames. But we're not necessarily in the business of policing these things and allowing empty STREAM frames is actually easier than creating the exclusions. Here's a use case: steganography. A covert channel to the peer that won't manifest as observable activity outside of the QUIC stack. An empty STREAM frame can carry a surprising amount of entropy if you are clever. We would then put empty STREAM frames in the same bucket as other frames that could be pointless and wasteful when used excessively. There's already a bunch of those. On Fri, May 11, 2018 at 10:11 AM Ian Swett <ianswett= 40google.com@dmarc.ietf.org> wrote: > I would agree that the restriction here seem unnecessary and I tend to think we'd be better off removing it. > On Thu, May 10, 2018 at 5:58 PM Lubashev, Igor <ilubashe= 40akamai.com@dmarc.ietf.org> wrote: >> Actually, I’ll take an issue with: >> >> [draft-ietf-quic-transport-11] says the following: >> A stream frame's Stream Data MUST NOT be empty, unless the offset is >> 0 or the FIN bit is set. >> >> Why disallow this? This may be a signal to the receiver about where >> in the stream the sender is, even if the sender does not have any new data to send. This signal may be useful in cases of packet loss, when the sender is not ready to declare a packet with stream data lost and retransmit lots of stream data (has not been long enough), but it is very important for the application to know where the sender is in the stream. Of course, there are workarounds – you can send a STREAM frame, retransmitting a single byte. But it still seems like an unnecessary restriction.
- Why allow empty STREAM frames when offset is zero? Dmitri Tikhonov
- RE: Why allow empty STREAM frames when offset is … Mike Bishop
- Re: Why allow empty STREAM frames when offset is … Dmitri Tikhonov
- Re: Why allow empty STREAM frames when offset is … Patrick McManus
- RE: Why allow empty STREAM frames when offset is … Nick Banks
- Re: Why allow empty STREAM frames when offset is … Dmitri Tikhonov
- Re: Why allow empty STREAM frames when offset is … Roberto Peon
- RE: Why allow empty STREAM frames when offset is … Lubashev, Igor
- Re: Why allow empty STREAM frames when offset is … Ian Swett
- Re: Why allow empty STREAM frames when offset is … Martin Thomson
- RE: Why allow empty STREAM frames when offset is … Lubashev, Igor