Multicast idee ffl Hariliku punktist punkti edastuse (unicast) puhul saadetakse pakett ühele kindlale adressaadile. ffl Leviedastuse (broadcast) korral saadetakse pakett mingis piirkonnas kõigile hostidele, mis seda kuulevad. ffl Oleks vaja vahepealset varianti saata paketti mingile hulgale hostidele, kuid teisi mitte tülitada. ffl Selleks on välja mõeldud multiedastus (multicast) viis saata pakett nii, et selle saaksid kätte täpselt need hostid, mis sellest huvitatud on. ffl Multiedastust saab defineerida mitmes erinevas protokollikihis näiteks 2. kihis Etherneti tasemel, 3. kihis IP tasemel. 1
Etherneti multicast ffl Toimub ühe Ethernet-võrgu piires, levib seega üle järgurite ja sildade, kuid mitte üle ruuterite. ffl Targematele ethernetikaartidele saab tarkvaraliselt ette anda nimekirja Etherneti aadressidest, mille adapter omadeks tunnistab (s.t. korjab sellise sihtaadressiga paketid üles ja annab edasi ülemisele kihile). ffl Selliste aadresside nimekirja pikkus on piiratud. Kui nimekirja pikkus ületatakse või kui sellise nimekirja tuge pole, kasutatakse multiedastuse emuleerimiseks promiscuous-moodi, kus korjatakse kaablist üles kõik paketid, mida kuuldakse. ffl Osa aadresse on IEEE poolt eraldatud kindlaks otstarbeks. Vabalt kasutatavad multiaadressid on vahemikus C0-00-00-00-80-00 kuni C0-00- 40-00-00-00. 2
IP multicast (1) ffl Multiedastuse jaoks on eraldatud aadressivahemik 224.0.0.0-239.255.255.255 (klass D). 4 esimest bitti aadressis on ühed, ülejäänud 28 bitti moodustavad multicasti grupi numbri (vrdl. multicasti gruppi ja raadiokanalit). ffl Aadressipiirkond 224.0.0.0-224.0.0.255 on reserveeritud kohaliku leviga gruppide jaoks (s.t. neile aadressidele saadetud pakette ei edastata kunagi ühelt liideselt teisele). ffl IP pakettidel on kaasas TTL väli (time-to-live). Multicasti puhul on TTL väärtustel spetsiaalsed tähendused: 0 kohalik masin 1 kohalik võrk <32 sama site, asutus või osakond <64 sama regioon <128 sama kontinent <192 ülemaailmne, piiratud riba <256 piirangud puuduvad 3
IP multicast (2) ffl Reserveeritud aadresse: 224.0.0.1 kõik masinad alamvõrgus 224.0.0.2 kõik ruuterid alamvõrgus 224.0.0.4 kõik DVMRP ruuterid 224.0.0.5 kõik OSPF ruuterid... 224.0.0.9 kõik RIPv2 ruuterid... ffl IP multicasti edastamine üle Etherneti: ARP i analoog puudub, IP aadressi madalamad 23 bitti kopeeritakse otse MAC aadressi madalamatesse bittidesse. Selle jaoks on reserveeritud MAC aadresside vahemik 01-00-5E-XX-XX-XX ning nende XX ide asemele see IP aadressi osa kirjutataksegi. ffl 5 bitti jääb kajastamata, seega mingi tõenäosusega tekib kollisioon ning kahe multiaadressi paketid pole eristatavad. Sel juhul eristatakse õigeid pakette valedest sihtpunkti IP aadressi järgi. 4
Gruppidega liitumine ja IGMP ffl Ühe segmendi piires on infovahetus lihtne: Λ Vastuvõtja hosti mingi programm liitub mingi grupiga ja jääb multicasti aadressile bind itud pordil kuulama. Grupile vastav MAC aadress lisatakse võrgukaardile oma aadressiks. Λ Saatja saadab paketi multiaadressile. Saadetakse vastav Etherneti kaader. Λ Kaadrit näevad need hostid, millele mõni programm on ühinenud ühega vastavatest IP aadressidest. Kui mõni programm kuulab antud paketi sihtpordil, saab ta paketi kätte. ffl Et pakett leviks ka kaugemale, peavad kõigepealt ruuterid teadma, mis grupid nendega ühendatud võrkudes levivad. Ruuterite teavitamiseks kasutatakse IGMP protokolli (Internet Group Management Protocol). 5
Multicasti ruutimine (1) ffl Probleem: missuguseid multicasti pakette kuhu saata (ja kuhu mitte saata). ffl Lihtsameelsed lahendused: üleujutamine (saadame igale poole); üks kindel puukujuline selgroog (alamhulk ruuteritest), mille kaudu käib kogu multicast-liiklus. ffl Lähteaadressil baseeruvad puud. Idee on selles, et ruuterid vahetavad omavahel infot, et teada lühimat teed lähtevõrkudesse. ffl Ruutingutabelites ei määra mitte sihtpunkt järgmist sammu, vaid lähtepunkt määrab eelmise sammu. ffl Kui nüüd pakett tuleb sisse liideselt, kustkaudu ruuteri arvates läheb lühim tee paketi lähtepunkti, siis võetakse pakett vastu ja saadetakse teistel liidestel edasi. Kui pakett saabub mõne teise liidese kaudu, visatakse ta minema. 6
Multicasti ruutimine (2) ffl Tahame arvestada ka grupikuuluvusi, et hoida kokku võrguressurssi. ffl Viimase sammu ruuteritel on enda taga olevates võrkudes hetkel kasutatavad grupid teada IGMP tulemusena. Seda infot oleks vaja edasi levitada. ffl Täiendus eelnevale protkollile: toome sisse IGMP analoogi puu pügamiseks. ffl Kui üheski ruuteri taga olevas võrgus pole ükski masin antud grupiga liitunud ning samuti pole teada neis võrkudes ühtegi ruuterit, mis oleks selle grupiga liitunud, saata ülespoole (allika poole) teade prune selle grupi kohta. ffl Selle tulemusena ei saadeta enam vastava grupi pakette alla. ffl Kui on vaja kiiresti jälle kasutama hakata, siis saata üles graft teade, mispeale hakatakse kohe jälle saatma. 7
8
Multicasti ruutingu protokollid ffl DVMRP (Distance Vector Multicast Routing Protocol) realiseerib lähteaadressil baseeruvad pügamisega puud, RIP i sarnane. ffl MOSPF (Multicast Extensions to OSPF) Lisab multicasti toe üldlevinud OSPF ruutinguprotokollile. ffl PIM (Protocol Independent Multicast) allolevast unicasti ruutinguprotokollist sõltumatu protokollistik (uusim): Λ PIM-SM (Sparse Mode PIM) hõredalt laiali paiknevate süsteemide vaheline ruutinguprotokoll Λ PIM-DM (Dense Mode PIM) tihedalt koos paiknevate süsteemide vaheline ruutinguprotokoll 9
MBONE Kogu Internet ei ole veel multiedastuseks võimeline. Eksisteerivad saared, mille piires multiedastus töötab. Hulk selliseid saari on kokku ühendunud virtuaalseks multicast-võrguks nimega MBONE. Saarte ühendamiseks kasutatakse eid: saar 2 saar 1 saar 3 saar 4 saar 5 10