SNAP

SNAP stands for SCTP Negotiation Acceleration Protocol. It skips the four-way SCTP handshake in WebRTC by moving SCTP's initialization parameters into the SDP offer/answer exchange, which opens a data channel two round trips sooner.

It is one of the components of WARP, the umbrella effort to get WebRTC connection setup from six round trips down to two.

The handshake SNAP removes

SCTP opens an association with a four-way handshake: INIT, INIT-ACK, COOKIE-ECHO, COOKIE-ACK. Two round trips.

The "cookie" protects against spoofing, which is not necessary as WebRTC runs SCTP on top of a DTLS association and DTLS has already authenticated the peer.

The SCTP INIT chunk negotiates a number of other parameters, such as the initial transmission sequence number and SCTP extensions. SNAP moves that off a network round trip over DTLS and ICE and into the SDP offer/answer.

What it buys, concretely

Two round trips off the time to an open data channel. That handshake is also sensitive to packet loss, so OpenAI saw a 6x reduction in P95 for that metric.

This matters particularly when the data channel sits on the critical path of something a user is waiting for.

  • Voice agents, where the data channel carries control or transcript alongside the media and a person is waiting for a machine to speak
  • Cloud gaming and remote desktop, where input events ride the data channel
  • Live betting, auctions, trading, anything where the first message has a deadline
  • File transfer and peer-to-peer sync apps that are pure data channel, no media at all, where setup time is the entire perceived latency

An application that opens a data channel with nothing blocked on it will not get as much of a win.

Where it stands (August 2026)

The code has been in libWebRTC for a while, guarded behind a field trial, and in Pion. draft-hancke-tsvwg-snap-00 was published on 30 December 2025. It expired on 3 July 2026 and will get a revision before being adopted by a working group.

Chrome is running an origin trial for it which you can register for. The WebRTC sample for data channels explains how to register and try the current version in the browser.

Additional reading

Tsahi Levent-Levi

Tsahi Levent-Levi

Independent WebRTC analyst. 20+ years in telecom, 13 focused on WebRTC. Writes for developers and product teams who need to understand, not just implement, real-time communications.