Por que um aplicativo via 'ssh -X' é mais lento que o vncviewer via 'ssh -X'?

4

Pergunta muito simples com efeito estranho:

Se eu executo um programa via x-forward, ele é muito ruim quando se trata de animações. Por exemplo:

ssh -X <USER>@<SERVER> "application"

Mas se eu iniciar um servidor vnc remoto e conectar-me a ele remotly via ssh, as animações e todas as outras coisas serão muito mais fáceis. Por exemplo:

DSPLY=1 && ssh -X <USER>@<SERVER> "vncserver :$DSPLY ; vncviewer localhost:$DSPLY"

Na minha opinião, é (mais ou menos) a mesma quantidade de dados que precisam ser transmitidos via ssh. Então, por que há uma diferença tão grande na velocidade?

    
por Tik0 26.01.2014 / 17:04

3 respostas

3

O problema é provavelmente o próprio protocolo X. É muito conversável e, embora a quantidade bruta de dados seja bastante pequena, ela causa muitas idas e voltas que se tornam um problema em conexões WAN.

Sua construção inicia um xserver remoto ao qual o aplicativo que você deseja usar está se conectando. Então, do ponto de vista da aplicação, o xserver é local e os atrasos de ida e volta são pequenos. Do ponto de vista da arquitetura, as janelas vnc são muito simples, portanto, sua janela do vncviewer precisa de muito menos bate-papo e viagens de ida e volta para funcionar corretamente, em comparação com aplicativos "reais".

Além disso, até mesmo as implementações vnc clássicas visam especificamente esse problema de RTD reduzindo proativamente o bate-papo requerido, o que também resulta em chat reduzido entre a janela do vncviewer e seu xserver local.

    
por 27.01.2014 / 15:04
1

Sem saber, eu diria que se trata do protocolo de criptografia usado. Eu não sei o suficiente sobre isso para depurar ou dar mais detalhes, mas tente mudar o protocolo que você usa e você verá um grande aumento na capacidade de resposta de seus programas X exportados.

Então, em vez de ssh -X user@host , tente

ssh -YC4c arcfour,blowfish-cbc user@host

Para mais informações, consulte aqui (embora eu recomende usar -Y em vez de -X para velocidade).

    
por 26.01.2014 / 17:53
1

É provável que o VNC esteja aplicando alguma compactação específica do protocolo. Diferentes implementações VNC padrão para diferentes algoritmos de compressão, e negociação de compressão é mal documentada, por isso é difícil ser específico.

Tente usar a opção -C para SSH. Dependendo da aplicação e da implementação do VNC, pode dar resultados melhores ou piores ao VNC, e ssh -C + VNC pode ser melhor ou pior que o VNC sozinho.

    
por 27.01.2014 / 00:09