For reliability, flow control etc., we need agreed protocols. Some
systems go one step further, and agree meta-protocols, with which
they negotiate which protocols to use.
What is a protocol? First and foremost, it is a set of agreed rules on what is
meant by each unit of data exchanged - i.e. it is the encoding or
agreed meaning for bits/bytes/words exchanged.
Examples of such rules are:
-
The use of English in international diplomacy.
-
The use of particular dictionaries for scrabble.
-
The use of the ASCII code for characters stored in computers.
Some agreed formats in protocols include the way in which a
data item is represented in a host depends on the
the language used to describe the object, the compiler and the
hardware base. In heterogeneous systems, all three of these may vary
across machines. Thus a common base is needed for describing objects
(;SPM_quot;Abstract Syntax;SPM_quot;) and exchanging them over the network (;SPM_quot;Concrete
Syntax;SPM_quot;).
This same language can be used to describe the control information in
protocols as well. It is sometimes also known as External Data
Representation.
Rules for protocols, as with
a human conversation are a set of agreements for structuring
communication between parties. Examples of such structurings
are:
-
The Client/Server model
Examples of this are request response (Remote Procedure Call)
-
The Master/Slave Model
Examples of this are Printer Servers (e.g. Postscript
printers) which have significant processing power, but are complete
slaves to a master machine.
-
The Peer/Peer Model
Examples of this include such applications as distributed
directories.
-
There are many others.
To make conversations, or lectures (!), possible, we have some
rules or protocols. Examples of such structures are:
-
Question and answer.
-
The monologue (Broadcast).
-
The conversation.
-
A Cry for help (Multicast?).
-
An Order and an acknowledgment.
You should note that each end point of a communication session
is autonomous, that is they can decide to stop or start
talking at any time they wish, or to interrupt an other
party and so on. This is concurrency, and is what makes the
design and implementation of protocols difficult.
;SPM_quot;An example of some (pretend) protocol behavior;SPM_quot;
To illustrate various aspects of communication in a very common place
situation.
verbatim1
This illustrates the problems of :
-
Location
-
Addressing
-
Structure of communication
-
Use of Agents/Servers for assistance
These protocols are often implemented within the operating system.
However, we must distinguish between the protocol and the service. The
next section discusses the idea of service, and <#158#> behavioral
equivalence<#158#> of services.
This is discussed further in chapters 5 and 6.
Lastly, there must be a set of rules for how to solve problems of
communication. These we address next.