The term “peer-to-peer” means one-on-one — and it’s perfectly suited to the computing world. In a peer-to-peer network, each node is both a client and a server. There is no top-down hierarchy where nodes are clients and servers; instead, each node is an autonomous agent that responds to centralized requests.
The peer-to-peer network is one of the most significant technologies to come along in recent times. It has allowed for a new and efficient way for users to share files online. Instead of a central server is in charge of the operation, the server is decentralized and spread across thousands of computers. The result has been an explosion of content sharing platforms, and greater privacy and control for users.
In a decentralized peer-to-peer network, there is no central authority in the network — instead, each node acts as a participant in the network having equal power. This level of decentralization offers benefits including increased reliability, lower cost, and greater flexibility.
Napster, a file-sharing service where users could upload and download songs, was the first known example of P2P network technology. Several services have been deployed since then that leverage the concept of peer-to-peer sharing such as web search engines, online marketplaces, streaming platforms, P2P blockchains, and the IPFS (InterPlanetary File System) web protocol.
Table of Contents
What is Peer to Peer?
By definition, peer-to-peer refers to or is a network of computers that operate independently of one another and can communicate directly with each other without relying on a dedicated central server.
Peer to Peer Use Cases
P2P networks are primarily used to share resources and enable computers and devices to collaborate, provide specific services or perform specific tasks. Although the most common use of P2P networks is file sharing, P2P is also used to share all kinds of computing resources such as processing power, network bandwidth, or disk storage space. P2P networks are also used in distributed computing applications such as streaming platforms, web search engines, online marketplaces, etc. Below are a few examples of P2P network usage.
File-Sharing Networks
Peer-to-peer file-sharing networks offer a central repository for users to share files. These programs provide the users with a designator of the user’s computer. Files stored on the designated computer’s drives and folders can be downloaded and viewed by other users on the network.
Instant Messaging
Peer-to-peer messaging is a direct and secure connection between two devices that can share resources and communicate without relying on a server. This means your communication is always quick and safe, without relying on a messenger.
Voice Communication
A popular example of a voice communication P2P network is Skype. It is a VoIP client developed by KaZaa that allows its users to place voice calls and send text messages to other users on the same platform.
Collaboration
Internet technologies, such as presence and instant message applications work well for computer-to-computer communication. The Peer to Peer Collaboration Infrastructure is a simplified implementation that leverages these technologies but also uses some others like peer-to-peer network discovery.
Streaming Media
Peer-to-Peer streaming relies on continuous media transmission between peer nodes to alleviate the bandwidth cost problem through peer-to-peer connections.
Search Queries
Peer-to-peer networks are large computer networks where peers collaborate to provide a common service. They are especially useful for providing large-scale information retrieval, like searching the World Wide Web.
How Does It Work
Because there is no need for a central authority, in a peer-to-peer network, users are responsible for maintaining the functionality of the network.
In this respect, each node will represent both client and server to other nodes. Since the interconnected nodes share resources, they can store, distribute, upload and download files from each other.
This unique interaction is what sets it apart from any traditional client-server system. The client-server setup will always contain a centralized server in which the client can download files.
All the nodes use hard drives to store shared files and applications for data sharing or to assist other devices to process queries that download files.
Speaking, think of a node simply as having two specific functions; to download files as a client and share files with other nodes as a server.
Also, unlike traditional models, the P2P distributed architecture has no central point of failure so it is more secure and can defend against cyberattacks more proficiently.
Types of P2P Networks
P2P networks are typically categorized according to their architectural differences. The three main categories are unstructured networks, structured networks, and hybrid P2P networks.
Pure P2P Networks
Pure peer-to-peer networks are called “fully peer-to-peer networks.” There is no central server in this type of network and all peers have an equal role.
Unstructured P2P Networks
The nodes in an unstructured network connect and communicate at will which is usually best for networks with a high degree of churn. For instance, it would be an effective way for a social media company to deploy its platform on an unstructured P2P network because users can choose to join or leave the network frequently.
However, adding more nodes to an unstructured P2P network means more CPU and memory usage, as every search query must be sent to the entire network and all the nodes interacting with each other at any given time can create an extended wait time.
Structured P2P Networks
Structured networks are made up of nodes that can find data and route traffic efficiently, even if the data is not widely available. Usually, these networks use a distributed hash table (DHT), which allows nodes to search for data by hashing it.
The downside to structured networks is the setup and maintenance cost is higher than that of unstructured networks, and they are more centralized.
Hybrid P2P Network
Many companies use a hybrid network, which combines a peer-to-peer and client/server model on a single platform. The network uses an index server to help people find resources, but it also lets you access peer-to-peer nodes that might have resources and perform searches. One of the advantages of these networks is that they combine the functionality of centralized networks of a structured platform and node equality of decentralized models. As such, they typically perform better than these other types of networks in certain cases. For example, some search queries may require centralized functionality, and these systems can benefit from decentralized networks as well.
Distributed Network vs. Decentralized Exchanges
They are two different working systems, a distributed network which is a collection of independent nodes that share information to achieve a common goal, and a decentralized exchange that technically still has centralized components in which some control of the exchange remains in the hands of a central authority.
Decentralized is a single processing method, whereas distributed refers to multiple points of decision making. Although the systems are independent of one another, a decentralized system is a subset of a distributed system.
For the most part, the structure of a P2P network is inherently distributed; however, there are some components of decentralization.
Many systems rely on a central server to guide network activity such as file sharing systems that allow users to download files from other users but are restricted from other processes such as search queries.
Smaller networks controlled by an entire system of users who share a common goal can be considered a centralized authority despite the existence of a formal centralized network.
P2P and Blockchain Technology
Blockchain technology is a decentralized and public ledger where pieces of information (blocks) are periodically added in chronological order. The blocks consist of a timestamp, a link to the previous block, and a link to a new piece of data (transaction).
Blockchain technology is the underlying design that enables P2P networks and provides shared and trusted ledgers. Banks, financial institutions, and governments can use blockchain technology to store their data without compromising it in any way.
The fundamental structure of P2P networks in blockchain technology is what allows transactions to be processed without requiring a central authority.
The blockchain records transactions acting as a digital ledger that publicly records all activity. Each node holds a copy of the blockchain and compares it to other nodes to validate transactions. The network quickly rejects any malicious node or inaccuracy.
Full nodes offer security to the whole network in such a way by verifying transactions against the system’s rules.
Every full node maintains an updated copy of the blockchain to participate in the collective effort of verifying the true state of the distributed ledger.
Advantages
Blockchains with peer-to-peer architecture can run independently of a central authority, which has substantial advantages. For example, a blockchain is more secure than a client-server architecture as there’s no centralized point of failure, and the protocol has plenty of nodes that are distributed across the network. This means that Denial-of-Service (DoS) attacks aren’t possible.
Moreover, data immutability is an advantage of this type of architecture. Once information is written it cannot be altered by any party, as long as a majority of the nodes are not controlled by one entity to carry out a 51% attack. Banks use a similar architecture, but they can limit your ability to transact if you want to.
Beyond security, the use of P2P architecture in cryptocurrency blockchains also renders them resistant to censorship by a central authority. Unlike standard bank accounts, cryptocurrency wallets can’t be frozen or drained by governments. This resistance also extends to censorship efforts by private payment processing and content platforms. Some content creators and online merchants adopted cryptocurrency payments as a way to avoid having their payments blocked by third parties.
No specific operating system or software is required; individual peers can be on any OS to share files. This makes it especially useful for remote networks in which users might not have the same hardware.
You can use a USB connection to join two computers, or an internet connection to connect more than two. While it might be more expensive than connecting over a WiFi signal, it’s cheaper than setting up a server or purchasing server software.
Peers can control what is accessed on the networks by changing the sharing settings. This makes it easier to protect the integrity of the peer networks as an issue with a single node will not destroy the rest of the peers.
As each node manages access and sharing to the peer networks itself, there is no need for central servers making the structure pretty straightforward.
Scalability is easily attainable with P2P networks with more nodes adding performance and providing more power. As many peers are added to the network, storage and processing power become more available improving download and upload speeds.
The idea of a peer network is to make facilitating database lookups and finding the right resources easy. Even in an unstructured network, if the content you are searching for is not rare, it should be easily accessible and be available to download from multiple sources.
Limitations
There are many challenges with peer-to-peer systems in blockchain technology. One of the most significant is that it requires a lot of computing power, as there is no central server. There are also security and efficiency benefits to this approach, but there are drawbacks too: lack of widespread adoption and scalability.
To solve this problem, the blockchain community has been researching more intricate solutions such as the Lightning Network (~22,000 transactions per second) which will run on top of bitcoin, Ethereum Plasma, and the Mimblewimble protocol.
Hard fork events are another challenge. Even though blockchains are secure, they are not 100% secure. This means that any transactions can be edited and data manipulated to fit personal criteria – creating a new chain of parallel networks. If not managed properly, the safety and integrity of file-sharing programs can be at risk and decentralized aggregation makes it harder to arrange backups and file archiving.
The distributed nature of P2P networks makes them relatively difficult to control and regulate and not just in the blockchain niche. In most P2P networks, the decentralized nature makes it hard for a single administrator to monitor content. This leaves these networks open to malware and viruses. If a file you are sharing is infected with malware, it will spread over the network and can cause problems across an entire peer-to-peer network.
Simultaneous uploading and downloading will result in a slow rate of transmission. It’s important to remember that it should be faster than uploading all content at once and is usually more reliable. The drawback is that the double function of uploading might slow down the download rate. File sharing over P2P networks uses a lot of bandwidth and CPU, which would slow a computer’s general performance. A risk is that this could affect the user’s productivity in other areas.
Many internet service providers have been known to throttle Peer-2-Peer traffic because its high bandwidth usage makes it difficult for them. Compared to other internet services, where data is only transferred in short intervals and in relatively small quantities, P2P services often consist of relatively large amounts of data transferred over a long period.
Peer-to-peer networks are at risk for use of illegal content by way of downloading pirated music, movies, software, and other copyrighted material, even if the sharer is unaware.
The Future of The Internet
Peer-to-peer networks are here to stay as they offer better security, and freedom and make sharing content or resources much easier without a server. Right now they are mostly used in cryptocurrencies and blockchain solutions. For example, using peer-to-peer with blockchain offers better security, immutability, decentralization, and freedom.
One of the best advantages of peer-to-peer architecture is that it’s much more cost-effective for smaller businesses than a client/server network by choosing more manageable, permanent P2P network options like copper wire connections.
Some networks are designed for a particular use — like BitTorrent which is used to share large files through much smaller ‘bits’ — while others are designed specifically by companies like Microsoft to enable simple sharing in business environments.
It is always good to think about how you want to structure the network you create to achieve the best results. P2P protocols are a simple, cost-effective way to create a network.