
 
the flooding algorithm redundancy, to tolerate 
clustering inaccuracies. If conventional criteria were 
used, the clustering algorithm would create highly 
unstable clusters, which would include passing-by 
moving nodes, and would route query packets based 
on this error prone information.  
4 SEARCHING ALGORITHMS  
The searching algorithms were developed as an 
evolution of the basic source routing flooding 
algorithm (SR). In SR the lookup operation is started 
with a query message originated by a source node, 
which carries a unique identification (Q
id
), the 
source node address (n
source
), a resource 
identification pattern to locate (R
id
), and the path (P). 
This message is successively resent by each node, as 
long as it has not been received before and the hop 
limit is not reached. Each sender appends its 
identification to P. Nodes maintain a local table 
indexed by source node id, with last query' ids 
received. A hit message is sent to the source node 
when any local information satisfies the query. Hits 
are routed to the query's node source using the path 
included in the query message.  
This paper proposes 1.5-hop and 2.5-hop 
algorithms that enhance SR flooding phase, reducing 
its overhead, and the hit message routing, improving 
its resilience to node movement and failure. SR is 
modified in three ways: 
(a) The number of active nodes is reduced using 
the clustering node information. A node can be: a 
BGL if it receives a beacon selecting it; a non-BGL 
if it selects a BGL but is not selected a BGL; or 
isolated if it does not select a BGL. An unstable 
node with one or more stable nodes in its 
neighborhood selects for BGL the node with the 
highest µ value, strictly for flooding purposes. Two 
approaches are presented above; 
(b) Query message size is reduced by removing 
all non-BGLs and isolated nodes' ids before the last 
BGL from the path field (P). The partial path is 
stored and pruned, each time the message passes on 
a BGL. In case of node failure, the node can always 
use the BGL list (stored in the query message) to 
recover the route to the source node; 
(c) When hit messages follow the query reverse 
path, unicast is used and their sending is confirmed. 
When a link fails, the node looks at its neighbor list, 
and neighbor's BGL list, looking for any node on the 
reverse path. As a last resort, when no information is 
available, the node that detects the failure starts a hit 
message flooding. The hit message is treated as a 
special query packet, looking for a node id within 
the remaining query path list, which does not receive 
any reply. Hit flooding stops when the message 
reaches a node whose neighbor's (or the node itself) 
are part of the remaining path. Therefore, contrary to 
SR, the proposed algorithm is able to survive to 
extreme mobility, and is able to route hit messages 
over failed or moving nodes. 
 
A.  1.5-hop searching algorithm 
 
BGL and isolated nodes always broadcast 
queries one time (though isolated delay message 
transmission). A non-BGL delays the query sending 
for a fixed delay plus a jitter interval, and lists the 
visited BGL on a local variable. While the timer is 
active, the node continues to receive replicas of the 
query message resent by neighbors. It just extracts 
the query path list (P), and updates the visited BGL 
list with the node's address and the nodes's BGL 
address. When the timer goes off, the node checks to 
see if all its neighbors' BGLs and his own BGL are 
already listed. If they are not, then it resends the 
message to cover the missing BGLs. Otherwise, it 
drops the message.  
Since BGLs do not delay the message and 
isolated nodes do, search path goes preferentially 
over BGL nodes. For cluster-tree borders defined by 
non-BGLs, the timer's jitter limits the number of 
retransmissions that occur on dense networks. The 
faster non-BGL on an area transmits the query to the 
destination BGL (or non-BGL for BGLs separated 
by two non-BGLs), which retransmits it. The BGL is 
added to the visited BGL list of other non-BGLs on 
the same area suspending their transmissions.  
The algorithm improves SBA (Peng, 00) and 
ABC-QS (Choi, 02): It reduces the searching delay 
while crossing a connected set of stable nodes 
because BGLs never delay a query message; it 
reduces the message size (the number of BGL is 
lower than the number of nodes); it bases search 
paths preferentially over stable nodes, less likely to 
disappear; and it degrades more gracefully in the 
presence of transmission errors. It handles 
transmission errors similarly to SBA and ABC-QS: 
nodes keep sending a query message as long as a 
BGL does not appear on the path. Therefore, it only 
fails to reduce the load if none of the neighbor 
members of a BGL cluster retransmit the query 
message. This behavior improves the algorithm 
effectiveness for high network loads (due to the 
higher collision rate) and for high mobility 
conditions.  
The algorithm does not guarantee total coverage 
on unstable networks, because it does not take into 
account unstable nodes in the neighborhood that did 
not yet transmit a beacon.  
 
B.  2.5-hop searching algorithm 
SEARCHING FOR RESOURCES IN MANETS - A cluster based flooding approach
107