Re: [rtcweb] Possible to lose initial messages sent by reliable, out-of-band negotiated data channels
Justin Uberti <juberti@google.com> Fri, 15 June 2018 18:30 UTC
Return-Path: <juberti@google.com>
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 23CC4130DBE for <rtcweb@ietfa.amsl.com>; Fri, 15 Jun 2018 11:30:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.51
X-Spam-Level:
X-Spam-Status: No, score=-17.51 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.com
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 J5ol2itxm_-a for <rtcweb@ietfa.amsl.com>; Fri, 15 Jun 2018 11:30:53 -0700 (PDT)
Received: from mail-io0-x22b.google.com (mail-io0-x22b.google.com [IPv6:2607:f8b0:4001:c06::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 65EFB12F18C for <rtcweb@ietf.org>; Fri, 15 Jun 2018 11:30:53 -0700 (PDT)
Received: by mail-io0-x22b.google.com with SMTP id r24-v6so11524882ioh.9 for <rtcweb@ietf.org>; Fri, 15 Jun 2018 11:30:53 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=vzMSICnpItcb2vIV4nO3Euih144c1fTZuq2vrjQrazI=; b=A1Y3Q68QMdzhkuBF/zJzKFz30Fi5saEBAeEGQ4I2eKImnG3JY08FT83P3zKgDK/ttl 4fxZYlNbpN/Cu0iVolqleqDN0daOnecKnizT2mpx1s2ulGLPzya8BlSgYhHSvGOKcMwr hwW7qd2iD0EVhJTc3/vL9wJv2xC0ukU+o6xHED7QYaq+8zUKNswOxgqrIUT9Htousvf+ NI680uNH6tQBmBYHfXpuPllVqnDaSY8D3fmHUr0+Xil2uLC38dTup492RDMcEcqOX+n9 tfI965YvFpu1BUOx1Q6mVgew/Gy2EyUW5EP2i0lfeqLwK58Qhmw8AyhgJxwutN1eSklN mEhw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=vzMSICnpItcb2vIV4nO3Euih144c1fTZuq2vrjQrazI=; b=XwP7So06Eu+EfpKtel4ErPBaIP3J7+HzKpT/awdFUQkgU2qXX09DGauFLTude7CErw 7Zzl6Xzh53cnH6NNoPcjY2kvyHQZrT0IEbJaEfFlDt7bcVBFTeXr4dD76Z3Vu3qNjTYv iFVqjAuq8/PQiN8KOyOyPHQ48T+TQwdafGKQDDba0Ie4T6v5XB8A7qVdH6qThtNKALCF lshlh1LgWfhhPMzHXZ5Vnfj1gAWG9/f01IX5w/s54BjYAxvvGGRdZEc1FMjk7yZ6RO73 Wd4Wh3m8HQqsWculqhXdwsOTvCOHPsLYLvUIOVJzBH5Puxs4GhpDD3UKlOw+4Blctr87 whHg==
X-Gm-Message-State: APt69E3YaJA83dYlHJ4OApjs5lt/SWrmArbWgTFSKQy0hm0TkifAds29 dywcHFoMG4Z49452d0a2fFv8TpT8nPq9pS8ORrO+OA==
X-Google-Smtp-Source: ADUXVKIKj9uX14xX9+c0pAFHrIHjcEsqnuqDCBT/Jpk38VNfgcjUnPxUumChrfES+2BdiX9/tuAOWcCttUWnwEf5m0U=
X-Received: by 2002:a6b:3245:: with SMTP id y66-v6mr2348083ioy.87.1529087451978; Fri, 15 Jun 2018 11:30:51 -0700 (PDT)
MIME-Version: 1.0
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>
In-Reply-To: <9a5be20f-52e9-8ac7-f213-384f29a7bd28@gmail.com>
From: Justin Uberti <juberti@google.com>
Date: Fri, 15 Jun 2018 11:30:40 -0700
Message-ID: <CAOJ7v-0j2GPr8SyHnHPqTs1FvKxrKCS2fx-ir7vjfTGvzhkePg@mail.gmail.com>
To: Lennart Grahl <lennart.grahl@gmail.com>
Cc: RTCWeb IETF <rtcweb@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006861ba056eb26a84"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/5ZZg4w4cyD_wftED3Yig9I5MKbo>
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 18:30:56 -0000
To be clear, I tried to keep the same numbering as Taylor - my #2 "explode" option is the same as Taylor's #2 "run the closing procedure". On Fri, Jun 15, 2018 at 9:44 AM 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