Universidade do Vale do Rio dos Sinos
Redes Avançadas
Multicast em redes AdHoc
Mateus Raeder
Tipos de Comunicação
 Multicast
 Multicast Ad Hoc
 Classificação de Protocolos
 Árvores

 Protocolos Árvores
 Vantagens e Desvantagens

Malhas
 Protocolos Malhas
 Vantagens e Desvantagens
Outros Protocolos
 Conclusões


Em redes de computadores, é comum a troca de
mensagens entre os participantes

Unicast
 Grande parte do tráfego na Internet era realizado através
de Unicast
 Um transmissor envia uma mensagem apenas para um
receptor, se quer enviar para X receptores, deve enviar X
mensagens
 Aumento do tráfego

Broadcast
 Envia apenas uma mensagem que é recebida por todos os
participantes
 Este envio pode ser inconveniente
 Analogia do aeroporto: Chamada para embarque é ouvida por
todos. Porém, uma pessoa sem interesse no voo não precisaria
ouvir esta mensagem

Anycast
 A mensagem é enviada
 A mensagem vai ser recebida pelo participante mais
próximo (ou com mais chances)



Transmissão de uma mensagem para um grupo
específico ao mesmo tempo
Somente uma mensagem para todos
Diminuição do tráfego desnecessário
 Por
exemplo,
transmissão
clientes
assistindo
uma
determinada

Pode-se “realizar” um Multicast através de Unicast e
Broadcast
 Unicast:
com
destinatários
múltiplas
cópias
enviadas
para
os
▪ Largura de banda desperdiçada (duplicações)
 Broadcast: enviado para todos mas só os interessados
irão aceitar
▪ Sobrecarga na rede

Multicast é importante pois envia apenas para os que
realmente têm interesse

Redes Ad Hoc sem fio apresentam um grande grau de
mobilidade dos seus componentes

O caminho entre dois participantes da rede pode ser
alterado

Assim, os protocolos de roteamento Multicast de redes
fixas não podem ser usados em redes Ad Hoc

Nestas redes, todos os nodos têm a capacidade de
computar, manter e guardar informações de roteamento

Para habilitar a comunicação em grupo nas redes Ad
Hoc protocolos de roteamento foram propostos

O objetivo da maioria dos protocolos multicast Ad Hoc é
construir e manter uma topologia de comunicação
 Levando em conta mobilidade dos nós
 Reações rápidas a mudanças na rede
 Minimizar perdas de pacotes

Protocolos Ad Hoc x Protocolos Redes Fixas
 Redes fixas: protocolos pró-ativos
 Redes Ad Hoc: protocolos sob-demanda

Protocolos de roteamento
classificados em dois tipos:
Multicast
podem
ser
 Dependentes de Aplicação
▪ Somente para aplicações especificas para as quais foram
desenvolvidos
 Independentes de Aplicação
▪ Baseado em Topologia
▪ Baseado em Zonas de Roteamento

Independentes de Aplicação
 Baseado em Topologia
▪ Árvores
▪ Malhas

Cria uma topologia estruturada como uma Árvore

Estabelece uma rota única entre quaisquer dois nós

O meio de transmissão é compartilhado por somente
dois nós, ou seja, só existe uma ligação entre eles

Os arquivos e mensagens são armazenados em um nó
intermediário na rota antes de seguir para o próximo nó

Não existem rotas alternativas

