Title: Evaluation of Queue Management Algorithms
1Evaluation of Queue Management Algorithms
- Ningning Hu, Liu Ren, Jichuan Chang
- 30 April 2001
2Motivation
- Typical queuing discipline DropTail
- Active queue management
- RED (93), BLUE (99),
- FRED (97), SFB (99), CHOKe (2000)
- Problem How to compare them?
- Metrics Utilization, Fairness and Complexity
- Method simulation under common settings
3Algorithms
- Drop Tail drop when the queue is full
- RED queue length, minth, maxth, avg
- FRED per-active-flow accounting
- BLUE loss rate, link utilization, freeze_time
- SFB identify flows using N L bins
- CHOKe compare incoming packet with random
selected packet in queue
4Simulation Scenario
source
destination
2Mbps
2Mbps
UDP
UDP
1Mbps, 40ms
router
router
TCP
TCP
- Topology Dumb-bell
- Metrics throughput and queue size
5TCP
Drop Tail
RED
BLUE
TCP
FRED
SFB
CHOKe
- TCP Flow UDP Flow 10 1
- UDP sending rate 2Mbps
- Buffer size 150 packets
6Performance Comparison
Figure 1. UDP Thpt (Mbps)
Figure 2. UDP Queue Size (packet)
7Conclusion
Algorithm Link Utilization Fairness Ease of Configuration
RED Good Unfair Hard
BLUE Good Unfair Hard
FRED Good Fair Easy (adaptive)
SFB Good Fair Easy (non-adaptive)
CHOKe Good Fair Easy (adaptive)
Algorithm Buffer size requirement Per-flow State Information Computational Overhead
RED Large No Arrival
BLUE Small No Freeze-time
FRED Small Yes Arrival-departure
SFB Large No Freeze-time
CHOKe Small No Arrival
8FRED
- RED Per-active-flow accounting
- protection of fragile flow
- penalizing non-responsive flow
- Flow type differentiation
- Key parameter minq
- 2 or 4
- Weak point
- Compute avgq per packet
9FRED performance
10FRED characteristics
- Easy to configure, adaptive
- Buffer size requirement
- Will degrade as DropTail with too many flows
- Two-packet-buffer to keep fairness
11CHOKe
CHOose and Keep for responsive flows CHOose and
Kill for unresponsive flows
12CHOKe
13Parameters in CHOKe
14BLUE
- Main Point Uses packet loss and link idle events
instead of average queue length - Based on observation that RED is often forced
into drop-tail mode - Adapt to how bursty and persistent congestion is
by looking at loss/idle events
15BLUE Algorithm
- Pm is Blues packet dropping probability
- Upon packet loss, if no update of pm in
freeze_time then increase by d1 - Upon link idle, if no update of pm in freeze_time
then decrease pm by d2 - d1 gtgt d2 ?
- More critical to react quickly to increase in load
16BLUE Characteristics
- More stable queue size and much better behavior
with small buffers - Good property damaged by non-responsive flows.
17Stochastic Fair Blue(SFB)
- Objective
- Identify and penalize misbehaving flows
- Main Algorithm
- Create L hashes with N bins each
- Each bin keeps track of separate marking rate
(pm) - Rate is updated using standard technique(as BLUE)
- Flow uses minimum pm of all L bins it belongs to
- Non-misbehaving flows hopefully belong to at
least one bin without a bad flow
18SFB Characteristics
- Could effectively detect non-responsive flows and
rate-limit them - But not adaptive, the bandwidth share of
non-responsive flows is controlled by a
parameter(Boxtime) offered by the user. - Boxtime is the time interval no packets from
non-responsive flows can be enqueued.
19SFB Unfairness of Non-responsive Flows
Our solution Randomized Boxtime a little bit.
20Rate-limit Non-responsive flows
UDP packets
Boxtime
Queue
Time