How video streaming can ruin VoIP and gaming
I’ve spent much time debunking the notion that all applications should be treated equally by the network. I’ve also published data showing the harmful effects of BitTorrent which was supposedly “network friendly”, but I haven’t talked about the harmful effects of video streaming from popular services like Netflix, YouTube, and Hulu up until now.
I first noticed this problem in my home whenever I try to use my Lingo VoIP Internet telephony service while watching YouTube. If YouTube was aggressively pushing data to me at 1 to 3 Mbps to buffer ahead even though the video I’m watching might only be 0.66 Mbps, I can’t hear half the words coming through my phone service. In another instance, I noticed that a gaming teammate was facing extremely high ping times during a game and I asked him what was going on. He explained that his wife was watching Netflix and that was killing his ping times.
I measured my jitter (see explanation of jitter) while using Netflix to confirm its harmful effects and I generated some data. Jitter occurs when an application monopolizes a router’s transmit queue and demands that hundreds of its own packets are serviced before any other application gets a single packet transmitted. Figure 1 below shows that we are dealing with an average jitter of 44 milliseconds (ms) and a worse case that exceeds 1000 ms. Live video streams from uStream on the other hand produce far less jitter because they can’t buffer ahead because they’re transmitting whatever they’re getting from the live source. Figure 2 shows that the average jitter produced by a live uStream video is only 2 milliseconds while peak jitter was as high as 23 ms. While that’s far from ideal, it’s far better than the kind of jitter from Netflix or YouTube.
Figure 1 – Jitter from Netflix stream (burst traffic)
Note that this method of measurement takes one sample per second. It is quite likely that there is far more jitter occurring between the samples.
Figure 2 – Jitter from live uStream (fixed ~400 Kbps)
Video streaming services typically use one transmission stream whereas BitTorrent uses dozens of transmission streams simultaneously. This means that the disruptive jitter from video streaming is lower than BitTorrent, but the practical effect to VoIP and gaming is nearly as bad. By comparison, it is possible to have high bandwidth transmissions with near perfect uniformity that produce little to no jitter. For example, VoIP applications and high-bandwidth IPTV generate almost no jitter as shown in figure 3 below.
Figure 3 – 7 Mbps IPTV stream produces almost no jitter
It is counter intuitive that a 7 Mbps IPTV stream would generate less than 5 ms jitter but a 1.5 Mbps of traffic coming from YouTube or Netflix can generate 100 to 1000 millisecond jitter. This complicated phenomenon is made simple by my animated explanation of jitter.
Nice applications finish last
So the question one might ask is why can’t BitTorrent, YouTube, and Netflix adopt a more consistent transmission scheme (the technical term is isochronous data transmission) that inflicts less jitter on their users. It turns out that network friendly protocols that use isochronous data transmission are susceptible to other non-friendly protocols and this is precisely why IPTV and VoIP and online gaming are susceptible to jitter. Applications that generate no jitter are friendly to other applications but they are very susceptible to jitter-generating applications. In other words, nice guys finish last and it is the reason why BitTorrent would rather be selfish than friendly.
The other reason that YouTube and Netflix like to burst ahead is because it ensures that they’re buffered ahead so that their customers will face fewer pauses in the video stream, and because they leverage opportunistic data transmission. Services like YouTube and Netflix can’t be sure if there might come a sudden surge of traffic from additional users so they use any opportunity they can to push data to their online users. This might waste bandwidth at times especially when a user decides to stop watching a video after a few seconds when they’ve already buffered ahead for several minutes. But Google may feel that not using their network to its fullest whenever they can wastes idle time, and that’s a bad thing when Google built their own private Internet for YouTube.
A problem of externalities
The fundamental problem here is that application makers and content providers have to ensure their own service even if it produces harmful effects for other applications. It’s a classic problem of externalized costs and an unwillingness to unilaterally disarm so it is unrealistic to expect the end points to solve the problem with voluntary behavior. This is why the solution to this must be implemented inside the network. It requires a truly neutral network that ensures application fairness by prioritizing jitter sensitive applications such that all applications get a fair rotation in the router transmit queue.
Free Press is ignorant to believe that the Internet should be a dumb First In First Out (FIFO) network because those networks offer no jitter mitigation. FIFO networks are fundamentally unfair and they don’t serve in the best interest of Internet users. Free Press’ Robb Topolski acknowledges that fair queue rotation and the prioritization of low bandwidth jitter sensitive applications is the right thing to do, but only if it is done by the end user and not by the ISP. But such thinking is foolish because it is technically impossible for the end user to fix the jitter problems of BitTorrent, YouTube, or Netflix because the problem occurs on the ISP’s equipment and can only be resolved by the ISP. Yet whenever this is explained to Mr. Topolski, he can offer no rebuttal other than to repeat his opposition to a network based solution.
All the technical experts agree that networks cannot be dumb and they cannot treat applications in a neutral manner. The only resistance to this idea is a distrust of the ISPs but those concerns can be overcome with FCC oversight through the Broadband Internet Technical Advisory Group (BITAG). What doesn’t solve this problem is feelings based policy.
Update 6/29/2010 – Speaking of network engineering ignorance, Michael Weinberg gave us a good dose today.