Re: [rtcweb] PPID, UTF-16 and DOMString (Re: RTCWEB Data Channel: Usage of PPID for protocol multiplexing)

Michael Tuexen <Michael.Tuexen@lurchi.franken.de> Sat, 08 February 2014 09:16 UTC

Return-Path: <Michael.Tuexen@lurchi.franken.de>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2AA5D1ADF44 for <rtcweb@ietfa.amsl.com>; Sat, 8 Feb 2014 01:16:57 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.086
X-Spam-Level:
X-Spam-Status: No, score=-2.086 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RP_MATCHES_RCVD=-0.535, SPF_HELO_PASS=-0.001] autolearn=ham
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id seennMCExbpc for <rtcweb@ietfa.amsl.com>; Sat, 8 Feb 2014 01:16:54 -0800 (PST)
Received: from mail-n.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) by ietfa.amsl.com (Postfix) with ESMTP id 9D3981ADF33 for <rtcweb@ietf.org>; Sat, 8 Feb 2014 01:16:53 -0800 (PST)
Received: from [192.168.1.200] (p54819A15.dip0.t-ipconnect.de [84.129.154.21]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTP id 1D0111C0B3E5C; Sat, 8 Feb 2014 10:16:52 +0100 (CET)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
From: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
In-Reply-To: <E1FE4C082A89A246A11D7F32A95A17826DFD4581@US70UWXCHMBA02.zam.alcatel-lucent.com>
Date: Sat, 08 Feb 2014 10:16:49 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <23A98499-FA93-472A-B762-92BF72EAC2F1@lurchi.franken.de>
References: <7594FB04B1934943A5C02806D1A2204B1D15E955@ESESSMB209.ericsson.se> <74072016-DA11-41E8-9944-779428163EE4@lurchi.franken.de> <7594FB04B1934943A5C02806D1A2204B1D15ED94@ESESSMB209.ericsson.se> <E1FE4C082A89A246A11D7F32A95A17826DFCF6C8@US70UWXCHMBA02.zam.alcatel-lucent.com> <B304F67A-9EA2-44A0-86DD-9DD0E21CB86F@lurchi.franken.de> <52F4182F.60404@alvestrand.no> <E1FE4C082A89A246A11D7F32A95A17826DFD40C3@US70UWXCHMBA02.zam.alcatel-lucent.com>, <CABkgnnXMYt7teSpxm7chTvQPR8ThKzKQ_bq3Po_FNFv2tdBFGQ@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B1D163B26@ESESSMB209.ericsson.se> <E1FE4C082A89A246A11D7F32A95A17826DFD4581@US70UWXCHMBA02.zam.alcatel-lucent.com>
To: "Makaraju, Maridi Raju (Raju)" <Raju.Makaraju@alcatel-lucent.com>
X-Mailer: Apple Mail (2.1510)
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] PPID, UTF-16 and DOMString (Re: RTCWEB Data Channel: Usage of PPID for protocol multiplexing)
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
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: Sat, 08 Feb 2014 09:16:57 -0000

On Feb 8, 2014, at 2:14 AM, "Makaraju, Maridi Raju (Raju)" <Raju.Makaraju@alcatel-lucent.com> wrote:

