from%feast%to%famine!! - usenix · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700...

58
From Feast to Famine Managing mobile network resources across environments and preferences Rob Kiefer Erik Nordström Michael Freedman Princeton University

Upload: others

Post on 18-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

From  Feast  to  Famine    Managing  mobile  network  resources  across  

environments  and  preferences  

Rob  Kiefer  Erik  Nordström  

Michael  Freedman  Princeton  University  

Page 2: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Network  Usage  Makes  Demands  on  Limited  Resources  

•  Data  

•  Ba>ery  

•  Performance  

2  

!  2GB  

!  

App   App  App   App  App   App   !  Running    

tasks  

Page 3: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  User  mobility  –  indoor  vs  outdoor  – WiFi  vs  LTE  – mulIpath  &  migraIon  

•  User  interest  –  foreground  vs  background  apps  –  InteracIve  vs  streaming  

3  

Limita<ons  and  Opera<ng  Condi<ons  Are  Not  Sta<c  

Page 4: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

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  

Page 5: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Streaming  Music  App  

5  

User  Goals  Don’t  Match  App  Goals  

Page 6: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Streaming  Music  App  

6  

User  Goals  Don’t  Match  App  Goals  

User  wants  to  sacrifice  quality;  app  overuses  cell  network  

Page 7: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Streaming  Music  App  

Flow-­‐level  Fairness  !=  App-­‐level  Fairness  

7  

Video  App  

Network  Usage  

Flows  

Page 8: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Streaming  Music  App  

Flow-­‐level  Fairness  !=  App-­‐level  Fairness  

8  

Video  App  

Network  Usage  

Flows  

Page 9: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

StreamingMusic  App  

Flow-­‐level  Fairness  !=  App-­‐level  Fairness  

9  

Video  App  

Network  Usage  

Flows  

Page 10: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

StreamingMusic  App  

Interac<ve  Apps  Lack  Priori<za<on  

10  

Browser  

Network  Usage  

Page 11: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

StreamingMusic  App  

Interac<ve  Apps  Lack  Priori<za<on  

11  

Browser  

Network  Usage  

Page 12: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Streaming  Music  App  

Interac<ve  Apps  Lack  Priori<za<on  

12  

Browser  

Network  Usage  

Interac<ve  apps  stuck  behind  long-­‐running  flows,  hur<ng  UX.  

Page 13: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Strawman:  Users  micromanage  across  seQngs  

13  

Page 14: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Strawman:  Users  micromanage  across  seQngs  

14  

•  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  

Page 15: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Strawman:  Users  micromanage  across  seQngs  

15  

Poor  reuse  in  similar  apps  

Page 16: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Strawman:  Users  micromanage  across  seQngs  

16  

Varying  levels  of  control  

Few  

Many  

Poor  reuse  in  similar  apps  

Page 17: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Strawman:  Users  micromanage  across  seQngs  

17  

Updates  can  add,  remove,  or  change  seangs  without  user  knowing  

Varying  levels  of  control  

Poor  reuse  in  similar  apps  

Page 18: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  OS  limits  background  acIvity  

•  Only  certain  classes  of  apps  

•  Used  by  iOS  and  WinPhone  

•  User  has  no  choice  

18  

Strawman:  OS-­‐level  limita<ons  and  restric<ons  

Streaming  Music  App  

✔ OK!  

Random  App  XYZ  

✖  NOPE!  

Page 19: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  Usage  preferences  through  programmaIc  policy;  user  is  priority,  but  app  flexibility  

•  Address  conflicts  proac0vely  

•  MigraIon  /  mulIpath  in  mind  

•  Handle  dynamic  operaIng  condiIons  

19  

Our  Solu<on:  Tango  

Page 20: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

20  

Tango  Overview  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

   

       

      

Apps  

Plans  

User  Policy  

   

   State  

Page 21: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

21  

Tango  Overview  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

   

       

      

Apps  

Plans  

User  Policy  

   

   State  

State  –  metrics  from  kernel  sources    Plans  –  acIons  to  be  taken    Policy  –  generates  plans  from  given  state  

Page 22: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

22  

Tango  Overview  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

   

       

      

Apps  

Plans  

User  Policy  

   

   State  

1. Controller  

2. User  Policy  

3. App  Policies  

Page 23: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

23  

Tango  Overview  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

   

       

      

