MultiStack is operating system support for user-level network
stacks. MultiStack’s implementation revolves around four design
principles. First, MultiStack supports a large number of dedicated
stacks, to allow for having per-application stacks. Second, each stack
has isolated access to the NIC, preventing stacks, some of which may
contain untested or beta code, from interfering with each
other. Third, MultiStack supports namespace isolation, whereby stacks
In terms of performance, our tests show that MultiStack is able to achieve 10Gb/s line rate for almost all packet sizes with a single CPU core, and line rate for minimum-sized ones when using 2 CPU cores. We also show that a user-space TCP and HTTP server on top of MultiStack outperforms the same HTTP server running on top of the in-kernel stack.