## 2 Related Work
### Geographical Routing and Geocasting  
A different routing strategy for wireless sensor networks is described in [12]: geographical routing. Instead of advertising an interest for data, or requesting to establish a route to a certain destination device, nodes use a routing technique based on node coordinates. Nodes are assumed to know their own position and the position of the destination node (_i.e._, the node where the message needs to be delivered). The idea is that nodes advertise data along with the coordinates where it must be delivered. Nodes closer to the destination node consider themselves candidates for relaying the message. In most of the geographical routing protocols such as Greedy Perimeter Stateless Routing (GPSR) [13], the packets are sent from source to a destination position. GPSR is a geographic routing protocol for wireless networks that works in two modes: greedy mode and perimeter mode. In greedy mode each node forwards the packet to the neighbor closest to the destination. When greedy forwarding is not possible (_i.e._, local maxima may exist where no neighbor is closer to the destination), the packet switches to perimeter mode, where perimeter routing (face routing [14, 15]) is used to route around dead-ends (with right-hand rule [16]) until closer nodes to the destination are found. All geographic routing research to date has assumed that for face routing to work, the underlying network graph must be made _planar_ by selecting a subset of the graph's edges. Note that a planar graph consists of faces, enclosed polygonal regions bounded by edges. Although practical distributed _planarization_ is now a solved problem, due to the high communication/maintenance costs and complexities associated with the deployment of face routing algorithms, alternative approaches to face routing have been proposed. Greedy Distributed Spanning Tree Routing (GDSTR) [17] algorithm, which does not require planarization, builds a _hull tree_ for forwarding packets between two sensor nodes: the root of each subtree maintains the convex hull of the locations of all descendants, as well as the convex hull of all children. In addition, each node maintains the list of hulls that intersect with its own. When greedy routing encounters a dead-end, packets are forwarded up the hull tree until they reach a node whose hull tree encloses the destination. At that point, the packet is forwarded down the tree. For some other scenarios like general position-based publish-and-subscribe services, it is also sufficient for some packets (e.g., queries) to reach any destination currently located in a given area, which is called _geocasting_. [PERSON] _et al._ propose Geographical and Energy-Aware Routing (GEAR) algorithm [18], which shows how to broadcast a message to all the nodes in a target region. GEAR uses greedy forwarding to forward packets to the nodes that are progressively closer to the centroid of the target region, whilst trying to balance the energy consumption at the intermediate nodes. Once the message is delivered to the centroid of the target region, it uses restricted flooding, namely Recursive Geographic Forwarding, to broadcast the message to all remaining nodes in the given region. Instead of using geographical forwarding, GeoTORA [19] uses a unicast (_ad-hoc_) routing protocol (TORA [20]) to deliver the packet to the region and then floods within the region. GEAR and GeoTORA protocols are non-flooding based approaches in which other routing protocols (_i.e._, greedy forwarding, _ad-hoc_ routing) are used instead of flooding to reach the target region of a geocast. The authors in [3] also discuss _directed flooding_ based geocast routing protocols. Directed flooding tries to limit the message overhead and network congestion of naive flooding by defining a forwarding zone, which consists of a subset of all network nodes. The forwarding zone (e.g., rectangle, cone)includes at least the sender of the geocast message and the target region of the message.