Einzelne Peer-Verbindung

Ermöglichen Sie schlankere, schnellere und besser skalierbare Videositzungen, indem Sie alle Teilnehmerströme über eine einzige WebRTC-Peer-Verbindung leiten.

Wenn Ihre Sitzungen wachsen, steigt auch die Anzahl der WebRTC-Peer-Verbindungen, die jeder Client aufrechterhalten muss (eine für jeden abonnierten Stream). Jede Verbindung hat ihre eigene ICE-Verhandlung, ihren eigenen DTLS-Handshake und ihren eigenen Status für die Überlastungssteuerung. Dieser Overhead kann sich schnell summieren, insbesondere auf mobilen Geräten.

Einzel-Peer-Verbindung (SPC) reduziert den Overhead des Verbindungsaufbaus. Wenn diese Funktion aktiviert ist, werden alle Teilnehmerströme für einen Client über eine gemeinsame Peer-Verbindung zum Vonage Video Media Router gemultiplext, unabhängig davon, wie viele verschiedene Anbieter an der Sitzung beteiligt sind. Das Ergebnis ist eine geringere Netzwerkbelastung durch weniger Ports, ein intelligenteres Bandbreitenmanagement und eine bessere Skalierbarkeit über alle Geräte hinweg.

Die Funktion der Einzel-Peer-Verbindung ist nur in gerouteten Sitzungen verfügbar (Sitzungen, die den Vonage Video Media Router verwenden). In Sitzungen mit adaptives Medien-RoutingSPC findet keine Anwendung, während die Medien zwischen zwei Teilnehmern Peer-to-Peer fließen, aber sie findet Anwendung, sobald die Sitzung zur Verwendung des Medienrouters wechselt. Siehe Medien-Router und Medien-Modi für weitere Informationen.

Vorteile

Die Aktivierung der Einzel-Peer-Verbindung ist eine der wirkungsvollsten Optimierungen, die Sie für Videos mit mehreren Teilnehmern vornehmen können:

  • Deutlich geringerer Ressourcenverbrauch: Jede Peer-Verbindung verfügt über ihre eigenen Ports, Sockets, ICE-Kandidaten, DTLS-Handshakes und SRTP-Kontexte. Bei Dutzenden von Teilnehmern erhöht sich dadurch die CPU-, Speicher- und Dateideskriptornutzung. SPC fasst all dies in einer einzigen Verbindung zusammen und gibt so Ressourcen für Ihre Anwendung frei.

  • Bessere, einheitliche Tarifkontrolle: Bei separaten Peer-Verbindungen führt jede ihren eigenen Algorithmus zur Staukontrolle aus und konkurriert mit den anderen um dieselbe Verbindungskapazität. SPC gibt dem Bandbreitenschätzer eine einzige, einheitliche Sicht auf das Netzwerk für alle Medienströme, was zu einer stabileren Bitratenanpassung und weniger Qualitätsschwankungen führt.

  • Unterstützung für größere Sitzungen auf dem Handy: Mobile Geräte verfügen über begrenzte CPU-, Speicher- und Netzwerkressourcen, und insbesondere iOS begrenzt die Anzahl der gleichzeitigen Peer-Verbindungen. Durch die Konsolidierung aller Teilnehmerströme in einer Peer-Verbindung können mobile Clients mit SPC bequem mehr Streams in einer einzigen Sitzung verarbeiten.

  • Schnellere Einrichtung von Abonnements: Das Hinzufügen eines neuen Teilnehmers erfordert nicht mehr eine vollständige ICE/DTLS-Aushandlung von Grund auf. Die bestehende Verbindung wird wiederverwendet, so dass neue Streams schneller erscheinen. Dies macht sich besonders in Sitzungen bemerkbar, bei denen Teilnehmer häufig hinzukommen und wieder abreisen.

  • Geringerer Batterieverbrauch: Weniger aktive Netzwerkpfade bedeuten weniger Keep-Alive-Pakete und weniger Aufwachen des Mobilfunks, was sich letztlich in einer längeren Akkulaufzeit für Ihre Endbenutzer niederschlägt.

  • Geringere Netzkomplexität: Eine Verbindung bedeutet einen Satz NAT-Bindungen, eine TURN-Zuweisung (falls erforderlich) und einen Weg durch die Firewalls des Unternehmens. Dies vereinfacht die Bereitstellung in restriktiven Netzwerkumgebungen und verringert die Anzahl der Verbindungsausfälle.

  • Besser vorhersehbare Qualität in großem Maßstab: Da sich alle Medien einen einzigen Transportweg teilen, wird die Bandbreite gleichmäßiger auf die Streams verteilt. Es gibt keine "konkurrierenden Verbindungen", die sich gegenseitig aushungern, was zu einem reibungsloseren, einheitlicheren Erlebnis für alle Teilnehmer führt.

