Reproducible Network Research With High-Fidelity Emula<on - - PowerPoint PPT Presentation

reproducible network research with high fidelity emula on
SMART_READER_LITE
LIVE PREVIEW

Reproducible Network Research With High-Fidelity Emula<on - - PowerPoint PPT Presentation

Reproducible Network Research With High-Fidelity Emula<on Nikhil Handigol + , Brandon Heller + , Bob Lantz * , Vimal Jeyakumar + , Nick McKeown + + Stanford


slide-1
SLIDE 1

Reproducible ¡Network ¡Research ¡ With ¡High-­‑Fidelity ¡Emula<on ¡

Nikhil ¡Handigol+, ¡Brandon ¡Heller+, ¡Bob ¡Lantz*, ¡ Vimal ¡Jeyakumar+, ¡Nick ¡McKeown+ ¡

+Stanford ¡University, ¡Palo ¡Alto, ¡USA ¡ *Open ¡Networking ¡Laboratory, ¡Palo ¡Alto, ¡USA ¡

2 ¡
slide-2
SLIDE 2

The ¡scienKfic ¡method ¡says: ¡ experiments ¡are ¡only ¡valid ¡if ¡they ¡can ¡be ¡

  • reproduced. ¡

The ¡norm ¡in ¡physics, ¡medicine, ¡etc.. ¡ But ¡what ¡about ¡the ¡computaKonal ¡sciences? ¡

3 ¡
slide-3
SLIDE 3

¡D.L. ¡Donoho, ¡1995: ¡ “An ¡ar-cle ¡about ¡computa-onal ¡science ¡is ¡not ¡the ¡ scholarship ¡itself, ¡it ¡is ¡merely ¡adver-sing ¡of ¡the ¡

  • scholarship. ¡The ¡actual ¡scholarship ¡is ¡the ¡complete ¡

so<ware ¡development ¡environment ¡and ¡the ¡ complete ¡set ¡of ¡instruc-ons ¡which ¡generated ¡the ¡ figures.” ¡ This ¡is ¡what ¡network ¡research ¡should ¡be. ¡ It ¡should ¡be ¡reproducible. ¡ Papers ¡should ¡be ¡runnable. ¡

4 ¡
slide-4
SLIDE 4 ( a ) B e n c h m a r k t e s t s f r
  • m
H e d e r a p a p e r ( P a r t 1 ) . ( b ) B e n c h m a r k t e s t s f r
  • m
H e d e r a p a p e r ( P a r t 2 ) . F i g u r e 8 : E f f e c t i v e t h r
  • u
g h p u t w i t h E C M P r
  • u
t i n g
  • n
a k = 4 F a t T r e e v s . a n e q u i v a l e n t n
  • n
  • b
l
  • c
k i n g s w i t c h . M i n i n e t
  • H
i F i v s . h a r d w a r e t e s t b e d [ 1 3 ] . v a l u e s ( 1 , 2 , 4 a n d 8 ) , fl
  • w
s t r a v e r s e m
  • r
e l a y e r s , d e g r a d i n g t h r
  • u
g h p u t . T h e M i n i n e t
  • H
i F i r e s u l t s c l
  • s
e l y m a t c h t h
  • s
e f r
  • m
t h e h a r d w a r e t e s t b e d ; i n 1 6
  • f
t h e 2 t r a f fi c p a t t e r n s t h e y a r e n e a r l y i d e n t i c a l . I n t h e r e m a i n i n g f
  • u
r t r a f fi c p a t t e r n s ( r a n d x 2 , 3 , 4 a n d s t r i d e 8 ) t h e r e s u l t s i n t h e p a p e r h a v e l
  • w
e r t h r
  • u
g h p u t b e c a u s e
  • a
s t h e a u t h
  • r
s e x p l a i n
  • t
h e c
  • m
  • m
e r c i a l s w i t c h i n t h e i r t e s t b e d i s b u i l t f r
  • m
t w
  • s
w i t c h i n g c h i p s , s
  • t
h e t
  • t
a l b u f f e r i n g d e p e n d s
  • n
t h e t r a f fi c p a t t e r n . T
  • v
a l i d a t e t h e s e r e s u l t s , w e w
  • u
l d n e e d t
  • k
n
  • w
t h e m a p
  • p
i n g
  • f
h
  • s
t s t
  • s
w i t c h p
  • r
t s , w h i c h i s u n a v a i l a b l e . T h e m a i n t a k e a w a y f r
  • m
t h i s e x p e r i m e n t i s t h a t M i n i n e t
  • H
i F i r e p r
  • d
u c e s t h e p e r f
  • r
m a n c e r e s u l t s f
  • r
t h i s s e t
  • f
d a t a
  • c
e n t e r n e t w
  • r
k i n g e x p e r i m e n t s . I t a p p e a r s p
  • s
s i b l e t
  • c
  • l
l e c t m e a n i n g f u l r e s u l t s i n a d v a n c e
  • f
(
  • r
p
  • s
s i b l y w i t h
  • u
t ) s e t
  • t
i n g u p a h a r d w a r e t e s t b e d . I f a t e s t b e d i s b u i l t , t h e c
  • d
e a n d t e s t s c r i p t s u s e d i n M i n i n e t
  • H
i F i c a n b e r e u s e d w i t h
  • u
t c h a n g e . V e r i f y i n g fi d e l i t y : U n l i k e D C T C P , t h e H e d e r a e x p e r i
  • m
e n t d e p e n d s
  • n
c
  • a
r s e
  • g
r a i n e d m e t r i c s s u c h a s a g g r e g a t e t h r
  • u
g h p u t
  • v
e r a p e r i
  • d
  • f
t i m e . T
  • e
n s u r e t h a t n
  • v
i r t u a l h
  • s
t s t a r v e d a n d t h a t t h e s y s t e m h a d e n
  • u
g h c a p a c i t y t
  • s
