Re: [hybi] Is there a traffic jam?

Greg Wilkins <gregw@webtide.com> Tue, 14 April 2009 02:16 UTC

Return-Path: <gregw@webtide.com>
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 58BEC3A698D for <hybi@core3.amsl.com>; Mon, 13 Apr 2009 19:16:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.541
X-Spam-Level:
X-Spam-Status: No, score=-2.541 tagged_above=-999 required=5 tests=[AWL=0.058, BAYES_00=-2.599]
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 XbdoNjX3RuCA for <hybi@core3.amsl.com>; Mon, 13 Apr 2009 19:16:04 -0700 (PDT)
Received: from ti-out-0910.google.com (ti-out-0910.google.com [209.85.142.189]) by core3.amsl.com (Postfix) with ESMTP id 15D5D3A685D for <hybi@ietf.org>; Mon, 13 Apr 2009 19:15:50 -0700 (PDT)
Received: by ti-out-0910.google.com with SMTP id 11so56244tim.25 for <hybi@ietf.org>; Mon, 13 Apr 2009 19:17:01 -0700 (PDT)
Received: by 10.110.14.12 with SMTP id 12mr9712982tin.17.1239675421618; Mon, 13 Apr 2009 19:17:01 -0700 (PDT)
Received: from ?10.10.1.12? (60-242-119-126.tpgi.com.au [60.242.119.126]) by mx.google.com with ESMTPS id y5sm1231767tia.29.2009.04.13.19.16.58 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 13 Apr 2009 19:17:00 -0700 (PDT)
Message-ID: <49E3F218.4080209@webtide.com>
Date: Tue, 14 Apr 2009 12:16:56 +1000
From: Greg Wilkins <gregw@webtide.com>
User-Agent: Thunderbird 2.0.0.21 (X11/20090409)
MIME-Version: 1.0
To: hybi@ietf.org
References: <03BCE29D-7AA5-4128-9F61-446E0229479A@lindenlab.com> <E51D5B15BFDEFD448F90BDD17D41CFF105A0C46E@AHQEX1.andrew.com> <Pine.LNX.4.62.0904132352430.10339@hixie.dreamhostps.com> <E51D5B15BFDEFD448F90BDD17D41CFF105A0C476@AHQEX1.andrew.com> <Pine.LNX.4.62.0904140002360.10339@hixie.dreamhostps.com> <1cb725390904131712k292a4860pbd078bb251d3855b@mail.gmail.com> <Pine.LNX.4.62.0904140031040.10339@hixie.dreamhostps.com> <1cb725390904131752u5842c039wb3d75602c479fa45@mail.gmail.com> <Pine.LNX.4.62.0904140053050.10339@hixie.dreamhostps.com> <49E3E229.2060907@webtide.com> <Pine.LNX.4.62.0904140110040.10339@hixie.dreamhostps.com>
In-Reply-To: <Pine.LNX.4.62.0904140110040.10339@hixie.dreamhostps.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Subject: Re: [hybi] Is there a traffic jam?
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: Tue, 14 Apr 2009 02:16:05 -0000

Ian Hickson wrote:
 > A simple protocol doesn't preclude more complex APIs, or multiplexing.


Ian,

Of course arbitrarily complex protocols can be tunnelled over
websocket.

But we can already tunnel arbitrary protocols over HTTP, so if
the ability to transport arbitrary protocols is sufficient, then
we are already there and nothing new is needed.

The question is - can we do something better than tunnelling
over HTTP.

To be frank, I'd actually rather use HTTP has a basis
than websocket.    The websocket wire protocol appears to
have focused on byte squeezing at the expense of meta data
and extensibility.

Byte-squeezing is simply not a pain point that I'm
experiencing while deploying bidirection webapplications.
Even the latency benefits of websocket are more perceived
benefits than any measurable improvement in average latency.

The pain points I'm having deploying bidirectional webapplications
are mostly about sharing connections:

  1) How to stop a browser sharing a connection by queuing
     normal requests behind long polled requests.
  2) How to share limited connections between
     widgets/frames/tabs/windows.
  3) How to limit the growth of connections on the server.


Websocket potentially helps with #1, but only if upgraded connections
are excluded from connection accounting (obvious to do, but not
sure if that is specified anywhere?).

Websocket doesn't help with #2 and #3 at all.  In fact it probably
makes it worse.  While individual connections are bidirectional, each
widgets will be able to each initiate their own websocket connection to
their own backend handling.  So the end result is likely to be a lot
more unshared connection.


cheers