Re: [hybi] Extensibility mechanisms?

Jamie Lokier <jamie@shareable.org> Mon, 19 April 2010 09:17 UTC

Return-Path: <jamie@shareable.org>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E608D3A695C for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 02:17:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.567
X-Spam-Level:
X-Spam-Status: No, score=-2.567 tagged_above=-999 required=5 tests=[AWL=-1.827, BAYES_20=-0.74]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id SnXTzbUYB4gr for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 02:17:48 -0700 (PDT)
Received: from mail2.shareable.org (mail2.shareable.org [80.68.89.115]) by core3.amsl.com (Postfix) with ESMTP id C07093A692B for <hybi@ietf.org>; Mon, 19 Apr 2010 02:17:46 -0700 (PDT)
Received: from jamie by mail2.shareable.org with local (Exim 4.63) (envelope-from <jamie@shareable.org>) id 1O3n6n-0007ch-1k; Mon, 19 Apr 2010 10:17:37 +0100
Date: Mon, 19 Apr 2010 10:17:37 +0100
From: Jamie Lokier <jamie@shareable.org>
To: Adam Barth <ietf@adambarth.com>
Message-ID: <20100419091736.GA28758@shareable.org>
References: <Pine.LNX.4.64.1004161952530.751@ps20323.dreamhostps.com> <4BC96A0D.4080904@webtide.com> <Pine.LNX.4.64.1004180246380.751@ps20323.dreamhostps.com> <4BCAB2C1.2000404@webtide.com> <B9DC25B0-CD21-44E7-BD9B-06D0C9440933@apple.com> <Pine.LNX.4.64.1004181812370.751@ps20323.dreamhostps.com> <4BCB6641.70408@webtide.com> <Pine.LNX.4.64.1004182010070.751@ps20323.dreamhostps.com> <4BCB6FD0.7080003@webtide.com> <j2n5c4444771004181403o81184b00r294f3c3b878f24f6@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <j2n5c4444771004181403o81184b00r294f3c3b878f24f6@mail.gmail.com>
User-Agent: Mutt/1.5.13 (2006-08-11)
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] Extensibility mechanisms?
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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, 19 Apr 2010 09:17:50 -0000

Adam Barth wrote:
> On Sun, Apr 18, 2010 at 1:47 PM, Greg Wilkins <gregw@webtide.com> wrote:
> > Ian Hickson wrote:
> > Intermediaries can know about websocket framing and so long as
> > all sub protocols and extensions are restricted to adhere to
> > websocket framing, then intermediaries can continue to work
> > regardless of sub protocols.
> 
> I'm not sure I buy the premise that we want intermediaries to
> understand and/or interfere with the websocket protocol.  It seems
> more robust and more secure to establish a point-to-point encrypted
> tunnel between the user agent and the server.

More secure, but higher latency and slower.

Going by the "each application on each open web page should open its
own connection" approach, and encrypted tunnels enforcing that, as
well as enforcing TLS setup latency for each one, *much* slower than
HTTP.  Not to mention the torrent of idle keepalives with so many
connections.

Less robust - I put together an alternative to Ian's "tic tac toe"
using long-GET HTTP.  It's a similar amount of code with a similar
structure, and as far as I can tell fails in all the exact same
scenarios, except for one: The HTTP version keeps working after a NAT
or SPI router times out in the middle.  The WebSocket version breaks
at that point, because it won't detect the broken TCP connection or
create a new one.

One of the not so obvious strengths of HTTP, which probably wasn't
deliberate design, is it recovers well from contemporary TCP-breaking
routers.

-- Jamie