Date of Original Version



Technical Report

Rights Management

All Rights Reserved

Abstract or Description

Application-level networking is a promising software organization for improving performance and functionality for important network services. The xok/ExOS exokernel system includes application-level support for standard network services, while at the same time allowing application writers to specialize networking services. This paper describes how xok/ExOS's kernel mechanisms and library operating system organization achieves this exibility, and shares our experiences and lessons learned (both positive and negative). It also describes how we have used this flexibility to build and specialize three network data services: the Cheetah HTTP server, the webswamp web benchmarking tool, and an application-level TCP forwarder. Overall measurements show large performance improvements relative to similar services built on conventional interfaces, in each case reaching the maximum possible end-to-end performance for the experimental platform. For example, Cheetah provides factor of 2-4 increases in throughput compared to highly-tuned socket-based implementations and 3-8 compared to conventional systems. Webswamp can offer loads that are 2-8 times heavier. The TCP forwarder provides 50-300% higher throughput while also providing end-to-end TCP semantics that cannot be achieved with POSIX sockets. With more detailed measurements and profiling, these overall performance improvements are also broken down and attributed to the specific specializations described, providing server writers with insights into where to focus their optimization efforts.