Settings

Theme

Pingfs: Stores your data in ICMP ping packets (2020)

github.com

78 points by linkdd 11 days ago · 28 comments

Reader

HenrikB 5 days ago

It's humbling to know that the RAM of computers like ZX Spectrum and Commodore 64 would fit in a single IP packet. It took minutes to load that "paket" from cassette tape.

  • zamadatix 5 days ago

    With IPv6 there is even an extension to go to 4 GB packets (extremely rare to actually be implemented though), which you can send in less than 100 ms with an 800G NIC!

    • hermitdev 5 days ago

      > to 4 GB packets

      Heh. Anyone remember the ping of death[0]? A lot (most?) of computers on the early internet didn't properly handle large packets, _especially_ from ICMP pings. Once upon a time, you could send a single ping w/ a packet size of 65536 and crash the remote.

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

cakemedia 5 days ago

A software version of a mercury delay line! https://en.wikipedia.org/wiki/Delay-line_memory

  • EvanAnderson 5 days ago

    Yep. ICMP delay line memory.

    • cbdevidal 5 days ago

      Okay, but could someone ELI5 how it works? Because I am heckin’ confused

      • leoc 5 days ago

        The UK's National Musuem of Computing has a nice demonstration video https://www.youtube.com/watch?v=xGEAPVCuwvY . Apparently delay-line memory also went on to have wide use in colour TVs before the arrival of cheap semiconductor memory https://www.youtube.com/watch?v=EPQq7xd3WdA , which was quite appropriate as it had come from radar in the first place https://www.youtube.com/watch?v=JZLpbhsE72I&t=675s .

      • adzm 5 days ago

        Imagine a continuously-moving loop that stores bits. When you want a certain bit you just wait for it to loop back to the position you want.

        • cbdevidal 5 days ago

          Good, but how does a ping hold data? AFAIK each ping is a single round trip and not a continuous loop. And where in the packet is the data stored?

          • robjs 5 days ago

            ICMP packets pretty much always carry some data (even though it's not _strictly_ required). This data is what is padded when the user asks for a ping with a specific packet size (e.g., when debugging MTU issues).

            In some applications, using an ICMP payload and getting a quote of the IP header + 8-bytes of the original packet back in ICMP error messages is part of the application. For example, traceroute utilises the fact that it gets part of the payload back in a ICMP TTL exceeded message to identify _which_ traceroute request was being responded to.

          • lesuorac 5 days ago

            In everybody else's router as it travels back and forth.

            Imagine mailing somebody a letter with data; once they receive the letter they send it back. The information is stored within the postal system.

          • chasd00 5 days ago

            you're right it's not continuous, you'd have to send another ping once the first one is finished. Your data is only "stored in the network" until the ping completes which would be a few hundred ms or so and then another ping has to be sent. If a single ping fails i wonder if the whole "fs" is corrupted or if there some kind of error handling built in.

_jholland 6 days ago

Obligatory Tom7 reference: [Harder Drive: Hard drives we didn't want or need](https://www.youtube.com/watch?v=JcJSW7Rprio)

He stores data in ICMP ping packets, but also Tetris board states, among others. If you are not familiar with Tom7, let this be an introduction to a heavyweight whimsical internet nerd

xvilka 5 days ago

The concept is widely covered in the amazing book Silence on the Wire[1] by Michal Zalewski. I wish he or someone else would write modern equivalent (or at least a new, updated edition) of the book.

[1] https://nostarch.com/silence.htm

dim13 5 days ago

Reminded me of GNU Terry Pratchett[1].

[1]: http://www.gnuterrypratchett.com/

lysace 6 days ago

https://news.ycombinator.com/item?id=9844725 (2015, great comments)

some_furry 5 days ago

Every time someone does something like this, I recall this post from Xe:

https://xeiaso.net/blog/anything-message-queue/

jupitr 5 days ago

makes me wonder if a sufficiently large number of connected nodes can represent bits via their online/offline status, and their network graph representing "memory"

diydsp 5 days ago

Router designers hate him...

Srsly... the ram inside a core router is some of the most precious resources around... this is an ooold idea.. people were doing at least as far back as the 2000s.. i showed them how our router (Avici TSR) worked and said "please don't use the super fancy fabric temporary store for this."

This kills the router designer.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection