high performance state machines for software packet
play

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


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

  2. Chair of Network Architectures and Services Department of Informatics Technical University of Munich Contents Goals Approach Evaluation Bibliography D. Schöffmann – MoonState 2

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

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

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

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

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

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

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

  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 10

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

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

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

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

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

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