What's the difference between Flow Control and Congestion Control in TCP?

What's the difference between flow control and congestion control in TCP? This question can be broken down into two parts: What is the overall purpose of flow and congestion control? How is the...