160 likes | 266 Views
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
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 !!!