Protocolo de Gerenciamento de Grupo da Internet - Internet Group Management Protocol

O Internet Group Management Protocol ( IGMP ) é um protocolo de comunicação usado por hosts e roteadores adjacentes em redes IPv4 para estabelecer associações de grupos multicast. O IGMP é parte integrante do multicast IP e permite que a rede direcione as transmissões multicast apenas para os hosts que as solicitaram.

O IGMP pode ser usado para aplicativos de rede um-para-muitos, como streaming de vídeo e jogos online , e permite o uso mais eficiente de recursos ao oferecer suporte a esses tipos de aplicativos.

IGMP é usado em redes IPv4 . O gerenciamento de multicast em redes IPv6 é feito pelo Multicast Listener Discovery (MLD), que faz parte do ICMPv6 em contraste com o encapsulamento de IP simples do IGMP.

Arquitetura

Uma rede projetada para fornecer um serviço multicast usando IGMP pode usar esta arquitetura básica:

IGMP basic architecture.png

IGMP opera entre um host e um roteador multicast local. Os switches com IGMP snooping também derivam informações úteis ao observar essas transações IGMP. Protocol Independent Multicast (PIM) é então usado entre os roteadores multicast locais e remotos para direcionar o tráfego multicast de hosts que enviam multicasts para hosts que se registraram por meio do IGMP para recebê-los.

O IGMP opera na camada de rede (camada 3), da mesma forma que outros protocolos de gerenciamento de rede como o ICMP .

O protocolo IGMP é implementado em hosts e roteadores . Um host solicita associação a um grupo por meio de seu roteador local, enquanto um roteador escuta essas solicitações e envia consultas de assinatura periodicamente. Um único roteador por sub-rede é eleito para executar esta função de consulta. Alguns switches multicamadas incluem um recurso de consulta IGMP para permitir que seus recursos de rastreamento IGMP funcionem na ausência de um roteador compatível com IGMP na rede da camada 2.

O IGMP é vulnerável a alguns ataques e os firewalls geralmente permitem que o usuário o desative se não for necessário.

Versões

Existem três versões do IGMP. IGMPv1 é definido pela RFC  1112 , IGMPv2 é definido pela RFC  2236 e IGMPv3 foi inicialmente definido pela RFC  3376 e foi atualizado pela RFC  4604 que define IGMPv3 e MLDv2. O IGMPv2 melhora o IGMPv1 adicionando a capacidade de um host sinalizar o desejo de deixar um grupo multicast. O IGMPv3 melhora o IGMPv2 ao suportar multicast específico da fonte e introduz a agregação de relatório de associação.

Essas versões são compatíveis com versões anteriores. Um roteador com suporte a IGMPv3 pode oferecer suporte a clientes que executam IGMPv1, IGMPv2 e IGMPv3. IGMPv1 usa um modelo de consulta-resposta. As consultas são enviadas para 224.0.0.1. Os relatórios de associação são enviados para o endereço multicast do grupo. IGMPv2 acelera o processo de saída de um grupo e ajusta outros tempos limite. As mensagens de saída do grupo são enviadas para 224.0.0.2. Uma consulta específica do grupo é introduzida. As consultas específicas do grupo são enviadas para o endereço multicast do grupo. É apresentado um meio para os roteadores selecionarem um indagador IGMP para a rede. IGMPv3 apresenta capacidade multicast específica da fonte . Os relatórios de sócios são enviados para 224.0.0.22.

Mensagens

Existem vários tipos de mensagens IGMP:

Consultas gerais de adesão
Enviado por roteadores multicast para determinar quais endereços multicast são de interesse para os sistemas conectados à (s) rede (s), eles servem para atualizar o estado de associação do grupo para todos os sistemas em sua rede.
Consultas de associação específicas do grupo
Usado para determinar o estado de recepção de um endereço multicast específico
Consultas específicas de grupo e fonte
Permitir que o roteador determine se algum sistema deseja receber mensagens enviadas a um grupo multicast de um endereço de origem especificado em uma lista de endereços unicast
Relatórios de sócios
Enviado por receptores de multicast em resposta a uma consulta de associação ou de forma assíncrona ao se registrar pela primeira vez para um grupo de multicast
Deixe mensagens em grupo
Enviado por receptores multicast quando as transmissões multicast especificadas não são mais necessárias no receptor

