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.