# Energy Efficient Routing in Wireless Sensor Networks: A Comprehensive Survey
## 5 Reliable Routing
### Multipath Based  
Multipath based protocols are able to use many different paths, being able that way to tolerate route failures, perform load balancing, and lower end-to-end delay. In what follows in this section, twelve typical examples of multipath based energy efficient routing protocols are described. In _Routing On-demand Acyclic Multipath_ (ROAM) [155], every router node maintains three tables: a distance table, a routing table, and a link-cost table. Distance table is a matrix that contains the distance between two neighbors at a router, routing table at a router is a column vector that contains: for every destination, the feasible distance, the distance to the destination node, the reported distance, the query origin flag, the timestamp, and the successor. The link-cost table contains the costs of the links to each known neighbor. To maintain routes and loop freedom, it uses a concept called feasible distance. In addition, it detects network partitions by requiring nodes to send update messages to neighbors whenever there is a change in distance to a certain destination. When a router needs to send a data packet to a destination with no entry in its routing table, it starts a diffused search that propagates from the source on a hop by hop basis, until it finds a router with an entry for the requested destination. Then, the router with the entry sends a reply message with the distance of the destination node. In the case that there is no route to destination all nodes in the same connected component determine that the destination is unreachable and prevent the routers from unnecessary search packets. By using ROAM, network lifetime is extended. In addition, unreachable destination informing is produced. Moreover, unnecessary packets are prevented. However, periodic updates need to be sent. Label based Multipath Routing (LMR) [156] protocol broadcasts a control message across the entire network to find an alternative path. During this procedure, whenever a message passes through a path, the path is assigned a label with information used for segmented backup path search in case a disjoint path is not achievable. This protocol uses only localized information, with one flooding, to find disjoint paths or segments, protecting this way, the working path. When a node, reinforces one of their link to form the working path, it transmits a label message to its neighbors. Reinforcement and label messages have an integer value that is increased by 1 when a working node broadcasts a new label message. Nodes on the working path remember the value of their own labels. Label messages are forwarded to the source along all the paths from which the data messages pass through, in order to make the label messages from nodes close to the base station go as far as possible, so that the disjoint paths can be found. When they receive two or more label messages, nodes transmit the one with smaller label value or in case the values are equal, it transmits the first one recorded. In addition, the working nodes do not forward label messages from other nodes. Each node keeps track