As mensagens IGMP são transportadas em pacotes IP simples com o protocolo IP número 2. Semelhante ao Internet Control Message Protocol , não há camada de transporte usada com mensagens IGMP.

Mensagens IGMPv2

Estrutura do pacote IGMPv2
deslocamento de bit 0–7 8-15 16-31
0 Modelo Tempo Máximo de Resp Checksum
32 Endereço do Grupo

Onde:

Modelo
Indica o tipo de mensagem da seguinte forma
Valores de tipo de mensagem IGMP
Mensagem Valor de tipo
Consulta de membros 0x11
Relatório de Sócios IGMPv1 0x12
Relatório de associação IGMPv2 0x16
Relatório de associação IGMPv3 0x22
Deixar o grupo 0x17
Tempo Máximo de Resp
Especifica a capacidade de resposta necessária de respostas a uma consulta de associação (0x11). Este campo é significativo apenas na Consulta de Associação; em outras mensagens, é definido como 0 e ignorado pelo receptor. O campo especifica o tempo em unidades de 0,1 segundo (um valor de campo de 10 especifica 1 segundo). Valores maiores reduzem a intermitência do tráfego IGMP e valores menores melhoram a capacidade de resposta do protocolo quando o último host deixa um grupo.
Endereço do Grupo
Este é o endereço multicast que está sendo consultado ao enviar uma Consulta Específica de Grupo ou Específica de Grupo e Fonte. O campo é zerado ao enviar uma Consulta Geral.

A mensagem é enviada usando os seguintes endereços IP de destino:

Endereço de destino IGMPv2
Tipo de mensagem Endereço multicast
Consulta Geral Todos os hosts (224.0.0.1)
Consulta Específica de Grupo O grupo sendo consultado
Relatório de sócios (todas as versões IGMP) O grupo sendo denunciado
Deixar o grupo Todos os roteadores (224.0.0.2)

Consulta de adesão IGMPv3

Consulta de adesão IGMPv3
deslocamento de bit 0–3 4 5-7 8-15 16-31
0 Tipo = 0x11 Código Max Resp Checksum
32 Endereço do Grupo
64 Resv S QRV QQIC Número de fontes (N)
96 Endereço da fonte [1]
128 Endereço da fonte [2]
. . .
Endereço da fonte [N]

Onde:

Código Max Resp
Este campo especifica o tempo máximo (em incrementos de 1/10 de segundo) permitido antes de enviar um relatório de resposta. Se o número estiver abaixo de 128, o valor é usado diretamente. Se o valor for 128 ou mais, ele é interpretado como um expoente e mantissa.
Checksum
Este é o complemento de um de 16 bits da soma do complemento de um de toda a mensagem IGMP.
Endereço do Grupo
Este é o endereço multicast que está sendo consultado ao enviar uma Consulta Específica de Grupo ou Específica de Grupo e Fonte. O campo é zerado ao enviar uma Consulta Geral.
Resv
Este campo está reservado. Deve ser zerado quando enviado e ignorado quando recebido.
Sinalizador S (suprimir processamento do lado do roteador)
Quando este sinalizador é definido, ele indica aos roteadores de recebimento que eles devem suprimir as atualizações normais do cronômetro.
QRV (Variável de Robustez do Querer)
Se for diferente de zero, ele contém o valor da Variável de robustez usado pelo remetente da consulta. Os roteadores devem atualizar sua variável de robustez para corresponder à consulta recebida mais recentemente, a menos que o valor seja zero.
QQIC (Código de Intervalo de Consulta do Consultor)
Este código é usado para especificar o valor do Intervalo de consulta (em segundos) usado pelo consultor. Se o número estiver abaixo de 128, o valor é usado diretamente. Se o valor for 128 ou mais, ele é interpretado como um expoente e mantissa.
Número de fontes (N)
Este campo especifica o número de endereços de origem presentes na consulta. Para consultas gerais e específicas de grupo, esse valor é zero. Para consultas específicas de grupo e fonte, este valor é diferente de zero, mas limitado pela MTU da rede.
Endereço da fonte [i]
Os campos Source Address [i] são um vetor de n endereços IP unicast, onde n é o valor no campo Number of Sources (N).

Implementações

Os sistemas operacionais FreeBSD , Linux e Windows suportam IGMP no host.

Veja também

Notas

Referências