260 likes | 366 Vues
This paper explores structured peer-to-peer (P2P) networks, focusing on their design and mechanisms to avoid loops in message routing. P2P networks allow direct connections between users to share resources without centralized control. Essential elements of structured P2P include core/member nodes, zone management, and content discovery strategies, which enhance stability and performance. Various approaches are compared, revealing the challenges and advantages of different systems such as Gnutella, Kazaa, Morpheus, and Content Addressable Networks (CAN). The study concludes with future directions for the advancement of structured P2P systems.
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