multicast

Úvod

S rozvojem počítačových sítí a popularizací osobních počítačů mohou lidé snadno plavat na internetu, provádět síťovou komunikaci nebo získávat potřebné informační zdroje. Lidé navíc stále více spoléhají na počítačové sítě. Většina společností vytvořila pokročilé sítě pro připojení zaměstnanců k jejich počítačům a pracovním stanicím. Někdy lze důležité informace v naší práci získat pouze prostřednictvím internetu. Tyto informace mohou být v privátní síti společnosti nebo na internetu.

Internet je veřejná síť, která spojuje univerzity, společnosti, neziskové organizace, jednotlivce a vládní agentury po celém světě. S rozvojem širokopásmového připojení se nyní objevující se internetové aplikace, jako je distanční vzdělávání, videokonference a online hry, stávají stále populárnějšími a někdy i nezbytnými. Tyto aplikace zahrnují komunikaci typu point-to-point nebo multipoint-to-multipoint, která se velmi liší od tradičního unicast nebo broadcast.

V roce 1988 navrhl Deering koncept IP multicast. Od té doby se technologii vícesměrového vysílání IP dostalo široké pozornosti. Multicast je mezi komunikací unicast a komunikací broadcast. Může odesílat datové pakety odeslané odesílatelem skupině přijímačů rozptýlených v různých podsítích.

Základním konceptem multicastu je „skupina“. Skupina vícesměrového vysílání je skupina příjemců, kteří chtějí přijímat konkrétní datový tok. Tato skupina nemá žádné fyzické ani geografické hranice: hostitelé ve skupině mohou být umístěni kdekoli na internetu nebo v privátní síti. Každý uzel ve skupině vícesměrového vysílání se nazývá člen skupiny vícesměrového vysílání.

V mnoha aplikacích multicastu lze dosáhnout unicastu, ale s nárůstem přijímačů se počet datových paketů, které je třeba odeslat, lineárně zvyšuje. Pro jeden přijímač je třeba odeslat stejný datový paket. Provoz se tímto způsobem exponenciálně zvýší, což také zabere velkou šířku pásma sítě a někdy způsobí zahlcení sítě. Ale datový paket IP multicastové komunikace je odeslán pouze jednou. Router automaticky přepošle každému přijímači umístěnému v jiném segmentu sítě, což může být nejmenší počet kopií zpráv přenášených v síti. Multicast je tedy velmi potřebný.

Klíčovou vlastností multicastového komunikačního modelu je poskytnutí nepřímo identifikované multicastové skupiny, ve které ani odesílatel, ani příjemce nemusí znát konkrétní situaci druhé strany. Odesílatel potřebuje pouze posílat pakety na multicastovou adresu a příjemce pouze sdělit síti, že chce přijímat pakety odeslané na tuto adresu.

Chcete-li odesílat uživatelská data z jednoho terminálu do druhého, je třeba nejprve určit přenosovou cestu. Různé způsoby komunikace mají různé způsoby, jak určit trasu. V dnešní době existují v síti především tyto způsoby komunikace:

  • Unicast (unicast: pointtopoint), metoda komunikace z bodu do bodu;

  • Multicast (multicast: pointtOmultipoint), způsob komunikace mezi dvěma body;

  • Concast (concast: multipointtopoint), metoda komunikace z bodu do bodu;

  • MultipointtOmultipoint, metoda komunikace mezi více body a více body, podpora multicastingu;

  • Broadcast (broadcast: pointtoallpoint), ukažte na komunikační režim všech uzlů.

Obecně platí, že služby, které vyžadují služby vícesměrového vysílání, mají vysokou šířku pásma a požadavky v reálném čase, zahrnují více uživatelů a zabírají více zdrojů. Proto je nutné multicastové směrování optimalizovat. Algoritmus směrování vícesměrového vysílání má najít optimální strom vícesměrového vysílání. Ideální a efektivní směrovací algoritmus navrhne strom, který pokryje pouze členy skupiny multicast, a bude odrážet následující charakteristiky: strom je dynamicky aktualizován se změnami členů skupiny; je třeba uložit minimální uzel Množství informací o stavu; zabraňuje koncentraci provozu na spojích a uzlech; optimalizuje směrování podle nákladové funkce.

