This protocol also provides for a one-directional flow of data from sender to receiver. The communication channel is once again assumed to be error-free, as in protocol Unrestricted Simplex Protocol. However, in this case, the receiver has only a finite buffer capacity and a finite processing speed, so the protocol must explicitly prevent the sender from flooding the receiver with data faster than it can be handled.
The main problem that has to deal with here is how to prevent the sender from flooding the receiver with data faster than the receiver is able to process it. One solution to this problem is that if the receiver requires a time delta t, to execute from_Physical_Layer plus to_Network_Layer, the sender must transmit at an average rate of less than one frame per time delta t.
A more general solution to this problem is to have the receiver provide feedback to the sender. After having passed its packet to its Network Layer, the receiver sends a little dummy frame back to the sender which gives the sender permission to transmit the next frame. After having sent a frame, the sender is required by the protocol to bide (restrict) its time until a little dummy frame arrives.
Protocol in which the sender sends one frame and then waits for the acknowledgment before proceeding is called Stop_and_Wait. The sender starts out by fetching a packet from the Network Layer, using it to construct a frame and sending it all its way, and then the sender must wait until an acknowledgment frame arrives before looping back and fetching the next packet from Network Layer.