Flow Control
Modern data networks are designed to support a diverse range of hosts
and communication mediums. Consider a 200MHz Pentium-based host
transmitting data to a 25MHz 80386/SX. Obviously, the Pentium will
be able to drown the slower processor with data. Likewise, consider
two hosts, each using an Ethernet LAN, but with the
two Ethernets connected by a 28.8 Kbps modem link. If one host begins
transmitting to the other at Ethernet speeds,
the modem link will quickly become overwhelmed.
In both cases, flow control is needed to pace
the data transfer at an acceptable speed.
Request/reply flow control requires each data packet to be acknowledge
by the remote host before the next packet is sent. Sliding window
algorithms, used by TCP, permit multiple data packets to be in
simultaneous transit, making more efficient use of network bandwidth.
Finally, Internet's
Unreliable
Delivery Model allows packets to be discarded if network resources
are not available, and demands that protocols make provisions for
retransmission.