Your SlideShare is downloading. ×
0
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Mininet: Moving Forward
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Mininet: Moving Forward

776

Published on

Published in: Technology, Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
776
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
66
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Mininet:    Moving  Forward    Nikhil  Handigol  Brandon  Heller  Vimal  Jeyakumar  Bob    Lantz  [Team  Mininet]  ONRC  Annual  Day  2013  
  • 2. Intro  to  Mininet  3  
  • 3. TesKng  an  SDN  Idea  •  Physical  switches/hosts?  •  Testbed?  •  Simulator?  •  Emulator?    Mininet  
  • 4. Mininet  Your  SDN  Command-­‐Line  Interface  ScripKng  API  VM,  naKve  laptop,  or  naKve  server  To  start  up  Mininet:  > sudo mn
  • 5. Open-­‐Source  System  w/AcKve  User  Community  6  •  1000+  users  •  AcKve  mailing  list    •  700+  users,  200+  domains  •  20  Google  Summer  of  Code  apps  •  GitHub  pull  requests  mininet.github.com  
  • 6. Talk  Outline  •  Mininet  1.0:  funcKonal  fidelity  •  Mininet  2.0  (HiFi)  – Performance  Fidelity  – “Network  Invariants”  – Reproducible  Research  •  Prototypes:  greater  scale  
  • 7. Mininet  2.0  (HiFi)  8  
  • 8. Verifying  Network  ProperKes  •  “Does  my  SDN  work?”  – E.g.,  func&onal  correctness  – Same  control  program  +  OF    funcKonal  fidelity  •  Does  not  try  to  solve  a  harder  problem:  – “How  does  my  SDN/network  perform?”  – That  is,  performance  proper&es.  – No  guarantee  or  expectaKon  of  perf.  fidelity.    
  • 9. Example:  ConnecKvity  in  a  Fat  Tree  servers  switches  10  20x  4-­‐port  switches  16x  servers  sudo mn –-custom ft.py -–topo ft,4 –test pingall
  • 10. Verifying  Network  ProperKes  •  “Does  my  SDN  work?”  – E.g.,  func&onal  correctness  – Same  control  program  +  OF    funcKonal  fidelity  •  “How  does  my  SDN  perform?”  – E.g.,  performance  proper&es  – No  guarantee  or  even  expectaKon  here  
  • 11. hosts  switches  12  A   B   Y   Z  full  throughput  Two  1  Gb/s  flows.  Disjoint  paths.  Example:  Performance  in  a  Fat  Tree  
  • 12. hosts  switches  13  A   B   Y   Z  X  collision  half  throughput  Two  1  Gb/s  flows.  Overlapping  paths.  Example:  Performance  in  a  Fat  Tree  Throughput  might  reduce.    But  by  how  much?    How  do  you  trust  the  results?  
  • 13. 14  overlapping  events  real  Kme  …  …  …  A BLinkEventsA: send requestB: initxmit 1xmit 2B: send reponseA B B HiFiA x1 x2B A BPacket xmit2// A: Clientwhile(1) {send_request(socket);wait_for_reply(socket);}// B: Serverinit();while(1) {wait_for_request(socket);send_response(socket);}1RealSetupB: waitidleBB: send reponse// B: Serverinit();while(1) {wait_for_request(socket);send_response(socket);}RealS  Sources  of  Emulator  Infidelity  Event  Overlap  
  • 14. 15  real  Kme  …  …  …  A BLinkEventsA: send requestB: initxmit 1xmit 2B: send reponseA B B HiFiA x1 x2B A BPacket xmit2// A: Clientwhile(1) {send_request(socket);wait_for_reply(socket);}// B: Serverinit();while(1) {wait_for_request(socket);send_response(socket);}1RealSetupB: waitidleBB: send reponse// B: Serverinit();while(1) {wait_for_request(socket);send_response(socket);}RealS  Sources  of  Emulator  Infidelity  So8ware  Forwarding  variable  delays  
  • 15. How  can  we  trust  emulator  results?  real  Kme  …  …  …  A BLinkEventsA: send requestB: initxmit 1xmit 2B: send reponseA B B HiFiA x1 x2B A BPacket xmit2// A: Clientwhile(1) {send_request(socket);wait_for_reply(socket);}// B: Serverinit();while(1) {wait_for_request(socket);send_response(socket);}1RealSetupB: waitidleBB: send reponse// B: Serverinit();while(1) {wait_for_request(socket);send_response(socket);}RealS  CPU  <=  50%,  so  not  overloaded,  right?  Wrong.  
  • 16. 17  The  Mininet-­‐HiFi  Approach  Resource  IsolaKon  HIGH!Fidelity!METER!MEDIUM!LOW!Fidelity    Monitor  +  500  Mhz  20  pkt  bufs/port  10  Mb/s,  1ms  
  • 17. Network  Invariants  18  
  • 18. A  Workflow  for  High  Fidelity  EmulaKon  19  Create  experiment  Run  the  experiment  on  a  PC,    with  logging  Analyze  experiment  fidelity  using  “network  invariants”  Invariants  hold:  High  Fidelity  EmulaKon!  Instance(s)  of  behavior  that  differ  from  hardware  Run  again:  increase  resources  or  reduce  experiment  scale  1:  what  to  log?  2:  which  invariants?  3:  how  close?  
  • 19. 20  Packet  Gap  Invariants  queue   link   switch   queue  packet  spacing  (when  queue  occupied)  Rmeasured  ≤  Rconfigured  ?          link  capacity  
  • 20. Example  Workflow  for  One  Invariant  21  Create  experiment  Run  the  experiment  on  a  PC,    with  logging  Analyze  experiment  fidelity  using  “network  invariants”  Invariants  hold:  High  Fidelity  EmulaKon!  Instance(s)  of  behavior  that  differ  from  hardware  Run  again:  increase  resources  or  reduce  experiment  scale  2:  Measure  packet    spacing  3:  Is  any  packet  delayed  by  more  than  one  packet  Kme?  1:  Log  Dequeue  Events  If  this  workflow  is  valid,  “pass”    same  result  as  hardware.  DCTCP  
  • 21. Data  Center  TCP  (DCTCP)  Kme  packets  in  queue  TCP  DCTCP  22  marking  threshold  Queue  occupied  100%  throughput  Queue  occupied  100%  throughput  Packet  spacing  we  should  see:  
  • 22. 0 30 60 90 120Seconds0510152025303540Packets q-dctcp-plot.txtHardware  Results,  100  Mb/s  23  packets  in  queue  100%  throughput  6  packets  variaKon  queue  occupied  
  • 23. Emulator  Results  24  Does  checking  an  invariant  (packet  spacing)  idenKfy  wrong  results?  same  result   wrong;    limits  exceeded  80  Mb/s  100%  tput  6  pkts  var  same  result  160  Mb/s  100%  tput  6  pkts  var  320  Mb/s  
  • 24. Packet  Spacing  Invariant  w/DCTCP  25  1  pkt  med.   low  high  CCDF  Percent  (log)  25  pkts  Error:  (log)  10%  of  the  Kme,  error  exceeds  one  packet  x  
  • 25. Percentage deviation from expected0110100Percent26  1  pkt  error  10  20  40  numbers  are  in  Mb/s  80  CCDF  Percent  Packet  Spacing  Invariant  w/DCTCP  
  • 26. Percentage deviation from expected0110100Percent27  10  20  40  numbers  are  in  Mb/s  80  1  pkt  error  CCDF  Percent  Packet  Spacing  Invariant  w/DCTCP  
  • 27. Percentage deviation from expected0110100Percent28  10  20  40  numbers  are  in  Mb/s  80  CCDF  Percent  Packet  Spacing  Invariant  w/DCTCP  160  Mb/s:  failed  emulaKon?  Beauty  of  networks  invariants  is  that  it  catches  and  quanKfies  the  error  in  this  run.  1  pkt  error  
  • 28. DemonstraKng  Fidelity  •  Microbenchmarks  •  ValidaKon  Tests  •  Reproducing  Published  Research  – Do  complex  results  match  published  ones  that  used  custom  hardware  topologies?  •  DCTCP  [Alizadeh,  SIGCOMM  2010]  •  Router  Buffer  Sizing  [Appenzeller,  SIGCOMM  2004]  •  Hedera  ECMP  [Al-­‐Fares,  NSDI  2010]  
  • 29. Reproducing  Research  30  
  • 30. 31  Stanford  CS244  Spring  ’12:  
  • 31. →  Pick  a  paper.    →  Reproduce  a  key  result,  or  challenge  it  (with  data).  →  You  have:  $100  EC2  credit,  3  weeks,  and  must  use  Mininet-­‐HiFi.   32  
  • 32. CoDel  HULL  MPTCP  Outcast  Jellyfish  DCTCP  Incast  Flow  CompleKon  Time  Hedera  DCell  TCP  IniKal  CongesKon  Window  Misbehaving  TCP  Receivers  RED  Project  Topics:  Transport,    Data  Center,  Queuing  33  
  • 33. CoDel  HULL  MPTCP  Outcast  Jellyfish  DCTCP  Incast  Flow  CompleKon  Time  Hedera  DCell  TCP  IniKal  CongesKon  Window  Misbehaving  TCP  Receivers  RED  34  37  students  18  projects  16  replicated  
  • 34. CoDel  HULL  MPTCP  Outcast  Jellyfish  DCTCP  Incast  Flow  CompleKon  Time  Hedera  DCell  TCP  IniKal  CongesKon  Window  Misbehaving  TCP  Receivers  RED  37  students  18  projects  16  replicated  4  beyond  35  
  • 35. CoDel  HULL  MPTCP  Outcast  Jellyfish  DCTCP  Incast  Flow  CompleKon  Time  Hedera  DCell  TCP  IniKal  CongesKon  Window  Misbehaving  TCP  Receivers  RED  37  students  18  projects  16  replicated  4  beyond  2  not  replicated  36  
  • 36. Reproduced  Research  Examples  reproducingnetworkresearch.wordpress.com  (or  Google  “reproducing  network  research”)  37  
  • 37. Why  might  results  be  different?  •  Student  error  /  out  of  Kme:  Incast  •  Original  result  fragile:  RED  •  Insufficient  emulator  capacity  to  match  hardware  of  original  experiment  – OpKon  1:  Scale  up  – OpKon  2:  Slow  down:  Time  DilaKon  – OpKon  3:  Scale  out:  Cluster  EdiKon  
  • 38. QuesKons?  •  Check  out  Bob’s  Cluster  EdiKon  demo  Nikhil  Handigol  Brandon  Heller  Vimal  Jeyakumar  Bob    Lantz  [Team  Mininet]  

×