Talk vs Talk mit High Performance Backend.

Talk ist das zentrale Kommunikations-Tool von Nextcloud. Ob für reine interne Kommunikation zwischen den Nextcloud-Benutzern oder auch mit externen Teilnehmern. Mit Talk können Sie Audio- und Videoanrufe starten, Ihren Bildschirm freigeben sowie Textnachrichten versenden.

Nextcloud Talk

Talk basiert auf dem WebRTC-Protokoll (Web Real-Time Communication). Wird Talk ohne High Performance Backend verwendet, wird die Verbindung zwischen den einzelnen Teilnehmern mittels Signaling Messages aufgebaut. Die Signaling Messages enthalten Informationen über die Streams (Audio, Video, Daten, Bildschirmfreigabe), unterstützten Codecs und über die verfügbaren Endpoints (IP-Adresse, Port) der einzelnen Clients. Die Nextcloud Talk App fungiert bei der Kommunikation als zentraler Server. Clients nutzen das Long Polling (GET und POST Requests), um Nachrichten zu empfangen und zu versenden. Der Nachteil an diesem Verfahren ist, dass die Latenz hier relativ hoch ist. Des Weiteren ist es oft nicht möglich eine direkte Verbindung zwischen Clients aufzubauen, die sich hinter einem NAT oder Firewall befinden.

Talk - WebRTC.png

Bei der Verwendung von Talk ohne High Performance Backend wird ein sogenanntes Mesh-Netzwerk zwischen den einzelnen Clients aufgebaut. Jeder Client versendet an alle anderen Teilnehmer seinen Stream und empfängt gleichzeitig die Streams aller anderen Clients. Sobald mehr als zwei Clients untereinander kommunizieren, steigt der Traffic exponentiell an und begrenzt somit die maximale Anzahl an Clients aufgrund der benötigten Upload-Geschwindigkeit der Teilnehmer. Ein weiterer Nachteil ist die dadurch erzeugte, relativ hohe CPU-Last.

Talk - Mesh.png

Nextcloud Talk mit High Performance Backend

Mit der Nutzung des High Performance Backends sind Videochats mit mehreren Teilnehmern möglich, da der eigene Stream nun nicht mehr an alle weiteren Teilnehmern gesendet werden muss. Das High Performance Backend ist nicht nur ein Server, sondern besteht aus verschiedenen Diensten, die unter einander kommunizieren.

Signaling Server

Der Signaling Server fungiert als zentrale Schnittstelle und ist für die Kommunikation zwischen den einzelnen Clients und Diensten des High Performance Backends verantwortlich. Die Kommunikation zwischen den Clients verläuft hierbei direkt über Websockets und nicht mehr über Long Polling. Das hat zur Folge, dass die Latenzen nun deutlich geringer sind.

SFU

Die im High Performance Backend verwendete SFU (Selective Forwarding Unit) basiert auf der Open Source Software Janus und ist für das eigentliche Verteilen der Streams zwischen den einzelnen Clients verantwortlich. Jeder Client muss seinen Stream nur noch einmal encoden und an die SFU senden.

STUN-Server

Standardmäßig versucht Talk eine Peer-to-Peer Verbindung zwischen den Clients aufzubauen. Solange sich alle Clients im gleichen Netzwerk (z.B. Firmennetzwerk) befinden, funktioniert dies einwandfrei. Befindet sich nun aber ein oder mehrere Clients in einem anderen Netzwerk hinter einem Router oder NAT (z.B. Home Office), reicht es nicht mehr aus nur die öffentliche IP des Clients zu kennen, nun ist auch die interne IP des Teilnehmers erforderlich, um eine Verbindung aufzubauen. Die Ermittlung der IPs übernimmt ein STUN Server. STUN steht hierbei für “Session Traversal Utilities for NAT”.

TURN-Server

Ist auch eine Firewall in den verschiedenen Netzwerken vorhanden, kann keine direkte Peer-to-Peer Verbindung aufgebaut werden. Auch die Ermittlung der IPs mittels STUN-Server ist nun nicht mehr möglich. Es wird ein TURN Server benötigt. Ein TURN Server nutzt dabei das TURN-Protokoll (Traversal Using Relay NAT) und fungiert hier als Vermittlungsstelle, um Daten zwischen den Clients weiterzuleiten und so eine Verbindung zu ermöglichen.

In dem unten stehenden Diagramm ist die Kommunikation der Clients mit den verschiedenen Diensten schematisch dargestellt.

Talk - HPB Detail.png

Talk mit High Performance Backend empfiehlt sich für jeden der Videochats mit mehr als zwei Teilnehmern in verschiedenen Netzwerken durchführen möchte. Der Vorteil hierbei ist dass deutlich weniger Bandbreite für den Upload benötigt wird und die CPU-Last der einzelnen Clients verringert wird.

Du willst Talk mit dem High Performance Backend einmal ausprobieren? Im Rahmen eines Beta-Tests stellen wir allen Kunden, die eine Managed Nextcloud 100 oder höher gebucht haben, das High Performance Paket bis zum 31.12.2020 kostenlos zur Verfügung. Fragen? Sprecht uns einfach an

Next: Talk mit High Performance Backend im Testbetrieb hosting.de Blog 10.11.2020