Por que os clientes RDP no Linux são muito mais lentos que no Windows?

10

Eu tenho um PC remoto com Windows 8.1, ao qual estou me conectando usando o RDP dos clientes Windows 7 e Linux. Notei que o desempenho, por exemplo, ao rolar a tela é muito melhor no Windows do que em qualquer distribuição Linux. Estou usando rdesktop, Remmina, GNOME-RDP, em todos os lugares a atualização da tela é lenta e instável, como o VNC. Mas o RDP não funciona como o VNC , ou funciona? Por que é assim e qual é o cliente RDP mais rápido para Linux? Talvez o Cliente de Conexão de Área de Trabalho Remota no Wine?

niutech
fonte
2
RDP é um protocolo proprietário então eu acho que os outros têm da engenharia, seus programas, portanto, não saber os mecanismos subjacentes que terão de fazer um melhor palpite o que fazer
gwillie
meu cliente RDP android (pela Microsoft) funciona melhor no meu celular do que qualquer RDP linux no meu laptop i7
Kenneth Wilke

Respostas:

13
  1. Existem várias versões do protocolo RDP:

    • 4.0 original, que é um clone do protocolo ITU-T T.128
    • 5.0 - que ainda é usado pelo rdesktop (e nem totalmente)
    • 5.1, 5.2, 6.0, 6.1, 7.0, 8.1 e 8.1

Como você pode imaginar, cada nova versão do RDP é melhor, não apenas introduzindo novos recursos, mas também melhorando ainda mais o desempenho e a experiência geral do usuário.

  1. Como escrevi acima, o rdesktop ainda implementa apenas um subconjunto do protocolo RDP 5.0 (versão usada no Windows 2000). Esta versão é menos otimizada que pelo menos 6.0 (lançada no Windows Vista), o que foi uma enorme melhoria de desempenho.

  2. Além disso, todo o sistema de janelas X11 usado no Linux é um grupo de aplicativos de usuário, enquanto o Microsoft Windows processa eventos gráficos (como rolagem de tela) diretamente em seu kernel.

A rolagem de tela (e janelas de aplicativos) é uma operação que exige a cópia de muito conteúdo de memória de um local para outro. Essa operação é muito mais rápida no kernel do sistema do que nos aplicativos da terra do usuário.

E isso também afeta o desempenho de cada implementação de RDP.

Tomasz Klim
fonte
Obrigado, mas e o FreeRDP? Qual versão do RDP ele implementa?
Niutech 30/07/2015
1
Encontrei várias informações diferentes sobre o FreeRDP, mas provavelmente ele suporta o subconjunto de 7.0 ou 7.1. Se você tiver tempo, aqui você tem mais informações sobre isso: github.com/FreeRDP/FreeRDP/wiki/Reference-Documentation
Tomasz Klim
Houve algum progresso nisso ultimamente?
Royi
Por que a rolagem da tela deve ser lenta ou exigir muita cópia da memória, em vez de simples operações gpu blt para mover o conteúdo e depois desenhar o novo conteúdo visível?
whitneyland
0

Como você pode ver na resposta de gwilli, o RDP não é o RDP, porque existem muitas versões diferentes do protocolo com muitas extensões e o cliente e o servidor estão negociando uma versão do protocolo que ambos entendem.

É da natureza das coisas que duas versões do Windows provavelmente concordam com uma versão mais nova e com melhor desempenho do protocolo.

Não posso dizer nada qualificado sobre o desempenho do cliente Linux RDP, porque não conheço nenhum parâmetro de referência sobre implementações de código aberto RDP. Caso deseje comparar clientes, verifique quais bibliotecas subjacentes os clientes usam e não apenas o cliente. Isso tornaria sua pesquisa mais eficiente.

Jodka Lemon
fonte