Sliding Window
Connected: An Internet Encyclopedia
Sliding Window
Up:
Connected: An Internet Encyclopedia
Up:
Topics
Up:
Concepts
Up:
Flow Control
Prev: Request/Reply
Next: Hypertext
Sliding Window
Sliding Window
Sliding window algorithms are a method of flow control for network
data transfers.
TCP,
the Internet's stream transfer protocol, uses a sliding window algorithm.
A sliding window algorithm places a buffer between the application
program and the network data flow. For TCP, the buffer
is typically in the operating system kernel, but this is more
of an implementation detail than a hard-and-fast requirement.
Data received from the network is stored in the buffer, from whence
the application can read at its own pace. As the application reads
data, buffer space is freed up to accept more input from the network.
The window is the amount of data that can be "read ahead" -
the size of the buffer, less the amount of valid data stored in it.
Window announcements are used
to inform the remote host of the current window size.
If the local application can't process data fast enough, the
window size will drop to zero and the remote host will stop sending
data. After the local application has processed some of the queued
data, the window size rises, and the remote host starts transmitting again.
On the other hand, if the local application can process data
at the rate it's being transferred, sliding window still gives
us an advantage. If the window size is larger than the packet size,
then multiple packets can be outstanding in the network, since
the sender knows that buffer space is available on the receiver
to hold all of them. Ideally, a steady-state condition can be reached
where a series of packets (in the forward direction) and
window announcements (in the reverse direction) are constantly
in transit. As each new window announcement is received by the
sender, more data packets are transmitted. As the application reads
data from the buffer (remember, we're assuming the application
can keep up with the network), more window announcements are
generated. Keeping a series of data packets in transit ensures
the efficient use of network resources.
Next: Hypertext
Connected: An Internet Encyclopedia
Sliding Window
|