|
CONFERENCE PROGRAM
Program at a glance Tutorial program Technical program Abstracts Papers
Abstract
- Session
- Header Processing
- Paper
- 9-2
- Full Paper
- ps.gz
- Title
- Packet Types: Abstract Specification of Network Protocol Messages
- Author(s)
-
Peter J. McCann (Bell Labs, Lucent Technologies)
Satish Chandra (Bell Labs, Lucent Technologies)
- Abstract:
-
In writing networking code, one is often faced with the task of
interpreting a raw buffer according to a standardized packet format.
This is needed, for example, when monitoring network traffic for
specific kinds of packets, or when unmarshaling an incoming packet for
protocol processing. In such cases, a programmer typically writes C
code that understands the grammar of a packet and that also performs
any necessary byte-order and alignment adjustments. Because of the
complexity of certain protocol formats, and because of the low-level
of programming involved, writing such code is usually a cumbersome and
error-prone process. Furthermore, code written in this style loses
the domain-specific information, viz. the packet format, in its
details, making it difficult to maintain.
We propose to use the idea of {\em types} to eliminate the need for
writing such low-level code manually. Unfortunately, types in
programming languages, such as C, are not well-suited for the purpose
of describing packet formats. Therefore, we have designed a small
{\em packet specification language} that serves as a type system for
packet formats. Our language conveniently expresses features commonly
found in protocol formats, including layering of protocols by
encapsulation, variable-sized fields, and optional fields. A compiler
for this language generates efficient code for type checking a packet,
i.e., matching a packet against a type. In this paper, we describe
the design, implementation, and some uses of this language.
|