3

Я заметил, что в сети моего офиса многоскачковые SSH-соединения, использующие метод "pseudo-tty", работают лучше (см. Последнее примечание), чем при использовании метода "forwarding". Почему это так?

Другими словами, почему бы:

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

привести к гораздо лучшей производительности, чем:

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

?

Другие заметки:

  • Я на своем ноутбуке, а server1 и server2 имеют одинаковое оборудование.
  • На моем ноутбуке у меня есть Windows 7 с Cygwin ssh и xwin. У него приличный процессор (i7 4610M или аналогичный).
  • И server1, и server2 соответствуют RHEL 6.5.
  • Я не измерял битрейт, но приложения X11 значительно быстрее с псевдо-tty методом (есть видимая задержка с пересылкой).

1 ответ1

0

Я думаю, что ваша первая командная строка установит соединение с server1 оптимизированным для интерактивного сеанса (с откликом с низкой задержкой, но с меньшей трудоемкостью), но метод пересылки откроет сеанс с битом ToS, установленным в MaximizeTroughtput , с более высоким временем отклика. Таким образом, менее оптимизированы для интерактивных сессий.

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

Извлечение из 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: вы можете попробовать:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .