Introduction to Peer-to-Peer (P2P)
Subscribe to the
RSS Feed or by Email and receive free daily updates
There seems to be a lot of confusion among the general user community about what is Peer-to-Peer (P2P). I could not find good resources on this and information even though it was there, was scattered all over. I will try to make an attempt to present all that information in a brief article over here.
What is P2P?
P2P is a class of applications that take advantage of resources – storage, cycles, content, human presence – available at the edges of the Internet. [Clay Shirky (www.shirky.com)]
P2P refers to a class of systems and applications that employ distributed resources to perform a critical function in a decentralized manner.[Milojicic et al. (HP)]

(image source: http://www.junginger.biz)
PIE (stands for Presence, Identity and Edge Resources) is the term used to describe the core elements of any P2P application.
Edge Resources:
Peer-to-peer networks make use of resources at the edge of the Internet. These devices at the end can be transient. P2P applications need to take care of the following properties of the edge resources: CPU power, disk storage, connectivity, reliability, bandwidth and location.
Identity:
Peer-to-peer networks must be able to identify uniquely the resources that are available. IP addresses of resources can be used to uniquely identify them but the lack of enough IP addresses (a problem due to be solved by IPv6) has forced P2P systems to come up with their own naming schemes that are not dependent on IP addresses.
Presence:
It is the ability to tell when a resource is online and when it is not.
A pure peer-to-peer network does not have the notion of clients or servers, but only equal peer nodes that simultaneously function as both “clients” and “servers” to the other nodes on the network. This model of network arrangement differs from the client-server model where communication is usually to and from a central server. A typical example for a non peer-to-peer file transfer is an FTP server where the client and server programs are quite distinct, and the clients initiate the download/uploads and the servers react to and satisfy these requests.
P2P Usage
Peer-to-peer networking enables or enhances the following scenarios:
- File-sharing applications
- Distributed databases
- Distributed computing
- Collaboration
- Distributed games
- Instant messaging
- Ad hoc networks
- Streaming
Advantages of peer-to-peer networks
- Performance is better. Since peers talk to each other directly and there is no central server, so the load is only on those two machines unlike in client-server where all the clients have to connect through a central server, so if the number of connections increase, the server gets bogged down and becomes slower. (e.g. yahoo chat uses client-server model but Skype uses P2P)
- No single point of failure for data replication: distributed nature of peer-to-peer networks increases robustness in case of failures by replicating data over multiple peers, and by enabling peers to find the data without relying on a centralized index server. (Torrents wok on same principle, so if you are downloading a video file from a user, you are also connected to few other users who has the same file or have more of that file that you and you start downloading from all of there users. If one of them goes does you can also continue downloading from others.
Types of P2P Networks
- Centralized (e.g. Napster)
- File-sharing system
- Almost distributed system
- The location of a document is centralized
- The “transfer” is peer-to-peer
- Problems
- Robustness
- Scalability
- Distributed (e.g. KaZaa)
- Structured (e.g. CAN)
- Based on distributed hash tables (DHTs)
- No flooding
- Exact matches
- Unstructured (e.g. Gnutella)
- Two phases
- Localization + exchange
- No server
- Open source
- Distributed search
- The query is flooded
- Loop avoidance
- Limited TTL (not all nodes are visited)
Conclusions
P2P has applications in bioinformatics, education and academics, military, business, TV, Teleccommunications. It is an upcoming area but still has lot of secutiry issues which need to be resolved. But in the era of server cpu chewing applications, P2P is a welcome technology which will not only take the load of servers but in the process improve the quality of sharing of file and multimedia.
Popularity: 4% [?]
Subscribe to the
RSS Feed or by Email and receive free daily updates

















