Dynamics of Network Congestion and Tail Drops

As traffic increases on a router's output interface, the queues on that interface start to fill with packets. As mentioned in Chapter 4, the interface fills because the bandwidth of the output link cannot keep up with the amount of traffic scheduled to go out that link. If the traffic continues to pass through the router at a rate that exceeds the speed of the output link, it is possible for the queue system to fill to its maximum capacity. When this happens, the router has no choice but to drop all subsequent packets until the queue has more room. This is called a tail drop condition (some packets are in the queue, but trailing packets are dropped) and is depicted in Figure 5-9.

Figure 5-9 When an Interface's Queue System Is Full, the Router Has No Choice But to Cause a Tail Drop

Qjt-uc

Figure 5-9 When an Interface's Queue System Is Full, the Router Has No Choice But to Cause a Tail Drop

Qjt-uc

Trash

Dispatch packets out interface

The interface in Figure 5-9 is configured with first-in, first-out (FIFO) queuing, but any other queuing system can be used in a similar manner and experience a tail-drop condition.

Tail drops are undesirable because packets from all flows are dropped at the same time and continue to drop until the queue system drains below its maximum capacity. Flows using a reliable protocol such as TCP will retransmit the packets that were dropped. Flows from unreliable protocols such as UDP might never retransmit those lost packets or might rely on an upper-layer application to retransmit the packets.

NOTE Some application flows do not need to retransmit the data lost in their dropped packets. Realtime audio or video streams, for example, can tolerate some lost data and still be intelligible to a person on the receiving end. Additionally, retransmitting real-time data might not make sense if it causes the data to arrive too late on the receiving end.

0 0

Post a comment