A NEaT Design for reliable and scalable network stacks

Research output: Chapter in Book / Report / Conference proceedingConference contributionAcademicpeer-review


Operating systems provide a wide range of services, which are crucial for the increasingly high reliability and scalability demands of modern applications. Providing both reliability and scalability at the same time is hard. Commodity OS architectures simply lack the design abstractions to do so for demanding core OS services such as the network stack. For reliability and scalability guarantees, they rely almost exclusively on ensuring a high-quality implementation, rather than a reliable and scalable design. This results in complex error recovery paths and hard-to-maintain synchronization code. We demonstrate that a simple and structured design that strictly adheres to two principles, isolation and par- titioning, can yield reliable and scalable network stacks. We present NEaT, a system which partitions the stack across isolated process replicas handling independent requests. Our design principles intelligently partition the state to minimize the impact of failures (offering strong recovery guarantees) and to scale comparably to Linux without exposing the implementation to common pitfalls such as synchronization errors, poor locality, and false sharing.

Original languageEnglish
Title of host publicationCoNEXT 2016 - Proceedings of the 12th International Conference on Emerging Networking EXperiments and Technologies
PublisherAssociation for Computing Machinery, Inc
Number of pages15
ISBN (Electronic)9781450342926
Publication statusPublished - 6 Dec 2016
Event12th ACM Conference on Emerging Networking Experiments and Technologies, ACM CoNEXT 2016 - Irvine, United States
Duration: 12 Dec 201615 Dec 2016


Conference12th ACM Conference on Emerging Networking Experiments and Technologies, ACM CoNEXT 2016
Country/TerritoryUnited States


Dive into the research topics of 'A NEaT Design for reliable and scalable network stacks'. Together they form a unique fingerprint.

Cite this