There are several components that are necessary for a peer-to-peer
network to function. By defining the particular roles and requirements
of these components we can develop standard interfaces that allow for
the replacement of these services in applications with various
The things necessary to have a peer-to-peer network are as follows: initial introduction, transitive introduction, file transfers, firewall transgression, and reputation management.
Additionally, there are several services which are obviously useful:
File searching, searching for non-file information, anonymization, dynamic IP management, and access to existing P2P networks.
All of these components can be grouped into three categories of basic functionality:
Additionally, there is another useful type of service, a Redirector.
Here is a quick breakdown of the types of components:
Non-file Information Searching