Flow Control is a set of procedures that tells the sender how much data it can transmit before it must wait for an acknowledgment from the receiver. The flow of data should not be allowed to overwhelm the receiver. The receiver should also be able to inform the transmitter before its limits (this limit may be the amount of memory used to store the incoming data or the processing power at the receiver end) are reached and the sender must send fewer frames. Hence, Flow control refers to the set of procedures used to restrict the amount of data the transmitter can send before waiting for an acknowledgment.
There are two methods developed for flow control namely Stop-and-wait and Sliding-window.