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

Harald Alvestrand <harald@alvestrand.no> Fri, 20 July 2012 05:33 UTC

Return-Path: <harald@alvestrand.no>
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 5139221F84EE for <rtcweb@ietfa.amsl.com>; Thu, 19 Jul 2012 22:33:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.084
X-Spam-Level:
X-Spam-Status: No, score=-110.084 tagged_above=-999 required=5 tests=[AWL=0.514, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
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 2nLeaxmW1zfX for <rtcweb@ietfa.amsl.com>; Thu, 19 Jul 2012 22:33:25 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id B493721F84EC for <rtcweb@ietf.org>; Thu, 19 Jul 2012 22:33:24 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id D17D039E179 for <rtcweb@ietf.org>; Fri, 20 Jul 2012 07:34:17 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id g2l-LYmPnVRb for <rtcweb@ietf.org>; Fri, 20 Jul 2012 07:34:15 +0200 (CEST)
Received: from [IPv6:2001:470:de0a:27:221:6aff:fe8f:cf14] (unknown [IPv6:2001:470:de0a:27:221:6aff:fe8f:cf14]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id 7E92339E091 for <rtcweb@ietf.org>; Fri, 20 Jul 2012 07:34:15 +0200 (CEST)
Message-ID: <5008EDD7.60801@alvestrand.no>
Date: Fri, 20 Jul 2012 07:34:15 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120615 Thunderbird/13.0.1
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <03FBA798AC24E3498B74F47FD082A92F1770A313@US70UWXCHMBA04.zam.alcatel-lucent.com>
In-Reply-To: <03FBA798AC24E3498B74F47FD082A92F1770A313@US70UWXCHMBA04.zam.alcatel-lucent.com>
Content-Type: multipart/alternative; boundary="------------050904020408070303070608"
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: Fri, 20 Jul 2012 05:33:27 -0000

One particular thread about this, the idea of "purpose":

I believe that standardizing a semantic for "purpose", and trying to 
encode that into a short integer field such as PPID, is an architectural 
mistake in protocols where the set of possible purposes is unlimited.

The protocol needs to make sure the two ends can agree on the identity 
of a channel, and that the characteristics of the channel (for instance 
unreliable/reliable, binary-transparent/non-binary-transparent, 
priority, capacity....) are known, as far as they can be. We should not 
try to encode "purpose".

Without a defined semantic for "purpose", any such field is just a 
strange encoding of more data bytes, and is better carried as part of 
the application-dependent payload.

I have opinions about the other points too, but I would like to get rid 
of the notion of encoding "purpose" in the data channel protocol.

On 07/19/2012 06:26 PM, Ejzak, Richard P (Richard) wrote:
>
> I have concerns about the data channel protocol as defined in 
> draft-jesup-rtcweb-data-protocol-02.txt 
> <http://www.ietf.org/mail-archive/web/rtcweb/current/msg04885.html> 
> and suggest that this could be a worthwhile topic for discussion in 
> Vancouver:
>
>  1. It requires many messages to be exchanged before any actual user
>     data is sent.
>  2. It is used to set up bidirectional channels whereas a simpler
>     convention might serve the same purpose without need of messaging
>     (e.g., use of the same stream identifier in both directions).
>  3. No mechanism has been defined to allow the application to specify
>     the purpose of a data channel.  In particular, no mechanism is
>     defined to allow the application to specify the payload protocol
>     id (other than ascii/binary).
>  4. Data channel characteristics must be specified in advance for all
>     data carried on a data channel, whereas SCTP allows these
>     characteristics to be controlled dynamically per chunk of
>     transmitted data.  So new channels need to be unnecessarily
>     created and destroyed dynamically to accommodate different
>     characteristics.
>  5. Data channels emulate websockets and are limited by the websockets
>     model rather than leveraging the capabilities of SCTP and
>     specifying functionality useful for data channels.
>
> Why do we need any data channel protocol at all?  It is just a 
> redundant exchange of information about SCTP protocol options that can 
> be communicated by SCTP itself with each block of data, i.e., let's 
> turn this into an API issue and not a protocol issue.
>
> Why don't we instead specify the API to allow the application to 
> select the SCTP transmission characteristics (including stream id, 
> ppid, ordered, reliable, etc.) needed per data block to be 
> transmitted.  Alternately, the API could specify and then allow 
> changes to these characteristics for a channel to influence the SCTP 
> protocol options selected without initiating a data channel protocol 
> negotiation or requiring release of the channel.
>
> Either approach would allow new ppid's to be assigned as needed for 
> applications to indicate the purpose of each data chunk (or sequence 
> of data chunks) to be transmitted.  The application will be able to 
> send data with the desired reliability characteristics immediately 
> without waiting to exchange setup messages.  And each data channel can 
> be repurposed dynamically without requiring signaling to release and 
> renegotiate channel characteristics.
>
> Richard
>
>
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb