In a previous post, I talked about IP over Avian carriers. I have since decided I want to make this a series of posts going into detail about methods for routing internet packets outside of routers and switches. Outside of the ISP network. I'm largely inspired to write about this because of South Korea’s Internet Identity Verification System which was struck down in 2012, the Chinese Great Firewall, Iran shutting down internet access typically during protests, and other places where identity is required for internet access, or too expensive for the region.
While IP over avian carriers was an April fools RFC and my original post was in good fun, looking around, it may be used unironically in certain jurisdictions. So with that in mind, lets look at some alternative information systems, and we'll look at how to make them interoperable. Today's post, the sneakernet, was inspired by Mirrors Edge. Not Mirrors Edge Catalyst (the sequel), but the first game.
The changes came slowly at first. Most didn't realize or didn't care, and accepted them. They chose a comfortable life.
Some didn't and those who refused to conform, were pushed to the sidelines. Criminalized. They became our clients.
Mirrors Edge is a parkour simulator, which makes for some fun gameplay, but more importantly, the game devs chose to frame this gameplay as a necessary communications network. This type of communications network is commonly referred to as "sneakernet".
Now some people are sticklers. Some people will like to say "but it doesn't use TCP, therefore it isn't the internet". We can of course follow TCP protocol over any communications network, I would rather point out that TCP was not the only protocol, its just the one that won out during the protocol wars.. What is the internet then? The internet is a network of networks. That is all. Interoperability will become an issue that we'll discuss.

Data Encoding

How should our data be encoded for this transmission? Typical cryptography for any communications network applies. The source and destination will want to exchange cryptographic public keys so that the data stays private should the message be intercepted. In particular, there are 3 concerns in information systems. Data integrity, data availability, and data confidentiality. These 3 concerns are part of the security triad
Okay, so the data in our packet in encrypted and only the receiver can decrypt. Now what? Sneakernet examples are usually portrayed as a USB stick. Its simple and quick and easy to understand, unfortunately however, this will result in compromise. The Universal Serial Bus standard was designed for anything. Joysticks, mice, keyboards, flashdrives, VR headsets I mean really anything. As long as you can install the firmware for it, it'll work. This became the problem. Installing firmware became a barrier to using whatever device was being sold. So, manufacturers began to put the firmware for the device inside of the device and operating systems would grab the firmware from the device and install it automatically. You plug it in, and it works. "Plug and play" they called it.
The problem? Replace the word "firmware" with the word "virus" and you understand the problem.
So, SD cards it is, but not every device has an SD card reader. Every relay in the internet has their connections they're able to reach who then take the packet and take it to its next destination. The runners will need to communicate with their aviaries or whatever data transmission center may be for the next hop. That all being said, I do like some IP over QR codes

Border Gateway Protocol

So the border gateway protocol is going to dox all of our connections. Not only that, but our source and destination will be found out. Not only that, but how are we going to get an IP address anyway? IANA for dang sure isn't about to issue us one. Lets take this step by step

Confidentiality

So how do we keep these connections confidential? One way to think about this, is jurisdictional arbitrage. We might be in Russia trying to send a message to someone else in Russia, but we don't have to keep all of the internet routing in Russia. Instead, we can transmit the data to an Aviary or a WISP or pointed a laser over the border, using smoke signals or blinking a flashlight. That point in friendly territory is our proxy. Every connection until this point only knows to delivery the message to this proxy, and the proxy decrypts the rest of the routing information.
We may even have a network of proxies like the TOR network https://www.youtube.com/watch?v=QRYzre4bf7I
##IP addresses
So, being an unregistered ISP, how do we get an IP address? We may allow our proxies to issue IP addresses, and then sort of layer IP addresses. So we have the IP addresses that are part of IANA IPs, that's one layer, but when our message reaches a router that is going to transmit to non IANA routers, it can look at the second IP provided here, which is the IP issued by our trusted proxies for this secret network. The closest thing that's similar to this is network address translation (NAT).
Maybe the right answer, however, is that we don't bother getting an IP at all
 

Connectivity Service Payments

Obviously, you'll need to pay your aviary or sneakernet runner to transmit this data on your behalf, and they will need to pay whomever they may be connected to for them to route to the next hop (a network of networks). The lightning network may sound like a convenient option for this, but there's a problem with opening lightning channels with operators who control your flow of information. You will need multiple service providers so that one can tell you about another force closing the channel on you. You'll need to use the alternate service provider to transmit the justice transaction.

Conclusion and Comments

