Re: [rtcweb] Meaning of SHOULD support/use interleaving

Michael Tuexen <> Mon, 27 October 2014 21:19 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id 555FC1AD542 for <>; Mon, 27 Oct 2014 14:19:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.561
X-Spam-Status: No, score=-1.561 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HELO_EQ_DE=0.35, SPF_HELO_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id I98vk7u142Uu for <>; Mon, 27 Oct 2014 14:19:56 -0700 (PDT)
Received: from ( [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id EAA151AD540 for <>; Mon, 27 Oct 2014 14:19:51 -0700 (PDT)
Received: from [] ( []) (Authenticated sender: macmic) by (Postfix) with ESMTP id 7764C1C104DD5; Mon, 27 Oct 2014 22:19:49 +0100 (CET)
Content-Type: text/plain; charset="windows-1255"
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
From: Michael Tuexen <>
In-Reply-To: <>
Date: Mon, 27 Oct 2014 22:19:48 +0100
Content-Transfer-Encoding: quoted-printable
Message-Id: <>
References: <> <> <> <> <>, <> <> <>
To: "Makaraju, Maridi Raju (Raju)" <>
X-Mailer: Apple Mail (2.1878.6)
Cc: "" <>
Subject: Re: [rtcweb] Meaning of SHOULD support/use interleaving
X-Mailman-Version: 2.1.15
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: Mon, 27 Oct 2014 21:19:58 -0000

On 27 Oct 2014, at 21:31, Makaraju, Maridi Raju (Raju) <> wrote:

> +1 to make N-DATA optional.
> Data channel provides a robust generic peer to peer communication channel. So, one can see that data channel may be used under non-webrtc contexts (like as in CLUE) as a general transport or as a replacement of native to SCTP to traverse firewalls. IMHO, majority of these use cases:
> a. May just involve a single data channel (with possible multiplexing on top of it)
> b. And may not use the DCEP either (both ends could assume same data channel stream id, this is similar to SCTP PPIDs).
> We already made DCEP(b) as optional.
> If an app is using just a single data channel then there is no real benefit in using N-DATA. Then why not make it optional? Also, as already pointed out, making it optional won’t break interop as it is still negotiated during SCTP setup time anyway.
> I would like to point out that there will be some webrtc applications which might just use one webrtc data channel for simplicity (and may use some multiplexing of different types of msgs/objects on top of it) or one is just sufficient as the app does not send/recv huge chunks of data. So, N-DATA isn’t needed for such webrtc clients either. Then why add burden to such webrtc implementations!?
Are you implementing this? I would say that adding N-DATA to an SCTP implementation with support
for Stream Reconfiguration and PR-SCTP does not increase the complexity substantially...

Best regards
> BR
> Raju
> From: rtcweb [] On Behalf Of Christer Holmberg
> Sent: Monday, October 27, 2014 3:11 PM
> To: Harald Alvestrand;
> Subject: Re: [rtcweb] Meaning of SHOULD support/use interleaving
> Hi,
> We shall not add burden just because there are bad programmers out there - they will anyway always manage to use our specs in a wrong way :)
> Regards,
> Christer
> Sent from my Windows Phone
> From: Harald Alvestrand
> Sent: ‎27/‎10/‎2014 22:00
> To: Christer Holmberg;
> Subject: Re: [rtcweb] Meaning of SHOULD support/use interleaving
> On 10/27/2014 11:41 AM, Christer Holmberg wrote:
> > Hi,
> >
> >>>>> Within the CLUE WG, we had a discussion regarding the following statement in section 6.1 of draft-ietf-rtcweb-data-channel-12.txt:
> >>>>>  
> >>>>> "The support for message interleaving as defined in
> >>>>>                 [I-D.ietf-tsvwg-sctp-ndata] SHOULD be used."
> >>>>>  
> >>>>> First, it is a little unclear what "the support SHOULD be used" means.
> >>>> My understanding is that SCTP implementations supporting the extension will use it.
> >>>> This is negotiated during the setup of the SCTP association.
> >>> If it's done on SCTP level, why do we need to talk about it in the data channel draft? 
> >>>
> >>> Is there a reason why it is important to use it for data channels? If so, does it apply to data channels in general? 
> >> NDATA was added in order to avoid head-of-line blocking on the transport (if I understand this correctly, until 
> >> this was added, sending a huge message would block the delivery of small messages on all channels until the huge message was fully delivered).
> >>
> >> Unlike Michael, I see no reason to make this a SHOULD; I think it should be a MUST, and the older 
> >> implementations in browsers should just be called out as non-conformant.
> >>
> >> That said, I think that data channels ought to interoperate successfully with implementations that don't support the 
> >> extension - but data channel implementations in WebRTC endpoints should be under a "MUST implement, MUST offer" ruleset.
> > First, keep in mind that I am NOT talking about WebRTC endpoints (which is one reason we shouldn't call it webrtc data channel to begin with, but that's another story...), but ANY type of endpoint that wants to use a data channel. 
> I'm a bit self-centric on behalf of WebRTC, but I feel the other way -
> that it might have been a mistake to float the option of saying "other
> things can use these features", and that we should admit only arguments
> that bear upon their usage in WebRTC.
> I'm not sure I have WG consensus (even rough consensus) on this point,
> however.
> >
> > Second, I am not talking about MUST support, but MUST use/offer.
> >
> > Assume I have a CLUE endpoint, which will use a data channel ONLY to transport CLUE messages. CLUE messages aren't that hugeto begin with, and there will be no blocking of small messages on other channels - as there are no other channels.
> >
> > So, why does the CLUE endpoint need to offer interleaving?
> Flipping the question around - if a programming mistake in the
> Javascript implementing a CLUE endpoint in a WebRTC browser happens to
> send a multimegabyte-sized object down the (out of order) datachannel,
> is it OK to have all the subsequent CLUE messages delivered 30 seconds late?
> -- 
> Surveillance is pervasive. Go Dark.
> _______________________________________________
> rtcweb mailing list