🤖 AI Summary
Existing user-space network stacks suffer from poor portability and deployment challenges due to overreliance on vendor-specific vNIC hardware features (e.g., flow classification, RSS reconfiguration) and rigid execution models. This work introduces Machnet, a lightweight user-space network stack designed for public cloud VMs. Machnet proposes a novel “least-common-denominator” virtual NIC abstraction—defining a minimal, cross-vendor-compatible set of primitives—and adopts a microkernel architecture instead of a library OS to balance flexibility with low inter-process communication overhead. Leveraging zero-copy I/O and a streamlined protocol stack, it achieves throughput and latency comparable to high-end, hardware-optimized stacks—even on commodity vNICs. Evaluated across major public clouds, Machnet demonstrates broad compatibility, simplified deployment, and enhanced developer ergonomics. It establishes a new paradigm for practical, portable user-space networking in heterogeneous cloud environments.
📝 Abstract
After a decade of research in userspace network stacks, why do new solutions remain inaccessible to most developers? We argue that this is because they ignored (1) the hardware constraints of public cloud NICs (vNICs) and (2) the flexibility required by applications. Concerning the former, state-of-the-art proposals rely on specific NIC features (e.g., flow steering, deep buffers) that are not broadly available in vNICs. As for the latter, most of these stacks enforce a restrictive execution model that does not align well with cloud application requirements. We propose a new userspace network stack, Machnet, built for public cloud VMs. Central to Machnet is a new ''Least Common Denominator'' model, a conceptual NIC with a minimal feature set supported by all kernel-bypass vNICs. The challenge is to build a new solution with performance comparable to existing stacks while relying only on basic features (e.g., no flow steering, no RSS reconfiguration). Machnet uses a microkernel design to provide higher flexibility in application execution compared to a library OS design; we show that microkernels' inter-process communication overhead is negligible on large cloud networks.