How To Build A Mini Internet From Scratch (inspired by the walking dead)

in #technology3 years ago

It’s currently February 26th as I have just finished writing this. I have probably been working on it lazily for a month or two, and since then obviously Ukraine is being invaded and has had some unfortunate updates that will probably have already changed a number of times by the time this is posted. This is very much a thought experiment type video, but if you are looking for a reliable means of communicating with your friends and family regardless of the status of the internet then there are a couple of nuggets that you might take away from here to do further research. Apps like Briar have no central servers and allow you to communicate through Bluetooth, LAN, and the internet. Secondly, wireless radios allow communication outside of the internet altogether, some can be paired with phones for text based communication, and some radio tools like the gotennaMesh allow mesh networks. That said, this is about all the practical information you could get from this for that circumstance, the rest of this content is pretty much entertainment.

Also, I usually put out this kind of content in video form, but it's big so I'm putting that off for now. Stay tuned, I'm sure I'll work on that sometime.


I’ve been watching the walking dead lately, and even though I’m a bit behind on the trend as I often am I’ve pretty much caught up to the latest portion of it that’s out as well as most of fear the walking dead.

Anyway, I thought I might put out a little thought experiment, what if you wanted to create your own internet within the apocalypse? If so, what are your options and what could you do with it after building it. Believe it or not, it would be possible to host a live stream on an internet made from scratch in such a scenario (though that won’t work with most of the options laid out), and there would be legitimate uses for such a so called ‘internet’.

Before I begin I would just like to point out that this is mostly just a thought experiment. Networking is a good chunk of my job, but at the end of the day I haven't done things such as set up a GMRS mesh network (I’ll explain that in a bit) so no guarantees that things would work exactly as I lay them out. Regardless, time to get started in somewhat of a disorganized fashion.

Ultimately, the internet is simply built on connections between computers. If I load a file on my phone’s browser (using HTTP) from a server via cellular data my phone uses radio waves to connect to the cell tower with the requested information. The information is then sent from the cell tower to the cell company’s servers, probably through a high speed cable, where it’s then processed. If it was a domain that was requested it looks up the DNS records to see which IP is associated with the domain, then with the IP known (or if the IP was already known) the connection is made. Say it’s a server in a building that has internet provided by a cable internet. In that case that connection goes from my cell phone company to the cable internet provider, then from that cable internet provider to the server in that building via the cable internet connection. The file is then sent back in ‘packets’, which are just pieces of the file, which are received and assembled into the file.

simple internet.png

You might be familiar with my writings on IPFS, in which I spoke about the differences between IPFS and HTTP. In this case, however, they’re both connections between devices running on IPv4/6 so the above example works about the same regardless. Long story short, as long as your electronics have the capability of communicating and have been configured to do so they’ll work. And even though the modern global internet has a lot of complexity, if you’re scaling it down it gets a lot simpler and is legitimately buildable.

I’ll start by explaining some of the important ‘layers’ that build up such a network. I apologize if it’s too many random aspects to quickly, but once I get past explaining all the different parts I’ll give some examples of them being in use so even if I do a bad job at explaining the parts individually they’ll start to make sense once they’re put together.


Power

Generating Power
So, on to the plans. To start out, if you want to build a network you need power. In the walking dead they seem to run into Schrodinger power reserves: there is simultaneously unlimited power and no power, and we’ll never know which is at play until the writers decide if it will make a good plot point.

There are a couple of ways get power even if the grid is down. What you intend to build within the network, as well as what supplies you have on hand, dictate your options. Right off the bat, we can probably rule out sources like geothermal, hydro power, coal, nuclear, most windmills, and just about anything else that will require serious service by experts. This mostly brings us to generators, solar, and manual power.

Generators are the simplest option, as long as there’s fuel you can run them and have the exact amount of power required. There’s a few caveats to this, however, the most obvious one being the fact you need fuel. Cheap home generators can run off gasoline or propane, and there are diesel generators as well, but obviously there’s a limited supply of fuel. Gasoline goes bad, though fuel stabilizer is cheap, but unless you’re growing crops for fuel ethanol or oil for a diesel generator you can’t get more fuel once it’s gone (and good luck making propane). Beyond that, even if you were using ethanol or plant based oil for gasoline or diesel generators respectively it’s my understanding that engines wear out pretty fast if your using those.

