Compact routing with minimum stretch
Download
1 / 24

Compact Routing with Minimum Stretch - PowerPoint PPT Presentation


  • 102 Views
  • Uploaded on

Compact Routing with Minimum Stretch. Kei Takahashi. Introduction. In distributed networks, message relaying is inevitable All-to-all connections are physically impossible Nodes can dynamically appear, move, and disappear Some routing tactics are possible Broadcast Random relaying

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Compact Routing with Minimum Stretch' - kevork


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Compact routing with minimum stretch

Compact Routingwith Minimum Stretch

Kei Takahashi


Introduction
Introduction

  • In distributed networks, message relaying is inevitable

    • All-to-all connections are physically impossible

    • Nodes can dynamically appear, move, and disappear

  • Some routing tactics are possible

    • Broadcast

    • Random relaying

    • Routing table

V1

V3

V0

V2

Message

To V3


Routing tables
Routing tables

  • A routing table knows the next hop to each node

  • The information need not be optimal

    • Stray messages can be rerouted at relay nodes

  • There are trade-off of the table size and efficiency

    • A complete routing table occupies large memory

    • Efficient routing is not always possible with partial routing tables

V1

V3

Port 1

Port 0

Port 2

Port 1

V0

V2

V1 : Port 0

V2 : Port 1

V3 : Port 1

V0 : Port 0

V1 : Port 1

V3 : Port 2

Port 0

Message

To V3


Na ve complete routing
Naïve (complete) routing

  • Each node holds the next hop to all nodes

    • Always assures optimal routing

  • Table size is O(n log(n)) at each node

    • n : number of nodes

    • size(table) = size(column) * (n-1)

    • size(column) = size(nodename) + size(portname)≤ O(log(n))

log(n)

V1 : Port 0

V2 : Port 1

V3 : Port 1

V4 : Port 0

V5 : Port 1

V6 : Port 1

Port 0

Port 1

V0

n-1


The proposed method
The proposed method

  • Table size ≤ O(n2/3 log4/3 (n))

    • Better than O(n log(n)) in the naïve method

    • In most cases, table is smaller than this bound

  • Maximum stretch ≤ 3

    • Transfer cost is 3 times more than optimal case

    • In most cases, the cost is smaller

V1

Stretch = 2

Cost = 5

5

6

Cost = 10

V0

V2

4


Agenda
Agenda

  • Introduction

  • Problem definition

  • Basic Idea

    • Landmarks

    • Re-labeling

    • Routing

  • Details

    • Selecting landmarks

    • Constructing Routing tables

  • Proofs

    • Table size

    • Max stretch < 3

  • Conclusion


Problem definition

Port V1

Port V2

Problem definition

  • Nodes are connected with undirected edges having weight

  • Node names can be relabeled as long as length ≤ O(log(n))

    • Hostname, IP, processor number

    • It is freely changed in programs

  • Edges are identified with “port name”

  • Port names differ in each node, and cannot be relabeled

    • “Port” is something like a UNIX socket

A302

A301

V1

NG

V3

OK

Port 1

Port 0

Port 2

A303

A300

Port 1

V0

V2

Port 0


Basic idea 1 landmarks

label

port

V3 :

V10 :

--------------

V1 :

Landmarks

Near nodes

Basic idea (1) : landmarks

  • Select global “Landmarks”

    • They are near to many neighbor nodes

    • Each node sets its own landmark as nearest one

  • Routing tables have columns for…

    • On landmarks : other landmarks (no entry for neighbors)

    • On the other nodes : landmarks and neighbors whose shortest path to their landmark goes through that node

      • In case of v0, v1 applies to this criteria

Landmark

v0

v1

v7

v8

v2

v3

v4

v9

v10

v11

Landmark

v5

v6

v12

v13


Basic idea 2 re labeling
Basic idea (2) : re-labeling

  • Re-label node names

    • v → (v, lv, elv(v))

      • lv : Ladmark of v

      • elv(v) : Next-hop from lv to v

  • In a natural way, elv(v) is written in the routing table of lv, but then routing table of lv gets larger

label

port

v0,v3

v0

v1,v3

v7,v10

v8,v10

v1

v7

v8

(V3, V3, -):

(V10,V10,-):

--------------

(V1,V3,) :

V3 :

V10 :

--------------

V1 :

Landmarks

v2,v3

v4,v3

v2

v3

v4

v9

v10

v11

v3,v3

-

v9,v10

v11,v10

v10,v10

-

Near nodes

v5,v3

v6,v3

v6

v5

v12

v13

v12,v10

v13,v10


