Hitchhiker's Guide to Streaming Media
>> Looking up: “Streaming”
Around the same time that a Vogon constructor fleet arrived to destroy a small planet called “the Earth” The Hitchhiker’s Guide had only a short entry under “streaming:”
stream·ing (ˈstrē-miŋ): an act or instance of flowing. (Merriam-Webster)
Around 20 Earth years later a researcher from “The Guide” reached Earth (which had, in the event, largely avoided being destroyed because of some last-minute lost Vogon paperwork), and while he was there realised that the entry in the Guide for “streaming” was out of date.
At a conference of Earth people known to be keen on the topic, the researcher asked a few questions over a glass or two of beer and some peanuts (very good for you after travelling long inter-spatial distances). He subsequently filed an update to the Guide that went something like this:
(stream·ing) (ˈstrē-miŋ): Transfer of data in a manner that allows it to be processed (displayed) as the data is transferred, rather than requiring all the data to be transferred before it can be used. Streaming is often useful in accelerating access to large audio or video files, or where the stream is ongoing such as in a live broadcast.
There are commonly two main ways that streaming is facilitated:
1. In their truest sense the Streaming technologies attempt to manage the network between the source and the recipient. They use signalling between the two and the underlying network to establish the optimal rate at which to transfer the data so as to ensure a continuous flow. A small queue of the data is buffered up on the receiving end so as not to interrupt the access if there are errors in the transfer.
2. The other technique is known as “progressive download.” In a network with “over capacity” the effect of streaming can be achieved with no more than error handling between the source and recipient, since the source simply sends the data as fast as it possibly can and the recipient queues up the packets in a buffer. The system is also known as “best effort,” since, although they generally will, there is no guarantee that any packets will arrive at the recipient in a timely fashion.
Although the difference is largely semantic from the recipient’s point of view, there are some big differences: Not least that streaming technologies are often more expensive than progressive download technologies. For this increase in price they provide better quality of service, better management tools, and higher scalability.
The “true” streaming technologies introduce a number of techniques to manage problems in dynamic packet networks (such as changes in the available capacity or sudden fluctuations in the demand for the content), and allow the flow rate of the data to be modified, generally providing constant service for all connected recipients, or “gracefully” refusing the recipient if the service is too busy or a sufficient network link is not possible. Data is rarely sent by a streaming source (server) at a faster rate than it is required, leaving the unused bandwidth instantly available to newly joining recipients.
By contrast, “progressive download” only has error correction and no flow control. While a faulty packet of data will be resent, there is no signalling between source and recipient to deal with issues such as changes in capacity of the network or sudden changes in demand. This means that all recipients requesting data are dealt with in a “round robin” way and the continuity of the transfer may be compromised by factors such as new recipient’s incoming requests for the data or the availability of network links which that server is using. Progressive download is not typically used for live signals.
Don’t panic. Next time: The Hitchhikers Guide to Webcasting