RE: A design for the Message frame(s)

"Lubashev, Igor" <ilubashe@akamai.com> Mon, 17 September 2018 23:14 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 6F6C9128B14 for <quic@ietfa.amsl.com>; Mon, 17 Sep 2018 16:14:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.709
X-Spam-Level:
X-Spam-Status: No, score=-2.709 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_LOW=-0.7, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, URIBL_BLOCKED=0.001] autolearn=unavailable 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 QSAUztR4gvsJ for <quic@ietfa.amsl.com>; Mon, 17 Sep 2018 16:14:31 -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 83978130EC9 for <quic@ietf.org>; Mon, 17 Sep 2018 16:14:31 -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 w8HND4uC024282; Tue, 18 Sep 2018 00:14:10 +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 : mime-version; s=jan2016.eng; bh=aR5Sui+3H935LkjuPkS7SRw8Av/bhoxZOaurvgdMFJw=; b=lvfjIlFSxyE+1F2H9DT0wavAwhjTfQA16li2hDZ2BxdEStYj1CWaJj37+WMRGhS6ZFYo ZJgQGzVBG29F2DXCMqhQB/RUjqh6uaaePA5JqBNA2MbLVwRk7zB9o8dtagPyo2VNVvU4 gYA4eV4y95kjF8jf1TZjr0gFGX5IARj6UQWq9boZ47ZHX1w5bIsn0lj3y03NUpMh9l6a mqIq13m0XG6eAIMK8sDHKUG/iVSjbZJ8NChDq7Zcegv2VR4QlpcdRzxEXsTdIBHPCRbF oq3tzPcfzC2jvWxR0C1wGp0lLIx7PneT2zhBVWnPXcPrwu+yRErsUwXQOgnH4ZoIGj/X jQ==
Received: from prod-mail-ppoint2 (prod-mail-ppoint2.akamai.com [184.51.33.19]) by m0050102.ppops.net-00190b01. with ESMTP id 2mgs7ar6gw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 18 Sep 2018 00:14:09 +0100
Received: from pps.filterd (prod-mail-ppoint2.akamai.com [127.0.0.1]) by prod-mail-ppoint2.akamai.com (8.16.0.21/8.16.0.21) with SMTP id w8HN4dAn028774; Mon, 17 Sep 2018 19:14:09 -0400
Received: from email.msg.corp.akamai.com ([172.27.123.33]) by prod-mail-ppoint2.akamai.com with ESMTP id 2mgwduvhfb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 17 Sep 2018 19:14:09 -0400
Received: from USMA1EX-DAG1MB5.msg.corp.akamai.com (172.27.123.105) by usma1ex-dag3mb3.msg.corp.akamai.com (172.27.123.58) with Microsoft SMTP Server (TLS) id 15.0.1365.1; Mon, 17 Sep 2018 19:14:08 -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 Microsoft SMTP Server (TLS) id 15.0.1365.1; Mon, 17 Sep 2018 19:14:08 -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; Mon, 17 Sep 2018 19:14:08 -0400
From: "Lubashev, Igor" <ilubashe@akamai.com>
To: Ian Swett <ianswett=40google.com@dmarc.ietf.org>, Christian Huitema <huitema@huitema.net>
CC: "charles.krasic@gmail.com" <charles.krasic@gmail.com>, Mike Bishop <mbishop@evequefou.be>, Lars Eggert <lars@eggert.org>, IETF QUIC WG <quic@ietf.org>, Martin Thomson <martin.thomson@gmail.com>, Tommy Pauly <tpauly@apple.com>, "ianswett@google.com" <ianswett@google.com>
Subject: RE: A design for the Message frame(s)
Thread-Topic: A design for the Message frame(s)
Thread-Index: AQHUSu+PMhvSjq8WIU2VtvOi0uGDOKTtppoAgAAF+YCAADqJgIAAnkCAgAADeYCAAa+eAIAADhUAgAFetKCAAMx0gIACaHaA///PmmA=
Date: Mon, 17 Sep 2018 23:14:07 +0000
Message-ID: <a7835ea4b8554d2bb0b9c1a7be64393d@usma1ex-dag1mb5.msg.corp.akamai.com>
References: <CAKcm_gPQ5kD-0y3goR7d6tV22=tb52FabtA91_3pw2rf91KSqw@mail.gmail.com> <CABkgnnWKQAaB=_iEQZ3-k9NuHWa-_e7aBq4_tJs4h+UCt9MHhA@mail.gmail.com> <976DA589-A549-41A8-BE82-9F64F1CA4FED@apple.com> <CABkgnnWArKFvp=idWOa3n0-bU7iccz-37D9Giqao9DiBdcdC2A@mail.gmail.com> <CAKcm_gO1u_9Pv4jeLFw99dyw_79sapT099qX0bwhOLt2c3E4NA@mail.gmail.com> <673E9CB9-84C5-448F-ABF1-97ABBD7F45BF@eggert.org> <CY4PR22MB0983822F503B1363AD423A21DA190@CY4PR22MB0983.namprd22.prod.outlook.com> <CAPhuoz2s4KK9KFRGyt2Q5O3BSqudpGC15CzqmrRxoEoTOgv=mw@mail.gmail.com> <82fab460207b42a9ac7900ffeec9b630@usma1ex-dag1mb5.msg.corp.akamai.com> <05a7612a-d323-fd42-d6aa-9fe43a5ccede@huitema.net> <CAKcm_gNURPMXwrdEuoiy53AwUjvN2Rwq228ktT8_vZzjzJ9xEg@mail.gmail.com>
In-Reply-To: <CAKcm_gNURPMXwrdEuoiy53AwUjvN2Rwq228ktT8_vZzjzJ9xEg@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.33.89]
Content-Type: multipart/alternative; boundary="_000_a7835ea4b8554d2bb0b9c1a7be64393dusma1exdag1mb5msgcorpak_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-09-17_12:, , 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-1807170000 definitions=main-1809170228
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2018-09-17_12:, , 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-1807170000 definitions=main-1809170230
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/XLMJ11GJd25wkdLpkiJR_xDac0o>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 17 Sep 2018 23:14:34 -0000

