Hlavní navigace

Úvod do IP multicastu (díl třetí)

Ondřej Filip 8. 10. 2004

Dnešní díl seriálu nás zavede více do hloubky multicastového routingu. Povíme si, jaké routovací protokoly se pro multicast používají a na jakých stojí principech. Na úvod se ale neobejdeme bez trochy té teorie.

minulém díle jsme si pověděli o multicastovém forwardování, dnešní díl se soustředí na způsoby, jak sestavovat vlastní multicastové routovací tabulky.

Pro pochopení, jak IP multicast funguje, si povíme něco o multicastových distribučních stromech. V IP multicastu existují dva základní typy těchto stromů: zdrojový strom (source tree) a sdílený strom (shared tree).

Zdrojový strom

Tomuto stromu se také někdy říká strom nejkratších cest (Shortest Path Tree – SPT) a je to strom, jehož kořenem je zdroj multicastových dat, a listy tohoto stromu jsou příjemci tohoto vysílání. Příklad takového stromu vidíte na následujícím obrázku.

1385
Source Tree

Pro označení stromu se obvykle používá notace (S, G), což se anglicky čte jako „S comma G“, kde S je adresa zdroje a G je adresa multicastové skupiny. Náš příklad na obrázku bychom označili jako (192.168.0.2, 225.1.1.1). Je tedy zřejmé, ze pro různé zdroje posílající data do stejné multicastové skupiny existují různé zdrojové stromy. Někdy se také tento způsob práce s multicastem označuje source specific multicast (SSM).

Sdílený strom

Oproti zdrojovým stromům mají sdílené stromy kořen vždy na jednom místě, nezávisle na tom, kdo data posílá. Tomuto kořenu se obvykle ríka rendesvous point (RP), a proto se také tyto stromy někdy nazývají RP stromy. Příklad takového stromu máme na následujícím obrázku.

1384
Shared Tree

Jako označení pro tyto stromy se používá notace (*, G), anglicky „star comma G“. Hvězdička označuje, že strom není závislý na zdroji multicastu. Náš příklad by se dal označit jako (*, 225.1.1.1). Jak je vidět, router F tvoří kořen stromu. Aby situace nebyla tak jednoduchá, tyto stromy jsou dvojího druhu: jednosměrné a obousměrné. Distribuce multicastu v obousměrném stromu probíhá tak, že zdroj data vysílá směrem ke kořenu a zároveň po směru stromu k listům. U jednosměrného se data pošlou unicastem ke kořenu a ten se o jejich distribuci již postará.
Tento způsob chápání multicastu má také označení ASM (any source multicast).

Nyní se vraťme k praxi a podívejme se na používané routovací protokoly. Lze je rozdělit do tří základních skupin: Link state, Dense mode a Sparse mode.

Dense mode protokoly

Protokoly této skupiny používají zdrojové stromy k doručování SSM a pracují na tzv. push principu. Tento princip předpokládá, že každý subnet má příjemce (S, G) multicastového provozu a tento provoz je tedy primárně přenášen všude. Aby se zabránilo plýtvání pásma, listy stromu, které nemají žádné příjemce pro předmětnou skupinu, pošlou směrem ke kořenu tzv. prune zprávu. Směr, ze kterého taková zpráva přišla, je pak ve stromě ořezán, až zůstanou pouze větve, které mají některé aktivní posluchače. Prune zpráva platí pouze po omezenou dobu, takže po chvíli je ji nutné opět obnovit, jinak začne nadřazený router data posílat. Naopak ve chvíli, kdy se objeví nějaký nový posluchač dané skupiny, pošle router svému nadřazenému zprávu graft a data začnou téct okamžitě.

Mezi dense mode protokoly patří například DVMRP a PIM-DM.

DVMRP (Distance Vector Multicast Routing Protocol) je jedním z nejstarších protokolů, navrhnul ho sám Steve Deering a svou koncepcí velmi připomíná unicastový RIP. Jeho přesný popis je v RFC-1075. Poměrně netypicky si sám sestavuje i unicastovou routovací tabulku a dělá to podobně jako RIP. V minulosti byl velmi využíván v síti mbone. A podobně jako RIP se v dnešní době používá už spíše z důvodů kompatibility a ve velmi malých sítích.

PIM-DM (Protocol Independent Multicast – Dense Mode) je protokol o něco mladší. Nesestavuje si sám unicastovou routovací tabulku, ale místo toho využívá tabulku od nějakého unicastového protokolu. Slůvko independent v názvu označuje, že PIM umí spolupracovat s libovolným protokolem, tedy třeba i se statickým routingem apod.

Sparse mode protokoly

