Greedy routing by distributed D l Delaunay triangulation t i l ti 4/4/2017 Greedy Routing (S. S. Lam) 1
Gr Greedy Routing y out ng It is scalable to a large n t network k d (destination) o because each node stores info about its stores info about its g g directly-connected neighbors only g y f But it fails at a local b minimum, where all neighbors are farther away e from the destination than c a h th the node itself d its lf local minimum to d 4/4/2017 Greedy Routing (S. S. Lam) 2
Greedy routing protocols include a recovery method d d Face routing used by GFG F i d b GFG g [Bose et al. 99] and GPSR [Karp & Kung 00] [Karp & Kung 00] f for planar graphs (2D) only successful planarization of a successful planarization of a b general graph requires that i. the graph is a “unit disk” graph e e and and c a h ii. node location information is accurate . Both assumptions are unrealistic the face includes the local min. h f i l d h l l i 3 Greedy Routing (S. S. Lam)
Delaunay triangulation (DT)? A set of points in 2D A set of points in 2D Greedy Routing (S. S. Lam) 4
A triangulation of S A triangulation of S Ci Circumcircle of this triangle is not empty i l f thi t i l i t t Greedy Routing (S. S. Lam) 5
Delaunay triangulation of S Delaunay triangulation of S Circumcircle of every triangle is empty Circumcircle of every triangle is empty Greedy Routing (S. S. Lam) 6
Greedy forwarding in a DT always succeeds to find a destination node Theorem and proof for destination nodes in 2D d i 2D [Bose & Morin 2004] Each node is identified by its coordinates in 2D source source Greedy Routing (S. S. Lam) 7
DT in d -dimensional Euclidean space m p DT definition generalized to 3D or higher di dimension i 2D d-dimensional triangle simplex empty circumcircle empty circum-hypersphere In any dimension, the DT of S is a graph, denoted by DT(S) neighbors in the graph are called DT neighbors Greedy Routing (S. S. Lam) 8
Greedy forwarding in a DT always succeeds to find a node l f closest to a destination location closest to a destination location Theorem and proof for p location location nodes in a d -dimensional Euclidean space, d ≥ 2 p , [Lee & Lam 2006] Node coordinates may source source be arbitrary be arbitrary Idea: When greedy routing is stuck at a local minimum (dead end) forward packet to a DT neighbor (dead end), forward packet to a DT neighbor (via a tunnel) Greedy Routing (S. S. Lam) 9
Distributed system model of DT y A set S of nodes in a d- dimensional Euclidean space Euclidean space Each node assigns itself coordinates in the space to be used as the node’s identifier to be used as the node s identifier “ u knows v ” means “ u knows v’s coordinates ” Each node is a communicating state machine a node’s state is set of nodes it knows a node s state is set of nodes it knows protocol messages it sends and receives No need to think about d-dimensional objects except when proving theorems except when proving theorems Greedy Routing (S. S. Lam) 10
A distributed DT C u set of nodes u knows DT(C u ) local DT computed by u N u neighbors of u in DT(C u ) The distributed DT is correct iff, for all u ∈ S, N u = set of u’ s neighbors in DT(S) local info global info No broadcast, N u C u and | C u | << |S| ⊆ u u u Greedy Routing (S. S. Lam) 11
Node u finds nodes and computes its local DT g i How does u search? How does u search? f f l j e h When does u stop? a d k k b C C u ={u, a, b, c, d} { b d} c u DT(C u ) N u ={a, b, c} Greedy Routing (S. S. Lam) 12
Application to Layer 2 routing Layer 2 network represented by an arbitrary graph of nodes and physical links arbitrary graph of nodes and physical links (connectivity graph) Minimal assumptions: graph is connected each physical link is bidirectional p y The connectivity graph is not the DT graph Need a protocol for nodes to compute the Need a protocol for nodes to compute the distributed DT Greedy Routing (S. S. Lam) 13
Extension - Multi-hop DT p Connectivity graph – nodes and physical links nodes and physical links j i DT graph DT graph h h g In a multi hop DT In a multi-hop DT, b a neighbors can be e c c directly connected f d multiple hops apart and communicate via a virtual a physical link that is link (tunnel) not a DT edge 4/4/2017 Greedy Routing (S. S. Lam) 14
Each node has a forwarding table g Each entry in the forwarding table is a 4-tuple table is a 4 tuple < source, pred, succ, dest > j i h for the DT edge a-d , to g provide the path a-b-c-d provide the path a b c d , b each node stores a tuple, e g e.g., a a e e c c node b stores <a, a, c, d> f d d The tuple is used by b for forwarding in both directions 4/4/2017 Greedy Routing (S. S. Lam) 15
In a multi-hop DT, each node u In a multi hop DT, each node u maintains tuples in its forwarding table F as maintains tuples in its forwarding table F u as soft state state of node u C u = set of destination nodes in tuples of F u N u = set of neighbors in DT(C u ) N u set of neighbors in DT(C u ) node u’s local DT node u s local DT Greedy Routing (S. S. Lam) 16
A multi-hop DT is correct iff A multi hop DT is correct iff for all u ∈ S, N u = set of u’ s neighbors in 1. DT(S) DT(S) (the distributed DT is correct) (the distributed DT is correct) 2. for every DT edge (u, v), there exists a unique y g ( , ), q k-hop path between u and v in the forwarding tables of nodes in S 4/4/2017 Greedy Routing (S. S. Lam) 17
MDT’s 2-step greedy forwarding MDT s 2-step greedy forwarding node u receives a packet node u receives a packet with destination d greedy step 1 greedy step 1 yes ∃ a physical neighbor v closest to d ? transmit to v greedy step 2 no yes ∃ a DT neighbor w closest to d ? forward to w (using a tuple in (using a tuple in no forwarding table) node u is closest to d Greedy Routing (S. S. Lam) 18
MDT s 2 step greedy MDT’s 2-step greedy - example example destination Source c, dest. k k k j At node c, physical i neighbor closest to k h is b g g c transmits msg to b b a e c source f d d MSG 4/4/2017 Greedy Routing (S. S. Lam) 19
2-step greedy example (cont.) Node b is a local minimum destination k k with multi-hop DT neighbor j j ith m lti h DT i hb j closest to k i node b forwards msg to j by b j h transmitting it to e g g node e forwards msg to j by b transmitting it to h MSG a e does not perform greedy step 1 c h transmits msg to j j g source d d f f j finds itself closest to k 4/4/2017 Greedy Routing (S. S. Lam) 20
In a correct multi-hop DT In a correct multi hop DT MDT’s 2-step greedy forwarding provides MDT s 2-step greedy forwarding provides guaranteed delivery to a node that is closest to the destination location Theorem and proof [Lam and Qian 2011] Theorem and proof [Lam and Qian 2011] We next present a join protocol for nodes We next present a join protocol for nodes to construct a correct multi-hop DT 4/4/2017 Greedy Routing (S. S. Lam) 21
MDT join protocol initial step MDT join protocol: initial step Given: a correct multi-hop DT of S j i node a boots up node a boots up h g g to join S, a needs to b find the closest node a e in S c f It must be a neighbor It must be a neighbor d d of a in the DT of S ∪ {a} { } Greedy Routing (S. S. Lam) 22
2-step greedy in existing DT finds node closest to a node closest to a a sends JOIN_ req to b with a ’s location as with a s location as destination j i It is greedily forwarded h to node c which is closest g g to a JOIN_req JOIN_req b a a e c Each node along the f p path of JOIN_req _ q d d stores a forwarding tuple for the path 4/4/2017 Greedy Routing (S. S. Lam) 23
Closest node c found Closest node c found c sends JOIN c sends JOIN_ rep to a rep to a along the reverse path j i h g g NB_req Node a begins an b iterative search e e a a c a sends NB_req to c JOIN_rep f d d Greedy Routing (S. S. Lam) 24
Finding more DT neighbors c adds a to its set C c j j i c recomputes DT(C c ) p ( c ) h g Set of a’s new neighbors Set of a s new neighbors b c = { j, d } a in DT(C c ) is N a e c f f c ) c sends NB_rep(N a d NB_rep to a to a 4/4/2017 Greedy Routing (S. S. Lam) 25
Iterative search by node u for a distributed DT [Lee and Lam 2006] repeat node x for all x ∈ N new do for all x ∈ N u do receive NB_req from u new remove x from N u send NB_req to x d NB t C x = C x ∪ { u } C C { } x ) receive NB_rep (N u compute DT(C x ) ; update N x p ( x ) p x x } C u = C u ∪ {N u x = u ’s neighbors in DT(C x ) N u compute DT(C u ); update N u compute D (C u ); update N u (N x ) x ) to u send NB_rep (N u d NB new update N u new is empty (successfully joined) until N u new N u new neighbors that have not been sent a NB_req Greedy Routing (S. S. Lam) 26
Recommend
More recommend