Síťové multicast

Technologie vícesměrového vysílání IP (také známá jako vícesměrové vysílání nebo vícesměrové vysílání) je technologie, která umožňuje jednomu nebo více hostitelům (zdrojům vícesměrového vysílání) posílat jednu datovou síťovou technologii TCP/IP, která se sbalí více hostitelům (jednou a současně). Multicast jako komunikace typu point-to-multipoint je jedním z efektivních způsobů, jak ušetřit šířku pásma sítě. Při aplikaci síťového audio/video vysílání, kdy signál jednoho uzlu musí být přenášen do více uzlů, ať už se jedná o opakovanou komunikaci z bodu do bodu nebo vysílání, dojde k vážnému plýtvání šířkou pásma sítě. Pouze multicast je nejlepší volbou. Vícesměrové vysílání umožňuje jednomu nebo více zdrojům vícesměrového vysílání odesílat datové pakety pouze určité skupině vícesměrového vysílání a pouze hostitelé, kteří se připojí ke skupině vícesměrového vysílání, mohou přijímat datové pakety. V současné době je technologie IP multicast široce používána v síťovém audio/video vysílání, AOD/VOD, síťových videokonferencích, multimediálním distančním vzdělávání, technologii „push“ (jako jsou kurzy akcií atd.) a hrách ve virtuální realitě.

Některé aplikace mají takový požadavek: některé distribuované procesy musí spolupracovat ve skupině a procesy ve skupině obvykle posílají zprávy všem ostatním členům. To znamená, že existuje taková metoda, která může posílat zprávy některým jasně definovaným skupinám. Počet členů těchto skupin je sice velký, ale ve srovnání s velikostí celé sítě je malý. Odeslání zprávy takové skupině se nazývá multicast nebo zkráceně multicast.

1. IP adresa vícesměrového vysílání a skupina vícesměrového vysílání

Komunikace vícesměrového vysílání IP musí záviset na adrese vícesměrového vysílání IP. V IPv4 je to IP adresa třídy D v rozsahu od 224.0.0.0 do 239.255.255.255 a je rozdělena do tří typů: lokální linková multicastová adresa, rezervovaná multicastová adresa a multicastová adresa řídící autority. Mezi nimi je rozsah adres vícesměrového vysílání místní linky 224.0.0.0~224.0.0.255, který je vyhrazen pro směrovací protokoly a další účely. Směrovač nepřeposílá IP pakety patřící do tohoto rozsahu; vyhrazená adresa vícesměrového vysílání je 224.0.1.0~ 238.255.255.255, kterou lze použít v globálním měřítku (jako je internet) nebo síťovými protokoly; adresa vícesměrového vysílání řídícího orgánu je 239.0.0.0~239.255.255.255, kterou lze použít v rámci organizace. Je podobná soukromé IP adrese a nelze ji použít na internetu. Může být více omezující. Rozsah vysílání.

Všichni hostitelé, kteří používají stejnou IP adresu vícesměrového vysílání pro příjem paketů vícesměrového vysílání, tvoří skupinu hostitelů, známou také jako skupina vícesměrového vysílání. Členství ve skupině multicast se kdykoli změní. Hostitel se může ke skupině multicast kdykoli připojit nebo ji opustit. Počet členů multicastové skupiny a geografické umístění také nejsou omezeny. Hostitel může také patřit do několika skupin vícesměrového vysílání. . Kromě toho mohou hostitelé, kteří nepatří do určité skupiny vícesměrového vysílání, také odesílat datové pakety do skupiny vícesměrového vysílání.

2. Hardwarová podpora technologie IP multicast

Pro realizaci IP multicastové komunikace musí routery, rozbočovače, přepínače a hostitelé mezi multicastovým zdrojem a přijímačem podporovat IP multicast. V současné době je technologie IP multicast široce podporována výrobci hardwaru a softwaru.

(1) Hostitel

Platformy, které podporují IP multicastovou komunikaci, zahrnují WindowsCE2.1, Windows95, Windows98, WindowsNT4 a Windows2000 atd. Hostitelé s těmito operačními systémy mohou provádět IP multicastovou komunikaci. Téměř všechny nově vyráběné síťové karty navíc poskytují podporu pro IP multicast.

