210 likes | 224 Views
Compact Routing Schemes. Mikkel Thorup Uri Zwick AT&T Labs – Research Tel Aviv University. Packet:. information. label(v). Routing. 3. v. 2. u. 1. u. v. Handshaking. header(u,v). Packet:. information. header(u,v).
E N D
Compact Routing Schemes Mikkel Thorup Uri Zwick AT&T Labs – Research Tel Aviv University
Packet: information label(v) Routing 3 v 2 u 1
u v Handshaking header(u,v) Packet: information header(u,v) The same header is used for all messages sent from u to v
Each vertex is assigned a(1+o(1))log2n– bit label. Givenlabel(u) and label(v),it is possible to find, inconstanttime, the right edge to take fromu. Similar result by Fraigniaudand Gavoille [ICALP’01] Routing in Trees u v
Our Results Are Essentially Optimal! Labels must be at least log2n – bit long. In graphs, for stretch<3, the total size of the routing tables must be (n2). For stretch<5, the total size must be (n3/2). Conjecture: For stretch<2k+1, the total size of the tables must be (n1+1/k). (Equivalent to a well known girth conjecture of Erdös.)
Tree Routing – A Practical Scheme 1 10 7 2 10 12 DFS numbering: For every vertex u, let fube the largest descendantof u. Then v is a descendantof u iff 3 11 13 14 O(log2n)-bit labels. Arbitraryport numbers. 4 5 6 7 A trivial solution with O(deg(v)) memory. 8 9
14 8 2 3 7 1 1 1 1 1 4 3 1 1 Tree Routing – A Practical Scheme (Cont.) Let pv be the parent of v. Then, vertex v is heavy if s(v)s(pv)/2, and light otherwise. Let s(v) be the number of descendants of v.
Tree Routing – A Practical Scheme (End) r 0 The light-levellv of a vertex v is the number of light vertices on the path to it from the root. Claim:lv<log2n label(v)=(v,port(e1),port(e2),…) At v we store:v, fv, hv, lv, port(v,pv)andport(v,hv). e1 1 e2 2 2 e3 3 3 e4 4 v
Choose a Set of Centers centA(v) = a center closest to v
Construct Clusters cluster clusterA(v) = vertices that are closer to v than to all centers.
If vclusterA(u),Route Directly u v w For any w on the shortestpath we havevclusterA(w).
v u If vclusterA(u),Route through centA(v) centA(v) Label(v)= (v,centA(v),port(centA(v),v))
How do we choose centers? We want A such that |A|=O(n1/2) clusterA(v)=O(n1/2), for everyv [Cowendoes this withO(n2/3)]
Algorithm center(G) A; WV; While W { AA choose(W,n1/2); W{wV | clusterA(w)>4n1/2 }; } Return A; The expected size of A is O(n1/2log n).
Smaller Tables, Larger stretch Use a hierarchy of centers. Construct a tree coverof the graph. Identify an appropriate tree from the cover and route on it.
Tree Cover Each vertex contained in at most n1/k trees. For every u,v, there is a tree with a path of stretch at most 2k-1 between them.
Is there a routing scheme with: • Table size = O(n1/k) • Label size = O(log n) • No handshaking ???