Do you think IIT Guwahati certified course can help you in your career?
No
Introduction
In this article, we will discuss the Stop and Wait protocol. In this protocol, the sender sends one frame at a time to the receiver and waits for the acknowledgement. Until the acknowledgement is received, the sender sits idle. Upon receiving the acknowledgement, the sender will send the next frame and wait for its acknowledgement. This process will keep going until the sender has transmitted all the frames.
To make sure that we don't lose frames in between, we need flow control which is provided by the Data link layer. Flow control is a speed matching mechanism where the receiver should inform the sender at what speed it can handle the data frames. It is a set of procedures that tells the sender how much data it can transmit before waiting for an acknowledgement from the receiver.
The protocols involved in flow control are shown below:
In the next section, we will learn about the Stop-and-Wait protocols & then move on to the Stop-and-Wait ARQ protocols with their working.
What is Stop and Wait for ARQ (Automatic Repeat Request)?
It is a flow control protocol where flow control is one of the data link layer's services.
Stop and Wait Protocol is a data link layer protocol for the transmission of frames over noiseless channels.
It provides unidirectional data transmission with flow control facilities but without error control facilities.
After sending one frame, the sender will not send any other frame, and it waits for an acknowledgement before transmitting the next frame.
Stop and Wait ARQ Protocol
After transmitting one frame in the Stop and Wait Protocol, the sender waits for an acknowledgement before transmitting the next frame. There are chances for the frame to be lost or the acknowledgement to be lost. If it happens, the sender and receiver will wait for an infinite amount of time, and there will be no progress in the Stop and Wait Protocol.
The Stop and Wait automatic repeat request (ARQ) protocol differs from the Stop and Wait Protocol.
In this Protocol, if the acknowledgement does not arrive after a certain period of time, the sender times out and retransmits the original frame.
If the sender is sending a frame and the receiver receives that and sends an acknowledgement. If that acknowledgement has not reached the sender on time, a timer will run on the sender's side.
Once the timer expires or the senders times out immediately, the sender will retransmit the frame again. This retransmission is automatic; we call it Stop and Wait ARQ (automatic repeat request protocol).
Stop and Wait ARQ = Stop and Wait + Timeout Timer + Sequence number.
Primitives of Stop and Wait Protocol
Sender's side:
Rule1: Send one data packet at a time.
Rule2: Send the next packet only after receiving the acknowledgement for the previous packet.
Receiver's side:
Rule 1: Receive and consume data packet.
Rule 2: After consuming the packet, acknowledgement needs to be sent (Flow Control).
Working of Stop and Wait protocol
Let's understand the above rules with an example:
Step1: Suppose there is a sender and there is a receiver, and the sender will send exactly one packet, i.e. the data packet. Now, the sender will not send any other data packet before receiving the acknowledgement from the previous packet.
Step 2: Now the receiver will send an acknowledgement to the sender for the data packet that it has received.
Step 3:After receiving the acknowledgement, the sender will again send the next packet and so on.
The main advantage of the Stop and Wait protocol is its simplicity, but the main disadvantage is that if it has 1000 packets, all packets cannot be transmitted simultaneously. So, it has to wait for the acknowledgement before sending the next packet.
Characteristics of Stop and Wait ARQ
Some of the characteristics of Stop and Wait ARQ include:
Simplicity: Stop and Wait ARQ is simple to implement and is used for basic communication systems
Sequential Transmission: It sends one frame at a time and waits for an acknowledgement before sending the next frame
Positive Acknowledgment: The sender waits for a positive acknowledgement (ACK) before sending the next transmission from the receiver
Retransmission: If the sender does not receive an ACK or receives a negative acknowledgement (NACK) in a fixed timeout period, it again transmits the frame
Reliable but Inefficient: It ensures reliable data transfer, but it is inefficient because it needs to wait for the sender's acknowledgements
Low Throughput: Stop and Wait ARQ causes low throughput, mainly on high-latency networks
Advantages of Stop and Wait Protocol
Key advantages of Stop and Wait ARQ are:
Simple Implementation
Stop and Wait is easy to implement, which makes it best for basic communication systems with limited resources
Error Detection and Correction
It effectively detects and corrects errors in transmitted data via the acknowledgement process
Flow Control
Stop and Wait helps prevent data congestion as the sender waits for acknowledgement before sending more data
Ideal for Short Messages
It is best for situations where the data payload is small and the overhead of the acknowledgement process is acceptable
Deterministic Behavior
Stop and Wait protocol ensures a deterministic and predictable behaviour, which can be advantageous in real-time systems
Disadvantages of Stop and Wait Protocol
Problems due to lost data
Suppose the sender sends the data, and this data is lost. → The sender waits for the acknowledgement for an infinite amount of time. As the data is lost, the receiver has not received any packet from the sender. So it will not send the acknowledgement to the sender. → The receiver waits for an infinite time for the data packet as the data is lost.
Problems due to lost acknowledgement
In this case, the sender has sent the data to the receiver, and the receiver has sent the acknowledgement, but here the acknowledgement is lost due to some problems in the network. So, in this case, the sender waits for an infinite amount of time for the acknowledgement.
Problems due to the delayed Acknowledgement/Data
After a timeout on the sender side, a delayed acknowledgement might be wrongly considered as the acknowledgement of some other data packet.
It is used in relational communication. It allows you to control errors and flows. It can be used in both the Data Link and the transport Layers.
Which protocol improves the efficiency of stop-and-wait protocol?
To improve the efficiency of the stop and wait protocol we can use selective repeat protocol, by using this protocol we don't need to wait for the acknowledgement of each frame when sending multiple frames.
Why is the stop and wait protocol inefficient?
Stop and wait protocol can be considered an inefficient protocol because, we have to wait for the acknowledgment of previous frame before sending the next frames, which leads to more delays and less usage of provided bandwidth.
In which type of channel stop and wait protocol is used?
The stop-and-wait protocol is used in channels where there is a low error rate and relatively low data transfer delay. These can include reliable wireless connections or wired-connected channels.
Conclusion
This article extensively discussed the Stop and Wait protocol and its working in different scenarios with examples for a better understanding.