Skip to content

WARP Support in str0m #809

@xnorpx

Description

@xnorpx

This issue tracks the progress of implementing WARP in str0m

WARP by @fippo and @juberti

The current WebRTC connection setup, as outlined in RFC 8829, incurs 4 RTTs before media can be sent and 6 RTTs before the data channel opens. In 2011, this wasn’t much worse than the 4 RTTs needed to set up a WebSocket over TCP/TLS, but nowadays, compared to QUIC’s (RFC 9000) optimized 0-RTT setup (1 RTT for a WebSocket), it seems incredibly slow.

In addition, the typical topology for a WebRTC session has changed from being a peer-to-peer to client-server interaction, on account of the rise of the use of WebRTC in conferencing, game streaming, and other services that have a centrally hosted component. While setup latency for peer-to-peer calls was largely masked by the time needed for the human callee to actually answer the call, this latency is immediately observable in most client-server contexts. As WebRTC gains traction in additional low-latency domains (e.g., AI services and robotics), this trend will continue to increase.

Furthermore, reducing the number of RTTs and packets on the wire has a direct impact on the robustness of the protocol. With fewer steps, there are fewer things that can be affected by network delays or losses, which should translate into improved reliability for all WebRTC topologies.

Corresponding issue in Pion

Demo

WARP Status in str0m

SNAP

SPED

  • STUN changes
  • ?

DTLS 1.3

SkipVerifyHello

  • Remove VerifyHello in dimpl
  • See if it's possible to disable on WinCrypto otherwise document

Reduce MTU fragmentation on OpenSSL

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions