Compositional Verification of a Communication Protocol for a Remotely Operated Vehicle

We present the specification and verification, in PVS, of a protocol intended to facilitate communication in an experimental remotely operated vehicle used by NASA researchers. The protocol is defined as a stack-layered composition of simpler protocols. It can be seen as the vertical composition of protocol layers, where each layer performs input and output message processing, and the horizontal composition of different processes concurrently inhabiting the same layer, where each process satisfies a distinct requirement. We formally prove that the protocol components satisfy certain delivery guarantees. Then, we demonstrate compositional techniques that allow us to prove that these guarantees also hold in the composed system. Although the protocol itself is not novel, the methodology employed in its verification extends existing techniques by automating the tedious and usually cumbersome part of the proof, thereby making the iterative design process of protocols feasible.

[1]  Brian Campbell,et al.  Amortised Memory Analysis Using the Depth of Data Structures , 2009, ESOP.

[2]  William R. Crowther,et al.  The Data Transfer Protocol , 1971, RFC.

[3]  Mohamed G. Gouda Elements of network protocol design , 1998 .

[4]  Toby Walsh,et al.  Automated Deduction—CADE-11 , 1992, Lecture Notes in Computer Science.

[5]  Jan L. A. van de Snepscheut,et al.  The sliding-window protocol revisited , 2005, Formal Aspects of Computing.

[6]  Frits W. Vaandrager Verification of two communication protocols by means of process algebra , 1986 .

[7]  Susan Owicki,et al.  An axiomatic proof technique for parallel programs I , 1976, Acta Informatica.

[8]  Erik P. de Vink,et al.  Verification and Improvement of the Sliding Window Protocol , 2003, TACAS.

[9]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[10]  Leonor Prensa Nieto The Rely-Guarantee Method in Isabelle/HOL , 2003, ESOP.

[11]  Andrew S. Tanenbaum,et al.  Computer networks (3rd ed.) , 1996 .

[12]  Mieke Massink,et al.  Theoretical and Practical Aspects of SPIN Model Checking , 1999, Lecture Notes in Computer Science.

[13]  Rr Rob Hoogerwoord A formal derivation of a sliding window protocol , 2006 .

[14]  Mohamed G. Gouda,et al.  Stabilizing Communication Protocols , 1991, IEEE Trans. Computers.

[15]  Vlad Rusu Verifying a Sliding Window Protocol using PVS , 2001, FORTE.

[16]  Roope Kaivola Using Compositional Preorders in the Verification of Sliding Window Protocal , 1997, CAV.

[17]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[18]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[19]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[20]  A. Udaya Shankar,et al.  Construction of Network Protocols by Stepwise Refinement , 1989, REX Workshop.

[21]  Jeff W. Sanders,et al.  An incremental specification of the sliding-window protocol , 2005, Distributed Computing.

[22]  César Muñoz,et al.  From Verified Models to Verifiable Code , 2009 .

[23]  Tobias Nipkow,et al.  Owicki/Gries in Isabelle/HOL , 1999, FASE.

[24]  Mohamed G. Gouda,et al.  Block acknowledgment: redesigning the window protocol , 1991, IEEE Trans. Commun..

[25]  Roger M. Bailey,et al.  Experimental Validation: Subscale Aircraft Ground Facilities and Integrated Test Capability , 2005 .

[26]  Rajeev Alur,et al.  A Temporal Logic of Nested Calls and Returns , 2004, TACAS.

[27]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[28]  Willem P. de Roever,et al.  The rely-guarantee method for verifying shared variable concurrent programs , 1997, Formal Aspects of Computing.

[29]  Rachel Cardell-Oliver The formal verification of hard real-time systems , 1992 .

[30]  J. J. Brunekreef Algebraic Specification of Communication Protocols: Sliding Window Protocols , 1993 .

[31]  Michel Charpentier Composing invariants , 2006, Sci. Comput. Program..

[32]  Karsten Stahl,et al.  Divide, Abstract, and Model-Check , 1999, SPIN.

[33]  Jan Friso Groote,et al.  Verification of a sliding window protocol in μCRL and PVS , 2005, Formal Aspects of Computing.