ISO/OSI model

The ISO/OSI layered networking model aims to provide a common basis for coordination of standards development for the purpose of systems interconnection while allowing existing standards to be placed in perspective.

It is a 7 layered protocol where each layer (except the last) provides services to the layer above it, and (except the first) utilizes the services provided by the layer below it. Layers at the same level on different nodes are called 'peer' layers.

Communication between peer layers is virtual and obeys some layer protocol.


Interconnection adds significantly to the utility provided by a group of discrete computers (eg: sharing of resources, implementation of utilities like e-mail, allows executing programs to access and manipulate data stored on remote machines).
Implementation of such faciliities requires communication between processes (inter-process communication or IPC). IPC between processes executing on physically disparate processors can be achieved using:

  • Message passing
  • RPC
  • Distributed shared memory

Message passing

This allows the passing of shared information by value. Examples of these systems include SNA, MAP & TOP, and TCP/IP.

Remote procedure call (RPC)

The assumption in connection-oriented communications is that both parties initiate the transfer of data. Many cases are in the form of a request-response pair. This is the foundation of remote procedure call.


This set of procotols allow the interoperability of different computers connected via a LAN. These LANs can then be connected by gateways to form an internet. Services offered by the internet include remote login, file transfer, e-mail, the world wide web…
The protocol makes no assumptions about the underlying network type. Each node is assigned an internet-protocol (IP) address which defines the node within the LAN and defines the LAN itself. The IP address is not the same as the physical address of the node; in this sense IP is virtual.

IP (internet protocol)

Provides a connectionless transport service where messages are boken up into small packets (datagrams), each routed separately and containing a full source and destination address. Programmers using IP must handle flow control, ACKnowledge messages and error control in their code.

TCP (transmission control protocol)

Provides streams which facilitate the transmission of large quantities of data. TCP is a full connectino oriented system providing a full duplex virtual circuit. Because it is built on top of IP, no bandwidth can be guaranteed.

Evaluation of TCP/IP

With regard to the desirable characteristic of a distributed store TCP/IP performs poorly. The use of a network is not transparent at all; local commands are different to remote ones.
Knowledge of location is necessary to access resources since access is achieved using IP addresses which define location. Aliasing via the use of protocols such as NFS can solve this problem.
Also, location forms a part of the name for a resource so that the name at a remote node is different from the name which suffices at the host node. Control over access to data is limited by the protection mechanisms provided by the OS running at each node. There is no provision for fault tolerance. Finally there is no provision for shared data other than through the use of remote login.

Adress resolution

ARP (address resolution protocol)

This allows dynamic mapping between physical —> IP addresses. eg:

  • Alice wishes to determine Bob's physical address, PB, but only knows his internet address, IB.
  • Alice broadcasts a special packet requesting the node with address IB reply with address PB.
  • Other nodes receiving this message use it to update their mapping info about Bob.
  • Bob responds with a message containing PB.

RARP (reverse address resolution protocol)

  • Bob (on a diskless node) wants to determine his IP address.
  • Bob broadcasts a RARP packet containing his physical address, PB.
  • The RARP server(s) respond with (a) message(s) containing IB.

The existence of multiple servers in this environment can result in contention problems wtih CSMA/CD networks. Multiple servers can provide a faster result.

Remote procedure call

This mechanism requries an underlying virtual network to transfer the procedure call message between nodes (TCP/IP, Sun RPC, Apollo NCA/RPC, many others). Programmer interfaces vary, from those that represent RPC as identical to local procedure call to those that implement it as being intentionally different.
Neither type of implementation can handle parameters of the complexity possible with local procedure calls (because complex data structures are constructed using memory pointers).


RPC can be implemented by linking library procedures (stubs) into the client's address space. This inserted code can initiate messages to servers and receive replies from them. Application programs then make local procedure calls to the stubs, which collect the parameters to the call in a message.
The local stub then calls the transport mechanism to send the message to the server machine. The message is passed on to the appropriate server stub (skeleton) which unpacks the parameters and calls the server process with a local procedure call. The return value is sent using a similar strategy (except in reverse).

RPC can be either blocking or non-blocking. This refers to whether or not the calling process is suspended while the procedure call is being handled. Most mechanisms supply both blocking and non-blocking operation as options.


Transport systems can and have been optimised for RPC; one such transport system is the versatile message transaction protocol (VMTP). VMTP does not establish & release connections as in OSI. Rather it establishes a connection with the delivery of a request message. The connection status is dynamically updated with the receipt of subsequent requests; receipt of a message is ACKnowledged by the request.

  • Typical VMTP communication consists of 2 messages (request, response).
  • Improvements in buffering can be achieveed
  • Invocation of RPC results in the calling program setting up buffer space frmo which request data is directly transmitted and into which the response is directly written (no intermediate buffers used, removing unnecessary copying).
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License