Unit 1

Lesson 2 - Programs, Processes, Protocols, and Layers

   Communication Between Processes

Computers and processes generally cooperate using three methods of communication:

Master/slave

Peer-to-peer

Client/server

In a LAN, peer-to-peer and client/server communication are the most common.

Master/Slave Communication

Master/slave communication occurs when one node has much greater computing capacity than another. For example, a typical master/slave relationship occurs in mainframe environments where a powerful central computer runs all the applications, stores all the data, and does all the processing. Simple "dumb" terminals function as slaves to this master, because they have no real processing or data storage capability. Individual terminals may not initiate an interaction, but must wait for the master mainframe to command it to send information. The slave merely displays text received from the master and sends information to the master in the form of the operator's keystrokes.

Peer-to-Peer Communication

When two processes have roughly the same power and can perform approximately the same services for each other, we call them "peer" processes. When processes use peer-to-peer communication, neither one controls the other.

A peer-to-peer computer network allows various combinations of workers to share files, folders, applications, and printers. No single computer sets the rules for these interactions, as seen on the Peer-to-Peer Traffic Diagram. However, each computer's user can decide what resources to make available to other peer users. Most popular desktop OSs, such as Windows 2000 or the Mac OS, have built-in software for creating peer-to-peer networks.

Peer-to-Peer Traffic

Peer-to-Peer Traffic



Client/Server Communication

Another way that processes can communicate is for one process to assume the role of client and the other that of server. The client process makes requests for the server process to perform some task. Client/server communication is typically used to allow sharing of centralized resources, such as data, applications, peripheral devices, or storage space. A typical client/server network is illustrated on the Client/Server Diagram.

Client/Server

Client/Server



Typically, a client process is found on a lower capability, end-user node, such as a workstation or personal computer (PC). The server process runs on a node with larger capacity or greater power, such as a network file server.

A client/server network is implemented with a specialized network operating system (NOS) such as Novell NetWare, Windows NT Server, or Windows 2000 Server. UNIX and Linux also provide client/server features.

Both client and server processes are dedicated to their respective tasks, and those roles never reverse. However, the same computing machine can run multiple processes. Some of those processes can be servers of some functions, and some can be clients of other servers. Thus it is important to remember that "server" refers to a process, not necessarily a particular machine.

Client and server processes interact with each other by transmitting request/reply pairs. The client process initiates an interaction by issuing a request to the server. The server process responds with a reply satisfying the request. This request/reply communication essentially divides a task into two parts and executes each part on a different system on the network.

Also, peer-to-peer communication can still occur on a client/server network. If servers have been established for shared functions such as file sharing or printing, two computers may still exchange data as peers.

Client and server processes share a common protocol. However, the protocol defines entirely different conventions for communications originating from the client and those originating from the server. This is in contrast with peer-to-peer communication, in which the protocol is more or less the same in both directions.

[ Previous Section ] [ Unit Contents ] [ Next Section ]