Hurry! Try our new Interactive Courses for FREE. 🥳   🚀

Simplest Protocol

In this tutorial, we will be covering the Simplest Protocol that lies under the category Noiseless Channels in the Data link layer.

Simplest Protocol is a protocol that neither has flow control nor has error control( as we have already told you that it lies under the category of Noiseless channels).

  • The simplest protocol is basically a unidirectional protocol in which data frames only travel in one direction; from the sender to the receiver.

  • In this, the receiver can immediately handle the frame it receives whose processing time is small enough to be considered as negligible.

  • Basically, the data link layer of the receiver immediately removes the header from the frame and then hand over the data packet to the network layer that also accepts the data packet immediately.

  • We can also say that in the case of this protocol the receiver never gets overwhelmed with the incoming frames from the sender.

Design of the Simplest Protocol

The flow control is not needed by the Simplest Protocol. The data link layer at the sender side mainly gets the data from the network layer and then makes the frame out of data and sends it. On the Receiver site, the data link layer receives the frame from the physical layer and then extracts the data from the frame, and then delivers the data to its network layer.

The Datalink layers of both sender and receiver mainly provide transmission services for their Network layers. The data link layer also uses the services provided by the physical layer such as signaling, multiplexing, etc for the physical transmission of the bits.

The procedure used by the data link layer

Let us now take a look at the procedure used by the data link layer at both sides(sender as well as the receiver).

  • There is no frame send by the data link layer of the sender site until its network layer has a data packet to send.

  • Similarly, the receiver site cannot deliver a data packet to its network layer until a frame arrives.

  • In case if the implementation of the protocol is done as a procedure then there is a need to introduce the idea of events in the protocol.

  • The procedure at the sender site runs constantly; there is no action until there is a request from the network layer.

  • Also, the procedure at the receiver site runs constantly; there is no action until there is a notification from the physical layer.

  • Both the procedure runs continuously because either of them doesn't know when the corresponding events will occur.

Let us take a look at the algorithm used at the sender's site:

while(true)  //Repeat Forever
{
   WaitForEvent();   //Sleep until there is occurrence of an event
   if(Event(RequestToSend)) //means there is a packet to send
   {
     GetData();
     MakeFrame();    
     SendFrame();   //Send the frame 
   }
}

Given below is the algorithm used at the receiver's site:

while(true)  //Repeat Forever
{
   WaitForEvent();   //Sleep until there is occurrence of an event
   if(Event(ArrivalNotification)) //means there is a packet to send
   {
     ReceiveFrame();
     ExtractData();    
     DeliverData();   //Send the frame 
   }
}

Flow Diagram for Simplest Protocol

Using the simplest protocol the sender A sends a sequence of frames without even thinking about receiver B.

In order to send the three frames, there will be an occurrence of three events at sender A and three events at the receiver B.

It is important to note that in the above figure the data frames are shown with the help of boxes.

The height of the box mainly indicates the transmission time difference between the first bit and the last bit of the frame.