Mosh | |
---|---|
![]() Mosh, в верхней строке информация о перерыве в подключении, в терминале подчеркнуты символы, предсказанные и отображенные локально. | |
Тип | Удалённый доступ |
Автор | Keith Winstein |
Разработчик | Keith Winstein[d] |
Операционная система | Unix-подобные системы |
Первый выпуск | 2012-03-12 |
Последняя версия | 1.3.2 (2017-07-22[1]) |
Лицензия | GNU GPLv3[2] с исключениями OpenSSL и iOS |
Сайт | mosh.org |
Mosh (от англ. mobile shell) — программа для удаленного подключения с клиентского компьютера к серверу через Интернет. Предоставляет доступ к текстовому терминалу.[3] Mosh аналогичен[4] приложению SSH, но имеет дополнительные функции, предназначенные для повышения удобства работы мобильных пользователей. Основными функциями являются:
Основными недостатками mosh являются дополнительные требования к серверу, и отсутствие ряда особенностей SSH (например, переадресация подключений).
Mosh работает на ином уровне по сравнению с SSH. Классические системы удаленного доступа к терминалам просто передают поток байтов в каждом направлении (от сервера к клиенту и от клиента к серверу), используя протокол TCP (в случае SSH), тогда как mosh запускает эмулятор терминала на сервере для получения информации о тексте, отображаемом на экране. Затем mosh-сервер передает этот текст клиентской части приложения, используя протокол UDP, при этом частота обновлений экрана и пересылок изменяется в зависимости от скорости сети.[9] Это позволяет Mosh снижать объём пересылаемых данных при использовании медленных или неустойчивых подключений к сети Интернет.
Mosh доступен для большинства дистрибутивов Linux, macOS, FreeBSD, NetBSD, OpenBSD, Android, Solaris, Cygwin, и в виде приложения для Chrome. Программа Termius для iOS (мобильные устройства корпорации Apple) включает независимую реализацию протокола Mosh.[10]
Mosh построен на схеме протокола синхронизации состояния (State-Syncronization Protocol, SSP),[11] , который поддерживает роуминг с отправкой одного пакета.[12] После изменения IP-адреса клиента он должен послать пакет серверу. Доставки единственного пакета достаточно, чтобы сервер продолжил работу с данным клиентом. Более того, клиенту не нужно знать об изменении своего адреса.
В статье разработчиков mosh оценивалась работа протокола SSP через линию уровнем потерь пакетов в 29 %. По сравнению с SSH и протоколом TCP, они получили 50-кратное снижение среднего времени ответа (0.33 секунды с mosh, вместо 16,8 секунд). Другое исследование студентов Стэнфордского университета показало, что SSP уменьшает среднее время ответа в 30 раз (с 5,9 секунд до 0,19 секунд).[13]
По данным разработчиков mosh, их приложение способно верно предсказывать контекст в 70 % случаев и немедленно отображать введенные пользователем символы, уменьшая медиану времени ответа на нажатие клавиши до уровня менее 5 мс (маскируя задержки сети). Другое исследование показало, что mosh способен быстро отобразить около 55 % нажатий клавиш пользователем.[14]
По сравнению с более популярным SSH, mosh имеет следующие недостатки:
Основным недостатком mosh является необходимость использования собственного сервера. Для работы mosh требуется прямое udp-подключение к серверу.[15] Сервера, защищенные межсетевым экраном с ограничением допустимых портов, не могут использовать mosh (например, если экран допускает лишь входящее TCP SSH соединение к серверу). Также проблемными являются сервера, имеющие непрямое подключение к сети. SSH в некоторых случаях позволяет работать с ними при помощи опции 'ProxyCommand', но такой вариант не поддерживается в mosh.[16]
По умолчанию, сервер пытается выделить первый свободный UDP порт в диапазоне 60001-60999, по одному порту на каждое подключение. Такое динамическое выделение портов является дополнительной нагрузкой для управления брандмауэром.[17][18]
Мош 1.2.5 поддерживает только фиксированные IPv6 соединения, но не роуминг в IPv6 .[19] Для этого необходимо использование параметра командной строки «-6». Существует экспериментальный вариант mosh с поддержкой многопутного IPv6 и динамического переключения между IPv4 и IPv6.[20][21]
Mosh не поддерживает возможности прокрутки истории в терминале. Работы по реализации были запланированы на релиз 1.3.[22] Одним из способов борьбы с этим является использование mosh в комбинации с терминальным мультиплексором screen или tmux, которые самостоятельно реализуют функцию прокрутки истории в терминале.[23]
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .