Service Primitives

Each protocol which communicates in a layered architecture (e.g. based on the OSI Reference Model) communicates in a peer-to-peer manner with its remote protocol entity.Communication between adjacent protocol layers (i.e. within the same communications node) are managed by calling functions, called primitives, between the layers. There are various types of actions that may be performed by primitives. Examples of primitives include: Connect , Data, Flow Control, and Disconnect.

Primitives for communications between peer protocol entities

Each primitive specifies the action to be performed or advises the result of a previously requested action. A primitive may also carry the parameters needed to perform its functions. One parameter is the packet to be sent/received to the layer above/below (or, more acurately, includes a pointer to data structures containing a packet, often called a "buffer").

There are four types of primitive used for communicating data.The four basic types of primitive are :

  1. Request: A primitive sent by layer (N + 1 ) to layer N to request a service. It invokes the service and passes any required parameters.
  2. Indication: A primitive returned to layer (N + l) from layer N to advise of activation of a requested service or of an action initiated by the layer N service.
  3. Response: A primitive provided by layer (N + 1) in reply to an indication primitive. It may acknowledge or complete an action previously invoked by an indication primitive.
  4. Confirm: A primitive returned to the requesting (N + l)st layer by the Nth layer to acknowledge or complete an action previously invoked by a request primitive.

To send Data, the sender invokes a Data.Request specifying the packet to be sent, and the Service Access Point (SAP) of the layer below. At the receiver, a Data.Indication primitive is passed up to the corresponding layer, presenting the received packet to the peer protocol entity.


Gorry Fairhurst - Date: 14/01/2004 EG3557