CCNA / CCENT / Network+ Tutorial: The TCP Sliding Window

In previous CCNA and CCENT tutorials, we took a look at the TCP three-way handshake and the TCP forward acknowledgment scheme.   Now it’s time to see how TCP adapts to data flows that are too fast or not quite fast enough.

(By the way, those are excellent Network+ tutorials, so share this page with anyone you know who’s working on that certification.  Thanks for that!)

One of the values negotiated during the TCP three-way handshake is the size of the window, the number of bytes the sender can send without receiving an ack.

TCP Window Size Negotiation During 3-Way Handshake

This negotiation is for the initial size of the window.  This is a dynamic value, not a static one.  As the recipient realizes it can indeed handle that initial amount of data effectively, it can tell the sender that it can increase the window size.

TCP ACK Increases Size Of Window

As errors and dropped segments begin to creep in, the server tells the host to slow down by lessening the size of the window.   This continual raising and lowering of the size of the window is referred to as a sliding window.

TCP ACK Lowering Size Of Window

This flow control allows segment transmission to stay as close as possible to the maximum speed while also allowing the recipient to tap the brakes a bit when the flow is too fast.

This sounds like another strike against UDP since TCP offers both flow control and windowing and UDP offers neither.    In the next tutorial, we’ll compare the TCP and UDP headers and see if they give us a clue as to why anyone would ever use UDP!

Previous tutorials in this series:

TCP and UDP Fundamentals

TCP Error Detection and Recovery

All CCNA And CCENT Tutorials