Mosh (программное обеспечение)

редактировать
Mosh
Снимок экрана Mosh (программное обеспечение), показывающий предупреждение о прерывистом сетевом подключении и функцию локального эха Mosh, показывает предупреждение о прерывистом сетевом подключении и локальном эхе.
Автор (ы) оригинала Кейт Винштейн
Первый выпуск 12 марта 2012 г. ; 9 лет назад ( 2012-03-12)
Стабильный выпуск 1.3.2 / 22 июля 2017 г. ; 4 года назад ( 2017-07-22)
Репозиторий
Операционная система Unix-подобные системы
Тип Утилита
Лицензия GNU GPLv3 с исключениями OpenSSL и iOS
Веб-сайт мош.org Отредактируйте это в Викиданных

В вычислении, Мош (мобильная оболочка) представляет собой инструмент, используемый для подключения с клиентского компьютера на сервер через Интернет, чтобы запустить удаленный терминал. Mosh похож на SSH с дополнительными функциями, предназначенными для повышения удобства использования для мобильных пользователей. Основные особенности:

  • Mosh поддерживает сеанс, даже когда он « перемещается » (когда конечная точка клиента меняет IP- адреса), например, при переходе в другую сеть Wi-Fi или при переходе с Wi-Fi на 3G.
  • Mosh поддерживает терминальный сеанс (не «соединение» в смысле TCP, потому что Mosh использует UDP ) даже тогда, когда пользователь теряет подключение к Интернету или переводит своего клиента в « спящий режим ». Для сравнения, в таких случаях SSH может потерять соединение из-за истечения времени ожидания TCP.
  • Клиент Mosh пытается реагировать на события клавиатуры (ввод, стирание символов с помощью клавиши [Delete] и т. Д.), Не дожидаясь задержки сети. Он использует адаптивную систему, которая предсказывает, будет ли приложение, работающее на сервере, отражать нажатия клавиш пользователя или удаления.

Основными недостатками mosh являются дополнительные требования к серверу, отсутствие некоторых специальных функций SSH (таких как переадресация соединений) и отсутствие собственного клиента Windows.

СОДЕРЖАНИЕ
  • 1 Дизайн
  • 2 Поддерживаемые платформы
  • 3 Производительность
    • 3.1 Роуминг
    • 3.2 Потеря пакетов
    • 3.3 Местное эхо
  • 4 недостатка
    • 4.1 Предварительные требования на сервере
    • 4.2 Один порт на соединение
    • 4.3 Падение вывода и отсутствие обратной прокрутки терминала
    • 4.4 Отсутствие перенаправления ssh-agent
    • 4.5 Отсутствие пересылки X11
  • 5 См. Также
  • 6 Ссылки
Дизайн

Mosh работает на другом уровне, чем SSH. В то время как SSH передает поток байтов в каждом направлении (от сервера к клиенту или от клиента к серверу), используя TCP, Mosh запускает эмулятор терминала на сервере, чтобы выяснить, что должно быть на экране. Затем сервер передает этот экран клиенту с различной частотой кадров в зависимости от скорости сети. Это позволяет Mosh экономить сетевой трафик при медленных или прерывистых соединениях.

Поддерживаемые платформы

Mosh доступен для большинства дистрибутивов Linux, macOS, FreeBSD, NetBSD и OpenBSD, Android, Solaris, Cygwin и в виде приложения Chrome. Программа Termius для iOS включает независимую реализацию протокола Mosh.

Представление

Роуминг

Mosh построен на протоколе State-Synchronization Protocol (SSP), который поддерживает однопакетный роуминг. После того, как клиент переключился на новый IP-адрес, одного пакета, который успешно достигает сервера, достаточно для «роуминга» соединения. Клиенту не нужно знать, что он переместился. (Клиент может использовать NAT, а вместо этого NAT используется в роуминге.)

Потеря пакетов

В исследовательском документе Mosh создатели протестировали SSP на канале с потерей пакетов на 29% и обнаружили, что SSP сократил среднее время ответа в 50 раз (с 16,8 секунд до 0,33 секунды) по сравнению с SSH, который использует TCP. Другое исследование, проведенное студентами Стэнфордского университета, показало, что SSP сократила среднее время ответа в 30 раз (с 5,9 секунды до 0,19 секунды).

Местное эхо

По словам разработчиков Mosh, программа способна предсказывать и немедленно отображать 70% нажатий клавиш пользователем, сокращая среднее время отклика на нажатие клавиши до менее 5 миллисекунд (маскируя задержку в сети). Другое исследование, проведенное студентами Стэнфордского университета, показало, что Мош может быстро повторять 55% нажатий клавиш пользователем.

Недостатки

По сравнению с более популярным SSH, mosh имеет следующие недостатки:

Предварительные требования на сервере

Основным недостатком mosh является то, что он требует от сервера выполнения дополнительных требований, которые не нужны самому ssh. Из-за своей конструкции mosh требуется сервер для прямого подключения через UDP. Серверы, не соответствующие этим требованиям, не могут использоваться mosh. Примеры таких систем включают серверы за брандмауэрами, которые ограничивают подключения к ssh-порту через TCP. Также проблематичны серверы, к которым можно получить доступ только косвенно. Последнее обычно поддерживается ssh с помощью опции «ProxyCommand», но это не поддерживается mosh.

Один порт на соединение

По умолчанию сервер пытается выделить первый свободный порт UDP в диапазоне 60001–61000 для каждого соединения. Такое динамическое распределение портов считается дополнительным бременем и риском для обслуживания межсетевого экрана. Значительная часть фильтрации брандмауэра происходит посредством отслеживания соединений, так называемой фильтрации с отслеживанием состояния, она основана на флагах SYN / ACK в сегментах TCP, пакеты UDP не имеют таких флагов. Смягчение:

  1. Порт UDP на сервере может быть установлен для каждого mosh-соединения, поэтому нужно открывать только ограниченное количество портов.
  2. Брандмауэры глубокой проверки пакетов и брандмауэры приложений могут справиться с этим лучше, просматривая содержимое пакета и связывая его с начальным соединением.

Падение вывода и отсутствие обратной прокрутки терминала

Прокрутка назад не поддерживается в текущем выпуске mosh, а при использовании в эмуляторе терминала с полосами прокрутки они исчезают, но планируется для выпуска 1.3. Эта функция является компромиссом для очистки мусора, поскольку двоичный вывод стирается. Один из способов смягчить это в настоящее время - использовать mosh в сочетании с терминальным мультиплексором, таким как screen или tmux.

Отсутствие пересылки ssh-agent

Перенаправление SSH-агента в настоящее время не поддерживается.

Отсутствие пересылки X11

X11 Forwarding пока не поддерживается.

Смотрите также
использованная литература
Последняя правка сделана 2024-01-07 04:18:28
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте