Чому клієнти RDP в Linux набагато повільніше, ніж у Windows?


10

У мене є віддалений ПК з Windows 8.1, до якого я підключаюсь за допомогою RDP від ​​клієнтів Windows 7 та Linux. Я помітив, що продуктивність, наприклад, при прокрутці набагато краща в Windows, ніж у будь-якому дистрибутиві Linux. Я використовую rdesktop, Remmina, GNOME-RDP, скрізь оновлення екрану відбувається повільно і холодно, як VNC. Але RDP не працює як VNC , чи це робить? Чому це так і який найшвидший клієнт RDP для Linux? Можливо, клієнт підключення до віддаленого робочого столу під Wine?


2
RDP є власницьким протоколом, тому я думаю, що інші змінили свої програми, тому не знаючи основних механізмів, їм доведеться найкраще здогадатися, що робити
gwillie

мій клієнт Android RDP (від Microsoft) працює на моєму телефоні краще, ніж будь-який Linux rdp на моєму ноутбуці i7
Кеннет Уілк

Відповіді:


13
  1. Існує кілька версій протоколу RDP:

    • оригінал 4.0, який є клоном протоколу ITU-T T.128
    • 5.0 - який досі використовується rdesktop (і навіть не повністю)
    • 5.1, 5.2, 6.0, 6.1, 7.0, 8.1 та 8.1

Як ви можете собі уявити, кожна нова версія RDP є кращою не тільки шляхом введення нових функцій, але і шляхом подальшого підвищення продуктивності та загального користувальницького досвіду.

  1. Як я писав вище, rdesktop все ще реалізує лише підмножину протоколу RDP 5.0 (версія, що використовується в Windows 2000). Ця версія менш оптимізована, ніж щонайменше 6,0 (випущена з Windows Vista), що було величезним покращенням продуктивності.

  2. Крім того, вся віконна система X11, що використовується в Linux, являє собою групу додатків, в той час як Microsoft Windows обробляє графічні події (як прокрутка екрану) безпосередньо в своєму ядрі.

Прокручування екрана (і вікон додатків) - це операція, що вимагає копіювання великого вмісту пам'яті з одного місця в інше. Ця операція відбувається значно швидше в системному ядрі, ніж у програмах userland.

І це також впливає на ефективність кожної реалізації RDP.


Дякую, а як щодо FreeRDP? Яку версію RDP він застосовує?
niutech

1
Я знайшов кілька різних відомостей про FreeRDP, але, ймовірно, він підтримує підмножину 7.0 або 7.1. Якщо у вас є час, тут у вас є додаткова інформація про це: github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Tomasz Klim

Чи останнім часом на цьому спостерігається прогрес?
Рой

Чому прокрутка екрана повинна бути повільною або вимагати багато копіювання пам’яті замість простих gpu blt ops для переміщення вмісту, а потім малювання щойно видимого вмісту?
Уїтніленд

0

Як видно з відповіді gwilli, RDP не є RDP, оскільки існує багато різних версій протоколу з багатьма розширеннями, і клієнт і сервер ведуть переговори щодо версії протоколу, яку вони обидва розуміють.

У природі речей дві версії Windows, ймовірно, узгоджують нову та більш якісну версію протоколу.

Я не можу сказати нічого кваліфікованого щодо продуктивності клієнта Linux RDP, тому що не знаю жодних орієнтирів щодо впровадження RDP з відкритим кодом. У випадку, якщо ви хочете порівняти клієнтів, слід ознайомитись із основними бібліотеками, які використовують клієнти, а не лише клієнта. Це зробить ваш пошук більш ефективним.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.