Introduction to distributed algorithms - Gerard Tel (Cambridge University Press, New York, 2000)