๐Ÿ“น

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

Signaling Phase (connection setup)
๐Ÿ’ป
Peer A
Create SDP Offer
โ‘  Offer
๐Ÿ“ก
Signaling Server
(WebSocket)
โ‘ก forward
๐Ÿ’ป
Peer B
Create SDP Answer
NAT Discovery + P2P Connection
๐Ÿ’ป
Peer A
What is my public IP?
โ‘ข STUN request
STUN
Returns public IP
โ‘ฃ P2P direct connection!
ICE candidate exchange โ†’ optimal path selection
๐Ÿ’ป
Peer B
Direct connection not possible? TURN Server relays media
After Connection
๐Ÿ’ป
Peer A
Video Audio Data
↔ Direct transfer without server
๐Ÿ’ป
Peer B

How It Works

1

Peer A connects to signaling server (WebSocket)

2

Peer A creates RTCPeerConnection, generates SDP Offer and sends via signaling

3

Peer B receives SDP Offer, generates SDP Answer and responds via signaling

4

Both sides collect ICE candidates (discover public IP via STUN server)

5

ICE candidate exchange โ†’ optimal path selection โ†’ P2P direct connection established

6

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

Use Cases

Google Meet / Zoom (web version) Browser video calls Screen sharing P2P file transfer Real-time games (DataChannel)