Noiseless Channel Protocol

Last Updated : 23 Jul, 2025

A protocol is a set of rules used by two devices to communicate. These sets of rules are usually decided by headers (fixed headers determined by the protocol). These headers specify the content of the message and the way this message is processed. To detect the error, the header must be the address of the destination, the address of the source, the checksum of the message.

Categorization of Protocol

Protocols are divided into two main categories based on the type of communication channel they are designed for:

1. Protocols for Noiseless (Error-Free) Channels

  • Designed assuming no errors occur during transmission (no lost, corrupted, or duplicated frames).
  • Mainly used for theoretical purposes or as a foundation for more complex protocols.
  • Not practical for real-world communication since channels usually have noise.

2. Protocols for Noisy (Error-Causing) Channels

  • Designed to handle errors such as lost, corrupted, or duplicated frames.
  • Used in real-life applications where communication channels are not perfect.
  • Include mechanisms for error detection and correction.

Noiseless Channel

An idealistic channel where no frames are lost, corrupted, or duplicated. Protocols designed for this type of channeldo not implement error control because the channel is assumed perfect.

Protocols for Noiseless Channel

There are two main protocols designed for noiseless channels.

1. Simplest Protocol

Assumption: The receiver can handle every frame immediately without any delay or backlog.

Receiver Operation: The receiver’s data link layer quickly removes the header from each incoming frame and passes the data packet to the network layer, which is also capable of immediate processing. This means the receiver never gets overwhelmed by incoming frames.

Design of Simplest Protocol

  • Sender side:
    • The data link layer receives data from its network layer.
    • It creates a frame using this data.
    • It sends the frame over the physical layer.
  • Receiver side:
    • The data link layer receives the frame from the physical layer.
    • It extracts the data from the frame.
    • It passes the data to the network layer.
  • Communication Services:
    • The data link layers on both sender and receiver provide communication and transmission services for their respective network layers.
    • The data link layers use the physical layers to transmit bits physically.
Design of Simplest Protocol with no error control or flow

Algorithm

Sender-Side Algorithm

Receiver-Side Algorithm

while(true) //Repeat forever

{

waitForEvent(); //sleep until an event occur

if (Event(RequestToSend)) //there is a packet to send

{

GetData();

MakeFrame();

SendFrame(); //send the frame

}

}

while(true) //Repeat forever

{

waitForEvent(); //sleep until an event occur

if (Event(ArrivalNotification)) //data frame arrived

{

ReceiveFrame();

ExtractData();

DeliverData(); //Deliver data to network layer

}

}

simplest_protocol
Flow Diagram for Simplest Protocol

This flow diagram illustrates communication using the Simplest Protocol. The process is straightforward:

  • The sender transmits a series of frames continuously without waiting for any feedback from the receiver.
  • For example, the sender sends three frames, and the receiver receives three frames in order.

2. Stop-and-Wait Protocol

When data frames arrive at the receiver faster than they can be processed, the receiver must store these frames temporarily until they can be used.

  • Typically, receivers have limited storage capacity, especially when receiving data from multiple sources.
  • This requires careful management of the data flow to prevent overload.

Read more about Stop-and-Wait Protocol

Design of Stop-and-Wait Protocol

  • Compared to the Simplest Protocol, the Stop-and-Wait protocol manages traffic on two channels:
    • Forward Channel: From sender to receiver (carries data frames).
    • Reverse Channel: From receiver to sender (carries acknowledgment (ACK) frames).
  • At any given time, there is either:
    • One data frame traveling on the forward channel, or
    • One ACK frame traveling on the reverse channel.
  • This design requires a half-duplex link, meaning communication can occur in only one direction at a time on the channel.
Design of Stop-and-Wait Protocol

Algorithm

Sender-Side Algorithm

Receiver-Side Algorithm

while(true) //Repeat forever

canSend = true // Allow the first frame to go

{

waitForEvent(); //sleep until an event occur

if (Event(RequestToSend)AND canSend) //there is a packet to send

{

GetData();

MakeFrame();

SendFrame(); //send the data frame

canSend = false; //cannot send until ACK arrives

}

WaitForEvent(); //sleep until an event occurs

if(Event(ArrivalNotification)) //An ACK has arrived

{

ReceiveFrame(); //Receive the ACK frame

CanSend = true;

}

while(true) //Repeat forever


{

waitForEvent(); //sleep until an event occur

if (Event(ArrivalNotification) //data frame arrives

{

ReceiveFrame();

ExtractData();

DeliverData(); //Deliver data to network layer

SendFrame(); //Send an ACK frame

}

}

Flow diagram for Stop & Wait Protocol

This diagram shows how communication works using the Stop-and-Wait Protocol:

  • The sender sends one frame and then waits for an acknowledgment (ACK) from the receiver before sending the next frame.
  • Once the sender receives the ACK, it sends the next frame.
  • This process repeats for all frames.

Important Points:

  • For two frames, the sender goes through four events:
    1. Send first frame
    2. Wait for and receive ACK for first frame
    3. Send second frame
    4. Wait for and receive ACK for second frame
  • The receiver goes through two events:
    1. Receive each frame
    2. Send ACK for each received frame
Comment

Explore