Routing multicast – protokoły sygnalizacyjne IGMP

0

Efektywność transmisji rozgłoszeniowej w dużej mierze zależy od dostarczania danych tylko do grupy odbiorców, którzy wcześniej zgłosili żądanie dołączenia do danej grupy. W celu zapewnienia możliwości wysłania takiego żądania, zdefiniowano protokół IGMP, działający na łączu pomiędzy urządzeniem odbiorczym, a najbliższym routerem (tzw. first hop router).

Protokół ten nosi nazwę IGMP (Internet Group Management Protocol) i we współczesnych sieciach IP występuje w trzech odmianach: IGMPv1, IGMPv2 oraz IGMPv3. Głównym zadaniem IGMP jest przesłanie do routera, do którego odbiorca jest bezpośrednio podłączony, informacji z żądaniem dołączenia do grupy. Zasadnicze różnice pomiędzy poszczególnymi wersjami protokołu IGMP polegają głównie na usprawnieniu komunikacji pomiędzy hostem i routerem oraz zwiększeniu funkcjonalności przy jednoczesnym zachowaniu kompatybilności wstecz (backward compatibility). Wiadomości protokołu IGMP wysyłane są jako pakiety IP z polem TTL (time to live) ustawionym na 1.

Protokół IGMPv1 używa dwóch typów wiadomości:

  • Host Membership Query (HMQ),
  • Host Membership Report (HMR).

Urządzenie odbiorcze, w celu wysłania żądania dołączenia do grupy multicast wysyła wiadomość HMR, podając adres IP klasy D identyfikujący tę grupę. Po odebraniu wiadomości HMR router okresowo (co 125 sekund) wysyła pytania Host Membership Query. Wiadomości te służą potwierdzeniu, czy do danego interfejsu dołączeni są nadal odbiorcy zainteresowani odbieraniem informacji przeznaczonej dla grupy multicast. Członek grupy, który odbierze takie pytanie, odpowiada wiadomością HMR. Wiadomość HMQ nie zawiera adresu grupy multicast, dlatego odbiorca, wysyłając odpowiedź HMR, ponownie ustawia w niej adres grupy, do której należy.

Główną wadą protokołu IGMPv1 jest brak sygnalizacji odłączenia odbiorcy od grupy. Router zaprzestaje wysyłania pakietów kierowanych do danej grupy w kierunku odbiorcy dopiero po upłynięciu czasu GMI (Group Membership Interval), który domyślnie wynosi 260 sekund. Efektem tego jest niepotrzebne zajmowanie pasma na interfejsie, gdy nie ma na nim dołączonych odbiorców.

Problem ten rozwiązano w kolejnej wersji protokołu. Protokół IGMPv2 (RFC 2236) używa czterech typów wiadomości:

  • Membership Query (MQ),
  • Version 2 Membership Report (MR),
  • Leave Group (LG),
  • Version 1 Membership Report (w celu realizacji kompatybilności z protokołem IGMPv1).

Istotną zmianą wprowadzoną w tej wersji protokołu jest dodanie wiadomości Leave Group, wysyłanej przez odbiorcę, który zamierza odłączyć się od grupy. Po otrzymaniu tej wiadomości, router wysyła pytanie (Membership Query), czy do danego interfejsu dołączeni są jeszcze inni odbiorcy zainteresowani odbieraniem danych przeznaczonych dla tej grupy. Jeżeli w odpowiedzi nie otrzyma wiadomości Membership Report, to przestaje wysyłać dane do grupy multicast na danym interfejsie.

Z kolei do protokołu IGMPv3 dodano możliwość sygnalizowania przez odbiorcę nie tylko grupy, do której chce się dołączyć, ale również określenia źródła, z którego dane wysyłane są do tej grupy. Protokół IGMPv3 ma ponadto możliwość określenia źródeł, z których odbiorca nie powinien otrzymywać danych. Specyfikacja protokołu definiuje trzy typy zapytań wysyłanych w wiadomościach Query:

  • General Query – wysyłana przez router w celu określenia pełnego stanu odbiorców grup multicast na danym interfejsie,
  • Group-Specific Query – wysyłana przez router w celu określenia stanu odbiorców dla pojedynczej grupy multicast,
  • Group-and-Source-Specific Query – wysyłana przez router w celu określenia stanu odbiorców dla pojedynczej grupy multicast, do których pakiety wysyłane są z określonych źródeł (lub jednego źródła).

Wiadomości General Query wysyłane są na adres 224.0.0.1, natomiast pozostałe na adres grupy, której dotyczą. Wiadomości Membership Query Message (MQM) wysyłane są w celu sprawdzenia, czy na dołączonych do routera interfejsach są odbiorcy transmisji rozsiewczej przeznaczonej dla danej grupy. Wiadomości Membership Report wysyłane są w celu poinformowania routera o grupach i źródłach, od których mają być odbierane pakiety. Wiadomości MR wysyłane są na adres 224.0.0.22, czyli do wszystkich urządzeń obsługujących protokół IGMPv3.

Autor: Jacek Kajdasz, www.multicast.pl

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