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:
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
This same language can be used to describe the control information in
protocols as well. It is sometimes also known as External Data
Rules for protocols, as with
a human conversation are a set of agreements for structuring
communication between parties. Examples of such structurings
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.
To make conversations, or lectures (!), possible, we have some
rules or protocols. Examples of such structures 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
There are many others.
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
This illustrates the problems of :
Question and answer.
The monologue (Broadcast).
A Cry for help (Multicast?).
An Order and an acknowledgment.
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.
Structure of communication
Use of Agents/Servers for assistance