When too many packets are available in the subnet, performance degrades which is called as Congestion. Figure shows the symptom. When the number of packets dumped into the subnet by the hosts is within its carrying capacity, they are all delivered and the number delivered is proportional to the number sent. As traffic increases, the routers they begin losing packets are no longer able to cope. The performance collapses completely and almost no packets are delivered, at very high traffic.
When too much traffic is offered, congestion sets in and performance degrades sharply:
If all of a sudden, a queue builds up when a stream of packets begin arriving on three or four input lines and all need the same output line. If there is insufficient memory to hold all of them, packets will be lost. Adding more memory may help up to a point but if routers have an infinite amount of memory, congestion gets worse, because by the time packets get to the front of the queue, they have already timed out and replicas have been sent. All these packets will again be forwarded to the next router, increasing the load all the way to the destination.
Congestion is also caused by slow processes. Slow processes can build queues. Similarly, low-bandwidth lines can also cause congestion. Upgrading the lines but not changing the processors, or vice versa, sometimes helps a little, but frequently just shifts the bottleneck. Imbalance between parts of the system also causes congestion. The work of congestion control is making sure the subnet is able to carry the offered traffic. It is a global issue, involving the behaviour of all the hosts, all the routers, the store-and-forwarding processing within the routers that diminish the carrying capacity of the subnet.