Stop and Wait protocol, its problems and solutions Last Updated : 12 Jul, 2025 Summarize Comments Improve Suggest changes Share Like Article Like Report It is the simplest flow control method in which the sender will send the packet and then wait for the acknowledgement by the receiver that it has received the packet then it will send the next packet. Stop and wait protocol is very easy to implement. Total time taken to send is, Ttotal = Tt(data) + Tp + Tq + Tprocess + Tt(ack) + Tp ( since, Tq and Tprocess = 0) Ttotal = Tt(data) + 2Tp + Tt(ack) Ttotal = Tt(data) + 2Tp (when Tt(ack) is negligible) Efficiency = useful time / total cycle time = Tt / (Tt+2Tp) = 1 / (1+2a) [a = Tp/Tt] Note: Stop and wait is better for less distance. Hence it is a good protocol for LAN. Stop and wait is favorable for bigger packets. What if the data packet is lost in between ? According to sender, receiver is busy but actually data is lost.Receiver will assume, no packet has been sent by sender.Both will be waiting for each other and there will be a deadlock. Need for timeout timer: A timer is applied and the receiver will wait till the timeout timer for the data after that it will confirm that the data has been lost. What if the data packet has been lost ? After timeout timer expires, sender will assume that the data is lost but actually the acknowledgement is lost. By assuming this it will send the data packet again but according to receiver it is a new data packet, hence it will give rise to duplicate packet problem. To eliminate duplicate packet problem sequence number is added to the data packet. So using packet numbers it can easily determine the duplicate packets. What if there is a delay in receiving acknowledgement ? According to sender, the acknowledgement of packet 1 is delayed and packet 2 has been lost. But the receiver assumes that the acknowledgement that has been received was of packet 2. This problem is called missing packet problem. Missing packet problem can be solved if acknowledgements also have numbers. Comment More infoAdvertise with us Next Article Efficiency of Stop and Wait Protocol A AnshuMishra3 Follow Improve Article Tags : Computer Networks GATE CS Similar Reads Difference between Stop and Wait protocol and Sliding Window protocol Both the Stop and Wait protocol and the Sliding Window protocol are the techniques of flow control handling. The main difference between the Stop-and-wait protocol and the Sliding window protocol is that in the Stop-and-Wait Protocol, the sender sends one frame and waits for acknowledgment from the 5 min read Efficiency of Stop and Wait Protocol Stop and Wait is a flow control protocol. In which the sender sends one packet and waits for the receiver to acknowledge and then it will send the next packet. In case if the acknowledgement is not received, the sender will retransmit the packet. This is the simplest one and easy to implement. but t 3 min read Difference Between Stop and Wait, GoBackN and Selective Repeat Flow control in networking manages the rate of data transmission between devices to ensure efficient processing and prevent data overflow. When a device receives more data than it can handle, it risks losing information or needing retransmission. Flow control protocols guide the sender on how much d 5 min read What is TCP (Transmission Control Protocol)? Transmission Control Protocol (TCP) is a connection-oriented protocol for communications that helps in the exchange of messages between different devices over a network. It is one of the main protocols of the TCP/IP suite. In OSI model, it operates at the transport layer(Layer 4). It lies between th 5 min read WebSockets Protocol and Long Polling As one facet of net development, real-time access Among consumers and servers has now become an important step in creating interactive web programs as well as mouth-watering. Request-reaction mechanisms, even flexible and powerful as they are, may not be suitable for circumstances that call for rapi 10 min read Semaphores Solutions in Operating System A Semaphore can be described as an object that consists of a counter, a waiting list of processes, Signal and Wait functions. The most basic use of semaphore is to initialize it to 1. When a thread want to enter a critical section, it calls down and enter the section. When another thread tries to do 3 min read Like