A stepwise refinement heuristic for protocol construction

A stepwise refinement heuristic to construct distributed systems is presented. The heuristic is based on a conditional refinement relation between system specifications, and a “Marking”. It is applied to construct four sliding window protocols that provide reliable data transfer over unreliable communication channels. The protocols use modulo-N sequence numbers. The first protocol is for channels that can only lose messages in transit. By refining this protocol, we obtain three protocols for channels that can lose, reorder, and duplicate messages in transit. The protocols herein are less restrictive and easier to implement than sliding window protocols previously studied in the protocol verification literature.

[1]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[2]  Vic Stenning,et al.  A Data Transfer Protocol , 1976, Comput. Networks.

[3]  Leslie Lamport,et al.  On-the-fly garbage collection: an exercise in cooperation , 1975, CACM.

[4]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[5]  Edsger W. Dijkstra,et al.  Termination Detection for Diffusing Computations , 1980, Inf. Process. Lett..

[6]  Arthur J. Bernstein,et al.  Proving real-time properties of programs with temporal logic , 1981, SOSP.

[7]  Donald E. Knuth Verification of link-level protocols , 1981, BIT Comput. Sci. Sect..

[8]  A. J. M. van Gasteren,et al.  Derivation of a Termination Detection Algorithm for Distributed Computations , 1983, Inf. Process. Lett..

[9]  Brent Hailpern,et al.  Modular Verification of Computer Communication Protocols , 1983, IEEE Trans. Commun..

[10]  Leslie Lamport,et al.  Specifying Concurrent Program Modules , 1983, TOPL.

[11]  A. Udaya Shankar,et al.  An HDLC protocol specification and its verification using image protocols , 1983, TOCS.

[12]  Ralph-Johan Back,et al.  Decentralization of process nets with centralized control , 1983, PODC '83.

[13]  Ralph-Johan Back,et al.  Decentralization of Process Nets with Centralized Control , 1983, PODC.

[14]  Zohar Manna,et al.  Adequate Proof Principles for Invariance and Liveness Properties of Concurrent Programs , 1984, Sci. Comput. Program..

[15]  Simon S. Lam,et al.  Time-Dependent Communication Protocols , 1984 .

[16]  A. Udaya Shankar,et al.  Protocol Verification via Projections , 1984, IEEE Transactions on Software Engineering.

[17]  Leslie Lamport What it means for a concurrent program to satisfy a specification: why no one has specified priority , 1985, POPL '85.

[18]  Aloysius K. Mok,et al.  Safety analysis of timing properties in real-time systems , 1986, IEEE Transactions on Software Engineering.

[19]  K. Mani Chandy,et al.  An example of stepwise refinement of distributed programs: quiescence detection , 1986, TOPL.

[20]  Sandra L. Murphy,et al.  A verified connection management protocol for the transport layer , 1987, Computer Communication Review.

[21]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[22]  Ralph-Johan Back,et al.  Distributed cooperation with action systems , 1988, TOPL.

[23]  Martín Abadi,et al.  The existence of refinement mappings , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[24]  Willem P. de Roever,et al.  Compositional Semantics for Real-Time Distributed Computing , 1985, Inf. Comput..

[25]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[26]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[27]  Leslie Lamport,et al.  Artificial Intelligence and Language Processing ]acques Cohen Editor a Simple Approach to Specifying Concurrent Systems , 2022 .

[28]  A. Udaya Shankar,et al.  Verified data transfer protocols with variable flow control , 1989, TOCS.

[29]  A. Udaya Shankar,et al.  A Relational Notation for State Transition Systems , 1990, IEEE Trans. Software Eng..

[30]  Sandra Lynn Murphy Service specification and protocol construction for a layered architecture , 1990 .

[31]  A. U. Shankar,et al.  Modular design principles for protocols with an application to the transport layer , 1991, Proc. IEEE.

[32]  A. Udaya Shankar,et al.  A Composition Theorem for Layered Systems , 1991, PSTV.

[33]  Sandra L. Murphy,et al.  Connection management for the transport layer: service specification and protocol verification , 1991, IEEE Trans. Commun..