Wednesday, February 14, 2007


The vast majority of Internet streaming today uses unicast, the original Internet transport protocol, where a separate copy of the stream is sent to every listener or viewer in the audience. Since the sender pays for the bandwidth used, this means that there is an additional cost for each additional user and, as a result, large scale streaming can be expensive.

Things were not supposed to be this way.

The inefficiencies of unicast for media distribution were recognized in the 1980s by Internet scientists and engineers, and multicast was created. In multicast, only one copy of a stream is ever sent out through any link, and the routing protocols replicate the streaming media packets as needed inside the network. Multicast routing is generally seen as the means of making the Internet suitable for streaming broadcast services, and of lowering the costs of distribution.

Work in multicast started in earnest in 1989, and by the early 1990's, the foundations of the current streaming industry were being laid - for multicast. The first audio and video broadcast trials were multicasts of technical meetings in 1992, and by 1995 multicast routing seemed well on its way to widespread adoption. Indeed, in 1995, it would have been more common to find a multicast stream of a live event on the MBone than a unicast one on the "public" Internet.

Today many streaming industry advocates (and pundits) wonder why eleven years after the first test multicasts of streaming, this technology is still not ubiquitous. Will multicast streaming efficiencies ever happen?

What is Multicasting?
Multicasting is a technique developed to send packets from one location in an IP network to many other locations (destinations) without unnecessary packet duplication. In multicasting, one packet is sent from a source and is replicated as needed in the network to reach as many end-users as necessary. Multicasting is not the same as "broadcasting" in networking jargon: broadcast data are sent to every possible receiver while multicasts are sent only to receivers that want them.

The concept of a group is crucial to multicasting. A "group" is defined by a special Internet address, a so-called Class D address (these are reserved for multicast). The multicast service model is intended to make things as easy as possible for streaming applications - sources just send to the group address, and receivers merely indicate their interest in the group (i.e. "join the group") to receive. All of the complexity required to make this happen is hidden away and performed by the network itself.

Multicasting is the most economical technique for sending a packet stream (which could be audio, video, or data) from one location to many other locations on the Internet simultaneously.

No comments: