MIT's mind-reading Mosh pits itself against SSH daemons
No! I meant rm * not rm .*
Researchers at MIT have refined the Secure Shell network protocol and boasted their replacement system overcomes some of SSH's more annoying drawbacks.
Mosh (aka mobile shell) is designed to keep connections alive when clients roam across Wi-Fi networks or switch to mobile data connections.
In addition the revamp eliminates network lag when typing, thanks to the incorporation of a new State Synchronisation Protocol (SSP). The technology predicts what users are about to type to provide intelligent local echo and line editing of keystrokes, as explained in this draft paper:
Mosh, a mobile shell application that supports intermittent connectivity, allows roaming, and provides speculative local echo of user keystrokes. Mosh is built on the State Synchronization Protocol, a new UDP-based protocol that securely synchronizes client and server state, even across client IP address changes. Mosh uses SSP to synchronize a character-cell terminal emulator.
By maintaining the terminal state at both client and server, the Mosh client predicts the effect of user keystrokes and speculatively displays many of its predictions without waiting for the server to echo.
Over a commercial EV-DO (3G) net- work, median keystroke response latency with Mosh was 4.8 ms, compared with 503 ms for SSH. Mosh erred in predicting the keystroke response 0.9% of the time, but removed the error from the screen after at most one round-trip time.
The technology is free software, already available for GNU/Linux, FreeBSD, and Mac OS X flavours. More details on the protocol are due to be presented at the USENIX conference later this year. ®
On a tangential note...
... too much networking infrastructure is "web-optimised" now-a-days. As in, (barely) fit to transfer a couple webpages and all the other things needed to display them (html and css files, js libraries, pictures, gazillions of avatars, live ajax updates, rss feeds, json things, xml blobs, and so on), but completely useless for timely delivery of a few small packets. Nice to see tech to counteract that a bit, but I'd wish the assumptions behind the networks weren't so rotten.
I use this
Still getting used to it but it is great on a train. You can turn off the predictive bit and just use the mobile connection part which automagically reactivates the connection should it drop.
It's kind of like using SSH with screen but without having to reattach to the screen session after logging in again.
Local echo on SSH is okay but doesn't work so well with things like vim. Also, Mosh never predicts an Enter keystroke.
Could have done with this 20 years ago when I was trying to do remote support over a modem on international phone lines to systems in Saudi Arabia... 300 baud and constant drops didn't make for quick ticket resolution!
Yes, most of the problems regarding "far" remote access are solved now, with screen and/or other tricks that were more prevalent a decade ago. Typing with 100ms+ feedback indeed needs some getting used to, after you were exposed to this century's LANs. It seems to be a skill these days, just like talking while hearing your own voice delayed. Telnet, that we all forgot, even had a linemode (local echo mode), that can be emulated:
rlwrap ssh $* "zsh -i"
However, the technology still sounds interesting, it appears it could be more useful than a mix of other solutions for related problems... I'm still annoyed by local uncoordinated wi-fi access points, just to make it easy for people to connect to the "closest" one for no reason. Such design decisions still make command line access awkward at times.