Flow control is the management of data flow between computers or devices or between nodes in a network so that the data can be handled at an efficient pace. Too much data arriving before a device can handle it causes data overflow, meaning the data is either lost or must be retransmitted. For serial data transmission locally or in a network, the Xon/Xoff protocol can be used. For modem connections, either Xon/Xoff or CTS/RTS (Clear to Send/Ready to Send) commands can be used to control data flow.
Flow control is the mechanism that ensures the rate at which a sender is transmitting is in proportion with the receiver’s receiving capabilities.
Flow control is utilized in data communications to manage the flow of data/packets among two different nodes, especially in cases where the sending device can send data much faster than the receiver can digest.
In a network, flow control can also be applied by refusing additional device connections until the flow of traffic has subsided.
Networks of any size have many different devices connected and each device has unique data transmission parameters. For instance, a router is built to manage the routing of data whereas a desktop, at the receiving end of that data, has far less sending/receiving abilities.
These differences sending/receiving abilities may lead to conflict if the sender starts transmitting data faster than the receiving node’s ability. To counteract this problem, flow control is used. This technique manages the flow of data between nodes, keeping the sending/receiving capabilities of both nodes as the primary concern.
Xon-Xoff is an example of a flow control protocol that sync the sender with the receiver. It transmits a transmit off signal when the receiver no longer has space in its buffer and a transmit on signal when the receiver can resume taking data. Xon-Xoff works on asynchronous serial connections.