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
Links
Streams
Unicast
Multicast versus Unicast
Links
Streams
Multicast
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
•Entrega de pacotes no estilo best effort
•Sem mecanismo de controle de fluxo
•Duplicação de pacotes
•Sem mecanismos de ordenamento de pacotes
Multicast é baseado em UDP
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.
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
Roteamento multicast: indicação do problema(2)
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
Métodos para construir multicast trees
mcast forwarding tree: árvore de rotas de caminho mais curto da origem para todos os receptores Algoritmo de Dijkstra
R1
R2
R3
R4
R5
R6 R7
21
6
3 4
5
i
roteador com membro degrupo anexado
roteador sem nenhum membrode grupo anexado
link usado para encaminhamento,i indica link de ordemadicionado por algoritmo
LEGENDAS: source
Shortest Path Tree
if (datagrama mcast recebido no link de entrada do menor caminho de retorno à origem)then dispara datagramas para todos os links de saídaelse ignora datagrama
Baseia-se no conhecimento dos roteadores sobre caminhos de unicast mais curtos dele até o transmissor
Cada roteador possui comportamento de encaminhamento simples:
Reverse Path Forwarding
Resultado é um reverse SPT de origem específica. Pode ser uma má escolha com links assimétricos
R1
R2
R3
R4
R5
R6 R7
roteador com membro degrupo anexado
roteador sem nenhum membrode grupo anexado
datagrama será encaminhado
LEGENDAS: source
datagrama não seráencaminhado
Reverse Path Forwarding: exemplo
Á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
R1
R2
R3
R4
R5
R6 R7
roteador com membro degrupo anexado
roteador sem nenhum membrode grupo anexado
mensagem prune
LEGENDAS: source
links com encaminhamentomulticast
P
P
P
Reverse Path Forwarding: pruning
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.
Shared-Tree Steiner Tree
Ú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
Suponha que R6 foi escolhido como centro:
R1
R2
R3
R4
R5
R6 R7
roteador com membro degrupo anexado
roteador sem nenhum membrode grupo anexado
ordem de caminho onde são geradas mensagens join
LEGENDA
21
3
1
Center-based trees: um exemplo
P.: Como conectar “ilhas” de roteadores multicast num “mar” de roteadores unicast?
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
topologia física topologia lógica
Tunelamento
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çãoFlow 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 Representação Extensa Forma abreviada
3FFE:3102:0:0:8:800:200C:417A 3FFE:3102::8:800:200C:417A
FF01:0:0:0:0:0:0:43 FF01::43
0:0:0:0:0:0:0:1 ::1
Unicast
Multicast
Loopback
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
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