Chair of Network Architectures and Services Department of Informatics Technical University of Munich High-Performance State Machines for Software Packet Processing Systems Dominik Schöffmann, B. Sc. 9.4.2018 Chair of Network Architectures and Services Department of Informatics Technical University of Munich
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 Packet Identifier MoonState State MoonGen MoonGen Table Core Core State RSS Function void* ID NIC Function Table 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 168840 Crypto Hashtable 5000 Memory Cycles per packet TX 4000 RX 3000 2000 1000 0 Astr Astr Astr PubKey PSK No Crypt D. Schöffmann – MoonState 9
Chair of Network Architectures and Services Department of Informatics Technical University of Munich State Table Size Benchmark 1 , 500 setup run Cycles per Packet 1 , 000 500 0 0 0 . 2 0 . 4 0 . 6 0 . 8 1 1 . 2 1 . 4 1 . 6 State Table Size · 10 7 D. Schöffmann – MoonState 10
Chair of Network Architectures and Services Department of Informatics Technical University of Munich State Table Size Benchmark 1 , 500 setup run Cycles per Packet 1 , 000 500 0 0 0 . 2 0 . 4 0 . 6 0 . 8 1 1 . 2 1 . 4 1 . 6 State Table Size · 10 7 D. Schöffmann – MoonState 11
Chair of Network Architectures and Services Department of Informatics Technical University of Munich State Table Size Benchmark 1 , 500 approx setup run Cycles per Packet 1 , 000 500 0 2 11 2 13 2 15 2 17 2 19 2 21 2 23 State Table Size D. Schöffmann – MoonState 12
Chair of Network Architectures and Services Department of Informatics Technical University of Munich State Table Size Benchmark setup 3 , 000 run 2 , 000 Std 1 , 000 Cycles per Packet 0 setup 3 , 000 run 2 , 000 Sparse 1 , 000 0 setup 3 , 000 run 2 , 000 Dense 1 , 000 0 2 11 2 13 2 15 2 17 2 19 2 21 2 23 State Table Size D. Schöffmann – MoonState 13
Chair of Network Architectures and Services Department of Informatics Technical University of Munich Memory Accesses setup 3 , 000 run Cycles per Packet 2 , 000 1 , 000 0 0 20 40 60 80 100 120 Number of Memory Accesses 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 – MoonState 16
Recommend
More recommend