Apps  

Plans  

User  Policy  

   

   State  

1. Controller  

2. User  Policy  

3. App  Policies  

Page 24: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Tango:  Controller  

•  Measures  device  state  

•  Generates  policy  constraints  

•  Carries  out  policy  plans  –  Verify  against  constraints  –  Perform  ac<ons  in  plan  

24  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

   

       

      

Apps  

Plans  

User  Policy  

   

   State  

Page 25: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Tango:  Controller  

•  Measures  device  state  

•  Executes  the  user  policy  

•  Carries  out  policy  plans  –  Verify  against  constraints  –  Perform  ac<ons  in  plan  

25  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

User  Policy  

   

   State  

   

       

      

Apps  

Plans  

Page 26: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Tango:  Policies  

26  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

User  Policy  

   

   State  

•  Programs  

•  Turn  state  into  plans  

•  Two  levels:  user  &  app  

   

       

      

Apps  

Plans  

Page 27: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Tango:  Policies  

27  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

   

       

      

Apps  

Plans  

User  Policy  

   

   State  

•  Programs  

•  Turn  state  into  plans  

•  Two  levels:  user  &  app  

•  User  level  – Global  management  of  network  resources  – Sets  resource  constraints  for  app  policies  – Default  plan  for  (classes  of)  apps  

Page 28: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

28  

Policies:  Turning  State  into  Ac<ons  

Page 29: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

29  

Policies:  Turning  State  into  Ac<ons  net_name:  eth0  net_type:  CELL,  ba>_charge:  false  ba>_perc:  50  

flows:  10,  11,  12…  …  

Page 30: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

30  

Policies:  Turning  State  into  Ac<ons  net_name:  eth0  net_type:  CELL,  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…  

State  

Page 31: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

31  

Policies:  Turning  State  into  Ac<ons  net_name:  eth0  net_type:  CELL,  ba>_charge:  false  ba>_perc:  50  

flows:  10,  11,  12…  …  

Policy  

State  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…  

Page 32: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

32  

Policies:  Turning  State  into  Ac<ons  net_name:  eth0  net_type:  CELL,  ba>_charge:  false  ba>_perc:  50  

flows:  10,  11,  12…  …  

Policy  

MIGRATE(10,  eth0),  MIGRATE(11,  eth0),  MIGRATE(12,  eth0),  …,  RATELIMIT(eth0,  500kbps)  

State  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…  

Page 33: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

33  

Policies:  Turning  State  into  Ac<ons  

Ac<on   Iface   Flow  

ENABLE   ✔   ✔  

RATELIMIT   ✔   ✔  

LOG   ✔   ✔  

MANAGE   ✔  

MIGRATE   ✔  

State  

Ac<ons  

net_name:  eth0  net_type:  CELL,  ba>_charge:  false  ba>_perc:  50  

flows:  10,  11,  12…  …  

Policy  

MIGRATE(10,  eth0),  MIGRATE(11,  eth0),  MIGRATE(12,  eth0),  …,  RATELIMIT(eth0,  500kbps)  

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…  

Page 34: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute     State  

•  Leverage  local  state  

•  Only  act  on  their  flows  

•  Subject  to  user  policy  constraints  

•  App  can  provide  hints  

34  

Tango:  App  Policies  

   

       

      

Apps  

Plans  

User  Policy  

   

Page 35: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  ProacIvely  address  resource  conflicts  – Constraints  known  a  priori  – Simplifies  controller  &  app  policy  interacIon  cycle  

•  Apps  can  hint  at  desired  resource  needs  for  future  rounds  

35  

Tango:  Constraints  &  Hints  

Page 36: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

evaluate(s, c): // Plan returned.

genConstraints(s): c = new Constraints()

for a in s.apps():

if a.isForeground():

c.put(a, HIGH)

return c

36  

USER  POLICY  

Tango:  User  &  App  Policy  

Page 37: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

evaluate(s, c): // Plan returned.

genConstraints(s): c = new Constraints()

for a in s.apps():

if a.isForeground():

c.put(a, HIGH)

return c

37  

evaluate(s, ca): plan = new Plan() pstate = GetPlayerState()

// Rest of policy omitted.

plan.hintPriority = NORM

urgent = false

buffer = pstate.bufferTime

if buffer > 30:

urgent = false

elif buffer < 20 || urgent:

