Flow control

From Computer History Wiki
Revision as of 18:04, 30 September 2018 by Jnc (talk | contribs) (A good start)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Flow control refers to the need, with two application instances communicating over a byte stream, to prevent the sender from sending data faster than the receiver can consume it.

When the two instances are on a single machine (e.g. using a pipe to communicate), flow control is fairly simple to peform; the operating system monitors the amount of data in the stream, and blocks the sender when the backlog gets too large.

Over a network, the problem is a little more complicated; the protocol has to have a mechanism to allow the destination to inform the source how much buffering is available for incoming data, or to tell the source that the destination cannot accept any more data at this time.

In the reliable byte stream TCP protocol of the TCP/IP protocol family, a window at the sender is maintained for this purpose; the receiver on each side periodically updates the window stored at the other end.