Почему клиенты RDP в Linux намного медленнее, чем в Windows?

10

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

niutech
источник
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 обрабатывает графические события (такие как прокрутка экрана) непосредственно в своем ядре.

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

И это также влияет на производительность каждой реализации RDP.

Томаш Клим
источник
Спасибо, а как насчет FreeRDP? Какую версию RDP он реализует?
niutech
1
Я нашел несколько разных сведений о FreeRDP, но, вероятно, он поддерживает подмножество 7.0 или 7.1. Если у вас есть время, здесь у вас есть больше информации об этом: github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Томаш Клим
Был ли какой-либо прогресс в этом направлении в последнее время?
Рой
Почему прокрутка экрана должна быть медленной или требовать много памяти для копирования вместо простых операций gpu blt для перемещения содержимого и последующего рисования нового видимого содержимого?
Whitneyland
0

Как видно из ответа gwilli, RDP не является RDP, потому что существует много разных версий протокола со многими расширениями, а клиент и сервер ведут переговоры о версии протокола, которую они оба понимают.

По сути, две версии Windows, вероятно, согласуются с более новой и более эффективной версией протокола.

Я не могу сказать ничего квалифицированного в отношении производительности Linux RDP-клиента, потому что я не знаю ни одного эталона относительно реализации RDP с открытым исходным кодом. Если вы хотите сравнить клиентов, вы должны посмотреть, какие библиотеки используют клиенты, а не только клиент. Это сделает ваш поиск более эффективным.

Йодка Лимон
источник