ACM SIGCOMM Computer Communication Review · 2016 · 13 citations · 17 references
ComputingComputer ScienceComputer SystemsComputer NetworksDistributed SystemsMessage PassingCongestion ControlData Link LayerInternet Protocol SuiteNetwork LayerNetwork ProtocolsTransport LayerCongestion Control ProtocolsModular DesignNetwork KernelNetwork Protocol StacksNetwork StackNetwork Stack ImplementationTcp ProgrammingZero-copy Communication
Click has significant advantages for middlebox development, including modularity, extensibility, and reprogrammability. Despite these features, Click still has no native TCP support and only uses nonblocking I/O, preventing its applicability to middleboxes that require access to application data and blocking I/O. In this paper, we attempt to bridge this gap by introducing Click middleboxes (CliMB). CliMB provides a full-fledged modular TCP layer supporting TCP options, congestion control, both blocking and nonblocking I/O, as well as socket and zero-copy APIs to applications. As a result, any TCP network function may now be realized in Click using a modular L2-L7 design. As proof of concept, we develop a zero-copy SOCKS proxy using CliMB that shows up to 4x gains compared to an equivalent implementation using the Linux in-kernel network stack.
17
Eddie Kohler, Robert Morris, Benjie Chen et al. · ACM Transactions on Computer Systems · 2000 · 2.4K citations · Full text
ClickOS and the Art of Network Function Virtualization
2014 · 677 citations
Making middleboxes someone else's problem
Justine Sherry, Shaddi Hasan, Colin Scott et al. · 2012 · 627 citations
Design and implementation of a consolidated middlebox architecture
Vyas Sekar, Norbert Egi, Sylvia Ratnasamy et al. · UC Berkeley · 2012 · 405 citations
Shoumik Palkar, Chang Lan, Sangjin Han et al. · 2015 · 325 citations · Full text