WebRTC P2P CDN carry no risk.
When I’ve written last time about WebRTC P2P CDN use cases, some were concerned about capacities and user experience. There’s one thing that was missing in all this:
All WebRTC P2P CDN vendors today include a traditional CDN as part of the solution (the term CDN here is used loosely to indicate a traditional server holding the resource).
Look at the illustration above. What you see there are a number of clients trying to reach a resource, using Peer5. To do so, they are directly connected to the server (the CDN) as well as to additional clients.
These clients decide in real time what pieces of the resource to get from the CDN and which pieces of the resource to get from other clients (also known as peers).
How do this decisions happen? Heuristics, with each vendor implementing a different heuristic. Here are a few examples:
- If this is a VOD, where latency is important, we download the next piece of the video from the CDN and try to download future pieces from other peers
- We connect the client only to peers who are geographically close, in an effort to reduce latencies and to remain within the same network
- When the resource is meaningful only when fully downloaded (an executable for example), we try using peers whenever possible and for whatever pieces of the files they hold at the moment
The end result? If the P2P component can’t find a peer that has the piece of the resource we need within the timeslot we need it, then we can always go and fetch that piece from the CDN directly.
What this really means?
Adoption WebRTC P2P CDN is risk free.
If you add it to your service, you stand to lose nothing at all:
- When WebRTC P2P can’t improve your performance or meet your goals, it will revert to using the traditional CDN
- When browsers don’t support WebRTC are used, then the service will again revet to using the tradition CDN
- When WebRTC P2P can be used to improve performance (be it latency, download time, bandwidth use) without harming the user experience, it will kick in
This makes me wonder why there isn’t more adoption for the WebRTC P2P CDN vendors out there…