Sharing Files with Peer to Peer Networks
In Peer-to-peer networks (P2P), there is no central server. Instead, all machines are connected and have acess to each other. The purpose of P2P is the sharing of files between nodes. In a pure P2P, all machines function as both client and server.

A few networks use a client-server structure for certain tasks. An example would be a file search function. Instead of the search request being sent to every machine in the group, a central server would handle the request. However, most P2P networks have no central server and are considered true P2P.

Peer-to-peer networks can be classified by what they can be used for:

  • file sharing

  • video and audio media

  • discussion forums

One of the goals of P2P is that all clients provide bandwidth, storage space, and computing power. As new machines are connected and demand increases, the total capacity of the system also increases. The distributed nature of true peer-to-peer networks means that there is no single point of failure. This increases reliability and allows the network to continue operating in case one or several nodes go offline.

A P2P overlay network consists of all the participating nodes. There are links between any two nodes that know each other. In other words, if a peer knows the location of another peer in the network, then there is a path between them in the overlay network. There are two classifications, depending on link structure - unstructured or structured.

An unstructured P2P network is formed when overlay links are established arbitrarily. As new peers join the network, existing links of another node are copied. The new node will build it's own links over time. When a peer wants to find a desired piece of data, the query is sent to every available node to find peers that share the files. Flooding a network in this way causes a high amount of signaling traffic, resulting in poor search efficiency.

Structured P2P networks employ a consistent protocol to ensure that any node can route a search to a peer that has the desired files. This keeps bandwidth usage to a minimum and results in much improved search response over the unstructured network.