Re: [rtcweb] Data channel: Handling of packets on unknown channels

Harald Alvestrand <harald@alvestrand.no> Tue, 10 July 2018 07:35 UTC

Return-Path: <harald@alvestrand.no>
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 5B803130E09 for <rtcweb@ietfa.amsl.com>; Tue, 10 Jul 2018 00:35:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level:
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, URIBL_BLOCKED=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 7XplCpb3po08 for <rtcweb@ietfa.amsl.com>; Tue, 10 Jul 2018 00:35:27 -0700 (PDT)
Received: from mork.alvestrand.no (mork.alvestrand.no [158.38.152.117]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 11BA9130DE0 for <rtcweb@ietf.org>; Tue, 10 Jul 2018 00:35:27 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mork.alvestrand.no (Postfix) with ESMTP id 7E7F37C0398 for <rtcweb@ietf.org>; Tue, 10 Jul 2018 09:35:25 +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 4TycRVPD6-dJ for <rtcweb@ietf.org>; Tue, 10 Jul 2018 09:35:23 +0200 (CEST)
Received: from [192.168.8.115] (177-49-11.connect.netcom.no [176.11.49.177]) by mork.alvestrand.no (Postfix) with ESMTPSA id 216217C010D for <rtcweb@ietf.org>; Tue, 10 Jul 2018 09:35:23 +0200 (CEST)
To: rtcweb@ietf.org
References: <5e7eebae-a08e-8c21-5c22-3b26b7385a7a@alvestrand.no> <4A875994-54C3-422B-8E6F-9284D273BE0E@lurchi.franken.de> <85a4defc-e432-eed3-f5fb-e1d0df2bf326@alvestrand.no> <87B266DF-5AE5-4B22-B21F-B2FC37EB3FF2@lurchi.franken.de> <596309ba-2aeb-7699-6bc6-ef7e461b5295@alvestrand.no> <2C11444C-6CC8-45E7-B699-02738D845BF0@lurchi.franken.de> <CAK35n0b2T+2omKfi-BeRM6pBz63FXbVGvQEF=2+i3rJf=c0HjQ@mail.gmail.com> <CAOJ7v-27yy18bibK2TWuCp5Yd+6QKp+7d5=B_PQDjpCkDr6MMw@mail.gmail.com>
From: Harald Alvestrand <harald@alvestrand.no>
Openpgp: preference=signencrypt
Autocrypt: addr=harald@alvestrand.no; prefer-encrypt=mutual; keydata= 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 pqHJkrqlWu+R9ZqBucZLqjQvQZk=
Message-ID: <975c5654-292a-8e66-c539-ec5533b544ac@alvestrand.no>
Date: Tue, 10 Jul 2018 09:35:22 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0
MIME-Version: 1.0
In-Reply-To: <CAOJ7v-27yy18bibK2TWuCp5Yd+6QKp+7d5=B_PQDjpCkDr6MMw@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------6A6FB6EA2709190CB0D569C4"
Content-Language: en-GB
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/rXS-vgbn7MO3qH4dWljFVB5Dlno>
Subject: Re: [rtcweb] Data channel: Handling of packets on unknown channels
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.27
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: Tue, 10 Jul 2018 07:35:30 -0000

On 06/29/2018 05:57 AM, Justin Uberti wrote:
> Taylor is correct. In that thread, we agreed that the PeerConnection
> doc should say "tough luck".

I read through that thread again (sorry for forgetting about it in my
initial message), and couldn't figure out what the exact semantics of
saying "tough luck" were.

I think the simplest thing on the protocol level is to drop the packets.

On the API level, we can add a warning saying "Note: If you don't make
sure the receiver has configured the datachannel before you send
packets, you risk losing some initial packets."

But we need to make sure the protocol machinery does exactly that (and
not, for instance, shut down the SCTP session), so that the warning is
correct.


>
> On Thu, Jun 28, 2018 at 10:38 AM Taylor Brandstetter
> <deadbeef=40google.com@dmarc.ietf.org
> <mailto:40google.com@dmarc.ietf.org>> wrote:
>
>     Note that I started a thread about this last
>     month: https://mailarchive.ietf.org/arch/msg/rtcweb/lIuiu91_L2nOh935eAqifrs_ius
>
>     On Thu, Jun 28, 2018 at 8:19 AM, Michael Tuexen
>     <michael.tuexen@lurchi.franken.de
>     <mailto:michael.tuexen@lurchi.franken.de>> wrote:
>
>
>
>         > On 28. Jun 2018, at 17:01, Harald Alvestrand
>         <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote:
>         >
>         > Den 28. juni 2018 16:35, skrev Michael Tuexen:
>         >>> On 28. Jun 2018, at 16:22, Harald Alvestrand
>         <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote:
>         >>>
>         >>> Den 28. juni 2018 14:51, skrev Michael Tuexen:
>         >>>>> On 28. Jun 2018, at 13:30, Harald Alvestrand
>         <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote:
>         >>>>>
>         >>>>> In considering the datachannel API, we encountered one
>         interesting race
>         >>>>> condition:
>         >>>>>
>         >>>>> A: <configure for datachannel>
>         >>>>>
>         >>>>> A: CreateOffer(), SetLocalDescription(), send SDP
>         >>>>>
>         >>>>> B: SetRemoteDescription, CreateAnswer,
>         SetLocalDescription, send SDP
>         >>>>>
>         >>>>> B: Configure an externally defined data channel, with #3249
>         >>>>>
>         >>>>> B: Send a message on #3249
>         >>>>>
>         >>>>> A: SetRemoteDescription
>         >>>>>
>         >>>>> A: Wait a while (THE PAUSE)
>         >>>>>
>         >>>>> A: Configure #3249
>         >>>>>
>         >>>>> Now, if a message comes in to A on #3249 during THE
>         PAUSE, what is the
>         >>>>> implementation to do?
>         >>>> Isn't that some kind or error condition?
>         >>>>
>         >>>> If that it true, one could apply:
>         >>>>
>         >>>>  If a message with an unsupported PPID is received or
>         some error
>         >>>>  condition related to the received message is detected by
>         the receiver
>         >>>>  (for example, illegal ordering), the receiver SHOULD
>         close the
>         >>>>  corresponding data channel.  This implies in particular that
>         >>>>  extensions using additional PPIDs can't be used without
>         prior
>         >>>>  negotiation.
>         >>>
>         >>>
>         >>> The receiver can't close the datachannel if the
>         datachannel doesn't
>         >>> exist yet, so this doesn't work for that case.
>         >> I was assuming that the SCTP receives a user message on a
>         stream. When
>         >> this message is delivered to its upper layer, doesn't this
>         layer know
>         >> that there is no data channel? I would assume that this
>         layer triggers
>         >> the stream reset procedure. I'm not saying that the user
>         (for example
>         >> via a JS API) is involved... I'm more talking about
>         implementing this
>         >> iside the browser..
>         >
>         >
>         > Exactly, it could close the stream, but it can't close the
>         data channel
>         > since it doesn't exist.
>         Well, I can run the procedure and the peer will get an
>         indication that
>         something isn't working well.
>         > 
>         > I think closing the stream would be a mistake, since that
>         would make the
>         > outcome about whether you end up with the datachannel or not
>         racy;
>         > discarding data will give you a working datachannel once A
>         gets around
>         > to configuring it.
>         But if the user configures a reliable data channel, the user
>         does not
>         get the service that was required...
>
>         Best regards
>         Michael
>         >
>
>         _______________________________________________
>         rtcweb mailing list
>         rtcweb@ietf.org <mailto:rtcweb@ietf.org>
>         https://www.ietf.org/mailman/listinfo/rtcweb
>
>
>     _______________________________________________
>     rtcweb mailing list
>     rtcweb@ietf.org <mailto:rtcweb@ietf.org>
>     https://www.ietf.org/mailman/listinfo/rtcweb
>
>
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb


-- 
Surveillance is pervasive. Go Dark.