Controlling Queue Delay Flashcards
Explain how standing queues develop in network buffers at bottleneck links. Why is a standing queue NOT correctly identified as congestion?
Queues develop at bottleneck links as a result of the bottleneck’s reduced forwarding speed
The difference in the bottleneck link speed and the link RTT (driving the congestion window of the TCP flow) will result in a certain number of packets consistently occupying the buffer, until the flow completes, which is referred to as the standing queue.
Standing queues are NOT congestion because it results from a mismatch in congestion window and the bottleneck link size. A standing queue can develop in single flow environments, and under usage limits that would eliminate actual congestion
Consider the CoDel active queue management algorithm. How does the algorithm decide whether or not drop a flow’s packets? What effect does dropping the packet have on the TCP sender?
CoDel assumes that a standing queue of the target size is acceptable, and that at least one maximum transmission unit (MTU) worth of data must be in the buffer before preventing packets from entering the queue (by dropping them). CoDel monitors the minimum queue delay experienced by allowed packets as they traverse the queue (by adding a timestamp upon arrival). If this metric exceeds the target value for at least one set interval, then packets are dropped according to a control law until the queue delay is reduced below the target, or the data in the buffer drops below one MTU. Dropping a flow’s packet triggers a congestion window reduction by the TCP sender, which helps to eliminate buffer bloat.