Mosh (ohjelma)

Mosh

Mosh, ylärivin tiedoissa yhteyden katkeamisesta, päätteessä ennustetut ja paikallisesti näytettävät merkit on alleviivattu.
Tyyppi Etäyhteys
Tekijä Keith Winstein
Kehittäjä Keith Winstein
Sisään kirjoitettu C++
Käyttöjärjestelmä Unixin kaltaiset järjestelmät
Ensimmäinen painos 12. maaliskuuta 2012  ( 12.3.2012 )
uusin versio 1.3.2 (22. heinäkuuta 2017 [1] ) ( 22.7.2017 )
Lisenssi GNU GPLv3 [2] OpenSSL- ja iOS- poikkeuksilla
Verkkosivusto mosh.org

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:

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

  1. Winstein, Keith mosh 1.3.2 julkaistiin . Postituslista (22.7.2017). Haettu: 31. heinäkuuta 2017.
  2. Mosh 1.3 -julkaisu, SSH-vaihtoehdot arkistoitu 25. lokakuuta 2018 Wayback Machinessa /Opennet, 6.4.2017
  3. "Mosh: the mobile shell" Arkistoitu 5. elokuuta 2016 Wayback Machineen . Haettu 28. maaliskuuta 2013.
  4. 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.
  5. Delony, David. "Mosh: Secure Shell Without the Pain" Arkistoitu 5. heinäkuuta 2018 Wayback Machinessa , Technopedia , 19. lokakuuta 2012. Haettu 28. maaliskuuta 2013.
  6. 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.
  7. 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.
  8. 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.
  9. Winstein, Keith. "Mosh: An Interactive Remote Shell for Mobile Clients" , USENIX Annual Technical Conference 2012, Boston, Mass., 14. kesäkuuta 2012.
  10. "Termius-ominaisuudet" Arkistoitu 25. lokakuuta 2018 Wayback Machinessa , Crystalnixissa.
  11. "MIT julkisti uuden Internet-protokollan mobiiliasiakkaille" . Haettu 25. lokakuuta 2018. Arkistoitu alkuperäisestä 1. helmikuuta 2016.
  12. 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.
  13. Nagaraj, Kanthi ja McMilin, Emily. "Mosh" Arkistoitu 25. lokakuuta 2018, Wayback Machine , Reproducing Network Research , 14. maaliskuuta 2013. Haettu 28. maaliskuuta 2013.
  14. 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.
  15. ↑ "'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.
  16. "Mosh-virheraportti #285: ProxyCommand-pohjaista SSH-yhteyttä ei voi käyttää" , Haettu 18. kesäkuuta 2014
  17. "Laaja valikoiman satamien avaamisen vaara? (mosh)" Arkistoitu 2. syyskuuta 2018, Wayback Machine , IT Security (Stack Exchange) , 13. huhtikuuta 2012. Haettu 28. maaliskuuta 2013.
  18. Useampien istuntojen multipleksointi samaan UDP-porttiin
  19. [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]
  20. GitHub - boutier/mosh: Mobile Shellin monitieversio . Haettu 25. lokakuuta 2018. Arkistoitu alkuperäisestä 11. kesäkuuta 2018.
  21. Matthieu Boutier & Juliusz Chroboczek (2015), käyttäjätilan monitie-UDP Moshissa 
  22. https://github.com/keithw/mosh/issues/2 "Scrollback-tuki on suunniteltu versiolle 1.3"
  23. "Vieritä taaksepäin ja vaihtoehtoinen näyttö (oli: Käytä vaihtoehtoista näyttöä smcupissa/rmcupissa)"

Linkit