header image
Home arrow Multicast arrow IGMP arrow IGMPv1 - Internet Group Management Protocol v1
IGMPv1 - Internet Group Management Protocol v1 E-mail
Oceny: / 4
KiepskiBardzo dobry 

Protokół IGMPv1 (Internet Group Management Protocol) został opisany w standardzie RFC1112, wersja 0 (v0) była opisana w RFC988. IGMP (Internet Group Management Protocol) jest wykorzystywany przez hosty IP do zgłaszania (raportowania) swojego członkostwa w grupie multicastowej do dowolnego sąsiadującego routera multicastowego. Protokół IGMP (Internet Group Management Protocol) jest protokołem asymetrycznym. IGMP jest integralną częścią IP, zresztą tak jak protokół ICMP (Internet Control Message Protocol), wymagane jest więc, by był zaimplementowany w systemach operacyjnych. Wiadomości protokołu IGMP są enkapsulowane w datagramach protokołu IP, z wartością numeru protokołu IP równym 2. 

IGMPv1 obsługuje dwa typy wiadomości. Pierwszą z nich jest wiadomość "Host Membership Query", której typ jest równy wartości 1 w nagłówku IGMPv1. Drugą wiadomością IGMPv1 jest "Host Membership Report", której typ jest równy wartości 1 w nagłówku IGMPv1.

Wszystkie wiadomości IGMPv1 mają następujący format nagłówka:

Format wiadomości IGMPv1

Wersja: numer wersji IGMP, w tym przypadku 1.

Typ: typ wiadomości IGMP. Wyróżniamy dwa typy wiadomości:

  •      1 - Host Membership Query
  •      2 - Host Membership Report

NW: niewykorzystywane, ignorowane pole z bitami ustawionymi na 0.

Suma kontrolna: suma kontrolna wiadomości IGMP.

Adres Grupy: pole adresu grupy multicastowej. W wiadomości Host Membership Query pole jest zerowane podczas wysyłania i ignorowane podczas odbierania. W wiadomości Host Membership Report pole wskazuje adres grupowy IP (multicastowy) grupy, do której host należy.


Routeru multicastowe wysyłają wiadomości Host Membership Query (inaczej Query, Zapytania) by odkryć, które grupy multicastowe mają członków w przyległej mu sieci LAN. Zapytania są adresowane do wszystkich hostów grup multicastowych pod adres multicastowy IP 224.0.0.1, z TTL ustawionym w datagramie IP na 1 (czyli tylko propagują się w bezpośrednio przyłączonej sieci). Hosty odpowiadają na Query, wysyłąjąc Host Membership Report (inaczej Report, Raport), raportując każdą grupę multicastową, do której należą od strony interfejsu sieciowego, z którego dostały Query od routera.

Fakt wysłania Query do wszystkich hostów grup multicastowych, mógłby powodować zalew wiadomościami IGMP Report routera, a także uszczuplenie pasma w sieci przez taki "sztorm" wiadomości. Dlatego też, zastosowano dwie techniki przeciwdziałające temu zdarzeniu.

Pierwszą z nich jest "Report delay" (odroczenie wysłania wiadomości Report), co powoduje, że kiedy hosty otrzymają wiadomość Query to dla każdej grupy mają ustawiony inny czas "Report delay", oczywiście dobrany losowo między 0 a 10 sekund (w wyliczeniu posługuje się host swoim adresem IP wykorzystywanym przez jego generator czasu losowego). Kiedy ten czas upłynie, generowany jest Report dla odpowiedniej grupy multicastowej.

Drugą techniką jest wysłanie Report pod adres przeznaczenia IP równy adresowi IP grupy multicastowej, do której dany host raportuje swoją przynależność, z TTL=1, w związku z czym wszystkie hosty należące do tej samej grupy mogą podsłuchiwać Report. Jeśli host dostanie inny Report od hosta w LAN, to zatrzymuje swój licznik "Report delay" dla tej grupy i przestaje generować dla niej Report. Korzysta się tu z faktu, że router multicastowy nie musi znać wszystkich członków danej grupy multicastowej IP.

Oczywiście, jeśli host otrzyma Query i ma już wystartowany licznik "Report delay" to go nie resetuje, tylko ten czas dalej jest zliczany. Również hosty nie wysyłają Report dla grupy multicastowej 224.0.0.1.

Jeśli host podłączy się do nowej grupy multicastowej ma obowiązek wysłać natychmiastowy Report do tej grupy, bez czekania na Query od routera multicastowego (nawet powtarzając raz bądź dwa razy po odczekaniu krótkiego czasu dla zapewnienia niezawodności).

Router multicastowy w momencie uruchomienia wysyła w krótkim czasie kilka zapytań Query, po to by zbudować sobie szybko członkostwo hostów w grupach multicastowych, by móc do nich wysłać multicast. Następnie wysyła Query rzadziej np. co 1 min.

Nowsze wersje protokołu IGMP to:

IGMPv2 opisany został w 1997 w RFC2236.
IGMPv3 opisany został w 2002 w RFC3376.

< Poprzedni