This document presents an overview of computer network congestion and congestion control techniques. It defines congestion as occurring when too many packets are present in a network link, causing queues to overflow and packets to drop. It then discusses factors that can cause congestion as well as the costs. It outlines open-loop and closed-loop congestion control approaches. Specific algorithms covered include leaky bucket, token bucket, choke packets, hop-by-hop choke packets, and load shedding. The document concludes by noting the importance of efficient congestion control techniques with room for improvement.