Show simple item record

dc.contributor.authorBrahmakshatriya, Ajay
dc.contributor.authorRinard, Chris
dc.contributor.authorGhobadi, Manya
dc.contributor.authorAmarasinghe, Saman
dc.date.accessioned2024-07-08T18:40:02Z
dc.date.available2024-07-08T18:40:02Z
dc.date.issued2024-06-20
dc.identifier.issn2475-1421
dc.identifier.urihttps://hdl.handle.net/1721.1/155460
dc.description.abstractModern network applications and environments, ranging from data centers and IoT devices to AR/VR headsets and underwater robotics, present diverse requirements that cannot be satisfied by the all or-nothing approach of TCP and UDP protocols. Network researchers and engineers need to create highly tailored protocols targeting individual problem domains. Existing library-based approaches either fall short on the flexibility in features or offer them at a significant performance overhead. To address this challenge, we present NetBlocks, a domain-specific language, and compiler for designing ad-hoc protocols and generating their highly optimized host network stack implementations. NetBlocks DSL input allows users to configure protocols by selecting and customizing features. Unlike other DSL compilers, NetBlocks also allows network researchers to extend the system and add more features easily without any prior compiler knowledge. Our design and implementation employ a high-performance Aspect-Oriented Programming framework written with the staging framework BuildIt. We also introduce a novel Layout Customization Layer that allows "staging packet layouts" alongside the implementation, which is critical for getting the best performance out of the protocol when possible, while allowing the practitioners to maintain compatibility with existing protocol layers where needed. Our evaluations on three applications ranging across deployments in data centers and underwater acoustic networks demonstrate a trade-off between performance (both latency and throughput) and selected features allowing the user to only pay-for what-they-use.en_US
dc.publisherAssociation for Computing Machineryen_US
dc.relation.isversionof10.1145/3656396en_US
dc.rightsCreative Commons Attributionen_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.sourceAssociation for Computing Machineryen_US
dc.titleNetBlocks: Staging Layouts for High-Performance Custom Host Network Stacksen_US
dc.typeArticleen_US
dc.identifier.citationBrahmakshatriya, Ajay, Rinard, Chris, Ghobadi, Manya and Amarasinghe, Saman. 2024. "NetBlocks: Staging Layouts for High-Performance Custom Host Network Stacks." Proceedings of the ACM on Programming Languages, 8 (PLDI).
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Science
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
dc.relation.journalProceedings of the ACM on Programming Languagesen_US
dc.identifier.mitlicensePUBLISHER_CC
dc.eprint.versionFinal published versionen_US
dc.type.urihttp://purl.org/eprint/type/JournalArticleen_US
eprint.statushttp://purl.org/eprint/status/PeerRevieweden_US
dc.date.updated2024-07-01T07:58:08Z
dc.language.rfc3066en
dc.rights.holderThe author(s)
dspace.date.submission2024-07-01T07:58:08Z
mit.journal.volume8en_US
mit.journal.issuePLDIen_US
mit.licensePUBLISHER_CC
mit.metadata.statusAuthority Work and Publication Information Neededen_US


Files in this item

Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record