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
Download

Redes de Computadores Conceitos Básicos