Re: [hybi] Random Responses

Mridul Muralidharan <mridulm80@yahoo.com> Sun, 12 April 2009 19:21 UTC

Return-Path: <mridulm80@yahoo.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 E10DA3A6B21 for <hybi@core3.amsl.com>; Sun, 12 Apr 2009 12:21:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.668
X-Spam-Level:
X-Spam-Status: No, score=-1.668 tagged_above=-999 required=5 tests=[AWL=-0.465, BAYES_00=-2.599, MIME_QP_LONG_LINE=1.396]
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 RLox+5T7hfoB for <hybi@core3.amsl.com>; Sun, 12 Apr 2009 12:21:13 -0700 (PDT)
Received: from n11-vm0.bullet.mail.in.yahoo.com (n11-vm0.bullet.mail.in.yahoo.com [202.86.4.227]) by core3.amsl.com (Postfix) with SMTP id D6B953A6965 for <hybi@ietf.org>; Sun, 12 Apr 2009 12:21:11 -0700 (PDT)
Received: from [202.43.219.99] by n11.bullet.mail.in.yahoo.com with NNFMP; 12 Apr 2009 19:22:20 -0000
Received: from [203.104.18.50] by t3.bullet.in.yahoo.com with NNFMP; 12 Apr 2009 19:22:20 -0000
Received: from [127.0.0.1] by omp111.mail.in2.yahoo.com with NNFMP; 12 Apr 2009 19:22:20 -0000
X-Yahoo-Newman-Property: ymail-3
X-Yahoo-Newman-Id: 584332.92588.bm@omp111.mail.in2.yahoo.com
Received: (qmail 84180 invoked by uid 60001); 12 Apr 2009 19:15:39 -0000
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1239563739; bh=krHpE6w3yQlXh5i1PM4HHWO6vMp7ebLAts7K9B/4+AA=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding; b=r6rWxnnEaaniGJgQB042XRiZSli9EONhOz3O8KrDxtNPEuqZRV2m3dMVp/jR4K9XwVw6wDmuZ05S1CUUmyWxsXMe4PeyQwkKlphVzGuEQYNCeiEYhlIcEEkGDksV1wY/5Q8UlNIzRqzVuX1lcIvK+7DTEALqJgdfGt0J6pecjkg=
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Subject:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding; b=5Fe1+1ojGwuM+4pf3fiBOJUuqs8D3NNfx6WsCBCu0eaDq1VGfL8QIP/OjYhJ6GTJf5b6TckUp505u/jOT7uFGnVYPO4UPygtvDEnlS2LGs76EvonQ/P335TyT0g77Rjl7WhYPEs6MnilqyHIoMfpjTGPEvLBiY60GpVmmaHTch0=;
Message-ID: <605442.82172.qm@web95416.mail.in2.yahoo.com>
X-YMail-OSG: qDeU3kcVM1mvjD05gUhifw7zVMmfE16HLk_yEVyRJVPXKlPnpZtcDH1rFCdC0PCtTiG.Kt9dCgKE6pdJkQFravqUD52P1PxaBewu2gMj5rrfSeHPgq9_SQN39VmMy4e38t6Yt0LO4dxgtwL83jLSX7id.hruHfZY5Dkju40ebJ17PPN_73b0Jnzdqq_97WOH_JmnV9odUjao9g--
Received: from [122.167.176.126] by web95416.mail.in2.yahoo.com via HTTP; Mon, 13 Apr 2009 00:45:39 IST
X-Mailer: YahooMailClassic/5.2.15 YahooMailWebService/0.7.289.1
Date: Mon, 13 Apr 2009 00:45:39 +0530
From: Mridul Muralidharan <mridulm80@yahoo.com>
To: Jamie Lokier <jamie@shareable.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
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 19:21:14 -0000


--- On Sun, 12/4/09, Jamie Lokier <jamie@shareable.org> wrote:

> From: Jamie Lokier <jamie@shareable.org>
> Subject: Re: [hybi] Random Responses
> To: "Mridul Muralidharan" <mridulm80@yahoo.com>
> Cc: "Mark Lentczner" <markl@lindenlab.com>, "Greg Wilkins" <gregw@webtide.com>, hybi@ietf.org
> Date: Sunday, 12 April, 2009, 11:59 PM
> 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.


The usecases discussed are not one request/response per socket case, but a significantly longer (in time) channel - so the setup overhead mentioned would not be that significant.
For simple request/response, http is fine - for really really simple (few bytes) request/response, even http can be quite an overhead, but that is not the point :-)

> 
> > (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.

I think you are assuming a request/response modal - where in server does not 'read' next request until previous one has been processed and response sent ?


Consider the following needs :

a) Multiple widgets talking to server and vice versa - so, hopefully, sharing connection. (else the cost if really high in terms of number of connections, etc)
b) Not limit to just request/response based modal, but also including event/notifications which dont require an ack..


Not to mention corner case handling like error detection/recovery due to abrupt connection loss, etc.



> 
> 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).

Please see above.

> 
> 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.


See above on why this might be needed in HTTP case too.

> 
> 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.


Use of XML, though sensible, is just part of BEEP framing.
Not sure why XML parsing is an issue, but we can always replace it in other means to carry metadata - for example, the meta-data getting exchanged is representable in HTTP header form too imo (*) - 

http style headers (if required) \r\n
raw content



(*) The headers could include both the framing rules and flow control rules. Since I was not involved in BEEP design, or not very intimately involved in using BEEP, not if this is a valid assertion though.)

> 
> > 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.


Yes, this might be the key issue - getting it to inter-operate might outweigh other considerations, atleast initially.
This was probably the only reason why we stuck had used BOSH's long poll based approach to other possibilities.

Regards,
Mridul



> 
> -- Jamie
> 


      Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/