Re: WiSH: A General Purpose Message Framing over Byte-Stream Oriented Wire Protocols (HTTP)

Takeshi Yoshino <tyoshino@google.com> Fri, 28 October 2016 19:11 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CAB0712953B for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 28 Oct 2016 12:11:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.951
X-Spam-Level:
X-Spam-Status: No, score=-6.951 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, RP_MATCHES_RCVD=-0.431, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 6MnXRGRnpiYK for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 28 Oct 2016 12:11:25 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9A458129573 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 28 Oct 2016 12:11:25 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1c0CUT-0007Jm-Dt for ietf-http-wg-dist@listhub.w3.org; Fri, 28 Oct 2016 19:06:57 +0000
Resent-Date: Fri, 28 Oct 2016 19:06:57 +0000
Resent-Message-Id: <E1c0CUT-0007Jm-Dt@frink.w3.org>
Received: from titan.w3.org ([128.30.52.76]) by frink.w3.org with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <tyoshino@google.com>) id 1c0CUO-0007HJ-69 for ietf-http-wg@listhub.w3.org; Fri, 28 Oct 2016 19:06:52 +0000
Received: from mail-oi0-f48.google.com ([209.85.218.48]) by titan.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <tyoshino@google.com>) id 1c0CUI-00027u-5q for ietf-http-wg@w3.org; Fri, 28 Oct 2016 19:06:46 +0000
Received: by mail-oi0-f48.google.com with SMTP id i127so138135946oia.2 for <ietf-http-wg@w3.org>; Fri, 28 Oct 2016 12:06:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=nCywYU+dCYfAuSS1VXv5Y/aHA3vT2nIxXlLM9HbKv70=; b=iXi1emZaipVvgdNIXbJb2ynsYmi7IiSwv3KgP0mGQhs3KOm+0rXFjO+T2P3E2W9Vtp cBIE2cTw0wVMtus7tNH5vopUly6X0EBgB+Nnny9u0Lc1MxoQrPjsu/ikR1/ZfpB4gNcL zlCYdvxLKRDi17h9F2QjAN1FCHf2G0BjgG1ex3GwBk+umSr1I8RZJVefWQcM4NILeD6y 0XrbvzNiO6+NvVje63T5L4CDHm6nVU24n94RomdQl8QLHn90/8O/CRinpJTgPeIHf35x Rladg1K4nvAr3QCP4x/FU18BAMyLV3g8d76U0mcIfxJetGD88v2Uwjr64klBWyc07cWH UZXg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=nCywYU+dCYfAuSS1VXv5Y/aHA3vT2nIxXlLM9HbKv70=; b=iLb59gAuRbmdGAzivGMYpEOIDWvNMcluy+DB0IGEd6i1w19yB874V5EqRBWYPrK1m6 yfSXLBQYYCjqGaHNxlwZNjbAH2L+bZTSrnufv/K6/H+DB0QFPYnGaTcbZKf4o01wxNGX ArdOjmzUD2zvf/1ItqAOi6hzQze6tVafWS+AmyZvX+OLccZYKvNB8idbmwMMmsg7hErJ /V3e//2pTxeHoRDnA1nQCCsOAgIv267c8X7nXg6OTtMi05wVItux2NAsCB7Us4wgJ8Qu pNhYZd5UHqFrPMPTSph0YfYi4qNXPCICdTCY/hnd6d+CfbQRuDlOK8h3m5B51oE0hq/n vZVw==
X-Gm-Message-State: ABUngvf9wQhw+gqKQdmP5CO7YbXbufWwzzlnc2HfB3YC2jU0wv/CHCMkEAoJTunNPINmG4HOVtHBB4ezUMacWPQ/
X-Received: by 10.107.154.134 with SMTP id c128mr12417531ioe.184.1477681579650; Fri, 28 Oct 2016 12:06:19 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.79.113.68 with HTTP; Fri, 28 Oct 2016 12:05:58 -0700 (PDT)
In-Reply-To: <CAH9hSJZcGui08=DivN9vynKejvNFy+RYtRDYDnd6U6gxyX3UgQ@mail.gmail.com>
References: <CAH9hSJZdBJ02+Z6o=aanZ=5PN=9VwyL1ZcX2jct-6f_FFivLGA@mail.gmail.com> <0f79ddf6-c455-c41a-f269-a1bdcef05b14@ninenines.eu> <CAH9hSJb2R9gv2vNqoyTjbMV4hZTYdpX2PoAoYgWUT1UuigLHRA@mail.gmail.com> <5541be74-afcc-6aef-404e-63acb2f608eb@ninenines.eu> <CAH9hSJarsNFqX1tAL7BZmZQwUrEQs1X3wtrAPuMyz8s-k_7WRg@mail.gmail.com> <43998e7b-9227-7562-b2c6-c08134065e22@ninenines.eu> <CAD3-0rPRPzVvYb6_Z4wDZp73L5Kyb7LmE0P5j4A-2VSRwT7FMw@mail.gmail.com> <CAH9hSJb=mWdHP8xcBis8-jhWgQTfN-cgQXVV3eCyT4U8JYQHZA@mail.gmail.com> <CAP8-FqnLaRvyQgXXkoNQPKcyMhv-O3RN67CMw5L_-1iQ9c6mhw@mail.gmail.com> <CAH9hSJYpsPW4S9n2LaaLTYYKB7wR3Sod2=fny2CZoUR7A0bSJA@mail.gmail.com> <CAP8-FqkOX1Sq6_=Sgb++QRiDWKEiOxAJ13kzMSr9heu-Ek3QmA@mail.gmail.com> <508f7085-b6b9-572e-7b0f-26cafc94dd44@ninenines.eu> <CAH9hSJZcGui08=DivN9vynKejvNFy+RYtRDYDnd6U6gxyX3UgQ@mail.gmail.com>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Sat, 29 Oct 2016 04:05:58 +0900
Message-ID: <CAH9hSJZZCVMpQrpEV_JTceEmf2Y2aC_kJNXJmLW=LPebG+JR7g@mail.gmail.com>
To: Loïc Hoguin <essen@ninenines.eu>
Cc: Costin Manolache <costin@gmail.com>, Wenbo Zhu <wenboz@google.com>, "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="001a1140b9a4a5ba31053ff18da2"
Received-SPF: pass client-ip=209.85.218.48; envelope-from=tyoshino@google.com; helo=mail-oi0-f48.google.com
X-W3C-Hub-Spam-Status: No, score=-6.5
X-W3C-Hub-Spam-Report: AWL=0.465, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_SORBS_SPAM=0.5, RP_MATCHES_RCVD=-1.418, SPF_PASS=-0.001, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1c0CUI-00027u-5q 407f4e5fdc86d0af7c69402dcfabf706
X-Original-To: ietf-http-wg@w3.org
Subject: Re: WiSH: A General Purpose Message Framing over Byte-Stream Oriented Wire Protocols (HTTP)
Archived-At: <http://www.w3.org/mid/CAH9hSJZZCVMpQrpEV_JTceEmf2Y2aC_kJNXJmLW=LPebG+JR7g@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/32718
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

