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.