Which protocol do you speak (part 1)?
The Internet is awash with acronyms. HTTP, TCP/IP, NFS, DNS, FTP, etc. There’s no end to them and they can all be quite confusing to the uninitiated. Much of the time, the letters refer to something called a ‘protocol’, which is really nothing more than an agreement between two computer systems to speak the same language or abide by the same rules. I’m writing this blog entry in English and you are reading it in English. So, English is the ‘protocol’ that we’ve both agreed to use to communicate. If I were writing this in French and you couldn’t read or understand French, then direct communication wouldn’t be possible. If we take a look at some of the more pervasive acronyms you might encounter on the Internet, you’ll find they, too, are just ways to describe how two things communicate with each other. Let’s look at a few of the more common ones you’ll encounter.
This is really 2 protocols in 1, and is one of the most important pair of protocols necessary for the Internet to function. The IP part of this stands for Internet Protocol, and refers to the numerical address computers use to identify themselves on the network. Every computer (or device) will typically have what’s called an IP address. This is a number that’s unique to that computer or device. The TCP part stands for Transmission & Control Protocol. That’s the language the computers use to ensure that messages that are sent to each other are decoded in the correct order. Computers that talk to each other do so over an inter-networked group of computers (hence the term ‘Internet’). When one computer sends data to another, it does so by breaking it up into smaller chunks and sending those sequentially. To make the network connection between computers robust, there are multiple paths through the network that the chunks of information can travel. This is so that if any one piece of the network fails, the data is automatically routed through another path. This means that if one computer sends multiple chunks of data, those chunks might not all arrive in the correct order, because each individual chunk might travel through different paths along the way. The TCP protocol ensures that the data is assembled in the right order on the receiving end. It also ensures that the receiving computer can ask for a missing or lost piece of data to be re-sent if necessary.
A computer system on the network is identified by its IP address (see above). Since an IP address is a number, it’s easy for computers to use this to identify each other. Humans, on the other hand, are much less adept at using numbers to identify things with. We like to use words instead, which are much easier to remember than numbers – this is why we all have names instead of numbers. The IP address for facebook.com, for example, might be something like 22.214.171.124 or 2a03:2880:1010:df1c:face:b00c:0:25de. Which would you rather type into your browser every time you want to stay connected with your friends? This is where the Domain Name System (DNS) comes in handy. DNS provides the mechanism to convert a computer name (referred to as its hostname) to its IP addresses and vice versa. When you type facebook.com into your browser, the first thing that happens in the background is that the words facebook.com are converted into the appropriate IP address by a DNS server so that your browser knows where to find that system on the network. Even though you may not see it, all computer systems are talking to each other using their IP addresses and it’s DNS that handles the conversion to/from the hostname that you see in your browser.
NOTE: This is part 1. Additional follow-up blogs to include brief and easy-to-follow descriptions of the following:
POP & IMAP