Cybersécurité, Virtualisation & Intelligence Artificielle... VIRTU-DESK - Technologies de virtualisation et sécurisation de l'environnement utilisateurs.

MSRDC et Microsoft Teams – UX garantie avec RDP ?

Francis MILLOT Par Le mercredi, 30 août 2023 0

Dans Virtualisation de postes de travail

TeamsLorsque l’on parle de « client RDP » (client nativement intégré à Microsoft Windows), la majorité des personnes qui l’utilisent, l’associent à MSTSC (Microsoft Terminal Services Client). Et on peut aisément le comprendre, car MSTSC est le client RDP classique et historique de Microsoft, livré avec Windows depuis de très nombreuses années.

En revanche, beaucoup moins de personnes savent qu’il existe depuis quelques temps déjà, un nouveau client RDP livré séparément de Windows : MSRDC (Microsoft Remote Desktop Client). Ce nouveau client RDP, plus « moderne », a spécialement été développé pour couvrir les besoins d’accès à Azure Virtual Desktop, et c’est très certainement pourquoi, bon nombre d’entre-nous ne connaissent pas son existence. Nous sommes effectivement peu nombreux aujourd’hui à utiliser des postes virtuels AVD (Azure Virtual Desktop) dans Azure.

La connexion sur les environnements Azure Virtual Desktop nécessite l'utilisation de MSRDC, car le client RDP, intégré à Windows (MSTSC), n’est pas suffisamment optimisé pour ce type d’environnement. Même si les deux clients s’appuient le même noyau RDP, leurs interfaces utilisateurs diffèrent et ils ne prennent pas en charge exactement les mêmes fonctionnalités.

Microsoft Teams – UX garantie avec RDP ?

Commençons déjà par définir ce que veut dire « UX ». Le terme UX est l’acronyme de l'anglais « User eXperience », donc en français, l’expérience utilisateur. Comme c’est maintenant plus clair pour nous tous, la question est donc de savoir s’il est possible de garantir une expérience utilisateur satisfaisante dans Microsoft Teams au travers du protocole Microsoft RDP (Remote Desktop Protocol) …

Microsoft Teams, dans un environnement VDI, prend nativement en charge la conversation et la collaboration. Sur Azure Virtual Desktop, avec l’optimisation des médias (WebRTC), il est également possible de gérer les fonctionnalités d’appel et de réunion. Pour ces deux fonctionnalités, le client MSRDC gère les données audio et vidéo en local et les redirige directement vers le poste de votre interlocuteur Teams qui se trouve sur le même réseau.

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 :

  1. Système d'exploitation « Poste de travail »
    • Processeurs virtuels : 2 cœurs
    • Mémoire RAM : 4 Go
    • Stockage : 40 Go
  2. 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 :

  1. Les processus du client Teams gèrent tous les signaux multimédias de l'appel ou de la réunion.
  2. 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.
  3. 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).

La redirection A/V pour Teams via le client MSRDC, permet quant à elle de décharger (ou contourner) le poste virtuel AVD, pour envoyer directement (peer-to-peer) les données audiovisuelles au client de l'appel s'il se trouve sur le même réseau, où vers le Cloud Teams si les participants sont à distance.

Nous avons donc notre réponse : Il est possible de garantir une expérience utilisateur satisfaisante avec Microsoft Teams au travers du protocole Microsoft RDP.

PS : Lire ce très bon article (billet de septembre 2021) de Torbjorn Granheden qui confirme avec des métriques à la clé les apports de le redirection des médias Teams sur AVD. Vous y trouverez également des conseils sur les optimisations de Teams, les performances, le troubleshooting et les limitations.

Des alternatives à Azure Virtual Desktop ?

Malheureusement, à partir de l’interface graphique de MSRDC, il n’est possible de lancer des connexions qu’à des postes virtuels Azure Virtual Desktop. Et ça, c’est bien dommage, car contrairement à MSTSC, le client MSRDC exige la signature RDP côté serveur, ce qui empêche la gestion des paramètres côté client. Son interface ne permet donc pas de spécifier un serveur de destination ou même de modifier des options pour lancer des connexions à des instances RDP locales. Il faut obligatoirement passer par un fichier « .RDP » pour personnaliser manuellement la configuration.

Fort heureusement, dans son produit Remote Desktop Manager, l'éditeur Devolutions a réussi à intégrer MSRDC pour les connexions RDP standard, c’est-à-dire à la fois en mode intégré et en mode externe. MSRDC contient effectivement une DLL (rdclientax.dll) qui expose la même interface ActiveX RDP que la DLL intégrée de MSTSC (mstscax.dll).

Nul doute que d’autres éditeurs, et plus particulièrement ceux qui proposent des solutions VDI qui s’appuient sur le protocole Microsoft RDP, telle que Systancia Workplace, vont très vite implémenter MSRDC à leurs gestionnaires de connexions pour bénéficier des optimisations multimédias, et permettre à leurs clients d’utiliser des outils tels que Microsoft Teams en toute sérénité sur leurs plateformes VDI.

36 votes. Moyenne 5 sur 5.
Vous devez être connecté pour poster un commentaire