Title: Traffic Managers: Active Queue Management Algorithms
1Traffic Managers Active Queue Management
Algorithms
2Queuing Disciplines
- Each router must implement some queuing
discipline - Queuing allocates both bandwidth and buffer
space - Bandwidth which packet to serve (transmit) next
- This is scheduling - Buffer space which packet to drop next (when
required) this buffer management - Queuing affects the delay of a packet (QoS)
3Queuing Disciplines
4Active Queue Management
- Advantages
- Reduce packet losses
- (due to queue overflow)
- Reduce queuing delay
5QoS Router
Queue management
Policer
Per-flow Queue
Scheduler
Classifier
shaper
Policer
Per-flow Queue
Per-flow Queue
Scheduler
shaper
Per-flow Queue
6Packet Drop Dimensions
Aggregation
Single class
Per-connection state
Class-based queuing
Drop position
Tail
Head
Random location
Overflow drop
Early drop
7Typical Internet Queuing
- FIFO drop-tail
- Simplest choice
- Used widely in the Internet
- FIFO (first-in-first-out)
- Implies single class of traffic
- Drop-tail
- Arriving packets get dropped when queue is full
regardless of flow or importance - Important distinction
- FIFO scheduling discipline
- Drop-tail drop policy (buffer management)
8FIFO Drop-tail Problems
- FIFO Issues (irrespective of the aggregation
level) - No isolation between flows full burden on e2e
control (e..g., TCP) - No policing send more packets ? get more service
- Drop-tail issues
- Routers are forced to have have large queues to
maintain high utilizations - Larger buffers gt larger steady state
queues/delays - Synchronization end hosts react to the same
events because packets tend to be lost in bursts - Lock-out a side effect of burstiness and
synchronization is that a few flows can
monopolize queue space
9Synchronization Problem
- Because of Congestion Avoidance in TCP
10Synchronization Problem
All TCP connections reduce their transmission
rate on crossing over the maximum queue size.
The TCP connections increase their tx rate using
the slow start and congestion avoidance.
The TCP connections reduce their tx rate
again. It makes the network traffic fluctuate.
Total Queue
Queue Size
Time
11Global Synchronization Problem
Max Queue Length
Can result in very low throughput during periods
of congestion
12Global Synchronization Problem
- TCP Congestion control
- Synchronization leads to bandwidth
under-utilization - Persistently full queues leads to large queueing
delays - Cannot provide (weighted) fairness to traffic
flows inherently proposed for responsive flows
bottleneck rate
Aggregate load
Rate
Flow 1
Flow 2
Time
13Lock-out Problem
Max Queue Length
- Lock-Out In some situations tail drop allows a
single connection or a few flows (misbehaving
flows UDP) to monopolize queue space, preventing
other connections from getting room in the queue.
This "lock-out" phenomenon is often the result of
synchronization.
14Bias Against Bursty Traffic
Max Queue Length
During dropping, bursty traffic will be dropped
in benchs which is not fair for bursty
connections
15Active Queue ManagementGoals
- Solve lock-out and full-queue problems
- No lock-out behavior
- No global synchronization
- No bias against bursty flow
- Provide better QoS at a router
- Low steady-state delay
- Lower packet dropping
16RED (Random Early Detection)
- FIFO scheduling
- Buffer management
- Probabilistically discard packets
- Probability is computed as a function of average
queue length
Discard Probability
1
0
Average Queue Length
queue_len
min_th
max_th
17Random Early Detection(RED)
18RED operation
Min thresh
Max thresh
Average queue length
P(drop)
1.0
MaxP
Avg length
minthresh
maxthresh
19RED (Random Early Detection)
Define Two Threshold Values
Make Use of Average Queue Length
Case 1 Average Queue Length lt Min. Thresh Value
Admit the New Packet
20RED (Contd)
Min thresh
Max thresh
Average queue length
Case 2 Average Queue Length between Min. and
Max. Threshold Value
Admit the New Packet With Probability p
Or Drop the New Packet With Probability 1-p
21Random Early Detection Algorithm
for each packet arrival calculate the average
queue size ave if ave minth do
nothing else if minth ave maxth
calculate drop probability p drop arriving
packet with probability p else if maxth ave
drop the arriving packet
- ave (1 wq)ave wqq
- P max_P(avg_len min_th)/(max_th min_th)
22Random early detection (RED) packet drop
Average queue length
Drop probability
Maxqueue length
Forced drop
Maxthreshold
Probabilisticearly drop
Minthreshold
No drop
Time
23Active Queue ManagementRandom Early Detection
(RED)
- Weighted average accommodates bursty traffic
- Probabilistic drops
- avoid consecutive drops
- drops proportional to bandwidth utilization
- (drop rate equal for all flows)
24RED Vulnerable to Misbehaving Flows
UDP blast
FIFO RED
TCP Throughput (Kbytes/Sec)
Time (seconds)
25Effectiveness of RED- Lock-Out Global
Synchronization
- Packets are randomly dropped
- Each flow has the same probability of being
discarded
26Effectiveness of RED- Full-Queue Bias against
bursty traffic
- Drop packets probabilistically in anticipation of
congestion - Not when queue is full
- Use qavg to decide packet dropping probability
allow instantaneous bursts
27What QoS does RED Provide?
- Lower buffer delay good interactive service
- qavg is controlled to be small
- Given responsive flows packet dropping is
reduced - Early congestion indication allows traffic to
throttle back before congestion - RED provide small delay, small packet loss, and
high throughput (when it has responsive flows).
28Weighted RED (WRED)
- WRED provides separate thresholds and weights for
different IP precedences, allowing us to provide
different quality of service to different traffic - Lower priority class traffic may be dropped more
frequently than higher priority traffic during
periods of congestion
29WRED (Cont..)
High Priority traffic
Medium Priority traffic
Low Priority traffic
Random Dropping
30Congestion Avoidance Weighted Random Early
Detection (WRED)
Adds Per-Class Queue Thresholds for Differential
Treatment Two Classes are Shown Any number of
classes Can Be Defined
Probability of Packet Discard
Average Queue Depth
Standard Minimum Threshold
Premium Minimum Threshold
Std and Pre Maximum Threshold
31Problems with (W)RED unresponsive flows
32Vulnerability to Misbehaving Flows
- TCP performance on a 10 Mbps link under RED in
the face of a UDP blast
33Vulnerability to Misbehaving Flows
- Try to look at the following example
- Assume there is a network which is set up as
34Vulnerability to Misbehaving Flows
35Vulnerability to Misbehaving Flows
RED Queue Size
Global Synchronization solved
36Unfairness of RED
An unresponsive flow occupies over 95 of
bandwidth
Unresponsive Flow (such as UDP)
32 TCP Flows 1 UDP Flow
37Scheduling Queue Management
- What routers want to do?
- Isolate unresponsive flows (e.g., UDP)
- Provide Quality of Service to all users
- Two ways to do it
- Scheduling algorithms
- e.g., WFQ, WRR
- Queue management algorithms
- e.g., RED, FRED, SRED
38The setup and problems
- In a congested network with many users
- QoS requirements are different
- Problem
- Allocate bandwidth fairly
39Approach 1 Network-Centric
- Network node Fair Queueing (FQ)
- User traffic any type
- Problem complex implementation
- lots of work per flow
40Approach 2 User-Centric
- Network node
- simple FIFO buffer
- active queue management (AQM) RED
- User traffic congestion-aware (e.g. TCP)
- Problem requires user cooperation
41Current Trend
- Network node
- simple FIFO buffer
- AQM schemes with enhancement to provide fairness
preferential dropping packets - User traffic any type
42Packet Dropping Schemes
- Size-based Schemes
- drop decision based on the size of FIFO queue
- e.g. RED
- Content-based Schemes
- drop decision based on the current content of the
FIFO queue - e.g. CHOKe
- History-based Schemes
- keep a history of packet arrivals/drops to guide
drop decision - e.g. SRED, RED with penalty box, AFD
43CHOKe (no state information)
44Random Sampling from Queue
- A randomly chosen packet more likely from the
unresponsive flow - Unresponsive flows cant fool the system
45Comparison of Flow ID
- Compare the flow id with the incoming packet
- More accurate
- Reduce the chance of dropping packets from a
TCP-friendly flows
46Dropping Mechanism
- Drop packets (both incoming and matching samples)
- More arrival ? More Drop
- Give users a disincentive to send more
47CHOKe (Contd)
Case 1 Average Queue Length lt Min. Thresh Value
Admit the New Packet
48CHOKe (Contd)
Min thresh
Max thresh
Case 2 Avg. Queue Length is between Min. and
Max. Threshold Values
A packet is randomly chosen from the queue to
compare with the new arrival packet
If they are from different flows, the same logic
in RED applies
If they are from the same flow, both packets
will be dropped
49CHOKe (Contd)
Min thresh
Max thresh
Case 3 Avg. Queue Length gt Max. Threshold Value
A random packet will be chosen for comparison
If they are from different flows, the new packet
will be dropped
If they are from the same flow, both packets
will be dropped
50Simulation Setup
51Network Setup Parameters
- 32 TCP flows, 1 UDP flow
- All TCPs maximum window size 300
- All links have a propagation delay of 1ms
- FIFO buffer size 300 packets
- All packets sizes 1KByte
- RED (minth, maxth) (100,200) packets
5232 TCP, 1 UDP (one sample)
5332 TCP, 5 UDP (5 samples)
54How Many Samples to Take?
- Different samples for different Qlenavg
- samples decrease when Qlenavg close to minth
- samples increase when Qlenavg close to maxth
5532 TCP, 5 UDP (self-adjusting)
56Two Problems of CHOKe
- Problem I
- Unfairness among UDP flows of different rates
- Problem II
- Difficulty in choosing automatically how many to
drop
57SAC (Self Adjustable CHOKe
- Tries to Solve the previously mentioned two
problems
58SAC
- Problem 1 Unfairness among UDP flows of
different rates (e.g., when k 1, the UDP flow 31
(6 Mbps) has 1/3 throughput of UDP flow 32 (1
Mbps), and when k 10 , throughput of UDP flow 31
is almost 0).
59SAC
- Problem 2 Difficulty in choosing automatically
how many to drop (when k 4, UDPs occupy most of
the BW. When k 10, relatively good fair sharing,
and when k 20, TCPs get most of the BW).
60SAC
- Solutions
- Search from the tail of the queue for a packet
with the same flow number and drop this packet
instead of random dropping because the higher a
flow rate is, the more likely its packets will
gather at the rear of the queue. - The queue occupancy will be more evenly
distributed among the flows. - 2. Automate the process of determining k
according to traffic status (number of active
flows and number of UDP flows)
61SAC
- Once an incoming UDP is compared with a randomly
selected packet, if they are of the same flow, P
is updated in this way - P ? (1-wp) P wp.
- If they are of different flows, P is updated as
follows - P ? (1-wp) P .
- If P is small, then there are more competing
flows, and we should increase the value of k. - Once there is an incoming packet, if it is a UDP
packet, R is updated in this way - R ? (1-wr) R wr..
- If it is a TCP packet, R is updated as follows
- R ? (1-wr) R.
- If R is large, then we have a large amount of UDP
traffic, and we should increase k to drop more
UDP packets.
62SAC simulation
- Throughput per flow (30 TCP flows and 2 UDP flows
of different rate)
63SAC simulation
- Throughput per flow (30 TCP flows and 4 UDP flows
of the same rate).
64SAC simulation
- Throughput per flow (20 TCP flows and 4 UDP flows
of different rates)
65- AQM Using Partial state information
66Congestion Management and Avoidance Goal
- Provide fair bandwidth allocation similar to WFQ
- Be simple to implement like RED
WFQ
Ideal
Fairness
RED
Simplicity
67AQM Based on Capture Recapture
- Objective achieve fairness close to that of
max-min fairness - If W(f) lt C/N, then set R(f) W(f).
- If W(f) gt C/N, then set R(f) C/N.
- Formulation
- Ri the sending rate of flow i
- Di the drop probability of flow i
- Ideally, we want
- Ri (1 Di) Rfair (equal share)
- Di (1 Rfair/Ri) (That is, drop the excess)
68AQM Based on Capture-Recapture
The key question is how to estimate the sending
rate (Ri) and the fair share (Rfair) !!!
Active Queue Management
Fair allocation of BW
The estimation of the sending rate
The adjustment mechanism
Incoming packets
The estimation of the fair share
69Capture-Recapture Models
- The CR models were originally developed for
estimating demographic parameters of animal
populations (e.g., population size, number of
species, etc.). - It is an extremely useful method where inspecting
the whole state space is infeasible or very
costly - Numerous models have been developed to various
situtations - The CR models are being used in many diverse
fields ranging from software inspection to
epidemiology. - It is based on several key ideas animals are
captured randomly, marked, released and then
recaptured randomly from the population.
70Capture-Recapture Models
- Simple model estimate a homegeneous population
of animals (N) - n1 animals are captured (marked)
- n2 animals were recaptured, and
- m2 of these appeared to be marked.
- Under this simple capture recapture model (M0)
- m2/n2 n1/N
m2
71Capture-Recapture Models
- The capture probability refers to the chance that
an individual animal get caught. - M0 implies that the capture probability for all
animals are the same. - 0 refers to constant capture probability
- Using the Mh model, the capture probabilities
vary by animal, sometimes for reasons like
difference in species, sex, or age, etc.. - h refers to heterogeneity.
72Capture-Recapture Models
- Estimation of N under the Mh Model is based on
the capture frequency data f1, f2, and ft (t
captures) - f1 is the number of animals that were caught only
once, - f2 is the number of animals that were caught only
twice, etc. - The jackknife estimator of N is computed as a
linear combination of these capture frequencies,
s.t. - N a1f1 a2f2 atft
- where ai are coefficients which are a function
of t.
73AQM Based on Capture-Recapture
- The key question is how to estimate the sending
rate (Ri) and the fair share (Rfair) !!! - We use an arrival buffer to store the recently
arrived packet headers (we can have control over
how large the buffer is, and is a better
representation of the nature of the flows when
compared to the sending buffer) - We estimate Ri using the M0 capture-recapture
model - We estimate Rfair using the Mh capture-recapture
model (by estimating the number of active flows).
74AQM Based on Capture-Recapture
- Ri is estimated for every arriving packet (we can
increase the accuracy by having multiple
captures, or decrease it by capturing packets
periodically) - If the arrival buffer is of size B, and the
number of captured packets is Ci, then Ri R
Ci/B where R is the aggregate arrival rate - Rfair may not change every single time slot (as a
result, the capturing and the calculation of the
number of active flows could be done
independently of the arrival of each incoming
packet) - Rfair R/(number of active flows)
- The capture-recapture model gives us a lot of
flexibility in terms of accuracy vs. complexity - The same capture-recapture can be used for
calculating both Ri and Rfair
75AQM Based on Capture-Recapture
Active Queue Management (Capture-Recapture)
Fair allocation of BW
The estimation of Ri by the M0 model
Di (1 Rfair/Ri)
Incoming packets
The estimation of Rfair by the Mh CR model
76Performance evaluation
- This is a classical setup that researchers use to
evaluate AQM schemes (we can vary many
parameters, responsive vs. non-responsive
connections, the nature of responsiveness, link
delays, etc.)
S(1)
S(1)
100Mbps
100Mbps
TCP sources
TCP sources
R1
R2
S(m)
S(m)
10Mbps
S(m1)
S(m1)
UDP sources
UDP sources
S(mn)
S(mn)
77Performance evaluation
- Estimation of the number of flows
78Performance evaluation
- Bandwidth allocation comparison between CAP and
RED
79Performance evaluation
- Bandwidth allocation comparison between CAP and
SRED
80Performance evaluation
- Bandwidth allocation comparison between CAP and
RED-PD
81Performance evaluation
- Bandwidth allocation comparison between CAP and
SFB
82Normalized Measure of Performance
- A single comparison of the fairness using a
normalized value, where norm is defined as -
- where bi is ideal fair share, bj is the
bandwidth received by each flow - Thus, BW 0 for the ideal fair sharing
83Normalized Measure of Performance
84Performance Evaluation Variable amount of
unresponsiveness