Bei SFHTML5 Alles über WebRTC Bei unserem Meetup Anfang dieser Woche (unser CEO, Ben Strong, sprach dort) tauchte immer wieder dieselbe Frage auf: Wenn WebRTC Peer-to-Peer ist, warum braucht man dann STUN- und TURN-Server?
WebRTC muss um 100% Uhr funktionieren.
WebRTC könnte die Kommunikationslösung schlechthin sein. Was könnte besser sein als Peer-to-Peer-Verbindungen für Video, Audio und Daten auf Basis von Open-Source-Code?
Viele Entwickler haben WebRTC-Anwendungen ohne STUN- oder TURN-Server erstellt. Und sie funktionieren gut. Meistens. Doch die “übrigen Fälle” geben Anlass zum Nachdenken. Solange man nicht sicher ist, dass die WebRTC-Lösung in allen Situationen zuverlässig funktioniert, kann man sich nicht darauf verlassen.
Hier kommen die Server ins Spiel.
Sie möchten eine Verbindung über verschiedene Netzwerke herstellen? Dafür benötigen Sie einen Server.
WebRTC funktioniert hervorragend, wenn Browser innerhalb desselben lokalen Netzwerks verbunden werden. Sobald jedoch Verbindungen außerhalb des eigenen Netzwerks – beispielsweise hinter einer Unternehmensfirewall – hergestellt werden, ist etwas mehr Rechenleistung erforderlich.
Firewall-Konfigurationen lassen WebRTC ohne die Verwendung des STUN- (Session Traversal Utilities for NAT) oder TURN-Protokolls (Traversal Using Relays around NAT) nicht zu. Daher benötigen Sie einen Server.
STUN versucht, eine Lücke in der Firewall zu schaffen, damit Ihr Anruf durchgestellt werden kann. Dieses Protokoll funktioniert in vielen Fällen. Wenn eine Verbindung über STUN hergestellt wird, entsteht eine Peer-to-Peer-Verbindung. Das ist vorteilhaft, da eine STUN-basierte Verbindung den Server weder CPU- noch netzwerkintensiv belastet.
Wenn STUN nicht ausreicht, ist das TURN-Protokoll erforderlich. Bei Verwendung von TURN wird die Verbindung über den Server weitergeleitet und ist nicht direkt Peer-to-Peer. Die weitergeleitete Verbindung beansprucht sowohl Netzwerk- als auch Rechenleistung auf dem Server, wodurch die Anzahl der Verbindungen, die ein einzelner Server gleichzeitig verarbeiten kann, begrenzt ist. (Und wenn Sie viele Verbindungen benötigen, benötigen Sie viele Server.)
Wie ermittelt das System den Bedarf?
ICE ist das Protokoll, das zur Bestimmung des zu verwendenden Pfades befolgt wird, von der einfachsten Variante: dem Host, der verwendet wird, wenn sich die WebRTC-Verbindung im selben lokalen Netzwerk befindet, bis hin zu zunehmend komplizierteren Varianten: den Protokollen STUN und TURN, die beide Server benötigen.
Okay, ich brauche also einen Server. Was nun?
Wenn Sie sich für WebRTC entschieden haben und die Zuverlässigkeit von 100% für Sie entscheidend ist, befinden Sie sich im Serverbereich.
Was ist bei der Auswahl Ihrer Server wichtig? Wir sind der Meinung, dass Sie drei Prioritäten setzen sollten:
- Latenz
- Datensicherung und Redundanz
- Lastverteilung (Netzwerk und CPU)
Es gibt verschiedene Möglichkeiten, Ihre Serverinfrastruktur aufzubauen. Welche für Sie am besten geeignet ist, hängt von Ihren Entwicklungskenntnissen, Ihrem Zeitbudget und Ihrem Budget ab.
Option eins: AWS. Viele Details zur Nutzung von AWS, einschließlich einiger Preisaspekte, werden in unserem Beitrag vom Juni erläutert., WebRTC-Tunneling über TCP (und warum das wichtig ist). Eine Besonderheit von AWS ist, dass man seine eigenen Prioritäten hinsichtlich Latenz und Redundanz festlegen kann.
Option zwei: Open-Source-TURN-Server. (Ein Beispiel findet sich hier.) Hier.Viele Puristen, die entschlossen sind, ihre eigene Lösung zu entwickeln, werden diesen Weg in Betracht ziehen. Ihre Aufgabe wird es dann sein, die Server an Standorten mit geringer Latenz für alle Nutzer (geografisch verteilt) zu betreiben und sicherzustellen, dass diese Server skalierbar sind, um die Last zu bewältigen.
Option drei: Für Entwickler. Wir haben über zwei Jahre ausschließlich an der Entwicklung einer funktionierenden WebRTC-Plattform gearbeitet. Für alle, die WebRTC-basierte Funktionen in ihre Website integrieren möchten, aber ihre Ressourcen lieber in ihr Kerngeschäft investieren wollen – und nicht mit der rasanten Entwicklung im WebRTC-Bereich Schritt halten möchten.
Eine schnelle Möglichkeit, sich einen Eindruck von der Qualität unserer Plattform zu verschaffen, besteht darin, sie zu nutzen. vLine-Verbindung, die auf derselben globalen Plattform basiert, die Sie auch für Ihre Lösung nutzen können.
Wir beantworten Ihre Fragen jederzeit gerne. Bitte senden Sie uns eine E-Mail an [email protected] oder finden Sie uns @vlineinc.