Algorithms for Communication Networks