urgent = true

plan.hintPriority = HIGH

return plan

USER  POLICY   APP  POLICY  

Tango:  User  &  App  Policy  

Page 38: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

evaluate(s, c): // Plan returned.

genConstraints(s): c = new Constraints()

for a in s.apps():

hint = a.hintPriority

if a.isForeground():

c.put(a, HIGH)

elif Allowed(a, hint):

c.put(a, hint)

return c

38  

evaluate(s, ca): plan = new Plan() pstate = GetPlayerState()

// Rest of policy omitted.

plan.hintPriority = NORM

urgent = false

buffer = pstate.bufferTime

if buffer > 30:

urgent = false

elif buffer < 20 || urgent:

urgent = true

plan.hintPriority = HIGH

return plan

USER  POLICY   APP  POLICY  

Tango:  User  &  App  Policy  

Page 39: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  Controller,  sample  policies,  sample  apps  in  Java  for  Android  phones  

•  Flow  migraIon  provided  by  Serval  (NSDI  ‘12)  

•  Explored  the  policy  space  for  single  and  mulIple  apps  

39  

Prototype  

Page 40: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  Campus  WiFi  offers  chance  to  offload  

•  But,  even  seamless  switching  w/  migraIon  has  problems  

•  How  to  use  policy  to  improve  when  to  switch?  

•  How  to  minimize  cell  usage?  

•  How  can  app  policies  help?  

40  

Evalua<on:  Streaming  Music  Across  SpoXy  Campus  WiFi  

Page 41: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  Campus  WiFi  offers  chance  to  offload  

•  But,  even  seamless  switching  w/  migraIon  has  problems  

•  How  to  use  policy  to  improve  when  to  switch?  

•  How  to  minimize  cell  usage?  

•  How  can  app  policies  help?  

41  

Evalua<on:  Streaming  Music  Across  SpoXy  Campus  WiFi  

Page 42: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

42  

Clinging  to  WiFi  Leads  to  Poor  Performance  

Good  WiFi    Bad  WiFi    

Page 43: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

43  

0 100 200 300 400 500

0 100 200 300 400 500 600 700

Buffe

r (se

cs)

Time (secs)

WiFiCell

Clinging  to  WiFi  Leads  to  Poor  Performance  

Good  WiFi    Bad  WiFi    

Page 44: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

44  

0 100 200 300 400 500

0 100 200 300 400 500 600 700

Buffe

r (se

cs)

Time (secs)

WiFiCell

Clinging  to  WiFi  Leads  to  Poor  Performance  

Unneeded  cell  usage  

Good  WiFi    Bad  WiFi    

Page 45: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

45  

0 100 200 300 400 500

0 100 200 300 400 500 600 700

Buffe

r (se

cs)

Time (secs)

WiFiCell

0

100

200

300

0 100 200 300 400 500 600 700

Buffe

r (se

cs)

Time (secs)

Pause

WiFiCell

Clinging  to  WiFi  Leads  to  Poor  Performance  

Good  WiFi    Bad  WiFi    

Page 46: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  More  aggressive  in  leaving  WiFi;  more  conservaIve  in  joining  

•  Use  heurisIcs  on  signal  strength  trends  

•  Based  on  measurements  across  campus  of  signal  strength  vs  achieved  throughput  

46  

Improving  Network  Switching  

Page 47: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

47  

0 1000 2000 3000 4000 5000 6000

0 100 200 300 400 500 600 700 800

Buffe

r (se

cs)

Time (secs)

WiFiCell

Improving  Streaming  Music  Through  Policy  

No  rate  limit  

Page 48: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

48  

0 1000 2000 3000 4000 5000 6000

0 100 200 300 400 500 600 700 800

Buffe

r (se

cs)

Time (secs)

WiFiCell

0 100 200 300 400 500 600 700 800

0 100 200 300 400 500 600 700 800

Buffe

r (se

cs)

Time (secs)

WiFiCell

Improving  Streaming  Music  Through  Policy  

No  rate  limit   Rate  limit  

Page 49: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

49  

0 100 200 300 400 500 600 700

0 100 200 300 400 500 600 700 800

Buffe

r (se

cs)

Time (secs)

WiFiCell

0 1000 2000 3000 4000 5000 6000

0 100 200 300 400 500 600 700 800

Buffe

r (se

cs)

Time (secs)

