How does the internet work and why does it matter?
A brief, simple and non-technical explanation of how two computers comunicate
In this blog post I’ll try to provide a simple and straightforward explanation of how the internet works, and why does it matter. It will definitely not be an in-depth technical explanation (I wouldn’t be able to do so) although I will be pointing out to some other resources that explain some of the concepts we will find here in much more detail. If you happen to be an expert in the matter and spot any inaccuracy or mistake, please reach out!
Let me start by stating the obvious which is that, the internet is the series of protocols and infrastructure that allows two computers to communicate between themselves.
For that, it is important to understand that every single computer connected to the internet, whether that’s your personal computer or any remote server has a unique address called an IP address. An IP address, up until 2012, was a series of four 8-bits numbers (32-bit in total) in a range between 0 and 250 separated by dots, like this: 172.16.254.1. That gives you a total of almost four billion combinations (3 906 250 000) and apparently, around 2011 we ran out of possible available IP addresses in this format (!!) and so now we also have IP addresses of 128 bits (larger) to have more possible combinations. You can get more details about it here.
So what happens when you try to access a website or send an email? Actually, many things so let’s break it down in layers:
The Application Protocol Layer is the first layer of abstraction we encounter and consists of the series of communication protocols that we use in order to set the type of communication that we intend to establish. The most famous of these protocols are HTTP (Hypertext Transfer Protocol — which we use to access websites and allows to exchange data between two computers using hyperlinks) and SMTP (Simple Mail Transfer Protocol — which we use, you guessed right, to send and receive emails).
Once the type of communication that we want to set has been established, the TCP/IP protocol will break down whatever data we want to send into smaller pieces called “Packets”. Through TCP/IP each packet will be assigned information about its destination (IP address), the port it wants to reach within that address (think of ports like different access points to the same computer), and about it’s relationship to other packets.
After that, packets are converted into electric signals and get broadcasted over the network through your ISP — Internet Service Provider (the company you pay your bills to). For the packets to reach their destination (the computer/server with the IP address you are trying to reach), they need to be routed.
So how does that happen? How do packets know which route to take to get to their destination? They do so using Routers, which have “Routing tables” (tables that contain the location/path to other computers). If a router happens to know the location a given packet is trying to reach, it will directly redirect that packet there; if not, it will redirect the packet to a router “higher up” in the hierarchy until it finds it’s route (a router with a bigger routing table so to speak). Once the packets get to their destination, the exact same set of protocols (TCP/IP, Application Protocols, etc.) will decode the information.
You might be thinking what does it mean “higher up in the hierarchy”? Is there any hierarchy at all? Isn’t the internet decentralized? Well, yes, kind of. The series of protocols that make the internet work are built in a way that allow the coordination and exchange of information in a decentralized way, where there is no single source of failure. This is still true since there is no central “brain” doing any kind of planning and coordination; BUT, at the same time, the information we exchange travels through the network of cables, antenas, and satellites that some companies own. These are the companies (so-called Tier 1 networks) which ultimately are the ones having the largest pools of routing tables, meaning that a relatively small group of companies assure that all devices are connected.
Furthermore, if you think about it, a handful of companies now own the way in which we access and exchange information over the internet (think of Google, Facebook, etc.). This is a position that, in most of the cases, these companies have earned for themselves since we, as consumers, freely choose to use their services. But at the same time, one of the reasons why these companies are able to maintain these positions — apart from having better products, strategies, luck, etc. — is because they somehow own (I use own as an expression here, not as an actual legal concept) the data that we freely decide to share with them.
I personally think that this is about to end and that the kind of internet we’ve know so far is just the first stage of a major transformation where individuals are increasingly going to own the relationships they establish with other humans, and with information, over the internet.
To finish, let me just remind you that the internet has been working uninterrupted, 24/7, without any kind of disruption since the very first they. Not bad right?
Thanks for reading. Here’s a list of resources:
Most of the information in this post (including the diagrams) comes from this Stanford article by Rus Shuler: https://web.stanford.edu/class/msande91si/www-spr04/readings/week1/InternetWhitepaper.htm
The Internet Backbone explained: https://en.wikipedia.org/wiki/Internet_backbone
About Tier 1 networks: https://en.wikipedia.org/wiki/Tier_1_network
About the application protocol layer: https://en.wikipedia.org/wiki/Application_layer