How Does WebRTC Work?
Direct Video/Audio/Data Transfer Between Browsers
WebRTC (Web Real-Time Communication) is a standard for P2P communication between browsers. While the connection establishment process is complex, once connected, media/data is transmitted directly without going through a server. SDP (Session Description) and ICE candidates are exchanged via signaling server (WebSocket, etc.), public IPs are discovered via STUN server, and TURN server relays when direct connection is not possible.
Architecture Diagram
How It Works
Peer A connects to signaling server (WebSocket)
Peer A creates RTCPeerConnection, generates SDP Offer and sends via signaling
Peer B receives SDP Offer, generates SDP Answer and responds via signaling
Both sides collect ICE candidates (discover public IP via STUN server)
ICE candidate exchange โ optimal path selection โ P2P direct connection established
TURN server relays media when direct connection is not possible (relay)
Pros
- ✓ Minimized server costs (P2P direct transfer)
- ✓ Low-latency communication
- ✓ Built-in browser API
- ✓ No separate plugins needed
Cons
- ✗ Separate signaling server needed
- ✗ NAT/firewall issues (STUN/TURN needed)
- ✗ TURN server costs (when relaying)
- ✗ Browser compatibility issues