180 likes | 354 Views
Stochastic Fair Blue: A Queue Management Algorithm for Enforcing Fairness. W. Feng, D. Kandlur, D. Saha, and K. Shin Presented by King-Shan Lui. BLUE vs RED. RED relies on queue lengths to estimate congestion Gives little information about number of competing connections sharing the link
E N D
Stochastic Fair Blue: A Queue Management Algorithm for Enforcing Fairness W. Feng, D. Kandlur, D. Saha, and K. Shin Presented by King-Shan Lui
BLUE vs RED • RED relies on queue lengths to estimate congestion • Gives little information about number of competing connections sharing the link • Requires many parameters • BLUE relies directly on packet loss and link utilization • Maintains a single probability
BLUE Note: d1 >> d2
Stochastic Fair Blue • Combines BLUE and Bloom filters • L * N bins: L levels, each level has N bins • Each level has a different hash function which hash a flow to a bin of that level • Each bin keeps dropping probability, pm, and the queue occupancy statistics of packets belonging to that bin • If queue length > bin size, increase pm; if queue length = 0, decrease pm
packet2 SFB h1 hL-1 h0 0 1 packet1 : : : : : : N-1 Level L-1 Level 1 Level 0
0.2 0.3 normal packet2 pmin = 0.2 SFB h1 hL-1 h0 1.0 0 Non-responsive 1 1.0 packet1 pmin = 1 : : : : : : N-1 1.0 1.0 Level L-1 Level 1 Level 0
Misclassification Problem • Well-behaved flows may be misclassified as non-responsive flows • Prob. of misclassified – p • Number of non-responsive flows – M
Misclassification Problem (cont.) • Amount of memory available – C • C = L * N
Moving Hash Functions • Periodically or randomly reset the bins and change the hash functions • Misclassified flows may be remapped • Non-responsive flows may become responsive and can be reclassified • Problem: while reset, non-responsive may grab more bandwidth • Solution: Use two sets of bins
Round-Trip Time Sensitivity • Connections with smaller RTT can dominate the bandwidth • When the number of small RTT connections is small, SFB is still fine • When the number of small RTT connections is high, fairness between flows can be affected • Amount of unfairness is bounded for TCP
Comparison: RED w. Penalty Box • Uses a finite log of recent packet loss events • Identifies misbehaving flows based on log • Log has to be large in some cases • Non-responsive flows remain in “penalty box” even after becoming well-behaved • Relies on a TCP-friendliness check but is difficult to determine
Comparison: Flow-RED • Keeps state based on instantaneous queue occupancy of a given flow • If a flow occupies a lot of space, it is rate limited • Requires a large buffer to work well • Non-responsive flows are immediately reclassified after they clear the packets • When there are many non-responsive flows, unable to distinguish from normal TCP flows
Comparison: RED with Per-Flow Queueing • Keeps per-flow information for active flows • Requires O(N) states for N flows
Comparison: Stochastic Fair Queuing • One level hash function • Flows are mapped to separate queues • Partitioning of buffers increases packet loss rate and adversely impacts fairness • Packets may be re-ordered (not FIFO) when changing hash functions
Comparison: Core-Stateless Fair Queueing • Attachs the flow rate in the packets at the edge • Intermediate routers calculate a dropping prob. • Requires additional information in the packets • Requires edge and intermediate routers both understand the information • Misconfigure of edge significantly impacts the fairness
Contributions • A different kind of queue management • Protect normal TCP flows from non-responsive flows
Remaining Issues • How to determine bin_size, delta,L and N? • Can we change L and N when M changes? • Processing overhead in enqueue and dequeue: O(L)