Re: [rtcweb] Sending of zero-length messages over data channels

Harald Alvestrand <harald@alvestrand.no> Sun, 03 August 2014 09:20 UTC

Return-Path: <harald@alvestrand.no>
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 9EA671A0295 for <rtcweb@ietfa.amsl.com>; Sun, 3 Aug 2014 02:20:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-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 S7FZjESQWeRh for <rtcweb@ietfa.amsl.com>; Sun, 3 Aug 2014 02:20:08 -0700 (PDT)
Received: from mork.alvestrand.no (mork.alvestrand.no [IPv6:2001:700:1:2::117]) by ietfa.amsl.com (Postfix) with ESMTP id 7A6301A0292 for <rtcweb@ietf.org>; Sun, 3 Aug 2014 02:20:07 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mork.alvestrand.no (Postfix) with ESMTP id 8BABF7C3F0B for <rtcweb@ietf.org>; Sun, 3 Aug 2014 11:20:04 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at alvestrand.no
Received: from mork.alvestrand.no ([127.0.0.1]) by localhost (mork.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wESMNOfX4Cyi for <rtcweb@ietf.org>; Sun, 3 Aug 2014 11:20:02 +0200 (CEST)
Received: from [IPv6:2001:470:de0a:27:b1bc:6a86:83f5:2db3] (unknown [IPv6:2001:470:de0a:27:b1bc:6a86:83f5:2db3]) by mork.alvestrand.no (Postfix) with ESMTPSA id CCFA57C3F08 for <rtcweb@ietf.org>; Sun, 3 Aug 2014 11:20:01 +0200 (CEST)
Message-ID: <53DDFEC1.3020907@alvestrand.no>
Date: Sun, 03 Aug 2014 11:20:01 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <CAOJ7v-0F9pysYLehjTVDv1Sxz3TKaxi2y6J7RrpGqMdA=tiR_g@mail.gmail.com> <E1FE4C082A89A246A11D7F32A95A17828E4BCC13@US70UWXCHMBA02.zam.alcatel-lucent.com> <CAOJ7v-1r-vToAf-rUfZmKsBC4MX4ZXUcAkqahrskF1D3axOpuA@mail.gmail.com> <E1FE4C082A89A246A11D7F32A95A17828E4C5974@US70UWXCHMBA02.zam.alcatel-lucent.com> <CAOJ7v-1VPP8iAz+gr9h98QUzZnBVna84yPqtc0JZR=ehGgJL0A@mail.gmail.com> <E1FE4C082A89A246A11D7F32A95A17828E4C5E94@US70UWXCHMBA02.zam.alcatel-lucent.com> <CAOJ7v-2SkB3Pqctpu1S_wMY2b6jdOYyz8KxAYLA-q++2WdUbYw@mail.gmail.com> <E1FE4C082A89A246A11D7F32A95A17828E4C61A5@US70UWXCHMBA02.zam.alcatel-lucent.com>
In-Reply-To: <E1FE4C082A89A246A11D7F32A95A17828E4C61A5@US70UWXCHMBA02.zam.alcatel-lucent.com>
Content-Type: multipart/alternative; boundary="------------060003050403050500050205"
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/n6RETYgKGSoqIsS-N_nSslP8Heg
Subject: Re: [rtcweb] Sending of zero-length messages over data channels
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: Sun, 03 Aug 2014 09:20:12 -0000

On 07/24/2014 10:25 PM, Makaraju, Maridi Raju (Raju) wrote:
>
> */In conclusion, I think websocket API supports zero length because 
> websocket protocol supports zero-length data frames. So, it does not 
> have the issue of 'bufferedAmount' discrepancy. /*
>
> *//*
>
> Yes, that is what I meant.
>
> */<Raju>/*
>
> */Ok, good. Websocket is not sending any dummy bytes, so 
> /**/bufferedAmount is always accurate./*
>
> */I am still not convinced that to keep data channel API consistent 
> with websocket API we need to introduce of dummy byte!?/*
>
> */How about keeping consistency of what goes on wire vs. what user 
> sent? websocket preserves that, where as data channel won't. /*
>

The WebSocket protocol is not on-the-wire compatible with the 
DataChannel protocol.
This has not been a design goal, and I don't see any reason to make it one.

> *//*
>
> */IMHO opinion, sending such a dummy byte may have other consequences:/*
>
> */1./**/App is not aware of what's going on? send() probably meant to 
> be called with non-empty data, but some error leg could have caused it 
> become empty, but still a byte will be sent out!!/*
>
> */2./**/Debugging becomes bit more complex and not intuitive. WebRTC 
> is already complex, why add more complexity?/*
>
> */3./**/Interop issues. The more the exceptions the more the interop 
> issues you see as some implementations may overlook these or implement 
> them later./*
>
> *//*
>
> */It's usually a bad idea to send a dummy byte on wire, without the 
> application direct involvement./*
>

I recommend spending some time with Wireshark looking at actual traces 
before making any such statement. Many protocols have dummy bytes, for 
many different reasons.

> *//*
>
> */IMHO, if doing PPID_OOB is more effort and can't fit in webrtc 1.0 
> then it would be better to delay and do it in more proper way than 
> taking a shortcut with PPID_EMPTY. With PPID_OOB approach underlying 
> signaling protocol can negotiate OOB before using it; though such 
> negotiation is not mandatory, but this approach allows such possibility./*
>

/*PPID_OOB would make the compatibility problem worse, not better.*/
>
> *//*
>
> *//*
>
> */I then, rest my case! /**/J/**//*
>
> *//*
>
> */</Raju>/*
>
>
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb