Re: [rtcweb] Opening unordered data channel issue

Justin Uberti <> Thu, 22 August 2013 17:13 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A687E21F93F8 for <>; Thu, 22 Aug 2013 10:13:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.977
X-Spam-Status: No, score=-1.977 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, NO_RELAYS=-0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 2MlYvxxSm324 for <>; Thu, 22 Aug 2013 10:13:02 -0700 (PDT)
Received: from ( [IPv6:2607:f8b0:4003:c02::231]) by (Postfix) with ESMTP id 2F5AA21F9950 for <>; Thu, 22 Aug 2013 10:12:59 -0700 (PDT)
Received: by with SMTP id n10so4008469oag.36 for <>; Thu, 22 Aug 2013 10:12:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=ZarqSWCw3bul3KSrtOAnxiuIKBuvj62juVyjEllawI0=; b=JweNHwKyj+lXIJLVKAOKYzmg7E7q5w+6fb599c2ieLcNYXdF0jVxQGlcdCieblKSd1 uQCy1LYUazMoqu3CPlAlmDrQ0iFEhHsQ+T2MCc20//6y8AzOQUa9NWGOKlIEPXMpU5Fl Qc1NpegjW8vqmq2e/WXcLFZxHpyc3hHm3gTAFpShwH8GI8cwIaP9woOwJTiRyuXftoGh 55L8zg0tlOvwv6+Qm/6C7KmHwnc3GupkLHPF7//BHoQYpmIzYlY9ckCXuyWn8oog7P4w UotWfdjyDx4RENWa67ZNLSIb8kuWfA2AHeX55vVyfYvQ1oGGtq6kIgFQSazKrWvaGKjF cq2A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=ZarqSWCw3bul3KSrtOAnxiuIKBuvj62juVyjEllawI0=; b=eJuU8t1pdgVMRk07pr49a9yR8BAXKPdfWWlJ94JUp1RqbJ66GI1Jxp58rnxuBWXQt5 60fxTDhztQFR1X3xVCgB2f0LxbvLauOyxFcN3kcLHO5+70dQU1gIJMsB772sd7tFn6u8 vLF+NxlakDBXblis8KdFvrOM2SjVs6hJmtLOfHHc7KwBNVHfC8uv+YIrejN5ORZ7RWvH DwFCMasU1Oe745cQGtvYMIMg9IXKCij1zFalzEua85Cv7iQo29lB25giDsmJpx6poyOr tkSCHGcpU7OFyfdHB9yq2YWLGIt0VnFaAkmUKGonViGRhecn9ncolAa1JAltuzA4gNiL 29kw==
X-Gm-Message-State: ALoCoQmNq7MrQ5HE7Eq1quMxVjScWDe+3ygqpUdUHwYl01WUNh5kAOo4FVkGrdJcQGW/nKWGtWQrVOfJ+OnMTjOHQkBAD13UeP1hAUKwJzpFVtizKDaJpE/dE2spoGP+/FLDCJHusXXSmdFRIgtLW9+w2TTIfQIcNqLTiHW5wvODXISIDwZZqutk4EWo0CXRKQg2HJwQujrK
X-Received: by with SMTP id e6mr15608443obm.14.1377191578558; Thu, 22 Aug 2013 10:12:58 -0700 (PDT)
MIME-Version: 1.0
Received: by with HTTP; Thu, 22 Aug 2013 10:12:38 -0700 (PDT)
In-Reply-To: <>
References: <>
From: Justin Uberti <>
Date: Thu, 22 Aug 2013 10:12:38 -0700
Message-ID: <>
To: Michael Tuexen <>
Content-Type: multipart/alternative; boundary="001a11c3235ad3f72904e48c66c4"
Cc: "<>" <>
Subject: Re: [rtcweb] Opening unordered data channel issue
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 22 Aug 2013 17:13:02 -0000

I agree that b) is the cleanest choice. While this makes the handshake
2-way, it does not suffer from the performance issues that affected the
previous 2- and 3-way handshake proposals, since data can be sent
immediately without waiting for the ACK.

On Thu, Aug 22, 2013 at 8:52 AM, Michael Tuexen <> wrote:

> Dear all,
> at the last IETF in Berlin we discussed how to handle the opening of
> unordered data channels (no matter wether reliable or not). The problem
> to be handled is that it is possible that user messages arrive at the
> receiver before the DATA_CHANNEL_OPEN message is received. The result
> of the discussion at the meeting was that the best solution is that
> the sender sends user messages also ordered (on unordered channels)
> until there is an indication from the peer that the DATA_CHANNEL_OPEN
> has been processed. This makes sure that the DATA_CHANNEL_OPEN message
> is not received before user messages and therefore the above problem
> is solved.
> The open issue is, what the indication from the peer is. There were
> two options discussed at the meeting and it was decided that Randall
> Stewart and myself bring this to the list with the pros and cons
> of the alternatives. So here are the two options:
> (a) Use any user message sent from the peer as an indication.
> (b) Use a new ACK message.
> Arguments:
> * Using (b) introduces a 2-way handshake for unordered data channels.
>   However, it also works for data channels being used unidirectional.
> * Using (a) stays with the 1-way handshake, but in case of
>   data channels being used unidirectional you will not see the benefits
>   of unordered delivery.
> We had some discussions offline and think that using (b) is the
> cleaner solution. Please note that this 2-way handshake is not
> similar to the one we had some time ago. The ACK does not contain
> any additional information and it does not introduce any delay.
> You can send user data right after opening the data channel.
> For consistency we would even propose to use this 2 way handshake
> for ordered channels. It doesn't have any drawback and would mean
> that we use the same handshake for all data channels.
> So the proposed procedure for opening an arbitrary data channel is:
> 1) The opener sends a DATA_CHANNEL_OPEN message ordered and reliable.
> 2) The opener can start sending user data immediately.
>    It will always be sent ordered, no matter whether the data channel
>    is ordered or not.
> 3) The peer will send a DATA_CHANNEL_ACK message ordered and reliable
>    in response to the DATA_CHANNEL_OPEN message.
> 4) After reception of the DATA_CHANNEL_ACK message,
>    the opener will sent user messages unordered,
>    if the data channel is unordered and ordered, if the
>    data channel is ordered.
> Any opinions?
> Best regards
> Michael
> _______________________________________________
> rtcweb mailing list