The term "peer-to-peer" has come to be applied to networks that expect end users to contribute their own files, computing time, or other resources to some shared project. Even more interesting than the systems' technical underpinnings are their socially disruptive potential: in various ways they return content, choice, and control to ordinary users. While this book is mostly about the technical promise of peer-to-peer, we also talk about its exciting social promise. Communities have been forming on the Internet for a long time, but they have been limited by the flat interactive qualities of email and Network newsgroups. People can exchange recommendations and ideas over these media, but have great difficulty commenting on each other's postings, structuring information, performing searches, or creating summaries. If tools provided ways to organize information intelligently, and if each person could serve up his or her own data and retrieve others' data, the possibilities for collaboration would take off. Peer-to-peer technologies along with metadata could enhance almost any group of people who share an interest--technical, cultural, political, medical, you name it. This book presents the goals that drive the developers of the best-known peer-to-peer systems, the problems they've faced, and the technical solutions they've found.
Peer-to-Peer is a book about an emerging idea. That idea is that the traditional model of participating in the Internet, in which a small computer operated by an everyday user (a "client") asks for and receives information from a big computer administered by a corporation or other large entity (a "server"), is beginning to give some ground to a new (new to the fringes of the Internet, anyway) model called peer-to-peer networking. In peer-to-peer networking, all participants in a network are approximately equal. Furthermore, the participants are usually ordinary computers run by everyday people. The ICQ chat service and the Napster music-sharing community are examples of what this book is about.
The chief advantage of peer-to-peer networks is that large numbers of people share the burden of providing computing resources (processor time and disk space), administration effort, creativity, and--in more than a few cases--legal liability. Furthermore, it's relatively easy to be anonymous in such an environment, and it's harder for opponents of your peer-to-peer service to bring it down. The primary disadvantage of peer-to-peer systems, as anyone will attest who's had an MP3 download prematurely terminated when a dialup user went offline will attest, is the tendency of computers at the edge of the network to fade in and out of availability. Accountability for the actions of network participants is a potential problem, too.
This is a book about the idea of equipping ordinary Internet users' computers with mechanisms that enable them to connect, more or less automatically and without human attention, to other everyday Internet users' machines. By forming networks of computers at the so-called "edge" of the Internet, it's possible to offer valuable services without the burden of building and administering large, centralized computer systems of the sort that host traditional Web sites. Napster is the most successful example to date, though nerds will note that it's not a completely peer-to-peer system because users register their file libraries with a central server when they log on to the service.