Neighbor Cache update algorithm is not absolutely reliable, so each node actively monitors the states of reachable neighbors with which the node communicates. There are two algorithms for verifying the neighbor reachability. The first algorithm uses the messages of upper-layers, i.e. TCP, and the second algorithm is based on sending Neighbor Solicitation messages and receiving Neighbor Advertisement messages as a response.
The following states that are assigned to individual entries in Neighbor Cache are the fundamental for the second mechanism:
The course of changes in individual states during the Neighbor Unreachability Detection algorithm is depicted in the following diagram.