WebRTC (Web Real-Time Communication) ist eine frei verfügbare Browser-API, mit der zwei Webbrowser ohne zusätzliche Plugins Audio, Video und beliebige Daten direkt miteinander austauschen können. Standardisiert von W3C (API) und IETF (Protokolle), unterstützt von Chrome, Firefox, Safari und Edge.

So funktioniert WebRTC

Die zentrale Schnittstelle ist RTCPeerConnection: Sie verwaltet die Verbindung zwischen zwei Teilnehmern, verhandelt die Medienformate und hält den Datenstrom am Laufen. Mit getUserMedia() greift die Anwendung auf Mikrofon und Kamera zu, mit RTCDataChannel können beliebige Daten (Chat, Dateien, Spiele) übertragen werden. Für die eigentliche Übertragung nutzt WebRTC das Echtzeit-Protokoll RTP — verschlüsselt mit SRTP über eine per DTLS ausgehandelte Schlüsselvereinbarung.

Signalisierung und NAT-Überwindung

Bevor Medien fließen, müssen sich die Teilnehmer finden: Die Signalisierung (Austausch von SDP-Angeboten und -Antworten) läuft über einen eigenen Kanal wie WebSocket oder SIP — WebRTC legt dafür kein eigenes Protokoll fest. Die Verbindung selbst baut ICE (Interactive Connectivity Establishment) auf: Es probiert direkte Verbindungen und, wenn nötig, Relay-Server. Dabei helfen STUN-Server (ermitteln die öffentliche IP hinter NAT) und TURN-Server (leiten den Datenstrom weiter, wenn keine direkte Verbindung möglich ist).

Praxis und Grenzen

  • Peer-to-Peer: Medien fließen direkt zwischen den Browsern, nicht über einen zentralen Server — das spart Bandbreite und Latenz.
  • Anwendungen: Videokonferenzen, Sprachtelefonie, Screen-Sharing, Live-Streaming, aber auch Datenaustausch über DataChannels.
  • Qualität: Wie bei VoIP entscheiden Latenz, Jitter und Paketverlust über die Gesprächsqualität.
  • Grenzen: Für große Gruppen werden oft SFU-Server (Selective Forwarding Unit) zwischengeschaltet, weil reine Peer-to-Peer-Verbindungen bei vielen Teilnehmern nicht skalieren.

Verwandte Grundlagen: RTP, SRTP, RTCP, WebSocket.