Routing Algorithms In Distributed Systems