u s
  • t
a i n t h e n e t w
  • r
k d e m a n d , w e m e a s u r e d i d l e t i m e d u r i n g t h e e x p e r i m e n t ( a s d e s c r i b e d i n § 3 . 4 ) . I n a l l r u n s , t h e s y s t e m h a d a t l e a s t 3 5 % i d l e C P U t i m e e v e r y s e c
  • n
d . T h i s m e a s u r e m e n t i n d i c a t e s t h a t t h e O S w a s a b l e t
  • s
c h e d u l e a l l v i r t u a l h
  • s
t s a n d p a c k e t t r a n s m i s s i
  • n
s w i t h
  • u
t f a l l i n g b e h i n d a n i d e a l e x
  • e
c u t i
  • n
s c h e d u l e
  • n
h a r d w a r e . L e s s
  • n
s l e a r n e d u s i n g M i n i n e t
  • H
i F i : I n t h e H e d e r a t e s t b e d , m a c h i n e s w e r e e q u i p p e d w i t h 1 G b / s n e t w
  • r
k i n
  • t
e r f a c e s . W e w e r e u n a b l e t
  • u
s e M i n i n e t
  • H
i F i t
  • r
e p l i c a t e H e d e r a ’ s r e s u l t s e v e n w i t h 1 M b / s n e t w
  • r
k l i n k s , a s t h e v i r t u a l h
  • s
t s d i d n
  • t
h a v e e n
  • u
g h C P U c a p a c i t y t
  • s
a t u r a t e t h e i r n e t w
  • r
k l i n k s . W h i l e H e d e r a ’ s r e s u l t s d
  • n
  • t
q u a l i t a
  • t
i v e l y c h a n g e w h e n l i n k s a r e s c a l e d d
  • w
n , i t i s a c h a l l e n g e t
  • r
e p r
  • d
u c e r e s u l t s t h a t d e p e n d
  • n
t h e a b s
  • l
u t e v a l u e
  • f
l i n k / C P U b a n d w i d t h . 5 . 3 S i z i n g R
  • u
t e r B u f f e r s I n
  • u
r t h i r d e x a m p l e w e r e p r
  • d
u c e r e s u l t s t h a t w e r e m e a
  • s
u r e d
  • n
a r e a l h a r d w a r e t e s t b e d t
  • d
e t e r m i n e t h e n u m b e r
  • f
p a c k e t b u f f e r s n e e d e d b y a r
  • u
t e r . T h e
  • r
i g i n a l r e s e a r c h p a
  • p
e r
  • n
b u f f e r s i z i n g w a s p r e s e n t e d a t S i g c
  • m
m 2 4 [ 3 5 ] . A l l I n t e r n e t r
  • u
t e r s c
  • n
t a i n b u f f e r s t
  • h
  • l
d p a c k e t s d u r i n g t i m e s
  • f
c
  • n
g e s t i
  • n
. T h e s i z e
  • f
t h e b u f f e r s i s d i c t a t e d b y t h e d y
  • n
a m i c s
  • f
T C P ’ s c
  • n
g e s t i
  • n
c
  • n
t r
  • l
a l g
  • r
i t h m : t h e g
  • a
l i s t
  • m
a k e s u r e t h a t w h e n a l i n k i s c
  • n
g e s t e d , i t i s b u s y 1 %
  • f
t h e t i m e , w h i c h i s e q u i v a l e n t t
  • m
a k i n g s u r e t h e b u f f e r n e v e r g
  • e
s e m p t y . P r i
  • r
t
  • t
h e p a p e r , t h e c
  • m
m
  • n
a s s u m p t i
  • n
w a s t h a t e a c h l i n k n e e d s a b u f f e r
  • f
s i z e B = R T T × C , w h e r e R T T i s t h e a v e r a g e r
  • u
n d
  • t
r i p t i m e
  • f
a fl
  • w
p a s s i n g a c r
  • s
s t h e l i n k a n d C i s t h e d a t a
  • r
a t e
  • f
t h e b
  • t
t l e n e c k l i n k . T h e a u
  • t
h
  • r
s s h
  • w
e d t h a t a l i n k w i t h n fl
  • w
s r e q u i r e s n
  • m
  • r
e t h a n B = RTT×C √ n . T h e
  • r
i g i n a l p a p e r i n c l u d e d r e s u l t s f r
  • m
s i m
  • u
l a t i
  • n
a n d m e a s u r e m e n t s f r
  • m
a r e a l r
  • u
t e r , b u t n
  • t
f
  • r
a r e a l n e t w
  • r
k . L a t e r , a t S i g c
  • m
m 2 8 , N e d a B e h e s h t i d e m
  • n
  • s
t r a t e d a h a r d w a r e t h e s e r e s u l t s
  • n
a h a r d w a r e t e s t b e d r u n
  • n
i n g
  • n
t h e I n t e r n e t 2 b a c k b
  • n
e 7 W e c
  • n
t a c t e d t h e r e s e a r c h e r s a n d
  • b
t a i n e d r e s u l t s m e a
  • s
u r e d
  • n
t h e i r h a r d w a r e t e s t b e d , t h e n c
  • m
p a r e d t h e m w i t h r e s u l t s f r
  • m
M i n i n e t
  • H
i F i ; t h e M i n i n e t
  • H
i F i t
  • p
  • l
  • g
y i s s h
  • w
n i n F i g u r e 9 ( a ) . I n t h e h a r d w a r e e x p e r i m e n t s , a n u m
  • b
e r
  • f
T C P fl
  • w
s g
  • f
r
  • m
a s e r v e r a t S t a n f
  • r
d U n i v e r s i t y ( C a l i f
  • r
n i a ) t
  • a
t a s e r v e r a t R i c e U n i v e r s i t y ( H
  • u
s t
  • n
, T e x a s ) v i a a N e t F P G A I P v 4 r
  • u