(2) Rozbočovače a přepínače

V současné době většina rozbočovačů a přepínačů jednoduše zachází s daty vícesměrového vysílání jako s vysíláním k odesílání a přijímání, ale některé střední a špičkové přepínače poskytují více adres IP. Podpora vysílání. Například funkci filtrování vícesměrového vysílání 802.1p nebo IGMP lze na přepínači 3COMSuperStack3Swith3300 povolit, aby předával pakety vícesměrového vysílání pouze pro porty, které detekovaly pakety IGMP.

(3) Směrovač

Komunikace vícesměrového vysílání vyžaduje, aby všechny směrovače mezi zdrojovým uzlem vícesměrového vysílání a cílovým uzlem poskytovaly podporu protokolu IGMP (Internet Group Management Protocol), protokolu směrování vícesměrového vysílání (jako je PIM, DVMRP atd.).

Když se hostitel chce připojit ke skupině vícesměrového vysílání, odešle zprávu IGMP „Hlášení o členství hostitele“, aby o tom informoval směrovač vícesměrového vysílání. Když multicastový router přijme data odeslaná této multicastové skupině, předá je všem multicastovým hostitelům. Směrovač vícesměrového vysílání bude také pravidelně odesílat zprávu IGMP „dotaz na člena hostitele“ pro dotaz na hostitele vícesměrového vysílání z podsítě. Pokud zjistí, že skupina vícesměrového vysílání nemá žádné členy, přestane předávat data skupiny vícesměrového vysílání. Kromě toho, když hostitel, který podporuje IGMPv2 (jako je počítač se systémem Windows 98/2000), opustí skupinu vícesměrového vysílání, odešle také směrovači zprávu IGMP o „opuštění skupiny“, která směrovači upozorní, aby přestal předávat data skupiny vícesměrového vysílání. Ale pouze v případě, že všichni hostitelé v podsíti ukončí skupinu vícesměrového vysílání, router přestane předávat data skupiny vícesměrového vysílání do podsítě.

Pomocí směrovacího protokolu vícesměrového vysílání může směrovač vytvořit směrovací tabulku vícesměrového vysílání ze zdrojového uzlu výběrového vysílání do všech cílových uzlů, aby bylo možné realizovat předávání paketů vícesměrových dat mezi podsítěmi. Například PIM (Protocol Independent Multicast) je vícesměrový směrovací protokol, který má dva typy: sparse-mode a hustý-mode. Vezmeme-li jako příklad router Cisco2621, základní nastavení pro aktivaci funkce předávání vícesměrového vysílání IP jsou následující:

c2621(config)#ipmulticast-routing umožňuje IP multicast, aby se router stal multicast routerem

c2621(config)#intf0/0Nakonfigurujte port Fast Ethernet 0

c2621(config-if)#ippimdense-mode (nebo sparse-mode) spusťte PIM a současně aktivujte protokol IGMP

c2621(config-if)#intf0/1 Konfigurace portu Fast Ethernet 1

c2621(config-if)#ippimdense-mode (nebo sparse-mode)

Metoda programování

V praktických aplikacích programátoři obvykle potřebují sami sestavit nízkoúrovňové síťové aplikace, aby realizovali nízkoúrovňovou komunikaci na internetu, jako je specifická realizace funkce IP multicastové komunikace. Programování nízkoúrovňových síťových aplikací obvykle vyžaduje pomoc programovacích rozhraní síťové datové komunikace a síťová programovací rozhraní poskytovaná v různých operačních systémech se liší. Například síťové programovací rozhraní v prostředí Microsoft Windows je Windows Socket (WindowsSocket). , zkráceně Winsock).

Winsock poskytuje programovací rozhraní pod různými komunikačními protokoly včetně TCP/IP a IPX. Různé verze Windows podporují různé verze Winsock. Dřívější verze, jako je Windows 95, podporují pouze programování pod Winsock 1.1 (16-bit) (můžete nainstalovat související softwarové balíčky pro podporu Winsock 2.0), zatímco Windows 98 a Windows NT 4.0, Windows2000 přímo podporuje Winsock2.0 (32-bit). Winsock 2.0 je rozšířením Winsock 1.1. Kromě toho, že je kompatibilní s rozhraním Winsock 1.1 API, definuje také sadu rozhraní API nezávislých na protokolu, která mohou podporovat vícesměrové vysílání IP.

