Mosh (program)
Mosh |
---|
Mosh, v horním řádku informace o přerušení spojení, v terminálu jsou podtrženy znaky predikované a zobrazené lokálně. |
Typ |
Vzdálený přístup |
Autor |
Keith Winstein |
Vývojář |
Keith Winstein |
Zapsáno v |
C++ |
Operační systém |
Unixové systémy |
První vydání |
12. března 2012 ( 2012-03-12 ) |
Nejnovější verze |
1.3.2 (22. července 2017 [1] ) ( 22. 7. 2017 ) |
Licence |
GNU GPLv3 [2] s výjimkami OpenSSL a iOS |
webová stránka |
mosh.org |
Mosh (z anglického mobile shell ) je program pro vzdálené připojení z klientského počítače k serveru přes internet. Poskytuje přístup k textovému terminálu [3] . Mosh je podobný [4] aplikaci SSH , ale má další funkce určené ke zlepšení uživatelského zážitku na mobilních zařízeních. Hlavní funkce jsou:
- Ukládání relací i při změně adresy klienta , například při přechodu na jinou bezdrátovou síť nebo při přepínání mezi Wi-Fi a 3G mobilním internetem [5] .
- Udržování relací terminálu v aktivním stavu, i když uživatel ztratí připojení k internetu nebo když je klientský počítač uveden do pohotovostního režimu . Tradiční SSH díky použití protokolu TCP v takových případech ukončí relaci po vypršení časového limitu protokolu [6] .
- Mosh klient se snaží reagovat na události klávesnice (psaní, mazání znaků), aniž by čekal na odpověď ze serveru, což skrývá latenci sítě . Systém adaptivní predikce se používá k předpovědi, zda aplikace běžící na serveru zobrazí znaky zadané uživatelem [7] [8] .
Hlavní nevýhodou mosh jsou dodatečné požadavky na server a nedostatek některých funkcí SSH (jako je přesměrování připojení).
Implementace
Mosh funguje na jiné úrovni než SSH. Klasické systémy vzdáleného terminálového přístupu jednoduše posílají proud bajtů v každém směru (server ke klientovi a klient k serveru) pomocí protokolu TCP (v případě SSH), zatímco mosh spouští na serveru emulátor terminálu , aby získal informace o textu. zobrazené na obrazovce. Mosh server pak přenáší tento text na klientskou stranu aplikace pomocí protokolu UDP, přičemž frekvence aktualizací a přenosů obrazovky se liší v závislosti na rychlosti sítě [9] . To umožňuje Mosh snížit množství dat, která odesílá při použití pomalého nebo nestabilního internetového připojení.
Podporované platformy
Mosh je k dispozici pro většinu distribucí Linuxu , macOS , FreeBSD , NetBSD , OpenBSD , Android , Solaris , Cygwin a jako aplikace pro Chrome . Termius pro iOS (mobilní zařízení Apple) obsahuje nezávislou implementaci protokolu Mosh [10] .
Výkon
Roaming
Mosh je postaven na schématu State-Syncronization Protocol (SSP) [11] , které podporuje roaming s jedním paketem [12] . Po změně IP adresy klienta musí odeslat paket na server. Doručení jednoho paketu stačí k tomu, aby server pokračoval v práci s tímto klientem. Klient navíc nemusí o změně adresy vědět.
Ztráta paketů
V článku pro vývojáře mosh bylo SSP over line vyhodnoceno s mírou ztráty paketů 29 %. Ve srovnání s SSH a protokolem TCP dosáhly 50x zkrácení průměrné doby odezvy (0,33 sekundy s mosh místo 16,8 sekundy). Jiná studie studentů Stanfordské univerzity ukázala, že SSP snížilo průměrnou dobu odezvy faktorem 30 (z 5,9 sekund na 0,19 sekund) [13] .
Místní echo
Podle vývojářů mosh je jejich aplikace schopna správně předvídat kontext 70 % času a okamžitě zobrazit znaky zadané uživatelem, čímž zkrátí střední dobu odezvy na stisk klávesy na méně než 5 ms (maskování zpoždění sítě ). Jiná studie ukázala, že mosh byl schopen rychle zobrazit asi 55 % úhozů uživatele [14] .
Nevýhody
Ve srovnání s populárnějším SSH má mosh následující nevýhody:
Požadavky na server
Hlavní nevýhodou mosh je nutnost použití vlastního serveru. mosh vyžaduje přímé udp připojení k serveru [15] . Servery chráněné firewallem s omezeným portem nemohou používat mosh (například pokud firewall umožňuje pouze příchozí TCP SSH připojení k serveru). Problematické jsou také servery, které mají nepřímé připojení k síti. SSH v některých případech umožňuje s nimi pracovat pomocí možnosti 'ProxyCommand', ale tato možnost není podporována v mosh [16] .
Jeden port na připojení
Ve výchozím nastavení se server pokouší přidělit první volný port UDP v rozsahu 60001-60999, jeden port na připojení. Toto dynamické přidělování portů představuje další režii pro správu brány firewall [17] [18] .
Žádná podpora pro roaming IPv6
Mosh 1.2.5 podporuje pouze pevná připojení IPv6, nikoli roaming IPv6 [19] . To vyžaduje použití volby příkazového řádku "-6". Existuje experimentální verze mosh s podporou multipath IPv6 a dynamickým přepínáním mezi IPv4 a IPv6 [20] [21] .
Terminál přeskakování a rolování
Mosh nepodporuje rolování historie v terminálu. Implementační práce byly naplánovány na verzi 1.3 [22] . Jedním ze způsobů, jak proti tomu bojovat, je použít mosh v kombinaci s terminálovým multiplexerem nebo tmux , které implementují vlastní funkci posouvání historie terminálu [23] .
Viz také
Poznámky
- ↑ Vydán Winstein, Keith mosh 1.3.2 . Seznam adres (22. července 2017). Staženo: 31. července 2017. (neurčitý)
- ↑ Mosh 1.3 Release, SSH Alternatives Archived 25. října 2018 na Wayback Machine /Opennet, 04/06/2017
- ↑ „Mosh: the mobile shell“ Archivováno 5. srpna 2016 na Wayback Machine . Načteno 28. března 2013.
- ↑ Brockmeier, Joe. „Into the Mosh Pit: A Mobile Shell Replacement for SSH“ Archivováno 20. března 2014 na Wayback Machine , linux.com , 10. dubna 2012. Staženo 28. března 2013.
- ↑ Delony, David. "Mosh: Secure Shell Without the Pain" Archivováno 5. července 2018 na Wayback Machine , Technopedia , 19. října 2012. Staženo 28. března 2013.
- ↑ Cox, John. „Výzkumníci MIT mapují nový přístup k mobilním internetovým protokolům“ Archivováno 18. října 2012. , Network World , 6. července 2012. Staženo 28. března 2013.
- ↑ Beckert, Axel. „Mosh a AutoSSH: Nástroje vzdáleného prostředí, které vám usnadní život na pomalé nebo neustále se měnící síti“ Archivováno 21. října 2020 na Wayback Machine , Linux Magazine , listopad 2012.
- ↑ Leyden, John. „Mosh, který čte mysl MIT, se postaví proti démonům SSH“ Archivováno 25. října 2018 na Wayback Machine , The Register , 13. dubna 2012. Staženo 28. března 2013.
- ↑ Winstein, Keith. "Mosh: Interactive Remote Shell for Mobile Clients" , USENIX Annual Technical Conference 2012, Boston, Mass., 14. června 2012.
- ↑ „Termius Features“ Archivováno 25. října 2018 ve Wayback Machine , Crystalnix.
- ↑ „MIT odhaluje nový internetový protokol pro mobilní klienty“ . Získáno 25. října 2018. Archivováno z originálu 1. února 2016. (neurčitý)
- ↑ Winstein, Keith a Balakrishnan, Hari. „Mosh: Interactive Remote Shell for Mobile Clients (podrobnější návrh)“ Archivováno 14. března 2016 na Wayback Machine . Načteno 28. března 2013.
- ↑ Nagaraj, Kanthi a McMilin, Emily. "Mosh" Archived 25. října 2018 na Wayback Machine , Reproducing Network Research , 14. března 2013. Staženo 28. března 2013.
- ↑ Aljunied, Ahmed. "Evaluation of Mosh 'Mobile Shell' Performance Results" Archivováno 26. srpna 2018 na Wayback Machine , Reproducing Network Research , 13. března 2013. Staženo 28. března 2013.
- ↑ "'Mosh přihlásí uživatele přes SSH a poté zahájí připojení na UDP portu mezi 60000 a 61000. '" Archivováno 5. srpna 2016 na Wayback Machine , staženo 19. června 2014.
- ↑ "Mosh bug report #285: Nelze použít připojení SSH založené na ProxyCommand" , Načteno 18. června 2014
- ↑ „Nebezpečí otevření široké škály portů? (mosh)" Archivováno 2. září 2018 na Wayback Machine , IT Security (Stack Exchange) , 13. dubna 2012. Staženo 28. března 2013.
- ↑ Multiplexování více relací do stejného portu UDP
- ↑ [https://web.archive.org/web/20210701202930/http://mailman.mit.edu/pipermail/mosh-users/2015-July/000283.html Archivováno 1. července 2021 na Wayback Machine [mosh -users] vydán mosh 1.2.5]
- ↑ GitHub - boutier/mosh: Multipath verze Mobile Shell . Získáno 25. října 2018. Archivováno z originálu 11. června 2018. (neurčitý)
- ↑ Matthieu Boutier & Juliusz Chroboczek (2015), Multipath UDP v uživatelském prostoru v Mosh
- ↑ https://github.com/keithw/mosh/issues/2 "Pro verzi 1.3 je plánována podpora rolování"
- ↑ "Scrollback a alternativní obrazovka (bylo: Použít alternativní obrazovku na smcup/rmcup)"
Odkazy