Multicast Profa. Ana Cristina Benso da Silva Redes de Computadores Formas de Transmissão Tipos broadcast: todos os hots da rede broadcast direto: todos os hosts de uma determinada rede multicast: múltiplos recipientes (grupo) Redes de Computadores Profa. Ana Benso Formas de Transmissão Redes de Computadores Profa. Ana Benso Multicast Aplicações distribuição de áudio e vídeo 1 para muitos, ou; muitos para muitos. simulações distribuídas descoberta de recursos Redes de Computadores Profa. Ana Benso IP Multicast Grupo de hosts Nível de Rede - altera somente endereçamento Roteadores precisam rotear endereços IP de multicast Redes de Computadores Profa. Ana Benso Endereço Endereço especial: (classe D) 224.0.0.0 até 239.0.0.2 28 bits - 268 milhões de grupos 224.0.0.x: redes locais somente 224.0.0.1 todos os hosts 224.0.0.2 todos os roteadores 224.2.x.x para multimídia TTL: 0 para hosts e 1 para rede Redes de Computadores Profa. Ana Benso Endereço Todos os 32 bits do endereço IP que começam com 1110 (classe D) são endereços de multicast. Com os 28 bits restantes para endereçar os grupos, mais de 250 milhões de endereços estão disponíveis. Alguns desses endereços são assumidos permanentemente. Um endereço multicast pode ser usado somente como endereço destino. Redes de Computadores Profa. Ana Benso Endereço Exemplo de endereço IP de Multicast – Classe D 4 1 1 1 0 28 Endereço Multicast Endereços de Escopo Global 224.0.1.0 até 238.255.255.255 Podem ser utlizados para multicast entre organizações e para a Internet Endereços de Escopo Local 239.0.0.0 até 239.255.255.255 Podem ser utilizados para grupos locais Redes de Computadores Profa. Ana Benso Endereços Endereços GLOP 233.0.0.0/8 Reservados para organizações que tem um Sistema Autônomo O número do Sistema Autônomo é embutido no IP de multicast, a partir do segundo octeto. Exemplo: AS = 62010 = F23A16 F2 = 242 e 3A = 58 Redes de Computadores 233.242.58.0 Profa. Ana Benso Endereço Físico Um endereço físico Ethernet possui 6 bytes. Se os primeiros 25 bits desse endereço são 0000000100000000010111100, o endereço define um endereço multicast físico para o protocolo TCP/IP. Prefixo do Endereço Ethernet: 01.00.5E.00.00.0016 Os 23 bits restantes podem ser usados para definir um grupo. Redes de Computadores Profa. Ana Benso Extensões para Tratamento de Multicast Os datagramas IP de difusão seletiva recebidos são recebidos pelos protocolos do módulo superior utilizando a mesma operação recepção que os datagramas unicast A seleção do protocolo do nível superior é baseada no campo protocol do cabeçalho IP, independente do campo destination address Redes de Computadores Profa. Ana Benso Extensões... A participação em um grupo, pelo host origem da mensagem deve ser explicitamente solicitada. A interface de serviço IP deve ser estendida para fornecer duas novas operações JoinHostGroup (group-address, interface) LeaveHostGroup (group-address, interface) Redes de Computadores Profa. Ana Benso Extensões... A operação JoinHostGroup requisita que este host torne-se membro do grupo identificado pelo group-address na interface de rede especificada A operação LeaveHostGroup solicita que a estação deixe de pertencer ao grupo identificado pelo group-address na interface de rede indicada Redes de Computadores Profa. Ana Benso Extensões... É permitido participar de um mesmo grupo utilizando mais de uma interface, o que resultará em recebimento de datagramas duplicados O módulo IP deve ser estendido para manter uma lista dos membros dos grupos associados a cada interface de rede Redes de Computadores Profa. Ana Benso Extensões... Datagramas que chegam destinados para grupos que o host não pertence que pertencem a uma interface diferente da recebida; ou, que possuem um endereço de grupo IP no campo IP source address são descartados sem gerar nenhuma notificação de erro Não são geradas mensagens ICMP de erro Redes de Computadores Profa. Ana Benso Implementação - Exemplo Programação UDP struct sockaddr_in name; struct ip_mreq imr; sock = socket(AF_INET, SOCK_DGRAM, 0); imr.imr_multiaddr.s_addr = htonl (groupaddr); imr.imr_interface.s_addr = htonl (INADDR_ANY); setsock(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &imr, sizeof(struct ip_mreq)); ... Bind (sock, &name, sizeof(name)); recv(sock, (char *)buf, sizeof(buf), 0); Redes de Computadores Profa. Ana Benso Roteamento em uma LAN Um roteador conectado em uma LAN tem uma lista dos endereços de multicast dos grupos para o qual há no mínimo um membro. Quando o roteador recebe um pacote com um endereço de destino que combina com um na lista, ele segue adiante a mensagem, convertendo o endereço multicast IP para o endereço multicast físico. Redes de Computadores Profa. Ana Benso IGMP O IGMP foi projetado para ajudar um roteador multicast a identificar os hosts numa LAN que são membros de um grupo multicast. O IGMPv1 tem somente dois tipos de mensagens: report: é enviada do host para o roteador query: é enviada do roteador para o host. 0 VERS 8 4 TYPE 16 UNUSED 31 CHECKSUM GROUP ADDRESS Redes de Computadores Profa. Ana Benso Campos da Mensagem Onde: Ver: define a versão do protocolo. Type: define o tipo de mensagem; 1 para mensagens de query 2 para mensagens de report. Checksum: usado para controle de erro. Group address: define o endereço do grupo numa mensagem de report. Este é preenchido com 0s na mensagem de query. Redes de Computadores Profa. Ana Benso Mensagens IGMPv1 2 Group address Entrando num grupo Host Roteador Query 1 All 0s Monitorando o grupo Host Roteador Report 2 Host Group address Continuando no grupo Roteador No response to query Saindo de um grupo Roteador Host Redes de Computadores Profa. Ana Benso Entrando em um Grupo Cada host mantém uma lista de processos com os membros do grupo. Quando um processo quer se juntar a um novo grupo, ele envia seu pedido para o host. O host irá adicionar o nome do processo e o nome do grupo requisitado em sua lista. Contudo, o host somente envia o report do IGMP para o roteador de multicast se este for o primeiro pedido para se tornar um membro naquele grupo. Redes de Computadores Profa. Ana Benso Monitoração do Grupo Um roteador de multicast é responsável por monitorar todos os hosts numa LAN para ver se eles querem continuar sendo membro do grupo. O roteador periodicamente envia uma mensagem de query para o endereço multicast 224.0.0.1. Nesta mensagem, o campo de endereço de grupo é setado para 0.0.0.0. Redes de Computadores Profa. Ana Benso Monitorando... Isso significa que a consulta para continuar sendo membro é para todos os grupos que um host está envolvido. O roteador espera uma resposta para cada um desses grupos. Redes de Computadores Profa. Ana Benso Mantendo o Grupo O host mantém uma lista de processos dos grupos que deseja continuar membro. Quando um host recebe um query, ele verifica essa lista. Para cada grupo com no mínimo um processo ainda interessado em continuar no grupo, o host deve enviar um report. Redes de Computadores Profa. Ana Benso Saindo do Grupo Quando um host recebe uma query e acha que não há mais nenhum processo interessado no grupo, ele não responde e não envia o report sobre aquele grupo. Se nenhum host numa LAN envia um report para um grupo específico, o endereço daquele grupo é retirado, depois de um time-out, da lista de endereço de multicast do roteador. Redes de Computadores Profa. Ana Benso Operação do IGMP na Internet Internet R1 Rede A R2 Rede B Redes de Computadores R3 Rede C Profa. Ana Benso IGMPv2 A principal diferença é a implementação da mensagem Leave Group Os hosts podem comunicar ao roteador sua intenção de deixar um grupo O roteador envia logo após um mesagem de consulta (query) para verificar se existe mais “alguém” naquele grupo Se não houver resposta, então ele desabilita o recebimento de pacotes para aquele IP de multicast Vantagem: redução de latência e tráfego indesejado Redes de Computadores Profa. Ana Benso Multicast no Nível 2 Comportamento default do nível 2 é enviar o pacote com MAC de multicast para todos os segmentos Desvantagem? Soluções: CISCO CGMP e IGMP Snooping Redes de Computadores Profa. Ana Benso CGMP Funcionamento O host gera mensagens IGMP para router O router processa-as normalmente e em adição cria mensagens CGMP JOIN e envia-as ao switch O switch adiciona a porta ao seu CAM (Content Address Memory). Assim, todo tráfego subsequente será direcionado apenas para as portas registradas As portas de comunicação com o roteador também são adicionadas a tabela, uma vez que o roteador deve ouvir todo o tráfego multicast Redes de Computadores Profa. Ana Benso IGMP Snooping Exige que os pacotes IGMP (nível 3) sejam “bisbilhotados” pelo switch Então quando ele vê uma mensagem de Host Report, ele adiciona endereço de multicast na tabela apropriada E quando vê uma mensagem de IGMP de Leave Group, ele remove a entrada da tabela. OBS: Leave somente a paritr do IGMPv2 Redes de Computadores Profa. Ana Benso IGMP Snooping Algumas mensagens multicast a nível 2 não permitem identificar se são dados ou IGMP Switch deve examinar cada pacote multicast Desvantagem? Desempenho Redes de Computadores Profa. Ana Benso Árvores de Distribuição Roteadores criam árvore de distribuição que permitem controlar o caminho do tráfego multicast Dois tipos básicos Source Trees Shared Trees Redes de Computadores Profa. Ana Benso Source Trees Forma mais simples Raíz da árvore é a origem do tráfego Calcula-se uma Spanning Tree até os receptores Essa árvore usa o menor caminho para atingir o destino Conhecida também como Shortest Path Tree (SPT) Notação: (S, G) Onde, S é o IP do fonte e G é o endereço do Grupo Existe uma árvore para cada par (S, G) Redes de Computadores Profa. Ana Benso Shared Tree Usam uma única origem como Raíz da árvore Esta raíz é chamada Redenvouz Point (RP) Nesta árvore, os hosts enviam o seu tráfego multicast para a Raíz, e esta redistribui o tráfego para os demais nodos da árvore Notação: (*, G) Onde, * = diversos fontes, G o grupo Source Trees e Shares Trees não apresentam situações de loop Redes de Computadores Profa. Ana Benso Comparação SPT tem a vantagem de criar um caminho ótimo para alcançar os destinos Isto garante uma baixa latência para o roteamento dos pacotes na rede No entanto, os roteadores devem manter informações sobre o caminho para cada fonte Em uma rede grande, logo torna-se um problema devido ao consumo dos recursos do roteador Shared Trees mantém poucas informações de estado em cada roteador. Desvantagem? Existência de caminhos não otimizados Redes de Computadores Profa. Ana Benso Roteamento Multicast Reverse-Path Forwarding (RPF) É um algoritmo Usa source tree para cada nodo da rede algoritmo é simples: quando um pacote multicast é recebido, anote o fonte (S) e a interface (I); Se I pertence ao menor caminho para S, envie o pacote para todas as outras interfaces, menos para I. Se o teste acima falha, recuse o pacote. Problema: roteadores que não tem grupos também recebem o multicast. Redes de Computadores Profa. Ana Benso Roteamento RPF A B D E C RPF tree de A A B D E RPF tree de C Vantagens: 1. Garantia da entrega rápida, pois segue o menor caminho 2. Cada nó tem uma árvore diferente, garantindo a divisão do tráfego na rede. Redes de Computadores C A B D E C RPF tree de E Problema: * Roteadores recebem pacotes e não tem grupos de multicast * Solução: RPF and Prunes Profa. Ana Benso PIM – Protocol Indenpendet Multicast Dois modos de Operação Dense Mode Sparse Mode Os protocolos tradicionais são utilizados para a troca de informações sobre grupos O PIM não envia ou recebe informações desatualizadas de rotas como protocolos tradicionais Usa as informações da tabela de roteamento Unicast para o RPF Redes de Computadores Profa. Ana Benso PIM – Dense Mode Usa um modelo “push” para enviar o tráfego Método da força bruta Inicialmente o tráfego é enviado na forma de flooding Roteadores que não tem os grupos cadastrados descartam os pacotes Este é o mecanismo pelo qual os roteadores acumulam informações para o roteamento dos pacotes Redes de Computadores Profa. Ana Benso PIM – Sparse Mode Utiliza um modelo “pull” para enviar o tráfego Somente os segmentos que explicitamente solicitaram, receberão o tráfego de multicast Usa uma Shared Tree O tráfego pode iniciar em uma Shared Tree e ser comutado para um Source Tree otimizada Redes de Computadores Profa. Ana Benso DVMRP- Distance Vector Multicast Routing Protocol Similar ao RIP Roteadores de multicast trocam mensagens de atualização do vetor distância contendo uma lista destinos e seus custos. Custos (métricas) são o número de roteadores (saltos) Destinos: IP + máscara Mensagens de atualização DVRMP são enviadas para todos os túneis a partir do roteador. Redes de Computadores Profa. Ana Benso MBONE - Multicast Backbone “Overlay network” empregada na Internet para teste de tráfego multicast 2 tipos de redes: aquelas que suportam apenas broadcast global, e neste caso um pacote de multicast será enviado para todas as máquinas aquelas que suportam grupos de endereços: grupos de multicast importante é que seja enviado apenas um pacote! Redes de Computadores Profa. Ana Benso MBONE 1992 - roteamento em multicast era apenas experimental MBONE teste túnel para interligar “ilhas” de multicast configuração de software nos hosts lista de roteadores de multicast configurados envio dos pacotes é encapsulado DVMRP - calculo das rotas Redes de Computadores Profa. Ana Benso