Hive Tech Blog

Hive Tech Blog


Eliminating HTTP Protocol Bottlenecks Through Caching HTTP Networks

Today, we reveal the project that we’ve been working on for the past year! It’s our new distribution technology, called Hive.js. Hive.js is based on our signature cutting-edge algorithms for efficient video distribution and is built on top of WebRTC. Read below for a full description of our new technology.

Hive.js is a scalable, web-based solution for the delivery of high quality live and on-demand video in the browser. Hive.js was designed to distribute video using all popular HTTP-based adaptive bitrate protocols, such as DASH, HLS and HDS using WebRTC, a new standard for browser-to-browser communication.

Hive.js is a new implementation of the same algorithms that power our installable Java-based software, whose performance has been widely documented in multiple publications and whose novelty has been outlined in multiple patents that detail Hive’s theoretical, implementation and deployment aspects.

The main challenge of delivering HTTP-based live streams is the unicast nature of the HTTP protocol. This creates a potential bottleneck at the source of the stream with a linear increase in bandwidth demand as the number of viewers increases. A natural approach, which is also the primary solution to handle capacity issues for normal HTTP traffic, is to introduce caching. For HTTP-based video content, this is the only available solution since no multicast support has been implemented yet.

Caching HTTP video content on the Open Internet is commonly done using Content Distribution Networks (CDNs). CDNs have the advantage of providing high throughput and low latency. However, this is only the case if the CDN deployment comprises of nodes in proximity of the viewers and, most importantly, if those nodes have enough capacity to support the amount of concurrent viewers watching video content at any point in time. That is not always the case, as CDNs are mostly dimensioned to handle average load rather than peak load. Performance issues in CDN video delivery are common and well documented.

Hive solves the aforementioned performance challenges by providing a software-based CDN that efficiently delivers video streams using readily-available resources in a customer’s network. The result is a video distribution process that utilizes only a fraction of the capacity of a standard CDN. As a consequence, while using Hive.js: i) distribution costs are greatly diminished, and ii) threre is no need of deploying and managing new expensive hardware to handle the required amount of load, even during peak traffic periods.

Hive.js creates a distributed CDN infrastructure where each viewer’s browser acts both as a consumer and a server of video content without the need of installing browser plugins or third-party software. That’s made possible by a new web standard called WebRTC. WebRTC enables easy and direct communication between browsers on different machines by using a set of utilities integrated in browsers and made available to developers as javascript APIs. In doing so, WebRTC completely removes the need for any installable software and allows frictionless deployment of new peer-based video distribution services like Hive.js as Javascript applications, or rather, as “scripts” on a web-page. This not only simplifies deployment but also, as Hive.js is just another web script, it is constrained by well-defined web security standards and browser security mechanisms that are both comprehensive and widely documented.

In our deployments, Hive.js has shown to significantly diminish the load towards the source of the content. Typically, only 5-10% of the content is retrieved from the CDN/streaming server during broadcasts. Besides that, it also provided a quality of user experience that is on par with classic CDN deployments in terms of buffering time and buffering occurrences. That’s because, unlike other software-based CDNs, Hive.js is designed to achieve outstanding quality of user experience first, that is at least as good as a well-dimensioned CDN, before trying to minimize the load on the source of the broadcast.

Hive.js will be available in the next few months. Stay tuned for more news.

For more details about our technology

Roberto Roverso
Head of R&D
Hive Streaming