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