Fat Virtual Access Points Srikanth Kandula Kate Lin, Tural Badirkhanli and Dina Katabi State-of-the-art (802.11): Connect to the AP with the highest RSSI Problem 1: In Homes, Hotspots… AP Uplink ~ 2Mbps (DSL/Cable Modems) Wireless Link ~ 54Mbps (Theoretical Max) 2+2+2+… Uplink Bottleneck Can Aggregate Bandwidth from nearby APs! Problem 2: At Work … Unnecessary congestion; nearby APs are idle 20Mbps Spread load 15Mbps Individual changes help globally 4Mbps 7Mbps Load Imbalance Divide Total Bandwidth Among Users 2 Problems, 1 Solution State-of-the-art: Join closest AP Abstraction: Join a Virtual AP, that is the sum of nearby APs 1. User can aggregate bandwidth from all APs 2. Compete for total balance load across APs Realize a “fat virtual AP” with only client-side changes Basic Operation 2Mbps 2Mbps 20Mbps But, what about receive? Basic Operation 2Mbps Drop Power-Save Q 2Mbps 20Mbps 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” 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 802.11 driver design 1. divides time across APs to maximize throughput 2. is transparent to APs and remote ends FatVAP Overview Channel 6 Channel 6 Channel 1 Channel 36 1. 2. 3. 4. Scan for available APs Compute a schedule to divide time across APs Switch APs as per schedule Spread traffic by pinning flows to APs How much time to spend at an AP? e w Achievable Bandwidths– end-to-end e, wireless w e Useful fraction of time w Subsumes Wireless Link Quality, Contention at AP, APs uplink capacity How to Divide Time Across APs? AP Bandwidth (Mbps) AP1 AP2 AP3 End-to-end Achievable 5 4 3 Wireless Achievable 5 8 8 Usable Fraction 100% 50% 38% 5 Mbps, Optimal = 7 Mbps 100% busy Pick APs Greedily, on End-to-end rate ! more bang for the buck if wireless b/w is large How to Divide Time Across APs? AP Bandwidth (Mbps) AP1 AP2 AP3 AP4 AP5 AP6 End-to-end Available 1 1 1 1 1 4.5 Wireless Available 5 5 5 5 5 4.5 Usable Fraction 20% 20% 20% 20% 20% 100% 5 Mbps, 100% busy Pick APs Greedily, on End-to-end rate Pick APs Greedily, on Wireless rate ! cost to switch is ≈ 5 ms ! can’t linger too long (100ms period) No Greedy Solution! Only 75% usable Say, fi is fraction of time at APi Let s be switching time and D be the period max fi fw i Value (Bandwidth) i ei s.t. 0 f i wi f D f s D i i Usefulness Constraint Cost (Time) Like Bin Packing, maximize value with bounded cost! (pseudo)-polynomial solution But, How to Estimate Bandwidths? Wireless Achievable Naively– send-rate of probe burst, APs report load Idea: Use synchronous acks Client TX Queue AP Buffers w Time from head of tx queue to end of transmission (ack) But, How to Estimate Bandwidths? Wireless Achievable End-to-end Naively, send-rate of probe burst or APs report load Idea: Use synchronous acks Client TX Queue t Count bytes rcvd in a window AP Buffers e Time from head of tx queue to end of transmission (ack) But, How to Estimate Bandwidths? Wireless Achievable End-to-end Naively, send-rate of probe burst or APs report load Idea: Use synchronous acks Client TX Queue t Count bytes rcvd in a window May receive data always Idea:not only count back-toback large packets! AP Buffers e Time from head of tx queue to end of transmission (ack) How to Spread Traffic Across APs? How to Spread Traffic Across APs? Put flows through all APs • virtualize 802.11 state • an IP for each interface • toggle APs (and channels) By default, kernel sends all traffic to one AP AP1 MIT 128.30.79.0/24 Toggler AP2 T-Mobile 192.168.3.0/24 Hardware (Wireless Card) 802.11 State AP1 State AP2 State Two Interfaces How to Spread Traffic Across APs? Put flows through all APs • virtualize 802.11 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 AP1 Toggler AP2 Hardware (Wireless Card) AP1 State AP2 State Two Interfaces Spreader Distribute load w/o changing APs and applications Switching Quickly Without Drops A Driver For Each Interface? AP1 – warm-up cost on switch – one instance + soft-switch One Driver AP2 Switching Quickly Without Drops A Driver For Each Interface? AP1 AP2 – warm-up cost on switch – one instance + soft-switch 802.11 Control Packets – Isolate Transitions Hardware (Wireless Card) AP1 State Re-send Send AUTH AP2 State Switching Quickly Without Drops A Driver For Each Interface? AP1 AP2 – warm-up cost on switch – one instance + soft-switch 802.11 Control Packets – Isolate Transitions Pkts stuck in driver at switch – Private Queues 1. Delay Switch till pkts drain 2. Drop Packets (madwifi) Switching Quickly Without Drops A Driver For Each Interface? AP1 AP2 – warm-up cost on switch – one instance + soft-switch 802.11 Control Packets – Isolate Transitions Pkts stuck in driver at switch – Private Queues Attach/Detach Queue = Pointer Swap Enables high-rate TCPs through multiple APs 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) o Divide Time across APs to maximize throughput o Sustain TCP flows through multiple APs o Transparently 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 FatVAP Throughput (Mb/s) ~22 Mbps Unmodified MadWifi 25 20.6 20 17 15 10 20.5 11.4 5.8 5.8 5.8 5.8 5.8 5.8 5 0 1 2 3 4 5 of APs bottleneck Aggregates end-to-end up toNumber the wireless Can FatVAP Balance Load? 2Mbps C1 C2 12Mbps C3 C4 C5 Can FatVAP Balance Load? 2Mbps 12Mbps C1 C2 C3 C4 C5 Throughput (Mb/s) Unmodified MadWifi 5 FatVAP 4.4 3.8 4 3.3 3 3.5 2.9 3.1 2.8 2.7 2 1 0 .9 .9 C1 C2 C3 C4 C5 C1 C2 C3 C4 C5 Simplifies Network Deployment! Can FatVAP Adapt to Changes? 15Mbps Throughput (Mb/s) 5Mbps Re-adjusts time@AP as necessary Contributions A new model for managed 802.11 LANs – Aggregate uplink, Balance load First to realize a fat virtual AP – Divide time and traffic across APs Transparent to APs, applications, servers