WebRTC - Peer-to-peer Teams sur AVD (sur le même LAN)
En fait, Microsoft a implémenté dans son protocole RDP, un canal interne dédié aux médias, entre le client Teams, installé dans le poste virtuel AVD (dans Azure) et le client MSRDC installé sur le poste local Windows 10/11 de l’utilisateur. Avec WebRTC, ce canal permet de contourner les aller-retours qui se produisent lors de l’utilisation de la vidéo et du son dans Teams sur le poste virtuel AVD.
Il va de soi qu'en parallèle, les recommandations liées à Azure Virtual Desktop soient respectées, qu'elles soient relatives au réseau ou encore à la configuration des postes virtuels. La configuration minimale des VMs est la suivante :
- Système d'exploitation « Poste de travail »
- Processeurs virtuels : 2 cœurs
- Mémoire RAM : 4 Go
- Stockage : 40 Go
- Système d'exploitation « Serveur »
- Processeurs virtuels : 4, 6 ou 8 cœurs (respect NUMA)
- Mémoire RAM : 512 Mo à 1 Go par utilisateur
- Stockage : 40 Go à 60 Go
Echanges Teams entre deux participants
Si les participants Teams sont sur le même réseau, le séquencement d'envoi (vidéo/son) est le suivant :
- Sans MSRDC et le canal interne dédié aux médias :
- 1. Du poste utilisateur A (local) vers le poste virtuel AVD (dans Azure)
- 2. Du poste virtuel AVD vers le Cloud Microsoft Teams (dorsale Azure)
- 3. Du Cloud Microsoft Teams vers le poste utilisateur B (local).
- Avec MSRDC et le canal interne dédié aux médias :
- 1. Du poste utilisateur A (local) vers le poste utilisateur B (local) peer-to-peer
Au lieu d'envoyer les images de la caméra du client MSRDC vers le poste virtuel AVD, puis du poste AVD vers le Cloud Microsoft Teams, qui les renvoie à votre interlocuteur distant Teams, il est possible de les lui envoyer directement depuis le client MSRDC du poste local (si vous êtes en communication avec lui bien entendu).
Echanges Teams entre plusieurs participants
Si les participants Teams échangent au travers de réseaux distants, le séquencement d'envoi (vidéo/son) est le suivant :
- Sans MSRDC et le canal interne dédié aux médias :
- 1. Du poste utilisateur A (local) vers le poste virtuel AVD (dans Azure)
- 2. Du poste virtuel AVD vers le Cloud Microsoft Teams (Dorsale Azure)
- 3. Du Cloud Microsoft Teams vers les postes utilisateurs B, C, D, E, ... (locaux).
- Avec MSRDC et le canal interne dédié aux médias :
- 1. Du poste utilisateur A (local) vers le Cloud Microsoft Teams
- 2. Du Cloud Microsoft Teams vers les postes utilisateurs B, C, D, E, ... (locaux)
Le média est directement dirigé vers le Cloud Microsoft Teams et c’est lui qui le redistribue à tous les participants. Le canal de retour sera toujours le client Teams dans le poste virtuel AVD. On optimise donc principalement la transmission des médias, mais la réception sera quand même déchargée du contenu envoyé, ce qui permet malgré tout une optimisation satisfaisante.
Processus d'optimisation
Le processus d’optimisation se compose des trois éléments suivants :
- Les processus du client Teams gèrent tous les signaux multimédias de l'appel ou de la réunion.
- Teams utilise ensuite le service de redirection WebRTC de Remote Desktop (alias Teams WebSocket Service) pour permettre de rediriger la sortie la mieux adaptée du trafic média, du poste local, plutôt que du poste virtuel AVD.
- Enfin, le client MSRDC redirige le trafic multimédia directement vers l'interlocuteur distant ou le Cloud Microsoft Teams s'il y a plusieurs participants distants à la réunion.
Limiter la surconsommation processeur avec WebRTC
Par défaut, les postes virtuels (AVD ou bureaux virtuels en général) n'utilisent pas de puissance graphique. Si vous n'utilisez pas l'optimisation des médias (WebRTC), l'exécution d’un appel ou d'une réunion Teams va entraîner une forte consommation CPU, En effet, lors d'un chat vidéo Teams (utilisateur A) sur un poste virtuel, l'audio et la vidéo sont encodés et décodés plusieurs fois avant d'atteindre le poste d'un autre participant (utilisateur B), ce qui génère une latence importante avec un fort impact sur la performance et la qualité vidéo. Cette dégradation est principalement liée à une surconsommation processeur car le ré-encodage sur une VM sans GPU est intensif en termes de CPU, et c’est encore plus vrai en environnement multisessions. Ca ne veut pas dire pour autant que tous les problèmes vont disparaitre si on alimente les VMs avec un GPU.
Avec l'optimisation des médias (WebRTC), l'expérience utilisateur est meilleure, car il n'y a pas de surconsommation CPU (pas besoin de GPU), c'est directement le poste physique qui est utilisé pour encoder et décoder l'audio et la vidéo. Le diagramme suivant fournit une vue d’ensemble de l’architecture (basic) de Teams sur VDI, avec appels et réunions (cliquez sur la photo pour complément d'information).