# Energy Efficient Routing in Wireless Sensor Networks: A Comprehensive Survey
## 3 Network Structure
### Flat
#### 3.1.2 Reactive  
The reactive flat protocols are actuated after an event has occurred leading in energy conservation, but also a slower response. In this subsection, five typical examples of protocols of this type are described. _Temporarily Ordered Routing Algorithm_ (TORA) [39] implements link reversal concept. Every node has an attribute called height, which is its location from the BS, with tall nodes being distant nodes and short being closer to the destination. When a link established the destination node compares its own height i with its neighbor height j, then the link is marked either upstream or downstream if \(j\) is greater than \(i\) or vice versa, respectively. The data packets flow through the downstream direction from distant nodes to closer to the BS nodes. In order for this algorithm to be energy efficient, control messages should be limited in a small area of nodes close to the event. The use of TORA reduces both energy consumption and communication overhead. Nevertheless, no incorporation of multicast in basic operation is achieved. In _Flooding_[40], nodes broadcast data packets to all of their neighbors except the sender of the message, until the packet is received by its destination or the maximum number of hops is reached. Although Flooding does not require a routing algorithm to exist, in most cases, the destination will get its packet. In addition, it is resource blind because it generates network overhead with similar sensed data and it does not consider the energy reserves of nodes. It is easy to implement and requires no knowledge of network topology. On the other hand, neighbor nodes sensing the same region send similar data packets to the same neighbor node and high energy consumption without energy awareness is caused. _Gossiping_[41] is another simple networking technique that solves the implosion problem of flooding and routes data without the need of a routing algorithm. During its operation, a source node picks a random neighbor node to send a data packet. Then, the receiver node picks another random neighbor to forward the packet and so on, until the destination receives the data. In Gossiping, implosion is avoided. On the other hand, delays in propagation of data are caused. _Rumor Routing_ (RR) [42] is an alternative of Directed Diffusion, operating between event flooding and query flooding. RR prevents flooding by creating agents whenever a node observes an event. These agents are broadcasted through the network creating paths to the event. When a query is created, it travels on random routes until it meets an agent, discovering the route to the event. If a query is unable to find any agent, the algorithm can either resubmit it or flood it. RR is tunable to different application requirements and is able to maintain only one route from source to destination. In addition, less energy is consumed during event flooding and tolerance of node failures is achieved. However, RR performs worse as events get more. In addition, overhead is caused by adjusting used parameters. _E-TORA_[43] is a variation of TORA with energy awareness. Instead of using only the shorter path nodes, it considers their energy level and prevents frequent use of low energy nodes, resulting in better network lifetime than TORA. Whenever a node needs new data, it broadcasts a query message and sets its route-required flag; receiving nodes operate as follows: