Content

| 8.6 |  | Congestion Avoidance |
| 8.6.1 |  | Congestion avoidance |

Up to this point the module has covered methods of dealing with congestion. When networks are heavily congested and the aggregate flows through a network device exceed the bandwidth of its links or its ability to keep up, it is inevitable that packets will be dropped. TCP/IP uses lost packets as a way of signalling to the sender that congestion is occurring in the network. TCP/IP responds to lost packets by reducing the size of its congestion window which results in a reduced rate of transmission and alleviates congestion in the network.

The problem with dropped packets is that packets for all flows are dropped simultaneously or tail-drop. This occurs when the ingress queue on a network device becomes full. Consequently, all TCP/IP senders reduce their transmission speed simultaneously and may under utilize the available bandwidth for a period of time. Eventually the TCP/IP senders will increase the size of their congestion window, until congestion occurs once again. This cycle continues and the TCP/IP senders tend to synchronize with one another. This leads to several problems:

- Bursty network traffic that will make QoS more difficult to achieve.
- Excessive retransmissions of lost packets
- Periods of underutilization of the available bandwidth.

Furthermore, although it is possible to prioritize traffic as it flows through a network device, it is not possible to prioritize traffic when an ingress queue is full. QoS requires that ingress queues always have some space available so that priority traffic can be received. A technique is needed to ensure that ingress queues are never allowed to completely fill. This technique is known as congestion avoidance.