"Using an operating system kernel as a building block for scalable and fast
network topology emulation"
While traditional network protocol simulation tools offer great levels of flexibility and extensibility, as long as they target simulation of networked environments entirely decoupled from any external systems, they typically do not need to operate in real time. However, fast and efficient operation becomes increasingly important as soon as any kind of real-time interaction between simulated and external environments becomes required. In this talk we show that an operating system kernel itself can serve as a highly efficient network topology emulation engine, as opposed to the traditional model of running network emulators as standalone user-space processes. The proposed approach of shifting the packet forwarding path of an network emulator entirely into an OS kernel has several desirable properties, such as very low per-packet processing overhead and conservative use of system resources, which results in good overall performance and scalability. Furthermore, existing networking applications or tools ranging from traffic generators or analyzers to routing protocol daemons or web servers can work unmodified on top of the kernel-level emulator, making it suitable for a wide range of experimentation scenarios. Time permitting, we will briefly demonstrate how the described approach works in our prototype implementation called IMUNES, an integrated multiprotocol network emulator / simulator.