  This paper presents a system called NetKernel that decouples the network
stack from the guest virtual machine and offers it as an independent module.
NetKernel represents a new paradigm where network stack can be managed as part
of the virtualized infrastructure. It provides important efficiency benefits:
By gaining control and visibility of the network stack, operator can perform
network management more directly and flexibly, such as multiplexing VMs running
different applications to the same network stack module to save CPU cores, and
enforcing fair bandwidth sharing with distributed congestion control. Users
also benefit from the simplified stack deployment and better performance. For
example mTCP can be deployed without API change to support nginx natively, and
shared memory networking can be readily enabled to improve performance of
colocated VMs. Testbed evaluation using 100G NICs shows that NetKernel
preserves the performance and scalability of both kernel and userspace network
stacks, and provides the same isolation as the current architecture.
