A peer-to-peer (P2P) application or operating system is one in which there is direct communication between client systems for the purposes of accomplishing a task. It should be contrasted with client/server applications, in which clients can only communicate with designated servers, and never directly with one another. Microsoft Windows, Apple MacOS, and most Unix systems will support some amount of P2P communication. In contrast, networking platforms like NetWare are strictly client/server. Most mainstream Internet protocols operate on a client/server model, but there are a few notable exceptions. Most instant messaging and IP telephony applications implement a P2P model. But the bulk of Internet traffic in the P2P model is for file sharing, using technologies like BitTorrent, Gnutella, and Freenet.
Internet news has long been filled with stories of the recording industry filing legal charges against people for illegal sharing of music and video files. Unfortunately, this remains a predominant use of P2P protocols on the Internet. Today it represents more than 50 percent of the traffic flowing across the Internet, and is creating serious bandwidth issues for Internet service providers (ISP).
The term peer-to-peer is actually a bit of a misnomer; in any exchange there is always a client requesting and a server responding. In a peer-to-peer environment, however, the clients can operate as clients or servers, can switch between the roles as necessary, and can even be both at the same time. Peer-to-peer file sharing can be performed on most microcomputers today. A user “shares” folders, which makes them available to others connected to the network. They can even establish passwords and control whether files can be only be read and copied, or whether they can also be changed.
Peer-to-peer applications are changing the traffic patterns for networks. Instead of all the traffic going to the centralized servers, the traffic patterns are more of a full mesh, any-to-any, pattern. Understanding the impact of this new traffic flow is important for any network that is supporting this kind of application.
There are two basic kinds of P2P applications:
|<mp3>http://podcast.hill-vt.com/podsnacks/2008q2/p2p.mp3%7Cdownload</mp3> | Peer-to-peer (P2P) vs. client/server|