Mezi sparse mode protokoly patří například PIM-SM (Protocol Independent Multicast) nebo CBT (Core Based Trees). Tyto protokoly využívají sdílené stromy pro distribuci multicastových dat a využívají tzv. pull model. Tento model předpokládá, že data se nesmějí posílat do sítě, pokud si je někdo explicitně nevyžádá. Pokud se tedy některý stroj chce připojit do multicastové skupiny, jeho příslušný router pošle zprávu join směrem ke kořenu stromu. Takto je sestavena další větev stromu a data můžou proudit. Platnost zprávy join je časově omezena, takže je nutné ji obnovovat. Pokud už v dané větvi není žádný příjemce skupiny, router pošle zprávu graft, která větev uřízne.

Důvodem pro zavedení sparse mode protokolů byla především snaha šetřit výpočetní výkon routerů. V případě, že je více přispěvovatelů do skupiny, musí dense mode protokoly počítat strom pro každý zvlášť. To u sparse mode protokolů odpadá, ale na oplátku může být jejich routing méně efektivní, a je tedy nutné velmi pečlivě volit RP.

CBT se nikdy velikého rozšíření nedočkal, naopak PIM-SM má pár implementací a je běžně v multicastových sítích používán.

Link state protokol

Jediným známým (alespoň mně) zástupcem link state protokolů je MOSPF (Multicast Open Shortest Path First), který je definován v RFC-1584. Tento protokol je modifikací velmi používaného unicastového protokolu OSPF. Pro distribuci multicastu také používá zdrojové stromy, nicméně nepoužívá prune/graft zprávy. Místo toho si routery vyměňují informace o rychlosti (zjednodušeně řečeno, jde o metriky, které by to měly vyjadřovat) a stavu linek vedoucích k příjemcům multicastových skupin. Každý router si tyto informace ukládá do své databáze a z ní si pak sám sestaví pro každou (S, G) skupinu strom. Při každé změně stavu nějaké linky v síti je nutné tyto stromy přepočítat. Vzhledem k tomu, že těchto skupin může být potenciálně velmi mnoho, nároky na routery mohou být v nejhorším případě značné. Snad právě z tohoto důvodu se tento protokol téměř neujal.

Za zmínku stojí ještě dva protokoly, a těmi jsou MSDP (Multicast Source Discovery Protocol) a BGMP (Border Gateway Multicast Protokol). Stojí trochu stranou našeho výčtu, protože se nejedná o běžné protokoly. Úkolem MSDP je umožňovat propojení více PIM-SM domén mezi sebou. Každá si přitom zachová svůj vlastní RP. Jeho definice je uvedena v RFC-3618. Naopak BGMP se více hodí pro propojování SSM domén, tedy hlavně DVMRP, MOSPF a PIM-DM. Nicméně umí i ASM, pouze vyžaduje, aby se jedna doména stala kořenem globálního stromu a ostatní s ní byly asociované. BGMP je popsán v RFC-3913.

V dalším díle se pokusíme podívat blíže na zprávy, které si multicastové protokoly vyměňují, a na protokol IGMP.

Anketa

Čeká podle vás multicast velká budoucnost?

Našli jste v článku chybu?

8. 10. 2004 9:27

bln (neregistrovaný)
jak uz jsem psal u jinych dilu, tyhle clanky jsou opravdu vyborne, mozna by to chtelo aby neco podobneho vychazelo casteji...

8. 10. 2004 8:59

PH (neregistrovaný)
Jen poznamku. Mam pocit, ze davat rovnitko mezi zdrojove stromy a SSM a mezi sdilene stromy a ASM je trochu matouci.
SSM a ASM lze spise aplikovat na klienta, ktery ma zajem prijimat danou skupinu pouze z jednoho konkretniho mista (SSM) nebo ze vsech zdroju (ASM). Pritom i v pripade ASM muze byt vysilani realizovano pres zdrojove stromy.

Jinak diky za tuto serii clanku.
Petr



Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Vitalia.cz: Nestlé vyvinula nový typ „netloustnoucího“ cukru

Nestlé vyvinula nový typ „netloustnoucího“ cukru

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Vitalia.cz: Naučí vás péct kváskový chléb bez lepku i s lepkem

Naučí vás péct kváskový chléb bez lepku i s lepkem

DigiZone.cz: HD programy ČT i v UPC Horizon

HD programy ČT i v UPC Horizon

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Měšec.cz: Vklad na cizí účet je draze zpoplatněn (přehled)

Vklad na cizí účet je draze zpoplatněn (přehled)

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Měšec.cz: Golfové pojištění: kde si jej můžete sjednat?

Golfové pojištění: kde si jej můžete sjednat?

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Měšec.cz: Jak levně odeslat balík přímo z domu?

Jak levně odeslat balík přímo z domu?

Podnikatel.cz: Udávání kvůli EET začalo

Udávání kvůli EET začalo

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Měšec.cz: Platby do zahraničí: pozor na tučné poplatky

Platby do zahraničí: pozor na tučné poplatky

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC