I’m back and answering the questions about tech that you’ve always been afraid to ask. Be sure to comment or otherwise reach out if you have more questions! Today, I was planning to explain how The Internet works. I have a post mostly done, actually. But it’s all gibberish until we first answer this question:
How do computers talk to each other?
This is different from the post I wrote about computer programming- that post described how people program computers to write software. Today’s post is all about how one computer sends information to another computer. The general concept of computers talking to other computers is called computer networking (it’s the same idea as social networking, just with computers).
Computer networking is drowning in fancy-sounding terminology, especially acronyms! TCP, UDP, IP, ISP, DNS, HTTP, TTY, SDN, LAN, WAN…computer networking experts often speak entirely in acronyms and sound like aliens. The irony is that basic computer networking is dead simple, because you can compare it directly to how human-to-human communication works.
For one human to effectively deliver a message to another human, we need:
- A communication medium
- A message format
Computer networking is, likewise, nothing more than communication media and message formats.
Humans use lots of different media for sending messages. The most common is probably our own voices. There’s also printing words on paper, like books (hopefully most of you still now what a book is), telephones, televisions…you get the idea.
What medium does a computer use to talk to another computer? The easiest medium to use becomes clear if we think back to what every computer understands in the end: 1’s and 0’s (bits). If you don’t remember bits, go back and read my post about how computers store stuff. Computers are designed to store bits as electrons in “electron baskets,” and different combinations of bits are used to create everything from the images you see to the text you read on a computer. So, it makes sense for computers to likewise talk to each other using bits. And not only bits, but electrons, just like the electrons used to store things on the hard drive.
Let’s get into an example before we get too far ahead of ourselves. In this example, my laptop wants to say hello to your laptop. “Hello” is five letters, five groups of 8 bits each:
01001000 01100101 01101100 01101100 01101111
So, my laptop is storing something like 8x5=40 electrons for the message “Hello.” What’s the easiest way to send these 40ish electrons to your laptop?
How about electricity?
The simplest way to send electricity between one computer and another is via a wire, just like an electric outlet sends electricity to a lamp. That’s essentially what an ethernet cable is- a big wire that connects a computer to another computer (or to other things, like routers). An ethernet cable is a computer networking medium! And though most computers can now send radio waves through empty space, the concept is very similar. You may also have heard of fiber internet, which uses fiber optic cables as a computer networking medium.
Humans use many different formats for messages, too, though formatting is so natural to us that we rarely notice. One example of a common message format is a novel. Let’s say you quote your favorite novel, and your friend (who is freakishly into reading the source for everything) asks you, “What part of the novel is that from?” You will probably tell your friend “It’s in Chapter 5" or “It’s on page 127,” or something like that. This makes sense to your friend because novels are always formatted into pages with numbers, and chapters. The format, therefore, is not the message itself, but it’s a helpful way of presenting the message.
Computers also need to format messages in order to make them easy to understand. An unformatted message to a computer is like reading a novel with no chapters, no spaces, and no pages- just one BIG sheet of paper with a bunch of words on it! Therefore, computers also format messages in a way that other computers understand, and it’s a very similar format to a novel…long messages get broken up into pages, and all messages come with chapters (called headers).
The header of a message contains a lot of information that the recipient computer may use, such as how long the actual message is (40 bits, in our example), a “To” and “From” field (like in a letter), and ways to verify that the message didn’t get garbled en route. Here’s an example of a header, translated to plain English:
Length: 40 bits
To: Your Computer
From: Natalie’s Computer
Message Verification: One word, an English greeting
Header information is only useful to the recipient computer, though it is created by the computer that sends the message. Continuing in our example, let’s say we connect our laptops with an ethernet cable, and my laptop sends “Hello” to your laptop using electricity. “Hello” is the message, 40ish bits. But my laptop also sends a header, similar to the one above. Your laptop uses the header to (1) double check it received the full message and (2) figure out what to do with the message, among other things.
So when we say the message is 40ish bits, the “ish” is very important…the message is 40 bits, but the extra formatting, like the header, is also bits! This means our message is ultimately more than 40 bits when sent from one computer to another over the ethernet cable.
Onward to the Internet
In computer networking, “medium” is just called “medium,” as you would expect. But the format for computer-to-computer messages is called a “networking protocol.” And though you may not realize, you have likely heard of the most common computer networking format (protocol)….it’s called the Internet Protocol, or IP. This is the same IP as in your computer’s “IP Address.”
And that, my friends, brings us to The Internet. In my next post, we’ll build on the idea of how computers communicate in networks using a medium and the Internet Protocol. Stay tuned!