Mosh (ohjelma)
Mosh ( englanniksi mobile shell ) on ohjelma etäyhteyden muodostamiseen asiakastietokoneelta palvelimelle Internetin kautta. Tarjoaa pääsyn tekstipäätteeseen [ 3] . Mosh on samanlainen [4] kuin SSH - sovellus , mutta siinä on lisäominaisuuksia, jotka on suunniteltu parantamaan mobiilikäyttökokemusta. Päätoiminnot ovat:
- Istuntojen tallentaminen myös silloin, kun asiakas vaihtaa osoitettaan , esimerkiksi vaihdettaessa toiseen langattomaan verkkoon tai vaihdettaessa Wi-Fi:n ja 3G-mobiili-Internetin välillä [5] .
- Pääteistuntojen pitäminen aktiivisessa tilassa, vaikka käyttäjä katkaisee Internet-yhteyden tai kun asiakastietokone asetetaan valmiustilaan . Perinteinen SSH, joka johtuu TCP-protokollan käytöstä tällaisissa tapauksissa, päättää istunnon protokollan aikakatkaisulla [6] .
- Mosh-asiakas yrittää vastata näppäimistötapahtumiin (kirjoittaa, poistaa merkkejä) odottamatta vastausta palvelimelta, mikä piilottaa verkon latenssin . Mukautuvaa ennustejärjestelmää käytetään ennustamaan, näyttääkö palvelimella toimiva sovellus käyttäjän syöttämiä merkkejä [7] [8] .
Moshin suurimmat haitat ovat ylimääräiset palvelinvaatimukset ja joidenkin SSH-ominaisuuksien (kuten yhteyden edelleenohjaus) puute.
Toteutus
Mosh toimii eri tasolla kuin SSH. Klassiset etäpäätekäyttöjärjestelmät lähettävät vain tavuvirran kumpaankin suuntaan (palvelimelta asiakkaalle ja asiakkaalta palvelimelle) käyttämällä TCP-protokollaa (SSH:n tapauksessa), kun taas mosh ajaa palvelimella pääteemulaattoria saadakseen tietoa tekstistä. näkyy näytöllä. Tämän jälkeen mosh-palvelin lähettää tämän tekstin sovelluksen asiakaspuolelle UDP-protokollaa käyttäen, kun taas näytön päivitysten ja siirtojen tiheys vaihtelee verkon nopeuden mukaan [9] . Tämän ansiosta Mosh voi vähentää lähettämänsä tiedon määrää käytettäessä hitaita tai epävakaita Internet-yhteyksiä.
Tuetut alustat
Mosh on saatavilla useimmille Linux-jakeluille , macOS :lle , FreeBSD :lle , NetBSD :lle , OpenBSD :lle , Androidille , Solarikselle , Cygwinille ja Chrome-sovelluksena . Termius iOS :lle (Applen mobiililaitteet) sisältää Mosh [10] -protokollan itsenäisen toteutuksen .
Suorituskyky
Roaming
Mosh on rakennettu State-Syncronization Protocol (SSP) [11] -järjestelmälle , joka tukee yhden paketin verkkovierailua [12] . Asiakkaan IP-osoitteen vaihtamisen jälkeen sen on lähetettävä paketti palvelimelle. Yhden paketin toimittaminen riittää, jotta palvelin voi jatkaa työskentelyä tämän asiakkaan kanssa. Asiakkaan ei myöskään tarvitse tietää osoitteensa muutoksesta.
Pakettihäviö
Mosh-kehittäjäartikkelissa SSP yli linjan arvioitiin pakettihäviöasteella 29 %. Verrattuna SSH:han ja TCP-protokollaan , niiden keskimääräinen vasteaika lyheni 50 kertaa (0,33 sekuntia moshilla 16,8 sekunnin sijaan). Toinen Stanfordin yliopiston opiskelijoiden tutkimus osoitti, että SSP lyhensi keskimääräistä vasteaikaa kertoimella 30 (5,9 sekunnista 0,19 sekuntiin) [13] .
Paikallinen kaiku
Moshin kehittäjien mukaan heidän sovelluksensa pystyy ennustamaan kontekstin oikein 70% ajasta ja näyttämään välittömästi käyttäjän syöttämät merkit, mikä vähentää näppäinpainalluksen vasteajan mediaani alle 5 ms:iin (verkkoviiveiden peittäminen ) . Toinen tutkimus osoitti, että mosh pystyi näyttämään nopeasti noin 55 % käyttäjän näppäinpainalluksista [14] .
Haitat
Verrattuna suositumpaan SSH :hen, moshilla on seuraavat haitat:
Palvelinvaatimus
Moshin suurin haittapuoli on tarve käyttää omaa palvelinta. mosh vaatii suoran udp-yhteyden palvelimeen [15] . Porttirajoitetulla palomuurilla suojatut palvelimet eivät voi käyttää moshia (jos palomuuri esimerkiksi sallii vain saapuvan TCP SSH -yhteyden palvelimeen). Ongelmallisia ovat myös palvelimet, joilla on epäsuora yhteys verkkoon. Joissakin tapauksissa SSH sallii sinun työskennellä niiden kanssa käyttämällä 'ProxyCommand'-vaihtoehtoa, mutta tätä vaihtoehtoa ei tueta moshissa [16] .
Yksi portti per yhteys
Oletuksena palvelin yrittää varata ensimmäisen vapaan UDP -portin alueella 60001-60999, yksi portti yhteyttä kohti. Tämä dynaaminen porttien varaus on ylimääräinen palomuurin hallinta [17] [18] .
Ei tukea IPv6-verkkovierailulle
Mosh 1.2.5 tukee vain kiinteitä IPv6-yhteyksiä, ei IPv6-verkkovierailua [19] . Tämä edellyttää komentorivivaihtoehdon "-6" käyttöä. Moshista on kokeellinen versio, joka tukee monitie IPv6:ta ja dynaamista vaihtoa IPv4:n ja IPv6:n välillä [20] [21] .
Ohitus ja vieritys terminaali
Mosh ei tue historian vierittämistä terminaalissa. Toteutustyöt ajoitettiin julkaisuun 1.3 [22] . Yksi tapa torjua tätä on käyttää moshia yhdessä terminaalin multiplekserinäytön tai tmuxin kanssa, jotka toteuttavat päätelaitteen oman historian vieritystoiminnon [23] .
Katso myös
Muistiinpanot
- ↑ Winstein, Keith mosh 1.3.2 julkaistiin . Postituslista (22.7.2017). Haettu: 31. heinäkuuta 2017. (määrätön)
- ↑ Mosh 1.3 -julkaisu, SSH-vaihtoehdot arkistoitu 25. lokakuuta 2018 Wayback Machinessa /Opennet, 6.4.2017
- ↑ "Mosh: the mobile shell" Arkistoitu 5. elokuuta 2016 Wayback Machineen . Haettu 28. maaliskuuta 2013.
- ↑ Brockmeier, Joe. "Into the Mosh Pit: A Mobile Shell Replacement for SSH" Arkistoitu 20. maaliskuuta 2014 osoitteessa Wayback Machine , linux.com , 10. huhtikuuta 2012. Haettu 28. maaliskuuta 2013.
- ↑ Delony, David. "Mosh: Secure Shell Without the Pain" Arkistoitu 5. heinäkuuta 2018 Wayback Machinessa , Technopedia , 19. lokakuuta 2012. Haettu 28. maaliskuuta 2013.
- ↑ Cox, John. "MIT-tutkijat kartoittavat uuden lähestymistavan mobiili-Internet-protokolliin" Arkistoitu 18. lokakuuta 2012. , Network World , 6. heinäkuuta 2012. Haettu 28. maaliskuuta 2013.
- ↑ Beckert, Axel. "Mosh ja AutoSSH: Remote shell -työkalut, jotka helpottavat elämääsi hitaassa tai jatkuvasti muuttuvassa verkossa" Arkistoitu 21. lokakuuta 2020 Wayback Machinessa , Linux Magazinessa , marraskuussa 2012.
- ↑ Leyden, John. "MIT:n ajatuksia lukeva Mosh kohtaa itsensä SSH-daemoneja vastaan" Arkistoitu 25. lokakuuta 2018, Wayback Machine , The Register , 13. huhtikuuta 2012. Haettu 28. maaliskuuta 2013.
- ↑ Winstein, Keith. "Mosh: An Interactive Remote Shell for Mobile Clients" , USENIX Annual Technical Conference 2012, Boston, Mass., 14. kesäkuuta 2012.
- ↑ "Termius-ominaisuudet" Arkistoitu 25. lokakuuta 2018 Wayback Machinessa , Crystalnixissa.
- ↑ "MIT julkisti uuden Internet-protokollan mobiiliasiakkaille" . Haettu 25. lokakuuta 2018. Arkistoitu alkuperäisestä 1. helmikuuta 2016. (määrätön)
- ↑ Winstein, Keith ja Balakrishnan, Hari. "Mosh: An Interactive Remote Shell for Mobile Clients (tarkempi luonnos)" Arkistoitu 14. maaliskuuta 2016 Wayback Machinessa . Haettu 28. maaliskuuta 2013.
- ↑ Nagaraj, Kanthi ja McMilin, Emily. "Mosh" Arkistoitu 25. lokakuuta 2018, Wayback Machine , Reproducing Network Research , 14. maaliskuuta 2013. Haettu 28. maaliskuuta 2013.
- ↑ Aljunied, Ahmed. "Evaluation of Mosh 'Mobile Shell' Performance Results" Arkistoitu 26. elokuuta 2018, Wayback Machine , Reproducing Network Research , 13. maaliskuuta 2013. Haettu 28. maaliskuuta 2013.
- ↑ "'Mosh kirjaa käyttäjän sisään SSH:n kautta ja muodostaa sitten yhteyden UDP-porttiin välillä 60000 - 61000. "" Arkistoitu 5. elokuuta 2016 Wayback Machinessa , Haettu 19. kesäkuuta 2014.
- ↑ "Mosh-virheraportti #285: ProxyCommand-pohjaista SSH-yhteyttä ei voi käyttää" , Haettu 18. kesäkuuta 2014
- ↑ "Laaja valikoiman satamien avaamisen vaara? (mosh)" Arkistoitu 2. syyskuuta 2018, Wayback Machine , IT Security (Stack Exchange) , 13. huhtikuuta 2012. Haettu 28. maaliskuuta 2013.
- ↑ Useampien istuntojen multipleksointi samaan UDP-porttiin
- ↑ [https://web.archive.org/web/20210701202930/http://mailman.mit.edu/pipermail/mosh-users/2015-July/000283.html Arkistoitu 1. heinäkuuta 2021 Wayback Machinessa [mosh -käyttäjät] mosh 1.2.5 julkaistu]
- ↑ GitHub - boutier/mosh: Mobile Shellin monitieversio . Haettu 25. lokakuuta 2018. Arkistoitu alkuperäisestä 11. kesäkuuta 2018. (määrätön)
- ↑ Matthieu Boutier & Juliusz Chroboczek (2015), käyttäjätilan monitie-UDP Moshissa
- ↑ https://github.com/keithw/mosh/issues/2 "Scrollback-tuki on suunniteltu versiolle 1.3"
- ↑ "Vieritä taaksepäin ja vaihtoehtoinen näyttö (oli: Käytä vaihtoehtoista näyttöä smcupissa/rmcupissa)"
Linkit