Interested Article - Mosh (программа)

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

  • Сохранение сессий, даже когда клиент меняет свой адрес , например при переходе на другую беспроводную сеть или при переключении между Wi-Fi и мобильным интернетом 3G .
  • Поддержание терминальных сессий в активном состоянии даже при потере пользователем своего интернет-подключения или при переводе клиентского компьютера в режим ожидания . Традиционный SSH из-за применения протокола TCP в таких случаях завершает сессию по тайм-ауту протокола .
  • Клиент mosh пытается реагировать на события клавиатуры (набор текста, удаление символов), не дожидаясь ответа от сервера, что скрывает сетевую задержку . Используется адаптивная система прогнозирования того, будет ли приложение, работающее на сервере, отображать введённые пользователем символы .

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

Реализация

Mosh работает на ином уровне по сравнению с SSH. Классические системы удалённого доступа к терминалам просто передают поток байтов в каждом направлении (от сервера к клиенту и от клиента к серверу), используя протокол TCP (в случае SSH), тогда как mosh запускает эмулятор терминала на сервере для получения информации о тексте, отображаемом на экране. Затем mosh-сервер передает этот текст клиентской части приложения, используя протокол UDP, при этом частота обновлений экрана и пересылок изменяется в зависимости от скорости сети . Это позволяет Mosh снижать объём пересылаемых данных при использовании медленных или неустойчивых подключений к сети Интернет.

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

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

Производительность

Роуминг

Mosh построен на схеме протокола синхронизации состояния (State-Syncronization Protocol, SSP) , который поддерживает роуминг с отправкой одного пакета . После изменения IP-адреса клиента он должен послать пакет серверу. Доставки единственного пакета достаточно, чтобы сервер продолжил работу с данным клиентом. Более того, клиенту не нужно знать об изменении своего адреса.

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

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

Локальное эхо

По данным разработчиков mosh, их приложение способно верно предсказывать контекст в 70 % случаев и немедленно отображать введённые пользователем символы, уменьшая медиану времени ответа на нажатие клавиши до уровня менее 5 мс (маскируя сети). Другое исследование показало, что mosh способен быстро отобразить около 55 % нажатий клавиш пользователем .

Недостатки

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

Требование сервера

Основным недостатком mosh является необходимость использования собственного сервера. Для работы mosh требуется прямое udp-подключение к серверу . Сервера, защищённые межсетевым экраном с ограничением допустимых портов, не могут использовать mosh (например, если экран допускает лишь входящее TCP SSH соединение к серверу). Также проблемными являются сервера, имеющие непрямое подключение к сети. SSH в некоторых случаях позволяет работать с ними при помощи опции 'ProxyCommand', но такой вариант не поддерживается в mosh .

Один порт на подключение

По умолчанию, сервер пытается выделить первый свободный UDP порт в диапазоне 60001–60999, по одному порту на каждое подключение. Такое динамическое выделение портов является дополнительной нагрузкой для управления брандмауэром .

Нет поддержки роуминга IPv6

Mosh 1.2.5 поддерживает только фиксированные IPv6 соединения, но не роуминг в IPv6 . Для этого необходимо использование параметра командной строки «-6». Существует экспериментальный вариант mosh с поддержкой многопутного IPv6 и динамического переключения между IPv4 и IPv6 .

Пропуски и прокрутка терминала

Mosh не поддерживает возможности прокрутки истории в терминале. Работы по реализации были запланированы на релиз 1.3 . Одним из способов борьбы с этим является использование mosh в комбинации с терминальным мультиплексором screen или tmux , которые самостоятельно реализуют функцию прокрутки истории в терминале .

См. также

Примечания

  1. (27 октября 2022). Дата обращения: 27 октября 2022. 2 ноября 2022 года.
  2. от 25 октября 2018 на Wayback Machine /Opennet, 06.04.2017
  3. от 5 августа 2016 на Wayback Machine . Retrieved on 28 March 2013.
  4. Brockmeier, Joe. от 20 марта 2014 на Wayback Machine , linux.com , 10 April 2012. Retrieved on 28 March 2013.
  5. Delony, David. от 5 июля 2018 на Wayback Machine , Technopedia , 19 October 2012. Retrieved on 28 March 2013.
  6. Cox, John. 18 октября 2012 года. , Network World , 6 July 2012. Retrieved on 28 March 2013.
  7. Beckert, Axel. от 21 октября 2020 на Wayback Machine , Linux Magazine , November 2012.
  8. Leyden, John. от 25 октября 2018 на Wayback Machine , The Register , 13 April 2012. Retrieved on 28 March 2013.
  9. Winstein, Keith. , USENIX Annual Technical Conference 2012, Boston, Mass., 14 June 2012.
  10. от 25 октября 2018 на Wayback Machine , Crystalnix.
  11. . Дата обращения: 25 октября 2018. 1 февраля 2016 года.
  12. Winstein, Keith and Balakrishnan, Hari. от 14 марта 2016 на Wayback Machine . Retrieved on 28 March 2013.
  13. Nagaraj, Kanthi and McMilin, Emily. от 25 октября 2018 на Wayback Machine , Reproducing Network Research , 14 March 2013. Retrieved on 28 March 2013.
  14. Aljunied, Ahmed. от 26 августа 2018 на Wayback Machine , Reproducing Network Research , 13 March 2013. Retrieved on 28 March 2013.
  15. от 5 августа 2016 на Wayback Machine , Retrieved on 19 June 2014.
  16. , Retrieved on 18 June 2014
  17. от 2 сентября 2018 на Wayback Machine , IT Security (Stack Exchange) , 13 April 2012. Retrieved on 28 March 2013.
  18. от 1 июля 2021 на Wayback Machine [mosh-users ] mosh 1.2.5 released
  19. . Дата обращения: 25 октября 2018. 11 июня 2018 года.
  20. Matthieu Boutier; Juliusz Chroboczek (2015), User-space multipath UDP in Mosh , arXiv : , Bibcode :
  21. «Scrollback support is planned for version 1.3»

Ссылки

  • — официальный сайт Mosh
  • Ализар, / xakep, 01.09.2014
  • Jonathan Corbet, / LWN, May 16, 2017 (англ.)
  • (p.244) / R.K. Ghosh. Wireless Networking and Mobile Data Management. Springer, 2017. ISBN 9789811039416 (англ.)
Источник —

Same as Mosh (программа)