compact routing schemes mikkel thorup uri zwick at&t labs – research tel aviv university
Post on 21-Dec-2015
216 views
TRANSCRIPT
Compact Routing Compact Routing SchemesSchemes
Mikkel Thorup Uri Zwick
AT&T Labs – ResearchTel Aviv University
Routing
uv
Packet: label(v) information
Handshaking
Packet: header(u,v) information
u v
header(u,v)
The same header is used for all messages sent from u to v
Routing in Trees
Each vertex is assigned a (1+o(1))log2n – bit label.Given label(u) and label(v), it is possible to find, in constant time, the right edge to take from u.Similar result by Fraigniaud and Gavoille [ICALP’01]
u
v
Routing in General Graphs
StretchTable SizeHandshakin
g?
3n1/2nono
5n1/3yesyes
7n1/3nono
2k-1n1/kyesyes
4k-5n1/knono
Previous ResultsPrevious Results
StretchTable SizeAuthors
3n2/3CowenCowen ‘99
5n1/2Eilam, Eilam,
Gavoille Gavoille PelegPeleg ‘98
O(k2)n1/kAwerbuch Awerbuch PelegPeleg ‘92
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ösErdös.)
Tree Routing – A Practical Scheme
O(log2n)-bit labels. Arbitrary port numbers.
DFS numbering:For every vertex u, let fu
be the largest descendantof u. Then v is a descendantof u iff
],[ ufuv
107
A trivial solution with O(deg(v)) memory.
Tree Routing – A Practical Scheme (Cont.)
Let s(v) be the number of descendants of v.
Let pv be the parent of v. Then, vertex v is heavy if s(v)s(pv)/2, and light otherwise.
14
8 2
17
1 41
3
11
3
11
Tree Routing – A Practical Scheme (End)
0
1
2
2
3
3
4
The light-level lv 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) and port(v,hv).
e1
e2
e3
r
v
e4
Routing in Graphs
Choose a Set of Centers
centA(v) = a center closest to v
Construct Clusters
clusterA(v) = vertices that are closer to v than to all centers.
cluster
Keep Routing Info from v to AclusterA(v)
If vclusterA(u), Route Directly
u vw
For any w on the shortestpath we have
vclusterA(w).
If vclusterA(u), Route through centA(v)
u
v
centA(v)
),(3)),(())(,(
),(2))(,(
),()),((
vuvvcentvcentu
vuvcentu
vuvvcent
AA
A
A
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
every v
[Cowen does this with O(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 cover of 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
???