SlideShare a Scribd company logo
1 of 38
Download to read offline
Mininet:	
  	
  
Moving	
  Forward	
  	
  
Nikhil	
  
Handigol	
  
Brandon	
  
Heller	
  
Vimal	
  
Jeyakumar	
  
Bob	
  	
  
Lantz	
  
[Team	
  Mininet]	
  
ONRC	
  Annual	
  Day	
  2013	
  
Intro	
  to	
  Mininet	
  
3	
  
TesKng	
  an	
  SDN	
  Idea	
  
•  Physical	
  switches/hosts?	
  
•  Testbed?	
  
•  Simulator?	
  
•  Emulator?	
  	
  Mininet	
  
Mininet	
  
Your	
  SDN	
  
Command-­‐Line	
  Interface	
  
ScripKng	
  API	
  
VM,	
  naKve	
  laptop,	
  or	
  naKve	
  server	
  
To	
  start	
  up	
  Mininet:	
  
> sudo mn
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	
  
Talk	
  Outline	
  
•  Mininet	
  1.0:	
  funcKonal	
  fidelity	
  
•  Mininet	
  2.0	
  (HiFi)	
  
– Performance	
  Fidelity	
  
– “Network	
  Invariants”	
  
– Reproducible	
  Research	
  
•  Prototypes:	
  greater	
  scale	
  
Mininet	
  2.0	
  (HiFi)	
  
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.	
  	
  
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
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	
  
hosts	
  
switches	
  
12	
  
A	
   B	
   Y	
   Z	
  
full	
  throughput	
  
Two	
  1	
  Gb/s	
  
flows.	
  
Disjoint	
  paths.	
  
Example:	
  Performance	
  in	
  a	
  Fat	
  Tree	
  
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?	
  
14	
  
overlapping	
  events	
  
real	
  Kme	
  
…	
  
…	
  
…	
  A B
Link
Events
A: send request
B: init
xmit 1
xmit 2
B: send reponse
A B B HiFiA x1 x2B A B
Packet xmit
2
// A: Client
while(1) {
send_request(socket);
wait_for_reply(socket);
}
// B: Server
init();
while(1) {
wait_for_request(socket);
send_response(socket);
}
1
Real
Setup
B: wait
idle
B
B: send reponse
// B: Server
init();
while(1) {
wait_for_request(socket);
send_response(socket);
}
Real
S	
  
Sources	
  of	
  Emulator	
  Infidelity	
  
Event	
  Overlap	
  
15	
  
real	
  Kme	
  
…	
  
…	
  
…	
  A B
Link
Events
A: send request
B: init
xmit 1
xmit 2
B: send reponse
A B B HiFiA x1 x2B A B
Packet xmit
2
// A: Client
while(1) {
send_request(socket);
wait_for_reply(socket);
}
// B: Server
init();
while(1) {
wait_for_request(socket);
send_response(socket);
}
1
Real
Setup
B: wait
idle
B
B: send reponse
// B: Server
init();
while(1) {
wait_for_request(socket);
send_response(socket);
}
Real
S	
  
Sources	
  of	
  Emulator	
  Infidelity	
  
So8ware	
  Forwarding	
  
variable	
  delays	
  
How	
  can	
  we	
  trust	
  emulator	
  results?	
  
real	
  Kme	
  
…	
  
…	
  
…	
  A B
Link
Events
A: send request
B: init
xmit 1
xmit 2
B: send reponse
A B B HiFiA x1 x2B A B
Packet xmit
2
// A: Client
while(1) {
send_request(socket);
wait_for_reply(socket);
}
// B: Server
init();
while(1) {
wait_for_request(socket);
send_response(socket);
}
1
Real
Setup
B: wait
idle
B
B: send reponse
// B: Server
init();
while(1) {
wait_for_request(socket);
send_response(socket);
}
Real
S	
  
