RE: draft-tiesel-quic-unreliable-streams-01 - comments

"Lubashev, Igor" <ilubashe@akamai.com> Tue, 07 November 2017 23:35 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 D57B2129B05 for <quic@ietfa.amsl.com>; Tue, 7 Nov 2017 15:35:18 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Level:
X-Spam-Status: No, score=-1.989 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, 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 (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 q_rnIdhXiiQo for <quic@ietfa.amsl.com>; Tue, 7 Nov 2017 15:35:16 -0800 (PST)
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 1AC63129B37 for <quic@ietf.org>; Tue, 7 Nov 2017 15:35:14 -0800 (PST)
Received: from pps.filterd (m0050096.ppops.net [127.0.0.1]) by mx0b-00190b01.pphosted.com (8.16.0.21/8.16.0.21) with SMTP id vA7NW8p3022575; Tue, 7 Nov 2017 23:35:02 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=jan2016.eng; bh=/UpgrHuszGXulBuScQMPr/PTvmri6EYShZlykqb+Vwc=; b=EHiBcYr16hcAPAANTHvRaDGIpfpEeQe27FZgPldurt/dO04xzBtvqdVl56LaPeBNUaPa tO3y7hVJIytR0/q+1X2YVeSb84syXFMoIQvFKD7zJ28fTTRxJKJ2BBavEXXe91OfNcmP UfLOyd49RcJrDumQuvECd1jhmLx/vu6oWxhbMR5Ty0ApUMVpkBt8u+DwaC9Jfzkuh+yG nZPqJ+wbJVMjz6VFxuV7atSctZBSZDC3fOa3GnZZPVdZpg+M1hAH847J1OQc50HPkqDp Pq5kE81xNvKnFfyXdLF0sbAYLqkiZfWNn14c+b6Xdva9m1l79meifPkISSbBMm3ZLskt uw==
Received: from prod-mail-ppoint1 (prod-mail-ppoint1.akamai.com [184.51.33.18]) by m0050096.ppops.net-00190b01. with ESMTP id 2e16uav0wu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 07 Nov 2017 23:35:01 +0000
Received: from pps.filterd (prod-mail-ppoint1.akamai.com [127.0.0.1]) by prod-mail-ppoint1.akamai.com (8.16.0.21/8.16.0.21) with SMTP id vA7NVL0U013191; Tue, 7 Nov 2017 18:35:01 -0500
Received: from email.msg.corp.akamai.com ([172.27.123.30]) by prod-mail-ppoint1.akamai.com with ESMTP id 2e18vubb0d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 07 Nov 2017 18:35:00 -0500
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag3mb2.msg.corp.akamai.com (172.27.123.59) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Tue, 7 Nov 2017 18:35:00 -0500
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag1mb5.msg.corp.akamai.com (172.27.123.105) with Microsoft SMTP Server (TLS) id 15.0.1263.5; Tue, 7 Nov 2017 18:34:59 -0500
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.1263.000; Tue, 7 Nov 2017 18:34:59 -0500
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: Christian Huitema <huitema@huitema.net>, Roni Even <roni.even@huawei.com>, QUIC WG <quic@ietf.org>
Subject: RE: draft-tiesel-quic-unreliable-streams-01 - comments
Thread-Topic: draft-tiesel-quic-unreliable-streams-01 - comments
Thread-Index: AdNTERoY+irKmTeUSwyYPYwl1z5CzAFMW/mAAAiujxA=
Date: Tue, 07 Nov 2017 23:34:59 +0000
Message-ID: <266d61e546f64b549ceb87ef05945bc6@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <6E58094ECC8D8344914996DAD28F1CCD82A735@DGGEMM506-MBS.china.huawei.com> <d7dd97c2-cb9d-ef97-4e25-d46cf7421a13@huitema.net>
In-Reply-To: <d7dd97c2-cb9d-ef97-4e25-d46cf7421a13@huitema.net>
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.38.173]
Content-Type: multipart/alternative; boundary="_000_266d61e546f64b549ceb87ef05945bc6usma1exdag1mb5msgcorpak_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-11-07_08:, , signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1711070308
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-11-07_08:, , 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 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1707230000 definitions=main-1711070308
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/rAUdkO6Qw23QkkxdXs_QcoPWdoI>
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, 07 Nov 2017 23:35:19 -0000

I think an alternative to supporting a new packet transport within QUIC could be a new "MIN_STREAM_DATA" frame.  This frame indicates that nothing below this stream data offset will be retransmitted.

The application can periodically call setMinStreamData(offset), respecting any in-stream message boundaries that makes sense for the application.  If all data up to the offset has been acked, this is a noop. Otherwise, the transport drops any unacked bytes up to offset and sends MIN_STREAM_DATA.  This way, an application does not need to create a stream-per-message, paying no penalty in the usual case of all data delivered in time.


  *   Igor



From: Christian Huitema [mailto:huitema@huitema.net]
Sent: Tuesday, November 07, 2017 5:35 PM
To: Roni Even <roni.even@huawei.com>; QUIC WG <quic@ietf.org>
Subject: Re: draft-tiesel-quic-unreliable-streams-01 - comments


On 11/1/2017 6:03 AM, Roni Even wrote:
Hi,

I think support for unreliable streams is important for unidirectional and bi-directional streams and even if it is V2 we still need to take support for it into account. One use case is RTP over QUIC.

I used to think that too, but I wonder whether something like RTP in QUIC is best achieved by overloading the concept of streams, or by defining a completely independent system, maybe using RTP and RTCP frame types instead of regular streams types.

My main reason to say that is that regular stream data is more or less treated as a byte stream, and RTP is not. The transport is free to send stream data segments containing some of the stream's bytes, depending on flow control, multiplexing conditions, packet size, etc. In contrast, RTP data is sent as series of well delimited packets, each packet corresponding to some well defined time slice of the media. Whatever framing we use in QUIC will have to respect these packet boundaries.

Another reason has to do with forward error correction, which is commonly applied to large video frames sent over several packets. Many systems use packet-erasure-correction schemes, which rely on correctly identifying which packet was lost -- or, in QUIC, which of the video-carrying frames was lost. That would require some frame numbering scheme. Some of that is probably best left to the application, but at a minimum QUIC shall be able to respect frame boundaries. And that's probably easier if the data is sent in some specialized RTP framing, rather than as regular STREAM DATA frames.



Small comments:

In section 4.2 " The loss of such a frame does not introduce state at the perceived receiver". If new streams are opened with higher stream ID,  it implicitly opens this one frame stream that was lost in the receiver. I think it still requires the sender to send a reliable FIN to close this stream.

In the security section " An active, on path attacker can drop selected frames " . What does it mean selected frames, the whole payload is encrypted.

We probably need to assume that real time stream will be set up by the application, using something like SIP or RTSP in conjunction with SDP. The end of the real time stream could also be signaled by the application in pretty much the same way.

Frankly, I don't think that we are ready to define RTP over QUIC right now, as the priority is to finish the base spec. But what we can do is experiment with extension mechanism. For example, define an experiment in which QUIC that can carry RTP, and verify that we can use the various extension mechanisms to field that. We might learn something about these extension tools: version numbers, transport parameter negotiation, maybe experimental frame types.

-- Christian Huitema