> That's good. Glad to see that no one liked the complex alternate option... yet! :-)
> I just put it there for completeness and some discussion.
> With "utf-8 on wire", which I too think is the right approach, there is some spec work todo:
> 1. Define IANA utf-8 ppid. Creating a new one is better instead of replacing existing DOMString as DOMString may be used by browsers for sometime to come and also to have backward compatibility/interworking.
> 2. Data channel core spec (http://tools.ietf.org/html/draft-ietf-rtcweb-data-channel-06#section-6.6) need to specify explictly the wire format is utf-8.
Anu objections?

If not, I'll put corresponding text into the spec.

Best regards
Michael
> 
> Then browsers need to do the conversion from utf-16 DOMstring to utf-8 before writing on wire also in the reverse direction. 
> 
> -Raju
> 
>> -----Original Message-----
>> From: Christer Holmberg [mailto:christer.holmberg@ericsson.com]
>> Sent: Friday, February 07, 2014 6:01 PM
>> To: Martin Thomson; Makaraju, Maridi Raju (Raju)
>> Cc: rtcweb@ietf.org
>> Subject: RE: [rtcweb] PPID, UTF-16 and DOMString (Re: RTCWEB Data Channel:
>> Usage of PPID for protocol multiplexing)
>> 
>> 
>> + 1
>> 
>> Regards,
>> 
>> Christer
>> 
>> ________________________________________
>> From: rtcweb [rtcweb-bounces@ietf.org] on behalf of Martin Thomson
>> [martin.thomson@gmail.com]
>> Sent: Saturday, 08 February 2014 1:45 AM
>> To: Makaraju, Maridi Raju (Raju)
>> Cc: rtcweb@ietf.org
>> Subject: Re: [rtcweb] PPID, UTF-16 and DOMString (Re: RTCWEB Data Channel:
>> Usage of PPID for protocol multiplexing)
>> 
>> I don't think that we need any complication here.  It's a string.
>> 
>> Strings are UTF-8 on the wire.
>> 
>> Strings are UTF-16 (mostly) in JavaScript.
>> 
>> Anything else would generate pain.
>> 
>> On 7 February 2014 14:01, Makaraju, Maridi Raju (Raju)
>> <Raju.Makaraju@alcatel-lucent.com> wrote:
>>>>>> Also, I think "DOMString" PPID is too specific to Javascript, instead
>> it
>>>> should probably have a generic name like "UTF-16 String". The send API
>> can
>>>> still use DOMString as this is Javascript API.
>>>>> Any comments from others?
>>>> 
>>>> Note: The WebSockets protocol defines the transferred strings as UTF-8.
>>>> http://tools.ietf.org/html/rfc6455#section-5.6
>>>> 
>>>> As far as I can tell, we've always intended to follow that example.
>>>> 
>>>> The fact that Javascript implementations currently choose to represent
>>>> text strings as UTF-16 at their API is sad, but not an argument for
>>>> sending that particular text representation over the wire, or reflecting
>>>> the name in the API.
>>> 
>>> [Raju] I agree that using UTF-8 is desired and more appropriate! Then,
>> should the PPID be changed from "DOMString" to "UTF-8"? Javascript based
>> apps have to use some library to do the conversion of DOMString/UTF-16 to
>> UTF-8. Alternatively, browsers can do this conversion under the APIs (send
>> and onmessage) before sending and after receiving UTF-8 PPID data.
>>> Without such conversion webrtc interworking between browsers and native
>> clients will be problematic (basically, will not work).
>>> 
>>> Another option, which is more flexible, is to define PPIDs for different
>> encodings like "UTF-8", "UTF-16" (or even "base64" for binary to text
>> instead of using "binary" directly); then pass this encoding information to
>> send() and onmessage() calls, which will use these PPIDs. Passing encoding
>> information might be implicit (like Javavscript DOMString) in most languages
>> by the type of the argument to send. This way it is upto the application to
>> deal with the encoding conversions as it see fits.
>>> 
>>> The latter approach is best suitable for interworking between clients of
>> similar type (web or native); but it is bit painful (to do conversions) for
>> clients of different types.
>>> 
>>> I am wondering what kind of API calls native WebRTC API stacks (e.g.
>> Google Chrome's http://www.webrtc.org/webrtc-native-code-package) provide
>> for data channel send/onmessage ()? UTF-16 strings? Or UTF-8?
>>> 
>>> -Raju
>>> 
>>> _______________________________________________
>>> rtcweb mailing list
>>> rtcweb@ietf.org
>>> https://www.ietf.org/mailman/listinfo/rtcweb
>> _______________________________________________
>> rtcweb mailing list
>> rtcweb@ietf.org
>> https://www.ietf.org/mailman/listinfo/rtcweb
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb
>