Heuristic routing is a system used to describe how deliveries are made when problems in a network topology arise.
Heuristic routing is achieved using specific algorithms to determine a better, although not always optimal, path to a destination.
Often the effort (manpower, computer, and other resources) required, the time limits on when the solution is needed, and the cost to compile, process, and analyze all the data required for deterministic or other complicated procedures preclude their usefulness or favor the faster, simpler heuristic approach.
The IP routing protocols in use today are based on one of two algorithms: distance vector or link state.
Link state routing protocols build a topographical map of the entire network based on updates from neighbor routers, and then use the Dijkstra algorithm to compute the shortest path to each destination.