How should we describe and specify protocols? And how can we ensure that
network protocol specifications are consistent and correct, and that
implementations match the specification?
The IETF community has long used natural language to describe and specify
protocols, with occasional use of formal languages and some limited amount
of formal verification. In many ways this is clearly a successful approach.
After all, the Internet exists as an interoperable, global, multi-vendor,
network in large part due to the protocol standards the IETF develops. It
is clearly possible to build interoperable implementations from IETF
standards.
But is this the right approach to developing protocol specifications?
The way the IETF describes protocols has changed little over the years.
It may be time to consider whether new techniques have been developed that
might change how protocols are specified, and possibly improve the process.
With help from Chris Wood,
I organised a side meeting at
IETF 115 to discuss whether there could be benefits to more systematic
use of formal methods in the IETF, what are the factors limiting the
adoption of such techniques, and whether it would make sense to create
an IRTF research group to explore such
topics.