Furthermore, a lot of generators won’t be safe to use with electronics out of the box, at least not the kind you would pick up at a hardware store, so you’d have to take that into account as well.

Your next option, which seems obvious, is solar panels. They come in all shapes and sizes, from huge with high outputs to ones small enough to fit in a backpack, and are a go too for all sorts of people who want or need power outside of the electrical grid. The problem comes in though when you need power and the sun is not out. While solar panels are probably the best option here, depending on your setup you might need a beefy power storage system.

Last in terms of power, there are some options for you to generate power manually. This usually includes thinks like wind up radios that will charge via USB or chargers that will generate power while you’re riding your bike. They certainly won’t generate enough power for most things, but could probably charge a mobile device, radio, or flashlight, so it’s worth mentioning.

Storing/Transporting Power
Once you have power though, there will be two limitations that you’d have to contend with. First, power will pretty much have to be used where you generate it. You can run devices or charge batteries, but otherwise you’re limited to about how far you can run an electrical cord from your source of power.

Speaking of charging batteries, that’s another thing you might run in to. If you’re using something like solar then once the sun goes down you’re limited solely to what you have in storage. Batteries like car batteries are not meant to have a constant pull on them, and will probably fail pretty quick if you try to run a bunch of devices off them day in and day out. Something like a deep cycle lead acid battery intended for boat engines might work decently, but if you were able to get your hands on a number lithium-ion batteries that would be ideal. There are also battery systems often known as solar generators that come pre-built for power storage.

Additionally, many devices from phones and laptops to portable radios have built in rechargeable batteries, and some are power efficient enough to be recharged with a USB power bank. Depending on the scale of what you wanted to build, they might be your best bet for reliability.

Infrastructure

Okay, so you have power, now you need devices to be able to communicate. How ambitious you are depends on what kind of lines (metaphorical or literal) that you need to lay out. Just keep in mind some types of hardware might be incompatible with some of these options.

Cables
Speaking of metaphorical and literal lines, your first option is to literally lay out cables. Stepping outside and laying out or burying 500 feet of weatherproof Ethernet cable is actually not actually that hard. Cables are also a pretty efficient means of getting data from one place to another, but unless you’ve got the equipment and manpower to lay cables on a massive scale there’s a limit on the amount of distance you can cover with them.

