Check out the new USENIX Web site.

A Framework for the Non-Monolithic Implementation of Protocols in the x-kernel


Parag K. Jain, Norman C. Hutchinson, Samuel T. Chanson
Department of Computer Science
University of British Columbia
Vancouver, B.C., Canada.
Email : { jain, hutchinson, chanson }@cs.ubc.ca}

Abstract

This paper describes a framework for splitting the implementation of network protocols in the x-kernel into a user-level library, which implements the majority of the protocol functionality, and a kernel component, which provides a fast track to demultiplex packets into the appropriate recipient address space. The design also provides the user with flexibility to decide which aspects of the protocol implementation should be in user space and which should be in the kernel. We implement an example TCP/UDP-IP-Ethernet protocol stack and report on its performance which is competitive with monolithic implementations. The kernel level demultiplexing of network packets is well structured, modular, and scalable. T he cost of demultiplexing is shown to be insensitive to the number of user-level instances of protocols. The performance of the approach on a multiprocessor system shows that non-monolithic protocol implementations are potentially more parallelizable than traditional monolithic ones.


Download the full text of this paper in ASCII (1,411 bytes) and POSTSCRIPT (280,750 bytes) form.

To Become a USENIX Member, please see our Membership Information.