Why is P2P terrible?

Why is P2P terrible?

·

5 min read

1.png

Huddle01 is developing the next generation of communication systems while simultaneously taking a progressive and decentralized approach to the process. We believe the future is decentralized and power is back to the community and not centralized servers or organizations.

In this blog, we are discussing P2P communications, but you might be wondering what is P2P and why are we talking about it. So, without wasting any time, let’s see what are we going to discuss in this blog.

What is P2P? 🤔

That seems cool, how does it work? 😤

Okay, why did you call it terrible? 😠

Huddle01’s take on this ✅

As this is out of the way, let’s put on our thinking hats and dive into this!

What is P2P? 🤔

2.png

P2P is an acronym for Peer-to-peer technology that is also sometimes called a Mesh network. This is because of how each computer in a file-sharing system or a node in communication is connected to different elements of the network. This technology was originally developed in the late 1970s for file sharing among computers.

Okay, but what is P2P? 😵‍💫

P2P is an architecture or a network in which every element is connected to every other element essentially giving equal power to each element. I know this sounds complicated! But this is how it is defined. Let’s take a sweet example to understand this.

3.png

You are having lunch with your friends. It’s the good old days of school. Everyone is bringing some or other homemade delight and everyone share with each other. You have fruits, one of your friends has Pizza and one of your friends has brought some cookies. In the end, everyone gets a piece of everyone’s lunch 🥪

Everyone is having everything and is basically in a way connected with everyone. That’s pretty much how P2P works. Everyone is connected with everyone 😁

This is a great technology that is used in many industries and tech-based startups to this day. P2P has massive adoption and is considered the standard in many fields of innovation, but as we are building the future of communications, let’s focus on WebRTC, the P2P version of Real-time communications.

That seems cool, how does it work? 😤

4.png

WebRTC is an open-source technology that enables people with video conferencing that can be easily integrated into their applications. We already wrote a blog on the subject and you can find it here.

If you don’t wish to open links and dive deeper, here is a TLDR, There are 3 steps for any connections to get established, and it is a P2P model, so everyone is connected to everyone and shares their amazing lunch.

WebRTC is amazing, it is

  • Cheap 😉

As there are no media servers, the media directly flows through users. This means a lesser need for external servers and the cost of operation stays low.

  • Free to use 💰

WebRTC is open-source, which means it is free for anyone to integrate into their apps and can change a few things accordingly to the need of your application.

  • Private 🔒

You as the service provider can’t see the media because it doesn’t go through your servers. This means more privacy for end users.

This just enforces that P2P is amazing, WebRTC is the best thing ever, but, as each coin has 2 sides, this tech also has some major flaws. Let’s understand what are these problems when it comes to WebRTC or P2P architecture in communications.

What are the issues? 😠

5.png

Without wasting any time, these are major issues:

  • Centralized Signalling Server 🏦

Signaling server? What is that?

To understand it simply, the signaling server is responsible for identifying and connecting two parties who want to connect. Too technical, I know. You want to send a mail to your friend. You’ll need to put down the address of your friend and also your own address so that it can be traced back to you.

The mailing company is responsible for safely delivering your mail. In this case, a signaling server is just like a mailing company that can cancel your connection requests, and collect data about your devices and how often you call someone.

  • CPU processing 💻

Real-Time Communications need constant encoding, decoding, and data processing for a seamless experience. If you got lost in those words, picture this. You are in a video call with your friend, your video is constantly captured and sent across the internet to your friend, now for security and efficiency the video information is compressed and encrypted.

This requires some processing on both ends as this compressed information once received is decrypted and reconstructed for your friend in real time.

  • Higher bandwidth 📈

WebRTC doesn’t use any media servers. This then forces users to have a higher bandwidth on their end as each connection is directly made with each peer. Bandwidth is the amount of information that can be sent in a certain period of time. This means, how fast can you send huge chunks of information? The bandwidth eventually increases with each new person introduced to the call.

  • Limited connections ❌

Okay, this is pretty simple to understand for the above two reasons. As more people join in, more processing and bandwidth are required, which means as more folks join the call, it becomes heavy for each individual to maintain the processing and bandwidth. This is the prime reason why webRTC isn’t used in applications that have more than 10 people on a call.

  • Client-heavy architecture ⛓

This is a bit technical so stay with me. There are two parties in any architecture. A server, and a client. A server is usually one that processes a massive chunk of data for the client so that more people can use the application at once. In P2P there is no server to process, so it is also called client-heavy architecture.

Huddle01’s take on this ✅

6.png

We are building the future of how we would communicate, so we are building something that would solve this. As of now, we are building solutions for WebRTC that would enable Video conferencing technology to scale for the next generation of internet users 😉

That’s it from our side! If you have any questions/suggestions or team-ups in mind, reach out on Twitter or land on our discord! See you at the next one 👋