t e r i n t h e I n t e r n e t 2 P O P i n L
  • s
A n g e
  • l
e s . T h e l i n k f r
  • m
L A t
  • H
  • u
s t
  • n
i s c
  • n
s t r a i n e d t
  • 6
2 . 5 M b / s 7 V i d e
  • f
d e m
  • n
s t r a t i
  • n
a t h t t p : / / w w w . y
  • u
t u b e . c
  • m
/ w a t c h ? v = y k g a 6 N _ x 2 7 w .

Click ¡on ¡a ¡figure ¡

5 ¡
slide-5
SLIDE 5

Brings ¡up ¡a ¡webpage ¡of ¡instrucKons ¡

6 ¡
slide-6
SLIDE 6

Scroll ¡to ¡the ¡boZom… ¡

7 ¡
slide-7
SLIDE 7

Launch ¡an ¡EC2 ¡instance ¡

8 ¡
slide-8
SLIDE 8

Run ¡a ¡command ¡in ¡the ¡terminal ¡to ¡ generate ¡results ¡

9 ¡

> ¡~/mininet-­‑tests/dctcp$ ¡./run-­‑dctcp.sh ¡ ¡

slide-9
SLIDE 9

8 ¡minutes ¡& ¡8 ¡cents ¡aaer ¡the ¡click: ¡ ¡ a ¡reproduced ¡result ¡

10 ¡

> ¡~/mininet-­‑tests/dctcp$ ¡./run-­‑dctcp.sh ¡ ¡ > ¡~/mininet-­‑tests/dctcp/results$ ¡xpdf ¡dctcp.pdf ¡

slide-10
SLIDE 10

easier ¡to ¡build ¡upon ¡ the ¡work ¡of ¡others ¡ easier ¡to ¡transfer ¡ new ¡ideas ¡to ¡industry ¡

If ¡papers ¡were ¡runnable ¡(easily ¡reproducible): ¡

easier ¡to ¡understand ¡ and ¡evaluate ¡papers ¡

11 ¡
slide-11
SLIDE 11

Why ¡aren’t ¡all ¡ networking ¡research ¡ papers ¡like ¡this? ¡

12 ¡
slide-12
SLIDE 12 13 ¡

Much ¡of ¡CS ¡

ML, ¡PL, ¡Security, ¡… ¡

Code ¡ Data ¡ Scripts ¡

Must ¡implement ¡mul<ple ¡ ¡ servers, ¡network ¡elements, ¡links ¡– ¡ ¡ all ¡running ¡in ¡parallel, ¡ ¡ all ¡with ¡accurate ¡<ming ¡

Network ¡Systems ¡ ¡ ? ¡

CongesKon ¡control, ¡RouKng, ¡Topology, ¡… ¡

Use ¡any ¡commodity ¡PC ¡ (or ¡VM.) ¡

slide-13
SLIDE 13

Discrete-­‑Event ¡SimulaKon ¡

14 ¡

virtual ¡Kme ¡ link ¡

+

models ¡ queue ¡ switch ¡ protocol ¡ app ¡

  • n ¡

ns-­‑2, ¡ns-­‑3, ¡OPNET, ¡… ¡

slide-14
SLIDE 14

But… ¡we ¡don’t ¡trust ¡simulaKon. ¡

Not ¡believable ¡unless ¡validated: ¡

Modeled ¡links ¡== ¡real ¡links ¡ Modeled ¡switches ¡== ¡real ¡switches ¡ Modeled ¡protocols ¡== ¡real ¡protocols ¡ Modeled ¡applicaKons ¡== ¡real ¡applicaKons ¡

 ¡Realism ¡concerns. ¡

15 ¡
slide-15
SLIDE 15 16 ¡
slide-16
SLIDE 16

Testbed ¡results ¡can ¡be ¡hard ¡to ¡ (re)produce. ¡

Flexibility ¡

  • Topology ¡restricKons ¡
  • May ¡not ¡be ¡able ¡to ¡change ¡firmware ¡

Resource ¡availability ¡

  • before ¡a ¡deadline? ¡
  • one ¡year ¡later? ¡
17 ¡
slide-17
SLIDE 17

Problem ¡

Network ¡research ¡tends ¡not ¡to ¡be ¡both ¡ easily ¡reproducible ¡and ¡realis-c. ¡

18 ¡

Solu<on ¡

Build ¡an ¡emulator ¡whose ¡results ¡you ¡ can ¡trust ¡as ¡well ¡as ¡verify. ¡

slide-18
SLIDE 18

What ¡is ¡a ¡network ¡emulator? ¡

19 ¡

Real ¡applicaKon, ¡network ¡stack ¡code ¡ Emulated ¡network ¡core ¡

¡Matching ¡the ¡behavior ¡of ¡hardware: ¡ High ¡Fidelity ¡

slide-19
SLIDE 19 20 ¡
  • verlapping ¡events ¡

real ¡Kme ¡

… ¡ … ¡ … ¡

A

Pa

B

S ¡

Sources ¡of ¡Emulator ¡Infidelity ¡

Event ¡Overlap ¡

slide-20
SLIDE 20 21 ¡

real ¡Kme ¡

… ¡ … ¡ … ¡

A

Pa

B

S ¡

Sources ¡of ¡Emulator ¡Infidelity ¡

SoHware ¡Forwarding ¡

variable ¡delays ¡

slide-21
SLIDE 21 22 ¡

Our ¡Approach ¡

Resource-­‑IsolaKng ¡ Emulator ¡(Mininet-­‑HiFi) ¡

HIGH Fidelity METER MEDIUM LOW

Fidelity ¡ ¡ Monitor ¡

+ ¡

500 ¡Mhz ¡ 20 ¡pkt ¡bufs/ port ¡ 10 ¡Mb/s, ¡ 1ms ¡

slide-22
SLIDE 22

