O IGMP (Internet Group Management Protocol) é o protocolo da camada de rede responsável por gerenciar a participação de hosts em grupos de Multicast em uma rede IPv4.

Diferente do Unicast (um para um) ou Broadcast (um para todos), o Multicast permite que um emissor envie dados para um grupo específico de interessados simultaneamente, economizando banda significativa.

1. Funcionamento do IGMP

O IGMP opera entre um host (cliente) e um roteador multicast local:
1. Join (Entrada): O host informa ao roteador que deseja receber tráfego de um grupo IP específico (intervalo 224.0.0.0 a 239.255.255.255).
2. Membership Query: O roteador periodicamente pergunta à rede se ainda existem membros ativos em cada grupo.
3. Leave (Saída): O host avisa que não deseja mais receber os dados daquele grupo.

2. Versões do Protocolo

  • IGMPv1: Definição básica de consulta e resposta.
  • IGMPv2 (Mais comum): Introduziu a mensagem de “Leave” para aguentar saídas rápidas e reduzir o tráfego desnecessário.
  • IGMPv3: Suporta o Source-Specific Multicast (SSM), onde o host pode escolher de quais emissores específicos ele deseja receber o tráfego do grupo.

3. IGMP Snooping (Camada 2)

Embora o IGMP seja um protocolo de camada 3, os switches de camada 2 usam uma técnica chamada IGMP Snooping para “espiar” as mensagens IGMP.
- Sem o Snooping, o switch trataria o tráfego Multicast como Broadcast, enviando para todas as portas.
- Com o Snooping, o switch aprende quais portas têm membros do grupo e envia os dados apenas para essas portas, otimizando drasticamente a rede local.


[!IMPORTANT]
No mundo do IPv6, o IGMP foi substituído pelo protocolo MLD (Multicast Listener Discovery), que faz parte do ICMPv6.