Obecné kroky použití Winsock2.0 k realizaci IP multicast jsou následující:

1. Inicializujte prostředky Winsock

Před použitím Winsock musíte zavolat funkci WSAStartup() k inicializaci WindowsSocketsDLL. Umožňuje aplikaci nebo knihovně DLL určit verzi požadovanou rozhraním WindowsSocketsAPI.

2. Vytvořte zásuvku

Voláním funkce WSASocket() vytvoříte soket pomocí protokolu UDP, což je počáteční soket pro připojení ke skupině vícesměrového vysílání, a později jsou data odesílána a přijímána v tomto soketu při připojení. Pro IP multicastovou komunikaci lze parametr dwFlags nastavit na bitový součet WSA_FLAG_MULTIPOINT_C_LEAF, WSA_FLAG_MULTIPOINT_D_LEAF a WSA_FLAG_OVERLAPPED, což znamená, že IP multicastová komunikace je na úrovni řízení a dat „bez kořenů“ a lze přidat pouze koncové uzly. kterémukoli z nich. skupina multicast a data odeslaná z koncového uzlu budou přenesena do každého koncového uzlu (včetně něj samotného); vytvořený soket má překrývající se vlastnosti.

3. Nastavte možnosti zásuvky

Voláním funkce setsockopt() nastavte volbu SO_REUSEADDR pro soket, aby byl soket svázán s adresou, která se již používá.

4. Svažte zásuvku

Zavolejte funkci bind() pro svázání soketu, abyste přidružili vytvořený soket k místní adrese a místnímu portu. Pro multicastovou komunikaci se obvykle používá stejný port pro odesílání a přijímání dat.

5. Nastavte režim multicast zásuvky

Kód příkazu SIO_MULTICAST_LOOP funkce WSAIoctl() se používá k povolení nebo zakázání toho, zda komunikační provoz odesílaný během multicastové komunikace může být také přijímán na stejném soketu (tj. multicast return). Stojí za zmínku, že ve Windows95/98/NT4 je výchozím nastavením povolení multicastového návratu, ale nemůžete nastavit zákaz, jinak dojde k chybě; pouze ve Windows 2000 a výše můžete nastavit povolení/zakázaní návratu multicastu.

Kód příkazu SIO_MULTICAST_SCOPE funkce WSAIoctl() se používá k nastavení rozsahu šíření vícesměrového vysílání, tj. doby trvání, TTL. Kdykoli multicastový router předá multicastový datový paket, hodnota TTL v datovém paketu se sníží o 1. Pokud se TTL datového paketu sníží na 0, router datový paket zahodí. Jaká je hodnota TTL, přes kolik multicastových routerů mohou multicastová data procházet maximálně. Pokud je například hodnota TTL 0, může být multicast šířen pouze mezi více sokety místního hostitele, ale nemůže být šířen do "síťového kabelu"; pokud je hodnota TTL 1 (výchozí hodnota), multicastová data narazí na první A router bude jím „neúprosně“ vyřazen a nebude mu umožněn přenos mimo lokální síť, tedy pouze členové multicastové skupiny v stejná síť může přijímat multicastová data.

V c# je obecná instance proxy (odkazující na proxy může volat pouze jednu metodu) standardně nastavena na objekt třídy Delegát, takže klíčové slovo delegát se obvykle používá k definování proxy a operátor new se používá k vytvoření proxy. instance , A pak použijte metody a vlastnosti třídy Delegát ke správě instance proxy. Třída MulticastDelegate se používá k podpoře více agentů a seznam volání může mít agenty s více metodami.

Více agentů označuje skupinu agentů tvořících množinu. Objekt třídy MuticastDelegate spravuje sadu agentů a používá tuto sadu agentů ke spouštění více metod. Tato funkce se nazývá multicast.

Související články
HORNÍ