When Should You Choose P2P?
When Is P2P Appropriate?
Peer-based systems work best when a large number of peers are available to exchange the content being accelerated. Of course, you need only one peer with content to make the system function, as is often the case with personal communication. After the first peer, there is a general threshold around peer availability (in terms of number and proximity of those sharing the content) that must be crossed before a system is most efficient. This efficiency threshold varies by technology, but generally speaking, the more popular a file is, the more likely available peers will have downloaded it and in turn, the more effective the peer system is at delivering the content.
Similarly, because peer-based systems involve some overhead in starting up peer communication, they often don’t make sense for very small file delivery. If something can be delivered in a few seconds over Hypertext Transfer Protocol (HTTP), it’s probably too small for peer-based delivery. As a point of reference, if the P2P startup overhead is 5 seconds and the users are downloading at 1Mbps, then the object size threshold is under 1MB. Conversely, as the file size increases, this overhead (as a percentage of download time) is minimized and the more efficient a peer system becomes.
Because the effectiveness of peer-based systems will vary depending on the popularity and size of an object, they are typically deployed alongside dedicated servers or traditional CDN services to create a hybrid, or peer-assisted CDN solution. This affords a degree of quality assurance for long tail (less than popular) objects or newly available objects and guarantees that each object can be delivered at the appropriate data rate. [Note: The term "CDN" is used throughout to mean any server based infrastructure in the form of dedicated streaming servers, origin servers, or traditional content delivery networks.]
Peer-based solutions typically access content from the CDN elements the same way the browser does, using the HTTP protocol. As long as the servers of the CDN or origin infrastructure support HTTP 1.1, the peer system should integrate seamlessly with that infrastructure. The peer client application determines how much traffic to draw from each network based on the combination of peer availability and customer configuration, such as a Quality of Service (QoS) setting for any given object.
The effectiveness of P2P depends on the objectives of the content owner. For some, the overall effectiveness is measured in terms of "offload," meaning the percentage of object traffic that is delivered by the peers and in effect "offloaded" from the CDN and origin network. Offload dictates the cost savings or quality improvements now possible for the underlying business and should be in the 70-80% range for download and 50%-plus range for progressive download models.
How to Evaluate P2P Solutions
In order to create the best experience for content owners and users, there are many things to consider when comparing P2P solutions. As solutions vary in effectiveness and capability, the following questions will help you assess if a given solution is right for you:
Scale Questions:
- Does the solution scale? What are the tested limits of scale?
- Has the technology been validated in the field?
- How many clients have been distributed?
- Where (geographically) are the clients deployed?
Usability Questions:
- How does the client manage the shared resources of the end-user machine and network?
- What is the size and performance of the client application?
- What different use cases does it support?
- Will the solution operate with personal firewalls and traverse network address transmission (NAT) devices and firewalls?
CDN Integration Questions:
- What origin server infrastructure or CDNs does the solution work with?
- What is the underlying scale of that infrastructure?
- What are the available analytics and reporting options?
Scale Questions
One of the key performance metrics of a peer-based solution is scale. Scale is often measured by the number of concurrent peers that can be supported and is typically considered in aggregate for the entire solution and concurrently for any given object.