I originally intended to make a post about shooting a laser light at the moon and then encoding a message in a series of blinks to be decoded by a telescope across a vast distance, but it turns out this method requires a 10 foot wide telescope which is very very expensive and obviously not feasible for anyone who would actually have a need for it (operator who can't obtain a UHF license for example). This Reddit thread is where I decided to end my research on that: https://www.reddit.com/r/askscience/comments/qw30x/can_an_amateur_astronomer_test_the_lunar_laser/
However, there are many other communication methods that we have not gotten into yet. While moon lasers may have gotten nixed off the list, there is plenty more.
If you happen to operate in a country with resource constraints (people don't have computers/everyone operates off of a shared computer/no internet access/Australia etc), go ahead and pop a comment and we can troubleshoot methods of getting TCP compatible internet packets to a location that has broader internet access.
A note on Bitcoin nodes: Shout out to BIP 324 which is coming to Bitcoin core version 26 (source: https://github.com/bitcoin-core/bitcoin-devwiki/wiki/26.0-Release-Notes-Draft), however, if ultimately we saw a globally coordinated ban on Bitcoin and all Bitcoin network traffic had to go through these alternate networks (or if we just end up being a space faring civilization) the amount of data we could transmit all at once could be very high, but the time it would take for that data to reach its destination would be measured in days. So we would seriously have to have a conversation about increasing the block time, but also the block size in the same conversation. Could end up with the same aggregate data size build up over time (same effective block size for the given block time), but who knows how that imaginary conversation might go anyway.
Does something like TCP even make sense in a sneakernet scenario? I mean, max packet size of TCP is 64k and sure we could put many packets on a storage device, but why even use a connection-based protocol with retransmissions and congestion control? I can see the value in having a sneakernet protocol at the application layer but it seems like gateways between the networks of networks should be determining the transport protocol.
That's all to say sneakernets have a totally different set of requirements than the internet protocol, right?
So we would seriously have to have a conversation about increasing the block time, but also the block size in the same conversation. Could end up with the same aggregate data size build up over time (same effective block size for the given block time), but who knows how that imaginary conversation might go anyway.
I wonder what relationships reorgs have to block propagation speeds. If we made the difficulty adjust based on a less frequent block schedule and block propagation latency increased by several orders of magnitude, I suspect chainsplits would be super common. We should be able to model the relationship between these though.
reply
This reminds me of something I read once, where they were measuring bandwidth of FedExing a bunch of big hard drives across the country. A kind of sneakernet but with quite different assumptions. It would make sense in some cases, I expect; for packet loss, you send one set of drives via FedEx and one by UPS.
reply
I used to work at Aspera (before they were acquired by IBM ... sad to see they no longer have their own website) and our main competition at the time was physical transport of hard drives.
reply
Yeah you're right, but you know I'm thinking of a lot of different data transmission methods and when I have a big bunch of them with tradeoffs that work in one area but not another or situation but not another, I'll start to think of interoperability between them and what the best protocol for all of that really is.
The fact that you could technically do it all over TCP is more neat than it is practical.
reply
Yeah I can imagine using TCP from one gateway to another. It just seems like for a legit sneakernet you wouldn't want to use TCP at the edges.
reply
So just to add, sneakernet may not always be the edges. People at various country borders have legitimate reasons to cross a border every day, and then pass their data to the next hop for example. May even be less risky than pointing an IR laser across the border or something like that. But morse code encoded IR flashlights can be mobile (you know it should be in a general area) but then there's false data (so transmission by an attacker to confuse or denial of service this method), but zip that's for another day lol.
Thinking of doing dronenets next what do you think?
reply
Oh good point. But the point of points is that ideally the transport is irrelevant. A snearknet is a transport protocol, yet to properly be a protocol it would probably need an addressing scheme and gateways to networks that use other transport protocols.
Thinking of doing dronenets next what do you think?
idk. I'd be more interested in how we might create a legit global sneakernet protocol that covers less breadth of considerations and goes deep on requirements and details.
reply
woah. Great post and then sneak in some spicey stuff at the end
reply
I love everything from the computerphile channel. There's also a related math channel and a physics channel iirc.
reply
Cool post, I like the eclectic set of media that goes with it!
reply
I did go back and read your initial post.... Brilliant ...! new PPOW Pigeon Proof of Work... There is some tall grass somewhere out there in the ninja world...:-)
reply
It's nice to see that kids still get inspired by cartoons and games, at least they stay at home and don't cause any trouble, right? Oh, wait... maybe that's the problem... lol Outside the real cabled existing infrastructure, one does not have any choices but Air, so let's talk to "Satellite God" Elon or something like wireless site to site wifi on something other than TCP/IP (@k00b is right) is the more realistic solution... I don't know, shooting from the hip here... didn't helium try that, how did that go, is that still a thing?
reply