The Internet is a huge collection of computer networks (about 100,000 of them in early 1996) that are interconnected around the world. Roughly 10 million computers are "on" the Internet. These computers are sometimes called "hosts" because, historically, most applications were put up on large, central computers which "hosted" various services. Today, "hosts" can be clients or servers or, sometimes, both. Networks are interconnected by special computers called "routers" whose job it is to "route" traffic from a source "host" to a destination "host" passing through some number of intervening networks.
The procedures used in the Internet to facilitate communication between computers are called, collectively, "protocols." These are conventions, formats and procedures that govern how information is organized and transported across the intervening networks between the source and destination computers.
Two of the key protocols used in the Internet are called "TCP" and "IP." Internet Protocol, or IP, is the most basic and on its foundation, the rest of the Internet sits. Transmission Control Protocol (TCP) is a "layer" above IP and provides services not available in IP. The two are usually referenced together as "TCP/IP".
"Traffic" on the Internet is made up of "packets" of data. Each packet has a finite, but not fixed length (content), a "from" address and a "to" address. It may be helpful to think of these packets as "electronic postcards" with all the features you already know about postcards.
When you put a postcard into the mail slot, you have some expectation that the postcard will be delivered, eventually, to its destination. You don't know whether it will go by boat, by plane, by car or by train or perhaps all four. You are not really sure it will be delivered or, if it is, how long it will take. If you put in a number of postcards addressed to the same place, they may arrive in a different order than you sent them.
Internet Protocol packets are just like postcards, but about a hundred million times faster (assuming a postcard takes a day or two). When you send an Internet Packet into the Internet, there is no guarantee that it will be delivered. If you send several of them, they may be delivered out of order, they may even be accidentally replicated (something that doesn't usually happen to a postcard!). Internet Protocol provides what is called a "best efforts" communication service.
It is often a surprise for people to learn that guaranteed delivery is NOT a part of the basic Internet system. However, the next layer of protocol, containing TCP, makes up for the potential shortcomings of the Internet Protocol layer. The best way to understand what TCP does is to imagine what you would have to do if you were to try to send a novel to a friend, but the only way you could to it was to send it as a series of postcards.
First, you would cut up the pages so they could fit on a postcard. Then you would notice that not all the resulting postcards had numbers, and since postcards often arrive out of order, you think to number each postcard so your friend could put them back in order to make it easier to read the novel. Second, since you know that postcards may be lost, you would keep copies of each one, in case you have to send a duplicate to make up for a lost one.
How will you know if one is lost? Well, it would be convenient if your friend would send YOU a postcard every so often to say he had received all postcards up to postcard number X (for some value of X). On receipt of that postcard, you could discard the duplicates up to postcard number X that you had been holding. Of course, your friend's postcard might be lost, so you also need to have a kind of "time out" after which you start re-sending copies of post cards that have not yet been acknowledged. Your friend may not have sent any confirmation because he was missing some postcards.
If your friend receives duplicate postcards, he can easily deal with that since the cards are numbered, so duplicates can be ignored or discarded. Finally, you might realize that your friend's mailbox has a finite size. If you sent all the postcards of the novel at once, they might, by some miracle, all be delivered at the same time and might not fit in the mailbox. Then some would fall on the floor, be eaten by the dog, and you'd have to re-send them anyway. So it might be a good idea to agree not to send more than perhaps 100 at a time and await a postcard acknowledging successful receipt before sending others.
The Transmission Control Protocol does all these things to deliver data reliably over the basic Internet Protocol service. That's really all there is to it. Of course, I have left out some important other details such as routing (how do packets get to where they are supposed to go) and naming conventions, but I will leave that for the next installment.
(c) Vinton G. Cerf, 1995, 1996
Permission is granted to reproduce freely provided credit
is given to the author.