This is a paper written by Marko Bekric, for South East European University. It was submitted to Electronics Fanboy by the author to be posted.
The need for data and information exchange lead to network evolutions. Another type of person-to-person communication often goes by the name of peer-to-peer communication, to distinguish it from the client-server model. In this form, individuals who form a loose group can communicate with others in the group. Every person can, in principle, communicate with one or more other people; there is no fixed division into clients and servers.
A peer-to-peer network (commonly written in short form as P2P) is a distributed network architecture composed of more than one participant. The participants share data between themselves, the data is available for every network participant.
The main thing to mention in peer-to-peer data sharing is that peers are consumers and suppliers too. The server is known as data seeder and the client is known as data leecher. The server has the data available on disk storage in order to keep the seeding.
When the consumer (leecher) completes the download automatically he can be seeder for that data, because he has it available on his hard drive, even though if there are used P2P applications, such as torrent application, the leecher can help the seed while downloading, he seeds the part of the data that he has already downloaded. On the modern websites (and the most used P2P model) for peer-to-peer data sharing, they measure the downloaded (leeched) and uploaded (seeded) data for all members of that website. The measurement is called ratio. The criteria for every member is that the downloaded data must be with the same bandwidth as the uploaded data. When they are the same, the member has 1.0 ratio. If the download is bigger, than the ratio would be under 1.0 and the member could be removed from the website (banned) because of not respecting the rules for peer-to-peer data sharing. If the upload is bigger than the download, than the ratio would be above 1.0. Usually the administrators and moderators of the websites only keep seeding.
Napster was kind of a peer-to-peer file sharing system, but it stopped working due to the copyrighted content.
2. PEER-TO-PEER SYSTEMS
Peer-to-peer networks  are typically formed dynamically by ad-hoc additions of nodes. In an ‘ad-hoc’ network, the removal of nodes has no significant impact on the network. The distributed architecture of an application in a peer-to-peer system provides enhanced scalability and service robustness.
In the peer-to-peer systems, Application layer overlay network is often used. They also use physical network topology. These overlays are used for indexing and peer discovery, while the content is exchanged using the IP (Internet Protocol) network.
Also there are Anonymous peer-to-peer systems, which are an exception. They implement extra routing layers to obscure the identity of the source or destination of queries. There are pure p2p systems, hybrid p2p systems and centralized p2p systems. In pure peer-to-peer systems the entire network consists solely of equipotent peers, while there is only one routing layer, as there are no preferred nodes with any special infrastructure function. There isn’t notion of clients or servers but only equal peer nodes that simultaneously function as both “clients” and “servers” to the other nodes on the network. Hybrid peer-to-peer systems allow such infrastructure nodes to exist, often called supernodes, while in the centralized p2p systems a central server is used for indexing functions and to bootstrap the entire system. Also, in a centralized p2p system, the connections between peers are not determined by any algorithm. The first popular file sharing peer-to-peer system was Napster, which
was an example of centralized models. Gnutella and Freenet are examples for the opposite, the decentralized models, while Kazaa is example of the hybrid model
Other important thing to mention about the architecture of peer-to-peer systems is that they can be structured or unstructured system.
3. STRUCTURED AND UNSTRUCTURED SYSTEMS
3.1 STRUCTURED SYSTEMS
Structured peer-to-peer network  has a globally consistent protocol so that any node can efficiently route a search to some peer that has the desired file, even if the file is very rare. Such a guarantee necessitates a more structured pattern of overlay links. By far the most common type of structured P2P network is the distributed hash table (short form – DHT), in which a variant of consistent hashing is used to assign ownership of each file to a particular peer, in a way analogous to a traditional hash table’s assignment of each key to a particular array slot.
Otherwise, Distributed hash tables (DHTs) are a class of decentralized distributed systems that provide a lookup service. DHTs make an infrastructure that is used for building peer-to-peer networks. One of the distributed networks that use DHTs include is BitTorrent’s distributed tracker, also there are other names to mention when talking about BitTorrent like BitLord and uTorrent. Other distributed networks that use DHT are: the Kad network, the Storm botnet, YaCy, and the Coral Content Distribution Network.
3.2 UNSTRUCTURED SYSTEMS
An unstructured peer-to-peer network system  is made when the overlay links are established arbitrarily. Such networks can be easily constructed as a new peer that wants to join the network. That peer can copy existing links of another node and then form its own links over time. In an unstructured P2P network, if a peer wants to find a desired piece of data in the network, the query has to be flooded through the network to find as many peers as possible that share the data. Flooding also causes a high amount of signaling traffic in the network and hence such networks typically have very poor search efficiency, and other big disadvantage with unstructured systems is that the queries may not always be resolved. For example, some popular content is likely to be available at several peers and any peer searching for it is likely to find the same thing. But if a peer is looking for some rare data which is shared by only a few other peers, then it is highly unlikely that search will be successful. Since there is no correlation between a peer and the content managed by it, there is no guarantee that flooding will find a peer that has the desired data. Today, most of the popular P2P networks are unstructured.
4. INDEXING AND RESOURCE DISCOVERY
Some of the older peer-to-peer networks can duplicate the resources across each node in the network configured to carry that type of information, which allows local searching, but requires much more traffic.
But, modern networks use central coordinating servers and directed search requests. The central servers are typically used for listing potential peers (Tor), coordinating their activities and searching, for example, like Napster and eMule. Decentralized searching was first done by flooding search requests out across peers. More efficient directed search strategies, including supernodes and distributed hash tables, are now used.
Many peer-to-peer systems use stronger peers like super-peers and super-nodes as servers and client-peers are connected in a star-like fashion to a single super-peer that provides high quality and high speed download in order to satisfy the needs of the leechers (downloaders). 
5. ADVANTAGES AND DISADVANTAGES ABOUT PEER-TO-PEER NETWORKING
When talking about peer-to-peer network systems, it is meant about one of the most popular and most common data sharing models. This kind of network system, like every system, has its own advantages and disadvantages. For example, clients provide resources. Those resources include bandwidth, storage space, and computing power. The main disadvantage is when the server shares the data with the client, what more clients join to download the data from the server, that less resources are available to serve each client. Or, in other form, there are needed at least equal data seeders with the data leechers. If there are more data seeders, the leechers are available to download the data with higher speed, but in some cases when there aren’t enough seeders, or less than the leechers, the speed and the quality of the download can be very poor. Peer-to-peer networks do not require the same levels of performance and security as dedicated server networks require Anyway, the advantages of the p2p networking are that:
- Users can control their shared resources
- Reduced cost
- Easy to install
And the disadvantages are:
- Lack of security
- As more clients join the system, less resources are available to serve each client
- Users have to use separate passwords on each computer in the network
- No centralized server is available to manage and control the access of data.  
6. SOCIAL AND ECONOMIC IMPACT
The peer-to-peer networks and their using can have big impact on the social view. The data sharing across these networks is not all about computers, it’s human to human. This kind of networking has become the norm for many people who want to download music, video, or other digital media files. It may not be useful for governments, armies and banks due to its low security (already mentioned in the disadvantages). But the personal use is increasing every day. So, the p2p networking finds some role in the society, not something special, but useful.
And what about the economic view? – Many people may think sharing and downloading files is harmless, it actually affects a wide range of people and has a large impact on the economy.
How? Most of the songs, videos, applications and games that are downloaded are protected by copyright laws that make it illegal to share it without prior authorization. That is a strong impact on the economy everywhere, because if some audio or video CD has a price in the store, everybody can find its content on the p2p websites and applications for free. Downloading music from the Internet or P2P networks does not pay royalties to the performers, record companies, or producers of this media. As a result, they are losing money as well. That’s the impact. 
From all this, we can make a conclusion about peer-to-peer networks. It was developed into one of the most popular and most used networks. With the implementing of the central coordinating servers it became better to use.
It can make everything easier for sharing, easier to find, faster to download. It can’t be used for a government or army goals, but it certainly helps.
It’s easy to use, if we know to use its advantages and to skip its disadvantages. As always, there are two sides: One side who supports it, and one who wants it disabled. It’s good for the most of the people, but bad for some parts of the economy. But there never will be a one side with one agreement.
 http://www.cs.cornell.edu/~vivi/swaplinks-usenix.pdf (e-book)
 http://folk.uio.no/paalee/referencing_publications/ref-sd-meshkova-compnet-2008.pdf (e-book)