Sorry for being ambivalent.

We can of course revisit each design decision we made for RFC 6455 framing
and search for the optimal again. But as:
- one of the main philosophies behind WiSH is compatibility with WebSocket
in terms of both spec and implementation
- the WebSocket is widely deployed and therefore we have a lot of
implementations in various languages/platform
- most browsers already have logic for the framing
- the framing is not considered to be so big pain
inheriting the WebSocket framing almost as-is is just good enough.
Basically, I'm leaning toward this plan.

Takeshi

On Sat, Oct 29, 2016 at 3:12 AM, Takeshi Yoshino <tyoshino@google.com>
wrote:

> On Sat, Oct 29, 2016 at 2:55 AM, Loïc Hoguin <essen@ninenines.eu> wrote:
>
>> On 10/28/2016 08:41 PM, Costin Manolache wrote:
>>
>>> Current overhead is 2 bytes if frame is up to 125 bytes long - which I
>>> think it's not very common,
>>> 4 bytes for up to 64k, and 10 bytes for anything larger.
>>> IMHO adding one byte - i.e. making it fixed 5-byte, with first as is,
>>> and next 4 fixed length would
>>> be easiest to parse.
>>>
>>
>> Is making it easy (or easier) to parse even a concern anymore?
>>
>> Considering the number of agents and servers already supporting
>> Websocket, the numerous libraries for nearly all languages and the great
>> autobahntestsuite project validating it all, reusing the existing code is a
>> very sensible solution.
>>
>>
> Yeah, I've been having similar feeling regarding cost for parser/encoder
> implementation though I might be biased.
>
>
>> There are obviously too many options to encode and each has benefits -
>>> my only concern was
>>> that the choice of 1, 2, 8 bytes for length may not match common sizes.
>>>
>>> ( in webpush frames will be <4k ).
>>>
>>
>> --
>> Loïc Hoguin
>> https://ninenines.eu
>>
>
>