Communication & Data Transfer/Real-Time Protocols

WebRTC & Peer Data Paths

ICE/STUN/TURN, data channels vs media tracks, signaling over HTTPS, and when P2P beats server relay.

4/5Overview: 35m

What WebRTC is

Browser/API for peer-to-peer real-time: audio, video, and RTCDataChannel for arbitrary binary/text.

Signaling (SDP offer/answer, ICE candidates) happens out of band — typically your WebSocket/HTTPS server. Media/data flows P2P when possible.

Key components

PieceRole
RTCPeerConnectionICE, codecs, encryption (DTLS-SRTP)
ICEFinds best network path between peers
STUNDiscovers public IP/port (NAT hole punch)
TURNRelays when P2P impossible (~10–20% of calls)
SDPSession description (codecs, streams)
DataChannelOrdered/unordered, reliable/unreliable messages

NAT traversal (interview favorite)

Most users behind NAT/firewall → direct UDP often fails → need STUN first, TURN fallback.

TURN costs bandwidth (all media through your servers) — budget for scale.

Signaling flow (simplified)

A Signaling server B |-- offer (SDP) ---->|--------------------------->| | |<-------- answer (SDP) -----| |<-- ICE candidates exchanged via signaling ----->| |=========== optional direct P2P path ===========| |=========== or relay via TURN ===================|

Signaling is not standardized — you design JSON messages over HTTPS/WS.

DataChannel use cases

  • File transfer P2P (reduces server egress)
  • Low-latency game state
  • Screen share metadata

Limits: both peers must be online; mobile backgrounding kills connections.

vs WebSocket to server

WebSocket via serverWebRTC DataChannel
PathClient↔ServerClient↔Client (often)
Server loadAll trafficSignaling + TURN only
NATN/AComplex
Recording/complianceEasyHard

SFU vs MCU (video architecture)

  • MCU — server mixes streams (expensive CPU)
  • SFU — server forwards streams (Selective Forwarding Unit) — Zoom/Meet pattern

Staff depth for video interviews; data transfer interviews may stop at DataChannel + TURN.

Security

DTLS encryption on media/data channels. Verify signaling auth — attacker controlling signaling can MITM. Use TURN credentials with TTL.

Cross-reference: Bulk transfer topic for TB-scale (WebRTC is wrong tool); Networking for UDP/TLS concepts underlying QUIC/DTLS.

Further Reading

Hands-On Tasks (Optional)

API design drills and whiteboard exercises — protocol selection, contract design, and bulk-transfer architecture. Assumes Networking and sibling tracks on the hub page (Distributed Systems, Databases, Concurrency, LLD).

  • Sketch WebRTC signaling flow

    Two browsers behind NAT: diagram offer/answer SDP exchange via your HTTPS signaling server, ICE candidate trickle, and when TURN relay is required.

    20m