CPU	
  <=	
  50%,	
  so	
  not	
  overloaded,	
  right?	
  
Wrong.	
  
17	
  
The	
  Mininet-­‐HiFi	
  Approach	
  
Resource	
  
IsolaKon	
  
HIGH!
Fidelity!
METER!
MEDIUM!
LOW!
Fidelity	
  	
  
Monitor	
  
+	
  
500	
  Mhz	
  
20	
  pkt	
  bufs/
port	
  
10	
  Mb/s,	
  
1ms	
  
Network	
  Invariants	
  
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?	
  
20	
  
Packet	
  Gap	
  Invariants	
  
queue	
   link	
   switch	
   queue	
  
packet	
  spacing	
  
(when	
  queue	
  occupied)	
  
Rmeasured	
  ≤	
  Rconfigured	
  ?	
  	
  	
  	
  	
  link	
  capacity	
  
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	
  
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:	
  
0 30 60 90 120
Seconds
0
5
10
15
20
25
30
35
40
Packets q-dctcp-plot.txt
Hardware	
  Results,	
  100	
  Mb/s	
  
23	
  
packets	
  
in	
  
queue	
  
100%	
  throughput	
  
6	
  packets	
  variaKon	
  
queue	
  occupied	
  
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	
  
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	
  
Percentage deviation from expected
0
1
10
100
Percent
26	
  
1	
  pkt	
  
error	
  
10	
  
20	
  
40	
  
numbers	
  are	
  in	
  Mb/s	
  
80	
  
CCDF	
  
Percent	
  
Packet	
  Spacing	
  Invariant	
  w/DCTCP	
  
Percentage deviation from expected
0
1
10
100
Percent
27	
  
10	
  
20	
  
40	
  
numbers	
  are	
  in	
  Mb/s	
  
80	
  
1	
  pkt	
  
error	
  
CCDF	
  
Percent	
  
Packet	
  Spacing	
  Invariant	
  w/DCTCP	
  
Percentage deviation from expected
0
1
10
100
Percent
28	
  
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	
  
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]	
  
Reproducing	
  
Research	
  
30	
  
31	
  
Stanford	
  CS244	
  Spring	
  ’12:	
  
→	
  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	
  
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	
  
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	
  
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	
  
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	
  
Reproduced	
  Research	
  Examples	
  
reproducingnetworkresearch.wordpress.com	
  
(or	
  Google	
  “reproducing	
  network	
  research”)	
  
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	
  
QuesKons?	
  
•  Check	
  out	
  Bob’s	
  Cluster	
  EdiKon	
  demo	
  
Nikhil	
  
Handigol	
  
Brandon	
  
Heller	
  
Vimal	
  
Jeyakumar	
  
Bob	
  	
  
Lantz	
  
[Team	
  Mininet]	
  

More Related Content

What's hot

Control Your Network ASICs, What Benefits switchdev Can Bring Us
Control Your Network ASICs, What Benefits switchdev Can Bring UsControl Your Network ASICs, What Benefits switchdev Can Bring Us
Control Your Network ASICs, What Benefits switchdev Can Bring UsHungWei Chiu
 
DevOps Guide to Container Networking
DevOps Guide to Container NetworkingDevOps Guide to Container Networking
DevOps Guide to Container NetworkingDirk Wallerstorfer
 
Kubernetes networking in AWS
Kubernetes networking in AWSKubernetes networking in AWS
Kubernetes networking in AWSZvika Gazit
 
DCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep diveDCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep diveMadhu Venugopal
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101LorisPack Project
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes NetworkingCJ Cullen
 
Twisted: a quick introduction
Twisted: a quick introductionTwisted: a quick introduction
Twisted: a quick introductionRobert Coup
 
Docker network Present in VietNam DockerDay 2015
Docker network Present in VietNam DockerDay 2015Docker network Present in VietNam DockerDay 2015
Docker network Present in VietNam DockerDay 2015Van Phuc
 
