11

Click here to load reader

Thorup zwick compactrouting scheme

Embed Size (px)

Citation preview

Page 1: Thorup zwick compactrouting scheme

Compact routing schemes By Mikkel Thorup & Uri Zwick

Page 2: Thorup zwick compactrouting scheme

Overview

• Each Vertex in n-vertex graph, assigned (1+O(1))log2n bit label.

• Routing table of a node is its label & header of a packet is label of the destination.

• Given label(u) and label(v), it is possible to find, in constant time, the right edge to take from u.

• Improvement of Routing Table size (in landmark based routing technique)

from O(n2/3 log4/3 (n)) to O(n1/2 log(n)) for stretch 3

Page 3: Thorup zwick compactrouting scheme

Trees - Interval Routing

4 5 6

1

2

3

8

10

9

11

7

12

• Root tree arbitrarily & perform Depth first enumeration of vertices ,Vertex identifier is DFS no.

• For node w, fw be largest descendent of w. Then v is descendent of w iff v ∈[w,fw] • If yes, Predecessor search among children w1,….,wd is performed and packet is forwarded wi

(wi is last child smaller than or equal to v)• Else v is routed to parent of w

Advantages:

•Stretch=1•RT=O(d log n) where d= degree(node)•Header= O(logn)

1-23-11

Page 4: Thorup zwick compactrouting scheme

Efficient Routing scheme for trees

• Each vertex „v‟ assigned (1+O(1))log2n-bit label

• Label is the only information stored at the vertex

• Label serves as header attached to messages sent to the vertex

• Routing decision takes constant time

Page 5: Thorup zwick compactrouting scheme

Stretch Table Size Handshaking?

3 O(n1/2) no

5 O(n1/3) yes

7 O(n1/3) no

2k-1 O(n1/k) yes

4k-5 O(kn1/k) no

New Routing Schemes

Authors Stretch Table Size

Cowen 3 O(n2/3)

Eilam,Gavoille 5 O(n1/2)

Awerbuch, Peleg O(k2) O(kn1/k)

Awerbuch O(k29k) O(kn1/k)

Previous Available Schemes

Page 6: Thorup zwick compactrouting scheme

Compact Scheme: Routing in Trees

• Integer b>1, RT=O(b) words & labels=O(logbn) words

• Weight sv of vertex v is no of descendants in the tree

• Child v‟ of v is heavy if sv‟ >= sv/b, light otherwise.

• light level lv of v is no. of light vertices on path from root r to vertex v

• Routing information stored at v =(v, fv,hv,Hv,Pv)= O(b) words

where

hv is the first heavy child of v, Hv -> array of heavy children of v

Pv -> array of port no. to parent & heavy nodes < v0,v1,v2,….,vk> where r=v0, vi is the light nodes

from r to node v and vk=v

LV = (port(vi1-1), port(vi2-1),…,port(vilv-1))=O(logbn) words , contains port no. to light vertices form r to v.

• label(v) = (v, Lv)

• b=2; ((v>=w && v<h) ? L[1] :P[v>=h && v<=f])

Page 7: Thorup zwick compactrouting scheme

Compact Routing in Trees – first scheme cont.

• Label(v)=(v , Lv) at node w

• If w=v, done

• else check if v ∈(w , fw)

a) if not a descendent –f/w to parent of w using Pv[0]

b) else if descendent

• check if v ∈(hw , fw) – search Hw and get corresponding Pw

• else if light descendent – search Lv[lw]

Page 8: Thorup zwick compactrouting scheme

More Compact Scheme: Routing in Trees

• Each non leaf vertex has single heavy child , with highest weight

• If for vertex v, v‟ is heavy child & v0, v1,….,vd-1 light children s.t.

sv‟ >= sv0>= sv1>=….>=svd-1 ; assign edge (v, vi ) for 0<=i< d & (v,v‟) port no “d”.

• lv light level of v then concatenate the bit strings of ports of light level. M

• is masking bit to identify location of bit strings

• Label(v)=(v, Lv, Mv) eg. lv=(2,0,5,3) =(11‟ 101‟ 0‟ 10) & M=(10‟ 100‟ 1‟ 10)

• Combined length Lv & Mv is max. (3.42 log2n) bit words.

• If packet with header (v,Lv,Mv) reaches w , light level lw, extract lwth number coded in Lv.

• If v s descendant of w , then lw-1 numbers coded in Lv are exactly

• same as in Lw.

• (Lv>>k) & (Mv>>kw)^(M>>kw-1)

14

8 2

17

1 41

3

11

3

11

Page 9: Thorup zwick compactrouting scheme

• Code(s)=s.bin(||s||,|s|).bin(||s||,||s||)

• Label(v)=ID(v) + RT(v)

• ID(v) consists of – Binary representation of i, the index of heavy path

containing v, string sj corresponding to = in port pi, port of edge from v to , if v ≠

• The identifying label of v in subtree T

• ID(T; v) =ID(Tv ; v):code(i):code(sj ):code(port( ; ))if v ≠

=code(i):code(sj ) otherwise

• Label(v) = code(ID(v)):code(RT(v)):code(pnt(v))

• Pnt(v) is length of first three code words in ID(v)

Extremely Compact Scheme (1+O(1))log2n bit label :Routing in Trees

v

v

vv

U= u

v

v

v vj

v

v

v

Page 10: Thorup zwick compactrouting scheme

Algorithm center(G,s)A ; W V;While W do{

A A sample(W,s);C(w) {v V|δ(w,v)< δ(A,v)} fore very w

VW {w V | C(w)>4n/s};

}Return A;

Improvement over Cowen’s landmark based routing scheme

• Recursive sampling algorithm to select set of landmarks(centers) A ,of expected size O(n1/2log n).

• Node v's label contains (v, centA(v), port(centA(v), v)) carried in every message to v

• Use hash table TABw at every node w, containing (v, port(w, v)) for each v A ∪C(w)

Page 11: Thorup zwick compactrouting scheme

• Use a hierarchy of centers.• Construct a tree cover of the graph.• Identify an appropriate tree from the cover and route on it.• Smaller Tables, Larger stretch• 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.• Uses handshaking

Generalized routing scheme: Tree Cover