IP Multicast : o que é?
•RFC 1112
“IP multicasting is the transmission of an IP
datagram to a ‘host group’, a set of zero or
more hosts identified by a single IP
destination”
IP Multicast : o que é?
•Grupo multicast (endereço IP classe D)
•Vinculação dinâmica de fontes e receptores
•Duplicação de fluxos na camada de rede
Multicast versus Unicast
Unicast
Links
Streams
Multicast versus Unicast
Multicast
Links
Streams
Vantagens com Multicast
•Escalabilidade: sem duplicação de fluxos
•Redução de congestionamentos
•Melhor utilização de banda
•Suporte estrutural e eficiente a aplicações
distribuídas
•Modelo consistente de distribuição de conteúdo
Desvantagens com Multicast
Multicast é baseado em UDP
•Entrega de pacotes no estilo best effort
•Sem mecanismo de controle de fluxo
•Duplicação de pacotes
•Sem mecanismos de ordenamento de pacotes
Multicast - Aplicações
“Multicast enables coordination - it is well suited to
loosely coupled distributed systems (of people, servers,
databases, processes, devices ...)”
RFC 3170
Multicast - Aplicações
•Conferências multimídia
•Distribuição de dados
•Multicast de dados em tempo real
•Simulações e Games
Multicast - Aplicações
•Um-para-muitos (1toM)
•distribuição programada de áudio/vídeo
•push media: notícias, clima, esportes, etc.
•distribuição de arquivos e caching
•anúncios
•monitoração
Multicast - Aplicações
•Muitos-para-muitos (MtoM)
•conferências multimídia
•processamento distribuído
•jogos com múltiplos jogadores
•colaboração
Multicast - Endereçamento
•Endereços Classe D: primeiros 4 bits do endereço
devem ser 1110:
224.0.0.0 - 239.255.255.255
•Para associar um host ao um grupo multicast (= end.
multicast) usa-se o protocolo IGMP entre host e
roteador.
Roteamento multicast: indicação do problema
 Objetivo: encontrar uma árvore (ou árvores)
conectando roteadores que possuam membros de grupo
multicast local
Árvore: não são todos os caminhos entre os
roteadores usados
Baseada na fonte: uma árvore diferente de cada
transmissor para os receptores
Árvore compartilhada: a mesma árvore é usada por
todos o membros do grupo
Roteamento multicast: indicação do
problema(2)
Métodos para construir multicast trees
Métodos:
Árvore baseada na fonte: uma árvore por origem
Shortest path trees
Repasse pelo caminho reverso
Árvore compartilhada pelo grupo: grupo usa uma árvore
Minimal spanning (Steiner)
Center-based trees
Shortest Path Tree
mcast forwarding tree: árvore de rotas de caminho mais
curto da origem para todos os receptores
Algoritmo de Dijkstra
S: source
LEGENDA
R1
1
2
R4
R2
3
R3
roteador com membro de
grupo anexado
5
4
R6
roteador sem nenhum membro
de grupo anexado
R5
6
R7
i
link usado para encaminhamento,
i indica link de ordem
adicionado por algoritmo
Reverse Path Forwarding
Baseia-se no conhecimento dos roteadores sobre
caminhos de unicast mais curtos dele até o transmissor
Cada roteador possui comportamento de encaminhamento
simples:
if (datagrama mcast recebido no link de entrada do
menor caminho de retorno à origem)
then dispara datagramas para todos os links de saída
else ignora datagrama
Reverse Path Forwarding: exemplo
S: source
LEGENDA
R1
R4
roteador com membro de
grupo anexado
R2
R5
R3
R6
R7
roteador sem nenhum membro
de grupo anexado
datagrama será encaminhado
datagrama não será
encaminhado
 Resultado é um reverse SPT de origem específica.
