Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN

Randell Jesup <randell-ietf@jesup.org> Mon, 29 April 2013 23:34 UTC

Return-Path: <randell-ietf@jesup.org>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 284F621F9BCD for <rtcweb@ietfa.amsl.com>; Mon, 29 Apr 2013 16:34:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 H0EPaE1rqzCx for <rtcweb@ietfa.amsl.com>; Mon, 29 Apr 2013 16:34:04 -0700 (PDT)
Received: from r2-chicago.webserversystems.com (r2-chicago.webserversystems.com [173.236.101.58]) by ietfa.amsl.com (Postfix) with ESMTP id 2DC3A21F9BBC for <rtcweb@ietf.org>; Mon, 29 Apr 2013 16:34:03 -0700 (PDT)
Received: from 173-164-135-225-sfba.hfc.comcastbusiness.net ([173.164.135.225]:50471 helo=[10.1.10.57]) by r2-chicago.webserversystems.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.80) (envelope-from <randell-ietf@jesup.org>) id 1UWxa7-000F0K-36 for rtcweb@ietf.org; Mon, 29 Apr 2013 18:34:03 -0500
Message-ID: <517F0369.1050304@jesup.org>
Date: Mon, 29 Apr 2013 16:34:01 -0700
From: Randell Jesup <randell-ietf@jesup.org>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Thunderbird/21.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <066.3120a55540cacaa74ee5fda0b5273a48@trac.tools.ietf.org> <5174C8D2.40504@matthew.at> <5177F7EE.1010909@matthew.at> <CAJrXDUGa1=Nqq9WPL57=OkUU9mG7yHz0uzG1KncS8yVzbSAM0A@mail.gmail.com> <AE1A6B5FD507DC4FB3C5166F3A05A484162816C1@tk5ex14mbxc272.redmond.corp.microsoft.com> <C5E08FE080ACFD4DAE31E4BDBF944EB11349F9B5@xmb-aln-x02.cisco.com> <5179A362.2000309@jesup.org> <517A86CB.5020305@matthew.at> <517ABB06.5070807@jesup.org> <03FBA798AC24E3498B74F47FD082A92F3BB9C130@US70UWXCHMBA05.zam.alcatel-lucent.com>
In-Reply-To: <03FBA798AC24E3498B74F47FD082A92F3BB9C130@US70UWXCHMBA05.zam.alcatel-lucent.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: quoted-printable
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - r2-chicago.webserversystems.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - jesup.org
Subject: Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 29 Apr 2013 23:34:10 -0000

On 4/29/2013 7:11 AM, Ejzak, Richard P (Richard) wrote:
> After remaining neutral during most of this discussion about the need for OPEN, I've finally come to the conclusion that Matthew is right.  The only thing the OPEN provides is the label, which is just an opaque string with no meaning to the browser or any intermediaries.  It only has application significance.  If this is the case, why not just use stream id?  What can you possibly do with label that you can't do with pre-assigned stream ids (this is a serious question to Randell since it is fundamental to whether we need OPEN)?  Since label only has meaning when both browsers run the same application, what does it matter if you agree on a set of opaque strings to correspond to various functions or just agree on a set of stream ids for these functions?  It doesn't change the complexity of the code and it doesn't even change the readability of the code if you just enumerate the reserved stream ids and "label" them in the code.

ok, multi-point response:

Please review the proposed JS API & dictionary posted here and the W3 
list a while ago (4 weeks?)

1) Label isn't the only data transmitted in the Open message. Protocol 
(which is particularly important to inter-operating apps, though can 
still be useful for homogenous apps), and also having the channel 
parameters be symmetric.  Channels don't have to be symmetric, but if 
they aren't then the receiver of the initial data would need to know by 
some external method what the reverse channel parameters should be, and 
then do operations to set it to the appropriate transfer mode.

2) labels can specify some easy tags for the channel.  For example, in a 
"Hangout", if the server opens up a private chat channel on behalf of 
another participant, it might do "pc.createDataChannel("Tom", { 
protocol: "application/funkychat"});".    The server might also open one 
with a label "Sarah", etc.  I also envisioned (in this mailing list) an 
FTP-like file transfer setup where the label is the filename being 
transferred.  (Think dragging a directory of files onto your chat 
session to transfer to the other person.)

That said, you can always push anything signaled in Open into an initial 
message in an ordered reliable channel.  When it's NOT ordered and 
reliable, then it gets more complex for the application to get initial 
setup done for simple uses (retries to handle packet loss, 
in-application acks, out-of-order delivery, etc, just to set up the 
channel, or run a separate reliable negotiation channel (more likely), 
which would need to be at least 1RTT to avoid races with trying to use 
the unreliable channel before it's set up, etc.  Yes, applications can 
deal with all this, but some applications will want a simple JS API and 
simple setup.  And it will be tough to get right in a 0-RTT use for 
non-reliable channels.

3) I proposed something similar to your proposal a year ago, and 
discussion and comments from people expecting to use this convinced me 
to adapt the protocol proposal to include label (in particular comments 
from Justin Uberti, but there were others).   Perhaps some of them can 
chime in, as I can only do so well at describing how they intend or hope 
to use label.  The other major piece, protocol, was added at the strong 
request from the people in the room at IETF Atlanta.

Matthew's proposal is effectively little different than Martin's 
proposal from IETF Orlando (or Matthew's assumed proposal, as his 
comments aren't exactly an alternative proposal and some of the comments 
imply a different model with an RTMFP-like initial packet (i.e. 
Open....).  Per the minutes and earlier comments here, the agreement was 
to adopt the Open draft, and not proceed with either of the two 
alternatives given.  I'll leave how to resolve this issue to the chairs, 
and until told otherwise will continue to work on turning the personal 
draft into a WG document.  (And re-iterate my comments from before - I 
think we have a solution here that everyone can work with, even if it's 
not everyone's first choice.)



-- 
Randell Jesup
randell-ietf@jesup.org