An agile digital communications network has a number of routers that serve as nodes in a mesh network communicating between a
user device (e.g., computer,
server, etc.) and a target device (e.g., disc storage cabinets, tape, jukebox, etc.). The routers operate on an
open shortest path first protocol, each
router having two or more interfaces or links to other routers. When a link connected to a
router is down and is in the shortest path to another
router identified in a communication packet, the packet is forwarded to the identified router on a precalculated alternate
route that does not use the unavailable link. IP tunneling assures that routing loops do not occur and send the packet back to the router with the unavailable link because it would have been in the shortest path of an intermediate router. A tunneling technique is provided that maximizes the levels of encapsulation needed at two, regardless of the size or configuration of the network. An unavailable link is not broadcast immediately throughout the network, giving the link an opportunity to be restored before all of the routers are called on to recalculate the shortest paths and alternate paths. During a
short interval following the discovery of an unavailable link, then, a router connected to that link is in a state identified as the Use Alternate Path state, and the link is repeatedly checked for availability. Each router calculates and stores the alternative paths to each other router after first calculating the shortest path to each other router. The alternate paths are pulled up and used when an unavailable link is detected. Dijkstra's
algorithm is used to calculate the shortest paths. A new
algorithm called the iterative dynamic Dijkstra's
algorithm is used to calculate the alternative routes.