Re: [hybi] Multiplexing extension spec draft 02

John Tamplin <jat@google.com> Wed, 08 February 2012 18:35 UTC

Return-Path: <jat@google.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 2379A21F858E for <hybi@ietfa.amsl.com>; Wed, 8 Feb 2012 10:35:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.976
X-Spam-Level:
X-Spam-Status: No, score=-102.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
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 MPkLKkyHVRst for <hybi@ietfa.amsl.com>; Wed, 8 Feb 2012 10:35:13 -0800 (PST)
Received: from mail-qy0-f172.google.com (mail-qy0-f172.google.com [209.85.216.172]) by ietfa.amsl.com (Postfix) with ESMTP id BEFFF21F855B for <hybi@ietf.org>; Wed, 8 Feb 2012 10:35:13 -0800 (PST)
Received: by qcsg13 with SMTP id g13so566020qcs.31 for <hybi@ietf.org>; Wed, 08 Feb 2012 10:35:13 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:x-system-of-record:content-type; bh=f3C401FJbH2Y8N7Mza4AwTK8Oh1u0mj6QgBHWO2VDlQ=; b=unTDjZeQQpI7nivVLiymAAfDsrD4PmFdsP6doMe1uLMdznQlJChEUPkWoLtKHYcidA 9ZiwyRXRrPrbCodl9HiZi2AnE//3/cfQLu9r0SMdsy2jyH8zf0VoJkcl1wcUzxTVujdt Rhq6o3jHH+g07PETxqKk38ueuK/QGNx2qm9ik=
Received: by 10.229.102.75 with SMTP id f11mr11561822qco.49.1328726113287; Wed, 08 Feb 2012 10:35:13 -0800 (PST)
Received: by 10.229.102.75 with SMTP id f11mr11561813qco.49.1328726113187; Wed, 08 Feb 2012 10:35:13 -0800 (PST)
MIME-Version: 1.0
Received: by 10.229.134.72 with HTTP; Wed, 8 Feb 2012 10:34:53 -0800 (PST)
In-Reply-To: <004801cce4b1$b8534130$28f9c390$@noemax.com>
References: <CAH9hSJbXqeESMGHZ6cBi+=44hT7DNJLER=S5jOHdzhUwHC1XnA@mail.gmail.com> <004801cce4b1$b8534130$28f9c390$@noemax.com>
From: John Tamplin <jat@google.com>
Date: Wed, 08 Feb 2012 13:34:53 -0500
Message-ID: <CABLsOLC7GR_FtYtVG5EE=_+CWZa2dE-AHRSxrqB_af6tKpfmfg@mail.gmail.com>
To: Arman Djusupov <arman@noemax.com>
X-System-Of-Record: true
Content-Type: multipart/alternative; boundary="002354470c70faf81f04b8782708"
Cc: hybi@ietf.org
Subject: Re: [hybi] Multiplexing extension spec draft 02
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: Wed, 08 Feb 2012 18:35:15 -0000

On Mon, Feb 6, 2012 at 4:28 AM, Arman Djusupov <arman@noemax.com> wrote:

> “Any compression extensions negotiated apply only to the channel they are
> negotiated on -- therefore, any compression extension in the initial
> handshake applies only to logical channel 1.  If WebSocket payload data is
> masked by a per-frame key, such masking is applied to frames for each
> logical channel separately.”
>
> **
>
> ** **
>
> Providing the ability to specify a compression extension per sub-channel
> greatly increases the complexity of the implementation. I believe it would
> be simpler if the compressed logical channels were grouped in a compressed
> connection, while the logical channels that do not need compression were
> grouped in a separate non-compressed connection. Maintaining a DEFLATE
> window per sub-channel is very expensive, doing so could eliminate all the
> benefits of multiplexing.
>
> **
>
> But if you believe that there is a strong use case for per channel
> compression, then we could support both options (common compression and per
> channel) by having logical channel 1 perform its own handshake rather than
> using the initial handshake for it.
>
The rationale was that an intermediate MUX would otherwise have to
decompress inbound channels and recompress the combined channel, which
seems a waste.  I agree that in the browser case, where the individual
channels never exist separately, it would be better to do compression only
on the physical channel.

So, it seems like we need to have options for either behavior.

-- 
John A. Tamplin
Software Engineer (GWT), Google