Thorup zwick compactrouting scheme
Upcoming SlideShare
Loading in...5

Thorup zwick compactrouting scheme



TZ Scheme

TZ Scheme



Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Thorup zwick compactrouting scheme Thorup zwick compactrouting scheme Presentation Transcript

  • Compact routing schemes By Mikkel Thorup & Uri Zwick
  • 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
  • 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
  • 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
  • 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
  • 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])
  • 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]
  • 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
  • • 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
  • 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)
  • • 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