The Sliding−Window Protocol in CSP
K. Paliwoda and J.W. Sanders
A formal specification and proof of correctness is given of the sliding window protocol using the notation of Communicating Sequential Processes. First the stop-and-wait protocol is defined; its correctness, that it forms a I-place buffer, is almost evident. Next the alternating-bit protocol is defined and described in terms of the stop-and-wait protocol, and its correctness deduced. Finally the sliding-window protocol is described in terms of the alternating-bit protocol and its correctness deduced accordingly. The protocols are refined, and implemented in occam. The paper has two thrusts: that modularity of a specification helps to structure proofs about it (in this case, proofs that the protocols implement buffers); and that refinement in CSP leads to structured, correct implementations in occam.