Anwendungsfälle

Applications profitieren von Single Peer Connection immer dann, wenn die Zahl der abonnierten Streams zu steigen beginnt. Hier sind die Szenarien, in denen es den größten Unterschied macht:

  • Große interaktive Sitzungen: In virtuellen Klassenzimmern, bei der Zusammenarbeit von Gruppen und bei Videoanrufen mit mehreren Teilnehmern können viele Teilnehmer gleichzeitig veröffentlichen. Mit zunehmender Anzahl von Publishern öffnet jeder teilnehmende Client mehr Peer-Verbindungen. SPC hält die Ressourcennutzung unabhängig von der Anzahl der Streams, die ein Client abonniert, konstant. Denken Sie daran, dass Ihre Anwendung immer noch Prioritäten setzen sollte, welche Video-Widgets angezeigt und welche Streams abonniert werden sollen, da es selten sinnvoll ist, alle Teilnehmer gleichzeitig auf dem Bildschirm anzuzeigen.

  • Mobile-first Applications: Wenn Ihre Nutzer Telefone und Tablets benutzen, ist SPC sehr zu empfehlen. Weniger Verbindungen bedeuten weniger CPU-Belastung, weniger Speicherdruck und geringeren Batterieverbrauch.

  • Bandbreitenbeschränkte oder variable Netze: Bei überlasteten Wi-Fi-, Mobilfunk- oder Satellitenverbindungen weist eine einzige Engpasskontrollschleife die Bandbreite viel effizienter zu als eine große Anzahl konkurrierender Verbindungen. Die Benutzer erhalten flüssigere Videos mit weniger Pufferung.

  • Firmennetzwerke und eingeschränkte Netzwerke: Firewalls, Proxies und NATs können versagen oder die Latenz erhöhen, wenn sie viele gleichzeitige UDP-Flüsse verfolgen müssen. Durch die Reduzierung auf eine einzige Verbindung wird die Wahrscheinlichkeit von Verbindungsproblemen hinter strengen Netzwerkrichtlinien verringert.

  • Schnelle Beitritts-/Austrittsszenarien: In Breakout-Räumen oder bei anderen Gelegenheiten, bei denen die Teilnehmer häufig zwischen den Gruppen wechseln, eliminiert SPC den Overhead für die Verhandlung pro Stream, so dass die Übergänge fast augenblicklich erfolgen.

  • Hybride Veranstaltungen mit Bildschirmfreigabe: Wenn Moderatoren Bildschirme und Kameraübertragungen gemeinsam nutzen, verdoppelt sich die Gesamtzahl der Streams pro Teilnehmer. SPC hält den Overhead konstant, unabhängig davon, wie viele gemischte Streams ein Client empfängt. Da die einheitliche Ratenkontrolle alle Streams auf derselben Verbindung im Blick hat, kann sie Streams zur gemeinsamen Nutzung von Bildschirmen intelligent priorisieren und mehr Bandbreite dort zuweisen, wo Schärfe und Lesbarkeit am wichtigsten sind.

Anforderungen und Beschränkungen

  • SPC wird nur unterstützt in weitergeleitete Sitzungen (Sitzungen, die den Vonage Video Media Router verwenden). Sie ist nicht für Relayed-Sitzungen verfügbar, da bei einer Relayed-Sitzung jeder Client direkt mit jedem anderen Client Peer-to-Peer verbunden ist. Es gibt keinen zentralen Media Router, über den Streams gemultiplext werden können, so dass es nichts zu konsolidieren gibt.

  • SPC ist verfügbar ab Version 2.28.0 der nativen SDKs und Version 2.29.0 des Web-SDKs.

  • SPC ist standardmäßig deaktiviert. Sie müssen sie bei der Initialisierung der Sitzung auf der Client-Seite ausdrücklich aktivieren. Siehe Aktivieren einer einzelnen Peer-Verbindung.

  • SPC gilt für nur Teilnehmerverbindungen. Der Herausgeber verwendet weiterhin seine eigene Peer-Verbindung, um Medien an den Medienrouter zu senden.

Aktivieren einer einzelnen Peer-Verbindung

Um die Single Peer Connection zu aktivieren, konfigurieren Sie sie im Client SDK beim Erstellen oder Initialisieren der Sitzung. Einen schnellen Überblick über SPC im Zusammenhang mit der Sitzungserstellung finden Sie in der Abschnitt "Einzel-Peer-Verbindung der Anleitung zum Erstellen einer Sitzung. Die folgenden Abschnitte zeigen, wie man sie in jedem unterstützten SDK aktiviert.

Web-SDK