WiFiCell

0 100 200 300 400 500 600 700 800

0 100 200 300 400 500 600 700 800

Buffe

r (se

cs)

Time (secs)

WiFiCell

Improving  Streaming  Music  Through  Policy  

No  rate  limit   Rate  limit  

App  Policy  

Page 50: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

50  

0 50

100 150 200 250

Unl Rate App

Dat

a (M

B)

Policy

WiFiCell

Total

User  and  App  Policy  Coopera<on  Yields  Best  Usage  

Rate  uses  5-­‐6x  less  cell  data  than  Unl.    App  uses  about  30x  less  cell  data  than  Unl.  

Page 51: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

51  

0

2

4

6

8

0 20 40 60 80 100 120 0

10

20

30

40

50Pa

ge lo

ad ti

me

(s)

Play

back

buf

fer (

s)

Time (secs)

Music appWeb app

Interac<ve  App  Compe<ng  w/  Streaming  App  

Problem  Poor  resource  isolaIon  leads  to  erraIc  load  Imes      Solu<on  App  fair  share,  prioriIze  music  only  when  buffer  low  

Page 52: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

52  

0

2

4

6

8

0 20 40 60 80 100 120 0

10

20

30

40

50Pa

ge lo

ad ti

me

(s)

Play

back

buf

fer (

s)

Time (secs)

Music appWeb app

Interac<ve  App  Compe<ng  w/  Streaming  App  

Problem  Poor  resource  isolaIon  leads  to  erraIc  load  Imes      Solu<on  App  fair  share,  prioriIze  music  only  when  buffer  low  

Page 53: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

53  

0

2

4

6

8

0 20 40 60 80 100 120 0

10

20

30

40

50Pa

ge lo

ad ti

me

(s)

Play

back

buf

fer (

s)

Time (secs)

Music appWeb app

0

2

4

6

8

0 50 100 150 200 250 300 350 0

10

20

30

40

50

Page

load

tim

e (s

)

Play

back

buf

fer (

s)

Time (secs)

Music appWeb app

Interac<ve  App  Compe<ng  w/  Streaming  App  

Page 54: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  Context  awareness:  CASS,  CARISMA,  JCAF  – Using  context  to  improve  apps  – Not  looking  at  resource  usage;  not  single  device  

•  Network  Choice/Wifi  Offloading  – Many:  Whiffler,  IMP,  BreadCrumbs,  SALSA…  –  Complementary  to  Tango  

•  Serval,  MPTCP,  TCP-­‐Migrate  –   Need  policy  to  guide  decisions  on  nets  to  use  –  Complementary  to  Tango  

54  

Related  Work  

Page 55: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  Context  awareness:  CASS,  CARISMA,  JCAF  – Using  context  to  improve  apps  – Not  looking  at  resource  usage;  not  single  device  

•  Network  Choice/WiFi  Offloading  – Many:  Whiffler,  IMP,  BreadCrumbs,  SALSA…  –  Complementary  to  Tango  

•  Serval,  MPTCP,  TCP-­‐Migrate  –   Need  policy  to  guide  decisions  on  nets  to  use  –  Complementary  to  Tango  

55  

Related  Work  

Page 56: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  Context  awareness:  CASS,  CARISMA,  JCAF  – Using  context  to  improve  apps  – Not  looking  at  resource  usage;  not  single  device  

•  Network  Choice/WiFi  Offloading  – Many:  Whiffler,  IMP,  BreadCrumbs,  SALSA…  –  Complementary  to  Tango  

•  Serval,  MPTCP,  TCP-­‐Migrate  –   Need  policy  to  guide  decisions  on  nets  to  use  –  Complementary  to  Tango  

56  

Related  Work  

Page 57: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

•  Tango  is  a  network  resource  management  framework  based  on  programmaIc  policy  

•  ProacIvely  handle  resource  conflicts  while  including  user  and  app  prefs  into  decisions  

•  Demonstrated  the  value  it  adds  for  single  apps  as  well  as  across  apps  

57  

Conclusions  

Page 58: From%Feast%to%Famine!! - USENIX · 48 0 1000 2000 3000 4000 5000 6000 0 100 200 300 400 500 600 700 800 Buffer (secs) Time (secs) WiFi Cell 0 100 200 300 400 500 600 700 800 0 100

Thanks!  Ques<ons?  

58