Given a ZigBee mesh network with several nodes in it. There are established links between each node via router nodes.
If Node A wants to send a message to Node Z for the first time then Node A must perform a Route Discovery to determine which intermediate nodes will forward its message.
The Route Discovery mechanism is described here. According to it the route with the lowest cost will be stored in a Routing Tables of the nodes.
So far everything is fine, every node knows what to do, they can reach each other.
Now, an intermediate node, between Node A and Node B breaks down, so the currently stored route becomes unusable.
What happens in this case? I imagine that when Node A wants to send a message, it will travel all the way to the broken link where it will get stuck. The last node in the route will send back a message about the failure which will trigger a new Route Discovery by Node A, then a new route will be found and everything will be alright again.
It is generally fine (given I was correct); the network recovers. But I am wondering if there are any algorithms or methods that provide a network monitoring feature which continuously checks the state of the links presented in the Routing Tables. So Node A can be notified about the failure before it wants to send another message to Node Z, and instead of running into a dead end, it can start with a Route Discovery at once. So basically what I'm thinking of is a service which periodically checks the links.
I understand that as ZigBee is usually used on battery powered, low-power devices such a mechanism would be not energy efficient.
So in general what are now the most effective link failure detecting mechanisms that can be used in a low-power, wireless sensor network, especially in a ZigBee mesh network?