Understanding Open vSwitch
Understanding Open vSwitch Understanding Open vSwitch
Understanding Open vSwitch YongKi Kim
 
Docker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know nowDocker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know nowPLUMgrid
 
Application-Based Routing
Application-Based RoutingApplication-Based Routing
Application-Based RoutingHungWei Chiu
 
Chris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingChris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingCohesive Networks
 
iptables and Kubernetes
iptables and Kubernetesiptables and Kubernetes
iptables and KubernetesHungWei Chiu
 
Mininet introduction
Mininet introductionMininet introduction
Mininet introductionVipin Gupta
 
Head First to Container&Kubernetes
Head First to Container&KubernetesHead First to Container&Kubernetes
Head First to Container&KubernetesHungWei Chiu
 
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
Container Orchestration Integration: OpenStack Kuryr & Apache MesosContainer Orchestration Integration: OpenStack Kuryr & Apache Mesos
Container Orchestration Integration: OpenStack Kuryr & Apache MesosMidoNet
 
Docker 1.12 networking deep dive
Docker 1.12 networking deep diveDocker 1.12 networking deep dive
Docker 1.12 networking deep diveMadhu Venugopal
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101HungWei Chiu
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Novaclayton_oneill
 

What's hot (20)

Control Your Network ASICs, What Benefits switchdev Can Bring Us
Control Your Network ASICs, What Benefits switchdev Can Bring UsControl Your Network ASICs, What Benefits switchdev Can Bring Us
Control Your Network ASICs, What Benefits switchdev Can Bring Us
 
DevOps Guide to Container Networking
DevOps Guide to Container NetworkingDevOps Guide to Container Networking
DevOps Guide to Container Networking
 
Kubernetes networking in AWS
Kubernetes networking in AWSKubernetes networking in AWS
Kubernetes networking in AWS
 
DCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep diveDCUS17 : Docker networking deep dive
DCUS17 : Docker networking deep dive
 
Docker networking Tutorial 101
Docker networking Tutorial 101Docker networking Tutorial 101
Docker networking Tutorial 101
 
Kubernetes Networking
Kubernetes NetworkingKubernetes Networking
Kubernetes Networking
 
Twisted: a quick introduction
Twisted: a quick introductionTwisted: a quick introduction
Twisted: a quick introduction
 
Docker network Present in VietNam DockerDay 2015
Docker network Present in VietNam DockerDay 2015Docker network Present in VietNam DockerDay 2015
Docker network Present in VietNam DockerDay 2015
 
Understanding Open vSwitch
Understanding Open vSwitch Understanding Open vSwitch
Understanding Open vSwitch
 
Docker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know nowDocker Networking in OpenStack: What you need to know now
Docker Networking in OpenStack: What you need to know now
 
Application-Based Routing
Application-Based RoutingApplication-Based Routing
Application-Based Routing
 
Chris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networkingChris Swan at Container.Camp: Docker networking
Chris Swan at Container.Camp: Docker networking
 
iptables and Kubernetes
iptables and Kubernetesiptables and Kubernetes
iptables and Kubernetes
 
Mininet introduction
Mininet introductionMininet introduction
Mininet introduction
 
Head First to Container&Kubernetes
Head First to Container&KubernetesHead First to Container&Kubernetes
Head First to Container&Kubernetes
 
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
Container Orchestration Integration: OpenStack Kuryr & Apache MesosContainer Orchestration Integration: OpenStack Kuryr & Apache Mesos
Container Orchestration Integration: OpenStack Kuryr & Apache Mesos
 
Docker 1.12 networking deep dive
Docker 1.12 networking deep diveDocker 1.12 networking deep dive
Docker 1.12 networking deep dive
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101
 
Docker networking
Docker networkingDocker networking
Docker networking
 
Dockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and NovaDockerizing the Hard Services: Neutron and Nova
Dockerizing the Hard Services: Neutron and Nova
 

Viewers also liked

Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)呈 李
 
Mininet CE
Mininet CEMininet CE
Mininet CEARCCN
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN FrameworkAPNIC
 
Lab 5: Interconnecting a Datacenter using Mininet
Lab 5: Interconnecting a Datacenter using MininetLab 5: Interconnecting a Datacenter using Mininet
Lab 5: Interconnecting a Datacenter using MininetZubair Nabi
 
Outbound Links (Public)
Outbound Links (Public)Outbound Links (Public)
Outbound Links (Public)Sean Si
 
Ryu Learning Guide
Ryu Learning GuideRyu Learning Guide
Ryu Learning Guide呈 李
 

Viewers also liked (10)

Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)Mininet Learning Guide(Mininet 学习指南)
Mininet Learning Guide(Mininet 学习指南)
 
Mininet CE
Mininet CEMininet CE
Mininet CE
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN Framework
 
How to use miniedit
How to use minieditHow to use miniedit
How to use miniedit
 
Ryu sdn framework
Ryu sdn framework Ryu sdn framework
Ryu sdn framework
 
ON.LAB Mininet
ON.LAB MininetON.LAB Mininet
ON.LAB Mininet
 
Lab 5: Interconnecting a Datacenter using Mininet
Lab 5: Interconnecting a Datacenter using MininetLab 5: Interconnecting a Datacenter using Mininet
Lab 5: Interconnecting a Datacenter using Mininet
 
Outbound Links (Public)
Outbound Links (Public)Outbound Links (Public)
Outbound Links (Public)
 
Ryu Learning Guide
Ryu Learning GuideRyu Learning Guide
Ryu Learning Guide
 
ONOS
ONOSONOS
ONOS
 

Similar to Mininet: Moving Forward

Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
Strata Singapore: GearpumpReal time DAG-Processing with Akka at ScaleStrata Singapore: GearpumpReal time DAG-Processing with Akka at Scale
Strata Singapore: Gearpump Real time DAG-Processing with Akka at ScaleSean Zhong
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large ScaleVerverica
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceEvan McGee
 
Advanced off heap ipc
Advanced off heap ipcAdvanced off heap ipc
Advanced off heap ipcPeter Lawrey
 
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OpenvSwitch
 
FPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchFPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchYutaka Yasuda
 
Apache Flink(tm) - A Next-Generation Stream Processor
Apache Flink(tm) - A Next-Generation Stream ProcessorApache Flink(tm) - A Next-Generation Stream Processor
Apache Flink(tm) - A Next-Generation Stream ProcessorAljoscha Krettek
 
PyConUK 2018 - Journey from HTTP to gRPC
PyConUK 2018 - Journey from HTTP to gRPCPyConUK 2018 - Journey from HTTP to gRPC
PyConUK 2018 - Journey from HTTP to gRPCTatiana Al-Chueyr
 
Flink Forward Berlin 2018: Steven Wu - "Failure is not fatal: what is your re...
Flink Forward Berlin 2018: Steven Wu - "Failure is not fatal: what is your re...Flink Forward Berlin 2018: Steven Wu - "Failure is not fatal: what is your re...
Flink Forward Berlin 2018: Steven Wu - "Failure is not fatal: what is your re...Flink Forward
 
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 InstanceExtreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 InstanceScyllaDB
 
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...Paul Brebner
 
Linux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownLinux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownScyllaDB
 
QCON 2015: Gearpump, Realtime Streaming on Akka
QCON 2015: Gearpump, Realtime Streaming on AkkaQCON 2015: Gearpump, Realtime Streaming on Akka
QCON 2015: Gearpump, Realtime Streaming on AkkaSean Zhong
 
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Cloud Native Day Tel Aviv
 
Cloud Performance Benchmarking
Cloud Performance BenchmarkingCloud Performance Benchmarking
Cloud Performance BenchmarkingSantanu Dey
 
Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey J On The Beach
 
