Enhance & Explore: an Adaptive Algorithm to Maximize the Utility of Wireless Networks Julien Herzen joint work with Adel Aziz, Ruben Merz, Seva Shneer and Patrick Thiran September 5th, 2011 1/20
Context Inefficient situations in wireless LANs Example, performance anomaly: 1 Mb/s 11 Mb/s GW UDP TCP Throughput [Kb/s] 800 600 400 200 Flow at 1Mb/s Flow at 11Mb/s 0 0 1000 2000 3000 Time [s] Throughput [Kb/s] 800 600 400 200 Flow at 1Mb/s Flow at 11Mb/s 0 0 1000 2000 3000 Time [s] Intuition: Send a little less packets at 1 Mb/s, so that the flow at 11 Mb/s can send many more 2/20
Approach 1 Mb/s 11 Mb/s GW Formalization: Capture the efficiency and the fairness of the network using a utility function U = u i (x i ), i x i : throughput of flow i Examples U max = i x i U prop = i logx i 3/20
Network Stack Backward compatibility runs on top of IEEE 802.11 Congestion control throttle each flow One limiter per IP source in the network queue 1 ρ i 1 IP queue 2 queue 3... ρ i 2 ρ i 3... Round Robin MAC i j k queue F ρ i F GW 4/20
How to throttle the flows? Find the rate allocation ρ that maximizes the utility U Problem: We do not know the feasible rate region! hard to predict or measure optimum U = logx i rate of flow 2? rate of flow 1 U = µ 2 U U = µ 1 5/20
Decide at the gateway The gateway knows The throughput achieved by the flows: x The current utility of the network: U(x) = u i (x i ) If x = ρ, then ρ belongs to the rate region Measure and Decide loop Measure each flow Decide Broadcast decision i j x i x j x k k? i j ρ i ρ j ρ k k GW GW 6/20
Model At time slot n: Measured throughput: x[n] R F + Rate allocation vector: ρ[n] R F + Last stable rate allocation: r[n] R F + rate of flow 2 Utility function: U(x) = i u i(x i ) rate of flow 1 L(µ) Level set: L(µ[n]) = {x[n] : U(x[n]) = µ[n],x[n] R F +} 7/20
Step 1 - Start from IEEE 802.11 allocation U = logx i ρ[0] x[0] Current level set: L(U(x[0])) Remember allocation r[0] x[0] rate of flow 2 optimum x[0] = ρ[0] rate of flow 1 L(µ[0]) 8/20
Step 2 - Enhance phase Time step n: If x[n 1] = ρ[n 1]: U = logx i Else: Obtain a new target utility µ[n] by a full size gradient ascent Obtain a new target utility µ[n] by halving the size of the gradient ascent Go to Explore phase (next slide) rate of flow 2 optimum attempt rate of flow 1 L(µ[n]) L(µ[n 1]) 9/20
Step 3 - Explore phase If x[n 1] = ρ[n 1]: Remember r[n] = ρ[n 1] U = logx i Else: Go to Enhance phase Keep target utility: µ[n] = µ[n 1] Pick ρ[n] randomly in L(µ[n]) rate of flow 2 optimum attempt Repeat explore phase at most N times, then move to Enhance phase (and reduce the size of the gradient ascent) rate of flow 1 L(µ[n]) 10/20
Step 3 - Explore phase If x[n 1] = ρ[n 1]: Else: Remember r[n] = ρ[n 1] Go to Enhance phase U = logx i optimum Keep target utility: µ[n] = µ[n 1] Pick ρ[n] randomly in L(µ[n]) rate of flow 2 Repeat explore phase at most N times, then move to Enhance phase (and reduce the size of the gradient ascent) rate of flow 1 attempt L(µ[n 1]) L(µ[n]) 11/20
Step 3 - Explore phase If x[n 1] = ρ[n 1]: Else: Remember r[n] = ρ[n 1] Go to Enhance phase U = logx i optimum Keep target utility: µ[n] = µ[n 1] Pick ρ[n] randomly in L(µ[n]) rate of flow 2 attempt Repeat explore phase at most N times, then move to Enhance phase (and reduce the size of the gradient ascent) rate of flow 1 L(µ[n]) 12/20
Step 3 - Explore phase If x[n 1] = ρ[n 1]: Remember r[n] = ρ[n 1] Go to Enhance phase Else: rate of flow 2 optimum attempt L(µ[n]) Keep target utility: µ[n] = µ[n 1] Pick ρ[n] randomly in L(µ[n]) Repeat explore phase at most N times, then move to Enhance phase (and reduce the size of the gradient ascent) rate of flow 1 truncated Gaussian PDF for picking ρ 1 : attempt 0 u 1 1 (µ[n]) 13/20
Optimality result Assumptions Fixed rate region Λ[n] = Λ Coordinate-convex rate region Much weaker than convexity! Theorem The Enhance & Explore algorithm guarantees that, for any initial rate allocation r[0], the utility of the last stable rate allocation r[n] converges to the maximal utility for n. 14/20
Practical implementation Based on Click [1] with MultiflowDispatcher [2] Creation of 4 new Click elements MFQueue MFLeakyBucket IP queue 1 queue 2 queue 3... ρ i 1 ρ i 2 ρ i 3... Round Robin MAC EEadapter queue F ρ i F EEscheduler Evaluation with Asus routers ns-3 GW [1] Kohler et al., Transactions on Computer Systems, 2000 [2] Schiöberg et al., SyClick, 2009 15/20
Experimental results Deployment map: Without E&E: With E&E (U prop ): Throughput [Kb/s] Throughput [Mb/s] 800 600 400 UDP traffic 200 Flow at 1Mb/s Flow at 11Mb/s 0 0 1000 2000 3000 Time [s] 4 3 2 1 Flow at 1Mb/s Flow at 11Mb/s 0 0 1000 2000 3000 Time [s] Throughput [Kb/s] Throughput [Mb/s] 800 600 400 TCP traffic 200 Flow at 1Mb/s Flow at 11Mb/s 0 0 1000 2000 3000 Time [s] 4 3 2 1 Flow at 1Mb/s Flow at 11Mb/s 0 0 1000 2000 3000 Time [s] 16/20
Experimental results Deployment map: 2 Without E&E: Throughput [Mb/s] 1.5 1 0.5 Flow at 2Mb/s Flow at 5.5Mb/s Flow at 11Mb/s 0 0 1000 2000 3000 Time [s] With E&E (U prop ): Throughput [Mb/s] 2 1.5 1 0.5 Flow at 2Mb/s Flow at 5.5Mb/s Flow at 11Mb/s 0 0 1000 2000 3000 Time [s] 17/20
Simulation results ns-3 simulator Re-use of the same Click elements More controlled environment Possible estimation of the rate region Computation of optima 1 Mb/s 11 Mb/s GW 18/20
Simulation results Adaptivity to time-varying traffic Cyclic validation of last stable allocation r[n] 19/20
Conclusion Problem Inefficient situations in WLANs Capture efficiency and fairness using a utilility function The feasible rate region is unknown! Solution Successive decisions and measurements by the GW Optimal for a fixed rate region When rate region changes, keeps adapting More details in [1], with an extension to multi-hop networks Future work: Include downlink traffic Study and improve speed of convergence Analyze other distributions for the Explore phase [1] Aziz et al., Mobicom 2011 20/20