Packet types: abstract specification of network protocol messages

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.

[1]  Dawson R. Engler,et al.  DPF: Fast, Flexible Message Demultiplexing Using Dynamic Code Generation , 1996, SIGCOMM.

[2]  Brian N. Bershad,et al.  Efficient Packet Demultiplexing for Multiple Endpoints and Large Messages , 1994, USENIX Winter.

[3]  Steven McCanne,et al.  BPF+: exploiting global data-flow optimization in a generalized packet filter architecture , 1999, SIGCOMM '99.

[4]  Subhash Suri,et al.  Space Decomposition Techniques for Fast Layer-4 Switching , 1999, Protocols for High-Speed Networks.

[5]  Larry L. Peterson,et al.  The x-Kernel: An Architecture for Implementing Network Protocols , 1991, IEEE Trans. Software Eng..

[6]  Omg CORBA/IIOP 2.2 Specification , 1998 .

[7]  Anindya Basu,et al.  A Language-Based Approach to Protocol Construction , 1998 .

[8]  Ron K. Cytron,et al.  Efficient Demultiplexing of Network Packets by Automatic Parsing , 1995 .

[9]  Eddie Kohler,et al.  A readable TCP in the Prolac protocol language , 1999, SIGCOMM '99.

[10]  Eric Eide,et al.  Flick: a flexible, optimizing IDL compiler , 1997, PLDI '97.

[11]  Larry L. Peterson,et al.  A language-based approach to protocol implementation , 1993, TNET.

[12]  L. Stewart,et al.  The x-Kernel: An Architecture for Implementing Network , .

[13]  Peter Lee,et al.  Signatures for a network protocol stack: a systems application of Standard ML , 1994, LFP '94.

[14]  Jeannette M. Wing,et al.  A behavioral notion of subtyping , 1994, TOPL.

[15]  Raj Srinivasan,et al.  XDR: External Data Representation Standard , 1995, RFC.

[16]  Steven McCanne,et al.  The BSD Packet Filter: A New Architecture for User-level Packet Capture , 1993, USENIX Winter.

[17]  P. T. Barry,et al.  Abstract syntax notation-one (ASN.1) , 1992 .

[18]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[19]  Todd A. Proebsting,et al.  USC: A Universal Stub Compiler , 1994, SIGCOMM.