Finding New Sub-Atomic Particles on the AWS Cloud (BDT402) | AWS re:Invent 2013
Finding New Sub-Atomic Particles on the AWS Cloud (BDT402) | AWS re:Invent 2013Finding New Sub-Atomic Particles on the AWS Cloud (BDT402) | AWS re:Invent 2013
Finding New Sub-Atomic Particles on the AWS Cloud (BDT402) | AWS re:Invent 2013Amazon Web Services
 
Intelligent Placement of Datacenter for Internet Services
Intelligent Placement of Datacenter for Internet Services Intelligent Placement of Datacenter for Internet Services
Intelligent Placement of Datacenter for Internet Services Arinto Murdopo
 
Flink Forward SF 2017: Stephan Ewen - Experiences running Flink at Very Large...
Flink Forward SF 2017: Stephan Ewen - Experiences running Flink at Very Large...Flink Forward SF 2017: Stephan Ewen - Experiences running Flink at Very Large...
Flink Forward SF 2017: Stephan Ewen - Experiences running Flink at Very Large...Flink Forward
 

Similar to Mininet: Moving Forward (20)

Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
Strata Singapore: GearpumpReal time DAG-Processing with Akka at ScaleStrata Singapore: GearpumpReal time DAG-Processing with Akka at Scale
Strata Singapore: Gearpump Real time DAG-Processing with Akka at Scale
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Stephan Ewen -  Experiences running Flink at Very Large ScaleStephan Ewen -  Experiences running Flink at Very Large Scale
Stephan Ewen - Experiences running Flink at Very Large Scale
 
FreeSWITCH as a Microservice
FreeSWITCH as a MicroserviceFreeSWITCH as a Microservice
FreeSWITCH as a Microservice
 
Advanced off heap ipc
Advanced off heap ipcAdvanced off heap ipc
Advanced off heap ipc
 
Smallsat 2021
Smallsat 2021Smallsat 2021
Smallsat 2021
 
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecasesLF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
LF_OVS_17_OVS/OVS-DPDK connection tracking for Mobile usecases
 
FPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow SwitchFPGA based 10G Performance Tester for HW OpenFlow Switch
FPGA based 10G Performance Tester for HW OpenFlow Switch
 
Apache Flink(tm) - A Next-Generation Stream Processor
Apache Flink(tm) - A Next-Generation Stream ProcessorApache Flink(tm) - A Next-Generation Stream Processor
Apache Flink(tm) - A Next-Generation Stream Processor
 
PyConUK 2018 - Journey from HTTP to gRPC
PyConUK 2018 - Journey from HTTP to gRPCPyConUK 2018 - Journey from HTTP to gRPC
PyConUK 2018 - Journey from HTTP to gRPC
 
Flink Forward Berlin 2018: Steven Wu - "Failure is not fatal: what is your re...
Flink Forward Berlin 2018: Steven Wu - "Failure is not fatal: what is your re...Flink Forward Berlin 2018: Steven Wu - "Failure is not fatal: what is your re...
Flink Forward Berlin 2018: Steven Wu - "Failure is not fatal: what is your re...
 
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 InstanceExtreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance
Extreme HTTP Performance Tuning: 1.2M API req/s on a 4 vCPU EC2 Instance
 
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
The Impact of Hardware and Software Version Changes on Apache Kafka Performan...
 
Linux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance ShowdownLinux Kernel vs DPDK: HTTP Performance Showdown
Linux Kernel vs DPDK: HTTP Performance Showdown
 
QCON 2015: Gearpump, Realtime Streaming on Akka
QCON 2015: Gearpump, Realtime Streaming on AkkaQCON 2015: Gearpump, Realtime Streaming on Akka
QCON 2015: Gearpump, Realtime Streaming on Akka
 
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
Scaling OpenStack Networking Beyond 4000 Nodes with Dragonflow - Eshed Gal-Or...
 
