Re: [hybi] Call for Consensus: draft-tyoshino-hybi-websocket-perframe-deflate as WG Item

Greg Wilkins <gregw@intalio.com> Fri, 02 March 2012 00:11 UTC

Return-Path: <gregw@intalio.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ABD0521E8011 for <hybi@ietfa.amsl.com>; Thu, 1 Mar 2012 16:11:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.76
X-Spam-Level:
X-Spam-Status: No, score=-2.76 tagged_above=-999 required=5 tests=[AWL=0.217, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VCzfSvb-AIhe for <hybi@ietfa.amsl.com>; Thu, 1 Mar 2012 16:11:24 -0800 (PST)
Received: from mail-tul01m020-f172.google.com (mail-tul01m020-f172.google.com [209.85.214.172]) by ietfa.amsl.com (Postfix) with ESMTP id D08E621E800E for <hybi@ietf.org>; Thu, 1 Mar 2012 16:11:23 -0800 (PST)
Received: by obbeh20 with SMTP id eh20so1622774obb.31 for <hybi@ietf.org>; Thu, 01 Mar 2012 16:11:23 -0800 (PST)
Received-SPF: pass (google.com: domain of gregw@intalio.com designates 10.60.3.9 as permitted sender) client-ip=10.60.3.9;
Authentication-Results: mr.google.com; spf=pass (google.com: domain of gregw@intalio.com designates 10.60.3.9 as permitted sender) smtp.mail=gregw@intalio.com
Received: from mr.google.com ([10.60.3.9]) by 10.60.3.9 with SMTP id 9mr2606570oey.49.1330647083550 (num_hops = 1); Thu, 01 Mar 2012 16:11:23 -0800 (PST)
MIME-Version: 1.0
Received: by 10.60.3.9 with SMTP id 9mr2272374oey.49.1330647083494; Thu, 01 Mar 2012 16:11:23 -0800 (PST)
Received: by 10.60.55.166 with HTTP; Thu, 1 Mar 2012 16:11:23 -0800 (PST)
In-Reply-To: <CABLsOLAZe3d3BXWMEvTL-nHAMRzXJ_F-eSCUnjdsN99CTnL99g@mail.gmail.com>
References: <4F4C8568.7070403@ericsson.com> <CAH_y2NF0mG9+PWotJmG0e4trgSxhOtaoGXLeeQUS1Tn5zpZuYQ@mail.gmail.com> <CAH9hSJakzY8RAHgBgQbjGq4GvPJFdrtS8TXt_aUqjiwZCOZR-g@mail.gmail.com> <CABLsOLAZe3d3BXWMEvTL-nHAMRzXJ_F-eSCUnjdsN99CTnL99g@mail.gmail.com>
Date: Fri, 02 Mar 2012 11:11:23 +1100
Message-ID: <CAH_y2NHyp_1ZKVR18QDZMW0EB2X18UCNfv140RuFDfMThsHs1w@mail.gmail.com>
From: Greg Wilkins <gregw@intalio.com>
To: John Tamplin <jat@google.com>
Content-Type: multipart/alternative; boundary="e89a8f83ae2bbbaeb404ba376a93"
X-Gm-Message-State: ALoCoQms3nqnDmTmu2aMJfbOUh2BHzM6OuN8RziZAmaIG3pMGAK4gCFDGX0aZ9KAOr+DkPMnYJ7l
Cc: "hybi@ietf.org" <hybi@ietf.org>
Subject: Re: [hybi] Call for Consensus: draft-tyoshino-hybi-websocket-perframe-deflate as WG Item
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 02 Mar 2012 00:11:24 -0000

On 2 March 2012 09:26, John Tamplin <jat@google.com> wrote:

> On Thu, Mar 1, 2012 at 3:04 PM, Takeshi Yoshino <tyoshino@google.com>wrote:
>
>> I also wonder if it's useful to make it able to negotiate whether to use
>> compression bit or not on opening handshake.
>>
>
> Personally, I think that complicates things too much.  When we reserved
> the bit, one of the things we were reserving it for was per-frame
> compression.


I agree - we should either use a reserve bit or not - optional use is
probably the worst of both worlds.


The options I see we have are:

a) Just use the bit in this extension.  Any other extension that uses the
same bit will be incompatible and we leave it undefined how we work that
out.
b) Nominate the bit as some kind of general purpose per frame compression
bit, available to multiple compression extensions.
c) Come up with a system of dynamically allocated reserved bits. The
extension requests to use a bit and the server allocates one and indicates
which in the handshake response.  This would allow multiple reserve bit
using extensions to co-exist... up until our limit of reserved bits.
d) Don't use a reserved bit.  Use the first byte of the payload to indicate
if the frame is compressed or not.
e) Don't use a reserved bit. Compress all frames.

I see c) as probably too complex and too limited to be worth the effort.
So failing dynamic reserve bit allocation, I think if we don't allocate a
reserved bit for frame compression, then we will never allocate them for
anything.
If we don't allocate a reserved bit, I think there is enough previous
discussions to show that e) compress everything is not optimal.   d) is not
too bad, specially if meanings could be assigned to other bits in that byte
(eg a reset dictionary bit, a use dictionary but don't update it bit etc.)

So I think b) or d) are viable options

cheers