Pode ser uma má escolha com links assimétricos
Reverse Path Forwarding: pruning
Árvores de encaminhamento contêm subárvores com membros
de grupo sem multicast
Não necessita encaminhar datagramas por subárvores
abaixo
Mensagens “prune” são enviadas por upstream pelo roteador
com membros de grupo sem nenhum downstream
LEGENDA
S: source
R1
roteador com membro de
grupo anexado
R4
R2
P
R5
R3
R6
P
R7
P
roteador sem nenhum membro
de grupo anexado
mensagem prune
links com encaminhamento
multicast
Shared-Tree Steiner Tree
Steiner Tree: árvore de custo mínimo conectando todos
os roteadores com membros de grupo anexados
Problema é NP-completo
Existe uma heurística excelente
Não é usado na prática:
Complexidade computacional
Informação sobre toda a rede é necessária
Monolítica: reexecuta sempre que um roteador precisa
se juntar/deixar.
Center-based trees
Única árvore de entrega compartilhada por todos
Um roteador é identificado como “centro” da árvore
para se juntar:
Roteador de borda envia uma join-msg unicast
endereçada ao roteador de centro
join-msg “processada” pelos roteadores intermediários
e encaminhada rumo ao centro
join-msg ou encontra um ramo da árvore para seu
centro, ou chega até o centro
O caminho tomado pela join-msg torna-se um novo
ramo da árvore para esse roteador
Center-based trees: um exemplo
Suponha que R6 foi escolhido como centro:
LEGENDA
R1
R4
3
R2
roteador com membro de
grupo anexado
2
R5
R3
1
R6
R7
1
roteador sem nenhum membro
de grupo anexado
ordem de caminho onde
são geradas mensagens
join
Tunelamento
P.: Como conectar “ilhas” de roteadores multicast num “mar” de
roteadores unicast?
topologia física
topologia lógica
Datagrama mcast encapsulado dentro de um datagrama
“normal” (sem endereço mcast)
O datagrama IP normal é enviado pelo “túnel” via unicast
IP regular para o roteador mcast receptor
O roteador mcast receptor desencapsula para obter o
datagrama mcast
Endereço Anycast
 Um único endereço IP atribuído a várias interfaces
espalhadas numa rede
 Datagrama destinado a um endereço anycast é entregue em
apenas uma interface

Prefixo anunciado (IGP + BGP) a partir de múltiplas
origens

Interface de destino determinada a partir dos
protocolos de roteamento (mais “próxima”)
 Potencialmente útil para a criação de sistemas de alta
disponibilidade
Endereço Anycast (2)
 Exemplo de uso: DNS root-servers

Redução no retardo das requisições para root-servers

Melhor balanceamento da carga

Escalabilidade e disponibilidade

Serviço com mais imunidade a ataques de DDOS

Sistema Autônomo é formado por “ilhas” - não há rede
interna interligando os roteadores de borda!!!
IPv6
 Motivação inicial: o espaço de endereços de 32-bits
em processo de esgotamento.
 Motivações adicionais:

melhorar o formato do header para permitir maior velocidade
de processamento e de transmissão

mudanças no header para incorporar mecanismos de controle
de QOS

necessidade de maior simplicidade para renumeração e
autoconfiguração
 IPv6 formato dos datagramas:

cabeçalho fixo de 40 bytes

não é permitida fragmentação
IPv6 Header
IPv6 Header (2)
Priority: permitir definir prioridades diferenciadas para vários fluxos
de informação
Flow Label: identifica datagramas do mesmo “fluxo.” (conceito de
“fluxo” não é bem definido).
Next header: identifica o protocolo da camada superior ou um header
auxiliar
Formato do endereço IPv6
Formato do endereço Ipv6 (2)
Endereço
Unicast
Representação Extensa
Forma abreviada
3FFE:3102:0:0:8:800:200C:417A 3FFE:3102::8:800:200C:417A
Multicast
FF01:0:0:0:0:0:0:43
FF01::43
Loopback
0:0:0:0:0:0:0:1
::1
Outras mudanças do IPv4

Checksum: removido inteiramente para reduzir o
tempo de processamento em cada hop

Options: são permitidas, mas são alocadas em
cabeçalhos suplementares, indicados pelo campo
“Next Header”


ICMPv6: nova versão de ICMP

tipos de mensagens adicionais , ex. “Packet Too Big”

funções de gerenciamento de grupos multicast
SLAAC e NDP: Stateless Address AutoConfiguration
usando Neighbor Discovery Protocol (fe80::/64)
Transição do IPv4 para IPv6
 Nem todos os roteadores poderão ser atualizados
simultaneamente

não haverá um dia da virada universal

A rede deverá operar com os dois tipos de datagramas
simultaneamente presentes

Duas abordagens propostas:

Dual Stack: algusn roteadores com pilhas de protocolos
duais (v6, v4) podem trocar pacotes nos dois formatos e
traduzir de um formato para o outro

Tunneling: IPv6 transportado dentro de pacotes IPv4
entre roteadores IPv4
Dual Stack Approach
Tunneling
IPv6 dentro do IPv4 onde necessário
Update da ARIN sobre IPv6
• IPv4 status, free pool da IANA terminou!
• Quando sobraram apenas cinco /8's, foi um /8 para cada RIR
• Alocações de IPv6 crescem exponencialmente
• APNIC já está usando seu último /8
• Previsão de esgotamento das faixas livres da LACNIC em 2014
Download

Multicast - Anycast