Re: [hybi] Compression spec decoupling

"Arman Djusupov" <arman@noemax.com> Thu, 26 April 2012 09:11 UTC

Return-Path: <arman@noemax.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 B332F21F8776 for <hybi@ietfa.amsl.com>; Thu, 26 Apr 2012 02:11:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.381
X-Spam-Level:
X-Spam-Status: No, score=-2.381 tagged_above=-999 required=5 tests=[AWL=0.217, BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 7Cv4EkYZv6aX for <hybi@ietfa.amsl.com>; Thu, 26 Apr 2012 02:11:28 -0700 (PDT)
Received: from mail.noemax.com (mail.noemax.com [64.34.201.8]) by ietfa.amsl.com (Postfix) with ESMTP id 9868921F8773 for <hybi@ietf.org>; Thu, 26 Apr 2012 02:11:28 -0700 (PDT)
Received: from ArmanPC1 by mail.noemax.com (IceWarp 9.4.1) with ASMTP (SSL) id KNL48525; Thu, 26 Apr 2012 12:11:25 +0300
From: Arman Djusupov <arman@noemax.com>
To: 'Takeshi Yoshino' <tyoshino@google.com>, hybi@ietf.org, 'John Tamplin' <jat@google.com>, 'Greg Wilkins' <gregw@webtide.com>
References: <CAH9hSJbr1rXvda87NrHO91JMe5nhM_cHaRODAsSWW-io_9iZJw@mail.gmail.com>
In-Reply-To: <CAH9hSJbr1rXvda87NrHO91JMe5nhM_cHaRODAsSWW-io_9iZJw@mail.gmail.com>
Date: Thu, 26 Apr 2012 12:11:16 +0300
Message-ID: <002001cd238c$8d5a6e80$a80f4b80$@noemax.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0021_01CD23A5.B2A9F070"
X-Mailer: Microsoft Outlook 14.0
thread-index: AQI/uA5G45eE+kelT2vnGxaAwCWfjJXHqFxA
Content-Language: en-us
Subject: Re: [hybi] Compression spec decoupling
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: Thu, 26 Apr 2012 09:11:31 -0000

I'm also fine with both options.

 

With best regards,

Arman

 

From: Takeshi Yoshino [mailto:tyoshino@google.com] 
Sent: Thursday, April 26, 2012 7:24 AM
To: hybi@ietf.org; John Tamplin; Arman Djusupov; Greg Wilkins
Subject: Compression spec decoupling

 

As the target data is close, I'd like to list options with concrete examples
and call for opinions to settle this topic.

 

See also this thread:
http://www.ietf.org/mail-archive/web/hybi/current/msg09469.html

 

We have two options.

(I saw slight objection to add a new handshake header to pass algorithm
parameter in f2f meeting)

 

a) One per-frame compression extension for all compression algorithm

 

draft-ietf-hybi-websocket-perframe-compression defines

- an extension "perframe-compress" and how it frames data including usage of
RSV1

- an extension parameter "algorithm" and its format

- an algorithm parameter "deflate" and how it transforms data

 

RSV1 is given to perframe-compress extension. It might make incompatible
extension checking easier.

 

There something does "per-frame compression" but needs framing beyond what
we define in this spec might come in the future. Then, we need to choose
either of break this 1:1 assignment or forbid it to use RSV1.

 

Example:

Sec-WebSocket-Extensions: perframe-compress; algorithm="foo; foo-param1=123,
bar; bar-param1=abc"; general-param1=xyz", ...

 

Example (with mux):

Sec-WebSocket-Extensions: perframe-compress; algorithm="... (algorithms for
pre-mux) ...", mux, perframe-compress; algorithm="... (algorithms for
post-mux) ..."

 

b) One extension for each per-frame compression algorithm

 

draft-ietf-hybi-websocket-perframe-compression defines

- a method how to frame data with per-frame compression including usage of
RSV1

- an extension "deflate-frame" which uses the framing method and how to
transforms data

 

RSV1 is given to any extension that does per-frame compression. Endpoints
need to sort out mutually exclusive extensions.

 

Any future per-frame compression extension may or may not refer to the
framing method defined in draft-ietf-hybi-websocket-perframe-compression.

 

Example:

Sec-WebSocket-Extensions: foo-compress; foo-param1=123, bar-compress;
bar-param-1=abc, ...

 

Example (with mux):

Sec-WebSocket-Extensions: ... (extensions for pre-mux) ...", mux, ...
(extensions for post-mux) ..."