Cloud Performance Benchmarking
Cloud Performance BenchmarkingCloud Performance Benchmarking
Cloud Performance Benchmarking
 
Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey Low latency in java 8 by Peter Lawrey
Low latency in java 8 by Peter Lawrey
 
Finding New Sub-Atomic Particles on the AWS Cloud (BDT402) | AWS re:Invent 2013
Finding New Sub-Atomic Particles on the AWS Cloud (BDT402) | AWS re:Invent 2013Finding New Sub-Atomic Particles on the AWS Cloud (BDT402) | AWS re:Invent 2013
Finding New Sub-Atomic Particles on the AWS Cloud (BDT402) | AWS re:Invent 2013
 
Intelligent Placement of Datacenter for Internet Services
Intelligent Placement of Datacenter for Internet Services Intelligent Placement of Datacenter for Internet Services
Intelligent Placement of Datacenter for Internet Services
 
Flink Forward SF 2017: Stephan Ewen - Experiences running Flink at Very Large...
Flink Forward SF 2017: Stephan Ewen - Experiences running Flink at Very Large...Flink Forward SF 2017: Stephan Ewen - Experiences running Flink at Very Large...
Flink Forward SF 2017: Stephan Ewen - Experiences running Flink at Very Large...
 

Recently uploaded

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 

Recently uploaded (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 

Mininet: Moving Forward

  • 1. Mininet:     Moving  Forward     Nikhil   Handigol   Brandon   Heller   Vimal   Jeyakumar   Bob     Lantz   [Team  Mininet]   ONRC  Annual  Day  2013  
  • 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  
  • 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 B Link Events A: send request B: init xmit 1 xmit 2 B: send reponse A B B HiFiA x1 x2B A B Packet xmit 2 // A: Client while(1) { send_request(socket); wait_for_reply(socket); } // B: Server init(); while(1) { wait_for_request(socket); send_response(socket); } 1 Real Setup B: wait idle B B: send reponse // B: Server init(); while(1) { wait_for_request(socket); send_response(socket); } Real S   Sources  of  Emulator  Infidelity   Event  Overlap  
  • 14. 15   real  Kme   …   …   …  A B Link Events A: send request B: init xmit 1 xmit 2 B: send reponse A B B HiFiA x1 x2B A B Packet xmit 2 // A: Client while(1) { send_request(socket); wait_for_reply(socket); } // B: Server init(); while(1) { wait_for_request(socket); send_response(socket); } 1 Real Setup B: wait idle B B: send reponse // B: Server init(); while(1) { wait_for_request(socket); send_response(socket); } Real S   Sources  of  Emulator  Infidelity   So8ware  Forwarding   variable  delays  
  • 15. How  can  we  trust  emulator  results?   real  Kme   …   …   …  A B Link Events A: send request B: init xmit 1 xmit 2 B: send reponse A B B HiFiA x1 x2B A B Packet xmit 2 // A: Client while(1) { send_request(socket); wait_for_reply(socket); } // B: Server init(); while(1) { wait_for_request(socket); send_response(socket); } 1 Real Setup B: wait idle B B: send reponse // B: Server init(); while(1) { wait_for_request(socket); send_response(socket); } Real S   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  
  • 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 120 Seconds 0 5 10 15 20 25 30 35 40 Packets q-dctcp-plot.txt Hardware  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 expected 0 1 10 100 Percent 26   1  pkt   error   10   20   40   numbers  are  in  Mb/s   80   CCDF   Percent   Packet  Spacing  Invariant  w/DCTCP  
  • 26. Percentage deviation from expected 0 1 10 100 Percent 27   10   20   40   numbers  are  in  Mb/s   80   1  pkt   error   CCDF   Percent   Packet  Spacing  Invariant  w/DCTCP  
  • 27. Percentage deviation from expected 0 1 10 100 Percent 28   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]  
  • 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]