Basic idea 3 routing algorism
Basic idea (3) : routing algorism

  • The node u routes a message to (v, lv, elv(v)) as follows:

    • if u == lv : send to elv(v)

    • if v is in u’s table: send according to the table

    • otherwise: send to its landmark (lv)’ s next hop

  • Let’s see the node (v0, v3, ↑) in the following figure

    • (v1,v3,↓) : check the table and send to →

    • (v12, v10, ↓) : try to send to (v10,v10,-)

v0,v3

v1,v3

v7,v10

v8,v10

(v3, v3, -):

(v10,v10,-):

--------------

(v1,v3,) :

v2,v3

v3,v3

-

v6,v3

v9,v10

v10,v10

-

v11,v10

v5,v3

v6,v3

v12,v10

v13,v10


An example of routing
An example of routing

  • A message from (v0, v3, ↑) to (v12, v10, ↓)

    • (v0, v3, ↑) Checks the entry of landmark (v10,v10,-) : ↓

    • (v3, v3, -) Checks the entry of landmark (v10,v10,-) : →

    • (v6, v3, →) Checks the entry of landmark (v10,v10,-) : →

    • (v9, v10, ←) Checks the entry of landmark (v10,v10,-) : →

    • (v10, v10, -) Checks the label of the destination :↓

    • (v13, v10, ↓) Checks the entry of (v12, v10, ↓) : ←

    • (v12, v10, ↓) Finally receives the message

  • Longer than optimal, but stretch < 3

v0,v3

v1,v3

v7,v10

v8,v10

v2,v3

v3,v3

-

v6,v3

v9,v10

v10,v10

-

v11,v10

Optimal route

v5,v3

v6,v3

v12,v10

v13,v10

Obtained route


高速道路のアナロジー

  • Naïve routing : 全ての目的地が全ての案内板に書かれている

    • 現実的に不可能

  • インターチェンジをランドマークにする

    • あらゆるインターチェンジまでの経路は全ての案内板に書く

    • インターチェンジの案内板には何も書かれていない

  • 柏キャンパスを「柏インターを北」と覚える

    • (柏キャンパス, 柏インター, 北)とre-labeling

  • 遠くからのルーティング

    • 「柏インター」を目指して、案内板に沿って進む

    • 柏インターを北に進むと、柏キャンパスが載った案内板が出現する

  • 柏の近くからは、柏インターを経由せず到達できる


Agenda1
Agenda

  • Introduction

  • Problem definition

  • Basic Idea

    • Landmarks

    • Re-labeling

    • Routing

  • Details

    • Selecting landmarks

    • Constructing Routing tables

  • Proofs

    • Table size

    • Max stretch < 3

  • Conclusion


Dijkstra algorithm
Dijkstra algorithm

  • Gives shortest ways from one node to every nodein an undirected graph

  • For each reachable node, calculate min-cost

  • Take one node having min-cost

  • The adding can be stopped, then the n-nearest subset is obtained → truncated-Dijkstra method

From v2

Costs : {v1 => 1, v3 => 3}

Take v1

Costs : {v0 => 2, v3 => 3}

Take v0

Costs : {v3 => 3}

Take v3

V0

4

1

V1

V2

V3

1

3


Neighbors set
Neighbors set

  • Neighbors set (Bv) : reachable from v

    • Sort the nodes according to the cost from v(if some costs are the same, sort by their name label)

    • Take nα nodes from the nearest one → Bv (v’s ball)

  • Reversed-neighbors set (Rv) : reachable to v

    • A set of nodes which have v as their neighborRv ← {y | y ∈ Bv}

V0

nα = 3

2

1

3

V1

V2

V3

1


Requirements for landmarks
Requirements for landmarks

  • Only a limited number of nodes can be landmarks

    • They should be close to many other nodes

    • Adding landmarks makes every routing table bigger

  • If v is on the way from many nodes to their landmark, v should be their landmark instead

    • Otherwise the table on v is too big

Not suitable for a landmark

V3 :

V10 :

--------------

V0 :

V1 :

V2 :

V4 :

V5 :

V6 :

v1

v0

v7

v8

v2

v3

v4

v9

v10

v11

v5

v6

v12

v13


A landmarks should be famous
A) Landmarks should be famous

  • Choose “famous” nodes from set of Bvs → D

    • Easily reached from any v

  • ∃D ⊂ V such that

    • |D| = O(n1-α log n)

    • ∀v ∈V , D ∩ Bv ≠ φ

  • An algorithm is known to obtain D(called Extending dominating set”)

nα = 3

V = {v0, v1, v2, v3}

D = {v2}

|D| = 1

Bv0 ∩ D = v2

Bv1 ∩ D = v2

Bv2 ∩ D = v2

Bv3 ∩ D = v2

