Congestion occurs when routers receive packets faster than they can forward them, causing their queues to fill up. There are two ways routers deal with congestion - by preventing additional packets from entering the congested region until packets can be processed, or by discarding queued packets to make room for new ones. Congestion control techniques like warning bits, choke packets, and load shedding help detect and recover from congestion on a global scale across an entire subnet, while flow control operates on a point-to-point basis between individual senders and receivers.