Research Article

A Multipath Routing Protocol Based on Bloom Filter for Multihop Wireless Networks

Algorithm 1

Operation at a node.
Notations:
hc: hop count
nn: next node
ns: neighbor of source
Rs: route to the source
Rd: route to the destination
BF: bloom filter
(1) Upon receiving an RREQ message at the destination
Begin
if a new RREQ then
 Set a timer Td
 / Initiate an RREP2 after timeout /
 Send an RREP1 back to the source
 Record the BF of the primary path
end if
if a second RREQ && RREQ.ns BF then
 Record the previous hop as the next hop of RREP2
else if a duplicate RREQ && within the timer Td then
if RREQ.ns BF then
  Initiate an RREP_N
else
  Add the neighbor nodes of the destination to the BF
end if
End
(2) Upon timeout at the destination
Begin
if receives a second RREQ && haven’t sent an RREP_N then
 Extract the information of the next hop and the BF
 Initiate an RREP2
end if
End
(3) Upon receiving a reply message at an intermediate node
Begin
Case: an RREP1
 Forward the RREP1 based on the source route
Case: an RREP2
if has an N_Route (Rs.ns BF) then
  Initiate an RREP_N
else if has an O_Route (Rs.ns BF && Rs.nn BF) then
  Relay the RREP2 to Rs.nn
else if has an L_Route (Rs.nn BF && Rs.hc == 1) then
  Relay the RREP2 to Rs.nn
end if
if has an Rs.nn BF && Rs.hc is the shortest one then
  Send an RREP_A to Rs.nn
end if
Case: an RREP_N
if has an Rs.nn BF && Rs.hc is the shortest one then
  Send an RREP_A to Rs.nn
end if
 Relay the RREP_N to next hop based on the source route
Case: an RREP_A
 Record the Rd information stored in the RREP_A
End