ensure that a sender is not overwhelming a receiver by sending packets faster than it can consume. The idea is that a node receiving data will send some kind of feedback to the node sending the data to let it know about its current condition. HOW MESSAGES TRANSFER Flow Control is all about making sure we don’t send more packets when the receive buffer is already full, as the receiver wouldn’t be able to handle them and would need to drop these packets resulting in wastage of bandwidth and increase in congestion. SLIDING SLIDING WINDOW WINDOW RECEIVER WINDOW TCP HEADER WITH rwnd Window size uses byte as a metric,it gives how much data can be buffered by receiver for next packets When the data transmitted reaches window value then sender expect another window value from the receiver along with the acknowledgement for the window just received. The sender will always keep this invariant: LastByteSent - LastByteAcked <= ReceiveWindowAdvertised FOLLOW A STREAM FLOW GRAPH OF TCP STREAM