Warum sind RDP-Clients unter Linux viel langsamer als unter Windows?

10

Ich habe einen Windows 8.1-Remote-PC, mit dem ich über RDP von Windows 7- und Linux-Clients aus eine Verbindung herstelle. Mir ist aufgefallen, dass die Leistung zB beim Scrollen unter Windows viel besser ist als unter jeder Linux-Distribution. Ich verwende rdesktop, Remmina, GNOME-RDP, überall dort, wo die Bildschirmaktualisierung langsam und abgehackt ist, wie bei VNC. Aber RDP funktioniert nicht wie VNC , oder? Warum ist es so und was ist der schnellste RDP-Client für Linux? Vielleicht Remotedesktopverbindungsclient unter Wine?

Niutech
quelle
2
RDP ist ein proprietäres Protokoll, daher haben die anderen wohl ihre Programme rückgängig gemacht und wissen daher nicht, welche Mechanismen ihnen zugrunde liegen müssen, um zu erraten, was zu tun ist
gwillie
Mein Android-RDP-Client (von Microsoft) funktioniert auf meinem Handy besser als jeder Linux-RDP auf meinem i7-Laptop
Kenneth Wilke

Antworten:

13
  1. Es gibt mehrere Versionen des RDP-Protokolls:

    • Original 4.0, ein Klon des ITU-T T.128-Protokolls
    • 5.0 - wird immer noch von rdesktop verwendet (und nicht einmal vollständig)
    • 5.1, 5.2, 6.0, 6.1, 7.0, 8.1 und 8.1

Wie Sie sich vorstellen können, ist jede neue Version von RDP besser, nicht nur durch die Einführung neuer Funktionen, sondern auch durch die weitere Verbesserung der Leistung und der allgemeinen Benutzererfahrung.

  1. Wie ich oben geschrieben habe, implementiert rdesktop immer noch nur eine Teilmenge des RDP 5.0-Protokolls (Version, die unter Windows 2000 verwendet wird). Diese Version ist weniger optimiert als mindestens 6.0 (mit Windows Vista veröffentlicht), was eine enorme Leistungsverbesserung darstellt.

  2. Darüber hinaus ist das gesamte unter Linux verwendete X11-Fenstersystem eine Gruppe von Userland-Anwendungen, während Microsoft Windows grafische Ereignisse (wie das Scrollen auf dem Bildschirm) direkt in seinem Kernel verarbeitet.

Das Scrollen auf dem Bildschirm (und in Anwendungsfenstern) erfordert das Kopieren vieler Speicherinhalte von einem Ort an einen anderen. Dieser Vorgang ist im Systemkern viel schneller als in Userland-Anwendungen.

Dies wirkt sich auch auf die Leistung der einzelnen RDP-Implementierungen aus.

Tomasz Klim
quelle
Danke, aber wie wäre es mit FreeRDP? Welche RDP-Version implementiert es?
Niutech
1
Ich habe verschiedene Informationen zu FreeRDP gefunden, aber wahrscheinlich unterstützt es eine Teilmenge von 7.0 oder 7.1. Wenn Sie Zeit haben, haben Sie hier weitere Informationen dazu: github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Tomasz Klim
Hat dies in letzter Zeit Fortschritte gemacht?
Royi
Warum sollte das Scrollen auf dem Bildschirm langsam sein oder viel Speicherkopie anstelle einfacher GPU-Blt-Operationen erfordern, um den Inhalt zu verschieben und dann den neu sichtbaren Inhalt zu zeichnen?
Whitneyland
0

Wie Sie der Antwort von gwilli entnehmen können, ist RDP nicht RDP, da es viele verschiedene Versionen des Protokolls mit vielen Erweiterungen gibt und Client und Server über eine Protokollversion verhandeln, die beide verstehen.

Es liegt in der Natur der Sache, dass sich zwei Windows-Versionen wahrscheinlich auf eine neuere und leistungsfähigere Version des Protokolls einigen.

Ich kann nichts Qualifiziertes in Bezug auf die Leistung des Linux-RDP-Clients sagen, da mir keine Benchmarks für Open-Source-RDP-Implementierungen bekannt sind. Wenn Sie Clients vergleichen möchten, sollten Sie sich ansehen, welche zugrunde liegenden Bibliotheken die Clients verwenden und nicht nur den Client. Dies würde Ihre Suche effizienter machen.

Jodka Zitrone
quelle