System Models in Distributed Systems
The foundation of every algorithm in a distributed system is on what kind of underlining hardware system it will execute on. In practice, nodes (physical or virtual machines) and communication links between them (the physical network layer), can behave in a variety of ways. So for an algorithm to be correct, we need to assume what properties the underlining systems will have.