You know the frustration you experience when the new hit of your favorite band takes too long to download on your iPhone? Imagine 30 years from now (an optimistic estimate)… you are one of the happy colonists who work around the clock to build one of the first outposts on Mars.
At the end of your shift in the hydroponics, you head back to your luxurious 20mx10m quarters (the shoebox, as your relatives back on Earth like to call it), have a hot shower, and a delicious vegetarian dinner while enjoying the view over the Valles Marineris (the $100 million view, as you like to call it). You receive an email with a link to the new hit of your favorite Earth band, and after clicking on the link in your favorite Internet browser, you download the song in less than one second.
What’s wrong with this scenario? It describes what software engineers would call a wonderful user experience, but something is wrong with this picture… what is it?
One short story might give you a hint. In January 2004, when the two Mars Exploration Rovers, Spirit and Opportunity, landed on Mars, you could watch videos of the scientists in the mission control room at JPL cheering when receiving confirmations of successful landings. The detail that might have escaped you is that those confirmation messages traveled around 20 minutes through interplanetary space before reaching the room at JPL. The scientists were cheering at JPL 20 minutes after the landings happened. If anything went wrong, the bad news would have reached Earth too late to do anything about it. This kind of explains why the engineers that designed and built the rovers had to make sure that the rovers themselves were capable of making some decisions on their own.
To go back to our sci-fi novel attempt in the first paragraph, the little detail that is misplaced in our story is that the time delay is not present. Our colonist clicks on the link to a server which is somewhere on Earth and the download is performed in no time.
For someone who has a basic understanding of protocol stacks (i.e. HTTP/TCP/IP), it is obvious that it would take quite some time to download a file from a server located on Earth to our Mars colony. All of a sudden, the ACK packets have lost their charm.
No reason to worry. Even if Mars outposts are far in the future, time and effort is spent on finding solutions for such communication problems in the present. The challenges seem overwhelming: very long delays, possible communication disruptions, and significant loss due to big bit error rates. A leap is necessary. The present protocols and architecture on which Internet relays have been designed assuming continuous and bi-directional paths, short round-trip times, and small error-rates.
One architecture that promises to solve the problems inherent to our scenario is the Delay Tolerant Networking (DTN) architecture, proposed in RFC 4838. A physical architecture that could solve the problems mentioned above is also proposed by Takashi Iida (Tokyo Metropolitan University), Yoshinori Arimoto (National Institute of Information and Communications Technology), and Yoshiaki Suzuki (NEC Corporation). The architecture would include clusters of communication satellites in orbit around Earth and Mars and relay satellites located at the Lagrangian points L4 and L5 of the Sun-Earth system. The relay satellites would make communication between Earth and Mars possible even when Mars is behind the Sun. Just a smart placement of relay satellites does not do the trick. In order to increase the responsiveness of the network, mirroring of data is also necessary.
You can find more information about space data systems on The Consultative Committee for Space Data Systems website. Other good resources include The InterPlaNetary Internet Project, and The Delay Tolerant Networking Research Group.