P2P unicast may seem like a dry topic. And it is. But its relevance cannot be overstated. Many of the major developments we've seen in the streaming industry in recent years revolve around the use of multicast and unicast for content distribution. Whether it be the evolution of native plug-in-less video playback in-browser, the demise of third-party player clients, or the vast improvement in HTTP streaming protocols, unicast has established itself as the de facto standard for streaming media.
But many would argue that multicast is still the only viable solution for media distribution “behind the firewall,” primarily because it was developed specifically to conserve bandwidth and scale to large audiences across a network. So why is multicast practically obsolete on the Internet and on the verge of extinction across many enterprise, governmental, and educational networks?
The Peer-to-Peer (P2P) Solution
At their core, modern P2P unicast streaming technologies are designed to turn every video consumer into a video node, enabling users to simultaneously consume and deliver the stream. This fundamental concept converts your biggest weakness into your greatest strength, enabling your streaming infrastructure to intelligently handle viewership spikes, thus reducing bandwidth costs while improving your quality of service and the viewer’s experience.
One of the major trends on the Internet over the last decade is the decentralization of data delivery. Leveraging P2P technology to deliver unicast streams relieves video traffic congestion across the network and especially at the last mile, reducing the reliance on a centralized streaming infrastructure. In short, P2P delivery leverages the benefits of traditional unicast delivery with a system that scales naturally as your audience grows.
Figure 1. Server-based network vs. P2P network
Global Internet traffic, and especially video traffic, is growing at an exponential rate. The increase in video resolutions (1080p, 4K, and beyond) and video frame rates have contributed to this growth. In addition, users are consuming video content on an array of devices, which creates the additional requirement to support an ever-growing list of platforms, operating systems, and browsers.
If P2P streaming technology can deliver what it promises, it will help relieve network bottlenecks, manage traffic spikes (even with millions of concurrent users), improve the overall user experience by reducing bandwidth, improve stream start-up times, and allow us to deliver higher video quality (whether that means resolution, bitrate, or both).
In the past, P2P solutions, much like multicast, have required the installation of software or plug-ins on the client device. This requirement was an enormous barrier for adoption, and the P2P industry remained stagnant for several years as a result. But the evolution of an open source project named WebRTC has changed the game, making installation-free P2P solutions a reality.
WebRTC is a browser-based plug-in-less technology that has paved the way for a new distributed caching platform for video streaming. The WebRTC protocol is specifically designed to handle peer-to-peer connections and deliver low-latency video, audio, and data within the stream.
An increasing number of developers are adopting WebRTC and building technologies around it, especially as it is being standardized by the W3C at the API level and by the IETF at the protocol level.
P2P technology companies, including Viblast, Streamroot, and Peer5, have built their solutions on top of WebRTC using a set of HTML5 APIs, allowing them to leverage direct browser-to-browser communication and native support for transporting adaptive HTTP streaming protocols such as MPEG-DASH and Apple HLS.
Common P2P Workflow
When a user requests a video on a website, the player requests the video stream from the origin server, edge server, or CDN. The player client simultaneously connects to a tracker that keeps a log of the available peers and establishes the connection between the client and the peers. As a result, the user downloads the majority of the data from peers, eliminating the additional bandwidth cost to deliver the stream from the CDN or the origin server.
The P2P tracker is a signaling server. Its primary function is to maintain and manage a list of peers and handle the signaling between connected peers. Trackers can dynamically select the best peers based on geography and network topology, but also provide advanced functionality to analyze and adjust for bandwidth constraints and provide geographic IP blocking, ISP restrictions, and more.
Figure 2: A basic P2P streaming workflow (Image source: Streamroot)
The viewer authenticates and initializes the connection with the CDN. The first segments are downloaded directly from the CDN. At the same time, the viewer connects to our tracker and requests peers. The tracker sends an intelligently selected list based on several criteria. A peer-to-peer WebRTC data channel is created, allowing the viewer to exchange segments directly with the selected peers.
Benefits of P2P and WebRTC
Peer-to-peer streaming has a lot going for it, not the least of which is its use of WebRTC and HTML5. Let's take a look at the major benefits:
Reduced bandwidth usage: The greatest benefit P2P unicast technologies offer is a significant reduction in bandwidth usage, with documented bandwidth reductions ranging from 40 to over 90%.
Streamroot partnered with a Swiss platform to stream a 90-minute soccer match. The pilot was conducted with approximately 1,500 viewers tuning in from several continents, with the largest concentrations in Spain and Western Europe. Streamroot consistently achieved between 40 and 50% peering, for a 40 to 50% reduction in bandwidth costs and network congestion.1
In a recent major live event, Peer5’s clients saw a 95% savings when they reached streaming peak at over 40,000 concurrent viewers.2
No single point of failure: P2P solutions also offer a decentralized workflow that adds a new level of redundancy and removes the traditional constraints and bottlenecks of a centralized streaming delivery model. When a connection failure occurs between the client and a peer, the content can still be accessed across multiple peers, the edge server, or the CDN. This workflow means that there is no single point of failure. In contrast, achieving the same level of redundancy with multicast can be extremely challenging.
No third-party plug-ins: A major benefit of WebRTC is that it requires no third-party plug-ins. Rather it leverages the browser’s media source extensions to handle and play back the streams via HTML5. Better yet, the industry is trending toward a cross-platform native communication solution that permits P2P technology to work across a variety of browsers, mobile devices, and OTT devices/set-top boxes.
Built-in encryption: Many P2P technologies use a WebRTC data channel to enable peer-to-peer capabilities via raw data transmissions directly between peers. The communication is encrypted by default, can work over TCP or UDP, and can handle NAT and firewall transversal.
Playback intelligence: Many P2P technologies have additional playback intelligence built in. This includes features like intelligent buffering to request data from peers first and then fall back to the CDN if peers are not available. P2P technologies have added support for popular protocols such as Apple HLS and MPEG-DASH and support both HTML5 and Flash playback. This playback intelligence creates a transparent user experience that makes many of the solutions easy to deploy and insert into existing streaming infrastructures.
Advanced video analytics: This is a major differentiator between P2P unicast and multicast. P2P technologies can track viewer behavior, network statistics, and QoE & QoS parameters that are essential to the success of a streaming solution. Audience data measurement also enable companies to measure content performance and maximize monetization opportunities.
Understanding Unicast and Multicast
To fully wrap our heads around the issue at hand, we must first define and understand the differences between unicast and multicast as they relate to video distribution.
Unicast (One to One)
A unicast is what we usually think of when we send information from one device to another. Two devices are involved in the communication and the information is intended to go directly to the destination and not to other devices on the network. Whether we’re surfing the Web, watching a YouTube video, or transferring a file from one device to another, it's generally a unicast we use to perform these functions.
Although unicast is efficient for delivering information from one device to another, for streaming media this doesn't scale very well. The more users that access a streaming-media server, the more unicasts the server has to deliver, and the more bandwidth the server and the network are forced to consume. When streaming media on a local network, additional options are available to deliver information efficiently.
Multicast (One to Many)
Information is sent as a single packet across the network, to only the devices that are interested in receiving the stream. Those receiving devices can see the single frame and packet, recognize the broadcast packet, copy it from the network into local memory, and then process it for playback. For that reason, multicast is an optimal method to stream multimedia content from one device to many devices simultaneously.
Although multicast never saw wide adoption across the Internet, it has been instrumental in the success of media delivery within managed IP networks, most notably Internet protocol television (IPTV). IPTV has replaced many traditional cable, satellite, and terrestrial television formats, in addition to adding interactivity and feature-rich experiences via set-top boxes for live, time-shifted, and video-on-demand television.
The greatest argument in favor of multicast is that it is a cost-effective method of delivering streaming media, as it reduces the bandwidth required to transport data to recipients. The reduction in bandwidth use is an enormous incentive for Internet service providers (ISPs), broadcasters, enterprise networks, educational institutions, government agencies, and many others.
Challenges of Multicast
Although most would argue that multicast is superior to unicast for delivering streaming media, the use of multicast poses a unique set of challenges.
One major challenge is that many network infrastructures aren’t multicast enabled, meaning that multicast does not scale across many large networks and especially across the public Internet.
The potential savings in bandwidth cost is offset by the cost to deploy, install, maintain, and manage a multicast network. As a general rule, multicast has a higher up-front hardware, infrastructure, and human-resources cost than unicast. Because of compatibility issues with network hardware, adding multicast support within existing nodes in a network can also be cost-prohibitive.
Multicast adoption has also suffered because it lacked a standard protocol to ensure the reliable delivery of data packets. UDP (user datagram protocol) is the current multicast standard for streaming media. However, UDP has been (rather unfairly) branded as unreliable because it is designed to be time-sensitive and drop data packets if there is an error in the transmission. This can result in flickers or artifacts within the video, which many would deem unacceptable. Developers hoped to solve these issues with Reliable UDP (RUDP), but adoption has been limited due to cost barriers.
Another drawback of a multicast workflow is the requirement of a multicast-enabled player for users to be able to view the content. Currently, multicast playback requires a third-party software or browser plug-in to be installed and run on the client device. Examples include Adobe Flash Player, Microsoft Silverlight, and VLC Media Player.
In recent years, Internet browsers have embraced video standards such as HTML5 for native in-browser plug-in-less playback and removed support for third-party plug-ins. Major security vulnerabilities and issues with device compatibility have also contributed to the demise of third-party multicast player clients.
These developments have left multicast with very limited in-browser playback options. And the future looks even more grim. One of my colleagues likes to joke that a native in-browser plug-in-less multicast player is the next billion-dollar idea. I don’t disagree, but the current browser technology landscape makes it next to impossible.
Challenges of Non-P2P Unicast
The ever-growing list of issues surrounding multicast, and the emergence and dominance of HTTP protocols (Apple HLS, MPEG-DASH) in recent years mean unicast has become the predominant method of delivering streaming media. The information we receive across local networks and the Internet, whether via streaming servers, web servers, or content delivery networks (CDNs), is optimized for unicast delivery. Thus, from a networking perspective, it is easier and more affordable to develop, support, and scale unicast-based streaming solutions.
Using unicast for live streaming presents its own challenges, the greatest of which is the bandwidth burden that every connected user puts on the streaming server. Each user requests the stream, which in turn creates a greater need for computing resources on the server and bandwidth on the network to serve all of the requests. Simply put, unicast is not built to scale for live streaming.
A spike in viewership means a spike in traffic and bandwidth usage—plus potential streaming delivery issues. Many online video providers handle these spikes by delivering the excess traffic to third-party CDNs, which can be extremely expensive and, at times, cost-prohibitive. Within an enterprise environment, the problems can compound as traffic spikes overload the server and network infrastructure, bringing it to its knees.
Unicast uses TCP (transmission control protocol), which ensures reliable delivery of each data packet to the end user. This layer of reliability requires additional time to process, which can lead to start-up delays and playback latency.
HTTP streaming protocols such as Apple HLS and MPEG-DASH use TCP to transfer data chunks, and often require several seconds of buffering to manage any lost packets.
What Does It All Mean?
Before we can choose between P2P unicast and multicast, we must identify the technology that is best suited for our particular use case.
P2P unicast seems well suited for companies that deliver streaming media primarily on the public Internet. These include broadcasters, OTT providers, online video platforms (OVPs), CDNs, and others.
Using multicast for live or linear streaming within a private network reduces the impact on networks of any size to as low as the bandwidth required for a single stream. Examples of companies that fit this profile include ISPs and telecommunication, enterprise, educational and governmental entities.
If multicast is not feasible, several tried-and-true unicast streaming options are available to minimize network load, including origin-edge streaming, distributed HTTP caching, and P2P streaming.
Similarly, if delivering to viewers outside your private network, consider whether your Internet connection is sufficient to handle numerous simultaneous viewers without congestion. If not, consider a hybrid approach to offload delivery from your network by virtualizing your streaming distribution server in the cloud, pushing streams to a CDN, using a third-party streaming service or deploying a P2P streaming solution.
A hybrid delivery model is especially enticing for companies looking to deliver on the promise of TV Everywhere. They can offer in-network multicast to set-top-boxes and OTT devices at the last-mile while still supporting content delivery via P2P unicast for users accessing the content out of network on mobile devices.
In fact, this hybrid multicast/unicast model may be the future of streaming. Traditional hardware-based network infrastructures have restricted the development of hybrid models to an elite few who can afford the investment. But developments in the industry, including multicast adaptive bitrate, software-based routing and scalable computing, may soon provide companies with the ability to scale multicast within their networks with significantly less investment.
So, will P2P unicast be the death of multicast? Yes and no.
P2P unicast is here to stay, especially as WebRTC continues to gain widespread adoption across devices and browsers. Companies looking to stream within their private networks may turn to P2P unicast as a viable alternative to multicast. But those streaming over the public Internet will embrace P2P technology as it offers the most significant way to reduce their streaming costs.
By the same token, I expect multicast will experience a resurgence within the next few years as companies upgrade their networks and embrace hybrid infrastructures that allow them to deploy streaming solutions that harness the unrivaled bandwidth savings multicast has to offer.
1. Streamroot, “Optimizing Live Streams with Peer-to-Peer Technology,” Whitepaper, 2015, p. 13.
2. Weiss, H, “Peer5, a Live Streaming CDN That Leverages WebRTC, Now Makes 1 Server Equal 20,” Press Release, 2015.
3. Chorbadjiev, L, "Using Viblast PDN to Improve Quality of Live Video Delivery,” Whitepaper, 2014, pp. 5–7.