WebRTC’s data channel uses dcSCTP instead of usrSCTP

Table of Contents

Feautre

https://bugs.chromium.org/p/webrtc/issues/detail?id=12614

Message

Starting with Chrome M95 for the Canary and Dev channels, we’re going to start to rollout the DcSCTP library for the SCTP transport used by WebRTC’s Data Channels.

It is a new implementation with a focus on security and compatibility with the previous implementation. No action should be required on your part and the transition should be transparent for users. Please have a look at the previous PSA for more information.

To force enable the feature in Chrome, use the command line flag --force-fieldtrials="WebRTC-DataChannel-Dcsctp/Enabled/“, and --force-fieldtrials="WebRTC-DataChannel-Dcsctp/Disabled/" to force disable it and revert to the previous implementation.

-- Florent Castelli

WebRTC is starting to experiment with a new SCTP implementation called dcSCTP with the goal to migrate from usrsctp in the second half of this year.

The new implementation is an in-tree C++ implementation that is consistent with all other code in WebRTC. It’s designed to only implement the parts of SCTP that are used by Data Channels in WebRTC and with security as the highest priority.

By having a small, modern and well integrated SCTP implementation, it will be possible to provide a better experience for both media and data, more quickly iterate and experiment with new features and provide a better security architecture with much less cost of maintenance compared to the current setup.

In the initial release, the library is considered to be feature complete with some known limitations:

The congestion control algorithm hasn’t been fully tuned, so performance may be slightly worse compared to usrsctp, but should generally be on par.

No support for I-DATA (RFC8260). This has never been enabled in Chromium/Chrome for usrsctp and this is negotiated in the SCTP association setup.

Both will be fixed in future releases.

The library is located in //net/dcsctp and is used by the SCTP Transport at //media/sctp/dcsctp_transport.h, but please note that API stability is not yet guaranteed.

It is also available in Chrome using the feature flag --force-fieldtrials="WebRTC-DataChannel-Dcsctp/Enabled/" in Chrome Canary from version 92.0.4502.0.

We appreciate any bug reports to be filed at bugs.webrtc.org (DataChannel component) for the dcSCTP library and its transport, and at crbug.com (Blink>WebRTC>DataChannel) for bugs visible through the Chrome/Chromium JS API.

We would like to thank Michael Tüxen for all his past and current support for the usrsctp library, which has been a core component for WebRTC. We would not be the platform we are today without all of Michael's efforts.

Comments |0|

Legend *) Required fields are marked
**) You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Category: Uncategorized