Skip to Main content Skip to Navigation

Approche langage au développement du support protocolaire d'applications réseaux

Laurent Burgy 1, 2, 3
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]
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. This protocol-handling layer enables the manipulation of protocol messages. This
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 targetting the
application itself or the underlying platform. Despite these constraints, the development process of this
protocol-handling layer still remains rudimentary and requires a high level of expertise. It consists of
translating the protocol specification written in a high level formalism such as ABNF towards low
level code such as C. The gap between these abstraction levels can entail many errors.
This thesis proposes a new language-based approach to the development of 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 application protocols à la HTTP. 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 provided annotations. This protocol-
handling layer is made 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. By default, the generated message parser only accepts messages that strictly conform to the
protocol. This validation criteria can be relaxed for more flexibility and better performance.
Complete list of metadatas
Contributor : Burgy Laurent <>
Submitted on : Monday, February 9, 2009 - 6:03:45 PM
Last modification on : Friday, October 23, 2020 - 4:38:28 PM
Long-term archiving on: : Friday, October 12, 2012 - 11:16:23 AM


  • HAL Id : tel-00359948, version 1



Laurent Burgy. Approche langage au développement du support protocolaire d'applications réseaux. Réseaux et télécommunications [cs.NI]. Université Sciences et Technologies - Bordeaux I, 2008. Français. ⟨tel-00359948⟩