Beacon Vector Routing: Scalable Point-to-Point Routing in Wireless Sensornets R. Fonseca, Berkeley; S. Ratnasamy, Intel Research; J. Zhao, ICI; C. T. Ee, D. Culler, S. Shenker, and I. Stoica, Berkeley NSDI 2005
The BVR Algorithm Algorithm in three distinct parts: –Greedy forwarding –Fallback Mode –Scoped Flooding
The BVR Algorithm Define location based on number of hops to the routing beacons Each node stores its location as a vector of hop counts. P(q) = e.g. Packets are routed based on these vectors
The BVR Algorithm Nodes retain the position of their neighboring nodes. A nodes neighborhood is the collection of nodes one hop away, for most nodes.
The BVR Algorithm The algorithm compares the difference between the packet’s destination and the current node’s neighbors. Main Rule: Minimize the sum of the differences for the beacons that are closer to the destination d than to the current routing node p Ties in the Above are broken by this rule: Minimize the sum of the distances to the farther beacons Distance function
BVR Algorithm
Algorithm in operation
b1b1 b2b2 Beacon Source Destination b3b
b1b1 b2b2 Beacon Source Destination b3b Hop 1: - only one decision
b1b1 b2b2 Beacon Source Destination b3b
b1b1 b2b2 Beacon Source Destination b3b Hop 2: 1: = 8 3: = 4 Choose node 3
b1b1 b2b2 Beacon Source Destination b3b
b1b1 b2b2 Beacon Source Destination b3b Hop 3: 2: = 6 4: = 5 7: = 4 Choose node 7
b1b1 b2b2 Beacon Source Destination b3b
b1b1 b2b2 Beacon Source Destination b3b Hop 4: 3: = 4 5: = 2 8: = 2 -> tie!
b1b1 b2b2 Beacon Source Destination b3b Hop 4: 3: = 4 5: = 2 8: = 2 -> tie! Reverse metrics: 5: = 3 8: = 5 Choose 5
b1b1 b2b2 Beacon Source Destination b3b
b1b1 b2b2 Beacon Source Destination b3b Hop 5: 4: = 5 6: = 3 7: = 4 Choose node 6
b1b1 b2b2 Beacon Source Destination b3b
b1b1 b2b2 Beacon Source Destination b3b Hop 6: 5: = 2 15: = 2 -> tie!
b1b1 b2b2 Beacon Source Destination b3b Hop 6: 5: = 2 15: = 2 -> tie! Reverse metrics: 5: = 3 15: = 1 Choose 15
b1b1 b2b2 Beacon Source Destination b3b
b1b1 b2b2 Beacon Source Destination b3b Hop 7: 14: = 0 Found node!
b1b1 b2b2 Beacon Source Destination b3b
BVR: Fallback Mode It is possible for greedy forwarding to fail. This happens when no neighbor would improve the minimum distance metric When this happens the protocol uses fallback mode
BVR: Fallback Mode Forward packet towards the beacon closest to the destination Parent goes back to forwarding normally: first with greedy forwarding and then fallback mode
BVR: Scoped Flooding When fallback mode fails the algorithm resorts to scoped flooding In scoped flooding the node knows the number of hops away the destination is, but not the direction Floods only the number of hops needed
Example: non-ideal case Example where algorithm resorts to flooding
b2b2 b1b1 Beacon Source Destination
b2b2 b1b1 Beacon Source Destination Calculate forward: = Calculate reverse: =
b2b2 b1b1 Beacon Source Destination Calculate forward: = Calculate reverse: = Would forward to, but not closer then where we’ve already been. Initiate scoped flooding for 3 units away. For such a small network, touches every node.
b2b2 b1b1 Beacon Source Destination Calculate forward: = Calculate reverse: = Would forward to, but not closer then where we’ve already been. Initiate scoped flooding for 3 units away. For such a small network, touches every node.
b2b2 b1b1 Beacon Source Destination Adding another beacon fixes problem b3b3 Calculate forward: =
b2b2 b1b1 Beacon Source Destination Adding another beacon fixes problem b3b3 Calculate forward: =
b2b2 b1b1 Beacon Source Destination Adding another beacon fixes problem b3b3 Calculate forward: =
b2b2 b1b1 Beacon Source Destination Adding another beacon fixes problem b3b3 Calculate forward: =
b2b2 b1b1 Beacon Source Destination Adding another beacon fixes problem b3b3 Calculate forward: = Tie! Calculate reverse: = -> forward to destination
Location Directory How does the sender get the coordinates of the destination? Like a DNS service. –Submits node ID –Responds with location Hash function correlates nodes with certain beacons Beacons must store all the state data of the nodes associated with it