peer to peer network design discovery and routing algorithms nuno santos february 2, 2005
Post on 19-Jan-2016
217 Views
Preview:
TRANSCRIPT
Peer to Peer Network Design Discovery and Routing
algorithms
Nuno SantosFebruary 2, 2005
Overview
Discovery and Routing in traditional networks Existing P2P networks Scalable, Pure P2P networks Plaxton Mesh – Routing Plaxton Mesh – Object Discovery
Discovery and RoutingTraditional Networks Discovery and routing – foundation of computer
networks: Discovery – Given a named object O, return the address
of node X where O can be found Routing – Given a message M and a destination node X,
deliver M to X Traditional networks have dedicated servers for
these operations Examples: DNS Servers, IP routers, directory servers Generally static structure Depend on human intervention Single points of failure
Discovery and Routing P2P Networks Desirable features of P2P networks
Dynamic: Nodes join and leave at any time Objects are inserted and removed often
Scalable Most perform gracefully even with large numbers of nodes
Reliable Must cope with arbitrary node failures
Consequences: Central servers must be avoided The network must adapt dynamically
Traditional discovery and routing algorithms not adequate
Discovery and Routing in P2P networks Real world examples Napster – Single central server keeps a directory of
nodes and objects. Basically, a huge file catalog Discovery and Routing is not really P2P
eDonkey, eMule – Based on multiple servers Servers require special setup. Not ordinary nodes. Clients connect to a server. File list stored on server. Servers communicate with each other for performing
searches. Improvement over Napster, no single server, but not pure
P2P
Discovery and Routing in P2P networks Real world examples
GNUtella – Decentralized P2P network Nodes can either be:
Peers – Normal nodes Ultrapeers – Ad-hoc servers.
Peers get promoted to ultrapeers dynamically, based on their bandwidth.
Discovery based on broadcasts Nodes send a search message to its
ultrapeer Ultrapeers forward message to all other
peers Repeat recursively until message
reaches maximum hops (typically 7) Searches generate a lot of traffic: O(n)
complexity Not scalable!
Current situation of P2P networks Some are highly scalable – eMule, eDonkey
Rely on a static structure of servers Some are pure P2P – Gnutella
Broadcast based searches generate too much traffic
Not scalable Are scalable, pure P2P networks
possible?
Scalable, Pure P2P networks
Active field of research for the last 5 to 7 years Several research projects
Plaxton Mesh Chord Pastry Tapestry
Common features Pure P2P – No central servers Scalable - Discovery and routing is O(log(n)). Routing tables size also O(log(n)). Highly resilient Adapt dynamically to node arrival, departure and failure
Applications based on research projects: Pastry
PAST – Distributed storage system SCRIBE – Application level multicast
Tapestry OceanStore – Distributed storage system with replica and redundancy support
Skype might also be in this class No central server and scalable, but algorithm details unknown
Plaxton MeshOverview Plaxton Mesh – earliest known proposal for a scalable P2P
network (1997) Plaxton Mesh is static – no node arrival, departure or failure Other projects based on same basic idea
Extensions supporting dynamic networks More complex
Concepts in Plaxton Nodes – Act as routers, clients and servers simultaneously. Objects – Stored on servers, searched by clients.
Objects and nodes have unique, location independent names Random fixed-length bit sequence in some base Typically, hash of hostname or of object name
What Plaxton does: Given message M and destination D, a Plaxton mesh routes M
to the node whose name is numerically closest to D
Plaxton MeshRouting Routing done incrementally,
digit by digit In each step, message sent
to node with address one digit closer to destination.
Example - node 0325 sends M to node 4598 Possible route:
0325 B4F8 9098 7598 4598
Plaxton MeshRouting Tables Each node has a neighbor map
Used to find a node whose address has one more digit in common with the destination
Size of the map: B*L, where: B – base used for the digits of the address. Eg. 8
in octal base L – length of the addresses
4 digit addresses in octal base -> 8*4 tables.
Plaxton MeshRouting Tables x are wildcards. Can be
filled with any address. Each slot can have several
addresses. Redundancy. Example: node 3642
receives message for node 2342 Common prefix: XX42
Look into second column. Must send M to a node one
digit “closer” to the destination. Any host with an address
like X342. Look in line 4
Node 3642
Plaxton MeshPublishing and locating objects Server S has an object O
Wants to make it known to clients
Strength of a Plaxton Mesh No central directory Directory distributed between
nodes How? Hash function
H: (object names) -> (node addresses)
H()
Objects
Plaxton Nodes
Plaxton MeshPublishing and locating objects Server S wants to publish object O
S computes H(O), the object ID of O (hash of the name). S sends a PUBLISH message to node H(O).
Node H(O) might not exist. No problem. Message forwarded deterministically to node X with address closest to A(O).
X - root node for object O Nodes visited by the PUBLISH message associate A(O)
with physical address of S (including root node) These nodes are the tree of the object O
Plaxton MeshPublishing and locating objects A client C wants to find object O.
Evaluates H(O), using same algorithm as the server
Sends a QUERY message to H(O) Forwarded to X, the object root. The object root forwards the message to S.
Shortcut – Nodes in the tree of O also know location of O If QUERY message reaches one of this nodes, it is
forwarded directly to S.
Analysis of Plaxton Mesh
Advantages Simple fault handling – Several possible routes. Scalable – No central point, routing done with local
information Disadvantages
Global knowledge required to build routing tables Static network Root node vulnerability
More recent research overcomes most of disadvantages Dynamic networks Redundant storage
Conclusion
Pure P2P networks are possible Dynamic Scalable Highly resilient
Applications starting to appear Skype (??)
Complex to build and understand But very promising
top related