Pourquoi les clients RDP sous Linux sont-ils beaucoup plus lents que sous Windows?

10

J'ai un PC distant Windows 8.1, auquel je me connecte à l'aide de RDP à partir de clients Windows 7 et Linux. J'ai remarqué que les performances, par exemple lors du défilement, sont bien meilleures sous Windows que sur n'importe quelle distribution Linux. J'utilise rdesktop, Remmina, GNOME-RDP, partout où le rafraîchissement de l'écran est lent et saccadé, comme VNC. Mais RDP ne fonctionne pas comme VNC , ou non? Pourquoi en est-il ainsi et quel est le client RDP le plus rapide pour Linux? Peut-être un client de connexion Bureau à distance sous Wine?

niutech
la source
2
RDP est un protocole propriétaire, donc je suppose que les autres ont inversé l'ingénierie de leurs programmes, donc ne connaissant pas les mécanismes sous-jacents, ils devront faire une meilleure estimation de ce qu'il faut faire
gwillie
mon client rdp android (par microsoft) fonctionne mieux sur mon téléphone que n'importe quel rdp linux sur mon ordinateur portable i7
Kenneth Wilke

Réponses:

13
  1. Il existe plusieurs versions du protocole RDP:

    • version 4.0 d'origine, qui est un clone du protocole UIT-T T.128
    • 5.0 - qui est toujours utilisé par rdesktop (et même pas complètement)
    • 5.1, 5.2, 6.0, 6.1, 7.0, 8.1 et 8.1

Comme vous pouvez l'imaginer, chaque nouvelle version de RDP est meilleure, non seulement en introduisant de nouvelles fonctionnalités, mais également en améliorant davantage les performances et l'expérience utilisateur globale.

  1. Comme je l'ai écrit ci-dessus, rdesktop implémente toujours uniquement un sous-ensemble du protocole RDP 5.0 (version utilisée sur Windows 2000). Cette version est moins optimisée qu'au moins 6.0 (publiée avec Windows Vista), ce qui était une énorme amélioration des performances.

  2. De plus, l'ensemble du système de fenêtres X11 utilisé sous Linux est un groupe d'applications utilisateur, tandis que Microsoft Windows traite les événements graphiques (comme le défilement d'écran) directement dans son noyau.

Le défilement de l'écran (et des fenêtres d'application) est une opération qui nécessite de copier une grande partie du contenu de la mémoire d'un endroit à un autre. Cette opération est beaucoup plus rapide dans le noyau du système que dans les applications utilisateur.

Et cela affecte également les performances de chaque implémentation RDP.

Tomasz Klim
la source
Merci, mais qu'en est-il de FreeRDP? Quelle version RDP implémente-t-elle?
niutech
1
J'ai trouvé plusieurs informations différentes sur FreeRDP, mais il supporte probablement un sous-ensemble de 7.0 ou 7.1. Si vous avez le temps, ici vous avez plus d'informations à ce sujet: github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Tomasz Klim
Y a-t-il eu des progrès à ce sujet ces derniers temps?
Royi
Pourquoi le défilement de l'écran devrait-il être lent ou nécessiter beaucoup de copie de mémoire au lieu de simples opérations gpu blt pour déplacer le contenu, puis dessiner le nouveau contenu visible?
whitneyland
0

Comme vous pouvez le voir dans la réponse de gwilli, RDP n'est pas RDP car il existe de nombreuses versions différentes du protocole avec de nombreuses extensions et le client et le serveur négocient une version de protocole qu'ils comprennent tous les deux.

Il est dans la nature des choses que deux versions de Windows conviennent probablement d'une version plus récente et plus performante du protocole.

Je ne peux rien dire de qualifié concernant les performances du client Linux RDP, car je ne connais pas de références concernant les implémentations RDP open source. Si vous souhaitez comparer des clients, vous devez regarder quelles bibliothèques sous-jacentes les clients utilisent et pas seulement le client. Cela rendrait votre recherche plus efficace.

Jodka Lemon
la source