Windows - Programatic General Multicast

A Programatic General Multicast (PGM) technológia egy megbízható multicast protokoll, ilyen minőségben az egyetlen, ami a Windows 2003-ban elérhető. A protokoll a szállítási rétegben "dolgozik" a TCP-től és UDP-től függetlenül, az IP réteg felett. Cikkünkben bemutatjuk a technológiát.
PGM protokoll
A Pragmatic General Multicast (PGM) egy útválasztót segítő típusa a megbízható multicast protokollnak, amelyet az RFC 3208-ben definiáltak. PGM-et használó fogadók NACK csomagokat használnak az elveszett csomagok újraküldésének kéréséhez. A PGM-et támogató útválasztók egy hálózatban definiálnak egy logikai PGM topológiát és képesek megkönnyíteni az elveszett csomagok helyreállítását, elküldve őket a küldő helyett. A PGM topológia a fizikai IP hálózati topológia felett terül el. PGM útválasztók definiálnak egy csomó PGM ugrást a küldő és a fogadó között. Habár az RFC 3208-ban definiálva van, PGM útválasztók nem szükségesek. A PGM hálózati topológia egy egyszerű logikai ugrásból állhat a küldő és a fogadó között.
A PGM nem nyújtja mindazt a képességet, amit a TCP nyújt multicast adatfolyam esetében. Például a PGM nem biztosít küldő vagy fogadó oldali folyamatkontrollt, folyamatablakot, vagy torlódáskezelést. A PGM alapvető megbízhatóságot nyújt az őt támogató alkalmazásokban.
A PGM egy szállítási rétegben megvalósított multicast protokoll, amely direktben fut az IP felett, használva a 113-as protokollszámot. Nem használja a TCP-t vagy UDP-t saját üzeneteire, vagy multicast adattovábbításra. A PGM az egyedüli megbízható multicast protokoll, amit a Windows 2003 szerver család támogat.
PGM csomagok
Az alábbi típusú PGM csomagok szerepelnek az RFC 3208-ban:
  • Source Path Messages (SPM)
  • Original data (ODATA)
  • Retransmitted data (RDATA)
  • Negative Acknowledgement (NAK)
  • NAK Confirmation (NCF)
Az SPM, NCF, és RDATA csomagok tartalmazzák az IP Router Alert opciót (IP útválasztó értesítés lehetősége). Kizárólag ODATA és RDATA csomagok tartalmazhatnak magasabb szintű protokoll adatokat.
Source Path Message (SPM) csomagok
SPM csomagokat periodikusan küld a gép, hogy PGM topológia-leíró információt nyújtson a PGM útválasztóknak a hálózatban. Egy SPM tartalmaz egy átviteli ablakot és az előző ugrás PGM útválasztójának címét. Az átviteli ablak az újraküldés számára elérhető adat. Az előző ugrás PGM útválasztójának címe szükséges az adat-újraküldés kéréséhez.
Original Data (ODATA) és Retransmitted Data (RDATA) csomagok
ODATA csomagok multicast adatfolyamban tartalmaznak adatot, ahogy eredetileg elküldésre kerültek. Mivel a PGM valódi multicast átvitelt nyújt, az ODATA fejléc több sorból áll, hasonlóan a TCP fejléchez, és az alábbiakat tartalmazza:
  • Forrás port. Egy 16-bites mező, amely azonosítja a küldő folyamatot.
  • Cél port. Egy 16-bites mező, amely azonosítja a fogadó folyamatot.
  • Ellenőrzőösszeg. Egy 16-bites mező, amely ellenőrző bitszintű csomag integritásáért felel az ODATA fejlécnek és a felsőbb szintű protokolladatnak (PDU). A TCP vagy UDP ellenőrző összegekkel szemben, a PGM checksum nem egyesíti ezt az IP fejlécből származó mezővel a kalkulációkor.
  • Adatcsomag sorrendi szám. Egy 32-bites mező, amely a küldő által hozzáadott adatcsomag sorrendi számát tartalmazza. A fogadó ennek segítségével állapítja meg a hiányzó adatokat a multicast adatfolyamból.
Az RDATA csomagokat az újraküldött multicast adatokhoz használjuk. Ezek a csomagok ugyanazt a fejléc és mező adatokat tartalmazzák, mint az ODATA. Egy Type mezőben különböznek mindössze a fejlécükben. RDATA csomag jöhet a küldőtől, vagy egy helyi ismétlőtől (DLR). Egy DLR képes újraküldeni a csomagot a multicast adatfolyamban, a küldő nevében.
Negative Acknowledgement (NAK) és NAK Confirmation (NCF) csomagok
Egy fogadó küld egy NAK csomagot a legközelebbi ugrásra lévő PGM útválasztóhoz, hogy kérjen egy elveszett csomagot, amelyet a sorozatszáma azonosít. A PGM útválasztó megerősíti a kézhezvételét a NAK-nak, küldve egy NCF csomagot a NAK küldőjének. A PGM útválasztó ezután elküldi a NAK csomagot a következő legközelebbi PGM útválasztónak. Ez a PGM útválasztó válaszol egy NCF csomaggal. Ez a NAK és NCF csomagcsere folytatódik PGM ugrásról PGM ugrásra, egészen akár a küldőig, vagy egy ismétlőig.
A kulcs mező a NAK és NCF fejlécben a következő:
  • Requested Sequence Number – vagyis igényelt sorrendi szám.
Egy NAK csomag ez a sorrendi számot adja meg, amely az újraküldendő adatot azonosítja. Az NCF csomag esetében ez az a szám, amit megerősít.
  • Source Network Layer Address – forrás hálózati réteg cím
Ez az unicast IP címe a hiányzó adat eredeti küldőjének.
Ahhoz, hogy használni tudjuk a PGM-et egy Windows 2003 szerveren, fel kell vennünk a Reliable Multicast Protocol komponens, és készítenünk kell PGM-et használó alkalmazásokat.
A Reliable Multicast Protocol felvétele
  • Kattintsunk a Start gombra, majd a Control Panel-re, és duplán kattintsunk a Network Connections-re.
  • Ezután kattintsunk jobb egérgombbal arra a kapcsolatra, amelyre fel kívánjuk venni a protokollt és válasszuk a Properties-t.
  • Kattintsunk az Install-ra a dialógusablakban.
  • Kattintsunk duplán a Protocol-ra.
  • A Network Protocol listában, kattintsunk a Reliable Multicast Protocol-ra, majd nyomjunk OK-t.
  • Mentsük el a beállításokat és lépjünk ki.
Ezután a protokoll láthatóvá válik, de nincs konfigurálható tulajdonsága. A protokoll meghajtó programja a Rmcast.sys és a systemroot\System32\Drivers mappában található.