Connexion à un seul pair
Débloquez des sessions vidéo plus légères, plus rapides et plus évolutives en faisant passer tous les flux d'abonnés par une seule connexion pair WebRTC.
Au fur et à mesure que vos sessions se développent, il en va de même pour le nombre de connexions de pairs WebRTC que chaque client doit maintenir (une pour chaque flux souscrit). Chaque connexion comporte sa propre négociation ICE, sa propre poignée de main DTLS et son propre état de contrôle de la congestion. Ces frais généraux peuvent s'accumuler rapidement, en particulier sur les appareils mobiles.
Connexion à un seul pair (SPC) réduit la charge de travail liée à l'établissement de la connexion. Lorsqu'ils sont activés, tous les flux d'abonnés d'un client sont multiplexés sur une connexion pair partagée avec le Video Media Router de Vonage, quel que soit le nombre d'éditeurs différents dans la session. Il en résulte une empreinte réseau plus légère utilisant moins de ports, une gestion plus intelligente de la bande passante et une meilleure évolutivité sur tous les appareils.
La fonction Single Peer Connection n'est disponible que dans les sessions routées (sessions qui utilisent le Video Media Router de Vonage). Dans les sessions utilisant routage adaptatif des médiasLe SPC ne s'applique pas lorsque le média circule en peer-to-peer entre deux participants, mais il s'applique une fois que la session passe à l'utilisation du routeur de média. Voir Routeur média et modes média pour plus d'informations.
Avantages
L'activation de la connexion monopartenaire est l'une des optimisations les plus efficaces pour la vidéo multipartite :
Consommation de ressources considérablement réduite : Chaque connexion d'égal à égal s'accompagne de ses propres ports, sockets, candidats ICE, poignées de main DTLS et contextes SRTP. Avec des dizaines d'abonnés, cela augmente l'utilisation de l'unité centrale, de la mémoire et des descripteurs de fichiers. SPC regroupe tout cela en une seule connexion, libérant ainsi des ressources pour votre application.
Un contrôle des taux plus intelligent et unifié : Avec des connexions séparées entre pairs, chacun exécute son propre algorithme de contrôle de la congestion, en concurrence avec les autres pour la même capacité de liaison. Le SPC donne à l'estimateur de bande passante une vue unique et unifiée du réseau pour tous les flux de médias, ce qui se traduit par une adaptation plus stable du débit et moins d'oscillations de la qualité.
Prise en charge de sessions plus importantes sur mobile : Les appareils mobiles disposent de ressources limitées en termes de CPU, de mémoire et de réseau, et iOS en particulier limite le nombre de connexions homologues simultanées. En consolidant tous les flux d'abonnés en une seule connexion homologue, SPC permet aux clients mobiles de gérer confortablement plus de flux en une seule session.
Mise en place plus rapide de l'abonnement : L'ajout d'un nouvel abonné ne nécessite plus une négociation ICE/DTLS complète à partir de zéro. La connexion existante est réutilisée, de sorte que les nouveaux flux apparaissent plus rapidement. Ceci est particulièrement visible dans les sessions où les participants se joignent et se quittent fréquemment.
Diminution de la consommation de la batterie : Moins de chemins actifs sur le réseau signifie moins de paquets de maintien en vie et moins de réveils radio sur les mobiles, ce qui se traduit en fin de compte par une plus longue durée de vie de la batterie pour vos utilisateurs finaux.
Réduction de la complexité du réseau : Une seule connexion signifie un seul ensemble de liaisons NAT, une seule allocation TURN (si nécessaire) et un seul chemin à travers les pare-feu de l'entreprise. Cela simplifie le déploiement dans les environnements réseau restrictifs et réduit les défaillances de connectivité.
Une qualité plus prévisible à grande échelle : Comme tous les médias partagent un seul moyen de transport, la bande passante est répartie plus équitablement entre les flux. Il n'y a pas de "connexions concurrentes" qui se privent les unes des autres, ce qui permet à tous les participants de bénéficier d'une expérience plus fluide et plus cohérente.
Cas d'utilisation
Les applications bénéficient de la connexion à un seul homologue dès que le nombre de flux souscrits commence à augmenter. Voici les scénarios dans lesquels elle fait la plus grande différence :
Grandes sessions interactives : Les classes virtuelles, la collaboration de groupe et les appels vidéo multipartites peuvent avoir de nombreux participants qui publient en même temps. Au fur et à mesure que le nombre d'éditeurs augmente, chaque client qui s'abonne ouvre davantage de connexions homologues. Le SPC maintient l'utilisation des ressources à un niveau stable, quel que soit le nombre de flux auxquels un client s'abonne. Gardez à l'esprit que votre application doit toujours donner la priorité aux widgets vidéo à afficher et gérer les flux auxquels s'abonner, car il est rarement pratique d'afficher tous les participants à l'écran en même temps.
Applications axées sur le mobile : Si vos utilisateurs utilisent des téléphones et des tablettes, SPC est fortement recommandé. Moins de connexions signifie moins de sollicitation du processeur, moins de pression sur la mémoire et moins d'épuisement de la batterie.
Réseaux à bande passante limitée ou variable : Sur les liaisons Wi-Fi, cellulaires ou satellitaires encombrées, une seule boucle de contrôle de la congestion alloue la bande passante bien plus efficacement qu'un grand nombre de connexions concurrentes. Les utilisateurs bénéficient d'une vidéo plus fluide avec moins de mise en mémoire tampon.
Réseaux d'entreprise et réseaux restreints : Les pare-feu, les proxies et les NAT peuvent échouer ou ajouter de la latence lorsqu'ils doivent suivre de nombreux flux UDP simultanés. Le fait de tout réduire à une seule connexion diminue les risques de problèmes de connectivité dans le cadre de politiques de réseau strictes.
Scénarios d'entrée et de sortie rapides : Dans les salles de réunion ou dans toutes les situations où les participants passent fréquemment d'un groupe à l'autre, le SPC élimine les frais généraux de négociation par flux, ce qui rend les transitions quasi instantanées.
Événements hybrides avec partage d'écran : Lorsque les présentateurs partagent leurs écrans avec les caméras, le nombre total de flux par abonné double. Le SPC maintient les frais généraux constants, quel que soit le nombre de flux mixtes reçus par un client. Le contrôle unifié des débits ayant une visibilité sur tous les flux d'une même connexion, il donne intelligemment la priorité aux flux de partage d'écran, en allouant davantage de bande passante là où la netteté et la lisibilité sont les plus importantes.
Exigences et limites
La CPS n'est prise en charge que dans les pays suivants sessions acheminées (sessions utilisant le routeur vidéo de Vonage). Elle n'est pas disponible pour les sessions relayées, car dans une session relayée, chaque client se connecte directement à tous les autres clients, d'égal à égal. Il n'y a pas de routeur média central pour multiplexer les flux, il n'y a donc rien à consolider.
La CPS est disponible à partir de version 2.28.0 des SDK natifs et version 2.29.0 du SDK web.
La CPS est désactivé par défaut. Vous devez l'activer explicitement lors de l'initialisation de la session côté client. Voir Activation de la connexion monoposte.
Le CPS s'applique connexions d'abonnés uniquement. L'éditeur utilise toujours sa propre connexion homologue pour envoyer des médias au routeur de médias.
Activation de la connexion monoposte
Pour activer la connexion monoposte, configurez-la dans le SDK client lors de la création ou de l'initialisation de la session. Pour une présentation rapide de la connexion monopair dans le contexte de la création de session, voir l'article sur la connexion monopair dans le SDK client. Section sur la connexion monoposte du guide Création d'une session. Les sections suivantes indiquent comment l'activer dans chaque SDK pris en charge.
SDK Web
Régler le singlePeerConnection à la propriété true dans l'objet d'options que vous transmettez à OT.initSession():
var session = OT.initSession(apiKey, sessionId, {
singlePeerConnection: true
});
SDK Android
Utiliser le Session.Builder.setSinglePeerConnection() méthode :
Session session = new Session.Builder(context, apiKey, sessionId)
.setSinglePeerConnection(true)
.build();
SDK iOS
Régler le singlePeerConnection propriété sur OTSessionSettings:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.singlePeerConnection = YES;
OTSession *session = [[OTSession alloc] initWithApiKey:apiKey
sessionId:sessionId
delegate:self
settings:settings];
SDK Windows
Régler le SinglePeerConnection sur la propriété Session.Builder classe :
var session = new Session.Builder(Context.Instance, apiKey, sessionId)
{
SinglePeerConnection = true
}.Build();
SDK macOS
Utiliser le otc_session_settings_set_single_peer_connection() fonction :
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);
SDK Linux
Utiliser le otc_session_settings_set_single_peer_connection() fonction :
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);
SDK React Native
Régler le enableSinglePeerConnection à la propriété true dans le options prop de la OTSession de la composante :
<OTSession
apiKey={apiKey}
sessionId={sessionId}
token={token}
options={{ enableSinglePeerConnection: true }}
/>
Interaction avec d'autres fonctionnalités
Vidéo évolutive
La connexion monopartenaire fonctionne parallèlement à vidéo évolutive. Lorsque les deux fonctions sont activées, le routeur multimédia continue de fournir des couches de qualité multiple à chaque abonné par l'intermédiaire de la connexion homologue partagée. Chaque abonné peut recevoir une résolution et une fréquence d'images différentes en fonction des conditions du réseau, exactement comme il le ferait avec des connexions homologues séparées.
Repli audio
Repli audio continue à fonctionner normalement lorsque la fonction SPC est activée. Si le réseau d'un abonné se dégrade, le routeur multimédia peut toujours abandonner la composante vidéo et ne fournir que l'audio pour le flux concerné, indépendamment des autres flux acheminés sur la même connexion homologue.
Observabilité du client et statistiques du côté de l'expéditeur
Lorsque la CPS est activée, la statistiques côté expéditeur L'estimation de la bande passante est partagée entre tous les abonnés de la connexion homologue unique. Le débit maximal représente le débit le plus élevé que la connexion homologue peut estimer, tandis que le débit actuel reflète le débit de chaque groupe audio-vidéo. Lors de l'évaluation de la bande passante disponible, calculez l'estimation de la bande passante totale en additionnant les estimations des différents faisceaux.
Pour plus d'informations, voir le guide d'observabilité du client.
Chiffrement de bout en bout
Cryptage de bout en bout est compatible avec la connexion monoposte. Les flux de médias sont cryptés individuellement avant d'être multiplexés sur la connexion partagée.
Meilleures pratiques
Activer le SPC pour les sessions comportant de nombreux clients de publication : Si votre application a régulièrement des sessions avec plus de quelques participants, l'activation de SPC peut réduire sensiblement la consommation de ressources et améliorer la stabilité.
Test sur les appareils cibles : Bien que le SPC réduise l'utilisation des ressources en général, il faut toujours valider les appareils spécifiques et les conditions de réseau que vos utilisateurs rencontreront.
Surveiller la bande passante à l'aide de statistiques du côté de l'expéditeur : Étant donné que tous les flux d'abonnés partagent un transport unique, utilisez les statistiques côté émetteur pour connaître la bande passante totale disponible et adapter votre application en conséquence.