Mosh, showing warning about intermittent network connection and local echoing feature.
|
|
Original author(s) | Keith Winstein |
---|---|
Initial release | March 12, 2012 |
Stable release |
1.3.2 / July 22, 2017
|
Repository | github |
Operating system | Unix-like systems |
Type | Utility software |
License | GNU GPLv3 with OpenSSL and iOS exceptions |
Website | mosh |
In computing, Mosh (mobile shell) is a tool used to connect from a client computer to a server over the Internet, to run a remote terminal. Mosh is similar to SSH, with additional features meant to improve usability for mobile users. The major features are:
The main drawbacks of mosh are additional prerequisites to the server and that it lacks some special features of SSH (such as connection forwarding).
Mosh works at a different layer from SSH. Whereas SSH transmits a stream of bytes in each direction (from server to client or client to server) using , Mosh runs a terminal emulator at the server to figure out what should be on the screen. The server then transmits this screen to the client at a varying frame rate, depending on the speed of the network. This allows Mosh to save on network traffic on slow or intermittent connections.
Mosh is available for most Linux distributions, Mac OS X, FreeBSD, NetBSD, and OpenBSD, Android, Solaris, Cygwin, and as a Chrome App. The iOS program iSSH included an independent implementation of the Mosh protocol as an optional add-on, but it is no longer available on the Apple App Store.
Mosh is built on the State-Synchronization Protocol (SSP), which supports single-packet roaming. After the client has switched to a new IP address, a single packet that successfully reaches the server is enough to "roam" the connection. The client does not need to know it has roamed. (The client may be using NAT and the NAT roamed instead.)
In the Mosh research paper, the creators tested SSP on a link with 29% packet loss, and found that SSP reduced the average response time by a factor of 50 (from 16.8 seconds to 0.33 seconds) compared with SSH, which uses . A different study, by students at Stanford University, found that SSP reduced the average response time by a factor of 30 (from 5.9 seconds to 0.19 seconds).