All dynamic routing protocols are built around an algorithm. Generally, an algorithm is a step-by-step
procedure for solving a problem. A routing algorithm must, at a minimum, specify the following:
A procedure for passing reachability information about networks to other routers.
A procedure for receiving reachability information from other routers
A procedure for determining optimal routes based on the reachability information it has and for
recording this information in a route table
A procedure for reacting to, compensating for, and advertising topology changes in an
internetwork
A few issues common to any routing protocol are path determination, metrics, convergence, and load
balancing.