Setzen Sie die singlePeerConnection Eigenschaft zu true in dem Optionsobjekt, das Sie an OT.initSession():

var session = OT.initSession(apiKey, sessionId, {
  singlePeerConnection: true
});

Android-SDK

Verwenden Sie die Session.Builder.setSinglePeerConnection() Methode:

Session session = new Session.Builder(context, apiKey, sessionId)
    .setSinglePeerConnection(true)
    .build();

iOS-SDK

Setzen Sie die singlePeerConnection Eigentum an OTSessionSettings:

OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.singlePeerConnection = YES;

OTSession *session = [[OTSession alloc] initWithApiKey:apiKey
                                             sessionId:sessionId
                                              delegate:self
                                              settings:settings];

Windows-SDK

Setzen Sie die SinglePeerConnection Eigenschaft auf der Session.Builder Klasse:

var session = new Session.Builder(Context.Instance, apiKey, sessionId)
{
    SinglePeerConnection = true
}.Build();

macOS-SDK

Verwenden Sie die otc_session_settings_set_single_peer_connection() Funktion:

otc_session_settings *settings = otc_session_settings_new();
otc_session_settings_set_single_peer_connection(settings, OTC_TRUE);

otc_session *session = otc_session_new_with_settings(apiKey, sessionId, &callbacks, settings);

Linux-SDK

Verwenden Sie die otc_session_settings_set_single_peer_connection() Funktion:

otc_session_settings *settings = otc_session_settings_new();
otc_session_settings_set_single_peer_connection(settings, OTC_TRUE);

otc_session *session = otc_session_new_with_settings(apiKey, sessionId, &callbacks, settings);

React Native SDK

Setzen Sie die enableSinglePeerConnection Eigenschaft zu true im options Stütze des OTSession Komponente:

<OTSession
  apiKey={apiKey}
  sessionId={sessionId}
  token={token}
  options={{ enableSinglePeerConnection: true }}
/>

Interaktion mit anderen Funktionen

Skalierbares Video

Single Peer Connection arbeitet parallel zu skalierbares Video. Wenn beide Funktionen aktiviert sind, liefert der Media Router weiterhin über die gemeinsame Peer-Verbindung an jeden Teilnehmer mehrere Qualitätsebenen. Jeder Teilnehmer kann bei veränderten Netzwerkbedingungen eine andere Auflösung und Bildrate erhalten, genau wie bei separaten Peer-Verbindungen.

Audio-Fallback

Audio-Fallback funktioniert bei aktivierter SPC weiterhin normal. Wenn sich das Netzwerk eines Teilnehmers verschlechtert, kann der Media Router immer noch die Videokomponente auslassen und nur den betroffenen Stream mit Audio versorgen, unabhängig von den anderen Streams, die über dieselbe Peer-Verbindung übertragen werden.

Client-Beobachtbarkeit und senderseitige Statistiken

Wenn SPC aktiviert ist, wird die Statistik der Absender-Seite Die Bandbreitenschätzung wird auf alle Teilnehmer der einzelnen Peer-Verbindung aufgeteilt. Die maximale Bitrate stellt die höchste Bitrate dar, die die Peer-Verbindung schätzen kann, während die aktuelle Bitrate die Bitrate der einzelnen Audio-Video-Bündel widerspiegelt. Bei der Bewertung der verfügbaren Bandbreite wird die geschätzte Gesamtbandbreite durch Summierung der einzelnen Bündelschätzungen berechnet.

Weitere Informationen finden Sie in der Leitfaden zur Beobachtung der Kunden.

Ende-zu-Ende-Verschlüsselung

Ende-zu-Ende-Verschlüsselung ist mit der Einzel-Peer-Verbindung kompatibel. Medienströme werden einzeln verschlüsselt, bevor sie über die gemeinsame Peer-Verbindung gemultiplext werden.

Bewährte Praktiken

  • Aktivieren Sie SPC für Sitzungen mit vielen Publishing Clients: Wenn Ihre Anwendung regelmäßig Sitzungen mit mehr als nur ein paar Teilnehmern durchführt, kann die Aktivierung von SPC den Ressourcenverbrauch spürbar senken und die Stabilität verbessern.

  • Test auf Zielgeräten: Auch wenn SPC die Ressourcennutzung im Allgemeinen reduziert, sollten Sie immer die spezifischen Geräte und Netzwerkbedingungen prüfen, auf die Ihre Benutzer treffen werden.

  • Überwachen Sie die Bandbreite mit senderseitigen Statistiken: Da sich alle Teilnehmerströme einen einzigen Transportweg teilen, sollten Sie absenderseitige Statistiken verwenden, um die insgesamt verfügbare Bandbreite zu verstehen und Ihre Anwendung entsprechend anzupassen.

Weitere Lektüre