Thursday, March 17, 2011

TCP Sliding Window

A TCP sliding window provides more efficient use of network bandwidth than PAR because it
enables hosts to send multiple bytes or packets before waiting for an acknowledgment.
In TCP, the receiver specifies the current window size in every packet. Because TCP provides a
byte-stream connection, window sizes are expressed in bytes. This means that a window is the
number of data bytes that the sender is allowed to send before waiting for an acknowledgment. Initial
window sizes are indicated at connection setup, but might vary throughout the data transfer to
provide flow control. A window size of zero, for instance, means “Send no data.”
In a TCP sliding-window operation, for example, the sender might have a sequence of bytes to send
(numbered 1 to 10) to a receiver who has a window size of five. The sender then would place a
window around the first five bytes and transmit them together. It would then wait for an
acknowledgment.
The receiver would respond with an ACK = 6, indicating that it has received bytes 1 to 5 and is
expecting byte 6 next. In the same packet, the receiver would indicate that its window size is 5. The
sender then would move the sliding window five bytes to the right and transmit bytes 6 to 10. The
receiver would respond with an ACK = 11, indicating that it is expecting sequenced byte 11 next. In
this packet, the receiver might indicate that its window size is 0 (because, for example, its internal
buffers are full). At this point, the sender cannot send any more bytes until the receiver sends another
packet with a window size greater than 0.

No comments:

Post a Comment