## 2 Related Studies  
It is important to note the differences between faults, errors, and failures. A fault is any kind of defect that leads to an error. An error corresponds to an incorrect system state. Such a state may lead to a failure. A failure is the manifestation of an error, which occurs when the system deviates from its specification and cannot deliver its intended functionality. A sensor node with a fault or error could transmit a packet that might have incorrect data or in an incorrect way. Some researches focus on the detection and exclusion of faulty or erroneous nodes. If several sensor nodes in one area acquire routing layer faults, packets might be transferred in the wrong direction. Such packets could later be delivered by normal sensor nodes. However, if several nodes in an area fail simultaneously, packets from the failed area could be lost because the sensor nodes in the failed area could not forward them. Therefore, failures could cause more serious problems in wireless sensor networks [1-18].  
ARRIVE is a probabilistic algorithm that leverages the high node density and the inherent broadcast medium found in sensor networks to achieve routing robust to both link failures and patterned node failures without resorting to periodic flooding of the network [9]. ARRIVE is based on a tree-like topology rooted at the sink of the network, and nodes use localized observed behavior of the surrounding nodes to make probabilistic decisions for forwarding packets. ARRIVE adapts to large patterned failures within a relatively short period of time at the cost of only moderate increases in overall power consumption and source-to-sink latency. Shortest Path Minded SPIN (SPMS) in which every node has a zone defined by its maximum transmission radius was proposed in [10]. A node which is a data source advertises the availability of data to all the nodes in its zone using a metadata descriptor. Any interested node requests the data and gets sent the data using multi-hop communication via the shortest path. The failure of any node in the path is detected and recovered using backup route.  
Conventional routing protocols such as MintRoute or PROC (Proactive Routing with Coordination) use the cumulative statistics for the links between nodes to detect failures. If a sensor node cannot receive packets from a neighbor node, the neighbor node should be regarded as a failed node. If a neighbor node is classified as a failed node, the node is removed from the neighbor table. A sensor node updates its neighbor table whenever it receives a message from a neighbor node. If the packet is a routing packet, the packet includes the state information of the sending node. The routing control message tells the receiving node how good the sending node is. When a data packet is received, the receiving node updates the link statistic for the sending node. A sensor node checks its neighbor table frequently and selects a neighbor node with the highest link quality as a parent node. If a sensor node has not heard from a neighbor node for a while, then that neighbor node is regarded as a failed node and removed from the neighbor table. Some researchers have proposed using multiple paths to send a packet for reliability. In these protocols, a packet is sent through multiple paths that are far away from each other, and thus, multiple copies of the packet could arrive at a sink node, even if some paths fail. However, although packets could be delivered to a sink node properly, multiple transmissions of a packet require more energy consumption. Thus, the lifetime of a sensor network could be shortened quickly [19-25].