Internet Group Management Protocol
IGMP (Internet Group Management Protokol) je protokol, který rozšiřuje požadavky na implementaci protokolu IP (IPv4) o podporu IP multicastu. Využívá se pro dynamické přihlašování a odhlašování ze skupiny u multicastového routeru ve své lokální síti. IGMP protokol řeší i situaci, kdy jsou v síti připojeny dva a více multicastových routerů, protože pak by mohlo dojít v síti k šíření nadbytečných informací. Routery pracují ve dvou stavech. „dotazovač“, který zasílá dotazy na členství a „posluchač“, který pouze naslouchá a je neaktivní.
Aby se stanice přihlásila do skupiny, musí zaslat přes protokol IGMP zprávu „Membership report“ s IP adresou třídy D. Tato zpráva dorazí k routeru lokální sítě a ten si ji zapíše do tabulky. K odhlášení ze skupiny použije stanice typ zprávy „Leave group“ pokud v tabulce neexistuje žádná stanice, která by chtěla z této adresy informace odebírat, router záznam z tabulky zruší. Zároveň však router zasílá periodický dotaz „General query“ ke stanicím v lokální sítí, jestli je v ní alespoň jedna stanice, která chce ze skupiny informace odebírat. Pokud mu žádná do 10 sekund neodpoví, vymaže z tabulky záznam o skupině. Tento dotaz řeší problém kdy se nějaká stanice, např. před vypnutím, nestihne z odběru skupiny odhlásit.
Pozor, u wifi routerů značky NETIS se IGMP musí vypínat, protože jinak multicast nefunguje vůbec.
Verze IGMP protokolu
IGMP verze 1 a 2
IGMP protokol má tři verze. Protokoly IGMPv1 a IGMPv2 jsou svou strukturou velmi podobné. Obsahují 8 bitů na typ dotazu, dalších 8 bitů je ve verzi 1 nepoužito a ve verzi 2 max. čas na odpověď. Dále v 16 bitech je kontrolní součet hlavičky a posledních 32 bitů je adresa skupiny.
Bity | 0–7 | 8–15 | 16–31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | verze | typ | nevyužito | kontrolní součet | ||||||||||||||||||||||||||||
32 | skupinová adresa |
Bity | 0–7 | 8–15 | 16–31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | typ | max. čas odpovědi | kontrolní součet | |||||||||||||||||||||||||||||
32 | skupinová adresa |
IGMP verze 3
Třetí verze protokolu IGMP má už pozměněnou strukturu. První 8bitové pole obsahuje typ dotazu, dále jedno 8bitové a jedno 16bitové rezervované pole je při vysílání nastaveno na nulu a při přijímání je ignorováno. Na 16 bitech je uvedeno počet záznamů kterých může být až n. Struktura záznamů skupin obsahuje spolu s různými informacemi i adresu skupiny.
Bity | 0–7 | 8–15 | 16–31 | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | typ | rezervované | kontrolní součet | |||||||||||||||||||||||||||||
32 | rezervované | počet záznamů skupin | ||||||||||||||||||||||||||||||
64 | záznam skupiny [1] | |||||||||||||||||||||||||||||||
... | záznam skupiny [n] |