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

Justin Uberti <juberti@google.com> Tue, 05 August 2014 00:19 UTC

Return-Path: <juberti@google.com>
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 E79101A0010 for <rtcweb@ietfa.amsl.com>; Mon, 4 Aug 2014 17:19:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.379
X-Spam-Level:
X-Spam-Status: No, score=-1.379 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=no
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 RqEKV46rVwx2 for <rtcweb@ietfa.amsl.com>; Mon, 4 Aug 2014 17:19:17 -0700 (PDT)
Received: from mail-vc0-x230.google.com (mail-vc0-x230.google.com [IPv6:2607:f8b0:400c:c03::230]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 611831A0AB5 for <rtcweb@ietf.org>; Mon, 4 Aug 2014 17:19:12 -0700 (PDT)
Received: by mail-vc0-f176.google.com with SMTP id id10so310061vcb.21 for <rtcweb@ietf.org>; Mon, 04 Aug 2014 17:19:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=ns4+VaMn7ZX+NjQrbnnlaXiGqhJ1I1qmcXv0xklfHDg=; b=DFNHSjOC6MtFkbNAtJo8V6C09wbCg1NitOvoZdaN+rk+1YbaW85xM6qmNSX2tA+nSU MNpy+Wm9j9/cV0gAz1Gl3kegsxg9Saq+pyfxY46mPG1taz5ufk9CuvQgONlbHynfGQzC FlO4P6NQiZoZ4tWpfZiXLQZylZxNpkY2pEOmTUEy4CX5rZV1E0SzlfCtEtVkjE3fO4BJ wCDcIBq1vj/f0a7zXJTufCqaLUFvs06vKB7rr0HZsNiLALrsBJBLk14WzvIn2kXd2Zgg ppIhiIJBbnavZmGMVjAboJ1zgDoron5FSgsRCSV3t/NyxoyZW/3liX5fDft9JPu+XCPl Rzkw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=ns4+VaMn7ZX+NjQrbnnlaXiGqhJ1I1qmcXv0xklfHDg=; b=OsVlPLpL0gU50Gf5nC8+kblh42fEUC0wMHQ5cvJ0Uuc+qw8pAPgFuWDYusVtrgSa/t LVHFwn6x1eRI/NksEZ2X6HaVUB0ACtevmJrmNzr2NaIDCfwDCuPuvILUD1z0EkwoReR7 lfQGUZvlWZEpT7pRgVsZI+bl2Q4kwQCKvN3nNSVHGn+DelFylkMHj9eEzh4H2dYnx9B4 w8Nrbd9xsNy5u3/is2PdLJEhFl/EEjp7gpN8W821q0M8X183XHbIVzQwbWOgoOon7HYp 0RmB4Y/VXIXXoPD+Uygpo6Gk5SDAUgXjIJDe63t9zuFaIS1vFdCAkQN0WxsZM3Pu73tb SY6A==
X-Gm-Message-State: ALoCoQnHsLaLBEdKRRXdTQViUUsjrR+c9jZwizQChnjy8ywwMt3ETb09uuIsQZlf87NrIf5+b/2o
X-Received: by 10.221.9.72 with SMTP id ov8mr132914vcb.27.1407197951457; Mon, 04 Aug 2014 17:19:11 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.52.133.193 with HTTP; Mon, 4 Aug 2014 17:18:51 -0700 (PDT)
In-Reply-To: <E1FE4C082A89A246A11D7F32A95A17828E4EC8B4@US70UWXCHMBA02.zam.alcatel-lucent.com>
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> <53DDFEC1.3020907@alvestrand.no> <E1FE4C082A89A246A11D7F32A95A17828E4EC8B4@US70UWXCHMBA02.zam.alcatel-lucent.com>
From: Justin Uberti <juberti@google.com>
Date: Mon, 04 Aug 2014 17:18:51 -0700
Message-ID: <CAOJ7v-32Omf9mJR5g7VXtURBv9vqmicn0s845DfBi-AHvJkLAw@mail.gmail.com>
To: "Makaraju, Maridi Raju (Raju)" <Raju.Makaraju@alcatel-lucent.com>
Content-Type: multipart/alternative; boundary="089e0117772106ba2504ffd6cefc"
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/SZENwrMJbpvbkCsGU7DFFFywRo0
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
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: Tue, 05 Aug 2014 00:19:19 -0000

On Mon, Aug 4, 2014 at 11:08 AM, Makaraju, Maridi Raju (Raju) <
Raju.Makaraju@alcatel-lucent.com> wrote:

>
>
>
>
> *>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.
>
>  *<Raju2> *
>
> *I am afraid there is some confusion about my comment and as a result we
> may be talking about dummy bytes at 2 different levels: app level and
> underlying protocol level.*
>
> *I am aware of many protocols using reserved bits, bytes, padded
> bits/bytes, protocol-level heartbeats/PING-PONGs (SCTP heartbeats use of
> opaque data). In all these cases the mechanism is built into the protocol
> below app-level protocol itself with no direct involvement of
> application-level protocol. My comment was in the context of
> application-level protocol. *
>
> *If app calls send() 3 times with data “abc”, “” (empty/null data with
> size 0) and then “xyz” then on the wire in the application-level payload
> you see “abc” <dummy byte> “xyz”.*
>
> *So, can you please point to me a protocol where this kind of dummy
> byte(s) are inserted in between application payload?*
>
>
>
> *Btw, If you leave the app choice to send the byte (using OOB_PPID) then
> there is a possibility for the app to send 256 distinct values instead of
> browser hard-coding the byte to zero always, which just conveys a single
> value.*
>
>
>
> *</Raju2>*
>
>
>

What value would this provide to justify the increased complexity?


>
> *>PPID_OOB would make the compatibility problem worse, not better.*
> *<Raju2>*
>
> *I would appreciate if you can provide reasons on why PPID_OOB making
> compatibility worse?*
>
> *With PPID_OOB, apps have a choice to negotiate (this negotiation is like
> any other negotiation for webrtc.) and use this option. PPID_EMPTY option
> seems to be enabled always and no way to turn-off. *
>
> *Without an option to turn off PPID_EMPTY, you will get into more
> compatibility issues as some webrtc implementations may not implement it on
> day one; a native client could be using an interim version of a popular
> webrtc lib; or it might be using its own webrtc lib, in which case we can’t
> expect it to implement all these later-adders in a timely manner.*
>
>
> I doubt this will be a real-world problem, given that the protocol is
still evolving and all implementations need to keep up, but if this turns
out to be an issue we can negotiate it in SDP.