Sliding windows, a technique also known as windowing, is used by the Internet's Transmission Control Protocol (TCP) as a method of controlling the flow of packets between two computers or network hosts. TCP requires that all transmitted data be acknowledged by the receiving host. Sliding windows is a method by which multiple packets of data can be affirmed with a single acknowledgment.
TCP includes a memory buffer that sits between the upper application layer (for example, Hypertext Transfer Protocol or File Transfer Protocol) and the lower layer that receives data (the data link layer in the OSI reference model). The buffer allows TCP to receive and process data independently of the upper application. In other words, TCP can use this buffer space to "read ahead" while the upper application processes the data at its own pace.
Window "announcements" are sent by the receiving system to the transmitting system in order to acknowledge data receipt as well as to inform the transmitting system of the current buffer size. For example, if a window size of zero is reported, the transmitting system must wait for an acknowledgment before sending the next chunk of data. If the receiving system reports that the buffer size is larger than the size of a single data packet, the transmitting system knows that it can send multiple chunks of data before waiting for an acknowledgment. Transmitting multiple data packets between acknowledgments allows the data to be transferred faster and more efficiently than if an acknowledgment must be received prior to each transmission.
You can find out more about TCP by reading Request for Comment (RFC) 793 and 1180.