370 likes | 491 Views
Bouncing Effect and its Solutions. Ming-Fei Guo Wireless Network and Sensor Network Lab. Definition.
E N D
Bouncing Effect and its Solutions Ming-Fei Guo Wireless Network and Sensor Network Lab
Definition The bouncing effect refers to the very long duration for convergence when failures happen or weights increase, and the nonterminating exchanges of messages or counting-to-infinity behavior in disconnected components of the network resulting from failures. A loop-free extended Bellman-Ford routing protocol without bouncing effect
Bouncing effect in wired network • Distance vector routing algorithm
As can be seen from the example in the previous section, the bouncing effect and the counting-to-infinity behavior arise due to the fact that a node may offer its neighbor a distance corresponding to a path that has that neighbor as an internal node of that path which is a non-simple path.
The bouncing effects can be solved by searching shortest path only in simple paths.
counting-to-infinity can be sloved by setting a bound.When the bound is approached,destination is thought to be disconnected. No influence on the connected network.
Protocols with non-simple path detecting • Detect whether the neighbor is in the path that will be offer to the neighbor • Tag each routing table entry with sequence number,so nodes can distinguish the stale one from the new one.
Detect Neighbor in Path • Using the whole path information to detect. K.G. Shin and M. Chen “Performance Analysis of Distributed Routing Strategies Free of Ping-Pong-Type looping”
However, the overhead in this approach is large, because an entire path corresponding to each distance entry is recorded consequently.
Detect Neighbor in Path • Detect only using head node information of each path. Head node of the corresponding path is the node whose next node is the destination.
The overhead saved by this approach is considerable! Only Head, Not the Entire Path!
In this presentation, I will explain this approach in detail.
Review the Distributed Bell-ford Approach(Distance Vector) The Algorithm Discription
Definitions • R(i,j):the path from i toj (i,n1,n2,…,nr,j) (i,n1),(nr,j) are links. • Simple path: A simple path from i to j is a sequence of nodes with no node being repeated more than once.
Definitions • Head of Path:the last node preceding node j in the sequence of nodes in Rij • P(i,j):Preffered neighbor by which from i to j. • RDIST(i,j):the shortest distance from i to j. • d(i,k):the weight of the link between i and k,where k and i are neighbors.
The Data Structure Introduction Node i • V(i):Update distance vector of node i ,the entry is (j,D(i,j)).
The Data Structure Introduction • D(i):The Distance Matrix of Node i,(J*K) Matrix,J is the number of destination,K is the number of neighbor. • DK(i,j):the distance from i to j via neighbor k. Neighbors of node i
Upon receiving vector V(k) on link (i,k). • Step(0): begin v(i)¢; Step(1): For each entry (j,D(k,j)) do begin Dk(i,j)d(i,k)+D(k,j) end
Upon receiving vector V(k) on link (i,k). • Step(2): for each row j in D(i) do begin if minDk(i,j)!=RDIST(i,j) then begin RDIST(i,j) minDk(i,j) P(i,j)argminDk(i,j) v(i)v(i) ∪{(j, RDIST(i,j))} end end
Upon receiving vector V(k) on link (i,k). • Step(3) if v(i)!= ¢then begin send V(i) to all neighbors. end
Upon receiving notification failure(i,k) • Step(4): Begin delete column k in D(i) and execute steps 2 and 3. end
Upon receiving recover(i,k,d(i,k)) • Step(5): Begin insert column k in D(i). response as if a single entry in V(k)={(k,d(i,k))} in link (i,k). copy the whole routing table to V(i),and send it to k. end
New Definition • hk(i,j): the last node preceding node j in the sequence of nodes in R(i,j). • P(i,j):the preffered neighbor of R(i,j)
New data structre The elements of Distance Matrix Dk(i,j) is replaced by {Dk(i,j),hk(i,j)} V(i,b):The update packet corresponding to neighbor b instead of only V(i) for every neighbor.
If the neighbor is in the path that has the neighbor as an internal node,then,mark the distance to the corresponding destination j as ∞ in V(i,b).
Two Definition • The path implicit in distance D: the path established for computation of D. The path extracted from distance D: the path established using the method above.
Correctness under the assumption We can use the method to infer whether the neighbor is in the path only under the assumption: a path extracted from routing table using the head information is the path implicit in this shortest path distance.
Bell-ford can break this rule i At time t1,R(i,a)=i-c-b-a c b Distance vector of i a The path extracted is also i-c-b-a
Bell-ford can break this rule i Distance vector of i c Routing table of i b At time t2,b become i’s neighbor,but due to the algorithm, b’distance vector is not sent to i a The extracted path R(i,a) is i-b-a
Some restriction can promise this rule • the path extracted from Dk(i,j) which is assumed to be the same as the path implicit in Dk(i,j), must be that Dk(i,v) is also the minimum among row v,and chosen to be put in the routing vector.(a form of local shortest path consistency)
The algorithm discription • Upon receiving vector v(k,i) from link(i,k) step 0: begin v(i) ¢ ,v(i,b) ¢ for all neighbors b end step 1: for each triple(j,D(k,j),h(k,j)) in V(k,i) do begin Dk(i,j)D(k,j)+d(i,k);hk(i,j)h(k,j) end
Step 2: if there are b,j such that Db(i,j)<RDIST(i,j) then update the routing table (call RT_UPDATE)
Step 3: if the routing table is updated begin for each neighbor b do begin for each entryt=(j,RDIST(i,j),h(i,j)) in v(i) do if b is in the path from i to j(call IN_PATH) then v(i,b){(j, ∞,*)} ∪v(i,b) else v(i,b)v(i,b) ∪t end send v(i,b) to b.
RT_UPDATE • In this procedure,the assumption will be guaranteed.
IN_PATH • In this procedure,the extracted path will be established,and the judgement will be done.