Blog

So You Think You Know The Internet?

In the day and age we live in, the internet is everywhere. The internet has made its mark on the world. The internet, whether you realize it or not, is extremely important to us because anything and everything from your pet photos to government documents, that could change the course of history, are on the internet. But what does that mean? What does it mean to be on the internet? Well, you may think you know the answer to that, but do you really? The internet is a vast and complicated space and my aim with this article is to give you a clear and concise understanding of the internet such that when you access your favorite website/movie or just use your phone to scroll through social media, you’ll have an appreciation for the stability of such a complex yet simple data transmission system, known as the internet!

Wanna Talk?

After the advent of computers, a question began to form in people’s minds: “What if a computer can “talk” to another computer? Let me rewind and explain so that this makes a little bit more sense.

The computer. An invention that planted the seeds for future innovation. A big piece of metal that gave way to endless possibilities from being able to do your math homework to being able to calculate the number of stars in the universe (see What’s a Computer for an explanation on computers). This machine was one of the biggest successes of mankind yet something didn’t feel right. People began to wonder that if one computer is storing data, such as the number of lunches sold in a school’s cafeteria, and another computer is doing related calculations, such as how much money the school/cafeteria made from today’s lunch, then they should work off of each other…right? Well, this wasn’t the case for a while because that form of computer-to-computer technology wasn’t invented yet…until computer networking dawned on us.

Computer networking, in short, is nothing but the way computers can interact with one another. And to clarify what I mean by “interact”, I mean “the exchange of data/information” because computers can’t play football with each other but they can transmit data with the help of computer networking. Now, in order to accomplish this feat computers used to have to be connected by a wire where the data from one computer could travel along the wire and into the desired computer. However, as time went on new technologies developed and the need for this wire was removed. This created a special type of connection between computers. You might have heard the name; it’s called a “wireless connection”.

Alright, the idea that computers can communicate with one another by wired or wireless connections hopefully makes sense. However, I still need to explain one more thing. As of now from what I have explained in this article, data can only flow in one direction, from Computer A to Computer B through wired or wireless means. But what if I told you that this actually wasn’t the case. Computers can actually send information/data back and forth! Computer A can say, “Give me the number of lunches sold”, to Computer B. Then Computer B can say, “Alright, here you go!” as a response to Computer A’s request (remember this word and how it’s used, it will come in handy later). Further, this whole process can occur vice versa as well. Computer B can request Computer A’s data, and then Computer A would send the data to Computer B. Upon Computer B receiving the data it might let Computer A know that it was received.

As you can see, with the ability for computers to be able to transmit data between each other, hundreds of possibilities are formed. All you really need to understand for this article is the fact that computers are able to send and receive data by wired or wireless means, whichever is necessary.

Now that you know a little bit of history and understand the idea that computers can send and receive data from one another, I want you to think about something. We are now able to have multiple computers talk to one another but what if my cousin in Australia wants to send my computer in the USA data…How will that work? Well, we could try to plug in a really (and I mean really) long wire but that would take a while. (However, this strategy is actually used in the real world and is known as “fiber optic cables”). We could also try to establish a wireless connection but it could get lost over such a long distance, so what do we do?

Think about this example: if I want to send my cousin in Australia a book from the USA how would I do it? Well, I would package it up, write my cousin’s address on the box, and give it to the mailman (remember these words: package, address, and mailman; they will make more sense later). The mailman would then ship it to a mail office in Europe, for instance, and then from that European office it would be sent to Australia where it would land on my cousin’s doorstep.  This same idea could work for us with computers! What if my computer sends the data to a computer in Europe, shortening the trip, and then that computer in Europe would reroute the data to my cousin’s computer in Australia. This method would eliminate multiple variables because the data only needs to travel from location A to B. Then, location B will handle the rest to make the data travel from location B to C!

What I have just explained is, in principle, the internet! That’s it. The internet is like thousands of these “A-to-B-to-C computer” examples that I gave. In other words, the internet is sort of like a huge spider-web where every intersection of the web is a computer and they all send data between each other in order to eventually get their messages to their final destinations.

I think that’s enough history and computer networking, now it’s time to begin talking about the internet and for that we are going to be talking about the internet spider web!

Spider Webs

Throughout this article I’ll be referencing the idea of the internet as a spider web. Throughout my explanations you’ll see that the internet is more connected than separate and everything has its place in the complex cross-sections of the web. For now, I just want you to picture a spider-web in your mind, preferably the circular types, and imagine that each intersection of the web holds a computer. Each of these computers represents a server (a computer that primarily stores data) in some part of the world which other computers are talking to.

Alright, now we can start learning about the internet but first we have to answer the most essential question: how does one computer reach another? This question and all related questions will be answered in the next section called: the IP address.

The IP Address

Recall how I said that the internet is like a spider web with computers living at each intersection, well how do we reach these said computers? The first thing that comes to my mind is an address! In the real world when you have to send mail, for example, to your aunt you would have to package your item(s) and then stamp your aunt’s home address on the box, which will then be sent/shipped to that stamped address. This same concept exists with the internet. Each computer on that spider web has an address stamped on it so that “someone” or “something” can send and receive information to and from it. This special type of address is known as an IP address. To elaborate on this address, an IP address is nothing but an address for every computer. Just like how every home has a home address, every computer has an IP address. 