I happened to think that an API description is critically important for the WG to consider (even if that description does not make it into the draft).  The API description provides a usability goal for the protocol to achieve.
For example, “OnMessageLost” is a useful callback.  If its semantics allows for false positives but no false negatives, we know some flow control of MESSAGE/DATAGRAM is required.

I am a bit surprised by the lack of desire for a homogeneous API for different message lengths.  I’ve seen too many systems that started out as “we just need to send small ‘sensor-like’ UDP packets” and then evolved over the years by adding more ‘sensors’ and more fidelity to the ‘sensors’, eventually relying on IP fragmentation to save them.  Due to the requirements of compatibility with old implementations, IP fragmentation turned out to be a savior for those UDP systems (as much as IETF might dislike that -- draft-bonica-6man-frag-deprecate).  Many companies we work for may be best positioned to keep updating our systems (servers and clients) to make timely protocol changes as the needs evolve.  However, I am worried that many other systems will be suffering ~10 years down the line without seamless (from app API perspective) extensibility on message length.  (I really do not want to see “MTU-extending” tunnels out there!)


  *   Igor


From: Ian Swett <ianswett=40google.com@dmarc.ietf.org>
Sent: Monday, September 17, 2018 10:56 AM
To: Christian Huitema <huitema@huitema.net>
Cc: Lubashev, Igor <ilubashe@akamai.com>; charles.krasic@gmail.com; Mike Bishop <mbishop@evequefou.be>; Lars Eggert <lars@eggert.org>; IETF QUIC WG <quic@ietf.org>; Martin Thomson <martin.thomson@gmail.com>; Tommy Pauly <tpauly@apple.com>; ianswett@google.com
Subject: Re: A design for the Message frame(s)

To clarify, the largest intended difference between the MESSAGE proposal and the DATAGRAM draft is the choice of name.  Both are designed to be sub-MTU, because anything larger can be accommodated by a unidirectional stream.  My doc goes into a lot more details on API, which aren't necessary for the WG to consider, but I thought provided some rationale for why I made the design choices I did and it was a useful guide to implement from.

Buck, originally I wanted a single API that abstracted away what was underneath, but in the end all the applications I talked to were just as happy dealing with it themselves, so it was dropped for now.

On the subject of whether the WG should spend any time on this, I tend to agree with Mike that it would be good to know the extension mechanism actually works, and this is a really easy frame to implement and specify, so it's an excellent candidate for an example extension.  But for this week in NY, I want to focus on resolving all the open issues so the editors can write the needed text before Bangkok.

On Sat, Sep 15, 2018 at 10:09 PM Christian Huitema <huitema@huitema.net<mailto:huitema@huitema.net>> wrote:



On 9/15/2018 12:44 PM, Lubashev, Igor wrote:
Given the amount of emails regarding Thai visas I am forced to read and delete, a thread on MESSAGE/DATAGRAM support is a welcome diversion.


I like that “MESSAGE” proposal does not require one’s messages to be under PMTU in size -- my largest concern with the DATAGRAM draft.  Taking a lesson from years of UDP experience, a transport abstraction providing atomic delivery of messages of somewhat arbitrary sizes is very useful (though the chances of successful delivery for larger messages drop off rapidly).

There is somewhat of a continuum between sensor reports (e.g. the mouse is now pointing at x=234, y=152), audio streams (short packets, 50 times per sec), video streams (shortish packets, except those I frames that are 64K long), and server pushed pages.

I think a pure "datagram" frame servers well the low end of the continuum, such as sensors, for which there is no point at all repeating the data. Just transmit a fresh value. Datagram works OK for audio, we have been doing it for a very long time.

Pure datagram does not work too well for real-time  video, because missing 10% of an I Frame is a real bummer. You need some extra sauce, typically some form of FEC. But then, if you are ready to put that extra sauce in the app, datagram is a pretty good building block. Especially if you can get integrated congestion control and error reporting through the integration with Quic.

So, personally, I would rather keep it simple, use a bare bone datagram API, and let the application deal with the added complexity.

But then, frame types are cheap. We can have several extensions. No point fighting about it.

-- Christian Huitema