Talk ¡Outline ¡

  • MoKvaKon ¡
  • 1. ¡Emulator ¡Fidelity ¡
  • 2. ¡Mininet-­‑HiFi ¡Architecture ¡
  • 3. ¡Reproducing ¡Research ¡
  • Related ¡Work ¡
  • Progress ¡Report ¡
23 ¡
slide-23
SLIDE 23
  • 1. ¡

Emulator ¡Fidelity ¡

24 ¡
slide-24
SLIDE 24

A ¡Workflow ¡for ¡High ¡Fidelity ¡EmulaKon ¡

25 ¡

Create ¡ experiment ¡ Run ¡the ¡ experiment ¡

  • n ¡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? ¡

slide-25
SLIDE 25

What ¡to ¡log? ¡

26 ¡

Consider ¡logging ¡uKlizaKon ¡of ¡the ¡emulator ¡CPU. ¡ 100% ¡is ¡bad. ¡ But ¡is ¡X% ¡(say, ¡80%) ¡necessarily ¡good? ¡

Can’t ¡get ¡back ¡“lost ¡Kme” ¡in ¡an ¡emulator. ¡  ¡CPU ¡uKlizaKon ¡is ¡insufficient. ¡ ¡ ¡ ¡Need ¡to ¡consider ¡fine-­‑grained ¡event ¡<mings. ¡

80% ¡ 20% ¡

… ¡

busy ¡

slide-26
SLIDE 26 27 ¡

Single-­‑Packet ¡Invariants ¡

queue ¡ link ¡ switch ¡ queue ¡

queuing ¡ ¡ propagaKon ¡ forwarding ¡ transmission ¡

log ¡enqueue, ¡dequeue ¡Kmestamps ¡

slide-27
SLIDE 27 28 ¡

Packet ¡Gap ¡Invariants ¡

queue ¡ link ¡ switch ¡ queue ¡

packet ¡spacing ¡ (when ¡queue ¡occupied) ¡

Rmeasured ¡≤ ¡Rconfigured ¡? ¡

¡ ¡ ¡ ¡link ¡capacity ¡

Explored ¡in ¡the ¡paper ¡

slide-28
SLIDE 28
  • Clock ¡dria ¡(== ¡one ¡packet) ¡
  • NIC ¡to ¡memory ¡processing ¡(~= ¡25 ¡packets) ¡
  • Scheduler ¡non-­‑determinism ¡(~= ¡milliseconds) ¡
29 ¡

High ¡Fidelity: ¡match ¡hardware ¡variability. ¡

How ¡close? ¡

slide-29
SLIDE 29

Example ¡Workflow ¡for ¡One ¡Invariant ¡

30 ¡

Create ¡ experiment ¡ Run ¡the ¡ experiment ¡

  • n ¡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 ¡

  • ne ¡packet ¡

Kme? ¡ 1: ¡Log ¡ Dequeue ¡ Events ¡ If ¡this ¡workflow ¡is ¡valid, ¡“pass” ¡ ¡same ¡result ¡as ¡

  • hardware. ¡

DCTCP ¡

slide-30
SLIDE 30

Data ¡Center ¡TCP ¡(DCTCP) ¡

[Sigcomm10, ¡Alizadeh ¡et ¡al.] ¡

Kme ¡ packets ¡in ¡ queue ¡

TCP ¡ DCTCP ¡

31 ¡

marking ¡ threshold ¡ Queue ¡occupied ¡ 100% ¡throughput ¡ Queue ¡occupied ¡ 100% ¡throughput ¡ Packet ¡spacing ¡we ¡should ¡see: ¡

slide-31
SLIDE 31

30 60 90 120 Seconds 5 10 15 20 25 30 35 40 Packets

q-dctcp-plot.txt

Hardware ¡Results, ¡100 ¡Mb/s ¡

32 ¡

packets ¡ in ¡queue ¡

100% ¡throughput ¡ 6 ¡packets ¡variaKon ¡ queue ¡occupied ¡

slide-32
SLIDE 32

Emulator ¡Results ¡

33 ¡

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 ¡

slide-33
SLIDE 33

Packet ¡Spacing ¡Invariant ¡w/DCTCP ¡

34 ¡

1 ¡pkt ¡

  • med. ¡

low ¡ high ¡

CCDF ¡ Percent ¡ (log) ¡

25 ¡pkts ¡

Error: ¡ (log) ¡

10% ¡of ¡the ¡Kme, ¡ error ¡exceeds ¡

  • ne ¡packet ¡

x ¡

slide-34
SLIDE 34

Percentage deviation from expected 1 10 100 Percent

35 ¡

1 ¡pkt ¡ error ¡

10 ¡ 20 ¡ 40 ¡

numbers ¡are ¡in ¡Mb/s ¡

80 ¡

CCDF ¡ Percent ¡

Packet ¡Spacing ¡Invariant ¡w/DCTCP ¡

slide-35
SLIDE 35

Percentage deviation from expected 1 10 100 Percent

36 ¡

10 ¡ 20 ¡ 40 ¡

numbers ¡are ¡in ¡Mb/s ¡

80 ¡

1 ¡pkt ¡ error ¡

CCDF ¡ Percent ¡

Packet ¡Spacing ¡Invariant ¡w/DCTCP ¡

slide-36
SLIDE 36

Percentage deviation from expected 1 10 100 Percent

37 ¡

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. ¡

slide-37
SLIDE 37

2: ¡ Mininet-­‑HiFi ¡ Architecture ¡

38 ¡
slide-38
SLIDE 38 User space Kernel space vswitch vswitch vswitch

vhost (container) vhost (container) vhost (container)

private network namespace 10.0.0.1 10.0.0.2 10.0.0.3 process 1 process 2 process 3 process 4

Linux Server

private network namespace private network namespace virtual ethernet pairs root network namespace 39 ¡

Emulator ¡

Containers ¡w/ Network ¡ Namespaces ¡

Original ¡Mininet ¡

