Search This Blog

Wednesday, April 20, 2011

Service primitives of Network Software

Service primitives

A service is formally by a set of primitives or operations a user or other entities can invoke to access the service. That is what materializes an interface. We commonly classify service primitives into 4 classes:
primitive meaning
request an entity is requesting a service (we are requesting a connection to a remote computer)
indication an entity is informed of an event (the receiver has just received a connection request)
response an entity is responding to an event (the receiver is sending the permission to connect)
confirm an entity acknowledges the response to its request (the sender acknoledge the permission to connect to the remote host)
Most primitives need parameters. For instance, parameters of a CONNECT.request (used to query a connection) are the machine you want to connect to, the service you want to use (FTP, telnet...) and the maximum size of exchanged packets.
A acknowledged service is a service that requires a request, an indication, a response and a confirm. A unacknowledged service is a service that requires only a request and an indication. Typically, the service that establishes a connection is an acknowledged service because the peer entity must agree to set the connection. On the other hand, data transmission may be an unacknowledged service, whether we want an acknowledgement or not.
On an implementation point of view, primitives correspond to functions we can use in a program to access a given service.

services/protocols relations

A service is a set of primitives a layer provides to the upper layer. The service defines the operations a layer may realize, but it does not tell how these operations are really realized. The most characteristic element of a service is the interface between two adjacent layers.
Conversely, a protocol is a set of rules that applies to the meaning and format of messages exchanged between two peer entities. Entities uses protocols to implement service specifications. A service may therefore remain the same with two different protocols.
Protocols and services are different, but they are close to each other. We must not confuse. A service is rather an abstract notion, although the protocol corresponds to what really happens. This distinction actually answers to modern programming and implementation requirements. It is equivalent to making the distinction between an algorithm and its implementation.

connection-oriented services and connectionless services

The connection-oriented service requires a connectio to be set between two points. The receiver then expects the sender to transmit data. At the end of the transmission, the connection is stopped. Such a service is for example the telephone: to use it, we must first take of the hook, and dial a number. The called person picks up the phone and the connection is then set. The two speakers converse until they hang up.
The connectionless service is characterized by the independance of transmitted messages. Someone can receive a message without being aware of it. Messages can then follow different routes. The consequence is that we can receive messages in an inverted order. The typical example for this kind of service is the mail system: someone writes a letter and sends it without warning the addressee. This letter may then arrive after a second letter the same guy may have sent to the same addressee. Routes followed by these two letters may be different.


  1. Wonderful blog & good post.Its really helpful for me, awaiting for more new post. Keep Blogging!

    Computer Service

  2. The facts and the other key features mentioned here are quite considerable and to the point as well, would be so far better idea to look for more of these kind to have more efficient results.

    Service Management Software

  3. Hi,
    Thanks for sharing this information.
    In view of verification , how we can implement these service primitives in verification environment ?
    If you can give some idea it would be very helpful.

  4. Wow, much informative blog post, thanks for sharing these information with us.

    IT security certification