MAODV (Multicast Ad Hoc On Demand Distance Vector)
Um nó origina uma mensagem RREQ quando quer entrar ou mandar uma
mensagem para um grupo multicast

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• O nó manda uma mensagem RREQ para seus vizinhos por broadcast
• Se os nós vizinhos (nós intermediários) não fazem parte do grupo
• Somente atualiza a sua tabela de roteamento com o número de sequência e o caminho
para chegar até o nó que originou o RREQ
• E manda a mensagem RREQ por broadcast até chegar nos membro do grupo multicast

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Quando os nó membros do grupo multicast recebem o RREQ
• Atualiza sua tabela de roteamento
• Manda de volta um RREP unicast de volta para o nó que originou a mensagem
RREQ
• Nós intermediários recebem um RREP, atualizam a tabela de roteamento

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Mandam a mensagem RREP até chegar ao nó que originou a mensagem RREQ
• O nó Source fica esperando por um período de tempo as mensagens RREP
chegarem

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• O nó Source escolhe o menor caminho até chegar nos membros do grupo multicast
descartando as outras rotas.

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Após o período de tempo acabar
• O nó Source manda uma mensagem de ativação (MACT) para a rota escolhida
• Se o nó que receber é parte da árvore multicast ele não propaga o MACT
• Senão ele propaga o MACT até chegar no nó que originou o RREP

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Como o nó não faz parte do grupo multicast
• Ele ativa o nó como sendo parte da árvore e propaga o MACT até atingir o nó que
originou a mensagem RREP

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
B
A
D
• O MACT garante que a árvore não tenha vários caminhos para qualquer nó da
árvore.
• Os integrantes do grupo irão transmitir apenas pelo caminho da rota ativada

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Um nó quer entrar para o grupo multicast

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• o nó Source manda um RREQ por broadcast para o nós vizinhos

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Se os nós vizinhos não são membros do grupo multicast
• Eles atualizam sua tabela de roteamento e mandam a mensagem RREQ para seus
vizinhos até que um membro do grupo receba o RREQ

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Após os nós membros do grupo receberem o RREQ
• Eles mandam um RREP unicast até o nó Source

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• O nó Source fica esperando por um período de tempo as mensagens RREP
chegarem

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Após esperar por um período de tempo
• o nó Source escolhe a menor rota e manda uma mensagem de ativação (MACT)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Se o nó não faz parte da árvore, ele ativa o nó como sendo parte da árvore e
propaga o MACT até atingir os membros da árvore

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
E
F

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• O nó source quer fazer parte do grupo multicast
• Então manda um RREQ para seus vizinhos por broadcast

MAODV (Multicast Ad Hoc On Demand Distance Vector)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Como seus vizinhos já fazem parte do grupo multicast
• Eles mandam um RREP

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Após passar um período de tempo
• O nó Source escolhe a menor rota e manda uma mensagem de ativação (MACT)

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F

MAODV (Multicast Ad Hoc On Demand Distance Vector)
Líder
Grupo Hello:
• Primeiro membro do grupo se torna o líder
• Ele mantém o número de sequência do grupo, repassando-os aos demais nós
• Periodicamente envia mensagens (broadcast) do tipo Grupo Hello
• Os nodos membros da árvore atualizam sua distância em relação ao líder
• Não há RREP para este tipo de mensagem

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Eventualmente, nodos que são membros de um grupo multicast
desejam sair do grupo
 Árvore precisa ser atualizada
 Dois casos podem acontecer
▪ Quando o membro que pretende sair não é folha
▪ Quando o membro que pretende sair é uma folha

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se não for uma folha
▪ Muda seu status (não é mais membro)
▪ Porém, continua como roteador na árvore

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se for uma folha
• Ele deve podar a si mesmo

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se for uma folha
MACT
• Utiliza uma mensagem MACT com a flag P_flag (prune) setada

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se for uma folha
• Após enviar o MACT, o ex-membro retira todas as informações do grupo de suas
tabelas

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se for uma folha
PODA
• Quando o pai recebe um MACT com P_flag setada, remove a entrada do nodo da
tabela do grupo

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se for uma folha
• O nodo que efetuou a poda pode não ser membro do grupo
• Neste caso, ele vai realizar a poda da mesma maneira

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se for uma folha
MACT

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se for uma folha
PODA

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Se for uma folha
• O processo de poda continua até que um membro seja atingido

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Podem ocorrer quebra de links entre os nodos da árvore
 Os
nós detectam links quebrados quando não recebem
mensagem do seu vizinho em um determinado tempo
▪ Pacotes ou mensagens Group Hello (vindas do líder)
 Detectada a quebra, alguém deve tentar
reparar a árvore
 O nó envolvido na quebra que estiver mais
