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

Takeshi Yoshino <tyoshino@google.com> Fri, 28 October 2016 18:23 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 3A3E81295C0 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 28 Oct 2016 11:23:17 -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 A44zJA9qi1KK for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 28 Oct 2016 11:23:11 -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 1A00612941C for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 28 Oct 2016 11:23:11 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1c0Bjj-0000hH-IT for ietf-http-wg-dist@listhub.w3.org; Fri, 28 Oct 2016 18:18:39 +0000
Resent-Date: Fri, 28 Oct 2016 18:18:39 +0000
Resent-Message-Id: <E1c0Bjj-0000hH-IT@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 1c0Bje-0000fe-9t for ietf-http-wg@listhub.w3.org; Fri, 28 Oct 2016 18:18:34 +0000
Received: from mail-oi0-f42.google.com ([209.85.218.42]) 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 1c0BjY-0000aS-01 for ietf-http-wg@w3.org; Fri, 28 Oct 2016 18:18:29 +0000
Received: by mail-oi0-f42.google.com with SMTP id i127so135776617oia.2 for <ietf-http-wg@w3.org>; Fri, 28 Oct 2016 11:18:07 -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=EwJG0t+Pe9IV7Dtl/LVFQAvnYPgzCn6Ry1ZiSaTuzAE=; b=Tjiwirn4Kf1iBMW0O9UsWz5FOWVHE5ZRN7GABflYLBxsQsdgZjXfEguRrDTDLV9cC3 BHcvUGAgEr3mSdO4zoIFz2An0VJ2ZdQEb7snfhu076sCK3p9VzQNg9P0Gef+YkT8PKC8 xJwiCug8TWPn+zSXXmxuGDrZdU40oIycgFxMJcill5j+ilbHZ60QbJ50FBQz3fZXYDUu zgitJgcQCMlRw3xoa1xqYUKA+d13QF+SKTLJWPsb/93gRYxMEdp2WSNHhkW75Ez5cb5i C+APdZUqGmQ2XIHhY0Cf9TXqjpA/aUogawqCijx7U0+Z4KMqo4I4GM8tFYtmWVbgiIh/ rNOQ==
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=EwJG0t+Pe9IV7Dtl/LVFQAvnYPgzCn6Ry1ZiSaTuzAE=; b=AGohNJSAzwxWWV8y5FKmNLSZ0lIgYKDuG6hJfoRDciB6ReLtk1WfNrj/r5z8go9D2K ySvPJtEynmBpDhkzNb0gywkcedKHqvwDLpD/al/5cqERoW1hTob9H8yAkmMLb3pMhFwG zQ0jsWSqOMZTm8IonRDtXyS3CTXgyB5xSsJwoyzc98W0WXqRC24S8Q+jLOMLrVJ28bqU tGAXmVAjTOn5F09rOG5CVyc86wKS1TixI822UAfDlxUE4jMwN+LfWhwpn3/S+ok1k+g6 bhuOQ82UWOJ/QW0hBUS5nX9G0TNEzpDJRGkEfn2+KYadwenf0bL1bd6alR842gcqm4YW gP8g==
X-Gm-Message-State: ABUngvdlbZV5BzhVMndtW//XIltRetNSNkcdJLcvsrHzc/OXCYOLEgWgI77eyPF3scXNqmuPejVEEbh9J9LHahJ7
X-Received: by 10.107.154.134 with SMTP id c128mr12305414ioe.184.1477678681365; Fri, 28 Oct 2016 11:18:01 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.79.113.68 with HTTP; Fri, 28 Oct 2016 11:17:40 -0700 (PDT)
In-Reply-To: <CAD3-0rNMynOcYzabM8dzxbuTDpn9gesW8jr-Nuh6Wryvz4R5HQ@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> <CAP8-FqmOHkCSFvpEnz0=oSSm_kUwuAAHJSwW=r4ZJ_k23hnWKA@mail.gmail.com> <CAD3-0rNMynOcYzabM8dzxbuTDpn9gesW8jr-Nuh6Wryvz4R5HQ@mail.gmail.com>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Sat, 29 Oct 2016 03:17:40 +0900
Message-ID: <CAH9hSJbz_Yi8wbMZxHc=dQSpQU2ugeG-4taij_AnToawqDfAsg@mail.gmail.com>
To: Wenbo Zhu <wenboz@google.com>
Cc: Costin Manolache <costin@gmail.com>, Loïc Hoguin <essen@ninenines.eu>, "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="001a1140b9a4e582e4053ff0e07c"
Received-SPF: pass client-ip=209.85.218.42; envelope-from=tyoshino@google.com; helo=mail-oi0-f42.google.com
X-W3C-Hub-Spam-Status: No, score=-6.5
X-W3C-Hub-Spam-Report: AWL=0.484, 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_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, 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 1c0BjY-0000aS-01 11d0229f17d0a0593e5d52fcb24fb0c6
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/CAH9hSJbz_Yi8wbMZxHc=dQSpQU2ugeG-4taij_AnToawqDfAsg@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/32717
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>