Now what does this address look like? In the real world, addresses consist of a house number, street name, city, and state (sometimes country as well) such as: 12345 Spider Lane, Chicago, Illinois. However, IP addresses don’t have a street name or anything of that matter, instead they have four 0-255 numbers separated by periods “.”. For example, an IP address could be “0.0.0.0”, “255.255.255.255”, or anything in between such as “143.8.23.2”. It’s a unique type of address but it gets the job done.

Hopefully by now the idea that a computer can have an address makes sense to you but I still haven’t clarified what IP stands for. Well it’s quite simple actually, IP stands for: Internet Protocol; thus, making “IP address” stand for: Internet Protocol Address. Actually there’s one more thing that doesn’t fully make sense. We have an address so that computers know where to send data to, but how do we send it? Well some intelligent people were able to figure out a system of data transmission known as packets, which is our next topic!

Packets

Different ideas may pop into your head if you are trying to figure out how to send data from one computer to another computer. Well, I have got the answer for you and it is quite easy to digest. Think about the following example: when you have to send some items to a friend or relative through mail you would first place the items in a box and then specify the receiver’s address. This same type of process occurs on the internet in order to send and receive data/information. When one computer on the spider web wants to send data to another computer on the spider web, the first computer will take all of its data and package it into a singular data carrying unit, known as a packet. This packet will then be stamped with the address of the receiving computer, i.e. the receiver’s IP address, telling the first computer which computer in the spider web should receive this packet of data. 

That’s it! Packets aren’t that complicated. Packets and IP addresses go hand in hand just like cardboard boxes and home addresses in the real world! Remember: humans designed the internet to be “familiar” not something out of this world.

Alright, the connection between how IP addresses are used to know where to send data and how packets are used to literally send the data is, hopefully by now, understood. But there are still a few unanswered questions. Some of them include: “what if I want to send more than one item/piece of data across the spider-web?” Well just like in the real world there are rules behind what can fit in a packet. In the real world, when you are sending a package across continents you are not allowed to fit a horse inside a one square foot box because it’s just too big! Likewise, on our spider web a computer cannot just fit a gigabyte of data into one packet because it’s simply too big; as a result, the data is split up into multiple packages/packets and are all stamped with the same IP address. Then, when time comes to send these packets they will all be launched across the spider web one after the other or all together, depending on the circumstance, hopping from one computer to another to reach their destination!

That’s pretty much it, the internet isn’t too complicated once the basics make sense. Alright, now we fully understand how data can be sent from one computer to another and how the data can reach their destination computer. However, there is another question that arises from this explanation of packets, “What if one of the packets gets lost or damaged during their shipment?” If you’d like to know the answer, then you are in luck because it’s right around the corner in the next section: The Battle between UDP and TCP/IP.

As of now, with what I’ve explained, the internet is sort of like a utopia. Nothing goes wrong or awry. Everything is seamlessly being transferred from one computer to another on our internet spider web. However, we all know that this is not true for the internet because sometimes data is lost or even corrupted. Therefore, in order to combat this, information transfer protocols were developed. But you may be wondering, “What is an information transfer protocol and how does this help us?” To answer this question we will have to first answer the question of “what to do when data gets lost or corrupted.”

One of the first approaches to answering this question was UDP, which stands for “User Datagram Protocol”. With UDP a packet would be sent across our internet spider web and would be filled with some extra information, you could think of this as “packing peanuts”, which would aid in the delivery of all the information within the packet(s) sent. This was needed because not all information would reach the desired computer at times; thus, UDP was developed in order to resolve this issue. Additionally, you can think of UDP as an extension of IP, which means that UDP is built off of IP. Thus, UDP packets are still stamped with an IP address so that the packet knows which computer on the spider-web to go to. (This is why another name for UDP is UDP/IP!)

To make this make some more sense think of this example: when you have to ship an item to a friend, for example, you would put the item inside a package, stamp the package with your friend’s address, and then hand the package off to the mailman who would then “handle” the package by packing it with “peanuts” as it was being shipped. This is how UDP works. When data has to be sent across the internet, the information is stored inside a packet, which is given a destination IP address, and then is sent across the internet with some data transfer protocol “handling” it throughout its journey by “packing” it with extra data to aid in its delivery. Hence, the action of “handling” and “packing” a package is sort of the job of a mailman. Likewise, the action of “handling” and “packing” an internet packet is the job of UDP

Hopefully, the idea that packets can be sent across the internet by a protocol, such as UDP, which “handles” the information by “packing” it with extra data to aid in the delivery of the packet’s information makes sense. Now another problem arises. UDP is able to get all data to the desired computer safely, but what happens if the data is mixed up or lost along the way? This is where TCP/IP enters!

TCP/IP was created in order to solve the problems which UDP could not. For example, let us say that you, the president of the USA, were sending an email to your team of advisors that had the utmost level of importance…and then that email showed up like this: 

