Why does the streaming video I'm watching slow down and speed up?

Episode 875 (1:49:08)

Tim from Kansas City, KS

In order to stream content live, Tim would have to have sufficient connectivity (which isn't necessarily the same as internet speed) to get the packets that are coming to him. All of this streaming data is grouped into packets, so a chunk of the video comes, and then another chunk and so on. He'll have to get it in a timely enough fashion for it to be in order and play back. There's a number of strategies to accomodate the fact that the internet is inconsistent. Buffering is most common, the video loads 30 seconds ahead of play back so if the video needs to stop for a second to wait for a packet, it can afford to do so without stopping. Once the buffer is used up, it has to buffer again. This is a result of the connection being insufficient or perhaps the server, on the other end. There might be other strategies like slowing the video down instead of playing it in real time. That would give it more time to download more of the video ahead of time, too. So whatever it is that Tim is using to watch the video is slowing down because packets aren't arriving in order and in a timely fashion.

There's a new thing called "buffer bloat", which is quite a mess. Because memory got cheap, router manufacturers decided to just throw in bigger buffers. They figured if they had bigger buffers, there wouldn't be as much of an issue playing back content. It turns out, an unexpected consequence, is that it breaks part of the protocol that sends that data called "congestion control". It makes it worse, not better. Tim can find out if he's suffering from buffer bloat with UC Berkeley's Netalyzer. Unfortunately, there isn't much he can do about it at this time.