slide-39
SLIDE 39 User space Kernel space vswitch vswitch vswitch

vhost (container) vhost (container) vhost (container)

private network namespace 10.0.0.1 10.0.0.2 10.0.0.3 process 1 process 2 process 3 process 4 Isolated links (e.g, 100mbps, 2ms)

Linux Server

private network namespace private network namespace virtual ethernet pairs root network namespace 40 ¡

Emulator ¡+ ¡Performance ¡IsolaKon ¡

Linux ¡ packet ¡ schedulers ¡

HTB, ¡HFSC ¡ Emulator ¡+ ¡Performance ¡IsolaKon ¡

slide-40
SLIDE 40 User space Kernel space vswitch vswitch vswitch

vhost (container) vhost (container) vhost (container)

private network namespace 10.0.0.1 10.0.0.2 10.0.0.3 process 1 process 2 process 3 process 4 Isolated links (e.g, 100mbps, 2ms) Isolated hosts (e.g., 20% CPU)

Linux Server

private network namespace private network namespace virtual ethernet pairs root network namespace 41 ¡

Linux ¡ process ¡ schedulers ¡

CFS+BWlimits, ¡ RT ¡ Emulator ¡+ ¡Performance ¡IsolaKon ¡

slide-41
SLIDE 41 User space Kernel space vswitch vswitch vswitch

vhost (container) vhost (container) vhost (container)

private network namespace 10.0.0.1 10.0.0.2 10.0.0.3 process 1 process 2 process 3 process 4

Monitoring Tools

Isolated links (e.g, 100mbps, 2ms) Isolated hosts (e.g., 20% CPU)

Linux Server

private network namespace private network namespace virtual ethernet pairs root network namespace 42 ¡

Emulator ¡+ ¡Performance ¡IsolaKon ¡+ ¡Invariant ¡Monitoring ¡

Linux ¡ Kernel ¡ Tracing ¡ ¡

enqueue, ¡ dequeue, ¡etc. ¡

slide-42
SLIDE 42

3: ¡ Reproducing ¡ Research ¡

43 ¡
slide-43
SLIDE 43

Examples ¡in ¡the ¡paper ¡

  • DCTCP ¡[Alizadeh, ¡SIGCOMM ¡2010] ¡
  • Router ¡Buffer ¡Sizing ¡[Appenzeller, ¡SIGCOMM ¡

2004] ¡

  • Hedera ¡ECMP ¡[Al-­‑Fares, ¡NSDI ¡2010] ¡

Able ¡to ¡replicate ¡key ¡results ¡from ¡3 ¡testbeds ¡… ¡ ¡ using ¡an ¡emulator. ¡

44 ¡
slide-44
SLIDE 44

How ¡do ¡you ¡know ¡it ¡ really ¡works? ¡

45 ¡

Test ¡it. ¡On ¡guinea ¡pigs ¡

  • students. ¡
slide-45
SLIDE 45 46 ¡

Stanford ¡CS244 ¡Spring ¡’12: ¡ Advanced ¡Topics ¡in ¡Networking ¡

slide-46
SLIDE 46

→ ¡Pick ¡a ¡paper. ¡ ¡ → ¡Reproduce ¡a ¡key ¡result, ¡or ¡ challenge ¡it ¡(with ¡data). ¡ → ¡You ¡have: ¡ $100 ¡EC2 ¡credit, ¡ 3 ¡weeks, ¡and ¡ must ¡use ¡Mininet-­‑HiFi. ¡

47 ¡
slide-47
SLIDE 47

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 ¡

48 ¡
slide-48
SLIDE 48

CoDel ¡ HULL ¡ MPTCP ¡ Outcast ¡ Jellyfish ¡ DCTCP ¡ Incast ¡ Flow ¡CompleKon ¡Time ¡ Hedera ¡ DCell ¡ TCP ¡IniKal ¡CongesKon ¡ Window ¡ Misbehaving ¡TCP ¡Receivers ¡ RED ¡

49 ¡

37 ¡students ¡ 18 ¡projects ¡ 16 ¡replicated ¡

slide-49
SLIDE 49

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 ¡

50 ¡
slide-50
SLIDE 50

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 ¡

51 ¡
slide-51
SLIDE 51

CoNEXT ¡‘12 ¡runnable ¡papers? ¡ 15/31 ¡seem ¡like ¡candidates: ¡ ¡ ¡

  • MPTCP ¡is ¡not ¡Pareto-­‑opKmal: ¡Performance ¡issues ¡and ¡a ¡possible ¡soluKon ¡ ¡
  • ArchitecKng ¡for ¡Edge ¡Diversity: ¡SupporKng ¡Rich ¡Services ¡over ¡an ¡Unbundled ¡Transport ¡
  • Tuning ¡ECN ¡for ¡Data ¡Center ¡Networks ¡
  • Datacast: ¡A ¡Scalable ¡and ¡Efficient ¡Reliable ¡Group ¡Data ¡Delivery ¡Service ¡for ¡Data ¡Centers ¡ ¡
  • PAST: ¡Scalable ¡Ethernet ¡for ¡Data ¡Centers ¡
  • Improving ¡Fairness, ¡Efficiency, ¡and ¡Stability ¡in ¡HTTP-­‑based ¡AdapKve ¡Video ¡Streaming ¡with ¡FESTIVE ¡
  • Towards ¡Agile ¡and ¡Smooth ¡Video ¡AdapKon ¡in ¡Dynamic ¡HTTP ¡Streaming ¡
  • ApplicaKon-­‑aware ¡Request ¡Spli•ng ¡for ¡InteracKve ¡Cloud ¡ApplicaKons ¡
  • AutomaKc ¡Test ¡Packet ¡GeneraKon ¡
  • FindAll: ¡A ¡Local ¡Search ¡Engine ¡for ¡Mobile ¡Phones ¡
  • A ¡SOFT ¡Way ¡for ¡OpenFlow ¡Switch ¡Interoperability ¡TesKng ¡
  • Defending ¡against ¡large-­‑scale ¡crawls ¡in ¡online ¡social ¡networks ¡
  • BotFinder: ¡Finding ¡Bots ¡in ¡Network ¡Traffic ¡Without ¡Deep ¡Packet ¡InspecKon ¡
  • Cachet: ¡A ¡Decentralized ¡Architecture ¡for ¡Privacy ¡Preserving ¡Social ¡Networking ¡with ¡Caching ¡ ¡
  • New ¡OpportuniKes ¡for ¡Load ¡Balancing ¡in ¡Network-­‑Wide ¡Intrusion ¡DetecKon ¡Systems ¡
