Mosh (program)
Mosh |
---|
Mosh, i den översta raden information om ett avbrott i anslutningen, i terminalen, är de tecken som förutspås och visas lokalt understrukna. |
Sorts |
Fjärråtkomst |
Författare |
Keith Winstein |
Utvecklaren |
Keith Winstein |
Skrivet i |
C++ |
Operativ system |
Unix-liknande system |
Första upplagan |
12 mars 2012 ( 2012-03-12 ) |
senaste versionen |
1.3.2 (22 juli 2017 [1] ) ( 2017-07-22 ) |
Licens |
GNU GPLv3 [2] med OpenSSL och iOS undantag |
Hemsida |
mosh.org |
Mosh (från engelska mobile shell ) är ett program för fjärranslutning från en klientdator till en server via Internet. Ger tillgång till en textterminal [3] . Mosh liknar [4] SSH- applikationen , men har ytterligare funktioner utformade för att förbättra den mobila användarupplevelsen. Huvudfunktionerna är:
- Sparar sessioner även när klienten ändrar sin adress , till exempel när man byter till ett annat trådlöst nätverk eller när man byter mellan Wi-Fi och 3G mobilt Internet [5] .
- Upprätthålla terminalsessioner i ett aktivt tillstånd även om användaren tappar sin Internetanslutning eller när klientdatorn sätts i standbyläge . Traditionell SSH på grund av användningen av TCP-protokollet i sådana fall avslutar sessionen med en protokoll-timeout [6] .
- Mosh-klienten försöker svara på tangentbordshändelser (skriva, ta bort tecken) utan att vänta på ett svar från servern, vilket döljer nätverkslatens . Ett adaptivt prediktionssystem används för att förutsäga om en applikation som körs på servern kommer att visa tecken som användaren har skrivit in [7] [8] .
De största nackdelarna med mosh är de ytterligare serverkraven och avsaknaden av vissa SSH-funktioner (som vidarebefordran av anslutningar).
Implementering
Mosh arbetar på en annan nivå än SSH. Klassiska fjärrterminalåtkomstsystem skickar helt enkelt en ström av byte i varje riktning (server till klient och klient till server) med hjälp av TCP-protokollet (i fallet med SSH), medan mosh kör en terminalemulator på servern för att få information om texten visas på skärmen. Mosh-servern överför sedan denna text till klientsidan av applikationen med hjälp av UDP-protokollet, medan frekvensen av skärmuppdateringar och överföringar varierar beroende på nätverkets hastighet [9] . Detta gör att Mosh kan minska mängden data som den skickar när man använder långsamma eller instabila internetanslutningar.
Plattformar som stöds
Mosh är tillgänglig för de flesta Linux-distributioner , macOS , FreeBSD , NetBSD , OpenBSD , Android , Solaris , Cygwin och som en Chrome-app . Termius för iOS (Apple mobila enheter) inkluderar en oberoende implementering av Mosh [10] -protokollet .
Prestanda
Roaming
Mosh bygger på ett State-Syncronization Protocol (SSP) [11] -schema som stöder enkelpaketsroaming [12] . Efter att ha ändrat klientens IP-adress måste den skicka ett paket till servern. Leverans av ett enda paket räcker för att servern ska fortsätta arbeta med denna klient. Dessutom behöver kunden inte veta om adressändringen.
Paketförlust
I en Mosh utvecklarartikel utvärderades SSP över linjen med en paketförlustgrad på 29 %. Jämfört med SSH och TCP-protokollet fick de en 50x minskning i genomsnittlig svarstid (0,33 sekunder med mosh, istället för 16,8 sekunder). En annan studie av studenter vid Stanford University visade att SSP minskade den genomsnittliga svarstiden med en faktor 30 (från 5,9 sekunder till 0,19 sekunder) [13] .
Lokalt eko
Enligt utvecklarna av mosh kan deras applikation korrekt förutsäga sammanhanget 70 % av gångerna och omedelbart visa de tecken som användaren har angett, vilket minskar mediantangenttryckningssvarstiden till mindre än 5ms (maskering av nätverksfördröjningar ). En annan studie visade att mosh snabbt kunde visa cirka 55 % av användarens tangenttryckningar [14] .
Nackdelar
Jämfört med den mer populära SSH har mosh följande nackdelar:
Serverkrav
Den största nackdelen med mosh är behovet av att använda sin egen server. mosh kräver en direkt UDP-anslutning till servern [15] . Servrar som skyddas av en portbegränsad brandvägg kan inte använda mosh (till exempel om brandväggen endast tillåter en inkommande TCP SSH-anslutning till servern). Problematiska är också servrar som har en indirekt anslutning till nätverket. SSH låter dig i vissa fall arbeta med dem med alternativet 'ProxyCommand', men det här alternativet stöds inte i mosh [16] .
En port per anslutning
Som standard försöker servern allokera den första lediga UDP -porten i intervallet 60001-60999, en port per anslutning. Denna dynamiska portallokering är en extra overhead för brandväggshantering [17] [18] .
Inget stöd för IPv6-roaming
Mosh 1.2.5 stöder endast fasta IPv6-anslutningar, inte IPv6-roaming [19] . Detta kräver användning av kommandoradsalternativet "-6". Det finns en experimentell version av mosh med stöd för flervägs IPv6 och dynamisk växling mellan IPv4 och IPv6 [20] [21] .
Hoppa över och rulla terminal
Mosh stöder inte rullningshistorik i terminalen. Implementeringsarbete var planerat till release 1.3 [22] . Ett sätt att bekämpa detta är att använda mosh i kombination med terminalmultiplexerskärmen eller tmux , som implementerar terminalens egen historikrullningsfunktion [23] .
Se även
Anteckningar
- ↑ Winstein, Keith mosh 1.3.2 släppt . E-postlista (22 juli 2017). Hämtad: 31 juli 2017. (obestämd)
- ↑ Mosh 1.3 Release, SSH Alternatives Arkiverad 25 oktober 2018 på Wayback Machine /Opennet, 04/06/2017
- ↑ "Mosh: det mobila skalet" Arkiverad 5 augusti 2016 på Wayback Machine . Hämtad 28 mars 2013.
- ↑ Brockmeier, Joe. "Into the Mosh Pit: A Mobile Shell Replacement for SSH" Arkiverad 20 mars 2014 på Wayback Machine , linux.com 10 april 2012. Hämtad 28 mars 2013.
- ↑ Delony, David. "Mosh: Secure Shell Without the Pain" Arkiverad 5 juli 2018 på Wayback Machine , Technopedia 19 oktober 2012. Hämtad 28 mars 2013.
- ↑ Cox, John. "MIT-forskare kartlägger ett nytt tillvägagångssätt för mobila Internet-protokoll" Arkiverad 18 oktober 2012. , Network World , 6 juli 2012. Hämtad 28 mars 2013.
- ↑ Beckert, Axel. "Mosh och AutoSSH: Remote shell-verktyg som gör ditt liv lättare på ett långsamt eller ständigt föränderligt nätverk" Arkiverad 21 oktober 2020 på Wayback Machine , Linux Magazine , november 2012.
- ↑ Leyden, John. "MITs tankeläsande Mosh ställer sig mot SSH-demoner" Arkiverad 25 oktober 2018 på Wayback Machine , The Register , 13 april 2012. Hämtad 28 mars 2013.
- ↑ Winstein, Keith. "Mosh: An Interactive Remote Shell for Mobile Clients" , USENIX Annual Technical Conference 2012, Boston, Massachusetts, 14 juni 2012.
- ↑ "Termius Features" Arkiverad 25 oktober 2018 på Wayback Machine , Crystalnix.
- ↑ "MIT avslöjar ett nytt internetprotokoll för mobila klienter" . Hämtad 25 oktober 2018. Arkiverad från originalet 1 februari 2016. (obestämd)
- ↑ Winstein, Keith och Balakrishnan, Hari. "Mosh: An Interactive Remote Shell for Mobile Clients (mer detaljerat utkast)" Arkiverad 14 mars 2016 på Wayback Machine . Hämtad 28 mars 2013.
- ↑ Nagaraj, Kanthi och McMilin, Emily. "Mosh" Arkiverad 25 oktober 2018 på Wayback Machine , Reproducing Network Research 14 mars 2013. Hämtad 28 mars 2013.
- ↑ Aljunied, Ahmed. "Evaluation of Mosh 'Mobile Shell' Performance Results" Arkiverad 26 augusti 2018 på Wayback Machine , Reproducing Network Research , 13 mars 2013. Hämtad 28 mars 2013.
- ↑ "'Mosh kommer att logga in användaren via SSH och sedan starta en anslutning på en UDP-port mellan 60000 och 61000. '" Arkiverad 5 augusti 2016 på Wayback Machine , Hämtad 19 juni 2014.
- ↑ "Mosh-felrapport #285: Kan inte använda en ProxyCommand-baserad SSH-anslutning" , Hämtad 18 juni 2014
- ↑ "Farorna med att öppna upp ett brett utbud av hamnar? (mosh)" Arkiverad 2 september 2018 på Wayback Machine , IT-säkerhet (Stack Exchange) , 13 april 2012. Hämtad 28 mars 2013.
- ↑ Multiplexa fler sessioner till samma UDP-port
- ↑ [https://web.archive.org/web/20210701202930/http://mailman.mit.edu/pipermail/mosh-users/2015-July/000283.html Arkiverad 1 juli 2021 på Wayback Machine [mosh -användare] mosh 1.2.5 släppt]
- ↑ GitHub - boutier/mosh: Flervägsversion av Mobile Shell . Hämtad 25 oktober 2018. Arkiverad från originalet 11 juni 2018. (obestämd)
- ↑ Matthieu Boutier & Juliusz Chroboczek (2015), User -space multipath UDP i Mosh
- ↑ https://github.com/keithw/mosh/issues/2 "Stöd för rullning är planerat för version 1.3"
- ↑ "Bläddra tillbaka och alternativ skärm (var: Använd alternativ skärm på smcup/rmcup)"
Länkar