One possible classification of peer-to-peer networks is according to their degree of centralisation:
Peers act as equals, merging the roles of clients and server
There is no central server managing the network
There is no central router
Has a central server that keeps information on peers and responds to requests for that information.
Peers are responsible for hosting available resources (as the central server does not have them), for letting the central server know what resources they want to share, and for making its shareable resources available to peers that request it.
Route terminals are used addresses, which are referenced by a set of indices to obtain an absolute address.
Some examples of "pure" peer-to-peer application layer networks designed for file sharing are Gnutella and Freenet.
P2P Advantages An important goal in peer-to-peer networks is that all clients provide resources, including bandwidth, storage space, and computing power. Thus, as nodes arrive and demand on the system increases, the total capacity of the system also increases. This is not true of a client-server architecture with a fixed set of servers, in which adding more clients could mean slower data transfer for all users. The distributed nature of peer-to-peer networks also increases robustness in case of failures by replicating data over multiple peers, and -- in pure P2P systems -- by enabling peers to find the data without relying on a centralized index server. In the latter case, there is no single point of failure in the system. When the term peer-to-peer was used to describe the Napster network, it implied that the peer protocol was important, but, in reality, the great achievement of Napster was the empowerment of the peers (i.e., the fringes of the network) in association with a central index, which made it fast and efficient to locate available content. The peer protocol was just a common way to achieve this. (see wikipedia for more)
Napster acts as a discovery server on a P2P Network, a client logs onto Napster and supplies a directory that can be shared with other users. The content of this directory is then used to fulfil requests from other users for particular files.
It can be seen in the Figure above that if the requested file is located on another client, a connection is established between the client requesting the file and the machine on which the file resides. A direct peer-to-peer download from one machine to another is then possible. By using this method the workload on the server is greatly reduced as the communication is between both clients from this point forward.
Napster napster.com users File list is uploaded 1.
Napster napster.com user Request and results User requests search at server. 2.
Napster napster.com user pings pings User pings hosts that apparently have data. Looks for best transfer rate. 3.
Napster napster.com user Retrieves file User retrieves file 4.
Gnutella defines the way peers communicate by the use of descriptors for communication and rules overseeing the servant exchange of these descriptors. In Gnutella there are currently five descriptors defined as shown below:
Ping: To discover neighbours on the network.
Pong: The reply sent for a Ping.
Query: Used for searching a network. A client will respond to the Query if a match is found within its local data set. Figure 5 shows a computer placing a query to the network. This is passed to its neighbours who in turn pass it onto their neighbours (and send a response if necessary). This continues until the Query has reached the end of its lifespan – its Time to Live (TTL) has reached zero.
Query Hit: The response sent to the origin of the query using the address supplied found within the original query.
Push: Allows clients behind a firewall to contribute to the network.
Pure P2P & Super-Peers Technically, a completely pure peer-to-peer application must implement only peering protocols that do not recognize the concepts of "server" and "client". Such pure peer applications and networks are rare. Most networks and applications described as peer-to-peer actually contain or rely on some non-peer elements, such as DNS. Also, real world applications often use multiple protocols and act as client, server, and peer simultaneously, or over time. Completely decentralized networks of peers have been in use for many years: two examples are Usenet (1979) and FidoNet (1984). Many P2P systems use stronger peers (super-peers, super-nodes) as servers and client-peers are connected in a star-like fashion to a single super-peer. Sun added classes to the Java technology to speed the development of peer-to-peer applications quickly in the late 1990s so that developers could build decentralized real time chat applets and applications before Instant Messaging networks were popular. This effort is now being continued with the JXTA project.
JXTA technology is based on XML, Java technology, and key concepts of UNIX operating system
Transmitted information is packaged as messages. Messages define an XML envelop to transfer any kind of data.
The use of Java language is not required - JXTA protocols can be implemented in C, C++, Perl, or any other programming language
Structure JXTA Core JXTA Services JXTA Applications Any Peer on the Web (Desktop, cell phone, PDA, Server) Security Peer Groups Peer Pipes Peer Monitoring JXTA Community Services Sun JXTA Services JXTA Community Applications Sun Applications JXTA Shell Peer Commands
Windows Peer-to-Peer Networking is a developer platform to create peer-to-peer applications for computers running Windows XP with Service Pack 2, Windows XP Professional x64 Edition, Windows XP with Service Pack 1 and the Advanced Networking Pack for Windows XP, or Windows Vista.
Computers running Windows Vista already have Windows Peer-to-Peer Networking installed.
For computers running Windows XP with SP2, do the following to install Windows Peer-to-Peer Networking:
1.Click Start, click Control Panel, and then click Add or Remove Programs.2.Click Add/Remove Windows Components.3.In Components, click Networking Services (but do not select its check box), and then click Details.4.Select the Peer-to-Peer check box, and then click OK.5.Click Next, and then follow the instructions in the wizard.
For computers running Windows XP with Service Pack 1 (SP1), you can install Windows Peer-to-Peer Networking with the Advanced Networking Pack for Windows XP, a free download.
Windows Peer-to-Peer Networking architecture consists of the following components:
• Graphing The Graphing component is responsible for maintaining a set of connected nodes known as a graph and providing flooding and replication of data across the graph. The Graphing component uses the Flood & Synchronization, Store, and Graph Maintenance subcomponents.
• Grouping The Grouping component is the security layer provided by default on top of a graph. The security layer defines the security model behind group creation, invitation, and connection to the group. In addition, Grouping leverages PNRP as the name resolution protocol - and enables multiple applications to share the same graph.
• NSP The Name Service Provider (NSP) component provides a mechanism to access an arbitrary name service provider. In the case of Windows Peer-to-Peer Networking, peer-to-peer applications use the NSP interface to access PNRP.
• PNRP The PNRP component provides peer-to-peer name resolution.
• Identity Manager Identity manager enables the creation and management of peer-to-peer identities.
• Microsoft TCP/IP version 6 protocol The Microsoft TCP/IP v6 protocol (IPv6) provides the transport over which Windows Peer-to-Peer Networking operates.
Windows Peer-to-Peer Networking is a new platform supported by Windows XP and Windows Vista that allows better utilization of PC computing resources and the creation of a new wave of peer applications for RTC, collaboration, content distribution, distributed processing, and improved Internet technologies.
Windows Peer-to-Peer Networking uses IPv6, which restores the end-to-end computing model. With Teredo, IPv6 nodes can even communicate across one or more IPv4 NATs. For a serverless name resolution and peer discovery mechanism, Windows Peer-to-Peer Networking uses PNRP.
To associate peer members together to securely share data, Windows Peer-to-Peer Networking uses graphing (for an efficient flooding topology) and grouping (for authentication and secure communication).
Group members maintain a replicated store containing all the shared data of the group and can search the store using keywords, attributes, and common logical operators.
Windows P2P Summary
Finally…. P2P Applications Education and Academic : Due to the fast distribution and large storage space features, many organizations are trying to apply P2P network for educational and academic purposes. Military : In May, 2003 Dr. Tether. Director of Defense Advanced Research Project Agency has testified that U.S. Military is using P2P network. Due to security reasons, many files are still kept in confidential. Business : Besides File Sharing, companies are also interested in Distributing Computing, Content Distribution, e-market place, Distributed Search engines, Groupware and Office Automation via P2P network. There are several reasons why companies prefer P2P sometimes such as: Real-time collaboration, a server cannot manage with increasing volume of contents, a process requires strong computing power, a process needs high-speed communications etc. At the same time, P2P is not fully used as it still confronts a lot of security issues. Telecommunication : Nowadays, people are not just satisfied with “can hear a person from another side of the earth”, instead, the demands of clearer voice in real-time are increasing globally. Just like the TV network, there are already cables built. It’s not very likely for companies to change all the cables. Many of them turn to use internet, more specifically, P2P network. For instance, Skype, one of the most widely used phone software is using P2P technology. Furthermore, many research organizations are trying to apply P2P network on cellular network (see wikipedia for more…).