From ¡Feast ¡to ¡Famine ¡ ¡ Managing ¡mobile ¡network ¡resources ¡across ¡ environments ¡and ¡preferences ¡ Rob ¡Kiefer ¡ Erik ¡Nordström ¡ Michael ¡Freedman ¡ Princeton ¡University ¡
Network ¡Usage ¡Makes ¡Demands ¡on ¡Limited ¡Resources ¡ ! ¡ • Data ¡ 2GB ¡ ! ¡ • Ba>ery ¡ • Performance ¡ ! ¡ Running ¡ ¡ App ¡ App ¡ App ¡ App ¡ tasks ¡ App ¡ App ¡ 2 ¡
Limita<ons ¡and ¡Opera<ng ¡Condi<ons ¡Are ¡Not ¡Sta<c ¡ • User ¡mobility ¡ – indoor ¡vs ¡outdoor ¡ – WiFi ¡vs ¡LTE ¡ – mulIpath ¡& ¡migraIon ¡ • User ¡interest ¡ – foreground ¡vs ¡background ¡apps ¡ – InteracIve ¡vs ¡streaming ¡ 3 ¡
Divergent ¡Goals ¡= ¡Resource ¡Conflicts ¡ • User ¡and ¡apps ¡may ¡differ ¡ – e.g., ¡apps ¡may ¡prioriIze ¡perf, ¡user ¡is ¡cost ¡sensiIve ¡ • User ¡has ¡to ¡moderate ¡resource ¡usage ¡ between ¡apps ¡ 4 ¡
User ¡Goals ¡Don’t ¡Match ¡App ¡Goals ¡ Streaming ¡ Music ¡ App ¡ 5 ¡
User ¡Goals ¡Don’t ¡Match ¡App ¡Goals ¡ Streaming ¡ Music ¡ App ¡ User ¡wants ¡to ¡sacrifice ¡quality; ¡app ¡overuses ¡cell ¡network ¡ 6 ¡
Flow-‑level ¡Fairness ¡!= ¡App-‑level ¡Fairness ¡ Video ¡ App ¡ Network ¡Usage ¡ Flows ¡ Streaming ¡ Music ¡ App ¡ 7 ¡
Flow-‑level ¡Fairness ¡!= ¡App-‑level ¡Fairness ¡ Video ¡ App ¡ Network ¡Usage ¡ Flows ¡ Streaming ¡ Music ¡ App ¡ 8 ¡
Flow-‑level ¡Fairness ¡!= ¡App-‑level ¡Fairness ¡ Video ¡ App ¡ Network ¡Usage ¡ Flows ¡ Streaming Music ¡ App ¡ 9 ¡
Interac<ve ¡Apps ¡Lack ¡Priori<za<on ¡ Browser ¡ Network ¡Usage ¡ Streaming Music ¡ App ¡ 10 ¡
Interac<ve ¡Apps ¡Lack ¡Priori<za<on ¡ Browser ¡ Network ¡Usage ¡ Streaming Music ¡ App ¡ 11 ¡
Interac<ve ¡Apps ¡Lack ¡Priori<za<on ¡ Browser ¡ Network ¡Usage ¡ Streaming ¡ Music ¡ App ¡ Interac<ve ¡apps ¡stuck ¡behind ¡long-‑running ¡flows, ¡hur<ng ¡UX. ¡ 12 ¡
Strawman: ¡Users ¡micromanage ¡across ¡seQngs ¡ 13 ¡
Strawman: ¡Users ¡micromanage ¡across ¡seQngs ¡ • Requires ¡user ¡to ¡monitor ¡and ¡ esImate ¡usage ¡over ¡potenIally ¡long ¡ epochs ¡(hours, ¡days) ¡ • Restricts ¡typically ¡all-‑or-‑nothing, ¡ e.g., ¡allow ¡on ¡mobile ¡or ¡not ¡ 14 ¡
Strawman: ¡Users ¡micromanage ¡across ¡seQngs ¡ Poor ¡reuse ¡in ¡similar ¡apps ¡ 15 ¡
Strawman: ¡Users ¡micromanage ¡across ¡seQngs ¡ Poor ¡reuse ¡in ¡similar ¡apps ¡ Varying ¡levels ¡of ¡control ¡ Few ¡ Many ¡ 16 ¡
Strawman: ¡Users ¡micromanage ¡across ¡seQngs ¡ Poor ¡reuse ¡in ¡similar ¡apps ¡ Varying ¡levels ¡of ¡control ¡ Updates ¡can ¡add, ¡ remove, ¡or ¡change ¡ seangs ¡without ¡ user ¡knowing ¡ 17 ¡
Strawman: ¡OS-‑level ¡limita<ons ¡and ¡restric<ons ¡ ✔ OK! ¡ • OS ¡limits ¡background ¡acIvity ¡ Streaming ¡ Music ¡ App ¡ • Only ¡certain ¡classes ¡of ¡apps ¡ ✖ ¡NOPE! ¡ • Used ¡by ¡iOS ¡and ¡WinPhone ¡ Random ¡ App ¡XYZ ¡ • User ¡has ¡no ¡choice ¡ 18 ¡
Our ¡Solu<on: ¡Tango ¡ • Usage ¡preferences ¡through ¡programmaIc ¡ policy; ¡user ¡is ¡priority, ¡but ¡app ¡flexibility ¡ • Address ¡conflicts ¡ proac0vely ¡ • MigraIon ¡/ ¡mulIpath ¡in ¡mind ¡ • Handle ¡dynamic ¡operaIng ¡condiIons ¡ 19 ¡
Tango ¡Overview ¡ ¡ User ¡ ¡ ¡ ¡ Policy ¡ ¡ ¡ Apps ¡ ¡ ¡ Plans ¡ ¡ ¡ ¡ Gather plans ¡ ¡ ¡ ¡ ¡ State ¡ ¡ Execute ¡ ¡ Controller ¡ Measure ¡ Control ¡ Kernel ¡ 20 ¡
Tango ¡Overview ¡ ¡ State ¡– ¡metrics ¡ User ¡ ¡ ¡ ¡ Policy ¡ ¡ ¡ Apps ¡ from ¡kernel ¡sources ¡ ¡ ¡ ¡ Plans ¡ ¡ ¡ ¡ Plans ¡– ¡acIons ¡to ¡ Gather plans ¡ ¡ be ¡taken ¡ ¡ ¡ ¡ ¡ State ¡ ¡ Execute ¡ Policy ¡– ¡generates ¡ ¡ Controller ¡ plans ¡from ¡ Measure ¡ Control ¡ given ¡state ¡ Kernel ¡ 21 ¡
Tango ¡Overview ¡ ¡ 1. Controller ¡ User ¡ ¡ ¡ ¡ Policy ¡ ¡ ¡ Apps ¡ ¡ ¡ Plans ¡ ¡ ¡ ¡ Gather plans ¡ ¡ 2. User ¡Policy ¡ ¡ ¡ ¡ State ¡ ¡ Execute ¡ ¡ Controller ¡ Measure ¡ Control ¡ 3. App ¡Policies ¡ Kernel ¡ 22 ¡
Tango ¡Overview ¡ ¡ 1. Controller ¡ User ¡ ¡ ¡ ¡ Policy ¡ ¡ ¡ Apps ¡ ¡ ¡ Plans ¡ ¡ ¡ ¡ Gather plans ¡ ¡ 2. User ¡Policy ¡ ¡ ¡ ¡ State ¡ ¡ Execute ¡ ¡ Controller ¡ Measure ¡ Control ¡ 3. App ¡Policies ¡ Kernel ¡ 23 ¡
Tango: ¡Controller ¡ ¡ User ¡ ¡ ¡ ¡ Policy ¡ ¡ ¡ Apps ¡ Plans ¡ ¡ • Measures ¡device ¡ state ¡ Gather plans ¡ ¡ ¡ ¡ State ¡ ¡ ¡ Execute ¡ • Generates ¡policy ¡ ¡ Controller ¡ constraints ¡ Measure ¡ Control ¡ Kernel ¡ • Carries ¡out ¡policy ¡ plans ¡ – Verify ¡against ¡constraints ¡ – Perform ¡ ac<ons ¡in ¡plan ¡ 24 ¡
Tango: ¡Controller ¡ ¡ User ¡ ¡ ¡ ¡ Policy ¡ ¡ ¡ Apps ¡ • Measures ¡device ¡ state ¡ Plans ¡ ¡ Gather plans ¡ ¡ ¡ • Executes ¡the ¡user ¡policy ¡ ¡ State ¡ ¡ ¡ Execute ¡ ¡ Controller ¡ • Carries ¡out ¡policy ¡ plans ¡ Measure ¡ Control ¡ Kernel ¡ – Verify ¡against ¡constraints ¡ – Perform ¡ ac<ons ¡in ¡plan ¡ 25 ¡
Tango: ¡Policies ¡ ¡ User ¡ ¡ ¡ ¡ Policy ¡ ¡ ¡ Apps ¡ • Programs ¡ Plans ¡ ¡ Gather plans ¡ ¡ ¡ • Turn ¡state ¡into ¡plans ¡ ¡ State ¡ ¡ ¡ Execute ¡ ¡ Controller ¡ • Two ¡levels: ¡user ¡& ¡app ¡ Measure ¡ Control ¡ Kernel ¡ 26 ¡
Tango: ¡Policies ¡ ¡ User ¡ ¡ ¡ ¡ Policy ¡ ¡ ¡ Apps ¡ • Programs ¡ Plans ¡ ¡ Gather plans ¡ ¡ ¡ • Turn ¡state ¡into ¡plans ¡ ¡ State ¡ ¡ ¡ Execute ¡ ¡ Controller ¡ • Two ¡levels: ¡user ¡& ¡app ¡ Measure ¡ Control ¡ Kernel ¡ • User ¡level ¡ – Global ¡management ¡of ¡network ¡resources ¡ – Sets ¡resource ¡constraints ¡for ¡app ¡policies ¡ – Default ¡plan ¡for ¡(classes ¡of) ¡apps ¡ 27 ¡
Policies: ¡Turning ¡State ¡into ¡Ac<ons ¡ 28 ¡
Policies: ¡Turning ¡State ¡into ¡Ac<ons ¡ net_name: ¡eth0 ¡ net_type: ¡CELL, ¡ ba>_charge: ¡false ¡ ba>_perc: ¡50 ¡ flows: ¡10, ¡11, ¡12… ¡ … ¡ 29 ¡
Policies: ¡Turning ¡State ¡into ¡Ac<ons ¡ net_name: ¡eth0 ¡ net_type: ¡CELL, ¡ State ¡ ba>_charge: ¡false ¡ ba>_perc: ¡50 ¡ flows: ¡10, ¡11, ¡12… ¡ Source ¡ Info ¡ … ¡ Transport ¡Layer ¡ # ¡retrans., ¡RTTs, ¡cong. ¡window… ¡ Network ¡Layer ¡(IP) ¡ addresses, ¡rouIng ¡rules… ¡ Link ¡Layer ¡ type, ¡signal ¡quality, ¡bit ¡errors… ¡ Ba>ery ¡ charging ¡status, ¡percent… ¡ 30 ¡
Policies: ¡Turning ¡State ¡into ¡Ac<ons ¡ net_name: ¡eth0 ¡ net_type: ¡CELL, ¡ State ¡ ba>_charge: ¡false ¡ ba>_perc: ¡50 ¡ flows: ¡10, ¡11, ¡12… ¡ Source ¡ Info ¡ … ¡ Transport ¡Layer ¡ # ¡retrans., ¡RTTs, ¡cong. ¡window… ¡ Network ¡Layer ¡(IP) ¡ addresses, ¡rouIng ¡rules… ¡ Link ¡Layer ¡ type, ¡signal ¡quality, ¡bit ¡errors… ¡ Ba>ery ¡ charging ¡status, ¡percent… ¡ Policy ¡ 31 ¡
Policies: ¡Turning ¡State ¡into ¡Ac<ons ¡ net_name: ¡eth0 ¡ net_type: ¡CELL, ¡ State ¡ ba>_charge: ¡false ¡ ba>_perc: ¡50 ¡ flows: ¡10, ¡11, ¡12… ¡ Source ¡ Info ¡ … ¡ Transport ¡Layer ¡ # ¡retrans., ¡RTTs, ¡cong. ¡window… ¡ Network ¡Layer ¡(IP) ¡ addresses, ¡rouIng ¡rules… ¡ Link ¡Layer ¡ type, ¡signal ¡quality, ¡bit ¡errors… ¡ Ba>ery ¡ charging ¡status, ¡percent… ¡ Policy ¡ MIGRATE(10, ¡eth0), ¡ MIGRATE(11, ¡eth0), ¡ MIGRATE(12, ¡eth0), ¡ …, ¡ RATELIMIT(eth0, ¡ 500kbps) ¡ 32 ¡
Recommend
More recommend