Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
Sliding window is a technique for controlling transmitted data packets between two network computers where reliable and sequential delivery of data packets is required, such as when using the Data Link Layer (OSI model) or Transmission Control Protocol (TCP).
In the sliding window technique, each data packet (for most data link layers) and byte (in TCP) includes a unique consecutive sequence number, which is used by the receiving computer to place data in the correct order. The objective of the sliding window technique is to use the sequence numbers to avoid duplicate data and to request missing data.
Sliding window is also known as windowing.
The sliding window technique places varying limits on the number of data packets that are sent before waiting for an acknowledgment signal back from the receiving computer. The number of data packets is called the window size. The limits on window size vary depending on the rate at which the receiving computer can process the data packets, and on the capacity of its buffer.
If the application in the receiving computer processes the data packets at a slower rate than the sending computer is sending them, the acknowledgment signal from the receiving computer will tell the sending computer to decrease the number of packets in the window size in the next transmission, or to temporarily stop transmission to free the buffer. If, on the other hand, the receiving application can process the data packets faster than the sending computer is sending them, the acknowledgment signal will tell the sending computer to increase the number of packets in the next transmission.
For efficient data packet transmission, the transmitter must not be forced to stop sending for an unnecessarily long time. This will happen if the receiving computer sends an acknowledgment signal to stop and does not send another signal to begin transmitting when its buffer has available space or is empty. Other considerations for efficient data packet transmission include: