Re: [rtcweb] Data Channel Protocol: Prevent DATA_CHANNEL_OPEN glare

Michael Tuexen <Michael.Tuexen@lurchi.franken.de> Mon, 10 February 2014 10:36 UTC

Return-Path: <Michael.Tuexen@lurchi.franken.de>
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 3CC701A07DD for <rtcweb@ietfa.amsl.com>; Mon, 10 Feb 2014 02:36:36 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, RP_MATCHES_RCVD=-0.548, SPF_HELO_PASS=-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 5Q1vSfoBugej for <rtcweb@ietfa.amsl.com>; Mon, 10 Feb 2014 02:36:33 -0800 (PST)
Received: from mail-n.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) by ietfa.amsl.com (Postfix) with ESMTP id 1E3A81A00AE for <rtcweb@ietf.org>; Mon, 10 Feb 2014 02:36:33 -0800 (PST)
Received: from [192.168.1.200] (p54819372.dip0.t-ipconnect.de [84.129.147.114]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTP id 858031C0B404D; Mon, 10 Feb 2014 11:36:32 +0100 (CET)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\))
From: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B1D166D7B@ESESSMB209.ericsson.se>
Date: Mon, 10 Feb 2014 11:36:34 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <71288EED-3C82-44A7-950B-EFEFA62616E6@lurchi.franken.de>
References: <7594FB04B1934943A5C02806D1A2204B1D166CFA@ESESSMB209.ericsson.se> <4616BFFA-F461-4CE8-9D85-211B86D4BE93@lurchi.franken.de> <7594FB04B1934943A5C02806D1A2204B1D166D7B@ESESSMB209.ericsson.se>
To: Christer Holmberg <christer.holmberg@ericsson.com>
X-Mailer: Apple Mail (2.1510)
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Data Channel Protocol: Prevent DATA_CHANNEL_OPEN glare
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: Mon, 10 Feb 2014 10:36:36 -0000

On Feb 10, 2014, at 11:21 AM, Christer Holmberg <christer.holmberg@ericsson.com> wrote:

> Hi,
> 
>>> As is defined in the data channel protocol, an entity can send data once DATA_CHANNEL_OPEN has been sent, before the associated DATA_CHANNEL_ACK is received.
>>> 
>>> The draft also says that, if both endpoints send DATA_CHANNEL_OPEN at the same time, using different stream id values, the result may be TWO data channels, with data sent on both.
>>> 
>>> However, as is also indicated, the draft does not provide a mechanism to prevent/handle such glare situation.
>>> 
>>> I personally think there shall be a way to prevent such situation, or otherwise I'm sure we are going to end up with interoperability problems.
>>> 
>>> Couldn't we e.g. say that, by default, the DTLS client is responsible for sending the DATA_CHANNEL_OPEN? Then there is no risk for glare, and it could even use both an even or odd stream id value.
>> Section 4 reads:
>> 
>>  To avoid glare in opening Channels, each side MUST use either even or
>>  odd Streams when sending a DATA_CHANNEL_OPEN message.  The method
>>  used to determine which side uses odd or even is based on the
>>  underlying DTLS connection role when used in WebRTC, with the side
>>  acting as the DTLS client using even stream identifiers.
>> 
>> So there is no problem in setting up data channels.
>> 
>> This should not be confused by both sides setting up a data channel with the same Label. This ends up in two data channels with the same label.
>> You can even create more data channels with the same label.
> 
> My point is that I don't want to end up with more than one channel.
And you won't, see above. However, there is no mechanism to ensure
uniqueness for labels. The WebRTC API already allows one side
to create n data channels with the same label.

Best regards
Michael
> 
> Regards,
> 
> Christer
> 
>