WiFi & LANs (I'll use WiFi and LAN interchangeably here)
The home WiFi network is pretty standard now: even if it’s not connected to the modern internet it’s still very functional as a LAN, and if you’re building a mini makeshift internet then it can provide access to that as well. Furthermore, you can get the benefit that most modern devices can connect to it without any hassle, many modern devices can create their own network, and something like a router or laptop can create a network that can bridge a connection from something like Ethernet to mobile devices by creating a WiFi network. You can also find routers capable of projecting WiFi five to ten thousand square feet, with extenders that can increase that indefinitely, so you can provide a pretty big area with connectivity.

WiFi and LANs also have the benefit of getting data to a large number of devices easily. Sure, cables are a really effective means of getting a high speed and low maintenance connection between a couple of important devices, but if you start building out a huge network with only cables then you run into issues where you might need to start including switches (which require power themselves) and a bunch of complex configuration issues. Even if you rely on cables a lot for building up the backbone of such a hypothetical network in the apocalypse you’d still be best left of using wireless communication at the edges of that network if you plan on having plenty of people connect to the network to utilize it with their own devices.

Long Range Radio
Beyond WiFi, which uses radio signals at fairly short ranges, you can actually get data transferred pretty far with radio waves. Keep in mind that your cell phone is pretty much a handheld radio with a computer built in, and satellite’s are radios with big reflective dishes to send and receive data in a precise manner.

One option for longer distance radio is to use a device that functions similar to a proxyham device. If you were unaware, a proxyham was a device that was originally developed to access WiFi at relatively long ranges (supposedly up to nine miles under ideal conditions). While the proxyham was never actually released to the market, it’s possible to build a makeshift device with a USB WiFi receiver, a flexible USB cable, and a satellite dish or even a metal colander.

proxy ham.png

Next, there’s the ability to use analog radio systems to send data. Products like the Gotenna Mesh allow you to create a mesh network using GMRS band radio signals, allowing the sharing of data/communications. Similarly, some Ham radio operators use APRS, which allows packets of data to be sent and received via radio signals. There are also FRS/GMRS radios which will allow you to pair them with your phone and send and receive what amounts to texts between users over reasonable distances.

Please Note:
Now, when it comes to radio signals in real life as it stands now there are certain limitations to what you’re allowed to send, how you do it, and what licenses you’d need; though I guess if this is a thought experiment about networks in the zombie apocalypse then you can get pretty damn creative using radio signals to transmit data.

Manual Transmission
Despite all these complicated options it’s still possible to deal with distance by simply walking or verbally transmitting data with a radio. Obviously there’s a limit to what you can verbally transmit over a radio, but it doesn’t require much in terms of setup. You can also simply bring a device from one place to another and connect to an ftp server or transmit briar messages that you traveled to bring (more on that in the software section), or just bring data on a thumb drive/sd card/hard drive from one place to another.


Hardware

Once you have power and a means for devices to communicate, the next logical step is address the devices that make up this hypothetical network. You have a lot of options, and of course a wide variety of devices can connect to one another and work in tandem, but I’m mainly going to divide this up into three groups of devices.

Servers, Desktops, and Laptops
Okay, so you might be wondering why I lumped budget laptops and state of the art servers in the mix, but a lot of this comes down the software they are capable of running and not their specs. Running a full blown computer of some form will allow for much greater processing power, and also allow you to do more advanced things such as configuring a DNS setup to use real domains in this hypothetical makeshift setup. If you were going to store a lot of data, run anything complex, or have a very complex network with a lot of connectivity than a computer of some sort would be the way to go.

Breaking things down a bit more, dedicated servers (and many powerful desktops) have much more power than laptops and other lower end devices. If you were going to run things like video streaming, or wanted to have a complex library of data, or had a large sprawling network then something with a bit more power would be vital. This comes at the cost however of requiring increased power and possibly increased complexity. Not to mention you have to find and prepare such a device.

Laptops on the other hand require much less power and usually have a battery system built into them. They also have the bonus of usually being able to create their own WiFi network and utilize Bluetooth, while still having the ability to run software like Windows Servers and Linux distros; and have ports such as USB and Ethernet. While they lack in computing power, if you’re building a network like this you might not need a ton of computing power unless you were really building it big, so they’d probably suffice in a lot of circumstances. They are also really common, and you can get by a password super easily – unencrypted devices can be bypassed with ease, and even if the hard drive is encrypted you can still wipe it and use the laptop itself.

Mobile Devices & Micro Devices
Since this is a theoretical network for the apocalypse, however, we can still go a lot smaller than laptops, and the first of that is phones. Phones are pretty much mini computers these days, and can easily run an FTP server, create a LAN network, and host other low power processes. They are also very power efficient, and would allow you to pretty much run a network from a $20 solar charger. They are of course unable to accept most wired connections and physical storage, however, and lack the ability to run certain software (so don’t expect to run DNS from a phone).

Phones and tablets would make a great end point. For example, you could have something like a raspberry pi receiving packets from a radio, then connecting to a LAN created by a phone, and then anybody who connected a device to that network could be patched in to the larger network on the other side of that radio. On the smaller side of things, a phone’s LAN could be used as the only device to device communication, with a phone being located in one main building and every time somebody wished to share a file or leave a digital message they would go to the building and connect to the network. Last, Android would probably beat Apple simply because it’s easy to side load on Android, but if the Apple store goes down then you’re stuck with whatever you already installed. That said, it’s not like Apple would be useless since you could still try to jailbreak it or simply use already installed software.

The last component I thought I would cover is micro devices like a raspberry pi. While a device like that is probably less powerful then a mobile device, it’s also geared more towards networking so it’s sort of equal in it’s ability to perform small tasks. A raspberry pi could be connected to the network through a LAN or wired connection and host lightweight content or perform tasks such interpreting radio transmissions to allow devices over long ranges to communicate.

End User Devices
Last, I might as well touch on end user devices as well. An end user device here is simply any device serving people instead of the network. You might have a number of devices hosting content, and a number more making sure communication between the devices hosting content works, but an end user device is something that a person uses for themselves. This could be a computer that is plugged into the network or connects to a LAN, or a mobile devices that connects to a LAN, but it’s so a person can perform a function such as communication or file sharing (probably the same things you use your devices for now). These devices don’t matter too much as it’s up to the device’s owner and not the network to keep them powered and running smoothly, and the also have the benefit of not causing disruptions when they’re turned off or disconnected.

That said, phones and tablets connected via LAN is the most likely end user device to be found on a network like this. Devices that make up the network itself may need more capabilities than a mobile device, but in order to do most functions like chat or share files a mobile device is ideal given it’s built in battery, portability, and minimal power requirements.


Software

Power, connections, and hardware make a network possible, but it’s the software that gives the functionality to it. Now, given this is all a hypothetical thought experiment, I could just say that you’d need to program everything from scratch yourself, but realistically getting modern existing software is the way to go here. Obviously lots of modern software like Google Chat is useless if Google is down; and protocols like IPFS, while great, given their hash identification system and the fact that this network would likely be too small and inconsistent to allow decentralized tools like that to shine. Instead, there’s specific tools however that will fill those roles nicely, many of which you might have found in a home network a decade back. Also, because this thought experiment takes place in the apocalypse, security is less of a concern so no worries about outdated or somewhat insecure systems.


First off, you’ll need operating systems and general tools like that. Windows and Linux installers are certainly crucial, a portable Linux distro like Puppy Linux would be ideal for bypassing any password protected computers you come across, and software to provide DNS or packets via Ham/GMRS radio and plenty of other networking software would be crucial if you intended to use them.

Additionally, you’d need generic utility software. Obviously if it needs to check for a subscription then the software is useless, since even though you could change where the domain points via DNS configuration you would still have to spoof a certificate to sign the software so things like MS Office and Adobe software is out of the question. Instead, document editors, photo editors, note taking apps, calculators, calendars, file compressors, ebook readers, music/video players, audio recorders, html document editors, and plenty more would be useful to have options for on multiple operating systems for computers and mobile. Also, while in an apocalypse GPS would be useless within a couple weeks, offline GPS would be useful at first and mapping tools like OsmAnd would still be useful for understanding the terrain and making markers even if GPS no longer works.

Next, communication tools would be extremely useful. Most messengers are useless without a central host (Apple Messenger, Google Chat, Signal, Telegram, WhatsApp, etc), but there are still a couple of options. Email could be configured via DNS, but email would probably bit a bit clunky to configure and unnecessary for a small network like this. Federated messengers like Matrix or XAMPP would be a bit simpler to use, and there are also messengers like fire chat which work off Bluetooth only, though I have not used fire chat personally and federated messengers would still be a bit finicky. That said, in my opinion, Briar should be the go to of any apocalyptic network engineer. Briar operates in mesh network style, providing all the data one device has to another whenever they can reach each other, meaning it would work perfectly in a situation when devices cannot always reliably communicate with each other. It is also completely decentralized (not relying on any centralization or federation), it can communicate though the internet, bluetooth, or LAN, and it can also host group chats, private chats, and discussion boards.

Next, you would definitely need a way to share files. These files could be videos, photos, maps, ebooks, notes, lists, or whatever else, but the ability to replicate files and share them with others would give anybody an edge in the apocalypse. Both an FTP server, which could be run of nearly any device, or a Samba server on a Linux computer could fill this role nearly perfectly. Additionally, there are also plenty of programs and apps that would allow somebody to automatically sync files between devices.

Continuing on, depending on your setup if you wanted to host web sites on this hypothetical network you would probably want to look into web scripts. Web scripts allow you to create a complex website with no coding, such as WordPress blogs or discussion boards. That said, complex websites take up more resources, and a discussion board you can load with a domain name in your browser might seem fancy but something like Briar would work almost as good at a tiny fraction of the power cost and setup complexity.

Ending my examples, you may also need specific software for any tools you are using. Want to create a GotennaMesh network? Then you’d probably need to get software from GotennaMesh. Same goes for Ham radio packets, or phone jailbreaking software, or equptment repair software, or anything else specific to your setup. Beyond that, there’s probably a million other examples I could give, but I’m lazy and these items are what came to mind.


Uptime

Once you have a network setup the next question is how long and often to keep it online. The simplest solution would just to leave it on 24/7, but that may or may not be the best solution. If you have the power then certainly having communication capabilities at all hours would be ideal, but when budgeting power there might not be enough for it to be worth it. It may be found that leaving it online 8-12 hours a day can allow everybody to use it when they need it, but also cuts back on power usage so you know you won’t run out. Or, maybe have multiple different settlements each with their local networks all bridged together through radio communications, so you leave some or all the local networks online 24/7 but only run the radio communications for a few hours each day to cut back on power.

But again, given this is a hypothetical thought experiment, there’s no real answer to this. A phone might take a week to burn through the same power as server does in an hour, and you may have a ton of power to burn or you may be so limited you can’t even keep that phone on 24/7.


Use Cases

The first, and biggest by far, reason why networking like this would be useful in an apocalypse would be instant communication across long distances. Most of this communication would ideally be done in text form, making it silent if you need to alert people for strategic purposes without making noise, it is super small in the amount of data it takes up, and can easily be read and stored so you’re not limited solely to what somebody is saying in real time. This can be broken into two parts:

First, as the old saying goes, knowledge is power. If you can send a message to somebody miles away about something time sensitive that can be extremely valuable. From getting help to somebody who’s injured, to warning of an attack by people, zombies, or whatever other apocalyptic threat that would fit this thought experiment – in addition to real time collaboration while responding to said issues.

The second, a bit more mundane, is the administrative side of surviving. Being able to share files on a portion of the setups discussed it would make it possible to share information on anything from people, to resources, to collected data. In the apocalypse that accompanies this thought experiment it would probably be extremely useful to share things like spreadsheets of resources that are needed and that are in surplus, information on people and who is good or bad, weather, and any other similar form of data.

But file sharing isn’t just limited to spread sheets. Ebooks, guides, videos, audio books, software, photos, and just about any other file could be shared through a number of different setups discussed. All these different files could be huge in providing information to people, and as said before, knowledge is power. It could also be used to share entertainment, which would probably be a much needed moral boost for any apocalypse survivors.

Last, a network like this could preserve data. Everything from game of thrones to scientific research is, to different extents, an achievement. While sticking copies of data on a thumb drive might be destroyed by bitrot within a few years to a decade, as long as a network like this was up and running it could be preserved for a lot longer. Now of course if factories are going to stop producing electronics forever then eventually the data would be lost anyway, but a network like this could probably be kept running for a good 20-30 years before the worlds mono-crystal solar panels start dying out.


Illustrated Examples

map.png

Okay, so finally here all that explaining can pay off and we can visualize an example. As you can see on this map we have one big town, a hamlet near that big town, three small towns, an isolated building, and a small house. The purple circles represent the networking hardware specific to each location, each red circle represents a WiFi/LAN network, the green lines represent a network using radio waves for long distance networking, and the blue line represents a proxy ham type setup. Also, let’s assume everybody is using the Briar app as their primary means of communication.


Big Town

big town.png

Starting with the big town, lets say they’ve got lots of people and a fair bit of power. Their local networking hardware includes a desktop PC, a router, a small server, and a radio that all stay on 24/7. The radio is connected to the desktop PC, and the desktop PC and small server are connected to the router which is very powerful. The PC has an FTP server on it, allowing anybody to upload or download files from it, and it also allows handles packets from the radio. The server has DNS setup on it and also hosts a couple of really simple websites.

The router provides a WiFi/LAN network that covered most of the town. Given the PC and small server are connected to it people can access all content on those devices (e.g. FTP file sharing & websites), are capable of peer to peer data so they can communicate through Briar, and thanks to the radio anybody on the big town network can access other networks if they also have a radio set up to send and receive internet packets.


Hamlet

hamlet.png

The hamlet is just outside the big town, so they have a pretty unique setup. They have a proxy ham type setup that is capable of connecting to the big town’s LAN network from a half a mile away. The proxy ham like setup then creates it’s own WiFi network, but connecting to the network in the hamlet is as if you connected to the network in the big town. Despite the fact the hamlet doesn’t have a radio setup or any local devices providing them with content, since the hamlet’s wireless network is just an extension of the big town’s network they can piggy back off big town’s hardware and use the servers and radio setup just as if they were close by.


Town 1

town one.png

Town one is a fair bit smaller so they have a little less in terms of hardware. They have a radio, a laptop with an FTP server on it that also handles radio packets, and a WiFi router connected to the laptop that covers the center of the town with a LAN. People connected to the LAN can share files through the FTP server and communicate with others on the network through Briar. The radio antenna allows them to connect to other town’s servers such as big town and communicate with other LANs that also have a radio antenna, though the connection is fairly slow over radio when compared to a LAN network. Town one lacks as much power, however, so they only leave the laptop, router, and radio on for 12 hours a day, then turn it off to preserve power unless they need it on for one reason or another.


Town 2

town 2.png

Town two also lacks large amounts of power, but they go about this in a different way. Their network consists of a radio, a cell phone, and a raspberry pi that is left on at all hours. The raspberry pi is connected to the radio and allows connection to other systems linked up through the radio. The raspberry pi is connected to a LAN created by the cell phone, and the cell phone also can run tools such as an FTP server; though the trade off for such lower power requirements is the limited space and computing abilities of the raspberry pi and cell phone. Nevertheless, devices can still be connected to the LAN created by the phone and operate it like any of the other LANs on the network.


Town 3

town 3.png

Town three is limited in their power and the smallest of the towns, so all town three has is a laptop that is connected to the radio. Though the laptop could create a network, instead it is usually off, and the laptop and radio are only turned on when they are used with the laptop being the only main gateway into the other LANs that make up the network. When turned on Briar messages and the like can come in, and it is capable of accessing data on LANs thanks to the radio, but then it can be turned off to limit the power consumption and complexity of the local town’s hardware.


Isolated Building

Isolated Building.png

Lets say that this isolated building is an apartment building. This building, thanks to it’s concrete walls and the hills between it and the other towns cause it to be unfeasible to use radio to communicate with other towns. While a repeater might be able to be set up on a hilltop and the roof of the building, it’s not within the means of the people there.

In this case, they have a local laptop that hosts a Samba file server, which operates similar to an FTP server. This laptop is situated on one side of the building and is also creating a LAN network. On the edge of LAN range there is a WiFi extender that provides a boost to the LAN’s reach and covers a good part of the building. With file sharing on the laptop, and messaging through Briar, the people in the building can communicate with each other. Additionally, wherever somebody travels from a town with a radio to the building that is also using Briar they can connect to the network in this building and automatically distribute messages to this network, as well as upload whatever files they wish to the Samba server.


Random House

random.png

Last, we can cover the random house. Lets say this random house is home to a family who farms plants and livestock, as well as scavenges. The only hardware they have there is a phone, but whenever somebody drops by from another town they can connect phones through Bluetooth or a LAN temporarily created by the phones, the have all messages coming from and going to the larger networks exchanged. They can also exchange files and the like whenever wanted. This would allow them to organize things like trade that utilizes the larger set of individual networks without having any hardware setup at that random house except a phone. Further, since they need very little power they can suffice with a super tiny solar panel or with manual power generation options like a hand crank radio with USB output.


Well that’s about that. I hope you found this interesting, it was really intended as more of an interesting learning adjacent piece than anything resembling a tutorial. Stay safe, have a good one, and if you’re really interested in any of the concepts here you can always give them a try in the real world.

Sort:  

Congratulations @natebowie! You have completed the following achievement on the Hive blockchain and have been rewarded with new badge(s):

You received more than 900 upvotes.
Your next target is to reach 1000 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out the last post from @hivebuzz:

Today is the beginning of a new Hive Power Up Month!
Hive Power Up Day - March 1st 2022
Support the HiveBuzz project. Vote for our proposal!