afastado do líder é o responsável pelo reparo
▪ Apenas um dos dois é escolhido para evitar
rotas diferentes e loops
▪ A escolha pelo nodo abaixo da quebra
controla a queda do líder, pois não há ninguém
acima dele

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
= link quebrado
= responsável pelo reparo

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Envia um RREQ com a flag Join setada, e informando a distância dele para o líder
• Somente nós com distância no mínimo menor que a informada respondem
• Isto evita loops e assegura que uma rota até o líder será encontrada

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• RREQ em broadcast

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Encontrou algum nó que está na árvore, responde com RREP em unicast

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Encontrou algum nó que está na árvore, responde com RREP em unicast

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Se recebe resposta, pode enviar MACT para criar um novo ramo

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Se recebe resposta, pode enviar MACT para criar um novo ramo

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
H
G
E
H
F
• E a árvore é reparada

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Porém, o nodo que está tentando reparar pode não receber nenhuma resposta
• Após algumas tentativas sem sucesso, o nodo assume que a árvore foi particionada

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Duas árvores para o mesmo grupo multicast
• A primeira tem um líder (A), a segunda não
• Um novo líder para esta árvore deve ser escolhido

MAODV (Multicast Ad Hoc On Demand Distance Vector)
Líder
• Se o nó que tentou reconstruir a rota for membro do grupo, ele é o novo líder

MAODV (Multicast Ad Hoc On Demand Distance Vector)
PODA
• Se o nó que tentou reconstruir a rota não for membro do grupo e possuir apenas um
filho (um hop até o grupo), ele se poda através do envio da mensagem MACT
• O processo de poda continua até que seja encontrado um membro
• Este membro é o novo líder

MAODV (Multicast Ad Hoc On Demand Distance Vector)
PODA
PODA
• Se não for um membro e possuir mais de um filho, não pode se podar, pois
partionaria a árvore

MAODV (Multicast Ad Hoc On Demand Distance Vector)
MACT
• Seleciona o primeiro filho e manda um MACT unicast com GF_flag (Group Leader)
setada
• Se for membro, é o novo líder
• Se não for membro, continua processo de seleção e envio de MACTs

MAODV (Multicast Ad Hoc On Demand Distance Vector)
• Porém, a árvore que já possuía líder pode ter ficado com um nó que não é membro
• Se for folha, ele começa o processo de poda

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Os links da árvore podem voltar a qualquer momento
 Nós vão começar a receber mensagens Group Hello de líderes
diferentes
 A árvore, então, deve ser unida novamente
C
A
B
D
Group Leader ’
Group Leader
G
E
F

MAODV (Multicast Ad Hoc On Demand Distance Vector)
 Existem agora 2 líderes
 Quando um nodo membro do grupo recebe um Group Hello com
informações de liderança diferente das que possui, começa a
reconstrução da árvore

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• O nodo envia um RREQ (em unicast) para seu líder com a flag R_flag (repair)
setada
• É um pedido para começar a reconstrução

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• O líder responde com um RREP em unicast, dando-o permissão para começar a
reconstrução da árvore
• Isto evita que mais de um nó tente reparar a árvore

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Nodo recebe o RREP do seu líder e envia um RREQ para o outro líder (informação
do outro líder que veio no Group Hello)
• Este RREQ contém o número de sequência da sua árvore particionada

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Quando recebe o RREQ e vê a flag R_flag setada, pega os dois números de
sequência: o seu e o que veio na mensagem
• Escolhe o maior e incrementa este valor em um
• Ele, agora, é o novo líder
• Envia um RREP em unicast para o nodo que começou a reparação

MAODV (Multicast Ad Hoc On Demand Distance Vector)
C
A
B
D
G
E
F
• Líder envia o Group Hello com a flag U_flag (update) setada
• Nós recebem o Group Hello e atualizam suas informações nas suas tabelas
• A árvore é reconstruída

Número mínimo de cópias são usados para disseminar
pacotes para um grupo multicast acarretando uma
maior eficiência na banda

Estrutura de fácil roteamento
 A mensagem é enviada somente para os nós ligados
 Estes nós se encarregam de enviar a mensagem até os
destinatários, enviando apenas para os ligados a ele

Falhas de links podem ocasionar uma reconfiguração
de toda árvore

Monitoramento dos estados de todos os links (galhos) é
necessário

Existe apenas um caminho entre quaisquer dois nós
 Não existe caminho alternativo

Cria uma topologia estruturada como uma Malha

Múltiplas rotas entre os nós

Utiliza o conceito de grupos
 Somente um sub-conjunto dos nós realizam encaminhamentos

Cada computador pode ser ligado a uma, ou várias
estações

O protocolo opera com uma fase de Request e outra de
Reply

ODMRP(On-Demand Multicast Routing Protocol)
• Um nó quer enviar uma mensagem, mas não está no grupo ou não conhece uma
rota

