Learning path

Full curriculum

Full curriculum

Unit content

Sliding windows and receiver flow control

Sending one packet and waiting for its acknowledgement wastes capacity on paths with nontrivial delay. A sliding window allows several units of data to be in flight simultaneously.

The sender tracks a range of sequence numbers that may be outstanding. As acknowledgements advance the confirmed prefix, the window slides forward and new data can be transmitted.

The receiver also has finite buffer capacity. Flow control limits the sender according to what the receiver can accept, preventing a fast sender from overrunning a slow application.

For example, if the receiver advertises space for 64 KiB, the sender should not have more than that receiver-limited amount awaiting consumption, even if the network itself could carry more.

Flow control protects the endpoint; congestion control, by contrast, protects the network path. The two limits solve different bottlenecks.