CS625-ADVANCED COMPUTER NETWORKS
LECTURE 24 (Tuesday, 14 Oct 2003)
SCRIBE: Bhola Ram Meena (Y0097)
PEER -TO-PEER OVERLAY NETWORKS
Peer-to-Peer computer network refers
to any network that does not have fixed clients and servers, but a
number of peer nodes that function as both clients and
servers to the other nodes on the network. In peer-peer networks all
nodes are equivalent . For example Napaster is a peer-peer network for
of Peer-Peer Networks:
1. Centralized Directory
All information is
stored at central location decided by peer-peer networks.
2. Decentralized Directory
It have no central location
for storing all information.
It can be further classified into two category:
It have no restriction on storing data. Data can be stored in any node.
Problem with Unstructured Networks:
It takes long time to search for a
2.2 Structured Networks
It solves the above problem by putting restriction on way data is
stored in network.
These networks have close coupling
between network topology and data location.
Several distributed data structured have
been proposed for these networks:
2. CAN (Content addressable Network)
structures provide the same functionality.
peer to peer
Same data is
stored at different places so it can be available if any node goes down.
of nearby servers.
For any data
request , closest server having data is selected.
Data can be searched
in P2P networks.
P2P networks provide efficeint
location based on keys.
1. Chord maps key space to node space.
---- It map a given key to a
node which stores data and serves it.
--- Keys can be stored at
--- Key space is flat
Chord places no contraints on key it looks up.
--- Support Dynamic node join/leave.
2. Application related functionalities
--- user friendly naming of data.
we can use secure hash for
defining keys or we can use a secret key so anyone who don't know
key cann't get particular mapping.
chord directly doesn't provide
replication because it assumes that different key means different data.
a data can be associated with two keys for proving replication.
Chord doesn't provide
support for searching.
of applications using P2P networks
1. Distributed Indexing
2. Cooperative Mirroring
Let say different piece of
software is stored at different nodes and if demand for a particular
software is high then there will be load variation in network. Using
P2P networks we can distribute the load over all network.
3. Time Sharing Storage
-- access to data all time.
-- P2P can put more stress on availablity rather the load
It return a node corresponding to
key. Key can be any arbitrary string.
Due to join/leave of nodes in network set of keys might
change for a node.
Nodes/keys are hashed using SHA-1 in a circular m-bit space
--- IP address of node is hashed.
--- consistent hashing for load balancing
consider a network in which nodes are hashed on 1, 4, 6 in 3-bit
- Key is assigned to
key k is mapped to 2 then it will be assigned to its successor node
which is 4.
Reassignment happens only after node joins/leave.
rehashing only resassignment.
Let node 3 joins then it will be
responsible for node 2 .
Every node maintain pointers
to its successor node and node for a given key is found by following
But this is O(N) time complex.
-- maintain a finger table table with atmost m-entries.
For example a node n will have pointers to following
If a pointer is pointing to NULL node then a node
following it will be pointed.
finger table works:
1. Nodes stores only small number of pointers. A single
node may not have pointer to succesor of key(k).
2. Node n searches its finger table for node j which precedes k.
It takes O(logN ) times beacuse it halves the distance in
each look up.
For example .
N0+ 2^i <= k <= N0+2^(i+1)
N1+ 2^(i-1) <= k <= N1+ 2^i
steps when node n joins:
1. Learn of some other node n'
Ask for successor of n.
2. Initialize own finger table and
--- update fingers of existing nodes.
3. Transfer Keys.
1. Simultanious join/failure
-- need of r nearest successors
-- need to replicate some data associated with
2. Protocol can implemented recursively or
3. Path length expansion is a important
--- there is no corelation in distance between
logical space and physical space.
Those nodes which are near in logical identifier space can be far
aparted in physical space.
---- address at overlay node placement