This would probably upset you, the president, and the rest of your team. This is one of the problems we face with UDP. UDP is not able to track whether packets were lost or not. In other words, UDP can carry/handle multiple packets across the internet but UDP doesn’t have any control if one or more packets slips from its hands. This is because not everything that is sent across the internet spider web resides within one packet. Most of the time, pretty much all the time, information is sent within more than one packet. Therefore, if one of the packets is lost, the data received would seem scrambled. That is why the presidential email would show up like this because one of the packets holding the main body of the email was lost during its “shipment”.

Because of this, TCP/IP was created. The way TCP/IP combats this is by creating an “Amazon Return and Refund” system…or sort of (the name does not matter but this will make sense later.) Think about this example: when you order a package from Amazon and it arrives at your doorstep completely obliterated, wouldn’t you be a little frustrated? Well, regardless of your frustration level, Amazon has created this system where if you feel otherwise about your item, then you can ship it back to amazon saying “I don’t like this, I want a refund,” and Amazon will refund your item. In principle, this is how TCP/IP works. 

In TCP/IP when one computer sends packets of data to another computer, if the receiving computer receives all packets requested then the receiving computer can relay a message saying “Thanks!” and the computer which sent the packets doesn’t have to worry about “refunding and returning” any information. However, if the computer which is sending the packets doesn’t receive any confirmation from the receiving computer that all the packets have reached, that then means that, well, not all the packets reached. Thus, the sending computer must activate its “refund/return policy” and send the receiving computer the same packets again, in an effort for them to successfully reach. This cycle of checking whether all packets have reached, and sending the packets that haven’t reached again, is the basis of TCP/IP connections.

Although TCP/IP isn’t 100% like the “Amazon Refund and Return policy”, its intentions are the same. If the information reaches then everything is good; otherwise, send it again in hopes of it reaching successfully. This is different than UDP because UDP says, “Here you go, if you lose it then I can’t do anything about it,” whereas TCP/IP says, “Let me know if the packets reach your or not, if anything happens to them I’ll make sure you will get another copy.” This small difference in packet transmission is why TCP/IP is so much more reliable and safe than UDP.

Further, TCP/IP has another trick up its sleeve. Sometimes the receiving computers do not receive the packets in the order intended, thus the information is scrambled up. However, TCP/IP combats this issue by numbering each packet so that even if all the packets are scrambled up, the receiving computer can unscramble them and read the data in the order as intended.

This is how TCP/IP works and this is why TCP/IP is used for any data transfer where the data must arrive. However, TCP/IP has its own flaws as well. There are many but one of its flaws is that TCP/IP takes some time to process because of all the overhead created with the back and forth messaging. However, UDP eliminates this overhead by simply sending its packets and then caring less about what happens to it, no extra overhead. That was a little exaggerated but you get the point; UDP doesn’t have to do any extra processing, whereas TCP/IP does.

Also, TCP/IP stands for “transmission control protocol” and, just like UDP, is an extension of IP and, therefore, is the reason why its name is called TCP/IP. However, TCP/IP can also be referred to as TCP, just like UDP can be called UDP/IP. Both UDP and TCP/IP, although they have their differences, both work to “handle” packets across the internet spider web. And, before we move on, I just wanted to say that UDP and TCP/IP have their own use cases today. Although UDP is prone to data loss, it is still used with video meetings such as Zoom and Google Meet because the data, which in this case is a video, doesn’t need to 100% be “on time”. Likewise, TCP/IP is used today with websites, emails, file transfers, and more because missing half an email or Word document isn’t so pleasing. In other words, UDP is used for time-critical applications whereas TCP/IP is used for applications that need the delivery of data to be inevitable.

Alright, I know that this explanation was somewhat lengthy but I wanted to make sure that UDP and TCP/IP’s differences, similarities, functions, and use cases were all crystal clear because it really opens your eyes into the internet. Before learning about this you understood how the internet works but not how it functions. Now things will start to make sense. For example, you know when you try to visit a website but the spinning circle appears and it seems like it will spin for the rest of eternity, but miraculously the website loads! This situation that you experienced is actually a real TCP/IP connection between a server and your computer where the server is trying to send your computer necessary data. Furthermore, because your computer never received the data from the server and the server also hadn’t received your computer’s “Thanks!” message, the circle continued to spin, signifying an ongoing struggle to transmit the data. Starting to make sense, right? Here’s another example: you know when you are on a facetime/video call with your friends and they start to “glitch out” or “lag”? Well, what you’re experiencing is a UDP packet containing some of the video data failing to reach your device. That’s why the video seems “glitchy/laggy” because not all the UDP packets are reaching your device.

Conclusion

You can now take a deep breath because you have just cleared “the basics of the Internet” and you can now surf or “climb” the internet spider web knowing how data flows from one computer to another by the use of IP addresses, packets, and transmission protocols! I know this may have seemed like a lot but I now bet that you have a completely better understanding of how the internet works then before. Although there’s a lot of moving pieces, each piece is easy to dissect and comprehend. That’s it! You can give yourself a pat on the back knowing you learned not just how computers talk to each other, but how computers talk on such a global and dense interconnected scale. 

I hope this article was helpful and made understanding the world of computers a little bit easier!

Thank you.