Este post oferece uma visão abrangente sobre o funcionamento do IP multicast, uma abordagem sobre a sua utilização para a otimização dos recursos de rede, principalmente em serviços que exigem largura de banda significativa, como transmissões de áudio e vídeo. Essa otimização é viabilizada pela entrega direcionada de dados exclusivamente aos membros do grupo multicast que demonstram interesse no conteúdo, resultando em uma utilização mais inteligente e eficiente dos recursos de rede disponíveis.
Vale lembrar que a IANA reservou uma faixa de endereços IP multicast no IPv4, variando do 224.0.0.0 ao 239.255.255.255, enquanto no IPv6, os endereços multicast são iniciados pelo prefixo 0xFF.
Os endereços IP de multicast são conhecidos como grupos. Um endereço de multicast que inclui um grupo e um endereço de IP de origem é referido como um canal. Essa abordagem é comumente utilizada para otimizar a transmissão de dados para vários destinatários ao mesmo tempo, sendo especialmente útil em situações em que se deseja enviar informações para um conjunto específico de receptores, em vez de toda a rede. A tecnologia de multicast ajuda a melhorar significativamente o uso da largura de banda e a eficiência da rede, permitindo uma distribuição eficaz de conteúdo em escala. A imagem Topologia-1, exemplifica um cenário onde o transmissor source emite dados multicast, que são recebidos por três receptores. Nesse contexto, caso o host PC4 que esteja localizado em um segmento de LAN no qual nenhum receptor solicitou dados multicast, não haverá encaminhamento de dados para esse receptor específico.
No exemplo apresentado na Topologia-1, os hosts que têm o interesse em receber tráfego de multicast utilizarão o protocolo IGMP para informar ao roteador quais fluxos de multicast desejam receber. Em seguida, os roteadores assumem a responsabilidade de encaminhar os dados do emissor para o receptores. Pretendo criar mais posts abordando outras funcionalidades do multicast, como o IGMP Snooping. No entanto, como o título sugere, nosso objetivo é tornar uma coisa complicada mais simples, concentrando a nossa atenção apenas em algumas áreas específicas do multicast.
Internet Group Management Protocol
O Protocolo Internet Group Management Protocol IGMP é usado por hosts que desejam receber dados multicast para solicitar associação em grupos multicast. Uma vez estabelecida a associação ao grupo, os dados de multicast relativos a esse grupo são encaminhados para o segmento de LAN do host que realizou a solicitação.
IGMPv1
Na Versão 1 do protocolo IGMP, existem dois tipos de mensagens IGMP que são utilizadas para manter o grupo do multicast ativo e atualizado.
Conforme podemos observar na Topologia-2 o roteador envia periodicamente consultas de IGMP membership query (1) para verificar se os dispositivos na rede tem interesse em receber tráfego. Essas mensagens são direcionadas para o endereço de multicast 224.0.0.1, que representa o grupo de todos os hosts no multicast. Quando um dispositivo tem o interesse em participar de um grupo multicast, ele executa uma ação conhecida como membership report (2). Essa mensagem é enviada para o endereço de grupo multicast específico ao qual o dispositivo deseja participar. A partir desse ponto, o roteador começa a encaminhar o tráfego multicast solicitado para a interface na qual recebeu a mensagem de associação do IGMP.
A versão 1 do IGMP é um protocolo simples, composto por apenas dois tipos de pacotes distintos. Uma das desvantagens da versão 1 do IGMP é que o roteador continuará encaminhando tráfego de multicast mesmo quando não houver mais hosts interessados nesse tráfego. A versão 2 do IGMP resolve esse problema. Além disso, a versão 2 introduz melhorias que otimizam o gerenciamento de grupos multicast, permitindo uma comunicação mais eficiente entre os dispositivos e evitando o desperdício de largura de banda desnecessário.
IGMPv2
O protocolo IGMP v2 representa uma evolução do IGMP versão 1, focado em aprimorar a eficiência e controle das comunicações multicast. Suas funcionalidades chave estão centradas nos processos de entrada (joing) e saída (leave) de grupos multicast, que desempenham um papel crucial na otimização da distribuição de dados para grupos de receptores. A principal diferença entre o IGMPv1 e o IGMPv2 é a inclusão da mensagem de saída do grupo Leave Group, que permite que os dispositivos se comuniquem com o roteador e saiam de um grupo multicast conforme necessário. Quando um dispositivo não deseja mais receber o tráfego multicast de um grupo específico, ele pode enviar uma mensagem de Leave Group para notificar o roteador sobre essa ação. O IGMPv2, com suas características, oferece uma gestão mais eficiente e inteligente de comunicações multicast, otimizando o uso da rede e garantindo que o tráfego seja entregue apenas aos destinatários interessados.
Abaixo estão apresentadas as novas características:
Group-specific Membership Query message: Os roteadores agora podem enviar consultas direcionadas a grupos multicast específicos, em vez de consultas gerais. Isso economiza largura de banda e melhora a precisão da comunicação.
Querier election process: Em redes com vários roteadores, o IGMPv2 define um processo para eleger um "querier" ativo que emite consultas de associação. Isso evita duplicações e aprimora a eficiência. O router com o menor endereço IP será eleito o IGMP querier da rede.
Leave group messages: O IGMPv2 introduz a capacidade de hosts notificarem os roteadores sobre sua saída de grupos multicast. Isso evita o envio desnecessário de tráfego multicast a dispositivos que não têm mais interesse no grupo, melhorando a eficiência da rede.
Entrando em um Grupo - IGMPv2
Assim como na versão 1 do IGMP, o roteador envia mensagens do tipo membership query a cada 60 segundos para o destino 224.0.0.1 (1). Quando um dispositivo deseja ingressar em um grupo multicast específico, ele vai enviar uma mensagem membership report ao grupo 239.1.1.1 (2) para informar ao roteador que deseja receber esse tráfego multicast. Ao receber a mensagem membership report o roteador utiliza o endereço do grupo 239.1.1.1 (3). Isso evita mensagens de report desnecessários e aumenta a precisão das associações.
Saindo de um Grupo - IGMPv2
Um dos maiores avanços do IGMPv2 foi a introdução das mensagens de saída do grupo Leave Group. Quando um dispositivo não deseja mais receber tráfego de um grupo multicast, ele envia uma mensagem de Leave Group (1). O roteador, ao receber essa mensagem, inicia uma consulta membership query (2) direcionada ao endereço 239.1.1.1, com o objetivo de verificar se ainda existem outros destinatários interessados em receber o tráfego multicast (3). É possível observar na figura Exemplo-2 abaixo que o PC2 ainda está interessado em receber esse tráfego multicast, então ele envia uma de report com destino ao endereço 239.1.1.1 (4).
O IGMPv2 oferece uma abordagem mais eficiente em comparação com a versão anterior IGMPv1, pois implementa o conceito de report suppression. Isso significa que, quando um host deixa de estar interessado em um grupo multicast, o roteador não encaminha imediatamente essa informação. Em vez disso, o roteador aguarda um breve período para verificar se outros hosts também têm interesse no grupo. Somente se nenhuma mensagem de report for recebida nesse intervalo, então, o roteador encerra a transmissão para o grupo, otimizando assim a utilização da rede. Dessa forma, na versão 2 do IGMP, todos os hosts na rede expressam seus interesses quando consultados, facilitando a compreensão de quais dispositivos desejam participar dos grupos multicast. Isso melhora a eficiência das transmissões multicast, garantindo que os dados sejam entregues apenas aos dispositivos que realmente têm interesse.
IGMPv3
No IGMPv3, os roteadores têm a capacidade de filtrar grupos multicast com base na origem dos pacotes multicast. Isso significa que os hosts podem especificar não apenas o grupo multicast de interesse, mas também os endereços IP de origem dos quais desejam receber os pacotes multicast. Isso é particularmente útil em cenários em que existem várias fontes de tráfego multicast e os hosts estão interessados em receber apenas de fontes específicas. Quando um grupo possui muitas origens, o roteador IGMPv3 pode realizar filtragem de origem com base nos pedidos dos membros do grupo. Por exemplo, um membro específico pode querer receber tráfego do grupo apenas de origens especificadas, ou pode desejar receber tráfego de todas as origens, exceto algumas especificadas. O membro pode informar essas preferências em mensagens do tipo report messages. Cada mensagem de report, agora pode conter uma lista de fontes multicast que o host deseja receber, além da lista de grupos multicast. Isso permite uma especificação mais granular dos interesses do host.
Entrando em um Grupo - IGMPv3
Na figura Exemplo-3, temos um servidor como origem do trafego de vídeo que está transmitindo multicast na rede usando o grupo 239.1.1.1. Vamos verificar como é feito o processo e como o PC1 se junta a esse grupo para receber esse tráfego. Na versão 3 do IGMP, os hosts são configurados para receber tráfego de multicast apenas de endereços de origem específicos. Vamos entender como isso funciona.
O R1 começará a enviar consultas do tipo membership general, como a mostrado na figura Exemplo-3 (1). PC1 envia duas mensagens membership report para associação no grupo de multicast (2). A primeira mensagem inclui o endereço do grupo de multicast e o endereço de origem que deseja receber o trafego. A segunda mensagem inclui o modo. Existem dois modos no IGMPv3. O primeiro modo é o Include esta é uma lista de endereços de origem dos quais o PC1 aceitara o tráfego de multicast e o modo Exclude, esta é uma lista de endereços de origem dos quais será recusado receber tráfego de multicast. Isso permite um controle mais preciso sobre as origens de tráfego multicast que os hosts aceitam ou rejeitam. O destino para as mensagens de associação membership reports é 224.0.0.22, que é o endereço do grupo de todos os roteadores do IGMPv3. O R1 recebe a mensagem de membership reports do PC1 (3) e adiciona a entrada na tabela de roteamento de multicast.
Saindo de um Grupo - IGMPv3
O que acontece quando um host não deseja mais pertencer a um grupo multicast? Vamos verificar quando o PC1 deixa de participar do grupo.
O IGMPv3 não utiliza a mensagem Leave Group como utilizado no IGMPv2. Ela foi substituída pela mensagem do tipo membership report. As mensagens de report contém varias informações, sendo uma delas as mensagens do tipo block old sources. Essas mensagens do tipo block old sources têm um papel crucial na otimização da distribuição de tráfego multicast, especialmente quando hosts estão interessados em diferentes fontes multicast enquanto permanecem no grupo. Em vez de simplesmente indicar que um dispositivo deseja sair de um grupo específico, essas mensagens sinalizam que os dispositivos não têm mais interesse em receber tráfego de uma origem específica.
Na figura Exemplo-4, podemos observar o envio de uma mensagem do tipo membership report para o endereço de destino 224.0.0.22 (1) indicando que o PC1 não está mais interessado em receber tráfego da origem 192.168.100.1.
Assim que o Roteador R1 recebe esse pacote, ele responde com uma mensagem do tipo membership query para um endereço de multicast específico e com o endereço de origem, informando que o PC1 não deseja mais receber dados (2). Para facilitar a compreensão, vamos analisar essa situação através da perspectiva do Wireshark.
Na captura de pacotes, podemos observar a mensagem Block Old Sources do IGMPv3, que se refere à funcionalidade que permite aos roteadores multicast otimizar a distribuição de tráfego, evitando encaminhar tráfego de origens antigas para hosts que não estão mais interessados nessas fontes. Dessa maneira, o Block Old Sources garante que o roteador encaminhe o tráfego multicast apenas das fontes especificamente indicadas nos reports mais recentes.
A seguir, realizamos uma captura no roteador R1, na qual podemos visualizar a mensagem de Membership Query, que é direcionada ao grupo de multicast com o endereço 239.1.1.1, utilizando a origem 192.168.100.1. Isso demonstra como o IGMPv3 atua para otimizar a distribuição de tráfego multicast de acordo com as preferências dos hosts.
Conclusão
Em resumo, a tecnologia de multicast permite uma distribuição eficiente de conteúdo para múltiplos destinatários simultaneamente, melhorando a utilização dos recursos de rede. Os endereços IP de multicast, agrupados em faixas específicas, permitem a transmissão direcionada para grupos de interesse. O IGMP é o protocolo essencial para gerenciar associações de grupos multicast, com versões evoluídas para otimizar a eficiência e controle.
O IGMPv1, embora simples, apresentava a desvantagem de não interromper a transmissão mesmo quando não havia mais interessados. O IGMPv2 trouxe melhorias significativas, permitindo que os hosts possam sair de grupos multicast e implementando o "report suppression", economizando largura de banda.
O IGMPv3 representa um passo adiante, introduzindo o conceito de filtro de origem. Agora, os membros de grupos multicast podem especificar quais origens desejam receber, permitindo maior controle sobre o tráfego. Através de mensagens de report, hosts podem aceitar ou rejeitar determinadas origens.
Esses protocolos desempenham um papel crucial na otimização do uso da rede e na transmissão inteligente de dados, atendendo às necessidades de grupos específicos de receptores, resultando em uma utilização mais eficiente e inteligente dos recursos disponíveis.
Para adicionar um comentário aqui, tem de ser um utilizador registado. Se já se registou, inicie a sessão. Se ainda não se registou, faça-o e inicie a sessão.
Encontre respostas, faça perguntas e conecte-se com nossa comunidade de especialistas da Cisco de todo o mundo.
Estamos felizes por você estar aqui! Participe de conversas e conecte-se com sua comunidade.