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.
|