Video traffic is going to be, if not already, the dominant component of the global Internet traffic. It was reported a few months back that traffic from Netflix alone constituted about 20% of the US Internet traffic. In this article, we want to discuss the performance aspects of video applications, video on-demand or video streaming to homes in particular. Other applications such as video conferencing and video file download are good topics for future discussions.
YouTube and Netflix movie on-demand are good examples of VOD or streaming video services. The videos are watched on many devices like PCs/laptops, tablets, smartphones, and smart TVs (or TVs equipped with an external streaming device such as Google TV or Roku).
Video streaming, contrary to the popular assumption, uses the TCP/IP not the UDP/IP protocol. That means the video/audio bits are delivered error-free and in exact sequence (means no communication degradation in transit). If one is watching a 10-minute video clip, the initial packets that are delivered are buffered for a short amount of time (say 30 seconds) and the playing of the video is delayed by that amount. Once the video starts playing, the remaining packets of the video clip are delivered continuously in the background and will keep replenishing the screen. Thus the displaying of the video will be smooth after the initial pause giving the effect of almost being in real-time. Well, let us say most of the time, assuming the network bandwidth and quality are fully adequate.
Many times, the network quality may not be up to par. The bandwidth may vary and get reduced during the playing or there may be packet losses. When the network behaves such, there may not be new bits available for display as they are still arriving slowly or in the process of being retransmitted. A pause status/icon (informing “still loading”) will be shown on the screen till fresh bits become available to be displayed. This pausing may happen for a very short period of time if the connection is randomly degraded for a very brief amount of time. If this condition happens once or twice depending on the total duration of the video stream (say more than 5 minutes), then there is no impact on the user experience.
On the other hand, if one is watching a one-hour video and the network connection is consistently slow or of bad quality, then there will be multiple hiccups during that hour and it is no fun to watch such a video -the user experience takes a definite hit.
I experienced this phenomenon myself recently. I watch old TV shows on Netflix fairly regularly between 9 pm to 11 pm. I never had any user experience issues for the first six-months of this year – perfect rendition. Lately, however, the video pauses not once but several times – I had to almost give up watching these shows. These shows are about 45-minutes long and the total file sizes are about 700 Gbytes. My Internet services are currently provided by Comcast via the cable modem. I generally get download speeds in the range of 4 Mb/s to 10 Mb/s.
Unlike fiber to home, Internet delivered via cable is still shared by many homes in the community. The available bandwidth might drop to the lower end of the range during the prime time or hours of heavy Internet usage. There may be packet losses because of contention. The investigation as to why there is so much stuttering of the video at that time is still inconclusive and needs further study.
Another thing to note here is that in the Application Performance Management (APM) world we have the response time metric for assessing the performance of an interactive App. But for VOD, we know what a bad user experience is but we don’t have a standard way of measuring the user experience. This metric should incorporate factors such as the initial amount of delay and the number of pauses (and their duration) encountered during the video delivery.