Compact NameIndependent Routing with
Minimum Stretch
Ittai Abraham (HUJI)
Cyril Gavoille (LABRI)
Dahlia Malkhi (HUJI)
Noam Nisan (HUJI)
Mikkel Thorup (ATT)
Locality Awareness
x
t
s
Compact Low Stretch Routing
Peers communicate through a weighted
network G=<V,E,ω>
Devise a distributed routing scheme such
that: a node that knows the label of a
target node can send a message that will
be routed to the target node
Main complexity measures:
Stretch: the maximal ratio over all pairs of
dRS(s,t)/d(s,t)
Memory: the number of bits stored in each
node.
Routing on a Weighted Graph
Lower bounds:
Two main variants:
Stretch < 3 requires Ω(n) bits per node [Gavoille &
Gengler 01]
Stretch < 5 requires Ω (√n) bits per node [Thorup &
Zwick 01]
Stretch < 2k-1 requires Ω (n1/k) bits per node [Thorup &
Zwick 01] Under the Erdosh conjecture
Labeled routing: designer can choose the labels of nodes
Name Independent routing: node labels are given by an
adversary
Labeled routing:
Stretch 3 with Õ(n2/3) bits [Cowen 99]
Stretch 3 with Õ(√n) bits [Thorup & Zwick 01]
Stretch 4k-1 with Õ(n1/k) bits [Thorup & Zwick 01]
Name Independent Routing
Awerbuch, Bar-Noy, Linial & Peleg 89
Awerbuch & Peleg 90 (Sparse Partitions)
With Õ(n1/k) bits – stretch O(k29k)
With Õ(n2/3) bits – stretch 468
With Õ(√n) bits – stretch 2593
For diameters that are polynomial in n
With Õ(n1/k) bits – stretch O(k2)
With Õ(n2/3) bits – stretch 624
With Õ(√n) bits – stretch 1088
Arias, Cowen, Laing, Rajaraman & Taka 03
With Õ(√n) bits – stretch 5
Compact Name-Independent Routing with
Minimum Stretch
Optimal stretch 3 with Õ(√n) bits
Construction in polynomial time
Routing decisions performed in constant
time
Surprisingly, with Õ(√n) bits allowing the
designer to label the nodes does not
improve the stretch factor compared to
the task when node labels are
predetermined by an adversary.
The Recipe
Ingredients
Vicinity routing
Random coloring to √n colors
Hash labels to colors
Labeled routing on trees
Landmarks
Partial shortest path trees
Vicinity Routing
Let B(u) denote the (√n log n)-closest
nodes to u (ties broken consistently)
For all vB(u), node u stores the next hop
of a minimum cost path from u to v
Simple property [ABLP 89]: If vB(u) and
w is on a minimum cost path from u to v,
then vB(w)
u
w
v
B(u)
Random Coloring to √n Colors
Every node u chooses a random color c(u)
With high probability
Every color set has O(√n) nodes
Every node has in its vicinity at least one node
from every color set
Polynomial number of tests
Each test can be done
in logspace
Derandomization using
the pseudo random
generator of Nisan
Hash Labels to Colors
Label u is hashed to a color h(u){1… √n}
At most O(√n log n) hashed to same color
Trivial if node labels are a permutation of
1…n
Otherwise can collision free hash to n2.5
and then use the techniques of Tarjan and
Yao to hash to √n in constant time. Can
be deradomized similarly to deterministic
dictionaries of Hagerup, Milerstein, & Pagh
Labeled Routing on Trees
Based on DFS Interval Routing, improved by
Frainiaud & Gavoille 01 and Thorup & Zwick 01
Storage O(log n) bits, Label O(log2 n) bits,
Stretch 1
A node is heavy if its sub-tree contains more than half of the nodes of its
parent’s sub-tree
Each node stores its DFS interval and the DFS interval of its heavy child (if
it has one)
A node’s label consists of the names of the non-heavy nodes on the path
from the root
Storage is O(log n) bits
Labels require O(log2 n) bits
Routing to v on node u:
If v is not in u’s interval then send to parent
If v is in u’s heavy child interval then send to heavy
Otherwise u’s label contains the appropriate child
Landmarks
Let R(T,v) be the routing information
stored at node v for routing on tree T
Let T(u) be the minimum cost tree rooted
at u
One color is designated as special
Let L be the set of all nodes l such that
c(l)=special color
Every node u maintains R(T(l),u) for all
lL
This requires Õ(√n) bits
For node u, let l(u) be a landmark in B(u)
Partial Shortest Path Trees
Every node v stores R(T(u),v) for all
uB(v)
Requires Õ(√n) bits
Let L(T,u) be the label of u on tree T
Simple property: If xB(y) then given
L(T(x),y), node x can route to node y
along a minimum cost path
y
w
x
B(y)
Case 1: Inside B(u)
Use vicinity routing
u
v
Case 2: B(u) and B(v) are close
Any node on any minimal path from u to v
is either in B(u) or in B(v)
• Vicinity route to wB(u) s.t.
c(w)=h(v)
u
w
x
y
v
• Node w stores
L(T(w),u),x,(xy),L(T(y),v)
• Partial tree route to u on
T(w)
• Vicinity routing to y
• Partial tree route to v on
T(y)
Case 3: B(u) and B(v) are far
Any minimal path from u to v contains a
node that is not in B(u) or in B(v)
• Vicinity route to wB(u)
s.t. c(w)=h(v)
• Node w stores
L(T(l(v)),l(v)) and
L(T(l(v)),v)
u
• Tree route on T(l(v)) to
l(v)
l(v) and then to v
w
v
b(u)+d(w,l)+b(v) <=
b(u)+b(u)+d(u,v)+b(v)+b(v)
<= 3 d(u,v)
Storage on node u
Routing information and colors in B(u) [Vicinity]
R(T(l),u) for all lL
[Landmarks]
R(T(v),u) for all vB(u) [Partial Trees]
For all v such that c(u)=h(v) minimum of
1.
2.
Path to l(v) and then to v. Store <L(T(l(v)), l(v)) ,
L(T(l(v)), v)>
Let P(u,w,v) be a path from u to v composed of an MCP
from u to w, and of an MCP from w to v, such that:
u \in B(w),
there exists an edge (x y) along the minimum path
from w to v such that x B(w) and y B(v)
Among all the these paths choose the lowest cost path
P(u,w,v) and store <L(T(u), w), x, (x y), L(T(y),v)>
Routing from u to v
If vB(u) use vicinity routing
If vL use tree routing on T(v)
Otherwise vicinity route to wB(u) such
that c(w)=h(v)
Node w stores either
<R(T(l(v)), l(v)) , R(T(l(v)), v)>, and routing
proceeds to l(v) and then to v
<R(T(u), w), x, (x y), R(T(y),v)>, and
routing proceeds to w then x to y and finally to
v
Questions
Thank you
© Copyright 2026 Paperzz