IGMP (Internet Group Management Protocol)

ITpedia

Protokół IGMP lub IGMPv2 definiuje zasady przyłączania i odłączania komputerów od internetowych grup adresowych, czyli grup multicastowych. Uczestnictwo w grupie musi być potwierdzone, ale jest dynamiczne – do wstąpienia lub rezygnacji wystarczy, ażeby dowolny API rozesłał stosowną wiadomość. Listy adresatów, którzy zarejestrowali się w określonej grupie, przechowują rutery. Dzięki tym listom pakiety rozgłaszania grupowego będą przesłane tylko pod odpowiednimi adresami.

Do grupy wchodzi w istocie proces z określonym interfejsem komputera. Proces jest tu programem uruchomionym przez system operacyjny. Do określonej grupy proces może wejść z różnych interfejsów. Dlatego identyfikatorem komputera w grupie jest adres grupowy oraz interfejs. Komputer musi utrzymywać tablicę wszystkich grup, do których został przypisany przynajmniej przez jeden proces.

IGMP został stworzony dla zapewnienia skuteczności w optymalnym wykorzystywaniu pasma (zasobów sieciowych). W większości przypadków ruch IGMP polega na okresowym wysyłaniu komunikatów przez interfejs zarządzający wielopunktem i odbieraniu jednej odpowiedzi – membership report – od dowolnego komputera z grupy urządzeń w podsieci. Jeśli ruter nie otrzyma żadnej odpowiedzi, to odłączy się od grupy. Wiadomości IGMP są przesyłane w datagramach IP. Pole Protokół datagramu IPv4 zawiera wtedy liczbę 2. Długość wiadomości IGMPv1 jest stała – 8 bajtów. Formaty wiadomości IGMPv1 i v2 widnieją na rysunku.

  1. Type (v1) = 1 dla zapytań kierowanych do ruterów grupowych;
  2. Type (v1) = 2 dla odpowiedzi-raportów kierowanych do komputerów;
  3. Type (v2) = 0x11 w zapytaniach o przynależność (Membership Query) podczas komunikacji między ruterem i komputerem;
  4. Type (v2) = 0x16 w raportach o przynależności (Membership Report) podczas komunikacji między ruterem i komputerem;
  5. Type (v2) = 0x17 przy opuszczaniu grupy;
  6. Type (v2) = 0x12 dla wstecznej kompatybilności z IGMPv1;
  7. W zapytaniach w pole adresu grupowego wpisuje się zawsze zero;
  8. Wiele adresów grupowych jest zarezerwowanych dla podsieci, ruterów w podsieci, ruterów RIP2, serwisu sieciowego NTP, audio- i wideokonferencji itp.

IGMP ma 4 wersje: v0 (już bez statusu) – RFC 988, v1 – RFC 1112 Appendix I, v2 – RFC 2236, v3 - RFC3376. Wersja druga uzupełnia pierwszą, która zastąpiła zerową. Formaty wiadomości IGMPv1 i 2 różnią się w szczegółach, ale jest zachowana wsteczna kompatybilność. Pole Maks. czas odpowiedzi MRT (Max. Response Time) nie było używane w v1. W IGMPv2 ma ono znaczenie tylko dla wiadomości Membership Query – jest to czas zadawany liczbą taktów 100 ms, którego urządzenie wysyłające raport nie może przekroczyć. W wersji pierwszej wiadomość rozpoczynała się 4-bitowym polem wersji, po którym występował również 4-bitowy Typ IGMP. Teraz (v2) nie ma już pola wersji, a pole Typ jest ośmiobitowe. Ponadto długość wiadomości IGMPv2 może przekraczać 8 bajtów.

Na IGMP opiera się również inicjowanie sesji grupowej RSVP. W trybie unicast do protokołu IGMP dochodzi jeszcze protokół PIM (Protocol Independent Multicast). Gdyby pakiet typu multicast trafił do zwykłego przełącznika warstwy drugiej, to byłby powielony na jego wszystkie porty i rozesłany (niepotrzebnie) do każdego użytkownika w domenie. Funkcja o nazwie IGMP Snooping, wbudowana do przełącznika, zapobiega takim skutkom. Przełącznik może wtedy śledzić pakiety rejestracji stacji i na ich podstawie kierować ruch rozgłoszeniowy do portów, na których stacje zostały zarejestrowane. Pozostałe porty zostaną wyłączone.

-
-