52 ¡

NOT: ¡Wireless, ¡Modeling, ¡Hardware, ¡Social ¡ Networking, ¡Security ¡

slide-52
SLIDE 52

Related ¡Work ¡

53 ¡
slide-53
SLIDE 53

Related ¡Work ¡

  • vEmulab: ¡scale-­‑out ¡emulaKon ¡[ATC08] ¡
  • DieCast: ¡Kme ¡dilaKon ¡[NSDI07] ¡ ¡
  • SliceTime: ¡synchronized ¡Kme ¡slices ¡[NSDI11] ¡

All ¡are ¡complementary ¡techniques ¡that ¡ could ¡be ¡added ¡to ¡Mininet-­‑HiFi. ¡ None ¡measure ¡event ¡fidelity ¡(S1) ¡ Last ¡two ¡use ¡full-­‑system ¡virtualizaKon ¡(S2) ¡ ¡ ¡ None ¡evaluate ¡reproducibility ¡at ¡scale ¡(S3) ¡

54 ¡
slide-54
SLIDE 54

Progress ¡Report: ¡ Making ¡runnable ¡ the ¡network-­‑paper ¡

  • default. ¡
55 ¡
slide-55
SLIDE 55

Runnable ¡Paper ¡Existence ¡Proof ¡

56 ¡ ( a ) B e n c h m a r k t e s t s f r
  • m
H e d e r a p a p e r ( P a r t 1 ) . ( b ) B e n c h m a r k t e s t s f r
  • m
H e d e r a p a p e r ( P a r t 2 ) . F i g u r e 8 : E f f e c t i v e t h r
  • u
g h p u t w i t h E C M P r
  • u
t i n g
  • n
a k = 4 F a t T r e e v s . a n e q u i v a l e n t n
  • n
  • b
l
  • c
k i n g s w i t c h . M i n i n e t
  • H
i F i v s . h a r d w a r e t e s t b e d [ 1 3 ] . v a l u e s ( 1 , 2 , 4 a n d 8 ) , fl
  • w
s t r a v e r s e m
  • r
e l a y e r s , d e g r a d i n g t h r
  • u
g h p u t . T h e M i n i n e t
  • H
i F i r e s u l t s c l
  • s
e l y m a t c h t h
  • s
e f r
  • m
t h e h a r d w a r e t e s t b e d ; i n 1 6
  • f
t h e 2 t r a f fi c p a t t e r n s t h e y a r e n e a r l y i d e n t i c a l . I n t h e r e m a i n i n g f
  • u
r t r a f fi c p a t t e r n s ( r a n d x 2 , 3 , 4 a n d s t r i d e 8 ) t h e r e s u l t s i n t h e p a p e r h a v e l
  • w
e r t h r
  • u
g h p u t b e c a u s e
  • a
s t h e a u t h
  • r
s e x p l a i n
  • t
h e c
  • m
  • m
e r c i a l s w i t c h i n t h e i r t e s t b e d i s b u i l t f r
  • m
t w
  • s
w i t c h i n g c h i p s , s
  • t
h e t
  • t
a l b u f f e r i n g d e p e n d s
  • n
t h e t r a f fi c p a t t e r n . T
  • v
a l i d a t e t h e s e r e s u l t s , w e w
  • u
l d n e e d t
  • k
n
  • w
t h e m a p
  • p
i n g
  • f
h
  • s
t s t
  • s
w i t c h p
  • r
t s , w h i c h i s u n a v a i l a b l e . T h e m a i n t a k e a w a y f r
  • m
t h i s e x p e r i m e n t i s t h a t M i n i n e t
  • H
i F i r e p r
  • d
u c e s t h e p e r f
  • r
m a n c e r e s u l t s f
  • r
t h i s s e t
  • f
d a t a
  • c
e n t e r n e t w
  • r
k i n g e x p e r i m e n t s . I t a p p e a r s p
  • s
s i b l e t
  • c
  • l
l e c t m e a n i n g f u l r e s u l t s i n a d v a n c e
  • f
(
  • r
p
  • s
s i b l y w i t h
  • u
t ) s e t
  • t
i n g u p a h a r d w a r e t e s t b e d . I f a t e s t b e d i s b u i l t , t h e c
  • d
e a n d t e s t s c r i p t s u s e d i n M i n i n e t
  • H
i F i c a n b e r e u s e d w i t h
  • u
t c h a n g e . V e r i f y i n g fi d e l i t y : U n l i k e D C T C P , t h e H e d e r a e x p e r i
  • m
e n t d e p e n d s
  • n
c
  • a
r s e
  • g
r a i n e d m e t r i c s s u c h a s a g g r e g a t e t h r
  • u
g h p u t
  • v
e r a p e r i
  • d
  • f
t i m e . T
  • e
n s u r e t h a t n
  • v
i r t u a l h
  • s
t s t a r v e d a n d t h a t t h e s y s t e m h a d e n
  • u
g h c a p a c i t y t
  • s
u s
  • t
a i n t h e n e t w
  • r
