Fat Virtual Access Points Taken from Srikanth Kandula
Connect to the AP with the highest RSSI State-of-the-art (802.11):
Wireless Link ~ 54Mbps (Theoretical Max) AP Uplink ~ 2Mbps (DSL/Cable Modems) Can Aggregate Bandwidth from nearby APs! Problem 1: In Homes, Hotspots… … Uplink Bottleneck
Load Imbalance Unnecessary congestion; nearby APs are idle Spread load Individual changes help globally Problem 2: Divide Total Bandwidth Among Users 20Mbps 15Mbps At Work … 4Mbps 7Mbps
Join closest APJoin a Virtual AP, that is the sum of nearby APs State-of-the-art:Abstraction: 1.User can aggregate bandwidth from all APs 2.Compete for total balance load across APs 1.User can aggregate bandwidth from all APs 2.Compete for total balance load across APs 2 Problems, 1 Solution
Realize a “fat virtual AP” with only client-side changes
Basic Operation 2Mbps 20Mbps But, what about receive? 2Mbps
Basic Operation Drop Power-Save Q Pretend in power-save, so AP buffers when disconnected (similar to Chandra et. al. VirtualWiFi) Divide Time and Data Across APs to get “Fat Virtual AP” 2Mbps 20Mbps 2Mbps
Realizing a Fat Virtual AP is Hard Sustain TCP flows through each AP –Cannot lose packets yet Switch quickly Which APs to connect to and for how long? –Some APs are more valuable than others How to divide traffic across the APs? FatVAP, an driver design 1.divides time across APs to maximize throughput 2.is transparent to APs and remote ends FatVAP, an driver design 1.divides time across APs to maximize throughput 2.is transparent to APs and remote ends
FatVAP Overview 1.Scan for available APs 2.Compute a schedule to divide time across APs 3.Switch APs as per schedule 4.Spread traffic by pinning flows to APs Channel 1 Channel 6 Channel 36
How much time to spend at an AP? Useful fraction of time Achievable Bandwidths– end-to-end e, wireless w Subsumes Wireless Link Quality, Contention at AP, APs uplink capacity
How to Divide Time Across APs? AP Bandwidth (Mbps)AP1AP2AP3 End-to-end Achievable543 Wireless Achievable588 Usable Fraction100%50%38% Optimal = 7 Mbps Pick APs Greedily, on End-to-end rate 5 Mbps, 100% busy ! more bang for the buck if wireless b/w is large
Pick APs Greedily, on End-to-end rate Pick APs Greedily, on Wireless rate AP Bandwidth (Mbps)AP1AP2AP3AP4AP5AP6 End-to-end Available Wireless Available Usable Fraction20% 100% 5 Mbps, 100% busy ! cost to switch is ≈ 5 ms ! can’t linger too long (100ms period) No Greedy Solution! How to Divide Time Across APs? Only 75% usable
Say, f i is fraction of time at AP i Usefulness Constraint Value (Bandwidth) Cost (Time) Let s be switching time and D be the period (pseudo)-polynomial solution Like Bin Packing, maximize value with bounded cost!
But, How to Estimate Bandwidths? Wireless Achievable Client TX Queue Time from head of tx queue to end of transmission (ack) Naively– send-rate of probe burst, APs report load AP Buffers Idea: Use synchronous acks
But, How to Estimate Bandwidths? Wireless AchievableEnd-to-end Client TX Queue Time from head of tx queue to end of transmission (ack) Naively, send-rate of probe burst or APs report load AP Buffers Idea: Use synchronous acks t Count bytes rcvd in a window
But, How to Estimate Bandwidths? Wireless AchievableEnd-to-end Client TX Queue Time from head of tx queue to end of transmission (ack) Naively, send-rate of probe burst or APs report load AP Buffers Idea: Use synchronous acks t Count bytes rcvd in a window May not receive data always Idea: only count back-to- back large packets!
How to Spread Traffic Across APs?
Put flows through all APs virtualize state an IP for each interface toggle APs (and channels) By default, kernel sends all traffic to one AP T-Mobile /24 MIT /24 Hardware (Wireless Card) State AP1AP2 AP1 StateAP2 State Two Interfaces Toggler
How to Spread Traffic Across APs? Put flows through all APs virtualize state an IP for each interface toggle APs (and channels) By default, kernel sends all traffic to one AP Spread flows to APs Fast header re-writing Hardware (Wireless Card) AP1AP2 AP1 StateAP2 State Two Interfaces Toggler Spreader Distribute load w/o changing APs and applications
FatVAP Realizes a Fat Virtual AP Which APs to connect to and for how long? –Estimate Bandwidths, Solve Optimization How to divide traffic across the APs? –Virtualize, Pin Flows to APs, rewrite headers Switch quickly but without losing packets –In-driver, Private Queues, Isolation And, with only client-side changes
Related Work VirtualWiFi (Microsoft Research) AP Selection (Intel Research, U Michigan) SyncScan (UCSD) MadWifi (open-source) oDivide Time across APs to maximize throughput oSustain TCP flows through multiple APs oTransparently spread traffic across APs
Results
Experimental Setup Compare FatVAP driver with unmodified MadWifi Scenarios –Testbed built from Cisco, NetGear and MadWifi APs –Residential deployments –Commercial hotspots Traffic –Long-lived TCP flows –BitTorrent (Azureus client, Planetlab peers) –Mimic Web Browsing (modified WebStone)
Can FatVAP Aggregate Bandwidth? 6Mbps Throughput (Mb/s) Number of APs Aggregates end-to-end up to the wireless bottleneck ~22 Mbps
Can FatVAP Balance Load? 12Mbps2Mbps C1C2C3C4C5
Can FatVAP Balance Load? 12Mbps2Mbps Throughput (Mb/s) FatVAP Unmodified MadWifi Simplifies Network Deployment! C1C2C3C4C5 C1 C2 C3 C4 C5