What is Streaming and how do we use it?
If you’ve ever watched a video, played a browser game, or listened to music without waiting to download a whole file to your device’s storage, you’ve used streamed content.
When you hear streaming, you might immediately think about livestreams, but not all streams are livestreams. Livestreams refer specifically to streams that happen in real-time, like those on Twitch. You might also be familiar with audio live streams if you’ve listened to live internet radio, or even made a voice call over Slack, Discord, or Google Voice.
Streaming is continuous content delivery where data doesn’t need to be stored anywhere between the provider and the end user. It can be live or static. Streaming can refer to a lot of different types of content, and it doesn’t have to be in real time.
How does streaming work?
Normally, when you open a website, your browser asks the relevant server to send content over. Your browser makes a new request whenever you click on a link or interact with a widget on the page. Until you click on something, the server can't send anything new.
When you open a stream, you don’t have to interact with the page to load more content. Instead, your browser tells the server that it wants to receive a continuous stream of content, and gives the server permission to serve content repeatedly. While you’re tuned in, everything seems to load instantaneously and continuously.
You might experience lag or buffering if your connection is poor, but under good conditions, everything appears continuously. People notice latency as low as 100 ms, and typically complain about it at 300 ms, so it’s important to keep latency low.
In the background, the website could be using one of several protocols to serve a lot of content really, really quickly. Streams can’t and don’t wait for user input, so they use specialized protocols (such as UDP, DASH, or HLS) to deliver content instead. The server breaks up the stream into smaller packets and sends those packets to your browser.
Streaming refers to any content served continuously, including traditional radio and television broadcasts. The internet follows many similar protocols to what radio and broadcast TV use to serve content.
Developers are in a constant fight against latency, lag, and rural internet connections. A wide variety of protocols and APIs are specifically designed to ease the streaming process and improve user experience.
Streamed files are usually pretty big, so websites rely on transcoding to make the file easier to store and send. These files are usually stored in the cloud and delivered via a content delivery network.
Streams might send content a few seconds ahead of what the user needs to create a seamless experience free of buffering, stops, or obvious lag.
Livestreams use real-time events to process and send content as it’s uploaded, whether it’s both ends of a voice call, or a Let’s Play on Twitch. Increasingly, live streaming is a popular way to deliver content. However, it poses an interesting puzzle for ISPs since most traditional networks are set up to deliver high download speeds but not upload speeds.
Streaming requires a deceptively complicated series of technologies and workarounds to send large amounts of content without requiring end-users to download massive files. The technology is continuously evolving to suit increased demand.
If you're interested, check out some of our other articles.