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
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
(c) Vinton G. Cerf, 1995, 1996
Permission is granted to reproduce freely provided credit
is given to the author.