160 likes | 277 Views
This paper by Peng Wang from the University of Delaware presents a probabilistic approach to achieving fair bandwidth allocation in Core Stateless Fair Queuing (CSFQ). It discusses the necessity of fairness in resource allocation due to ill-behaved flows monopolizing resources while well-behaved flows suffer. The CSFQ method balances performance and scalability without maintaining per-flow state in core routers, allowing edge routers to measure flow rates. It estimates fair share and applies probabilistic packet dropping based on flow rates, aiming for equitable allocation among multiple flows.
E N D
A Probabilistic Approach for Achieving Fair Bandwidth Allocation in CSFQ Presented by: Peng Wang EE Department University of Delaware
Background • Why need fairness? • Ill-behaved flows consume most of the resource • Well-behaved flows are starved out • Three approaches for fairness • Stateful solution: (Fair Queueing) • Each router maintains per-state information and operates on per-state basis • Good performance • Scalability problem • Stateless solution: (CHOKe) • No per-flow information • Approximately fairness • Partial State solution: (CSFQ, RAINBOW, SRED) • Partial State information • Approximately fairness (Generally better than stateless solution) • Complexity between stateful solution and stateless solution
Fair Queueing Disadvantage: • Need to perform packet classification and maintain state and buffers on per-flow basis and perform operations on per-flow basis
The CSFQ (core stateless FQ) Approach • Goal: Achieve approximately fair bandwidth allocation • Differentiate between Edge router and Core router Edge router maintains per-flow state Core router is stateless
CSFQ • In an island of routers, edge routers measure per-flow rate and label the packets with these measures. • Routers drop packets probabilistically based on the per-flow state in the packet header and fair share estimation • Assume that flow i has arrival rate ri(t) and the fair rate is α(t). • If ri(t) < α(t), all of its traffic is forwarded. • If ri(t) > α(t), then a fraction (ri(t) - α(t))/ ri(t) will be dropped; each packet of the flow is dropped with probability (1- α(t)/ri(t)).
CSFQ • The problem now becomes how to calculate the flow rate ri(t) values and the fair rate a(t), without keeping per flow state in the core routers. • Flow rates ri(t), are calculated at edge routers which keep per flow state and then insert the rate value inside the packet header of packets belonging to that flow. • Estimation of flow arrival rates: • Rnew = (1-e-T/K)*l/T + e-T/K*Rold • where T = packet interarrival time • l = packet size • K = constant
A<C during Kc A>C during Kc Cong Normal Uncong Update α and return immediately: α= α*C/F Update α and return immediately:α=max(p.label) during Kc Fig: FSM for fair share estimation in CSFQ CSFQ: Estimate fair rate (Heuristic) • To estimate the fair rate α(t), an iterative procedure is used: routers meausre aggregate arrival rate A and the aggregate accepted rate F. (arrival packets dropped packets accepted packets). • Based on these, the fair rate a is computed periodically as: • - Uncongested: A< C at all times during a time interval of length Kc.then a is set to the maximum ri(t) during Kc • - Congested:A > C at all times during a time interval of length Kc.then anew = aold*C/F • -Normal: others
SRED: Some Definitions • Zombie List • A list of M recently seen packets • Longer memory than the buffer alone • Pi: Probability that arrival packet belongs to flow i • Assume Pi doesn’t change in a limited time interval • Hit Zombie List n incoming packets
Pi: random select a packet Pi Zombie List Hit prob for flow i:Pi2 n incoming packets Hit prob: ΣPi2 n: sample size After n packets arrives, the estimation of fair share is updated. # of hits: m = n ΣPi2 ΣPi2=m/n 1/N=<ΣPi2< 1 SRED: Estimate fair share • Symmetric case: N flows, pi = 1/N • ΣPi2= 1/N (exact estimate) m/n=1/NN=n/m • Asymmetric case: N ≈ 1/ ΣPi2 = n/m good estimation Fair Share = C/N where N ≈ n/m
Simulations – Single Congested Link (ALL UDP) 0 1 10Mbps 2 UDP Flows . . . 31
ALL UDPs: Fair Share Estimation Ns-2.1b7a Ns-2.27
ALL UDPs: Throughput of each flow Ns-2.1b7a Ns-2.27
Simulations – Single Congested Link (ONE UDP) UDP Flow 0 1 10Mbps 2 TCP Flows . . . UDP flows at 10Mbps 10Mbps 31
ONE UDP: Fair Share Estimation Ns-2.1b7a Ns-2.27 congested--->α=0.569266, C/F=1.010354congested--->α=0.497685, C/F=0.874257congested--->α=0.540367, C/F=1.085760congested--->α=0.531257, C/F=0.983142 congested--->α=1.165561, C/F=1.910136congested--->α=5.488898, C/F=4.709231congested--->α=10.00000, C/F=2.163037congested--->α=9.320702, C/F=0.93207
ONE UDP: Throughput of each flow Ns-2.1b7a Ns-2.27
Further work: • Make clear the confusion of NS2 version • Optimize my fair share estimation • Flows with different RTT • Multiple congested links • Web traffic THANKS !!!