WebRTC P2P CDN: Where are the Use Cases?

09/03/2015

There’s more to WebRTC than video chat, and when it comes to P2P CDN, there’s more than a single use case.

Luggage

When I was first introduced to a P2P CDN use case of WebRTC it fascinated me. The idea that there’s something you can really do with WebRTC that has nothing to do with a video chat? Huge. When there are over a hundred video chat services out there with WebRTC, seeing something different and useful was refreshing. Since then, I’ve been following the P2P CDN vendors closely, checking what they do and why. This is a first in a series of posts on the WebRTC P2P CDN.

What’s a P2P CDN?

CDN stands for Content Delivery Network. When there’s a file/object/resource/video you want to send from your server to a large audience that is spread, you host it in a CDN. The CDN has servers deployed around the globe, and it is its responsibility to decide how to best serve that file to the audience looking for it.

CDNs are mostly a paid service where you pay by the amount of bandwidth you serve – if you have a 1Mb file that gets served to 10,000 users through a CDN, then you pay for 10Gb of bandwidth. While simplistic, it should be enough to get us going with this post.

Adding P2P to a CDN simply means that now instead of always serving the file directly from the CDN to the end users, the end users can share that file or blocks of it between them in a peer-to-peer fashion. This reduces the load on the CDN and the bandwidth required on the CDN’s side.

Here is how different vendors and projects approaching P2P CDN solutions:

Website Serving

The larger the website, the larger the load. Websites today are measured by the speed of their page downloads, and CDNs are a popular option to speeding up your website.

A company that tried offering P2P CDN for this specific use case was Swarmify. It has changed focus to video streaming since then.

Another interesting vendor was PeerCDN. Was because PeerCDN got acquired by Yahoo... and then… neglected. The acquisition took place over a year ago, but nothing came out of it. The SSL certificate of the website is no longer valid and was never renewed (although the post-acquisition site is there). What is left of this acquisition is Feross’ ongling work on WebTorrent.

File Downloading

Large file download websites pay up a lot for their file hosting. The main difference between them and websites is that web pages of websites are expected to load fast, while file downloading is about really large files – ones that can take minutes or hours to download.

The only vendor I know who drilled down into this domain is Peer5. While not their only are of expertise, it is something they know a lot about.

Video Streaming

The holy grail and the main focus of most WebRTC P2P CDN vendors these days. The reason to that is the amount of data necessary to stream video today, along with the shift we have from broadcast TV to over-the-top video on demand delivery (cord cutters anyone?).

The challenge with video streaming, besides having to deal with new browser technologies such as MPEG-Dash (and WebRTC), is the need for lower latency for the video service itself. Having a file there to serve and download is easier than doing the same on a video stream that becomes available mere milliseconds or seconds from the time it is expected to be consumed, and that without mentioning the need to be able to reduce or increase bitrates in the same video session.

There are several distinct players in this domain. The ones already interviewed on this blog are Peer5 and Viblast.

  • Peer5 started as a video streaming P2P CDN, changed focus to file downloading, and now returned back to its video roots
  • Swarmify started from website serving, recently shifting focus towards video delivery
  • Streamroot and Viblast were always about video streaming content
  • BemTV offers an open source framework for P2P CDN
  • There are 4-5 other players in this space by my count

These are early days in this space, with no specific winner or distinct vendor.

GIS

The outlier.

GIS stands for Geographic Information System. Think Google Maps. The amounts of data a GIS system needs to serve to its users is huge. It is also mostly the same data being sent to different users. So why not use a P2P mechanism to do that?

This is exactly what a company called PeerMesh does. There is an interview with the PeerMesh team on my blog, so make sure you read it.

Why is it important?

WebRTC is a lot more than real time voice and video communications. P2P CDN is one such area. It lacks in two specific ways:

  1. There’s little understanding of this domain, especially by those that have the most to benefit from it
  2. There’s much work to do in improving the technology involved with WebRTC P2P CDN, something that will happen as time progresses

I am pretty certain that as we move forward and this technology matures, we will see more use cases around P2P CDN – akin to how PeerMesh operates in the GIS area (something I know very little about).