Chair of Network Architectures and Services Department of Informatics Technical University of Munich
High-Performance State Machines for Software Packet Processing - - PowerPoint PPT Presentation
High-Performance State Machines for Software Packet Processing - - PowerPoint PPT Presentation
Chair of Network Architectures and Services Department of Informatics Technical University of Munich High-Performance State Machines for Software Packet Processing Systems Dominik Schffmann, B. Sc. 9.4.2018 Chair of Network Architectures
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
Contents
Goals Approach Evaluation Bibliography
- D. Schöffmann
– MoonState 2
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
Mission Statement
“Build a state machine framework for MoonGen”
- D. Schöffmann
– MoonState 3
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
Goals
Abstract:
- Fast
- Flexible
- Easy to use
- Integration into MoonGen [1]
Example use case:
- DTLS as VPN
- D. Schöffmann
– MoonState 4
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
VPN Solutions
UDP VPNs:
- OpenVPN: uses TLS, not DTLS
- AnyConnect: uses pre-release DTLS
- IPsec: doesn’t use DTLS at all
Solution: AstraeusVPN: Easy DTLS VPN for this thesis (also: custom protocol)
- D. Schöffmann
– MoonState 5
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
Overview
NIC RSS Core Core MoonGen MoonGen MoonState Packet Identifier State Table State void* ID Function Table Function
- D. Schöffmann
– MoonState 6
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
Features
- Server mode
- Client mode
- Connection Pools
- Per-Connection data storage
- Timeouts
- As much thread-local as possible
- Easily extensible function interface
- D. Schöffmann
– MoonState 7
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
Hiccups
- Crypto is expensive
- Invest into good hash function (for hashtable)
- Timeouts are complex
- OpenSSL interface was insufficient
- D. Schöffmann
– MoonState 8
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
Per function overhead
Astr PubKey Astr PSK Astr No Crypt 1000 2000 3000 4000 5000 168840 Cycles per packet Crypto Hashtable Memory TX RX
- D. Schöffmann
– MoonState 9
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
State Table Size Benchmark
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 ·107 500 1,000 1,500 State Table Size Cycles per Packet setup run
- D. Schöffmann
– MoonState 10
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
State Table Size Benchmark
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 ·107 500 1,000 1,500 State Table Size Cycles per Packet setup run
- D. Schöffmann
– MoonState 11
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
State Table Size Benchmark
211 213 215 217 219 221 223 500 1,000 1,500 State Table Size Cycles per Packet approx setup run
- D. Schöffmann
– MoonState 12
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
State Table Size Benchmark
1,000 2,000 3,000 setup run 1,000 2,000 3,000 Cycles per Packet setup run 211 213 215 217 219 221 223 1,000 2,000 3,000 State Table Size setup run Std Sparse Dense
- D. Schöffmann
– MoonState 13
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
Memory Accesses
20 40 60 80 100 120 1,000 2,000 3,000 Number of Memory Accesses Cycles per Packet setup run
- D. Schöffmann
– MoonState 14
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
TODO
- More benchmarks
- Analyse existing data
- Investigate memory allocation
- Investigate different CPUs
- D. Schöffmann
– MoonState 15
Chair of Network Architectures and Services Department of Informatics Technical University of Munich
[1] P . Emmerich, S. Gallenmüller, D. Raumer, F. Wohlfart, and G. Carle. MoonGen: A Scriptable High-Speed Packet Generator. In Internet Measurement Conference 2015 (IMC’15), Tokyo, Japan, Oct. 2015.
- D. Schöffmann