Reducing Startup Latency and Increasing Streaming Performance
In an effort to further increase our network performance, reduce our startup times, and provide overall network efficiency in the upcoming release of UltraFlix 3.0 I’ve been doing a lot of research into alternative network protocols. UltraFlix 2.x currently uses https calls for it’s streaming, and while secure and stable, it can be improved upon. Given the scale we are now seeing closing in on a half million users, small improvements can yield big impacts especially on origin to edge performance which directly impacts startup times. For 3.0 we are testing the Quick UDP Internet Connect (QUIC) protocol.
QUIC supports a set multiplexed connections over UDP, and provides security protection on par with TLS/SSL. QUIC also provides reduced connection and transport latency by using a variable frame/packet size. QUIC uses bandwidth estimation in each direction providing congestion avoidance. It also times packet transmissions evenly to help reduce packet loss. The use of packet-level error correction codes also helps reduce the need to retransmit lost packet data, further improving performance. Finally, QUIC aligns cryptographic block boundaries with packet boundaries. This means that the impact of packet loss impact is mitigated.
With the goal of decreasing the buffering and setup time we are relying on some of the benefits found in QUIC, specfically the fact that QUIC handshakes typcially require zero roundtrips before sending payload, as compared to 1-3 roundtrips for TCP+TLS calls. In addition, we have crafted some proprietary techniques to the video stream that optimize the ability to quickly start the stream while buffering is still taking place, further reducing startup time on any bitrates, including the new UHD Blu-ray quality option that can be enabled on homes with > 50mbit internet connections.