Re: [hybi] first draft of WS mux extension

"Len Holgate" <len.holgate@gmail.com> Mon, 24 October 2011 09:09 UTC

Return-Path: <len.holgate@gmail.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 14C4321F8CBF for <hybi@ietfa.amsl.com>; Mon, 24 Oct 2011 02:09:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.599
X-Spam-Level:
X-Spam-Status: No, score=-3.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, 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 7ZCT2Zv2uxLZ for <hybi@ietfa.amsl.com>; Mon, 24 Oct 2011 02:09:06 -0700 (PDT)
Received: from mail-ww0-f44.google.com (mail-ww0-f44.google.com [74.125.82.44]) by ietfa.amsl.com (Postfix) with ESMTP id 085B521F8B1A for <hybi@ietf.org>; Mon, 24 Oct 2011 02:09:05 -0700 (PDT)
Received: by wwe6 with SMTP id 6so6047870wwe.13 for <hybi@ietf.org>; Mon, 24 Oct 2011 02:09:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:references:subject:date:message-id:mime-version :content-type:content-transfer-encoding:x-mailer:in-reply-to :thread-index:x-mimeole; bh=ozd3o0jxYt7hLXyw93OUtb9J7ruZacy/zL1QCNlY3lo=; b=yHxVzFfIQPZIplQSxPb6CY2lfzmYFxixofZ9rwmXaj4e5o1nx0F5nMKua8KtGuDlm5 TO1icFS/bHryguRaRYZTbCkF/oXT+0g30LHroey+8SAUsSWs4wo22YjW6wGa6O6JQ8hx yYD3wCBp8tEIG/mtg0vzvy7TVB+QvdphM1mBM=
Received: by 10.216.229.14 with SMTP id g14mr4530373weq.6.1319447345065; Mon, 24 Oct 2011 02:09:05 -0700 (PDT)
Received: from Venus (cpc8-glfd6-2-0-cust3.6-2.cable.virginmedia.com. [86.27.228.4]) by mx.google.com with ESMTPS id fi11sm37769883wbb.9.2011.10.24.02.09.03 (version=SSLv3 cipher=OTHER); Mon, 24 Oct 2011 02:09:04 -0700 (PDT)
From: Len Holgate <len.holgate@gmail.com>
To: 'John Tamplin' <jat@google.com>
References: <CABLsOLB3gqQgo0myNkHxGmvr5P55GeKqaUPnYP9RgnUsiVM++g@mail.gmail.com> <CALiegfmc=01Uw0eLZES=WGtWVBKPjQLz3itiPL4TPVwy5mZFmQ@mail.gmail.com> <CABLsOLDi-rXcDp9k_+bkMBrmswY-QbHkqXLKT+2wOQ7Y0ry0VQ@mail.gmail.com> <CALiegf=Tcbys=ekrg3=BdzToy7uw08UmtpmWzZh1ikDxww_4qQ@mail.gmail.com> <CALiegfnTiVLKh6Dvc_7U4oN2YOR5VgH7_YPc-O1WpygU8=gCbw@mail.gmail.com> <CABLsOLBH_b19CH8mfXF7mqE23YZ5skvprk77JD++dpW6DzfvJA@mail.gmail.com> <21c201cc921f$bbd76a00$0a00a8c0@Venus> <CABLsOLAMoa4C6o3nT+NmsS97ifTFgxRSW6SWGXtZrZ7MiPOM8g@mail.gmail.com> <21d301cc9227$26c55c30$0a00a8c0@Venus> <CABLsOLBkjZrRiw6bD=f51+u7m6OyJU8SZpsT=4r3uTW17HEUew@mail.gmail.com>
Date: Mon, 24 Oct 2011 10:09:12 +0100
Message-ID: <21e801cc922c$99b712b0$0a00a8c0@Venus>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
X-Mailer: Microsoft Office Outlook 11
In-Reply-To: <CABLsOLBkjZrRiw6bD=f51+u7m6OyJU8SZpsT=4r3uTW17HEUew@mail.gmail.com>
Thread-Index: AcySK10XctWYtPLFQRKkR7cetPCqAwAADXuw
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3664
Cc: 'Hybi' <hybi@ietf.org>
Subject: Re: [hybi] first draft of WS mux extension
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: Mon, 24 Oct 2011 09:09:07 -0000

It means that any existing websocket implementation can support the mux
extension without needing to change the implementation at all, it could all
be implemented above the base protocol layer. This means that if an
implementation has a pluggable extension mechanism anyone, mux can be
implemnted now rather than when the implementation has been changed to
support it. 

I think it would be good practice to try and avoid changing the base
protocol for every extension. Avoiding changes to the base protocol will
likely see more support for various extensions as they'll be easier to
implement.

Your intermediary example doesn't work IMHO. Right now, if the intermediary
doesn't understand the mux extension it MUST fail the connection. If the
base protocol is unchanged then the intermediary can allow the mux extension
and ignore the frame contents, perhaps it's simply applying compression, or
SSL, or stripping masking, or routing via a non websocket transport, or
whatever, it can do all of that without understanding the mux extension.
Only an intermediary that wants to inspect data need worry about the fact
that it doesn't understand the mux extension in this case and if the
intermediary DOES want to inspect payload data and DOES understand the mux
extension then the changes are similar (it needs to understand that the
channel id and per channel FIN bit are in the extension data, rather than
just the channel id).

Len 

> -----Original Message-----
> From: John Tamplin [mailto:jat@google.com] 
> Sent: 24 October 2011 10:00
> To: Len Holgate
> Cc: Hybi
> Subject: Re: [hybi] first draft of WS mux extension
> 
> On Mon, Oct 24, 2011 at 4:30 AM, Len Holgate 
> <len.holgate@gmail.com> wrote:
> 
> 
> 	No, you'd just use the existing framing in the base 
> protocol and all
> 	fragments would have the FIN bit set. Thus any channel 
> can interleave
> 	without changing any rules from the base protocol. 
> You'd then have a single
> 	FIN bit in the extension data, before the channel id, 
> which acts as the fin
> 	bit for this channel's data.
> 	
> 	Your example in 7 becomes
> 	
> 	81 06 [FIN BIT HERE = 0]01 "Hello" 81 04 [FIN BIT HERE 
> = 1]02 "bye" 81 07
> 	[FIN BIT HERE = 1]01 " world"
> 
> 
> Then those same intermediaries would have to understand the 
> MUX extension in order to do anything with frames anyway -- I 
> don't see what this gains.
> 
> -- 
> John A. Tamplin
> Software Engineer (GWT), Google
> 
>