P2P (peer to peer) networking is about-the ability of any machine to share its data with any other machine, without needing to take permission from any server.
P2P is more known because of the likes of Napster, Gnutella and Kazaa, and how they're affecting the music and video industries. But, there's also a bright side to P2P, which could change the very fabric of how companies do business
Most of today's local office networks are based on the client-server model, wherein there's a small group of servers providing services to a large number of clients. So, there are file servers, application servers, messaging servers, Web servers, ftp servers, and so on. They're what you can call the law and order providers of a network, controlling what clients can or can't access. Since they're fewer in number compared to clients, it's easy for network administrators to manage them. Now, imagine if there were no separate servers on a network. Every machine was a server by itself, and could freely share anything it wanted directly with any other machine on the network. That's what the concept of P2P (peer to peer) networking is about-the ability of any machine to share its data with any other machine, without needing to take permission from any server. You're probably getting all sorts of mixed feelings about this, both good and bad.
Though the P2P concept has been around for ages, its new avtaar has crossed the confines of a LAN to cover the entire world using the Internet. This is challenging the very basis of how networks function and, even worse, how some businesses operate. For network administrators, the concern is about losing all control over the network. For businesses, the concern is about losing business because of software piracy, and hence legal issues come into the picture.
The first well-known example of modern P2P networks is Napster, which allowed any user connected to the Internet to share his data, mostly music, with anyone else connected to the Internet across the world. While this was great for individual users, it was a serious threat to the music industry because people shared pirated music in the form of MP3 files. It also posed a problem for corporate networks, because just about every computer user used this to download MP3s, leading to choked Internet bandwidth, reduced employee productivity, etc. Music companies fought legal battles in courts, and Napster was forced to shut down. But by then the power of Napster had fuelled the birth of many other similar applications, Gnutella, Morpheus and Kazaa being the popular ones. What's more, every new P2P application was more powerful and difficult to stop than the previous.
There are two sides to this situation. One side is that P2P networks are a parasite to corporate networks and software industry. The other is a more positive side of P2P. Just imagine if music companies used such a network to distribute their music with some sort of payment mechanism. They could create a new distribution channel with a broader reach than any other method. It could be a new business model altogether. The pages to follow talk about what P2P is, its architecture and applications.
P2P Network Classifieds
The P2P space can be classified into three categories based on the anatomy of the network and application. These are collaborative computing, instant messaging and affinity groups. Collaborative computing is also referred to as distributed computing and its biggest and most successful example is the Seti@Home project. Another is Fight AIDS at Home from Entropia. We all know about instant messaging and regularly use MSN, ICQ and Yahoo instant messengers. The hottest P2P applications in use today are the affinity groups like (erstwhile) Napster, Kaaza and Gnutella file-sharing networks. They are extensively used for music, movies and software sharing. Then there are the less well known workspace-sharing applications, like Groove, which also fall in this category.
While on one side, P2P technology puts unused and idle resources to constructive use, problems abound about the usage of such a network to trade software and multimedia content. In a corporate environment, the problem with implementing it is the lack of central control. Plus, there can also be security issues when individual desktops directly connect to each other.
These debates apart, let us look at the P2P applications as they exist now.
Though the founding document for SETI was first published in 1959, it was not until the Internet got established as an effective medium to connect computers, that the Seti@ Home project came into being. Again, though the idea of using idle computing power of individual computers around the globe originated in 1996, it wasn't until May 1999, that the software actually started its work. As of this day, it has around 3.8 million users and they have contributed a total of a little over a million years of CPU time to the project! The SETI@ home is yet to find intelligent life elsewhere in the universe. But the enormous amount of computing power expended on the project would not have been possible had it not been for this collaborative computing effort.
You, too, can participate in the effort. The only thing you have to do is to install the client (available for different platforms and OSs) and run it. The client automatically downloads data units, processes them in the idle CPU time and sends them back to the project base at University of Berkeley.
Fight Aids at Home
A similar distributed-computing project is Fight AIDS at Home (FAAH) from Entropia. Entropia is also running two more grid-computing projects-SaferMarkets and a non-profit research-but FAAH accounts for 80 percent of the whole grid. The FAAH project has a little over 50,000 machines running across the globe.
The Great Internet Mersenne Prime Search
Another similar project is The Great Internet Mersenne Prime Search (GIMPS). This runs computations for one of the most coveted finds in all of mathematics-a new Mersenne prime number. The task is again very CPU intensive. This computing community was also created by Entropia in 1997 and is hosted by the Internet PrimeNet Server (Entropia's). The total computing power of the grid is currently equivalent to 69 of Cray's most powerful T932 supercomputers! These distributed computing clients are also available for download and work in a similar manner as SETI@Home
Instant messaging is another widely used P2P application-MSN, AOL, ICQ, Yahoo and loads of others-that we use everyday. These messengers work in coordination with a central server. The server is, however, used to perform the task of authenticating a client to the network, storing buddy lists and making the first contact between two clients. Once a connection is established, two client applications talk to each other directly, though you also have the option of using the server to send messages. Instant messengers come with a lot of features that we overlook. We think of them as only text-messaging windows.
MSN Messenge enables message conferencing, application sharing, white boarding, transfer of files. It even allows you to make phone calls. Application sharing allows both interacting parties to work on an appli- cation together. White-boarding works like a virtual white board on which the interacting parties can write or draw.
There are also private messengers. They consist of a server and a client part that a corporate can buy and install for its network. This can then be used for similar functions as public messengers within the organization. These private messengers offer better security and encryption features, apart from local manageability.
Popularized by file-swapping programs, this area of P2P consists of lots of applications, the most popular being Kazaa and Napster. Though propounded by their creators as 'efficient usage of your available bandwidth', these are sadly turning out to be platforms for illegal file swapping. Moreover, they are becoming bandwidth hogs. Music companies have been on the forefront of the trying to close these file-sharing networks down. The latest in the field to dissuade users from illegitimate music file downloads is a company by the name of OverPeer. They upload dummy music files to these P2P networks (files with a chord or chorus in a loop instead of a track).
But fileswapping is not what affinity groups are all about. Collaborative groups (also called P2P Groupware) can be public or private corporate groups that work on a common application. Two such well-known applications are Microsoft NetMeeting and Groove. These are what are called workspace-sharing applications. In NetMeeting, for instance, individual users can host conferences and invite others to them. Users in a conference can share their applications. Other users get windows that have visualizations of the shared applications. Groove uses a slightly different approach. Here you have workspaces that are created and shared among participating users. It uses a client-server mechanism to find peers and initiate services. After that, all communication happens directly between the participating peers.
There's no single perfect P2P architecture, but several models are floating around vying to get there
P2P networks like FastTrack (Kazaa), Gnutella and eDonkey account for a considerable percentage of the global Internet traffic. Since there are no central servers with fat pipes, P2P networks must organize themselves in such a manner that their nodes are able to connect, search and download data as fast and efficiently as possible. Unfortunately, this is easier said than done. Nobody has yet found the magic formula to make the P2P model as efficient as the client-server model. However, there are a number of different ideas around and quite a few of these seem to work very well. This article looks at some of these models.
Basic distributed systems topologies
The distinguishing factor between P2P and traditional client-server networks is the flow of data. If most data is flowing from one node to others, it makes sense to call that node a server. But, instead if all nodes on the network participate more or less uniformly, it can be called P2P. Hence, data flow is used to categorize networks. There are several topologies possible for a P2P network, like ring, hierarchical and decentralized. Some new networks also exploit the capabilities of several different topologies to form hybrid networks that can work even better.
If a single server can't handle the load of all its clients, a common solution used is to gather a bunch of machines and make them act as a distributed server. These nodes communicate between themselves, thus serving the same function as well as providing load-sharing and failover capabilities. It is generally assumed that such a network is owned by a single corporation, and serves computers that are nearby in the network as well. So, a corporate P2P network could well be envisaged this way.
Hierarchical systems are different in that all computers keep connect ing to their parent nodes till one reaches the very root server. Perhaps the most common example of this is DNS (Domain Name Service) in which authority flows down from the root server.
Decentralized or scattered
Most new P2P apps use this kind of structure. Here one can imagine a cluster of computers, interconnected by random connections. All peers play equal roles in such a network and the most popular example of is Gnutella. Other applications are Freenet and the recently released Overnet.
While a number of combinations are possible with these different network topologies, the centralized + decentralized approach is considered a favourite in the P2P arena. Here, most peers connect to 'supernodes' and talk only to them, except when downloading data. These supernodes (characterized by powerful machines on fast connections) communicate amongst themselves in a Gnutella like fashion.
While it is very difficult to predict the exact topologies and architecture that future P2P networks will choose, what one can guess are the features that would be an essential part of them. First and foremost, for any P2P application to become truly popular, it must be very scalable. It has been proves mathematically that networks like Gnutella can be brought to their knees if there are a very large number of peers online. FastTrack has made good progress on this front, but much remains to be done.
The next problem is that of a single point of failure. This is where Gnutella scores over FastTrack. By requiring all clients to use a central server for authentication and logging on, Kazaa has introduced a weakness in its network. There is always the danger of such servers going offline, but perhaps the greatest threat is from overzealous law enforcement agencies in the US etc.
Then there are some other issues. With so many individual, non-compatible networks, wouldn't it be nice to have an app that could integrate all of them? Then of course, it would have to be able to support multihost downloading and resumption of broken downloads like Kazaa. Anonymity is another feature that many users would look for.