Tuesday 9th October, 2012 at 7:30 pm
Dynamic Protocol Stacks in the Linux Kernel w/ Daniel Borkmann, ETH Zurich
Network programming is widely understood as programming strictly defined socket interfaces. Only some frameworks such as ANA, Click, or the X-kernel have made a step towards "real" network programming by decomposing networking functionality into small modular blocks that can be assembled in a flexible manner. In this talk, we present a new architecture that takles the challenge of accommodating 3 partially conflicting objectives:
- high flexibility for network programmers,
- reconfiguration of the network stack at runtime, and
- high packet forwarding rates.
First experiences with a prototype implementation in Linux suggest little performance overhead compared to the standard Linux protocol stack. Next to the architecture itself, we will also go into some Linux kernel-related implementation details. The second part of this talk will cover a high-performance network debugging and benchmarking toolkit namely 'netsniff-ng', that was developed in this context. This part covers details about the underlying Linux packet-mmap (zero-copy) interface for network packets and how they are applied in the netsniff-ng packet analyzer and in its traffic generator trafgen that is part of the suite.
Some Relevant Links
- netsniff-ng.org, consisting of:
- netsniff-ng, a high-performance zero-copy analyzer, pcap capturing and replaying tool
- trafgen, a high-performance zero-copy network traffic generator
- mausezahn, a packet generator and analyzer for HW/SW appliances with a Cisco-CLI
- bpfc, a Berkeley Packet Filter (BPF) compiler with Linux extensions
- ifpps, a top-like kernel networking and system statistics tool
- flowtop, a top-like netfilter connection tracking tool
- curvetun, a lightweight multiuser IP tunnel based on elliptic curve cryptography
- astraceroute, an autonomous system (AS) trace route utility
- Gnumaniacs @ GitHub
Daniel Borkmann received his M. Sc. at the HTWK Leipzig in Germany in February 2012 and since then he is a research engineer in the Communication Systems Group at ETH Zurich, Switzerland. During his studies of computer science, he worked at Siemens, at the Max Planck Institute for Human Cognitive and Brain Sciences and at a company that builds carrier-grade traffic management appliances. His work in the Communication Systems Group at the ETH Zurich is mainly spent within the EPiCS project. In his spare time, he is active in the Open Source community with his projects netsniff-ng and transsip. Occasionaly, he also contributes patches to the Linux kernel.
TBA, but will likely be:
Room GB248, Galbraith Building, University of Toronto 35 St George St Toronto, Ontario M5S 3G8 University of Toronto
- 6:00 pm - There is a get together of GTALUGers at Pho 88 restaurant 270 Spadina Ave (South of Dundas) for food and socializing.
- 7:30 pm - Meeting and presentation.
- 9:00 pm - After each meeting (at 9:00 pm) a group of GTALUGers move to the GSU Pub for beer and more socializing.