Your SlideShare is downloading. ×
Thorup zwick compactrouting scheme
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Thorup zwick compactrouting scheme


Published on

TZ Scheme

TZ Scheme

Published in: Technology, Business

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Compact routing schemes By Mikkel Thorup & Uri Zwick
  • 2. 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
  • 3. 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-2 3-11
  • 4. 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
  • 5. 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
  • 6. 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])
  • 7. 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]
  • 8. 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
  • 9. • 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 v v U= u v v v vj v v v
  • 10. 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 V W {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)
  • 11. • 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