Stochastic Fair Blue An Algorithm For Enforcing Fairness Wu-chang Feng (OGI/OHSU) Dilip Kandlur (IBM) Debanjan Saha (Tellium) Kang Shin (University of Michigan) April 26, 2001
Outline Motivation Background –Packet scheduling –Buffer management Bloom Filters and Blue Stochastic Fair Blue Conclusion
Motivation Internet relies on TCP congestion control Proliferation of non-responsive applications Network mechanisms –Packet scheduling –Buffer management
Packet scheduling approaches WFQ, W2FQ [Bennett96], Virtual Clock[Zhang90], SCFQ [Golestani94], STFQ [Goyal96] –per-flow packet scheduling and queue management accuracy, correctness overhead, partitioned buffers SFQ [McKenney90], CBQ [Floyd94] –approximate fairness using hashes or flow classification low overhead misclassification RED with per-active flow queuing [Suter98] lower overhead than WFQ overhead still O(N)
Buffer management approaches RED with penalty box [Floyd97] –Analyze drop history no per-flow state accuracy, complexity, large #s of bad flows Flow RED [Lin97] –Examine per-flow queue occupancy no per-flow state accuracy vs. queue size, large #s of bad flows Core-Stateless FQ [Stoica98] –Rate labeling at edge with priority dropping in core core router overhead, correctness packet overhead, coordination required, deployment
Stochastic Fair Blue Buffer management algorithm Single FIFO queue Combines –Bloom filters –Blue queue management
Bloom Filters Used in –Spell checkers (by dictionary word) –Browser caches (by URL) –Web caches (by URL) Apply multiple independent hash functions on input dictionary Lookup or locate objects based on their hashing signature
Blue De-couple congestion management from queue length Rely only on longer-term queue and link history Salient features –Low packet loss –High link utilization –Low queuing delay
Blue AB Sources Sinks L Mbs Rate = L Mbs Queue drops and/or ECN marks at steady rate Rate = Exactly what will keep sources at L Mbs Sinks generate DupACKs/ECN
Example Blue Algorithm Single dropping/marking probability –Increase upon packet loss –Decrease when link underutilized –Freeze value upon changing Upon packet loss: if ((now - last_update) > freeze_time) then P mark = P mark + delta last_update = now Upon link idle: if ((now - last_update) > freeze_time) then P mark = P mark - delta last_update = now
Stochastic Fair Blue (SFB) Single FIFO queue Multiple independent hash functions applied to each packet Packets update multiple accounting bins Blue performed on accounting bins Observation –Non-responsive flows drive P to 1.0 in all bins –TCP flows have some bins with normal P –P min = 1.0, rate-limit –P min < 1.0, mark with probability P min
SFB h L-1 h1h1 P=1.0 Non-responsive Flow P min =1.0 TCP Flow P=0.2 P=0.3 P min =0.2 h0h N-1 N L virtual bins out of L*N actual bins
SFB Evaluation 400 TCP flows 1 non-responsive flow sending at 45 Mbs Evaluation –200KB, 2-level SFB with 23 bins per level (529 virtual bins) –200KB RED queue –400KB SFQ with 46 RED queues 100 Mbs 45 Mbs 100 Mbs
SFB Evaluation REDSFQ+RED Loss rates Non-responsive = Mbs TCP Flows = 3.07 Mbs Loss rates Non-responsive = Mbs TCP Flows = 2.53 Mbs
SFB Evaluation Loss rates Non-responsive = Mbs TCP Flows = 0.01 Mbs SFB
SFB and Misclassification SFB deteriorates with increasing non-responsive flows Non-responsive flows pollute bins in each level Probability of misclassification –p = [1 - (1 - 1/N) M ] L –Given M, optimize L and N subject to L*N=C
SFB and Misclassification 8 non-responsive flows4 non-responsive flows
SFB with Moving Hash Functions SFB –Virtual buckets from spatial replication of bins Moving hash functions –Virtual buckets temporally Advantages –Handles misclassification –Handles reformed flows
SFB with Moving Hash Functions
Conclusion Stochastic Fair Blue –Combine Blue queue management with Bloom filters no per-flow state, small amount of buffers, tunable to # of bad flows, amenable to hardware implementations short-term accuracy Current status –2 known vendor implementations –Linux implementation Future work –Hardware implementation using COTS programmable network processor