Date of Award


Document Type

Thesis (Undergraduate)


Department of Computer Science

First Advisor

Chris Hawblitzel


Any computing device or system that uses the internet needs to analyze and identify the contents of network packets. Code that does this is often written in C, but reading, identifying, and manipulating network packets in C requires writing tricky and tedious code. Previous work has offered specification languages for describing the format of network packets, which would allow packet type identification without the hassles of doing this task in C. For example, McCann and Chandra's Packet Types [3] system allows the programmer to define arbitrary packet types and generates C unctions which match given data against a specified packet type. This paper will present a packet processing language named PPL, which extends McCann and Chandra�s Packet Types to allow the programmer to not only describe arbitrary packet types, but also to control when and how a matching is attempted, with ML-style pattern matching. PPL is intended for multiple applications, such as intrusion detection systems, quick prototypes of new protocols, and IP de-multiplexing code.


Originally posted in the Dartmouth College Computer Science Technical Report Series, number TR2004-508.

TR2004-508.tgz (430 kB)
Code and other materials