Distributed Systems - Maarten van Steen, Andrew S. Tanenbaum