k d e m a n d , w e m e a s u r e d i d l e t i m e d u r i n g t h e e x p e r i m e n t ( a s d e s c r i b e d i n § 3 . 4 ) . I n a l l r u n s , t h e s y s t e m h a d a t l e a s t 3 5 % i d l e C P U t i m e e v e r y s e c
  • n
d . T h i s m e a s u r e m e n t i n d i c a t e s t h a t t h e O S w a s a b l e t
  • s
c h e d u l e a l l v i r t u a l h
  • s
t s a n d p a c k e t t r a n s m i s s i
  • n
s w i t h
  • u
t f a l l i n g b e h i n d a n i d e a l e x
  • e
c u t i
  • n
s c h e d u l e
  • n
h a r d w a r e . L e s s
  • n
s l e a r n e d u s i n g M i n i n e t
  • H
i F i : I n t h e H e d e r a t e s t b e d , m a c h i n e s w e r e e q u i p p e d w i t h 1 G b / s n e t w
  • r
k i n
  • t
e r f a c e s . W e w e r e u n a b l e t
  • u
s e M i n i n e t
  • H
i F i t
  • r
e p l i c a t e H e d e r a ’ s r e s u l t s e v e n w i t h 1 M b / s n e t w
  • r
k l i n k s , a s t h e v i r t u a l h
  • s
t s d i d n
  • t
h a v e e n
  • u
g h C P U c a p a c i t y t
  • s
a t u r a t e t h e i r n e t w
  • r
k l i n k s . W h i l e H e d e r a ’ s r e s u l t s d
  • n
  • t
q u a l i t a
  • t
i v e l y c h a n g e w h e n l i n k s a r e s c a l e d d
  • w
n , i t i s a c h a l l e n g e t
  • r
e p r
  • d
u c e r e s u l t s t h a t d e p e n d
  • n
t h e a b s
  • l
u t e v a l u e
  • f
l i n k / C P U b a n d w i d t h . 5 . 3 S i z i n g R
  • u
t e r B u f f e r s I n
  • u
r t h i r d e x a m p l e w e r e p r
  • d
u c e r e s u l t s t h a t w e r e m e a
  • s
u r e d
  • n
a r e a l h a r d w a r e t e s t b e d t
  • d
e t e r m i n e t h e n u m b e r
  • f
p a c k e t b u f f e r s n e e d e d b y a r
  • u
t e r . T h e
  • r
i g i n a l r e s e a r c h p a
  • p
e r
  • n
b u f f e r s i z i n g w a s p r e s e n t e d a t S i g c
  • m
m 2 4 [ 3 5 ] . A l l I n t e r n e t r
  • u
t e r s c
  • n
t a i n b u f f e r s t
  • h
  • l
d p a c k e t s d u r i n g t i m e s
  • f
c
  • n
g e s t i
  • n
. T h e s i z e
  • f
t h e b u f f e r s i s d i c t a t e d b y t h e d y
  • n
a m i c s
  • f
T C P ’ s c
  • n
g e s t i
  • n
c
  • n
t r
  • l
a l g
  • r
i t h m : t h e g
  • a
l i s t
  • m
a k e s u r e t h a t w h e n a l i n k i s c
  • n
g e s t e d , i t i s b u s y 1 %
  • f
t h e t i m e , w h i c h i s e q u i v a l e n t t
  • m
a k i n g s u r e t h e b u f f e r n e v e r g
  • e
s e m p t y . P r i
  • r
t
  • t
h e p a p e r , t h e c
  • m
m
  • n
a s s u m p t i
  • n
w a s t h a t e a c h l i n k n e e d s a b u f f e r
  • f
s i z e B = R T T × C , w h e r e R T T i s t h e a v e r a g e r
  • u
n d
  • t
r i p t i m e
  • f
a fl
  • w
p a s s i n g a c r
  • s
s t h e l i n k a n d C i s t h e d a t a
  • r
a t e
  • f
t h e b
  • t
t l e n e c k l i n k . T h e a u
  • t
h
  • r
s s h
  • w
e d t h a t a l i n k w i t h n fl
  • w
s r e q u i r e s n
  • m
  • r
e t h a n B = RTT×C √ n . T h e
  • r
i g i n a l p a p e r i n c l u d e d r e s u l t s f r
  • m
s i m
  • u
l a t i
  • n
a n d m e a s u r e m e n t s f r
  • m
a r e a l r
  • u
t e r , b u t n
  • t
f
  • r
a r e a l n e t w
  • r
k . L a t e r , a t S i g c
  • m
m 2 8 , N e d a B e h e s h t i d e m
  • n
  • s
t r a t e d a h a r d w a r e t h e s e r e s u l t s
  • n
a h a r d w a r e t e s t b e d r u n
  • n
i n g
  • n
t h e I n t e r n e t 2 b a c k b
  • n
e 7 W e c
  • n
t a c t e d t h e r e s e a r c h e r s a n d
  • b
t a i n e d r e s u l t s m e a
  • s
u r e d
  • n
t h e i r h a r d w a r e t e s t b e d , t h e n c
  • m
p a r e d t h e m w i t h r e s u l t s f r
  • m
M i n i n e t
  • H
i F i ; t h e M i n i n e t
  • H
i F i t
  • p
  • l
  • g
y i s s h
  • w
n i n F i g u r e 9 ( a ) . I n t h e h a r d w a r e e x p e r i m e n t s , a n u m
  • b
e r
  • f
T C P fl
  • w
s g
  • f
r
  • m
a s e r v e r a t S t a n f
  • r
d U n i v e r s i t y ( C a l i f
  • r
n i a ) t
  • a
t a s e r v e r a t R i c e U n i v e r s i t y ( H
  • u
s t
  • n
, T e x a s ) v i a a N e t F P G A I P v 4 r
  • u
t e r i n t h e I n t e r n e t 2 P O P i n L
  • s
A n g e
  • l
e s . T h e l i n k f r
  • m
L A t
  • H
  • u
s t
  • n
i s c
  • n
