vipe - acm sigcomm€¦ · georg kunz: vipe – a virtual platform for network experimentation. 9....
TRANSCRIPT
http://ds.cs.rwth-aachen.de
VIPEA Virtual Platform for Network Experimentation
Olaf Landsiedel, Georg Kunz, Stefan Götz, Klaus Wehrle
Barcelona / SIGCOMM VISA, August 2009
2Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Motivation
Network Simulation
Testbed DeploymentDesign
Concept ns-2 PlanetLab Linux
Re-Implement Re-ImplementImplement
Variety of Evaluation Tools
3Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Motivation
PlanetLab Linux
Network Simulation
Testbed DeploymentDesign
Concept NS-2
OMNeT++
Network Cradle
Tossim
EmuLabFlexLab
Linux
Windows
Windows Mobile
TinyOS
RTOS
Embedded Linux
Model-Net Mesh
Testbed
WSNTestbed
EmStar
Va
rie
ty o
f T
arg
et
Sys
tem
s
Variety of Evaluation Tools
Re-Implement
4Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Concept
Challenge Completeness vs. complexity of abstraction
Seamless TransitionProtocol
Testbed OS KernelSimulator
Our goal: Lightweight abstraction
5Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Protocol
Design
Network
ApplicationO
pera
ting
Syst
em /
Sim
ulat
or Memory
Time
Packet
Sync.
Higher Layer Interface
Lower Layer Interface
• start()• stop• modify()• pause()• …
• create()• clone()• expand()• delete()• …
• send()• receive()• …
• malloc()• free()• memcpy()• memcmp()• …
• lock()• unlock()• …
• Event based • Language independent• POSIX-like API
• send()• receive()• …
6Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Protocol Integration
Flexible Placement Layer independent
Utilize existing protocols / simulation model
Memory
Time
Packet
Sync.
Higher Layer Interface
Lower Layer Interface
Protocol
HTTP FTP RTP
TCP UDP
IPv4 IPXIPv6
Ethernet 802.11 PPP
7Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Chord
Use Cases
OS Network Interface
Native Socket Interface
Use
rspa
ceKe
rnel
Application Application
RTP
IP
Application
SCTP
NativeStack
8Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Runtime Overhead
Benchmarks of Virtual Resources CPU time-stamp counter
Windows XP Linux 2.6.22
Kernel Userspace Kernel Userspace
Memory
Synchronization
Timer
Device send()
Device receive()
Packet create()
Packet delete()
14.5%11.5%34.2%9.7%
0%macros and function inlining
≤ 0.2%utilize platform specific
data structures
9Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Implementation Complexity
Implementation Complexity Lines of Codes
0
200
400
600
800
1000
1200
1400
1600
1800
ns-2
Windows XP Windows CE
UserspaceKernel
10Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Runtime Performance
Macro-Benchmark Routing performance
Based on VIPE IPv4 implementation
300
400
500
600
700
800
900
1000
64 256 1024
Thro
ughp
ut [M
bit/s
]
Packet Size [bytes]
ProFabLinux
VIPE
Linux
11Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Conclusion
VIPE: Virtual Platform for Network Experimentation Unified programming environment
Seamless transition between platforms
Lightweight Architecture Based on best practices in systems design
Tight feedback loop Evolve NOT re-implement protocols
Small porting effort Low performance overhead
12Georg Kunz: VIPE – A Virtual Platform for Network Experimentation
Thank you for your attention.