From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 48 0 1000 2000 3000 4000 5000 6000 0...

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

Transcript of From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 48 0 1000 2000 3000 4000 5000 6000 0...

Page 1: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

Streaming  Music  App  

5  

User  Goals  Don’t  Match  App  Goals  

Page 6: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

Streaming  Music  App  

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

7  

Video  App  

Network  Usage  

Flows  

Page 8: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

Streaming  Music  App  

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

8  

Video  App  

Network  Usage  

Flows  

Page 9: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

StreamingMusic  App  

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

9  

Video  App  

Network  Usage  

Flows  

Page 10: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

StreamingMusic  App  

Interac<ve  Apps  Lack  Priori<za<on  

10  

Browser  

Network  Usage  

Page 11: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

StreamingMusic  App  

Interac<ve  Apps  Lack  Priori<za<on  

11  

Browser  

Network  Usage  

Page 12: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

Strawman:  Users  micromanage  across  seQngs  

13  

Page 14: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

Strawman:  Users  micromanage  across  seQngs  

15  

Poor  reuse  in  similar  apps  

Page 16: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

Strawman:  Users  micromanage  across  seQngs  

16  

Varying  levels  of  control  

Few  

Many  

Poor  reuse  in  similar  apps  

Page 17: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

20  

Tango  Overview  

Kernel  Measure   Control  

Controller  

                  

Gather plans  

Execute  

   

       

      

Apps  

Plans  

User  Policy  

   

   State  

Page 21: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

28  

Policies:  Turning  State  into  Ac<ons  

Page 29: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

42  

Clinging  to  WiFi  Leads  to  Poor  Performance  

Good  WiFi    Bad  WiFi    

Page 43: From%Feast%to%Famine!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

•  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!!mfreed/docs/tango-trios14-slides.pdf · 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

Thanks!  Ques<ons?  

58