Higher-Order and Symbolic Computation, 14(4)309-356

A Network Protocol Stack in Standard ML

Edoardo Biagioni, University of Hawai'i at Mnoa, ICS Department, 1680 East-West Road, Honolulu HI 96822, USA
Robert Harper, Carnegie Mellon University, School of Computer Science, 5000 Forbes Avenue, Pittsburgh PA 15213, USA
Peter Lee, Carnegie Mellon University, School of Computer Science, 5000 Forbes Avenue, Pittsburgh PA 15213, USA

Abstract: The FoxNet is an implementation of the standard TCP/IP networking protocol stack using the Standard ML (SML) language. SML is a type-safe programming language with garbage collection, a unique and advanced module system, and machine-independent semantics. The FoxNet is a user-space implementation of TCP/IP that is built in SML by composing modular protocol elements; each element independently implements one of the standard protocols. One specific combination of these elements implements the standard TCP/IP stack. Other combinations are also possible and can be used to easily and conveniently build custom, non-standard networking stacks. This paper describes in detail the final design and implementation of the FoxNet, including many of the details that are crucially affected by the choice of SML as the programming language.

Keywords: Standard ML, computer networks, modules, signatures, types

This article can be downloaded [here].
[picture of journal cover]

July 2003 - hosc@brics.dk