Por que seria mais rápido pular o SSH com pseudo-tty versus forwarding?

3

Tenho notado que, na rede do meu escritório, as conexões SSH de salto múltiplo usando o método "pseudo-tty" têm melhor desempenho (consulte a última nota) do que o método "encaminhamento". Por que isso seria o caso?

Em outras palavras, por que:

ssh -A -X -tt server1 ssh -X -tt server2  # pseudo-tty

resulta em um desempenho muito melhor do que:

ssh -o ‘ProxyCommand=ssh -A -X -W %h:%p server1’ -X server2  # forwarding

?

Outras notas:

  • Estou no meu laptop e o servidor1 e o servidor2 têm o mesmo hardware.
  • No meu laptop, eu tenho o Windows 7 com o ssh e o xwin do Cygwin. Tem um processador decente (i7 4610M ou similar).
  • O servidor1 e o servidor2 são o RHEL 6.5.
  • Não meço a taxa de bits, mas os aplicativos X11 são significativamente mais rápidos com o método pseudo-tty (há atraso visível no encaminhamento).
por toast 31.12.2015 / 19:18

1 resposta

0

Acredito que sua primeira linha de comando estalará uma conexão com server1 otimizada para sessão interativa (com baixa resposta de atraso, mas menor troughtput), mas o método forwading abrirá uma sessão com ToS bit definido como MaximizeTroughtput , com maior tempo de resposta. Assim menos otimizado para sessões interativas.

Isso pode vir do fato de que ssh e sshd automaticamente definirão os ToS como por rfc1349. O padrão é lowdelay para sessões interativas e taxa de transferência para não-interativo (geralmente sftp, scp, no caso de encaminhamento de porta).

Extrair de man ssh_config :

 IPQoS   Specifies the IPv4 type-of-service or DSCP class for connections.  Accepted values are af11, af12, af13, af21, af22, af23, af31, af32, af33, af41, af42, af43, cs0, cs1, cs2, cs3, cs4, cs5, cs6, cs7, ef, lowdelay,
         throughput, reliability, or a numeric value.  This option may take one or two arguments, separated by whitespace.  If one argument is specified, it is used as the packet class unconditionally.  If two values are speci‐
         fied, the first is automatically selected for interactive sessions and the second for non-interactive sessions.  The default is lowdelay for interactive sessions and throughput for non-interactive sessions.

ps: você pode tentar:

ssh -o ‘ProxyCommand="ssh -A -X -W %h:%p -o IPQoS=lowdelay server1"’ -X server2

    
por 05.06.2017 / 11:06