V0

2

1

3

V1

V2

V3

1


B famous nodes should be landmarks
B) Famous nodes should be landmarks

  • ∃C ⊂ V such that

    • ∀c ∈ C , |Rc| ≥ n(1+α)/2

  • C is easy to be computed when Rv is given

  • C always satisfies |C| ≤O(n(1+α)/2)

    • Σ(∀v ∈ V) Rv = n*nα ≥ Σ(∀c ∈ C) Rc

nα = 3

V = {v0, v1, v2, v3}

C = {v1, v2}

Rv1 = 4 > 3.6 = n(1+α)/2

Rv2 = 4 > 3.6 = n(1+α)/2

V0

2

1

3

V1

V2

V3

1


Selecting landmarks
Selecting landmarks

  • Two sets are obtained

    • ∃D ⊂ V such that

      • |D| = O(n1-α log n)

      • ∀v ∈V , D ∩ Bv ≠ φ

    • ∃C ⊂ V such that

      • ∀c ∈ C , |Rc| ≥ n(1+α)/2

      • C always satisfies |C| ≤O(n(1+α)/2)

  • Landmark set is derived by simply joining them

    • L = C ∪ D

    • L = O(n1-α log n) + O(n(1+α)/2)

V0

2

1

3

V1

V2

V3

Landmarks

1


Constructing routing tables
Constructing routing tables

// Calculate paths to nα-shortest nodes from v

For each v ∈ V, perform truncated-Dijkstra(nα)

// Here, less than nα nodes are nearer than u from v

For each u reached from v:// If ↓ is true, the best route is given by using that landmark

If no landmark is on the path from v to u:

store(v, eu(v)) at u

// Calculate shortest paths from landmarks to every node

For each l ∈ L, perform full-Dijkstra(nα)

// v appearedFor each v ∈ V

Store (l, eu(l)) at u


Proof table size o n 2 3 log 4 3 n

A set of landmarks (L) is O(n1-α log n + n(1+α)/2)

Table size = size(label of node) * size(columns)

Size(label of node) = O(log(n))

Size(columns) ≤ |L| + nα = O(n1-α log n + n(1+α)/2 + nα)

∴ Table size = O((n1-α log n + n(1+α)/2 + nα) log n)

Search α which minimizes table size, and get α = 1/3 + (2 log log n) / (3 log n)Table size = O(n2/3 log4/3 (n))

Proof : table size = O(n2/3 log4/3 (n))


Proof max stretch 3
Proof : max stretch ≤ 3

  • Theorem : route(u, v) ≤ 3 * d(u, v)

    • route(u,v) : the cost of the route from u to v given by this algorism

    • d(u,v) : the smallest cost from u to v

    • L : set of landmarks

    • X : points on the shortest path among u and v

  • If d(u,v) < d(lv, v):

    • d(x, v) < d(u, v) < d(lv, v)

    • lv ∈ Bv, so (u ∈ Bv) and (v ∈ Ru) and (∀x ∈ X, x ∈ Bv, x ∈ Ru)

    • X ∩ L = φ

      • Otherwise v should take that node as lv (⊥)

    • Then, u should have (v, eu(v)) on its routing table, so as ∀x

    • The message will not pass lv (⊥)

      (As a result, route(u, v) is always optimal in this case)

u

lv

x

v


Proof max stretch 3 cont
Proof : max stretch ≤ 3 (Cont.)

  • Otherwise : d(lv,v) ≤ d(u,v)

    • Column (v, eu(v)) is not on u’s table

      • Otherwise (v ∈ Ru) so any x’s table has a column(v, ex(v))

      • The message will not pass lv (⊥)

    • Y : nodes on the shortest path among u and lv

    • If any y does not have a column (v, ey(v)) on its table :

      • route (u, v) = d(u, lv) + d(lv, v)

        • Every y refers the column for lv, which gives the shortest path to lv

      • d(u,lv) ≤ d(u, v) + d(lv, v) (triangle equation)

      • d(u,lv) ≤ 2 * d(u, v), so route(u,v) ≤ 2 * d(u,v) + d(u,v) ≤ 3 * d(u,v)

    • Otherwise : (skip)

      • (It can be proved that route(u,v) ≤ d(u, lv) + d(lv, v) )

u

y

lv

x

v


Conclusion
Conclusion

  • A routing strategy was given which assures

    • Small table size : O(n2/3 log4/3 (n))

    • Max stretch is less than 3

  • It consists of 4 parts:

    • Selecting landmarks

    • Re-labeling nodes

    • Create routing tables

    • Routing algorism

  • For practical situations, alternative methods are proposed. They offer smaller table size and better routing on average


ad