Queue management

Download Report

Transcript Queue management

Queue Management
Hamed Khanmirza
Principles of Networking
University of Tehran
1
Why Queuing?
• When too many packets
contented for one link
– Queues overflows
– Packets will be dropped
– The network is said congested
• Issues
15 Mbps
10 Mbps
10 Mbps
– Congestion Avoidance
– Congestion Control
10 Mbps
2
Queuing Mechanisms
• FIFO with DropTail is used in the routers
– Important distinction:
• FIFO: scheduling discipline
• Drop-tail: drop policy
• Drawbacks
–
–
–
–
–
Global Synchronization
No penalty for ill sources (or non-TCP)
No policing: send more packets get more service
Burst or multiple consecutive packet drops
Leaves responsibility of congestion control to ends (e.g.,
TCP)
3
Queuing Mechanisms
• Traditional Internet
– Congestion control mechanisms at end-systems, mainly
implemented in TCP
– Routers play little role
• Design active router queue management to aid
congestion control
– Router has unified view of queuing behavior
– Routers can distinguish between propagation and persistent
queuing delays
– Routers can decide on transient congestion, based on
workload
• Components
– Queue Manager
– Queue Scheduler
4
Queue Management Mechanisms
5
Queue Management Mech.
• Mechanisms
– DEC Bit
– RED
– BLUE
6
DECbit
• Basic ideas:
– On congestion, router sets congestion indication (CI) bit on
packet
– Receiver relays bit to sender
– Sender adjusts sending rate
• Key design questions:
– When to set CI bit?
– How does sender respond to CI?
7
Setting CI Bit
Queue length
Current time
Time
Previous cycle
Current cycle
Averaging interval
AVG queue length = (previous busy+idle + current interval)/(averaging interval)
8
DECbit Routers
• Router tracks average queue length
– Regeneration cycle: queue goes from empty to non-empty to
empty
– Average from start of previous cycle
• Not long-time
• Causes to bias
– Compromise between sensitivity and stability
• Acks carry bit back to source
• Source averages across acks in window
– Congestion if > 50% of bits set
– Will detect congestion earlier than TCP
9
DECbit Evaluation
•
•
•
•
•
Relatively easy to implement
No per-connection state
Stable
Assumes cooperative sources
Conservative window increase policy
• BUT, the problems still remain…
10
RED (Random Early Detection)
11
RED Algorithm
• Maintain running average of queue length
– Byte mode vs. packet mode
• For each packet arrival
– Calculate average queue size (avg)
– If minth <= avg < maxth
• Calculate probability Pa
• With probability Pa
– Mark the arriving packet
• Else if maxth <= avg
– Mark the arriving packet
12
RED Operation
Min thresh
Max thresh
P(drop)
Average Queue Length
1.0
maxP
minth
maxth
Avg queue length
13
Queue Estimation
• Standard EWMA:
– avg = (1-wq) avg + wqqlen
– Special fix for idle periods – why?
• Upper bound on wq depends on minth
– Want to ignore transient congestion
– Can calculate the queue average if a burst arrives
• Set wq such that certain burst size does not exceed minth
• Lower bound on wq to detect congestion relatively
quickly
• Typical wq = 0.002
14
Thresholds
• minth determined by the utilization requirement
– Tradeoff between queuing delay and utilization
• Relationship between maxth and minth
– Want to ensure that feedback has enough time to make
difference in load
– Depends on average queue increase in one RTT
– Paper suggest ratio of 2
15
Packet Marking
• Marking probability based on queue length
– Pb = maxp(avg - minth) / (maxth - minth)
• Just marking based on Pb can lead to clustered
marking
– Could result in synchronization
– Better to bias Pb by history of unmarked packets
– Pa = Pb/(1 - count*Pb)
16
Random Early Detection (RED)
• Detect incipient congestion, allow bursts
• Keep power (throughput/delay) high
– Keep average queue size low
– Assume hosts respond to lost packets
• Avoid window synchronization
– Randomly mark packets
• Avoid bias against bursty traffic
• Some protection against ill-behaved users
17
BLUE
18
Blue
• Uses packet loss and link idle events instead of
average queue length – why?
– Hard to decide what is transient and what is severe with
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
19
Blue Basic Algorithm
• d1 >> d2  why ?
– More critical to react quickly to increase in load
20
Comparison: Blue vs. RED
• Blue advantages
– More stable marking rate & queue length
– Avoids dropping packets
– Much better behavior with small buffers
21
Stochastic Fair Blue
• Same objective as RED Penalty Box
– Identify and penalize misbehaving flows
• Create L hashes with N bins each
–
–
–
–
Each bin keeps track of separate marking rate (pm)
Rate is updated using standard technique and a bin size
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
• Large numbers of bad flows may cause false positives
22
23
SFB
24
Stochastic Fair Blue
• Can differentiate between approx. NL flows
• Bins do not actually map to buffers
–
–
–
–
–
Each bin only keeps drop rate
Can statistically multiplex buffers to bins
Works well since Blue handles small queues
Has difficulties when large number of misbehaving flows
Also has difficulties when a large number of connections
with varying round-trip times are used with SFB
25
Stochastic Fair Blue
• False positives can continuously penalize same flow
• Solution: moving hash function over time
– Bad flow no longer shares bin with same flows
– Quickly react to non-responsive flows which become TCPfriendly.
– Is history reset does bad flow get to make trouble until
detected again?
• No, can perform hash warmup in background
26
Other Approaches
27
RED with Penalty Box
• Takes advantage of the fact that high bandwidth flows
see proportionally larger amounts of packet loss.
• By keeping a finite log of recent packet loss events,
this algorithm identifies flows which are nonresponsive based on the log.
• Flows which are identified as being non-responsive
are then rate-limited using other mechanisms like
CBQ
• Problems
– Multiple non-responsive flows (Large log file)
– one or few high bandwidth flow
– Penalized flows remain in “Penalty Box” !
28
FRED (Flow RED)
• Keep state for flows based on instantaneous queue
occupancy.
• If a flow continually occupies a large amount of the
queue’s buffer space, it is detected and limited to a
smaller amount of the buffer space.
• Problems
– Keeps state for flows which have packets queued. Large
buffer is needed
– Dealing with large number of non-responsive flows
• Polluted logs
• Missing ability to distinguish TCP-friendly flows or non-responsive
flows.
29
RED with per-flow Queueing
• Keep state for active flows
• Problems
– Requires O (N) buffer
– Hardware requirements
30
SFQ (Stochastic Fair Queueing)
• Like SFB with 1 level of Bins
• Has multiple queues
• Maps flows to queues
31
CSFQ (Core-Stateless Fair Queueing)
• Keeps no state in the core of the network
• Per-flow accounting and marking at the edges
– Estimates rate of the flow at ingress
– Attach info. To every packet
• Probabilistic dropping at the core
– calculates a dropping probability which is derived from an estimate of a
fair share of the bottleneck link capacity and the rate of the flow as
identified in the label.
• Problems
– Header overhead
– Edge and core routers must aware of same labeling and
dropping scheme
32