Mosh: An Interactive Remote Shell for Mobile Clients

Keith Winstein, Hari Balakrishnan
USENIX Annual Technical Conference, Boston, MA, June 2012

Mosh (mobile shell) is a remote terminal application that supports intermittent connectivity, allows roaming, and speculatively and safely echoes user keystrokes for better interactive response over high-latency paths. Mosh is built on the State Synchronization Protocol (SSP), a new UDP-based protocol that securely synchronizes client and server state, even across changes of the client's IP address. Mosh uses SSP to synchronize a character-cell terminal emulator, maintaining terminal state at both client and server to predictively echo keystrokes. Our evaluation analyzed keystroke traces from six different users covering a period of 40 hours of real-world usage. Mosh was able to immediately display the effects of 70% of the user keystrokes. Over a commercial EV-DO (3G) network, median keystroke response latency with Mosh was less than 5 ms, compared with 503 ms for SSH. Mosh is free software, available from here. It was downloaded more than 15,000 times in the first week of its release.

[PDF (169KB)]

Bibtex Entry:

@inproceedings{winstein2012mosh,
   author =       "Keith Winstein and Hari Balakrishnan",
   title =        "{Mosh: An Interactive Remote Shell for Mobile Clients}",
   booktitle =    {USENIX Annual Technical Conference},
   year =         {2012},
   month =        {June},
   address =      {Boston, MA}
}