When several computers have to cooperate to achieve a certain task (i.e. distributed computing) we need 'recipes' (i.e. protocols) to tell them what to do. Unfortunately, human minds are not well suited to keeping track of what might happen given even a very simple protocol. In this book Dr Schoone shows how we can derive properties of those protocols that always hold (i.e. invariants), irrespective of what actually happens in an execution of the protocol. From these invariants the basic attributes of the protocols can be obtained. Each protocol is explained intuitively, proved correct using invariants, and analysed to establish the relation between parameter settings and its essential features. The protocols belong to a wide range of layers in the ISO reference model hierarchy, and include the following: a class of communication protocols that tolerate and correct message loss, duplication, and resequencing; protocols for determining and maintaining routing information, both in a static and a dynamic environment; connection-management protocols; and atomic commitment protocols for use in distributed database management.