On Sat, Oct 29, 2016 at 3:03 AM, Wenbo Zhu <wenboz@google.com> wrote:

> We are not designing the best framing here .. and Takeshi knows this the
> best, being through the entire history of websocket discussion.
>
> I think the current encoding scheme for small messages is fine, 1 byte <
> 125; 3 bytes < 64K; and then 9 bytes for everything else (by this point,
> saving 4 bytes at the header of the message won't matter).
>
> BTW, continuation is not widely used, e.g. there is not JS API for this.
>

Yes, that's true regarding availability via the WebSocket Web API. In
Chromium, its WebSocket stack transparently fragments messages as it likes,
and because of that, most servers now support it.


>
> On Fri, Oct 28, 2016 at 10:43 AM, Costin Manolache <costin@gmail.com>
> wrote:
>
>> Also 24 bit fixed length ( like in http2 frame ) may be a reasonable
>> choice, with a 4-byte fixed header.
>>
>> Costin
>>
>> On Fri, Oct 28, 2016 at 10:41 AM Costin Manolache <costin@gmail.com>
>> 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.
>>>
>>> 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 ).
>>>
>>> Costin
>>>
>>>
>>>
>>> On Fri, Oct 28, 2016 at 10:21 AM Takeshi Yoshino <tyoshino@google.com>
>>> wrote:
>>>
>>> On Sat, Oct 29, 2016 at 1:25 AM, Costin Manolache <costin@gmail.com>
>>> wrote:
>>>
>>> I think WiSH could be great as a fallback to the webpush protocol push
>>> promises, in devices
>>> that don't fully support http/2, and for webpush delivery receipts.
>>>
>>>
>>> Great to hear that.
>>>
>>>
>>>
>>> In the context of IoT: since continuation is available, any reason to
>>> support 64-bit-length frames ?
>>> Even 32 bit ( 4G ) frames may be unpractical.  I don't know how common
>>> this int encoding scheme
>>> is - but using varint or fixed may be easier to handle.
>>>
>>>
>>> It's basically not to introduce any gap with WebSocket's representation
>>> power for compatibility while also keeping it efficient for small frames.
>>>
>>> Re: varint,
>>> Actually, old WebSocket protocol I-Ds used base 128 varint for encoding
>>> frame length for binary frames.
>>> https://tools.ietf.org/html/draft-ietf-hybi-thewebsocketprotocol-00
>>> We can choose this as this is efficient for small messages but
>>> considered that WebSocket encoding is already common and honored input
>>> which led to the WebSocket encoding. IIRC there was some feedback from
>>> hardware developer against to 128 varint, but I cannot find it now.
>>>
>>> Re: big frames,
>>> We're also seeing that very long messages are uncommon from Chromium's
>>> UMA stats. We might be able to share that.
>>>
>>> Re: small over head for small frames,
>>> For the use cases where WiSH is layered on top of HTTP2 overhead and TLS
>>> record overhead, this difference might be negligible.
>>>
>>> So, ... I'm open to changing the encoding, but want to hear more :)
>>>
>>>
>>>
>