Hacker News new | ask | show | jobs
by gonehome 2674 days ago
Somewhat comically J.C.R Licklider's first proposal for what became the internet was titled the Intergalactic Computer Network. He later said he did this because when the project is inevitably downsized it would at least cover the earth.

Interplanetary internet designs and peering are interesting problems to think about though.

https://en.wikipedia.org/wiki/Intergalactic_Computer_Network

2 comments

There are real, standardized protocols [0] for this sort of thing, now. Early in my career, when I worked at JPL/NASA, I did a bit of work to test these protocols on Linux in a simulated Network of spacecraft. Fun stuff!

[0] https://en.wikipedia.org/wiki/CCSDS_File_Delivery_Protocol

What a coincidence, I'm working on the core flight system project right now, which includes an implementation of CCSDS File Delivery Protocol. You might be happy to know that project is still very much alive within NASA (you were probably already aware).
Haha. Great to hear that work still lives! I hope you’re not using the (horrible in retrospect) stuff I wrote 15 years ago that worked on 2.0-2.6 kernels. I remember porting the network kernel driver from 2.0-2.2 manual build system to implementing a (really basic) Makefile that worked with 2.0-2.6.0ish kernels (which were newer at the time). I knew Scott Burleigh was still innovating CCSDS and other protocols at JPL, and, IIRC the work I had done had also been delivered to Ames and ESA for test lab use. I had some other work to create protocol dissectors for Ethereal (before the name change to WireShark). WireShark now includes built in dissectors for CCSDS, CFDP and others.
Fairly off topic ;), but any idea if SQLite is used on any of the rovers, spacecraft, etc?

Mostly from idle curiosity. Was wondering a few days ago and guessing "probably yes", but no idea who to ask.

So, taking the opportunity (heh) now. :)

The small parts of the Mars Rovers (MER) I worked on or worked with didn’t use SQLite. It was too early in SQLite’s history for it to be used on MER. MER also used VxWorks which probably didn’t have a lot in the way of POSIX support at the time. I remember other devs telling me the fun they had supporting 1553 bus on “such a new RTOS”.

Wikipedia say MSL used VxWorks as well.

I’d have to ask a buddy still doing Mission Ops Support at JPL but I’d think the answer is no SQLite on MER or MSL missions. The OSes were fairly custom, non-POSIX builds. The ESA folks might have tried though on their missions.

No worries. Been meaning to investigate VxWorks at some point, mostly from an interest in embedded devices (for specific wearables concepts). This will be another thing to add for that list. :)
Not a Mars spacecraft, but SQLite has definitely been used on some CubeSat missions in LEO. I know because I'm the one who did it. :-)
Was it a commercial or government CubeSat?
As far as I know, it has flown on two government (civil space) missions. I'm not longer at the company so I don't know what else it has or will go into.
Cool. :)
I don't know about rovers, but some smaller spacecraft (mainly satellites) use mysql, as well as postgres. Disclaimer: I'm not the right person to ask.
What does it use for time? The spec mentions time in a lot of places, but never defines it. There is even a field to communicate light-time but no mention of how to synchronize anything. I guess this runs on top of another protocol that solves it? Any idea what it is?
So, it’s been a while since I’ve dived in [0], but “time” as a dependency has been, what I would call, “engineered out of the system”. Instead, there’s concepts of (local) timers, Store-And-Forward Overlays, retries, communication opportunities and the overall realization that time is relative and synchronized time can be difficult at a protocol level when link-level distances are always changing (by miles to billions of miles at a time per communication opportunity).

[0] https://public.ccsds.org/Pubs/720x1g3.pdf

A more recent protocol based on similar thinking is IPFS: https://en.wikipedia.org/wiki/InterPlanetary_File_System