WebRTC, STUN und TURN

- Lesezeit: 4 Minuten -

Vorwort

Bei der Internettelefonie (Audio-/Videotelefonie) über Messenger/Browser sind bestimmte technische Voraussetzungen erforderlich. Ansonsten kann nur in bestimmten Konstellationen wie zum Beispiel nur im selben WLAN untereinander telefoniert werden. Im Zusammenhang mit der Internettelefonie fallen immer wieder Begriffe wie „WebRTC“, „STUN“ und „TURN“ die hier erläutert und die grundsätzliche Funktionsweise erklärt werden …

Funktionsweise/Erklärung

Für den Austausch von Ton- und Videoinformationen wird das Protokoll „Web Real-Time Communication“ (WebRTC) (extern) genutzt, was ein offener Standard zur direkten Kommunikation zwischen Rechnern ist. Auch aktuelle Browser unterstützen dieses Protokoll, so daß damit Videokonferenzen problemlos möglich sind - zumindest innerhalb eines lokalen Netzes (LAN/WLAN).

Sind die beteiligten Geräte in verschiedenen Netzen, so taucht ein Problem auf: Die Programme/Apps müssen ihre eigene IP-Adresse und die IP-Adresse der Gegenstelle wissen. Dies ist leider oft nicht der Fall, wenn sie hinter einem NAT-Router sitzen, z.B. einer Fritzbox. Hier kennen die Geräte nur ihre netzinterne IP-Adresse, z.B. 192.168.1.52, aber nicht die offizielle IP-Adresse nach außen, die nur der Router kennt.

Dieses Problem lässt sich mit einem STUN-Server (Session Traversal Utilities for NAT) lösen. Die beteiligten Rechner melden sich bei dem STUN-Server; dabei lernt er ihre öffentlichen IP-Adressen kennen und kann sie an die Gesprächspartner weitergeben. Mit diesen Informationen können die Geräte dann direkt miteinander kommunizieren.

„Erklärungsgrafik

Der Betrieb eines STUN-Servers ist relativ problemlos, da nur sehr geringe Datenmengen anfallen. Es gibt daher auch öffentliche STUN-Server.

Leider reicht der STUN-Server heutzutage nicht mehr. Ein Router, wie die Fritz!Box, macht nämlich nicht nur NAT, sondern stellt auch eine Firewall zur Verfügung. Verbindungen von außen, aus dem Internet, auf die Rechner innerhalb des lokalen Netzes sind so nicht möglich, ohne auf dem Router Ports freizugeben und auf den Zielrechner weiterzuleiten. Das wäre eine recht aufwändige Vorgehensweise. Es sind nur Verbindungen aus dem Inneren des jeweiligen Netzes zu öffentlich zugänglichen Rechnern möglich.

Hier kommt der TURN-Server ins Spiel (Traversal Using Relays around NAT), er ermöglicht es den Clients Daten ohne eine direkte Verbindung auszutauschen (Relay Server). Sämtlicher Datenverkehr läuft dann durch diesen Server:

„Erklärungsgrafik

In der Regel wird man öffentliche TURN-Server nicht finden, da rechte hohe Datenvolumina anfallen. Für eine ordentliche Videoqualität werden 500 kbit/s angegeben. Bei 3.600 Sekunden in einer Stunde macht das dann 500×3.600 = 1.800.000 kbit (was fast 1.800 mbit entspricht), also schon ein erhebliches Datenvolumen.

WebRTC und TOR

Eine gleichzeitige Nutzung von TOR (The Onion Routing) und WebRTC schließt sich eigentlich aus. Denn bei der Nutzung von TOR sind die IP-Adressen den beteiligten Endstellen nicht bekannt und durch die Nutzung von WebRTC würde der Sinn und Zweck von TOR ausgehebelt.

Zusammenfassung

  • WebRTC ist das internationale Protokoll zum Austausch der Daten bei Internettelefonie (Audio-/Video-Kommunikation)
  • STUN (für NAT) und TURN (für Firewalls) helfen bei der Aushandlung/Vereinbarung des hierzu erforderlichen, direkten AV-Übertragungswegs zwischen zwei Endstellen
  • Sind keine STUN-/TURN-Server verfügbar, kann evtl. nur im selben Netzwerk telefoniert werden
  • Wird TOR zur Verschleierung von IP-Adressen verwendet, ist keine Internettelefonie möglich

Übernommen aus Quelle: debacher.de (extern) und leicht angepasst/ergänzt - Danke Uwe!

Weitere Informationen und technische Anleitung für WebRTC in HTML-Clients: https://www.baeldung.com/webrtc (extern; englisch)