ODMRP(On-Demand Multicast Routing Protocol)
• Envia em broadcast uma mensagem do tipo Join Query
• Somente nós membros do grupo respodem esta mensagem

ODMRP(On-Demand Multicast Routing Protocol)
• A cada mensagem recebida, os nós armazenam as informações do source
(originador) e do next hop (nó do qual veio a mensagem)

ODMRP(On-Demand Multicast Routing Protocol)

ODMRP(On-Demand Multicast Routing Protocol)

ODMRP(On-Demand Multicast Routing Protocol)

ODMRP(On-Demand Multicast Routing Protocol)
• Quando um membro recebe um Join Query, ele responde em broadcast com um
Join Reply, enviando as informações de sua tabela (informando o originador e o next
hop, que é por onde recebeu a mensagem)

ODMRP(On-Demand Multicast Routing Protocol)
• Quando um nó recebe um Join Reply, ele verifica se ele encontra-se no caminho
entre o nó que mandou o Join Reply e o originador do Join Query
• Se ele está no caminho, ele sabe que ele faz parte do Grupo de Encaminhamento
(ou FG – Fowarding Group). Seta, então, uma flag chamada FG_FLAG

ODMRP(On-Demand Multicast Routing Protocol)
• Os nós, então, após receberem um Join Reply, enviam em broadcast um Join Reply
com as informações da sua tabela

ODMRP(On-Demand Multicast Routing Protocol)
• As mensagens de Join Reply continuam pela rede, criando FGs por todo o caminho
entre a origem e os membros do grupo

ODMRP(On-Demand Multicast Routing Protocol)

ODMRP(On-Demand Multicast Routing Protocol)
• Ao chegar ao originador, a malha está pronta
• Cada FG (baseado nas diversas informações que recebeu nos Join Reply) sabe o
menor caminho entre todos pares de nodo da topologia

ODMRP(On-Demand Multicast Routing Protocol)
• Enquanto um membro do grupo ainda quer enviar pacotes para o grupo, ele envia
periodicamente pacotes do tipo Join Request, que é uma espécie de “alive”

ODMRP(On-Demand Multicast Routing Protocol)
• Quando um novo membro deseja enviar mensagens no grupo, o processo é
exatamente o mesmo
• Um Join Query em broadcast é enviado, os membros respondem com Join Reply,
que populam a rede com informações sobre as menores rotas

ODMRP(On-Demand Multicast Routing Protocol)
Membro do grupo e FG
• Um membro do grupo também pode ser um FG
• Quando um membro deseja deixar o grupo, basta ele não enviar os Join Reply para
aquele grupo

Disponibiliza várias rotas
 com isso se torna mais resistente a falhas de conexão e
consequentemente à mobilidade
 maior confiabilidade

Rotas são otimizadas, percorrendo o menor caminho
entre os nodos

Facilidade de entrada e saída do grupo multicast

Cria redundâncias para superar a dinamicidade da rede

Usa mais cópias para disseminar os pacotes

Não escalável para redes muito grandes

Intervalo de inundação de mensagens de controle (Join
Query) é crítico
 Intervalo muito pequeno: muitas mensagens na rede (talvez
desnecessárias)
 Intervalo muito grande: aumenta a probabilidade de achar que
membros deixaram o grupo
 Predição de mobilidade pode ajudar a estipular a frequência das
mudanças de rotas

Árvore
 AMRoute (Ad Hoc Multicast Routing Protocol)
 AMIRS (Ad Hoc Multicast Routing Protocol Utilizing
Increasing ID-Numbers)

Malha
 NSMP (Neighboar Supporting Ad Hoc Multicast Routing
Protocol)
 CAMP (Core-Assisted Mesh Protocol)

Árvores x Malhas
 As árvores são compartilhadas entre todos os nós do grupo
Multicast
 Ocasionando congestionamentos na rede

Árvores x Malhas
 Na Malha, os diferentes nós não compartilham o mesmo
caminho
 Os FGs sabem o menor caminho entre dois nós

Árvores x Malhas
Características
Organização da rede
Definição de rotas
Uso dos recursos da rede
Como lida com
mobilidade
Overhead
Árvores
Malhas
Árvore
Malha
Somente um caminho
Vários caminhos
Eficiente
Desperdício
Caminho único
Caminhos alternativos
Baixo
Alto
Download

Multicast - Unisinos