Beacon Vector Routing: Scalable Point-to-Point Routing in Wireless Sensornets
Post on 25-Jan-2016
38 Views
Preview:
DESCRIPTION
Transcript
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) = <q1,q2,q3,…qr> • e.g. <5,1,6,4,3,5,7,9,3> • 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 closerto 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
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 1:- only one decision
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 2:1:<0,2,6> = 83:<0,0,4> = 4Choose node 3
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 3:2:<0,1,5> = 64:<0,1,4> = 57:<0,1,3> = 4Choose node 7
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 4:3:<0,0,4> = 45:<0,0,2> = 28:<0,0,2> = 2 -> tie!
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 4:3:<0,0,4> = 45:<0,0,2> = 28:<0,0,2> = 2 -> tie!
Reverse metrics:5:<3,0,0> = 38:<3,2,0> = 5Choose 5
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 5:4:<0,1,4> = 56:<0,1,2> = 37:<0,1,3> = 4Choose node 6
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 6:5: <0,0,2> = 215: <0,1,1> = 2 -> tie!
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 6:5: <0,0,2> = 215: <0,1,1> = 2 -> tie!
Reverse metrics:5: <3,0,0> = 315: <1,0,0> = 1Choose 15
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
Hop 7:14: <0,0,0> = 0Found node!
9
14
3
1
b1
b2 Beacon
Source
Destination
<4,1,2>
<1,4,7><1,2,5>
<5,2,3>
<5,2,1><5,3,2>
2
<2,5,8> 4
<1,3,3>
5
<2,3,4>
13
b3
<4,4,3>7
8
1210
6
15
11
<3,4,4><1,4,6>
<0,3,6>
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
b2
b1
Beacon
Source
Destination
<3,0>
<2,2>
<0,3>
<1,2>
<2,3><3,4>
<3,1>
<1,3>
<2,1>
b2
b1
Beacon
Source
Destination
<3,0>
<2,2>
<0,3>
<1,2>
<2,3><3,4>
Calculate forward:<1-3,3-4> = <0,0><1-3,2-4> = <0,0>
Calculate reverse:<3-1,4-3> = <2,1><3-1,4-2> = <2,2>
<3,1>
<1,3>
<2,1>
b2
b1
Beacon
Source
Destination
<3,0>
<2,2>
<0,3>
<1,2>
<2,3><3,4>
Calculate forward:<1-3,3-4> = <0,0><1-3,2-4> = <0,0>
Calculate reverse:<3-1,4-3> = <2,1><3-1,4-2> = <2,2>
<3,1>
<1,3>
<2,1>
Would forward to <1,3>, but not closer then where we’ve already been.
Initiate scoped flooding for 3 units away.For such a small network, touches every node.
b2
b1
Beacon
Source
Destination
<3,0>
<2,2>
<0,3>
<1,2>
<2,3><3,4>
Calculate forward:<1-3,3-4> = <0,0><1-3,2-4> = <0,0>
Calculate reverse:<3-1,4-3> = <2,1><3-1,4-2> = <2,2>
<3,1>
<1,3>
<2,1>
Would forward to <1,3>, but not closer then where we’ve already been.
Initiate scoped flooding for 3 units away.For such a small network, touches every node.
b2
b1
Beacon
Source
Destination
<3,0,3>
<2,2,4>
<0,3,2>
<1,2,1>
<2,3,2><3,4,1>
<3,1,4>
<1,3,3>
<2,1,2>
Adding another beacon fixes problem
b3
<2,3,0>
Calculate forward:<3-3,1-4,4-1> = <0,0,3><1-3,3-4,3-1> = <0,0,2>
b2
b1
Beacon
Source
Destination
<3,0,3>
<2,2,4>
<0,3,2>
<1,2,1>
<2,3,2><3,4,1>
<3,1,4>
<1,3,3>
<2,1,2>
Adding another beacon fixes problem
b3
<2,3,0>
Calculate forward:<2-3,2-4,4-1> = <0,0,3><0-3,3-4,2-1> = <0,0,1>
b2
b1
Beacon
Source
Destination
<3,0,3>
<2,2,4>
<0,3,2>
<1,2,1>
<2,3,2><3,4,1>
<3,1,4>
<1,3,3>
<2,1,2>
Adding another beacon fixes problem
b3
<2,3,0>
Calculate forward:<1-3,3-4,3-1> = <0,0,2><1-3,2-4,1-1> = <0,0,0>
b2
b1
Beacon
Source
Destination
<3,0,3>
<2,2,4>
<0,3,2>
<1,2,1>
<2,3,2><3,4,1>
<3,1,4>
<1,3,3>
<2,1,2>
Adding another beacon fixes problem
b3
<2,3,0>
Calculate forward:<0-3,3-4,2-1> = <0,0,1><2-3,3-4,2-1> = <0,0,1><2-3,3-4,0-1> = <0,0,0>
b2
b1
Beacon
Source
Destination
<3,0,3>
<2,2,4>
<0,3,2>
<1,2,1>
<2,3,2><3,4,1>
<3,1,4>
<1,3,3>
<2,1,2>
Adding another beacon fixes problem
b3
<2,3,0>
Calculate forward:<1-3,2-4,1-1> = <0,0,0><3-3,4-4,1-1> = <0,0,0>Tie! Calculate reverse:<3-1,4-2,1-1> = <2,2,0><3-3,4-4,1-1> = <0,0,0>-> 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 thestate data of the nodes associated with it
top related