Który protokół wykorzystują komputery do powiadamiania rutera o chęci przyłączenia się lub odejścia z określonej grupy rozgłoszeniowej?
IGMP, czyli Internet Group Management Protocol, jest właściwym protokołem do zgłaszania ruterowi, że host chce dołączyć do określonej grupy multicastowej albo z niej zrezygnować. W pytaniu użyto określenia „grupa rozgłoszeniowa”, ale w praktyce chodzi o ruch multicast, czyli wysyłanie danych do wybranej grupy odbiorców, a nie do wszystkich urządzeń w sieci jak przy broadcast. IGMP działa w IPv4 i jest opisany m.in. w standardach RFC, np. IGMPv2 w RFC 2236 oraz IGMPv3 w RFC 3376. Host wysyła komunikaty Membership Report, gdy chce odbierać ruch dla danej grupy, a ruter multicastowy może wysyłać zapytania, żeby sprawdzić, czy w danym segmencie LAN są jeszcze aktywni odbiorcy. Z mojego doświadczenia to jeden z tych protokołów, których nie widać na co dzień, ale jak zabraknie poprawnej obsługi IGMP, to transmisje IPTV, wideokonferencje, streaming firmowy albo dystrybucja obrazu w sieci potrafią działać bardzo dziwnie. W przełącznikach często stosuje się IGMP snooping, czyli podsłuchiwanie komunikatów IGMP, aby nie zalewać całego VLAN-u ruchem multicastowym. To jest dobra praktyka, bo ogranicza niepotrzebny ruch, poprawia wydajność i zmniejsza ryzyko przeciążenia sieci lokalnej.
W tym pytaniu łatwo pomylić kilka protokołów, bo wszystkie są związane z siecią IP, ale pełnią zupełnie inne funkcje. ARP służy do ustalania adresu MAC na podstawie adresu IPv4 w sieci lokalnej. Gdy komputer zna adres IP bramy domyślnej, ale nie zna jej adresu fizycznego, używa ARP, żeby ten adres odszukać. To nie ma związku z dołączaniem do grup multicastowych, tylko z podstawową komunikacją w obrębie jednej domeny rozgłoszeniowej Ethernet. ICMP też bywa mylący, bo jest częścią stosu IP i kojarzy się z komunikatami sieciowymi. Jednak ICMP służy głównie do diagnostyki i informowania o błędach, na przykład przy poleceniu ping albo komunikatach typu destination unreachable. Nie zarządza członkostwem w grupach multicast. SNMP natomiast jest protokołem administracyjnym do monitorowania i zarządzania urządzeniami sieciowymi, takimi jak rutery, przełączniki, drukarki czy serwery. Dzięki SNMP można odczytywać liczniki interfejsów, obciążenie procesora urządzenia albo stan portów, ale host nie używa go do zgłoszenia „chcę odbierać strumień multicast”. Typowy błąd myślowy polega na tym, że skoro SNMP lub ICMP „powiadamiają” o czymś w sieci, to mogą pasować do treści pytania. W praktyce jednak członkostwo w grupach multicast IPv4 obsługuje IGMP. To właśnie IGMP pozwala ruterom dowiedzieć się, czy w danym segmencie sieci są odbiorcy danej grupy, a przełącznikom z IGMP snoopingiem ograniczyć rozsyłanie ruchu tylko tam, gdzie faktycznie jest potrzebny. Moim zdaniem warto to zapamiętać przez skojarzenie: IGMP = Internet Group Management Protocol, czyli zarządzanie grupami, a nie adresami MAC, diagnostyką czy monitoringiem urządzeń.