title: What's the difference between Flow Control and Congestion Control in TCP?
body: <p>What's the difference between flow control and congestion control in TCP? </p>
  
  <p>This question can be broken down into two parts: </p>
  
  <ol>
  <li>What is the overall purpose of flow and congestion control?</li>
  <li>How is the task accomplished?</li>
  </ol>
  
  <p>According to <a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Flow_control" rel="noreferrer">Wikipedia</a>, TCP flow control relies on the window size reported in an ACK message. Congestion control also relies on acknowledgement messages. I would like to know what the difference is between the two goals, and how they work.</p>