Routing is the mechanism for finding the most cost effective path between a source and destination in a packet switched network. It is a crucial aspect that must be simple, robust against failures, and converge to stability. Common routing algorithms include shortest path, distance vector, link state, hierarchical, broadcast, multicast, and those for mobile and ad hoc networks. Flooding does not require network information but generates many duplicate packets, though it always finds the shortest path and is highly robust for emergency messages.