The Simplex protocol is data link layer protocol for transmission of frames over computer network. It is hypothetical protocol designed for unidirectional data transmission over an ideal channel, i.e. a channel through which transmission can never go wrong.
It is assumed that both the sender and the receiver are always ready for data processing and both of them have infinite buffer. The sender simply sends all its data available onto the channel as soon as they are available its buffer. The receiver is assumed to process all incoming data instantly. It is does not handle flow control or error control. Since this protocol is totally unrealistic, it is often called Utopian Simplex protocol.
The significance of this protocol lies in the fact that it shows the basic structure on which the usable protocols are built upon.
Sender Site: The data link layer in the sender site waits for the network layer to send a data packet. On receiving the packet, it immediately processes it and sends it to the physical layer for transmission.
Receiver Site: The data link layer in the receiver site waits for a frame to be available. When it is available, it immediately processes it and sends it to the network layer.
begin while (true) //check repeatedly do Wait_For_Event(); //wait for availability of packet if ( Event(Frame_Available)) then Get_Data_From_Network_Layer(); Make_Frame(); Send_Frame_To_Physical_Layer(); end if end while end
begin while (true) //check repeatedly do Wait_For_Event(); //wait for arrival of frame if ( Event(Frame_Arrival)) then Receive_Frame_From_Physical_Layer(); Extract_Data(); Deliver_Data_To_Network_Layer(); end if end while end
The following flow diagram depicts communication via simplex protocol.