# Energy Efficiency for Green Internet of Things (IoT) Networks: A Survey +
## 3 Literature Review
### Taxonomy of Energy Consumption Solutions
#### 3.7.1 Routing Protocols
A node is announced as a failure node when a sensor cannot send/transmit packets with its neighbor nodes for more than a specific period of time and thus eliminated from the routing path. Such node failure should not affect the overall sensor network [123]. WSN routing methods should be able to recover from the failure of a sensor node [115]. Therefore, a routing protocol must pick and connect with new sensor nodes (within the range of transmission) dynamically to forward the data gathered by other nodes to the final target. For example, Figure 16 clearly reveals that source1 forwards its data to the final target via some intermediate nodes. Unfortunately, _path_1 and 2 failed to pass the source1 data to the ultimate receiver due to failure of some nodes. Hence, a new path is required to disseminate the packets to the final destination (i.e., _path_3). Several studies have been carried out to provide routing protocols that help to recover from a failed node in the network. Most of this research focused on providing a backup node or finding an alternative node to avoid link failure from source to destination. According to an investigation by [124], the low-power wide area network (LPWAN) is one of the best and promising solution for long range communication and low power consumption for IoT and M2M communication applications. In different study [122], authors reported a mobile sensor node acting in cooperation with a static node to fill gaps created by faulty nodes in the sensing field, which resulted in overcoming the failure issue and increasing the network lifetime. Other work [125] proposed a new procedure that could replace the dead CH node with backup cluster heads (BCH) in the case of CH node failure. One study [126, 127] has proposed an energy-efficient backup and recovery node selection for IoT networks. The system includes  
Figure 16: Recovery from node failure. _Path_s1 and 2 failed to carry the data from source1 to the ultimate receiver. Therefore, source1 establishes another path (_path_3) to deliver its packets. backup nodes which are in sleep mode until required due to a node failing and then are enlivened. This results in energy-efficient solution and maximizes the lifetime of network. In another study [128], the authors proposed a new algorithm to create primary and alternative paths in the network. The proposed method reroutes the traffic from nodes connected directly to the failure node, and reroutes the traffic in an alternative path. In addition to [128, 129] suggested a novel path redundancy-based algorithm which called for dual separate paths (DSP). The DSP algorithm provides fault-tolerant communication for WSN applications. This protocol implements two separate paths between a node and the intended destination and thus improves the network traffic performance. The cluster-head recovery algorithm (CHRA) [130] uses a check-pointing techniques to create a recovery route for each node and in each cluster. In the case of CH failed, a recovery route is established for sensor nodes connected to the failed CH node. In the wireless ad hoc networks, it is decentralized to route the packets from the source to target. It also does not need any particular infrastructure such as backbone, access points, etc. Ad hoc On-Demand Distance Vector (AODV) routing is being one of the standard protocols in wireless ad hoc networks. It uses when two or more endpoints do not have a valid active route to communicate each other [131]. In another study [132], dynamic source routing (DSR) is a routing protocol for wireless mesh networks. It is similar to AODV protocol where it forms a route on demand when transmitting packets. However, it uses source routing instead of relying on the routing table at each intermediate node. Recent study by [133] revealed a new saving routing mechanism, named energy-efficient cooperative Scheme for Heterogeneous WSNs (EERH).