- Google I/O 2013's Coolest Products and Services
- 10 Star Trek Technologies That are Almost Here
- 19 Generations of Computer Programmers
- 25 Must-Have Technologies for SMBs
Network World - A new approach to mobile Internet protocols could improve the usability and reliability of mobile applications.
At the annual Usenix tech conference last month in Boston, two MIT researchers formally unveiled a new protocol, and a remote log-in program using it, that was specifically designed for mobile clients and the intermittent, low-bandwidth connections that typify today's wireless networks. The program, dubbed Mosh for "mobile shell," is intended as an alternative to the venerable Secure Shell (SSH), long used to create a secure connection between a client and server computer, for remote log-in, command execution and other services.
IN THE NEWS: Quick look: The Higgs boson phenomenon
In advance of the paper, Mosh and the new State Synchronization Protocol (SSP) were made available for free, currently on GNU/Linux, FreeBSD and OS X, via an MIT website in April. The Usenix technical presentation is available on the Mosh site or on YouTube.
So far, it's been downloaded more than 70,000 times. Judging from a catalog of tweets, users are ecstatic:
• "If you use SSH often, you want to look at mosh.mit.edu - After 48 hours (mails/irc/jabber are all remote for me) I can say it rocks!" -- @paulrouget
• "mosh (mosh.mit.edu) is awesome. Tested it for two weeks and it really made my life easier: faster feedback and no more reconnects(!)" -- @esmolanka
• "Using mosh on the train rather than plain ssh, and it does actually make a huge difference! Very usable interactive ssh sessions at 160KM/h!" -- @andyd
SSH traditionally connects one computer to another through their text terminals over TCP, says Keith Winstein, a graduate student with MIT's Computer Science and Artificial Intelligence Lab (CSAIL), and Mosh's lead developer. SSH is often used by network and systems administrators for remotely logging into servers. But versions of it are also included with Microsoft Windows, OS X and Linux. It's the reliance on TCP that creates headaches for mobile users.
TCP assumes that the two endpoints are fixed; and between them, bytes must be received in exactly the same order that they are sent. That's the "worst possible" approach for mobility, says Hari Balakrishnan, a computer science professor at CSAIL and co-author with Winstein of the Usenix paper.
"This is not a great way to do real-time communications," says Winstein. If there's an outage, TCP tries to make sure that you get all the bytes in order: and it keeps trying. But in real-time communications, such as videoconferencing, a chat session or your current location, what you want is the most recent information -- the latest video image or your current location on a map, for example -- not all the information you may have missed since the outage.
"If there's an outage for five seconds, you don't want to wait five seconds and have to see what you missed," Winstein says. "You just want it to start up again [where you are now]."
TCP's underlying assumptions mean that it can't handle roaming or intermittent connections. If you're running SSH at home to your company office, close your laptop, drive to headquarters and plug in to the company LAN, your SSH session is lost. Similarly, if you roam between Wi-Fi networks, or between Wi-Fi and cellular networks, you lose the SSH link.