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

Takeshi Yoshino <tyoshino@google.com> Fri, 28 October 2016 18:07 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 D66F2129679 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 28 Oct 2016 11:07:49 -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 udDrZazsKnkx for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Fri, 28 Oct 2016 11:07:48 -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 017AC129551 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Fri, 28 Oct 2016 11:07:48 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.80) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1c0BVK-0006dJ-GW for ietf-http-wg-dist@listhub.w3.org; Fri, 28 Oct 2016 18:03:46 +0000
Resent-Date: Fri, 28 Oct 2016 18:03:46 +0000
Resent-Message-Id: <E1c0BVK-0006dJ-GW@frink.w3.org>
Received: from mimas.w3.org ([128.30.52.79]) by frink.w3.org with esmtps (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from <tyoshino@google.com>) id 1c0BVF-0006an-Ta for ietf-http-wg@listhub.w3.org; Fri, 28 Oct 2016 18:03:41 +0000
Received: from mail-yw0-f178.google.com ([209.85.161.178]) by mimas.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from <tyoshino@google.com>) id 1c0BUp-0003Cy-5H for ietf-http-wg@w3.org; Fri, 28 Oct 2016 18:03:22 +0000
Received: by mail-yw0-f178.google.com with SMTP id h14so97903623ywa.2 for <ietf-http-wg@w3.org>; Fri, 28 Oct 2016 11:02:54 -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=WZL2rsxU0SuLKtL8aOIGxf2qOqvsvtU1H0ujAniAIt8=; b=Vgmrn97AdSlzEWYsGIidPqdh4poTYnu43V/X+MM8jf6YKsd6u6KmrQ6+PDgb9tglfN tbBQu05D3Cw2iD0UR1XFtsWxuRVydVBOdrCe7cdmsnLJtR8oh2fPZ2IX8d4hoXeVIG/R mSAz8NUUHpQQPjoXiCOOllVBaeEU05sKNtYWHQ9GMCZ2BIlr5OWeaZZy373dbBoU6nVI DMlv2q/Z9pV+DbTgHUBStkc+5xncrNSJTSwLeBHa0ZrP/iVpnbc7tLsy3UXjUR5+x+3M SbasIGzEAFH5jo5Bvnm0uzq0wmaQIyo7FLm63VUqSMW3EeMPvA4oNpqE8g7ei3IHkKRV sGUw==
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=WZL2rsxU0SuLKtL8aOIGxf2qOqvsvtU1H0ujAniAIt8=; b=crKu1yItnoqePktYmndDmHEkEE/Ga3eqx5nINLCNR6SUTszEwFrk8H3NcnSZI14FGs tFQFi9nOXJbdwrLkQ2FzJYMH9YZVZpAzyx2Q5u9eOAVuXJSNOFF21AJHUJwSeme2rqxu W8A3amn9YKOPjEP8Ki+OyRRyH1FTIfGYqeNsWs/c9ZzEoyDP1FyJJlR/HBUtFIxr8lL1 0ZJ+hPNAmNJ1oQN7wHgK49xcNL5DsUSg0/eFHX/xrCWwB4glAiRfMM5kwJBtnj7bZRPs vvDYTN5LZPapxgPw8mNDQe+o5tg4TPSkHeLd28dRZEUYFx2Woie62KtuW11Qbb+28S05 jF0Q==
X-Gm-Message-State: ABUngvfvWr0r8Qy/ZqNfQKYH2FIlJH2JO13mc1CMyJ9h+eId+S4nHOeXUxhVknP2u4lORjyG5hPUh8YWvTt2xt+n
X-Received: by 10.107.25.20 with SMTP id 20mr11676543ioz.189.1477677768628; Fri, 28 Oct 2016 11:02:48 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.79.113.68 with HTTP; Fri, 28 Oct 2016 11:02:27 -0700 (PDT)
In-Reply-To: <CAP8-FqmOHkCSFvpEnz0=oSSm_kUwuAAHJSwW=r4ZJ_k23hnWKA@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>
From: Takeshi Yoshino <tyoshino@google.com>
Date: Sat, 29 Oct 2016 03:02:27 +0900
Message-ID: <CAH9hSJb=o2bXvyrCvRHKWN9TPb-hnTF2nKCRuUqCsN=T6cZEyA@mail.gmail.com>
To: Costin Manolache <costin@gmail.com>
Cc: Wenbo Zhu <wenboz@google.com>, =?UTF-8?B?TG/Dr2MgSG9ndWlu?= <essen@ninenines.eu>, "ietf-http-wg@w3.org Group" <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary=001a113ffa227e3ce9053ff0aab2
Received-SPF: pass client-ip=209.85.161.178; envelope-from=tyoshino@google.com; helo=mail-yw0-f178.google.com
X-W3C-Hub-Spam-Status: No, score=-6.5
X-W3C-Hub-Spam-Report: AWL=0.483, 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: mimas.w3.org 1c0BUp-0003Cy-5H 70ddba7274d1e632b27d0a4070913b72
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/CAH9hSJb=o2bXvyrCvRHKWN9TPb-hnTF2nKCRuUqCsN=T6cZEyA@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/32713
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>

Thanks. Yeah, they are good candidates.

Regarding why we need to have to be able to build so large frame though we
have the fragmentation feature, IIRC, the original motivation for this
during establishment of RFC 6455 was potential needs to avoid fragmentation
e.g. to be able to sendfile() a big file directly into a WebSocket message.
I now don't think we need to care this concern so much.

On Sat, Oct 29, 2016 at 2: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 :)
>>
>>
>>