Re: [hybi] Random Responses

Jamie Lokier <jamie@shareable.org> Sun, 12 April 2009 18:27 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 2AE873A6930 for <hybi@core3.amsl.com>; Sun, 12 Apr 2009 11:27:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.799
X-Spam-Level:
X-Spam-Status: No, score=-5.799 tagged_above=-999 required=5 tests=[AWL=-3.200, 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 FlRVGKAK-zHO for <hybi@core3.amsl.com>; Sun, 12 Apr 2009 11:27:54 -0700 (PDT)
Received: from mail2.shareable.org (mail2.shareable.org [80.68.89.115]) by core3.amsl.com (Postfix) with ESMTP id 507DC3A67EB for <hybi@ietf.org>; Sun, 12 Apr 2009 11:27:54 -0700 (PDT)
Received: from jamie by mail2.shareable.org with local (Exim 4.63) (envelope-from <jamie@shareable.org>) id 1Lt4QO-0001Dl-8n; Sun, 12 Apr 2009 19:29:00 +0100
Date: Sun, 12 Apr 2009 19:29:00 +0100
From: Jamie Lokier <jamie@shareable.org>
To: Mridul Muralidharan <mridulm80@yahoo.com>
Message-ID: <20090412182900.GA4394@shareable.org>
References: <377449.36122.qm@web95405.mail.in2.yahoo.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <377449.36122.qm@web95405.mail.in2.yahoo.com>
User-Agent: Mutt/1.5.13 (2006-08-11)
Cc: hybi@ietf.org
Subject: Re: [hybi] Random Responses
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: Sun, 12 Apr 2009 18:27:55 -0000

Mridul Muralidharan wrote:
> Yes, BEEP does fit the requirements discussed so far ...

BEEP doesn't meet the requirement for simple implementation because it
requires every implementation to parse XML.  HTTP does not.

Also BEEP's per-channel setup latency is rather large: one redundant
round trip.  Using BEEP for a simple HTTP request would take noticably
longer than HTTP itself on high latency networks.

> (not to mention support for flow control which becomes immediately
> necessary in bi-directional streams).

BEEP's flow control is sensible, but that's not the reason for it.

For bi-directional streams, TCP/IP's built in flow control is enough.

If you imagine a bi-directional HTTP (easy because requests and
responses are easily distinguished), it does not need any BEEP-style
flow control.  (I have implemented this).

BEEP-style per channel flow control is needed because of its ability
to multiplex multiple channels in the _same_ direction on a single
TCP/IP stream.  Without per-channel flow control you get deadlocks or
infinite buffering needed in some practical uses.

Unfortunately BEEPs per channel flow control is sensible, but it's per
channel setup is expensive both in needing XML and in network round
trip time.  It would be good to keep the flow control but use smarter
channel setup.

> Flip side would be, I am not sure if it is upgradable from HTTP with
> current infrastructure - other than through CONNECT that is.

It's not, but all protocols discussed can be overlaid onto the current
infrastructure using the HTTP hacks we use today (long GET etc.),
while giving new proxies the chance to recognise the overlaid protocol
and participate in it properly (dropping the hacks, proxying better).

Imho it would be good to discuss how we can overlay any new protocol
that we're talking about compatibly onto the existing HTTP infrastructure.

-- Jamie