Zebu: A Language-Based Approach for Network Protocol Message Processing

Laurent Burgy 1, 2, 3 Laurent Réveillère 1 Julia Lawall 4 G. Muller 5
2 Phoenix - Programming Language Technology For Communication Services
LaBRI - Laboratoire Bordelais de Recherche en Informatique, Inria Bordeaux - Sud-Ouest, EA4136 - Handicap et système nerveux :Action, communication, interaction: rétablissement de la fonction et de la participation [Bordeaux]
5 Regal - Large-Scale Distributed Systems and Applications
LIP6 - Laboratoire d'Informatique de Paris 6, Inria Paris-Rocquencourt
Abstract : A network application communicates with other applications according to a set of rules known as a protocol. This communication is managed by the part of the application known as the protocol-handling layer, which enables the manipulation of protocol messages. The protocol-handling layer is a critical component of a network application since it represents the interface between the application and the outside world. It must thus satisfy two constraints: It must be efficient to be able to treat a large number of messages and it must be robust to face various attacks targeting the application itself or the underlying platform. Despite these constraints, the development process of this layer still remains rudimentary and requires a high level of expertise. It includes translating the protocol specification written in a high-level formalism such as ABNF toward low-level code such as C. The gap between these abstraction levels can entail many errors. This paper proposes a new language-based approach to developing protocol-handling layers, to improve their robustness without compromising their performance. Our approach is based on the use of a domain-specific language, Zebu, to specify the protocol-handling layer of network applications that use textual HTTP-like application protocols. The Zebu syntax is very close to that of ABNF, facilitating the adoption of Zebu by domain experts. By annotating the original ABNF specification of a protocol, the Zebu user can dedicate the protocol-handling layer to the needs of a given application. The Zebu compiler first checks the annotated specification for inconsistencies, and then generates a protocol-handling layer according to the annotations. This protocol-handling layer is made up of a set of data structures that represent a message, a parser that fills in these data structures, and various stub functions to access these data structures or drive the parsing of a message
Type de document :
Article dans une revue
IEEE Transactions on Software Engineering, Institute of Electrical and Electronics Engineers, 2011, 37 (4), pp.575-591
Liste complète des métadonnées

Contributeur : Laurent Réveillère <>
Soumis le : mercredi 17 avril 2013 - 10:55:36
Dernière modification le : lundi 29 mai 2017 - 14:22:46


  • HAL Id : hal-00814448, version 1



Laurent Burgy, Laurent Réveillère, Julia Lawall, G. Muller. Zebu: A Language-Based Approach for Network Protocol Message Processing. IEEE Transactions on Software Engineering, Institute of Electrical and Electronics Engineers, 2011, 37 (4), pp.575-591. <hal-00814448>



Consultations de la notice