The packer filter: an efficient mechanism for user-level network code
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
The X-Kernel: An Architecture for Implementing Network Protocols
IEEE Transactions on Software Engineering
A language-based approach to protocol implementation
IEEE/ACM Transactions on Networking (TON)
Signatures for a network protocol stack: a systems application of Standard ML
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
USC: a universal stub compiler
SIGCOMM '94 Proceedings of the conference on Communications architectures, protocols and applications
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
DPF: fast, flexible message demultiplexing using dynamic code generation
Conference proceedings on Applications, technologies, architectures, and protocols for computer communications
Flick: a flexible, optimizing IDL compiler
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
A readable TCP in the Prolac protocol language
Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication
BPF+: exploiting global data-flow optimization in a generalized packet filter architecture
Proceedings of the conference on Applications, technologies, architectures, and protocols for computer communication
Space Decomposition Techniques for Fast Layer-4 Switching
PfHSN '99 Proceedings of the IFIP TC6 WG6.1 & WG6.4 / IEEE ComSoc TC on on Gigabit Networking Sixth International Workshop on Protocols for High Speed Networks VI
DataScript - A Specification and Scripting Language for Binary Data
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Shield: vulnerability-driven network filters for preventing known vulnerability exploits
Proceedings of the 2004 conference on Applications, technologies, architectures, and protocols for computer communications
PADS: a domain-specific language for processing ad hoc data
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Formal Methods in System Design
The next 700 data description languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient manipulation of binary data using pattern matching
Journal of Functional Programming
binpac: a yacc for writing application protocol parsers
Proceedings of the 6th ACM SIGCOMM conference on Internet measurement
TLDI '07 Proceedings of the 2007 ACM SIGPLAN international workshop on Types in languages design and implementation
Melange: creating a "functional" internet
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Proceedings of the 30th international conference on Software engineering
A business process monitor for a mobile phone recharging system
Journal of Systems Architecture: the EUROMICRO Journal
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Banzai: a Java framework for the implementation of high-performance servers
Proceedings of the 2009 ACM symposium on Applied Computing
Using data correlation to build an intrusion detection system
ICAI'09 Proceedings of the 10th WSEAS international conference on Automation & information
The next 700 data description languages
Journal of the ACM (JACM)
Pervasive and Mobile Computing
Automatic transformation of bit-level C code to support multiple equivalent data layouts
CC'08/ETAPS'08 Proceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction
A context-free markup language for semi-structured text
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
An embedded language for programming protocol stacks in embedded systems
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
IDRIS ---: systems programming meets full dependent types
Proceedings of the 5th ACM workshop on Programming languages meets program verification
Proceedings of the 14th International Conference on Database Theory
Interpreting an arbitrary data stream
ICOSSSE'05 Proceedings of the 4th WSEAS/IASME international conference on System science and simulation in engineering
Bringing domain-specific languages to digital forensics
Proceedings of the 33rd International Conference on Software Engineering
A library for processing ad hoc data in Haskell: embedding a data description language
IFL'08 Proceedings of the 20th international conference on Implementation and application of functional languages
A domain-specific language approach to protocol stack implementation
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
Banzai+Tatoo: Using cutting-edge parsers for implementing high-performance servers
Science of Computer Programming
Towards formal verification of TLS network packet processing written in C
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
File systems deserve verification too!
Proceedings of the Seventh Workshop on Programming Languages and Operating Systems
Hi-index | 0.00 |
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.