Mosh

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Mosh
Mosh的画面截图,网络暂时中断,下划线字为暂时由本地端显示。
网络暂时中断,下划线字为暂时由本地端显示。
原作者Keith Winstein
首次发布2012年3月12日,​14年前​(2012-03-12
当前版本
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    源代码库
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    引擎
      Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
      操作系统类Unix系统
      类型实用工具
      许可协议GNU GPLv3OpenSSLiOS除外
      网站https://mosh.org/

      Moshmobile shell)是一套从客户端连到服务端的软件。类似于Secure Shell[1],但还针对对行动环境的特性调整。

      特性[编辑]

      • Mosh不绑定用户端的IP地址,这使得用户从移动网络(像是3G4G)与WiFi之间切换时,不会造成连线中断。[2]
      • Mosh保持连线开启,当此用者断线时,服务端只会认定为暂时离线(sleep)让用户可以稍候连回来。相对的,SSH因为透过TCP,在用户断线时会造成连线中断。[3]
      • Mosh会试着在本地端马上显示用户所输入的按键,这使得用户会感觉到更少的延迟。[4]

      Mosh主要的缺点在于需要额外的设定,以及缺乏某些SSH能提供的功能(如连接转发)。

      设计[编辑]

      相较于SSH,Mosh运作于不同层。SSH透过TCP双向传输资料,Mosh则是在服务端模拟终端,得知终端上的内容后,再依据客户端的网络速度计算要更新到客户端的内容[5]。这使得Mosh在速度不快的网络表现的很好。

      支持系统[编辑]

      Mosh支持大多数的Linux包、Mac OS XFreeBSDNetBSDOpenBSDAndroidSolarisCygwin,以及Chrome App

      性能[编辑]

      漫游[编辑]

      Mosh使用了State-Synchronization Protocol(SSP)[6],这使得Mosh支持单数据包漫游[7]。当客户端切换IP位置时,不需要额外的数据包进行认证,而客户端也不需要知道自己已经切换位置了(这包括了客户端可能使用NAT,而NAT本身切换IP位置)[5]

      数据包丢失[编辑]

      在Mosh作者的研究中,作者测试在29%数据包丢失率的情况下,Mosh所使用的SSP比SSH有效降低大约五十倍的平均回应时间(从16.8秒降为0.33秒)[5]。另外由斯坦福大学学生的研究则显示大约30倍,从5.9秒降为0.19秒[8]

      相关链接[编辑]

      注解[编辑]

      1. ^ Into the Mosh Pit: A Mobile Shell Replacement for SSH. [2018-01-18]. (原始内容存档于2018-10-26). 
      2. ^ Mosh: Secure Shell Without the Pain. 2012-10-19 [2018-01-18]. (原始内容存档于2020-09-27). 
      3. ^ MIT researchers chart a new approach for mobile Internet protocols. 2012-07-06 [2018-01-18]. (原始内容存档于2018-05-25). 
      4. ^ Tools for channeling SSH over an unreliable connection. [2018-01-18]. (原始内容存档于2020-10-21). 
      5. ^ 5.0 5.1 5.2 Mosh: An Interactive Remote Shell for Mobile Clients. [2016-04-27]. (原始内容存档于2020-08-06). 
      6. ^ MIT unveils a new Internet protocol for mobile clients. [2016-04-30]. (原始内容存档于2018-10-26). 
      7. ^ Mosh: An Interactive Remote Shell for Mobile Clients (PDF). [2016-04-30]. (原始内容存档 (PDF)于2016-03-14). 
      8. ^ CS244 '13: MOSH. [2016-04-30]. (原始内容存档于2020-11-18). 

      外部链接[编辑]