The Internet is traditionally based on a client-server approach. There are a number of servers in the networks doing specific tasks, such as e-mail server and web server. The end-users install clients on their IP terminals, such as computers, mobile phones and PDAs, and connect to the servers for specific services. There is, however, another approach that is used more and more, where the end-user's IP terminals act as both a client and a server. In this approach the IP terminals connect directly to each other and share information such as files. This approach is called Peer 2 Peer to indicate that the peers communicate directly with each other.
The Peer 2 Peer concept is as old as the Internet. The first Internet was Peer 2 Peer, and it was in later development that the Client Server approach was invented and developed to offer services like E-mail and WWW. However, the large deployment of Peer 2 Peer is mainly connected to the applications designed for sharing music and later movies. The Peer 2 Peer technology is by no means limited to the sharing of music and movies, and can be used in any network applications which need information sharing. These are, for example, multiplayer games, signaling systems in telecommunication and corporate applications.
One of the main challenges to making Peer 2 Peer networks work efficiently is the locating of information. This can be compared to the role of signaling in the telephony networks to locate the parties who want to communicate with each other. Through the last 5-6 years a number of Peer 2 Peer applications have been developed; some known examples are: 1) Napster, 2) Gnutella, 3) FreeNet and 4) BitTorrent. The aim of these applications has been to facilitate document sharing and mainly the sharing of music and movies. Many of the current applications, which are based on Peer 2 Peer, are based on one of these technologies, or a combination of them. Furthermore, the VoIP application Skype has based its signaling on the Peer 2 Peer approach. Skype is discussed in a separate section in this report. In the following, Napster and Gnutella are described.
Napster was the first large Peer 2 Peer application for music sharing. Napster was developed in 1999 by a college student to share his music with his friends. Soon afterwards, Napster became popular among the users and very unpopular among the record industry and the content owners. Napster was closed down by a US court in mid 2000. The locating of information in Napster was implemented by deploying a central index server, keeping track of available content on the net, so the approach was Peer 2 Peer, but it still relied on a central server.
Gnutella, on the other hand, was designed with the requirement of not relying on a central server to index and locate of information. In Gnutella, every peer has connections to a few neighbor peers. In order to locate content, the peer will ask its neighbor peers, if they don’t have the content they will ask their neighbor peers, and in this way, finally, the content will be found and a connection to the content owner will be established. This approach doesn’t have the weakness of Napster with regards to centralism, but consumes a great deal of bandwidth, by sending requests in several directions. As described in the section on Skype, Skype deploys an approach between Napster and Gnutella, where the index server is distributed in the network so that some of the nodes are appointed to be super nodes.