TCP 흐름 제어는 송신자가 수신자의 처리 능력보다 빠르게 데이터를 보내 수신 버퍼가 넘치는 것을 방지하는 기능입니다. 수신자가 ACK를 통해 자신의 수신 윈도우인 rwnd를 알려주고, 송신자는 이를 기준으로 전송량을 조절합니다.

반면 TCP 혼잡 제어는 네트워크 자체에 과도한 트래픽이 발생하는 것을 방지하기 위한 기능입니다. 송신자가 cwnd라는 혼잡 윈도우를 관리하면서 네트워크 상태에 따라 전송량을 증가시키거나 감소시킵니다. 대표적인 방식으로 Slow Start와 Congestion Avoidance 등이 있습니다.