Re: [rtcweb] data channel protocol comments and potential agenda topic

Randell Jesup <randell-ietf@jesup.org> Mon, 23 July 2012 06:53 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 6286121F84A0 for <rtcweb@ietfa.amsl.com>; Sun, 22 Jul 2012 23:53:20 -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 uKPtIJ9TjfCI for <rtcweb@ietfa.amsl.com>; Sun, 22 Jul 2012 23:53:19 -0700 (PDT)
Received: from r2-chicago.webserversystems.com (r2-chicago.webserversystems.com [173.236.101.58]) by ietfa.amsl.com (Postfix) with ESMTP id 9724F21F849D for <rtcweb@ietf.org>; Sun, 22 Jul 2012 23:53:16 -0700 (PDT)
Received: from pool-173-49-141-60.phlapa.fios.verizon.net ([173.49.141.60] helo=[192.168.1.12]) by r2-chicago.webserversystems.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from <randell-ietf@jesup.org>) id 1StCW3-0001sN-0D for rtcweb@ietf.org; Mon, 23 Jul 2012 01:53:15 -0500
Message-ID: <500CF488.1070306@jesup.org>
Date: Mon, 23 Jul 2012 02:51:52 -0400
From: Randell Jesup <randell-ietf@jesup.org>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20120713 Thunderbird/14.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <03FBA798AC24E3498B74F47FD082A92F1770A313@US70UWXCHMBA04.zam.alcatel-lucent.com> <500A9A7B.8050400@ericsson.com> <03FBA798AC24E3498B74F47FD082A92F1771C06D@US70TWXCHMBA12.zam.alcatel-lucent.com> <500C2708.6040704@ericsson.com> <82DE409C-7669-49B9-AC2C-8834F626C39A@lurchi.franken.de>
In-Reply-To: <82DE409C-7669-49B9-AC2C-8834F626C39A@lurchi.franken.de>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
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
X-Source:
X-Source-Args:
X-Source-Dir:
Subject: Re: [rtcweb] data channel protocol comments and potential agenda topic
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, 23 Jul 2012 06:53:20 -0000

On 7/22/2012 3:54 PM, Michael Tuexen wrote:
> On Jul 22, 2012, at 6:15 PM, Stefan Hakansson LK wrote:
>
>> On 07/22/2012 05:08 PM, Ejzak, Richard P (Richard) wrote:
>>> I grant you that the API discussion belongs in W3C.  I don't propose
>>> to ignore the websocket API, but surely some adaptations could be
>>> considered (in W3C) if they have potential to bring advantages.
>>>
>>> But several other points I made are unrelated to the design of the
>>> API and do belong in rtcweb.  In particular, it should be possible to
>>> create a data channel (once the SCTP association is established)
>>> without the use of a data channel control protocol and without
>>> requiring it to be pre-specified in SDP.  This is my main suggestion.
>> I think, if doable, that is a good idea. However, I think the authors determined that the data channel control protocol was needed (but Randell/Salvatore/Michael know the details).
> The data channel protocol is required, because:
> * a channel is bi-directional and we need a mechanism to handle collisions.
> * a channel has symmetric properties (like partial reliability
>    policy, partial reliability parameter, priority, ordered/unordered.
>    These need to be communicated.
> If channels are unidirectional, things get much simpler...

Correct.  My initial proposal was a much thinner layer around 
unidirectional SCTP streams, but people clearly preferred bidirectional 
channels, and in particular ones that echo the API (at the W3 level) of 
WebSockets, and I see the appeal and usefulness of that, including the 
"wait until onopen" characteristic - it makes it easy to substitute 
DataChannels for WebSockets and vice-versa (so long as the DataChannel 
doesn't *need* unreliability, and can function with a reliable 
channel).  It's an API that Web authors are comfortable with.

> Please note, that the data channel protocol is not that complex
> (it is basically a three-way handshake), and it is not required
> that the initiator delays sending user messages until the
> handshake is completed. You can actually send the first user message
> right after the first message of the handshake. They could even
> get bundled on the wire. However, this requires that the JS API
> allow this and I think the W3C voted against this.

Correct.  The protocol is *very* simple.  I'll note that my current 
draft indicates signaling for DataChannels that would at least be 
extendable (at the IETF/SDP level) to allowing other/alternate SCTP 
associations on the same DTLS channel, running other protocols, though 
for W3 WebRTC there would be a single one running the DataChannel protocol.

-- 
Randell Jesup
randell-ietf@jesup.org