Next: Checking Protocol Conformance
Up: Model Checking Large Network
Previous: Exploring Interesting Protocol Behaviors
Specifying Correctness Properties
During the state space exploration, CMC automatically checks for
certain generic properties such as memory leaks and invalid memory
accesses. Also, CMC reports any deadlock states, in which the
system can make no progress. To check for protocol-specific
properties, the user has to provide additional invariants (written in
C). CMC evaluates these invariants in every state it generates.
There are two aspects to the correctness of a network protocol. First,
the protocol specification should be correct. Second, the particular
implementation should implement the specification correctly. By
running the implementation, CMC can simultaneously check for both
specification and implementation errors. Any specification error will
be promptly represented in the implementation. Given the maturity of
the TCP specification, however, it is quite unlikely the specification
contains errors and our emphasis has been on detecting implementation
errors.
Subsections
Madanlal Musuvathi
2004-03-03