Upon first hearing about the benefits of Giraffic’s AVA, you may think it sounds like magic, something that is almost too good to be true. How can AVA deliver 4K video resolution, working from the client-side only – even under less than ideal network connections?
After all, it is not a better CODEC or video player. We don’t have the luxury of using giant video servers or Content Delivery Networks to boost the performance.
What we are doing is controlling and optimizing the Internet connection using client-side only technology. Giraffic can miraculously serve up more network bandwidth (up to the operator SLA maximum of course – there is a limit to our magic!).
Giraffic AVA works with existing standards, and uses a range of techniques to overcome limitations of TCP and HTTP in streaming video content. It is kind of like “found money,” or bandwidth.
A Brief History of HTTP
Video streaming leverages the standard HTTP web protocol. In the original HTTP 1.0, web sessions typically created a new TCP connection for each HTTP call. This technique did not scale as web pages became complex and URL laden, requiring as many TCP connections as there were embedded objects. It slowed down page loading, stressed servers, and increased the load on the ISP’s access and backbone networks due to the overhead of frequent buildup and teardowns of numerous short-lived TCP connections.
The scalability problem was addressed in HTTP 1.1, with the introduction of pipelining. This allowed browsers to create a few TCP connections, and pipeline HTTP requests. In short, the overhead of creating a TCP session was shared across multiple HTTP requests by reusing TCP connections, resulting in lower network and web-server overhead. This significantly improved the web browsing user experience– but didn’t help with downloading large files or video streaming because of the low throughput of these connections.
Improving Video Streaming via Intelligent Pipelining
This is where Giraffic technology kicks in. AVA uses HTTP pipelining on a set of persistent TCP connections to fetch video in chunks. The Giraffic agent, which sits between the player and the TCP stack on the client, gathers intelligence from network analytics to estimate acceleration parameters at any given time, learn the network behavior and predict performance for the next interval. After gathering info and learning about the network, AVA starts to accelerate while defining the number of persistent connections, the size of each, the duration a request and prioritizing the different chunks of data.
There are more tricks we use to guarantee great user experience. Giraffic accelerates video streaming on a range of networks by taking advantage of each video protocol separately. I’ll share more in coming posts.