Re: [hybi] Multiplexing extension spec draft 03

"Arman Djusupov" <arman@noemax.com> Tue, 27 March 2012 14:06 UTC

Return-Path: <arman@noemax.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 D4B3321E8201 for <hybi@ietfa.amsl.com>; Tue, 27 Mar 2012 07:06:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.379
X-Spam-Level:
X-Spam-Status: No, score=-2.379 tagged_above=-999 required=5 tests=[AWL=0.219, BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 40sY0tqgwAHX for <hybi@ietfa.amsl.com>; Tue, 27 Mar 2012 07:06:56 -0700 (PDT)
Received: from mail.noemax.com (mail.noemax.com [64.34.201.8]) by ietfa.amsl.com (Postfix) with ESMTP id B15BE21E81FC for <hybi@ietf.org>; Tue, 27 Mar 2012 07:06:55 -0700 (PDT)
Received: from vista1 by mail.noemax.com (IceWarp 9.4.1) with ASMTP (SSL) id LRH73254; Tue, 27 Mar 2012 17:06:54 +0300
From: Arman Djusupov <arman@noemax.com>
To: 'Takeshi Yoshino' <tyoshino@google.com>
References: <CAH9hSJb1ewPO3EBgD78anD+=4XouToGR4X7C1wvWqonc2nYB6g@mail.gmail.com> <000301cd05dd$c8f9fc70$5aedf550$@noemax.com> <CAH9hSJYni6BboWdjkLX9xsguph7wJwjAmTUD1genFzT0ja5Wdw@mail.gmail.com> <003b01cd08d8$b1dd7050$159850f0$@noemax.com> <CAH9hSJYmL1ngaEJ1Th1kye2WKvJ4-zup1qbHCPLs+6MBOtS4Fg@mail.gmail.com> <001201cd0c06$3e9b3ab0$bbd1b010$@noemax.com> <CAH9hSJY1=KR-BrYUM-ACMVEVcb9+SMKH4fnoEfkyxu+6P4AwJA@mail.gmail.com>
In-Reply-To: <CAH9hSJY1=KR-BrYUM-ACMVEVcb9+SMKH4fnoEfkyxu+6P4AwJA@mail.gmail.com>
Date: Tue, 27 Mar 2012 17:06:48 +0300
Message-ID: <002c01cd0c22$dd9e8fb0$98dbaf10$@noemax.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_002D_01CD0C3C.02EBC7B0"
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQJyksDj69tXg0EBn6jyTi4rbdnguwGRJ3ibAhBToZcCh7t1pgGkm8LGAowvP5UCsn+LAZTKuhbw
Content-Language: en-us
Cc: hybi@ietf.org
Subject: Re: [hybi] Multiplexing extension spec draft 03
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: Tue, 27 Mar 2012 14:06:56 -0000

 

 

From: Takeshi Yoshino [mailto:tyoshino@google.com] 
Sent: Tuesday, March 27, 2012 3:35 PM
To: Arman Djusupov
Cc: hybi@ietf.org
Subject: Re: [hybi] Multiplexing extension spec draft 03

 

Hi,

 

On Tue, Mar 27, 2012 at 12:41, Arman Djusupov <arman@noemax.com> wrote:

Client-mux intermediary-servers is just one specific use case, once which is
required by browsers. Consider for example a MMO game engine that also uses
mux between the client application and server poo, where the mux
intermediary does not simply bundle and unbundle channels but is designed
specifically for the game requirements and has specific logic on how to
forward each channel based on the channel ID or other criteria. We can
assume that in such cases an incompatible intermediary is not expected to
occur on the wire between the client and server. So the specification is not
required to prohibit the bundling/unbundling of the logical channel or the
change of channel ID.

 

So, ... your point is that we should clarify which side assigns a channel
ID, and then you can divert WebSocket for such an application which gives
special meaning for each channel ID. Right?

 

My question is whether you're suggesting that we explicitly mention/allow
the use of channel IDs from application level or not.

 

think we should and if there is an intermediary that messes up with channel
IDs or completely strips off the mux, it would be normal for such an
application to fail (so such an application would require that there is no
de-multiplexing intermediary in between). Using fixed channel IDs like
TCP/IP port numbers is optional, there are alternative ways to negotiate the
protocol used by the logical channel using the AddChannel request handshake.
But the general idea is that Yes the application layer should be permitted
to access a specific logical channel by ID, protocol or other criteria, at
least the specification should not require that logical channels are
completely abstracted from the application layer. 

BTW it still unclear which of the communicating sides assigns a channel ID
when an AddChannel request is sent. Since the Objective Channel ID can be
sent both ways, what should be the Objective Channel ID for an AddChannel
request message?

 

Sorry. Yes, I'll do this clarification. My understanding is that the
AddChannel request specifies the channel ID for the new logical channel by
putting the ID in the Objective Channel ID part.

 

This is fine with me J

It's ok with me if the channel ID cannot be assigned by the client side,
since the application may identify the type of the channel by the first
message sent through the channel. This may cause an extra roundtrip, but it
is not a big deal if we implement some way of opening multiple logical
connections at once

We may allow clients to send some value meaning "undefined" in the Objective
Channel ID part to get ID assigned by the server with AddChannel response.
For now, I'm not going to put this in the spec because of additional
complexity.

 

Both options are OK with me.