An Interplanetary Internet

  • The title makes this sound hypothetical, but this was actual work conducted to design a TCP/IP replacement for cross-planet communication.
  • Around 1998-2004 (!), in the context of a rover landing on Mars.
  • TCP/IP itself is an abstraction over very different types of terrestrial & satellite networks with different semantics.
  • Could this be extended as-is to abstract over interplanetary neetworks? No, because:
    • Flow control depends on (relatively) fast roundtrips, and will not work in any reaasonable way when roundtrips are measured in tens of minutes.
    • Similar issues with DNS; if you receive an IP address corresponding to a domain in (say) 40 minutes, and it takes another 20 minutes for that request to make it to the server, that DNS entry might well be out of date.
    • TCP/IP was designed at a time when memory was expensive, so routers were free to drop packets when they were full. This is relatively easy to work around for terrestrial networks, but in the context of long roundtrips, this would effectively be throwing away a lot of expensive work.
  • Design a new system instead (Bundle Protocol), that:
    • Stores data in the network until the destination is available (orbital mechanics) instead of throwing it away. Memory is cheaper now.
    • 2-step resolution process; determine which planet you’re heading for, and perform the final (DNS-like) resolution completely on that planet.
  • This protocol can be used both in realtime and delayed contexts.
  • It’s also still in use.
  • Mars → Earth: 28.8 kilobit/s transmission rate; boosted to ~128 kilobit/s by transmitting to an orbiter first which stores & forwards.
    • Latency is probably horrendous, but throughput is relatively good!