Re: [rtcweb] Possible to lose initial messages sent by reliable, out-of-band negotiated data channels
T H Panton <thp@westhawk.co.uk> Fri, 15 June 2018 16:52 UTC
Return-Path: <thp@westhawk.co.uk>
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 CD40A130DFB for <rtcweb@ietfa.amsl.com>; Fri, 15 Jun 2018 09:52:35 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=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 6_qH_zo69pM6 for <rtcweb@ietfa.amsl.com>; Fri, 15 Jun 2018 09:52:33 -0700 (PDT)
Received: from smtp001.apm-internet.net (smtp001-out.apm-internet.net [85.119.248.222]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E6B7512F18C for <rtcweb@ietf.org>; Fri, 15 Jun 2018 09:52:32 -0700 (PDT)
Received: (qmail 11048 invoked from network); 15 Jun 2018 16:52:31 -0000
X-APM-Authkey: 255286/0(159927/0) 1564
Received: from unknown (HELO zimbra003.verygoodemail.com) (85.119.248.218) by smtp001.apm-internet.net with SMTP; 15 Jun 2018 16:52:31 -0000
Received: from localhost (localhost [127.0.0.1]) by zimbra003.verygoodemail.com (Postfix) with ESMTP id 56BA518A0236; Fri, 15 Jun 2018 17:52:31 +0100 (BST)
Received: from zimbra003.verygoodemail.com ([127.0.0.1]) by localhost (zimbra003.verygoodemail.com [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id pOoxPgjA7DRq; Fri, 15 Jun 2018 17:52:31 +0100 (BST)
Received: from [192.67.4.33] (unknown [192.67.4.33]) by zimbra003.verygoodemail.com (Postfix) with ESMTPSA id E805918A016F; Fri, 15 Jun 2018 17:52:30 +0100 (BST)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 11.4 \(3445.8.2\))
From: T H Panton <thp@westhawk.co.uk>
In-Reply-To: <9a5be20f-52e9-8ac7-f213-384f29a7bd28@gmail.com>
Date: Fri, 15 Jun 2018 17:52:30 +0100
Cc: rtcweb@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <F3074BA2-7BBF-4545-87AA-1529D1385FD4@westhawk.co.uk>
References: <CAK35n0bLdXMVOeh+R5EHegMT4+7eP0dWZ+-7Y82VJkTC4wk5QQ@mail.gmail.com> <4C57BFED-4A4D-4B9E-931A-173E1FE493DF@iii.ca> <CAK35n0a6Ua3YOJS1DfdsMDWuk4wW4vWdZfiUJDK8XinSQnb9NQ@mail.gmail.com> <5A43B371-5B53-4066-9C8C-AD64684DB357@iii.ca> <CAOJ7v-2j4Et19h++i8u_DS8tTbe52MkpyW_Ng6-MB2dJm8+aoQ@mail.gmail.com> <9a5be20f-52e9-8ac7-f213-384f29a7bd28@gmail.com>
To: Lennart Grahl <lennart.grahl@gmail.com>
X-Mailer: Apple Mail (2.3445.8.2)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/t5AbF5KSTPMwgFUjXcZU978K4hI>
Subject: Re: [rtcweb] Possible to lose initial messages sent by reliable, out-of-band negotiated data channels
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.26
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: <https://mailarchive.ietf.org/arch/browse/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, 15 Jun 2018 16:52:36 -0000
With my very old SNMP hat on, I say 1) you silently drop it. I'd also say that this indicates that the {negotiated:true, id:0} thing is a misfeature. T. > On 15 Jun 2018, at 17:44, Lennart Grahl <lennart.grahl@gmail.com> wrote: > > I would be fine with either Taylor's option 4) or Justin's option 2) by > raising an explicit error containing a stream ID. In the WebRTC spec, we > could then resolve this by adding an `error` event to the > `RTCSctpTransport` interface where the event would contain the stream ID > a message has been received on. > > Cheers > Lennart > > On 15.06.2018 18:28, Justin Uberti wrote: >> The key question is: what should the browser do if it gets a data channel >> message on a channel that it doesn't know about? >> >> I believe the only realistic options are: >> 1) eat it (silent failure) >> 2) explode (noisy but imprecise failure) >> >> >> On Fri, Jun 15, 2018 at 9:18 AM Cullen Jennings <fluffy@iii.ca> wrote: >> >>> >>> Can the browser take care of it from what it knows about setting up the >>> channel? >>> >>> On Jun 13, 2018, at 4:48 PM, Taylor Brandstetter <deadbeef@google.com> >>> wrote: >>> >>> It sounds like you and Christer are suggesting the same thing: "don't >>> allow messages to be sent until you're sure the other peer has a channel to >>> receive them". Except that there's no way for the WebRTC stack to know >>> that, since these channels are not signaled in SDP or any in-band message. >>> >>> On Wed, Jun 13, 2018 at 1:32 PM, Cullen Jennings <fluffy@iii.ca> wrote: >>> >>>> >>>> >>>> On May 31, 2018, at 12:24 PM, Taylor Brandstetter < >>>> deadbeef=40google.com@dmarc.ietf.org> wrote: >>>> >>>> One might expect that a "reliable" data channel is guaranteed to be, >>>> well, reliable. But in current implementations, the first messages may be >>>> lost if the application is negotiating the channels out-of-band, and >>>> creates the receiving channel too late. >>>> >>>> Here's a fiddle that demonstrates this (happens with Chrome and Firefox): >>>> https://jsfiddle.net/o2m8tp20/ >>>> >>>> Normally this isn't an issue, because a typical application would create >>>> the out-of-band negotiated channels before the first offer/answer is >>>> complete, and thus before the SCTP association is established. Meaning that >>>> by the time a data channel is "open", it's guaranteed that the other peer >>>> has a corresponding channel. >>>> >>>> But if for whatever reason, an application creates a data channel *after* >>>> the SCTP association is established, then it will instantly be "open" as >>>> soon as it's created. If a message is sent at this point, and it's received >>>> by the other peer before it's created its corresponding data channel, then >>>> the message will just be discarded. >>>> >>>> So, how should we deal with this? Some possibilities: >>>> >>>> 1. Say "this is expected behavior" and document it better, breaking >>>> the reliability promise. >>>> 2. Run the closing procedure if a message is received on a stream >>>> before a data channel is ready to receive it. >>>> 3. Don't even allow an out-of-band negotiated channel to be created >>>> after the SCTP association is established. >>>> 4. Buffer these messages for up to X seconds (or up to X bytes), to >>>> be delivered to the data channel once it's created. Run the closing >>>> procedure if X is exceeded. >>>> >>>> I'd vote for #2. Adding additional buffering logic seems like overkill if >>>> this isn't a use case we really intended to support. >>>> >>>> >>>> I lean toward something that just did not allow the out-of-band channel >>>> negotiation be used until it was set up. >>>> >>>> But whatever we do, not option 1 >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>> >>> _______________________________________________ >>> 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
- Re: [rtcweb] Possible to lose initial messages se… Justin Uberti
- Re: [rtcweb] Possible to lose initial messages se… Taylor Brandstetter
- Re: [rtcweb] Possible to lose initial messages se… Christer Holmberg
- Re: [rtcweb] Possible to lose initial messages se… Justin Uberti
- Re: [rtcweb] Possible to lose initial messages se… T H Panton
- [rtcweb] Possible to lose initial messages sent b… Lennart Grahl
- Re: [rtcweb] Possible to lose initial messages se… Justin Uberti
- Re: [rtcweb] Possible to lose initial messages se… Cullen Jennings
- Re: [rtcweb] Possible to lose initial messages se… Christer Holmberg
- Re: [rtcweb] Possible to lose initial messages se… Taylor Brandstetter
- Re: [rtcweb] Possible to lose initial messages se… Christer Holmberg
- Re: [rtcweb] Possible to lose initial messages se… Taylor Brandstetter
- Re: [rtcweb] Possible to lose initial messages se… Cullen Jennings
- [rtcweb] Possible to lose initial messages sent b… Taylor Brandstetter
- Re: [rtcweb] Possible to lose initial messages se… Christer Holmberg
- Re: [rtcweb] Possible to lose initial messages se… Taylor Brandstetter
- Re: [rtcweb] Possible to lose initial messages se… Lennart Grahl
- Re: [rtcweb] Possible to lose initial messages se… Justin Uberti
- Re: [rtcweb] Possible to lose initial messages se… Christer Holmberg