How we created an ISP friendly Peer to Peer network as the first company ever
ISP and Peer-To-Peer? We say yes!
Exchanging digital data over direct connections instead of using a client-server model has quite a history. Tim Berners-Lee himself already had a vision of the internet as a globally distributed network of interconnected users. Users who all act as consumers just as much as editors and contributors. Nowadays, most parts of the internet are completely client server based. Unfortunately P2P had kind of a bad image over the last years. This was due to the fact that by definition Peer-To-Peer networks are decentralized and hard to control. It is not easy to regulate the traffic generated from P2P networks. So for internet service providers (ISPs) this can become a big problem.
Today media content represents the biggest part of daily internet traffic (and still is the part that grows the strongest). Content providers, ISPs and content distribution networks (CDNs) came to realize that the typical way of distributing data from a server to users is not only very expensive but is also slowly reaching its limits. The expansion of the physical network infrastructure does not keep up with the continously growing demand for higher video quality and number of viewers.
Technological perspective of live streaming with client server model
The situation gets worse when thinking about live video streaming where all viewers are requesting data at the exact same time. At this point CDNs, ISPs and content providers agree that typical distribution technologies not only reach their limits but can only work properly by thinking about new ways to deliver content.
Peer-To-Peer based video streaming
Here Peer-To-Peer based video streaming comes in very handy since it removes the problem of congested network bottlenecks. Furthermore it equalizes the amount of traffic between all users that would typically request the data from a CDN server. Since the last 5 years there have been some solutions out there. Companies like Streamroot and Peer5 tackle this problem by using WebRTC based Peer-To-Peer networks to offload CDNs. WebRTC is a standard developed by Google which allows interconnectivity between browsers through direct connections. The well known video conference software Hangouts is completely based on WebRTC. When starting a video conference, the video data travels “from browser to browser”.
In a way WebRTC makes Peer-To-Peer available in websites and browsers without requiring plugins or extra software. Today all browsers and platforms support WebRTC. To use WebRTC for live video streaming, companies offer software solutions that allow content providers to directly connect viewers. They share video data they receive among each other. Since it is live content, everyone needs the same data at the same time.
P2P live streaming network that offloads the CDN and increases video quality
This high redundancy is actually a perfect environment for WebRTC to make streaming much more efficient. Streamroot and Peer5 chose this approach to optimize video streaming. A very nice side effect is that this approach can highly reduce CDN cost.
How we implemented the first ISP friendly P2P live streaming network
Most of the time distribution cost is one of the biggest concerns for streaming company. P2P live streaming seems like a perfect solution to increase streaming stability and reduce delivery cost at the same time. However there is one big problem that still remains. Peer-To-Peer networks are uncontrolled by definition and only work by coming up with a communication protocol. It is imperative that users will act correctly when using that protocol. The typical P2P approach is to let users organize themselves as a network. They have to handle broken connections, users that go offline and new users that want to join on their own.
This directly leads to a big set of (practical and also theoretical) problems regarding scalability, reliability and security. The biggest problem is controlling the network in any way. Sure, you can guarantee something like a ratio of how much percent of your audience will be integrated in the P2P live streaming network. But this has nothing to do with controlling network traffic. Not even with using network information to optimize the behavior of the peers. For an ISP company whose main asset is its own network, this can create enormous problems. It is a dealbreaker for streaming companies when it comes to the decision wether or not to use P2P optimization.
Strive solves this problem as the first company ever. We developed a “server side managed” Peer-To-Peer based live streaming network. Every single peer joining the network will also connect to a dedicated backend server (let’s call it management server). It will keep this connection for the whole time. Thus the management server has a list of every single peer in the network. StriveCDN uses websockets as communication protocol to immediately recognize when a peer goes offline. Since every new peer directly connects to the mangement server, we can inspect the whole network in real time.
Now instead of communicating among each other, all viewers wait for the management server to instruct them how to act. The management server can easily do this because of the given information from the peers. The entire process of clustering peers, calculating distributions, handling churn and deciding which users to connect can now be done based on complete information in real time. The best part about this is that Strive can integrate information from ISPs into the management server easily to give real time information about congested areas, available connections and bandwidth occupations. We already do our best to get this information by collecting bandwidth data from peers to generate traffic distributions based on how much bandwidth an ISP can actually provide for the user.
In conclusion, this new approach to P2P live streaming solves the last problem which is network controllability. Now it is possible to handle the contribution of every single peer based on network capacity, delay, congestion and other network KPIs. At Strive we give our best to integrate more and more information into our management servers to continously increase the performance of our P2P live streaming solution and make live streaming reliable and stable.