-
Notifications
You must be signed in to change notification settings - Fork 78
Description
This issue tracks the progress of implementing WARP in str0m
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
WARP Status in str0m
SNAP
- Update sctp-proto for out of band signalling: Add support for out of band negotiation for SNAP xnorpx/sctp-proto#1
- str0m direct API changes: [WIP] SNAP support for direct API #811
- str0m SDP changes
SPED
- STUN changes
- ?
DTLS 1.3
- https://issues.chromium.org/issues/42290594
- DTLS 1.3 openssl/openssl#13900
- DTLS 1.3 dimpl#37 DTLS 1.3 implementation dimpl#53
- Post-Quantum Crypto (PQC) support in WebRTC w3c/webrtc-extensions#207
SkipVerifyHello
- Remove VerifyHello in dimpl
- See if it's possible to disable on WinCrypto otherwise document