Parsing Protocol Standards, Parsing Standard Protocols

I gave a talk at Loughborough University last week, entitled “Parsing Protocol Standards, Parsing Standard Protocols”, and will repeat it as a Systems Section seminar in Glasgow later today. The talk introduces some of the work we're doing in my EPSRC project on Improving Protocol Standards for a more Trustworthy Internet.

The intended behaviour of the Internet is determined by a set of technical standards that describe the underlying network protocols. These standards define both the syntax of the protocols (packet formats and the like) and their semantics. Standards are developed following a consensus process. The outcome of this is a specification document written as English text, that typically makes only limited use of formalisms and other structured ways of describing the protocol.

This informal approach to specification is increasingly problematic. There's no easy way to check such specifications for consistency, or to verify whether implementations conform to the standards. And, despite the best efforts of the standards setters, the resulting protocols often contain ambiguities or vulnerabilities, and are difficult to implement in a secure, interoperable, manner.

This talk will consider why standards are developed in this way, and how we might begin to improve the standards development process. I’ll consider one of the basic challenges in specifying a protocol: how to describe the format of protocol data units in a way that fits the needs to both the standards setters and the implementers, and that allows us to automatically extract parsing code from protocol standards. I’ll discuss the features of modern protocols that make their formats hard to describe, and introduce a new approach we’re taking to specifying and parsing protocol data.

The slides are available.