# Energy Efficient Routing in Wireless Sensor Networks: A Comprehensive Survey
## 5 Reliable Routing
### Multipath Based
Then, cluster nodes add their IP address while cluster heads add these IP addresses in their HELLO messages and keep track of all IP addresses of their cluster nodes and neighbor cluster heads in their routing tables. As a multipath protocol, it sets up multiple paths that can be classified as optimal path, shortest path and so on according to three parameters, i.e., hop number (\(h\)), accumulated delay (\(d\)), and bandwidth (\(b\)), which are included in the path messages received by the source. Its operation consists of the following steps:  
1. At first, it calculates the path weight value based on (6): \[w=\frac{b}{\ln(d\cdot h)}\] (6)
2. The second step is the utilization of a coding technique called M for N diversity (provided that at minimum N blocks will get to the destination it reconstructs the original X bit information packet) to solve the network's inherent unreliability by adding extra information overhead to every packet, which is fragmented into smaller blocks. 3. Finally, the blocks are distributed over available paths according to path's weight value. A large path weight value means more blocks distributed via this path. To minimize packet drop rate, achieve load balancing, and improve end to end delay, the data load is sent via multiple paths. In CBMPR, the simple cluster level hop by hop routing is used. In addition, less interference exists compared to multipath routing. Yet, errors and increased overhead in packet reassembly exist. _Directional Geographical Routing_ (DGR) [160] protocol offers a solution to the real-time video streaming problem in a constrained network, in terms of bandwidth and energy, with scattered Video Nodes (VN) as well as the combination of Forward Error Correction (FEC) coding. In DGR, a VN sends an aggregated packet of data and FEC packets of the video frame to direct neighbor nodes. Receiving nodes read aggregated packet's identifiers and sequence numbers and set their payload in the aggregated packet. Finally, receiving nodes unicast the packets via relative individual routes to the base station. In DGR, low delays, extended network lifetime and high video quality are attained. However, DGR mainly focuses at video data transmission. _Directional Control Fusion_ (DCF) [161] is a protocol that combines load balancing and data fusion mechanisms. With the use of multipath fusion factor, DCF can compromise multipath converging and multipath expanding to meet various criteria of each application. In every round, a source is elected as a reference based on energy and distance criteria. Then, all source nodes start a timer called Reference Source Selection timer (RSS timer) and set a random value on one of the criteria. A source with a small value of RSS timer is more eligible as the reference source of this round. After that, DCF monitors the timers and sets the next reference source the one with the first expired timer, which in turn sends an announcement message, with its location, to its neighbors. Then, receiving sources cancel their timer and the reference source constructs the reference route while the rest of the sources send the control packets. In DCF, multipath-converging and multipath-expanding trade-offs are combined. However, one source node per round is selected as the reference source. _Routing Protocol for Low power and Lossy networks_ (RPL) [162] is an IPv6 protocol, which contains an ingredient called Destination Oriented DAG (DODAG) that is rooted on a single root node with no outgoing edge. This DODAG formation starts at the root and spreads gradually to cover the whole network. Each router in the converged state of the wireless network has identified a set of parents, on the path towards the DODAG root node as its preferred parent. Every router emits DODAG Information Object (DIO) messages with the use of link local multicasting that indicates its respective Rank in the DODAG. After it has received a number of DIO messages, the router will calculate its rank. In case the rank is greater than the rank of its parents, it starts to emit DIO messages.