s t r a i n e d t
  • 6
2 . 5 M b / s 7 V i d e
  • f
d e m
  • n
s t r a t i
  • n
a t h t t p : / / w w w . y
  • u
t u b e . c
  • m
/ w a t c h ? v = y k g a 6 N _ x 2 7 w .

read, ¡click, ¡reproduce ¡

slide-56
SLIDE 56

Reproduced ¡Research ¡Examples ¡

reproducingnetworkresearch.wordpress.com ¡ (or ¡Google ¡“reproducing ¡network ¡research”) ¡

57 ¡

20 ¡and ¡counKng ¡

slide-57
SLIDE 57

Open-­‑Source ¡System ¡w/AcKve ¡User ¡Community ¡

58 ¡
  • ur ¡guess: ¡~1000 ¡users ¡

Fall ¡2013: ¡~10K ¡users ¡ mininet.github.com ¡

slide-58
SLIDE 58

New ¡Workflows ¡

Idea ¡ ¡Simulate ¡ ¡Run(Testbed) ¡ ¡Publish ¡

59 ¡

Idea ¡ ¡Run(EmulaKon) ¡ ¡Publish ¡

Reproduce(EmulaKon) ¡ Idea ¡ ¡Simulate ¡ ¡Run(Testbed) ¡ ¡Publish ¡ Run(EmulaKon) ¡ ¡

slide-59
SLIDE 59

(aside) ¡ ¡ Why ¡God ¡doesn't ¡ have ¡a ¡Ph.D. ¡

1) ¡ ¡He ¡had ¡only ¡one ¡major ¡publicaKon. ¡ 2) ¡ ¡It ¡was ¡in ¡Hebrew. ¡ 3) ¡ ¡It ¡had ¡no ¡references. ¡ 4) ¡ ¡It ¡wasn't ¡published ¡in ¡a ¡referreed ¡journal. ¡ 5) ¡ ¡Some ¡even ¡doubt ¡he ¡wrote ¡it ¡by ¡himself. ¡ 6) ¡ ¡It ¡may ¡be ¡true ¡that ¡he ¡created ¡the ¡world, ¡but ¡what ¡has ¡he ¡done ¡since ¡then? ¡ 7) ¡ ¡His ¡cooperaKve ¡efforts ¡have ¡been ¡quite ¡limited. ¡ 8) ¡ ¡The ¡scien<fic ¡community ¡has ¡had ¡a ¡hard ¡<me ¡replica<ng ¡his ¡results. ¡ 9) ¡ ¡He ¡never ¡applied ¡to ¡the ¡ethics ¡board ¡for ¡permission ¡to ¡use ¡human ¡subjects. ¡ 10) ¡When ¡one ¡experiment ¡went ¡awry ¡he ¡tried ¡to ¡cover ¡it ¡up ¡by ¡drowning ¡his ¡subjects. ¡ 11) ¡When ¡subjects ¡didn't ¡behave ¡as ¡predicted, ¡he ¡deleted ¡them ¡from ¡the ¡sample. ¡ 12) ¡Some ¡say ¡he ¡had ¡his ¡son ¡teach ¡the ¡class. ¡ 13) ¡He ¡expelled ¡his ¡first ¡two ¡students ¡for ¡learning. ¡ 14) ¡He ¡rarely ¡came ¡to ¡class, ¡and ¡he ¡just ¡told ¡students ¡to ¡read ¡the ¡book. ¡ 15) ¡Although ¡there ¡were ¡only ¡10 ¡requirements, ¡most ¡of ¡his ¡students ¡failed ¡his ¡tests. ¡ 16) ¡His ¡office ¡hours ¡were ¡infrequent ¡and ¡usually ¡held ¡on ¡a ¡mountaintop. ¡ Source: ¡hZp://www-­‑psych.stanford.edu/~pinto/god.html ¡

60 ¡
slide-60
SLIDE 60

Look ¡for ¡the ¡shirt. ¡ ¡QuesKons? ¡

61 ¡

mininet.github.com ¡ reproducingnetworkresearch.wordpress.com ¡

slide-61
SLIDE 61

Backup ¡Slides ¡

62 ¡
slide-62
SLIDE 62

Doesn’t ¡a ¡simulator ¡guarantee ¡these ¡ invariants? ¡

  • Yes, ¡exactly! ¡ ¡A ¡good ¡one ¡will. ¡
  • We’re ¡trying ¡to ¡get ¡the ¡network ¡fidelity ¡of ¡an ¡

emulator ¡to ¡match ¡a ¡simulator ¡with ¡virtual ¡

  • Kme. ¡
63 ¡
slide-63
SLIDE 63

What ¡about ¡an ¡RTOS? ¡

  • Every ¡process ¡must ¡be ¡bounded-­‑Kme. ¡
  • Requires ¡kernel ¡mods. ¡
  • ConservaKve ¡provisioning ¡make ¡the ¡resulKng ¡

system ¡too ¡resource-­‑limited ¡to ¡be ¡useful. ¡

  • May ¡needlessly ¡limit ¡resources ¡when ¡they ¡

could ¡be ¡used. ¡

64 ¡
slide-64
SLIDE 64 65 ¡

Host ¡Invariants ¡

host ¡with ¡capacity ¡C ¡

Cmeasured ¡≤ ¡Cconfigured ¡? ¡ C

emulator ¡ hardware ¡

C ¡ C ¡x ¡5 ¡

¡ ¡ ¡ ¡host ¡capacity: ¡ 20% ¡? ¡

log ¡scheduler ¡events ¡

slide-65
SLIDE 65 66 ¡

Host ¡Invariants ¡

C

emulator ¡ hardware ¡

C ¡x ¡2 ¡

¡ ¡ ¡ ¡ ¡scheduler ¡intervals ¡

host ¡with ¡capacity ¡C ¡

C ¡ C ¡

log ¡scheduler ¡events ¡