280 likes | 307 Views
Structured P2P Network for Loop Avoidance. Chanmo Park August 27, 2003 cmpark@netmedia.kjist.ac.kr. Contents. What is P2P? Essentials of P2P Sharing Approaches toward P2P Sharing (gnutella, Kazza, Morpheus and CAN) Challenges Approach to Structured P2P Network
E N D
Structured P2P Network for Loop Avoidance Chanmo Park August 27, 2003 cmpark@netmedia.kjist.ac.kr
Contents • What is P2P? • Essentials of P2P Sharing • Approaches toward P2P Sharing (gnutella, Kazza, Morpheus and CAN) • Challenges • Approach to Structured P2P Network • Overview of Structured P2P Network • Elements of Structured P2P Network • Details of Structured P2P Network • Conclusion • References
What is P2P? • Direct access between peer computers, rather than through a centralized server • Applications that take advantage of resources (storage, cycles, content, human presence) available at the edges of the internet • Offers a way of decentralizing administration on the resources • Sharing of computer resources by direct exchange • Self-organizing capacity
Essentials of P2P Sharing • Construction of P2P Network • Self-Organization • Decentralized Resource Administration • Sharing resources • Content Discovery • Stability • Recovery from the failure
Approaches toward P2P Sharing • Unstructured network and pure decentralized • Gnutella • Unstructured network and partially decentralized • Kazza, Morpheus • Structured network and pure decentralized • CAN
Gnutella Protocol for P2P File Sharing(1) • Characteristics • Gnutella is a distributed system for file sharing • provide means for network discovery • provide means for file searching and sharing • Defines a network at the application level • Employs the concept of peer-to-peer • all hosts are equal (symmetry) • there is no central point • anonymous search, but reveal the IP addresses when downloading
Gnutella Protocol for P2P File Sharing(2) • Network Discovery • A discovers its horizon (e.g., TTL = 2) • send ping to its neighbors (broadcast) • ping msg is forwarded if TTL>0 • Receiving ping, B,C and E, respond pong • pong contains network info about its sender • B forwards pong msgs from E and C, to A
Gnutella Protocol for P2P File Sharing(2) • Network querying • A searches the network (e.g., TTL = 2) • send query to its neighbors (broadcast) • the query is forwarded if TTL > 0 • B,C and E, respond with query_hit • query_hit contains network info about where to download the file from • B forwards query_hit msgs from E and C, to
Gnutella Protocol for P2P File Sharing(3) • There is nothing that stops a servant flooding its network region with messages. • Cost of maintaining Network • Cost of searching file From “A Quantitative Analysis of the Gnutella Network Traffic”
Kazza and Morpheus • Kazza, Morpheus • unstructured network • partially centralized systems which use the concept of “SuperNodes” • Peers are automatically elected to become SuperNodes if they have sufficient bandwidth and processing power • In Morpheus, • a central server provides new peers with a list of one or more SuperNodes with which they can connect. • SuperNodes index the files shared by peers connected to them and proxy search requests on behalf of these peers. Queries are therefore sent to superNodes
CAN (Content Addressable Network) • CAN (Content Addressable Network) • a distributed, internet-scale hash table that maps file names to their location in the network • Purely decentralized • Scalable
Challenges • Duplicated Messages • From loop and flooding • Missing some contents • From loop and TTL • Oriented to File • Why? • Unstructured Network • Too Specific
Approach to Structured P2P Network • Contribute to a way • to construct structured and general P2P network without loops and TTL • to know knowledge about constructed P2P network • 2-D Space • Mapping each nodes’ network identifier into 2-D space • Zone • Each node occupies allocated area • Aggregate nodes with same network identifier into a zone • Maintain a binary tree • Core • Represent each zone • Manage it’s zone • Gateway between neighbor zones and it’s member • Member • Belonged to a zone • Each message should be sent to its zone and members in its zone
zone Core node Member node Member Tree Tx within a zone Tx between zones Tx between zones Overview of Structured P2P Network 216 0 216
Elements of Structured P2P Network • Core/Member Nodes • Neighboring zone information • core info, zone info, direction • Member information • member node information, routing table • Strategies • Routing Messages • Constructing Structured P2P Network • Managing Zone • Constructing Member Tree • Discovering Contents
Core/Member nodes • 7 neighboring zone information • Core node (IP, Port#) • Zone Range (x1,y1)~(x2,y2) • Numbering zone • 4 bits • 00 : less than • 01 : belong to • 10 : greater than • Member information • IP, Port# • Member Tree • Uplink node info (only 1) • Downlink node info (limited by 2) 1001 1010 1000 0110 0100 0001 0010 0000
Routing Messages • Within a zone • Depends on the Member Tree (Binary Tree) • Between zones • If not a core, just send its core • Then core route this message along X coordinate until reaching destination x • After that, route the message along Y coordinate • Every Message should have originator’s IP and Port 1001 1010 1000 0110 0100 0001 0010 0000
Constructing Structured P2P Network(JOIN) Node Core Bootstrapping RP JOIN/(JOIN_FWD) Routing Message Zone Management Join As Core/Join As Member Inform Neighboring Zones Inform Members Inform Neighboring Zones
Managing Zone(1) same network identifier? Msg Type? Yes No AsMember AsCore Split Zone & Rearrange Neighbors Accept as a Member Set itself & Inform Neighbors Inform Members Inform Neighbors Msg AsCore Msg AsMember Reply Join Completed
Managing Zone(2) • Splitting Zone • Network ID of New node is within its zone range, but Network ID is different • Direction of Split • X or Y direction • Depends on Difference of X and Y between two network IDs • Rearrange neighboring zones • Two nodes inform neighbors of this change Y X
Constructing Member Tree • Each node • Maintain information of all members • Creates a binary tree • Using sorted IP address • Rule • one link between core and a member • Uplink is only one • Downlink is limited by 2 6 2 4 Core 1 5 3 7
Y 216-1 X 0 216-1 Discovering Content • Content Discovery • Send the Msg to its Member and it’s core • Core • On receiving it, Send it neighbor zones along X coordinate • Also send it Neighboring Y zones with flooding • DiscoveryHit
Current Status • Still Experimenting • Environment • GT-ITM • Creating Network Topology • About 100,000 nodes • Your advice • Simulator • Myns • OS • Linux • Dev. Lang. • Gcc/g++ version 2.96
Conclusion • By introducing 2-D space • Construct structured P2P network • Reduce duplicated msgs (from zone and aggregation of same LAN nodes) • Guarantee visiting the whole node • Future Work • implementing simulator • Add Recovery Mechanism • Add native IP multicasting on Local Area Network • Reflect real network topology on simulator
References • K. Calvert, M. Doar, and E. Zegura. Modeling Internet Topology. IEEE Transactions on Communications, pages 160-163, December 1997. • GT_ITM, Geogia Tech. • myns Simulator, http://www.cs.umd.edu/~suman/research/myns/, Univ. of Maryland, Suman Banerjee • S. Ratnasamy, P. Francis, M. Handley, R. Karp, S. Shenker, "A Scalable Content-Addressable Network", ACM Sigcomm 2001 • Peer-to-Peer Architecture Case Study: Gnutella. M. Ripeanu. 2001 International Conference on Peer-to-Peer Computing (P2P2001), Linkoping, Sweeden, August 2001 • Kazza, http://www.kazaa.com/us/index.htm • Morpheus, http://www.openp2p.com/lpt/a/990