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.
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.
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.
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: