BBC streamade nyligen 24-timmars live HD Olympic-evenemang samtidigt från sin sportwebbplats, tillsammans med sina normala digitala sändningar över luften.

Även om jag är säker på att du, som jag, har en vag uppskattning av vilken strömning som helst - titta på filmer och TV-program över internet är alla delar av 2012-alltid-samhället - sanningen är ännu mer märklig än du kan förvänta dig. På ett sätt är det fantastiskt det fungerar alls.

Den tidigaste referensen till vad vi kanske känner igen som "streaming media" var ett patent till George O Squier 1922 för effektiv överföring av information av signaler över ledningar. Vid den tiden var sändningsradio bara igång, och krävde dyr och något temperamentsfull utrustning för att sända och ta emot.

Squier erkände behovet av att förenkla sändningen och skapade ett företag som heter Wired Radio som använde denna uppfinning för att röra bakgrundsmusik till affärer och företag. Senare bestämde han sig för att apa varumärket Kodak genom att byta namn på företaget Muzak. Detta var det första framgångsrika försöket att multicast media (det vill säga sända en signal över en kabel till flera mottagare samtidigt).

Digital streaming

Det var ganska mycket det för sändning (radio och tv) och multicast (Muzak) fram till datornas ålder, särskilt persondatorer. Det var inte förrän i slutet av 1980-talet eller början av 1990-talet att datorer hade hårdvara och programvara som kunde spela ljud och visa video.

De viktigaste problemen som kvarstod var en CPU som är tillräckligt kraftfull för att göra video och en databuss som är tillräckligt stor för att överföra videodata till videokortet och bildskärmen, liksom nätverksbandbredden (det var den ålder där den bästa tillgången till nätverk var genom ett 28,8 kb modem).

Faktum är att det enda alternativet som var tillgängligt var att ladda ner media som en fil från en viss fjärrserver och spela den när filen var helt nedladdad.

Tänk på problemet: En dator hade vanligtvis en XGA-bildskärm med en upplösning på 640 x 480 pixlar med 16 bitar per pixel. Video var dock 320 x 240 pixlar. Vid en videouppdateringshastighet på 24 bilder per sekund måste databussen på datorn bearbeta 320 x 240 x 2 (bytes per pixel) x 24 byte per sekund, som fungerar vid ca 3,5 MB per sekund.

Flera saker var tvungna att träffas innan streaming media kunde hända. Först av allt måste själva videon komprimeras för att minska mediefilens fotavtryck på disken. Vid 3,5 MB per sekund skulle en video på en minut ta upp 200 MB på hårddisken - en mängd utrymme som uppriktigt sagt inte var tillgängligt på de flesta datorer av tiden.

CPU-enheten måste kunna dekomprimera videodata i realtid och göra ramar med rätt bildhastighet. PC: ns databuss måste kunna hantera överföringen av denna mängd data till videosubsystemet, och sistnämnda måste kunna uppdatera bildskärmen med rätt bildhastighet. Vid mitten av 1990-talet hade de nödvändiga stjärnorna anpassats.

Multicasting

FIGUR 1: Ett multicast-nätverk distribuerar media med liten bandbreddstörning

1992 föddes ett experimentellt nätverk: Mbone. Detta var ett virtuellt nätverk som var superpålagt på det normala internet vars huvudsakliga syfte var multicasting.

Multicast i detta scenario är en teknik som gör det möjligt att strömma data effektivt från en server till flera mottagare samtidigt. Ett exempel på en situation som gynnar multicast är en internetradiostation. En sådan station kommer att presentera en ström av musikdata som användare kan prenumerera på, men alla användare hör samma ström.

Från internetradiostationens synvinkel är allt som behövs en enda band med låg bandbredd till multicast-ryggraden, och resten av överföringen och eventuell duplicering av dataströmmen görs av noderna på internet. Att öka antalet lyssnare skulle inte påverka internetradiostationen för mycket.

Den motsvarande tekniken kallas unicast, och det här är det vi använder när vi tittar på en YouTube-video eller en film online: en server skickar en dataström över internet till en enda mottagare, nämligen vår dator.

För att fortsätta vårt exempel skulle en internetradiostation inte dra nytta av unicast eftersom det skulle behöva sända en dataström till varje lyssnare. Öka antalet lyssnare skulle kräva att stationens server- och nätverkskapacitet ökar.

Problemen med multicasting är flera gånger. Först och främst kräver det speciella routrar som noder på nätverket för att överföra den enskilda dataströmmen. Det måste bygga upp ett träd av dessa speciella routrar, så att det (eller nätverket) kan programmera dessa routrar så att endast en enda dataström passeras mellan dem. Självklart kan endast multicast-routrar kopplas i det här trädet.

Detta kallas vanligtvis tunneling - de speciella routrarna tunnelar multicastdataströmmen mellan dem över det normala internet. Då måste varje mottagare kunna identifiera sin närmaste multicast-router så att den kan få en unicast av dataströmmen från den routern. Routern fungerar som en duplicator av data - se figur 1 ovan.

Det andra huvudproblemet berördes i vårt exempel på en internetradiostation: multicast ställer problem med att betala för det, särskilt när det gäller ISP-kostnader. Med en multicast internetradiostation passerar stationens lokala ISP endast via en enda dataström, oavsett hur många lyssnare det finns. Datadupliceringen görs av routrarna som är geografiskt långt ifrån sändaren.

Även om Mbone lyckades som ett forskningsprojekt - det var till och med van vid Multicast en Rolling Stones konsert på Cotton Bowl i Dallas - det blev aldrig riktigt fångat offentligt. Dessa dagar används det mest för videokonferenser.