Download Presentation
SkipNet

Loading in 2 Seconds...

1 / 36

# SkipNet - PowerPoint PPT Presentation

SkipNet. Christian Schmidt-Madsen, csm@itu.dk Peter Tiedemann, petert@itu.dk. Dual ID-space: Name ID Numeric ID (similar to Chord,Pastry etc). SkipNet structure overview. Node names are the reverse DNS name of the host (example: dk.itu.mycomputer)

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

## PowerPoint Slideshow about 'SkipNet' - raine

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

### SkipNet

Christian Schmidt-Madsen, csm@itu.dk

Peter Tiedemann, petert@itu.dk

Dual ID-space:

Name ID

Numeric ID (similar to Chord,Pastry etc)

SkipNet structure overview
• Node names are the reverse DNS name of the host
• (example: dk.itu.mycomputer)
• Name ID Objects are stored at the lexicographic predecessor node.
• ( example: dk.itu.mycomputer/index.html will be stored at
• dk.itu.mycomputer )*
• Numeric ID objects are stored at the numerically closest node

*: assuming ”/” is less than other symbols

Deterministic:

The SkipList datastructure

Pointer at level h skips over 2h elements

Probabilistic:

Node at level h with probability 1/2h

Problems with SkipList:

• Efficient search only possible from head
• Some nodes more likely to be in routing path
SkipList -> SkipNet

Basic principle of SkipNet:

• A probalistic skiplist where every node is a head.
• The keys are just the names of the nodes
• The ordering is lexicographic
SkipNet structure illustrated

Ring

100

Ring

101

Ring

110

Ring

111

Ring

000

Ring

001

Ring

010

Ring

011

O

M

D

A

T

Z

V

X

M

O

D

Ring 01

Ring 00

Ring 10

Ring 11

A

T

V

Z

X

M

O

D

Ring 1

Ring 0

T

A

Z

V

X

M

D

O

T

A

Z

V

X

L = 3

L = 2

Numeric ID of A

L = 1

Root Ring

Level: L = 0

:skiplist with head = A

SkipNet Global View – Routing table

M

O

D

T

A

V

X

Z

M

D

A

T

O

V

Z

X

M

O

D

Node A’s

Routing

Table

T

A

Z

V

X

M

D

O

T

A

Z

V

X

Ring

100

Ring

101

Ring

110

Ring

111

Ring

000

Ring

001

Ring

010

Ring

011

L = 3

Ring 01

Ring 00

Ring 10

Ring 11

L = 2

Ring 1

Ring 0

L = 1

Root Ring

Level: L = 0

Routing by Name ID to node

M

O

D

T

A

V

X

Z

M

D

A

T

O

V

Z

X

M

O

D

T

A

Z

V

X

M

D

O

T

A

Z

V

X

• Example: route from A to V
• Simple Rule: Forward the message to node that is closest to dest, without going too far.

Ring

100

Ring

101

Ring

110

Ring

111

Ring

000

Ring

001

Ring

010

Ring

011

L = 3

Ring 01

Ring 00

Ring 10

Ring 11

L = 2

Ring 1

Ring 0

L = 1

Root Ring

Level: L = 0

Routing by Name ID to node

M

O

D

T

A

V

X

Z

M

D

A

T

O

V

Z

X

M

O

D

Node T’s

Routing

Table

T

A

Z

V

X

M

D

O

T

A

Z

V

X

• Example: route from A to V
• Simple Rule: Forward the message to node that is closest to dest, without going too far.

Ring

100

Ring

101

Ring

110

Ring

111

Ring

000

Ring

001

Ring

010

Ring

011

L = 3

Ring 01

Ring 00

Ring 10

Ring 11

L = 2

Ring 1

Ring 0

L = 1

Root Ring

Level: L = 0

Routing by Name ID to node

M

O

D

T

A

V

X

Z

M

D

A

T

O

V

Z

X

M

O

D

T

A

Z

V

X

M

D

O

T

A

Z

V

X

• Example: route from A to V
• Simple Rule: Forward the message to node that is closest to dest, without going too far.

Ring

100

Ring

101

Ring

110

Ring

111

Ring

001

Ring

010

Ring

011

Ring

000

L = 3

Ring 01

Ring 00

Ring 10

Ring 11

L = 2

Ring 1

Ring 0

L = 1

Root Ring

Level: L = 0

E

O

D

T

A

V

X

Z

E

D

A

T

O

V

Z

X

E

O

D

T

A

Z

V

X

E

D

O

T

A

Z

V

X

• Example: route from A to F -> Terminates at E
• Simple Rule: Forward the message to node that is closest to dest, without going too far.
Routing by Name ID to object

Ring

100

Ring

101

Ring

110

Ring

111

Ring

001

Ring

010

Ring

011

Ring

000

L = 3

Ring 01

Ring 00

Ring 10

Ring 11

L = 2

Ring 1

Ring 0

L = 1

Root Ring

Level: L = 0

How fast is routing by name?

In expectation a level h pointer will point past 2h nodes

This enables us to at least half the distance on the root ring to the destination giving O(logn) steps

Worst case is O(n) in the case were everybody else is on the same rings as us

Node joins

Join(node v) algorithm:

Decide on a numeric ID(position in the SkipNet) either randomly or by hashing DNS name.

Route to the top level ring for that numeric ID

Find neighbors on level below

Continue recursively until we reach the root ring

Illustration on next slide ! 

Node join illustrated

Joining node

Ring P1

Ring P0

Only a few in expectation

Ring P

Node departure

Notifies neighbours of departure

Node failure

Leaf Set :

Each node has L/2 pointers in each direction on the

root ring, providing protection from independent

failure.

However the leaf set for a node are most likely close in the underlying network too!

Background repair 1/2

Local ring repairs

• Periodically contact neighbours in each ring and tell them that you think you are neighbors.
• If neighbor accepts -> no response
• else neighbour responds with neighbor
• Reconcilliation based on this info( no details in article)
Background repair 2/2

Upper ring repair

• For each ring, route a message a short distance around the ring, checking encountered nodes against higher level pointers

Ring Px

This is closer than red node and in ring Px !

Ring P

Routing by numeric ID

RouteTo( numID ):

• Current ring = root ring
• Move around the current ring until you meet a node which is in the same next higher ring as numID
• Continue recursively until a top ring is reached

B

O

D

T

A

V

X

B

D

A

X

O

V

X

B

O

D

T

T

A

V

D

B

O

T

A

V

X

Example: route from A to 110 -> ends at node O

• Log(N) rings to visit
• In expectation only 2 nodes visited before encountering one belonging to correct ring
Routing by numeric ID

Ring

100

Ring

101

Ring

110

Ring

111

Ring

001

Ring

010

Ring

011

Ring

000

L = 3

Ring 01

Ring 00

Ring 10

Ring 11

L = 2

Ring 1

Ring 0

L = 1

Root Ring

Level: L = 0

com.microsoft.research

Content and path locality

microsoft.com/pwlist.txt

• Organizations correspond to contiguous SkipNet segments
• Internal routing by nameID remains internal
• Objects are stored according to nameID

com.microsoft

com.sun

gov.irs

edu.ucb

Numeric Routing

Name Routing

Constrained load balancing

• DHT over a limited domain
• We combine the two id spaces
• Calling a file <CLB Domain>!<CLB Suffix> will store the file on the node beginning with <CLB Domain> and having the closest numeric ID to hash(<CLB Suffix>)

CLB DomainCLB Suffix

microsoft.com!skipnet.html

skipnet.

html

CLB example
• To get object “microsoft.com!skipnet.html”
• Route by nameID to “microsoft.com”
• Route by numericID to Hash(“skipnet.html”)within the “microsoft.com” constraint

com.microsoft

com.sun

gov.irs

edu.ucb

CLB options

For a domain DOM and an objectID OID three options for storing the object exists:

• Controlled placement (no DHT): DOMOID(!)
• Global DHT: !DOMOID
• CLB: DOM!OID
Organizational disconnect
• Common failure
• Forming an internal SkipNet
• Re-joining the global SkipNet or, equivalently
• Merge of two SkipNet segments
Proximity-aware routing
• Proximity-aware routing of nameId (P-table)

Use slightly shorter or longer jumps than the ”normally”; distance at lvl h expected to be 2h

• Proximity-aware routing of numericId (C-table)

Use a scheme similar to Pastry, where the node with lowest latency is chosen as an entry in the C-table

Modifying the routing table 1/2

Increase the base k of the numericID

• Ring ”fanout” increases to k
• Fewer pointers in R-table, O(logkn)
• More routing hops, O(k logkn)

Example: k = 3

h = 2

h = 1

h = 0

Modifying the routing table 2/2

Store k-1 additional pointers in each direction at each

level of the routing table

• Increased complexity of join (2k-2 in each member ring)
• Fewer routing hops
Discussion
• DNS as the basis of nameIds (NAT’ed hosts)
• Choice of numericId (random/secure hash)

Variation:

• Deterministic SkipNet (~ balanced tree)