When network congestion occurs, routers become overloaded and either cannot forward packets fast enough or must discard queued packets to make room for new arrivals. Congestion is caused by packet arrival rates exceeding link capacity, insufficient memory, bursty traffic, or slow processors. Congestion control aims to efficiently use the network at high load and involves all routers and hosts, while flow control operates point-to-point between sender and receiver. Congestion control techniques include warning bits, choke packets, load shedding, random early discard, and traffic shaping to detect, recover from, and avoid congestion.