• No results found

Fundamentals and Methodology

2.5 Selected Algorithms

2.5.6 Location Services

In Section 2.4.2, we have identified a location service as a building block in location-based routing. The task of the location service is to map an arbitrary node iden-tifier to the node’s (reasonably) current position by means of an ad-hoc protocol.

[219?] classifies location services according to which node(s) hold location informa-tion about other nodes. E.g., a method by which every node would hold locainforma-tion information about every other node would be an all-for-all location service, while a location service where only the node maintains its own location for a one-for-one approach. These two points mark the extreme characteristics of a location server, the all-for-all approach constantly flooding the network with position information.

Here, the consequences are similar to those in topology-based routing: Maintaining everything constantly creates a high overhead but provides a low startup delay for routing, while the more reactive a location service gets, the lower the constant over-head and the higher the startup delay. Methods intelligently distributing or even aggregating position information are a compromise, reaching higher scalability at the cost of some proactive overhead. In contrast to topology information, where a lost link can totally invalidate a route, position information remains valid for a certain time. Assuming a maximum node speed, the area where the node can be after a certain time period, can exactly be calculated. In addition, the exactness of position information becomes less important the further away from each other two nodes are. Or more colorful — the precise city block in downtown Manhattan is rather insignificant for getting a flight bearing from, say, Atlanta. This effect has been called DREAM or Distance Routing Effect Algorithm for Mobility [68, 93] and was exploited for a location-based directional flooding protocol.

Grid Location Service

The probably most prominent location service is the Grid Location Service or GLS [204], which exploits distance aggregation by structuring the network into a grid structure. To do this, the network is first covered by an appropriately large square.

Then, this square is quartered (halved in every dimension) into smaller squares until the grid is so small that every node inside the smallest square is guaranteed to hear every other node sharing this smallest square. Thus, when position information is proactively and locally broadcast, every node inside this square is informed about every other node’s position, or in other words every node serves as each others

1

Figure 2.17: GLS example (from [204])

location server. Now for longer-distance position propagation, only some nodes in some other squares serve as a server. In the example from the original GLS paper depicted in Figure 2.17, the grid-like structure formed by the ongoing division of the blue top-level square is depicted. The 64 smallest squares of order L = 0, every four of them forming one of the red 16 L = 1 squares, again shaping the green 4 L = 2 squares, finally making the blue square of order L = 3, which covers the complete network area.

Now on every level, every node picks exactly one node for any of the three neigh-boring squares of the same next-order square, i.e., in the example, node 17 residing in square D6 is also a member of the higher-order (green) square C5-D6 and of A5-D8 (red). Thus for 17, the three of the L = 1 location servers reside in C5, D5, and D6 etc. If there is more than one candidate for holding the location information, the one with the next higher node ID (wrapped-around at the maximum of the ID space) than the node concerned is selected. In the example, 23 is selected in square C5 because it is higher than 17 and closer than 41. Routing to these squares works solely position-based on the basis of the squares’ positions. In the picture, all location servers for 17 are marked with a square.

Now whenever a node, say 1 wants to know about 17’s position, it climbs up inside the hierarchy until a location server for it is found. For this, it uses the knowledge that the location server has to hold the least higher node ID than 17, which would be 62 in 1s green L = 1 square. 62 is no location server for 17.

2.5 Selected Algorithms

However, it happens to be 37’s location server, which is the ID-closest node in the red L = 2 square. Since 37 is indeed a location server for 17, the resolution cycle is over. While the above describes only the basic functioning, the GLS authors’

implementation is a very complicated one and covers a number of special cases like, e.g., nodes moving to other squares etc.

Analyzing GLS, one can say that it reaches scalability by thinning out the number of far-away location servers is both limiting the number of locations one node has to hold and the number of servers it has to provide its location for. However, a fundamental problem can be seen in the grid structure, which has been applied with complete unawareness of the real node distribution. E.g., if most of the communi-cation is between nodes near in the network’s center but only sharing its highest order, location queries can be quite inefficient.

We have extensively studied Grid as a candidate for our own routing protocols (see [195?, 194?]).

Geographical Region Summary Service

The second location service we describe is the Geographical Region Summary Service or GRSS [157], which also uses a virtual quad-tree grid structure, but using an all-for-all approach, i.e., every node knows about the location of every other node in the network. To make this method scalable, the creators of GRSS make use of so-called region summaries. A region summary is a bit vector with one bit for every possible node ID in the system. If it is set for a certain region, the node is located there.

As in GLS, every node resides in exactly one square for each order or level. E.g., the red star node in C1 of Figure 2.18 is contained in four squares, a black, a green, a red and a blue one. For each of these squares, the region summaries are sent to the neighboring tree squares. After that, any node would at least know in which quadrant of the network every other node resides. If in the same quadrant, it would know the sub-quadrant and so on. Consequently, if the green diamond node wants to communicate with the red star node, it already knows it to be in the northwest quadrant and can immediately send packets there using position-based forwarding.

When entering the destination quadrant, the granularity of information improves, and the destination region is adapted until the red star is reached.

While the advantage of this method is to be able to immediately send packets, the obvious drawback is its scalability with respect to the number of supported node IDs requiring one bit per ID. To alleviate this, the authors propose the usage of Bloom-Filters [21, 81, 224, 88], i.e., a data structure that has properties like a bit vector but needs less than one bit per possible value trading in some probability of error.

1 2 3 4 5 6 7

8

A B C D E F G H

Figure 2.18: GRSS example (like in [157])

Other Location Services and New Directions

As we will see for many MANET-related problems in the course of this thesis, the playground for location services is rather crowded. [223] already lists some more relevant approaches, like the Virtual Home Region [138], where every node has one home region hash-calculated upon its globally unique ID. The node stores its loca-tion informaloca-tion in this region, and others retrieve it there. Another approach is the use of quorum systems [213, 147, 278], which is a well-known concept known from database and distributed systems research. In principal, nodes select a subset (quorum) of all nodes to be position servers, while for querying, another (inter-secting) subset is chosen. The maybe most illustrative example is a north-south quorum, where every node propagates its position information to the north and to the south, and all queries are sent to the east and the west, intersecting inevitably.

DREAM [68] (see next Section) features a complete position-based routing system, also featuring an all-for-all location service part. Similar to GRSS, the scalability factor of DREAM’s location service relies on the so-called distance effect, aggregating node positions to directions, stating that directions change the less, the further away from each other two nodes are.

A scheme more similar to GLS is DLM or Distributed Location Management [306], which also uses a grid structure laid out over the network.

2.5 Selected Algorithms

A new direction of thought was introduced by Geographic Hash Tables or GHT [250], also allowing hash-based information retrieval that could be position in-formation. Another example of current thoughts on location services is EASE [142], based on random walks and the location trace a moving node leaves in an Ad-Hoc Network . MLS [118], finally, is a MobiHoc ’06 paper giving theoretical bounds for querying and node speed. Additionally, it has a very up-to-date related work section for the curious.

While much research has been and still is focused on location services, we will discuss two of our own proposals in Sections 3.1.1 and 3.2. For further studies on the performance of location services, please check [92].