Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN

"Ejzak, Richard P (Richard)" <richard.ejzak@alcatel-lucent.com> Tue, 30 April 2013 15:57 UTC

Return-Path: <richard.ejzak@alcatel-lucent.com>
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 7C48C21F9900 for <rtcweb@ietfa.amsl.com>; Tue, 30 Apr 2013 08:57:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.599
X-Spam-Level:
X-Spam-Status: No, score=-10.599 tagged_above=-999 required=5 tests=[AWL=0.000, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
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 7r1RFhkmL7sU for <rtcweb@ietfa.amsl.com>; Tue, 30 Apr 2013 08:57:30 -0700 (PDT)
Received: from ihemail2.lucent.com (ihemail2.lucent.com [135.245.0.35]) by ietfa.amsl.com (Postfix) with ESMTP id 670BB21F9A7F for <rtcweb@ietf.org>; Tue, 30 Apr 2013 08:57:28 -0700 (PDT)
Received: from us70tusmtp2.zam.alcatel-lucent.com (h135-5-2-64.lucent.com [135.5.2.64]) by ihemail2.lucent.com (8.13.8/IER-o) with ESMTP id r3UFvOwY027469 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Tue, 30 Apr 2013 10:57:24 -0500 (CDT)
Received: from US70UWXCHHUB01.zam.alcatel-lucent.com (us70uwxchhub01.zam.alcatel-lucent.com [135.5.2.48]) by us70tusmtp2.zam.alcatel-lucent.com (GMO) with ESMTP id r3UFvNrw023551 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Tue, 30 Apr 2013 11:57:24 -0400
Received: from US70UWXCHMBA05.zam.alcatel-lucent.com ([169.254.10.44]) by US70UWXCHHUB01.zam.alcatel-lucent.com ([135.5.2.48]) with mapi id 14.02.0247.003; Tue, 30 Apr 2013 11:57:23 -0400
From: "Ejzak, Richard P (Richard)" <richard.ejzak@alcatel-lucent.com>
To: Randell Jesup <randell-ietf@jesup.org>, "rtcweb@ietf.org" <rtcweb@ietf.org>
Thread-Topic: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN
Thread-Index: AQHOPxk/vGZCo0bYYE+LkWxcJO5/cpjlwv8AgACZxICAAFNvAIABBywAgAAJMQCAAQ8YgIAAPkQAgAQ0J1CAAObXgIAAw6eA
Date: Tue, 30 Apr 2013 15:57:22 +0000
Message-ID: <03FBA798AC24E3498B74F47FD082A92F3BB9D580@US70UWXCHMBA05.zam.alcatel-lucent.com>
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> <517F0369.1050304@jesup.org>
In-Reply-To: <517F0369.1050304@jesup.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [135.5.27.16]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Scanned-By: MIMEDefang 2.57 on 135.245.2.35
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: Tue, 30 Apr 2013 15:57:36 -0000

> On 4/29/2013 6:34 PM, Randell Jesup wrote:
> 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.

For homogeneous apps, the choice of channel parameters can as easily be tied to the stream id as the label.   

The SCTP protocol id field should indicate the subprotocol being carried in the data channel, so I don't see the need to separately announce this. 

For non-homogeneous apps, there is no basis to negotiate anything until some standard subprotocols (beyond "raw data") are defined.  In some cases the subprotocol will dictate the channel parameters to be used (or will at least severely constrain the options), so defaults could be assumed in simple cases.  In most more complex cases you will need a real negotiation mechanism (instead of OPEN) since most protocols require negotiation of additional parameters that can't be expressed or negotiated using OPEN (e.g., the t.140 cps).

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

This might be useful for some homogeneous apps, but the repeated use of the word "might" in your text implies that this is not a necessity and that there are reasonable alternatives.

My real point is just that the justification for OPEN is weak and we could easily do without it (assuming the proper handling of the protocol id).  Please consider this as a friendly proposal to enhance/simplify the current DataChannel proposal that should be considered if there is enough support.

> 
> 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
> 
> 
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb