Effizientes Routing in P 2 P Netzwerken Chord

  • Slides: 20
Download presentation
Effizientes Routing in P 2 P Netzwerken Chord: A Scalable Peer-topeer Lookup Protocol for

Effizientes Routing in P 2 P Netzwerken Chord: A Scalable Peer-topeer Lookup Protocol for Internet Applications Dennis Schade

Outline Short introduction to P 2 P systems n Chord System Model n Chord

Outline Short introduction to P 2 P systems n Chord System Model n Chord Algorithm n Simulation Results n Future Work n

Introduction to P 2 P Systems Basic principles n sharing ressources n decentralization n

Introduction to P 2 P Systems Basic principles n sharing ressources n decentralization n self-organization Main problems n load balancing n decentralization ¨ ¨ n Main advantages n no Single Point of Failure n load balancing n scalability n self-organization availability scalability efficient node localization

Addressing data Data addressed by a Hashtable n calculating hashvalues for keys n storing

Addressing data Data addressed by a Hashtable n calculating hashvalues for keys n storing reference to data identified by hashvalues In P 2 P systems the hashtable is n partitioned n distributed over peers Such a hashtable is called distributed hashtable (DHT)

Chord: A Scalable Peer-to-peer Lookup Protocol Efficient node localization n Distributed lookup protocol n

Chord: A Scalable Peer-to-peer Lookup Protocol Efficient node localization n Distributed lookup protocol n Only one operation: given a key, Chord maps the key onto a node n Simplicity, provable performance, proven correctness n

The Chord System Model n n Every node has an unique identifier Identifiers are

The Chord System Model n n Every node has an unique identifier Identifiers are arranged on a identifier circle modulo 2 m m is called exponent of the ring Nodes know their successor and predecessor

The Chord System Model n key k is assigned to the node whose identifier

The Chord System Model n key k is assigned to the node whose identifier is equal to or greater than k this node is called successor(k) ¨ it is the first node clockwise from k. ¨ lookup(k) returns responsible peer ¨

The Chord algorithm Simple node localization // ask node n to find the successor

The Chord algorithm Simple node localization // ask node n to find the successor of id n. lookup(id) if (id (n; successor]) return successor; else // forward query around the circle return successor. lookup(id); Number of messages linear in number of nodes

The Chord algorithm – Scalable node localization n Each node holds additional routing information

The Chord algorithm – Scalable node localization n Each node holds additional routing information to accelerate lookups ¨ nodes have a so called finger table with up to m entries ¨ ith finger table entry at node x points to the first node y that succeds x‘s ID by at least 2 i-1 ¨ y = lookup(x. ID + 2 i-1)

Example: Scalable node localization Finger table for N 8 (m=6) N 8+1 K 9

Example: Scalable node localization Finger table for N 8 (m=6) N 8+1 K 9 N 14 N 8+2 K 10 N 14 N 8+4 K 12 N 14 N 8+8 K 16 N 21 N 8+16 K 24 N 32 N 8+32 K 40 N 42 finger[i] = lookup(x. ID + 2 i-1)

The Chord algorithm – Scalable node localization n n search in finger table for

The Chord algorithm – Scalable node localization n n search in finger table for the node n which most immediatly precedes key k n. lookup(k) Number of messages: O(log N)

The Chord algorithm – Node joins and stabilization ? (1) (2) (3)

The Chord algorithm – Node joins and stabilization ? (1) (2) (3)

The Chord algorithm – Node joins and stabilization Stabilization protocol for a node x:

The Chord algorithm – Node joins and stabilization Stabilization protocol for a node x: n x. stabilize(): ask successor y for its predecessor p ¨ if p (x; y] then p is x‘s new successor ¨ n x. notify(): notify x‘s successor p of x‘s existence ¨ notified node may change predecessor to x ¨

The Chord algorithm – Node joins and stabilization (1) (2) (3)

The Chord algorithm – Node joins and stabilization (1) (2) (3)

Implementation Overview stabilizer server fingertable Mediator ftableupdate lookup clients N 56

Implementation Overview stabilizer server fingertable Mediator ftableupdate lookup clients N 56

Implementation Demonstration

Implementation Demonstration

Simulation & test results Test conditions n fully populated chord ring of size 8,

Simulation & test results Test conditions n fully populated chord ring of size 8, 16 and 32 n correct fingertables n no node joins n no node departure n communication over loopback device

Simulation & test results Test results n number of forwardings in O(log N) n

Simulation & test results Test results n number of forwardings in O(log N) n bandwidth usage (TCP) ≤ 1 KB/s n bandwidth usage (UDP) ≤ 2. 5 KB/s n average lookup time is ≤ 50 ms

Future work n Impact on lookups random node joins and departures ¨ incorrect finger

Future work n Impact on lookups random node joins and departures ¨ incorrect finger tables ¨ improvements in communication protocol n support of node distances n S-Chord n

Questions & Discussion Thank you for attention! Questions?

Questions & Discussion Thank you for attention! Questions?