The Backend Developer Roadmap: Part 1: Internet vol. 1

David Viodes
6 min readMar 25, 2021

Before we can jump into the complexities of how the Internet works, we should take a trip back in time. A trip back to before the Internet’s conception. I would like to thank Dionysia Lemonaki for this fantastic article found at freeCodeCamp.org. As well as this chapter from Michael Mendez’s book The Missing Link. My history will simply be a summary of these two articles. So, if you would like a more in-depth look into the history of the Internet, I would suggest starting there.

UNIVAC I at Franklin Life Insurance Company
UNIVAC I at Franklin Life Insurance Company

The Cold War ignited many advancements in modern technology. The Space Race was a direct result of American competition with the Soviets, and indirectly, so was the creation of the Internet.

On October 4, 1957, the Soviet Union launched the first satellite into space, Sputnik. As a result of the fear that stemmed from this satellite, the US Department of Defense launched several agencies. One of these many agencies turned out to be the Advanced Research Project Agency or ARPA for short. ARPA is responsible for creating the first version of the Internet which they called ARPAnet. ARPA took much of their inspiration from J.C.R. Licklider, a director at ARPA before ARPAnet’s creation when creating ARPAnet. ARPAnet was the first network to take advantage of packet-switching which is when data gets broken down into pieces and gets sent independently to the destination and reassembled once they get there.

Skipping ahead to October 29, 1969, the first “node to node” communication between two computers had been achieved. It was on this day that the Stanford Research Institute delivered a message that read, “LO” to the University of California, Los Angeles. The message meant to say “LOGIN”, but the system crashed and the message had been interrupted.

The network grew exponentially over the next few years. By 1973, England and Norway were even successful in communicating with one another. The issue now? There was still no common language for computers outside of their own network.

Enter TCP/IP. Thanks to the work of Vint Cerf and Bob Khan, the Transmission Control Protocol and the Internet Protocol were implemented. The role of TCP is to break data down into packets… sound familiar?… and distribute those packets before reassembling them when they get to their destination. The role of IP? To ensure that those packets make it to their destination.

What came after this was the creation of the web. The Internet was merely a way for two computers to send messages to each other. The web was created as a way for people to utilize the Internet in an accessible way.

How Does The Internet Work?

So, now we know how the Internet came to be, and we may have a slight idea of how it works. But, before we dive into that I just wanted to link up the articles that helped me along this part of my journey. This article by MDN was a nice introduction to how the Internet works. Then, this article by Stanford’s Rus Shuler was a much deeper dive into the inner workings of the Internet.

Now, is the Internet really just a series of tubes the way Ted Stevens claims it to be? Similar, but no. The Internet is a series of networks that all interconnect to make up a much larger network. But, how is this done? Let’s start small and start scaling our way up.

When you want 2 computers to speak to each other, you need to connect them. For example’s sake, let’s say we use an Ethernet cable to accomplish this task. Each computer needs 1 plug for the Ethernet cable, and you need 1 cable itself. Great, they’re now connected and can communicate. But what if you wanted to add a third computer to the mix? Well, now you’ll need a total of 3 Ethernet cables and 2 plugs per computer. Okay, not bad. But now… add a fourth, or a fifth, perhaps a sixth computer. Well for 4 computers, each computer would need 3 plugs with a total of 6 Ethernet cables. For 5 computers you’ll need 4 plugs with a total of 10 cables. You get the idea. Now imagine if there were millions or billions of computers that all wanted to talk to each other. That’s a lot of cables.

The solution here is routers. A router’s job is to take a message, otherwise known as a packet, from computer A and deliver it to where it is supposed to go, computer B. A router is essentially a computer with many plugs. This eliminates the need for your computer to have numerous plugs which, in turn, means fewer cables as well. Routers can even plug into one another essentially doubling the number of connections any one computer can have at any given moment. Great. With the help of routers, we have created the Internet! Well, sort of. There is still one lingering issue. We can’t set up cables from where our computer is to the rest of the world. That would take an incredibly long time and not really worth the effort.

So, how do we go about solving this problem? Well, as it turns out, there are already cables set up from your house that have a path to the rest of the world. One of these cables happens to be our telephone lines. Enter, the modem. The modem’s job, should it choose to accept it, is to take packets from our network, and turn it into information that can travel via the telephone structure that is already in place.

Now that we can send our packets through the telephone lines that are built into our house, we need a way to tell that data where to go so we aren’t sending data to the wrong place. Imagine the horrors. This is where ISP or Internet Service Providers come in. ISPs house special routers that have the IP addresses of other ISP routers. Now, if you don’t know, an IP address is a series of numbers that is unique for every computer. It is quite literally the computer’s address. So, there are even bigger companies called NSPs which essentially serve as the granddaddy ISP. All ISPs in the world are covered by the NSPs. So, what happens when you send a packet is it will go to the first ISP. That ISP will look through what is known as a “routing table”, or contact list of IP addresses, and if it can’t find the IP address that was sent along with the packet, it will send that packet on a default route up to the next higher up ISP. The process repeats and eventually, if the IP address is never found, it will reach an NSP which holds the largest routing tables in the world. That NSP will send the packet on the correct path until it eventually reaches the computer with the IP address the packet was intended for.

Wow, that was a lot. Take a deep breath, soak up all that information, we’re in the home stretch.

Now, it would be completely insane to expect humans to remember all of these series of numbers for every website they enjoyed going to. I mean, imagine if to go to medium.com you had to type in 173.194.121.32, or to go to twitter.com you had to type in 145.196.147.52. Full disclosure, I don’t know where these IP addresses will take you as they are only examples. But, that would be incredibly difficult to memorize and the Internet would be truly inefficient.

This problem led to the development of domain names. Domain names are used on top of IP addresses so that we don’t have to memorize all those horrifying numbers. google.com is a domain name as is twitter.com, medium.com, and pointerpointer.com. Please go to pointerpointer.com if you want to waste time. Just trust me.

And with that, we have a brief and minimal idea of how the Internet works. I will take this opportunity to go over what will be coming in the next few volumes of part 1 of this roadmap. Coming up I will cover:

  • What is HTTP?
  • Browsers and how they work
  • DNS and how it works
  • What is hosting

I hope to see you all next time!

Bibliography

--

--

David Viodes

Full-Stack Web Developer who continues to learn things whether he likes it or not.