Now that we've
got a bit of a feel for what the Internet is, let's consider another important
buzzword in computer networking: "protocol." What is a protocol?
What does a protocol do? How would you recognize a protocol if you
met one?
1.2.1: A Human
Analogy
It is probably
easiest to understand the notion of a computer network protocol by first
considering some human analogies, since we humans execute protocols all
of the time. Consider what you do when you want to ask someone for the
time of day. A typical exchange is shown in Figure 1.2. Human protocol
(or good manners, at least) dictates that one first offers a greeting (the
first "Hi" in Figure 1.2) to initiate communication with someone else.
The typical response to a "Hi" message (at least outside of New York City)
is a returned "Hi" message. Implicitly, one then takes a cordial "Hi" response
as an indication that one can proceed ahead and ask for the time of day.
A different response to the initial "Hi" (such as "Don't bother me!" or
"I don't speak English," or an unprintable reply that one might receive
in New York City) might indicate an unwillingness or inability to communicate.
In this case, the human protocol would be to not ask for the time of day.
Sometimes one gets no response at all to a question, in which case one
typically gives up asking that person for the time. Note that in our human
protocol, there are specific messages we send, and specific actions
we take in response to the received reply messages or other events (such
as no reply within some given amount of time). Clearly transmitted
and received messages, and actions taken when these messages are sent or
received or other events occur, play a central role in a human protocol.
If people run different protocols (for example, if one person has manners
but the other does not, or if one understands the concept of time and the
other does not) the protocols do not interoperate and no useful work can
be accomplished. The same is true in networking--it takes two (or more)
communicating entities running the same protocol in order to accomplish
a task.
Figure 1.2:
A human protocol and a computer network protocol
Let's consider
a second human analogy. Suppose you're in a college class (a computer networking
class, for example!). The teacher is droning on about protocols and you're
confused. The teacher stops to ask, "Are there any questions?" (a message
that is transmitted to, and received by, all students who are not sleeping).
You raise your hand (transmitting an implicit message to the teacher).
Your teacher acknowledges you with a smile, saying "Yes . . ." (a transmitted
message encouraging you to ask your question--teachers love to be
asked questions) and you then ask your question (that is, transmit your
message to your teacher). Your teacher hears your question (receives your
question message) and answers (transmits a reply to you). Once again, we
see that the transmission and receipt of messages, and a set of conventional
actions taken when these messages are sent and received, are at the heart
of this question-and-answer protocol.
1.2.2: Network
Protocols
A network protocol
is similar to a human protocol, except that the entities exchanging messages
and taking actions are hardware or software components of a computer network,
components that we will study shortly in the following sections. All activity
in the Internet that involves two or more communicating remote entities
is governed by a protocol. Protocols in routers determine a packet's path
from source to destination; hardware-implemented protocols in the network
interface cards of two physically connected computers control the flow
of bits on the "wire" between the two computers; a congestion-control protocol
controls the rate at which packets are transmitted between sender and receiver.
Protocols are running everywhere in the Internet, and consequently much
of this book is about computer network protocols.
As an example
of a computer network protocol with which you are probably familiar, consider
what happens when you make a request to a Web server, that is, when you
type in the URL of a Web page into your Web browser. The scenario is illustrated
in the right half of Figure 1.2. First, your computer will send a "connection
request" message to the Web server and wait for a reply. The Web server
will eventually receive your connection request message and return a "connection
reply" message. Knowing that it is now OK to request the Web document,
your computer then sends the name of the Web page it wants to fetch from
that Web server in a "get" message. Finally, the Web server returns the
contents of the Web document to your computer.
Given the human
and networking examples above, the exchange of messages and the actions
taken when these messages are sent and received are the key defining elements
of a protocol:
A
protocol defines the format and the order of messages exchanged
between two or more communicating entities, as well as the actions taken
on the transmission and/or receipt of a message or other event.
The Internet, and
computer networks in general, make extensive use of protocols. Different
protocols are used to accomplish different communication tasks. As you
read through this book, you will learn that some protocols are simple and
straightforward, while others are complex and intellectually deep. Mastering
the field of computer networking is equivalent to understanding the what,
why, and how of networking protocols. |