Teleprocessamento e Redes Capítulo 4: Camada de Rede Prof. Fábio M. Costa INF / UFG Visão Geral 2 Serviço oferecidos pela camada de rede Organização interna da camada de rede Algoritmos de roteamento – visão geral Controle de congestionamento Interconexão de redes A camada de rede na Internet A camada de rede em redes ATM – visão geral Prof. Fábio M. Costa - INF / UFG No contexto da pilha de protocolos... 3 Prof. Fábio M. Costa - INF / UFG Função básica da Camada de Rede Determinar caminhos para a transmissão de pacotes Conduzir pacotes através da rede, passando por vários nodos, da origem até o destino – Nodo: Roteador ou Host Primeira camada que se ocupa com transmissão de dados fim-a-fim Sub-rede R1 4 Origem R2 R4 R3 R5 Destino Prof. Fábio M. Costa - INF / UFG Fução básica da Camada de Rede (2) application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical 5 Prof. Fábio M. Costa - INF / UFG Pressupostos básicos Conhecimento da topologia da rede Capacidade de escolher caminhos otimizados Evitar a sobrecarga de certos enlaces ou roteadores Lidar com as incompatibilidades entre redes diferentes – 6 Quando origem e destino se encontram em redes com características diferentes Prof. Fábio M. Costa - INF / UFG Serviço oferecido pela Camada de Rede Requisitos fundamentais: – – – Dois tipos mutuamente excludentes de serviços: – – 7 Independentes da tecnologia da rede subjacente Isolar a Camada de Transporte das questões relativas ao tamanho, tipo e topologia das subredes presentes Usar um esquema de endereçamento uniforme Serviço orientado a conexões Serviço sem conexões Prof. Fábio M. Costa - INF / UFG Serviço sem conexões Defendido pela comunidade ligada à Internet Argumentos principais: – A função da sub-rede é mover bits de um lado para o outro – A sub-rede é inerentemente não-confiável, independentemente de seu design 8 SEND_PACKET, RECEIVE_PACKET Hosts devem aceitar o fato, sendo que os mesmos são responsáveis pelo controle de erros e de fluxo Tornar a sub-rede o mais simples possível Movendo a complexidade adicional para os hosts (computadores dos usuários) Prof. Fábio M. Costa - INF / UFG Serviço orientado a conexões Defendido pela comunidade ligada às companhias telefônicas Principais argumentos: – Sub-rede deve prover um serviço confiável – Usuários (hosts) não devem se preocupar com estes “detalhes” 9 Funções como controle de erros e de fluxo são realizadas pela sub-rede Apropriado no caso de terminais “burros”: telefone Remove a complexidade dos hosts Sub-rede mais complexa Prof. Fábio M. Costa - INF / UFG Organização interna da Camada de Rede Rede baseada em Circuitos Virtuais X Rede baseada em Datagramas Datagramas Circuitos Virtuais (VC) – – – 10 rota fixa no estabelec. da conexão roteadores mantém tabela de VCs ativos análogo ao sistema telefônico – – – rota determinada para cada pacote individual pacotes podem seguir rotas diferentes análogo ao sistema postal Prof. Fábio M. Costa - INF / UFG Sub-rede baseada em Circuitos Virtuais Cada roteador mantém uma tabela de VCs: – – Cada VC recebe um número único no contexto de um roteador – 11 Uma entrada para cada VC passando por ele Indicando a interface de rede através da qual pacotes de cada VC devem ser encaminhados O mesmo VC pode ser identificado através de números diferentes em roteadores distintos Pacotes são identificados pelo número do VC ao qual pertencem Prof. Fábio M. Costa - INF / UFG Sub-rede baseada em Circuitos Virtuais (2) Protocolo de sinalização – – Usado para o estabelecimento de circuitos virtuais Antes que transferência de dados real possa ocorrer application transport 5. Data flow begins network 4. Call connected data link 1. Initiate call physical 12 6. Receive data application 3. Accept call 2. incoming call transport network data link physical Prof. Fábio M. Costa - INF / UFG Sub-rede baseada em Datagramas Cada roteador mantém uma tabela indicando: – A interface de rede através da qual cada roteador existente pode ser atingido – Tabela de rotas Pacotes (datagramas) devem conter o endereço completo do destino – 13 Interface usada para encaminhar pacotes destinados àquele roteador específico Roteadores usam este endereço para verificar, em suas tabelas de rotas, qual interface usar para encaminhar cada pacote recebido Prof. Fábio M. Costa - INF / UFG Sub-rede baseada em Datagramas (2) Não é necessário tempo inicial de preparação da conexão Dados começam a ser transmitidos imediatamente application transport network data link 1. Send data physical 14 application transport network 2. Receive data data link physical Prof. Fábio M. Costa - INF / UFG Circuitos Virtuais e Datagramas: Comparação Aspecto Sub-rede baseada em Datagramas Sub-rede baseada em VCs Estabelecimento de circuito Não necessário Necessário. Overhead inicial Endereçamento Cada pacote contém o endereço completo do destino Cada pacote contém um pequeno número identificando o VC Informação de estado Sub-rede stateless Cada VC requer uma entrada na tabela de VCs Roteamento Cada pacote roteado independente Rota escolhida quando do estabelecim. do VC Efeito de falhas de roteadores Nenhum. Pacotes podem seguir outra rota VCs passando pelo roteador são terminados Controle de congestionamento Difícil Resolvido com a reserva de buffers para cada VC 15 Prof. Fábio M. Costa - INF / UFG Estrutura Interna da Sub-rede e Tipos de Serviço Tipo de sub-rede Tipo de serviço (camada superior) 16 Datagrama Circuito Virtual Sem-conexão UDP sobre IP UDP sobre IP sobre ATM Orientado a conexão TCP sobre IP ATM AAL1 sobre ATM Prof. Fábio M. Costa - INF / UFG Roteamento Principal função da camada de rede – – – Pacotes passam por múltiplos nós intermediários até chegar ao destino Achar o “melhor” dentre vários caminhos alternativos (de acordo com algum critério) Em redes de difusão (broadcast): 17 Dispensa roteamento internamente Mas não se origem e destino estiverem em redes diferentes Prof. Fábio M. Costa - INF / UFG Algoritmos de Roteamento Parte do software de camada de rede responsável por decidir o caminho a ser seguido pelos pacotes – Em redes baseadas em Datagrama: – Roteamento é (ou pode ser) feito individualmente para cada pacote Em redes baseadas em Circuito Virtual: – 18 Geralmente executado passo-a-passo Roteamento por sessão: caminho fixo seguido por todos os pacotes de um mesmo VC Prof. Fábio M. Costa - INF / UFG Algoritmos de Roteamento: Propriedades desejáveis Corretude – Simplicidade – Facilidade de implementação e baixo custo computacional Robustez – – 19 Caminhos calculados deve conduzir ao destino endereçado Funcionar continuamente, a despeito de falhas de nodos (roteadores), mudanças de topologia da rede, variações nos padrões de tráfego Algoritmo distribuído Prof. Fábio M. Costa - INF / UFG Algoritmos de Roteamento: Propriedades desejáveis (2) Estabilidade – O algoritmo deve convergir (de maneira determinística, de preferência) Justiça (Fairness) – O algoritmo não deve favorecer alguns nodos (roteadores) em detrimento de outros Optimalidade – 20 distribuição de carga deve ser balancea entre os nodos oportunidade de transmissão de pacotes deve ser igual para todos os nodos (hosts). Em nível global da rede Vs. no nível de cada sessão Prof. Fábio M. Costa - INF / UFG OBS.: Justiça Vs. Optimalidade Optimizar throughput de tráfego global Sessões independentes entre: A e A´, B e B´, C e C´ – Vs. Justiça para com todos os hosts – 21 Comunicação entre X e X´ pode ficar prejudicada Prof. Fábio M. Costa - INF / UFG Critérios para otimização Duas metas conflitantes: 1) Minimizar o atraso médio de transmissão (fim-a- 2) – fim) de pacotes Maximizar o throughput global da rede Meta (2) requer que a rede opere no limite de sua capacidade – Filas mais longas: aumenta-se o tempo que cada pacote tem que esperar para ser roteado 22 Com as filas de pacotes nos roteadores sempre cheias Conseqüentemente, aumenta-se o atraso fim-a-fim dos pacotes Prof. Fábio M. Costa - INF / UFG Otimização: Solução de compromisso Minimizar o número de roteadores intermediários que um pacote tem que percorrer Tende a melhorar o atraso fim-a-fim Reduz a quantidade de largura de banda consumida por cada sessão de comunicação – Tende a melhorar o throughput global da rede 23 Rede capaz de suportar mais sessões Prof. Fábio M. Costa - INF / UFG Categorias de Algoritmos de Roteamento Algoritmos não-adaptativos (ou estáticos) – Caminhos são computados previamente (off-line) e então descarregados nos roteadores Algoritmos adaptativos – – Rotas são computadas dinamicamente Cálculo de rotas é feito periodicamente, baseado nas condições atuais da rede 24 Análise de variáveis em âmbito local ou global Métricas: distância, número de hops, estimativa de delay Refletindo mudanças na topologia e nas características de tráfego Prof. Fábio M. Costa - INF / UFG Princípio da Optimalidade Se o roteador J está no caminho ótimo do roteador I para o roteador K, então o caminho ótimo de J para K também segue a mesma rota I K J Melhor caminho de J para K 25 Melhor caminho de I para K Prof. Fábio M. Costa - INF / UFG Árvore de “sorvedouro” 26 O conjunto de rotas ótimas de todas os nodos-origem para um dado nodo de destino forma uma árvore cuja raiz é o nodo de destino Pode haver mais do que uma árvore de sorvedouro para uma mesma rede Prof. Fábio M. Costa - INF / UFG Árvore de “sorvedouro” (2) Cada roteador pode ter uma visão diferente da árvore – 27 Ex.: devido a mudanças na topologia da rede, as quais podem não ser percebidas por todos os roteadores ao mesmo tempo Mecanismo usado pelos roteadores para obter informações de topologia para montar a árvore: dependente de protocolo Provê um modelo genérico para algoritmos de roteamento (juntamente com o princípio da optimalidade) Prof. Fábio M. Costa - INF / UFG Roteamento por Caminho Mais Curto Constrói-se um grafo da sub-rede – – nodos representando roteadores arestas representando enlaces de comunicação Melhor rota entre um dado par de roteadores Rota mais curta entre os dois nodos correspondentes no grafo 28 Prof. Fábio M. Costa - INF / UFG Métricas para se calcular o custo de um caminho Número de saltos (hops) ou enlaces intermediários Distância geográfica Tempo médio de enfileiramento e transmissão nos roteadores Largura de banda dos enlaces Carga de tráfego nos enlaces Custo monetário da comunicação Ou uma função de várias destas métricas 29 Prof. Fábio M. Costa - INF / UFG Exemplo Métrica: número de saltos: – Métrica: distância geográfica: – 30 rota ABCD (3 saltos) melhor que rota ABEFHD (5 saltos) rota ABEFHD (dist.=10) melhor que rota ABCD (dist.=12) Prof. Fábio M. Costa - INF / UFG Algoritmo de Djikstra† para caminhos mínimos Cada nodo é rotulado com sua distância a partir do nodo origem da rota – Inicialmente: – – 31 ao longo da melhor rota conhecida até então Nenhuma rota é conhecida Todos os nodos são rotulados com distância infinita À medida em que o algoritmo prossegue, rótulos podem mudar, refletindo melhores caminhos encontrados Prof. Fábio M. Costa - INF / UFG Algoritmo de Djikstra† para caminhos mínimos (2) Rótulo: – – tentativo: não se sabe se reflete a melhor rota permanente: rótulo representa a melhor rota Inicialmente, todos os rótulos são tentativos Ao se descobrir que o rótulo de um nodo representa a melhor rota da origem até tal nodo, este rótulo é tornado permanente – 32 I.e., nodo correspondente faz parte da melhor rota Não pode ser mais alterado Repete até chegar ao nodo de destino Prof. Fábio M. Costa - INF / UFG Exemplo: Rota mais curta de A para D 33 Prof. Fábio M. Costa - INF / UFG Roteamento Hierárquico 34 Rede é dividida em regiões Algoritmo de roteamento é executado independentemente em cada região Apenas os nodos (roteadores) que conectam uma região à outra têm conhecimento de regiões externas Melhor escalabilidade Prof. Fábio M. Costa - INF / UFG Roteamento Hierárquico: Exemplo 35 Prof. Fábio M. Costa - INF / UFG Roteamento para Hosts Móveis 36 Prof. Fábio M. Costa - INF / UFG Controle de Congestionamento Quando o número de pacotes presentes na rede está acima de sua capacidade Tráfego ligeiramente acima do limite: – Roteadores começam a perder pacotes Tráfego muito acima do limite: – 37 Colapso Prof. Fábio M. Costa - INF / UFG Congestionamento: Principais causas Vazão de pacotes que chegam em um roteador é maior do que a vazão de saída de pacotes – – Ex.: tráfego chegando por várias linhas, mas com uma única linha de saída Overflow do buffer (fila) do roteador Fila Roteador 38 Prof. Fábio M. Costa - INF / UFG Congestionamento: Principais causas (2) Baixa capacidade de processamento nos roteadores – – Enlaces de baixa capacidade – Efeito semelhante Melhorar em um ponto apenas não resolve o problema – 39 Roteador não consegue processar todo o tráfego que chega Overflow das filas do roteador Deve-se eliminar todos os “gargalos” na rede Prof. Fábio M. Costa - INF / UFG Congestionamento: Principais causas (3) Processo de re-alimentação – – – 40 Congestionamento causa o descarte de pacotes Pacotes descartados são retransmitidos Aumentando o congestionamento ainda mais Prof. Fábio M. Costa - INF / UFG Controle de Congestionamento: Princípios gerais Soluções de loop aberto: – – Prevenção de congestionamento através de um bom design da rede e de seus protocolos Técnicas mai comun: – 41 Controle de admissão de tráfego: quando aceitar novas conexões ou pacotes para transmitir Decisões de escalonamento apropriadas: balancear a carga entre os roteadores da rede Técnica essencialmente preventiva Prof. Fábio M. Costa - INF / UFG Controle de Congestionamento: Princípios gerais (2) Soluções de loop fechado: – Baseadas em retro-alimentação (feedback) – Principais métricas: – % de pacotes perdidos, tamanho médio das filas, % de pacotes que sofrem timeouts, atraso médio dos pacotes Cuidar para não acentuar o congestionamento 42 Monitorar o sistema para detectar congestionamentos Informar hosts e roteadores p/ que tomem a ação apropriada (ex.: reduzir envio de pacotes) Ajustar a operação do sistema para corrigir o problema Não enviar pacotes de controle de congestionamento desnecessariamente. Ex.: usar piggybacking Prof. Fábio M. Costa - INF / UFG Controle de Congestionamento: Princípios gerais (3) Aumentar temporariamente a quantidade de recursos da rede para lidar com a carga de tráfego extra – Fazendo-se valer da redundância incorporada à rede para fins de tolerância a falhas – Contratação temporária de mais recursos Aumentar a largura de banda dos enlaces Medidas drásticas: – 43 Roteadores e enlaces redundantes Recusa ou degradação do serviço prestado aos usuários Prof. Fábio M. Costa - INF / UFG Controle de Congestionamento: Onde aplicar Essencialmente uma tarefa “fim-a-fim” Em redes baseadas em circuitos virtuais – Em redes baseadas em datagramas – 44 Na própria camada de Rede Na camada de Transporte Técnicas auxiliares podem ser empregadas na camada de Enlace Prof. Fábio M. Costa - INF / UFG Políticas de Prevenção de Congestionamento 45 Prof. Fábio M. Costa - INF / UFG Modelamento de Tráfego Tráfego de dados geralmente não segue um padrão de fluxo constante – – Transmissão em “rajadas” Torna mais difícil o controle de congestionamento Modelamento de tráfego (traffic shaping): – Regular o tráfego de forma a: – 46 Impor uma certa regularidade (eliminando rajadas) Controlar a taxa de transmissão Baseado em um acordo entre o usuário e a subrede Prof. Fábio M. Costa - INF / UFG Modelamento de Tráfego (2) Requer policiamento do tráfego pela subrede – Para verificar se o usuário está obedecendo o acordo firmado inicialmente, quanto à: – – 47 Taxa de transmissão (vazão) Regularidade do tráfego Mais simples de implantar em redes de circuito virtual Em redes de datagrama: implementado na camada de Transporte (fim-a-fim) Prof. Fábio M. Costa - INF / UFG Controle de Congestionamento: Algoritmo do “Balde furado” (leaky bucket) 48 Prof. Fábio M. Costa - INF / UFG Resumo dos Tópicos Abordados 49 Serviço oferecido pela camada de Rede Protocolos de Roteamento Controle de Congestionamento Interconexão de Redes Camada de Rede na Internet Prof. Fábio M. Costa - INF / UFG Interconexão de Redes 50 Diversidade de tecnologias de rede incompatíveis, mas que precisam ser interligadas Prof. Fábio M. Costa - INF / UFG Dispositivos de interconexão de redes Camada Dispositivo Funcionalidade Física Repetidor Cópia de bits entre segmentos de cabo distintos Enlace Ponte Armazenar e retransmitir quadros com base no endereço de destino Rede Roteador multiprotocolo Armazenar e retransmitir quadros, rotear pacotes, compatibilizar protocolos de rede diferentes Transporte Gateway de transporte Conectar duas redes no nível de transporte Aplicação Conectar duas partes de uma mesma aplicação suportada por protocolos de aplicação diferentes 51 Gateway de aplicação Prof. Fábio M. Costa - INF / UFG “Half- and Full Gateways” 52 Prof. Fábio M. Costa - INF / UFG Diferenças entre redes 53 Prof. Fábio M. Costa - INF / UFG Duas abordagens básicas para interconexão 54 Concatenação de circuitos virtuais Interconexão baseada em datagramas (i.e., sem conexão) Tunelamento (tunneling) Prof. Fábio M. Costa - INF / UFG Concatenação de Circuitos Virtuais 55 Roteadores concatenam circuitos virtuais estabelecidos dentro das redes conectadas Problemas ao conectar redes com características diferentes em relação à confiabilidade Prof. Fábio M. Costa - INF / UFG Interconexão Baseada em Datagramas 56 Cada pacote tratado independentemente Pacotes podem seguir rotas diferentes, passando por diferentes roteadores e redes Prof. Fábio M. Costa - INF / UFG Problemas com Interconexão Baseada em Datagramas Redes com protocolos diferentes – – Esquemas de endereçamento diferentes – – 57 Pacotes de uma rede não podem trafegar na outra Conversão de protocolos só faz sentido se os dois protocolos forem suficientemente semelhantes Ex.: endereços IP de 32 bits versus endereços decimais utilizados pelo protocolo OSI CLNP Conversão de endereços pode requerer grandes bases de dados: difícil de gerenciar Prof. Fábio M. Costa - INF / UFG Comparação Concatenação de circuitos virtuais – – – – – – – – 58 Reserva adiantada de buffers evita congestionamento Garante seqüência dos pacotes Cabeçalhos mais curtos Elimina duplicação de pacotes Tabelas de VCs em memória Rotas fixas Vulnerável a falhas de roteadores Impossível de implementar se alguma rede intermediária for baseada em datagramas Interconexão baseada em datagramas – – – – – Sujeito a congestionamentos Roteamento adaptável Robustez frente a falhas de roteadores Cabeçalhos mais longos Pode ser empregado na interconexão de redes baseadas em datagramas e redes de circuito virtual Prof. Fábio M. Costa - INF / UFG Tunneling Aplicável quando as redes de origem e destino da conexão são do mesmo tipo – 59 Mas os dados devem passar por redes intermédiárias com características diferentes Pacote original (inteiro) é transmitido dentro do campo de payload de um pacote da rede intermediária Na rede de destino, o pacote é removido e transmitido normalmente até seu endereço final Técnica comum ao se conectar duas redes locais através de uma rede pública de longa distância Prof. Fábio M. Costa - INF / UFG Tunneling (2) 60 Prof. Fábio M. Costa - INF / UFG Tunneling: Analogia 61 Prof. Fábio M. Costa - INF / UFG Roteamento Inter-Redes Semelhante ao roteamento dentro de uma única rede – Mas realizado de forma hierárquica 62 Roteamento interno: dentro de cada rede Roteamento externo: entre as redes interconectadas Prof. Fábio M. Costa - INF / UFG Roteamento entre Sistemas Autônomos Cada rede interconectada pode ser independente das demais Protocolo de roteamento próprio Diferentes políticas de administração do tráfego – 63 Ex.: Diferentes leis ao cruzar fronteiras nacionais Diferentes mecanismos para atribuir custo ao serviço de transmissão de dados Diferentes qualidades de serviço Faz do roteamento uma tarefa mais complexa Prof. Fábio M. Costa - INF / UFG Fragmentação de Pacotes Diferentes redes possuem limites diferentes quanto ao tamanho máximo de pacotes Problema ao se transmitir um pacote através de uma rede intermediária cujo tamanho máximo permitido seja menor – – 64 Se for uma rede intermediária, pode-se tentar contorná-la Se for a rede de destino, a única saída é fragmentar o pacote em vários pacotes menores a serem transmitidos separadamente Remontagem do pacote original no destino Prof. Fábio M. Costa - INF / UFG Fragmentação de Pacotes: Transparente Vs. Não-Transparente 65 Prof. Fábio M. Costa - INF / UFG Fragmentação Transparente Hosts não precisam se preocupar com a remontagem, que é feita pela rede Todos os pacotes devem deixar a rede intermediária através do mesmo roteador – – 66 Para que o pacote original possa ser remontado Não permite explorar rotas alternativas Overhead gerado por sucessivas fragmentações e remontagens de pacotes Prof. Fábio M. Costa - INF / UFG Fragmentação Não-Transparente Hosts devem ser capazes de remotar os pacotes Aumenta o overhead de cabeçalho – Cada fragemento pode passar por uma rota diferente Um dado fragmento pode necessitar fragementação – ao passar por uma rede com limite ainda mais estrito Remontagem depende do esquema de numeração dos fragmentos – 67 cada fragmento é um pequeno pacote com cabeçalho completo que precisa ser robusto na presença de perdas de pacotes Prof. Fábio M. Costa - INF / UFG Esquema de Numeração dos Fragmentos 68 Prof. Fábio M. Costa - INF / UFG Firewalls Segregação de tráfego Impedir que tráfego expúrio entre na rede – Impedir que informações valiosas deixem a rede de maneira não autorizada – informações confidenciais, segredos de negócio Impedir tipos de acesso que podem trazer vulnerabilidades à rede – 69 vírus, worms, hackers, spam telnet Prof. Fábio M. Costa - INF / UFG Estrutura de uma Firewall 70 Prof. Fábio M. Costa - INF / UFG Firewall: Filtro de Pacotes Roteador equipado com funcionalidade adicional para: – aceitar ou descartar pacotes de acordo com algum critério programado Dois filtros, localizados em redes distintas – – – 71 endereços de origens e destinos aceitáveis endereços de origens e destinos bloqueados protocolos de aplicação aceitáveis (ex.: web, e-mail) Impedindo comunicação direta entre a parte externa e a parte interna da firewall Filtro interno: checa pacotes que saem Filtro externo: checa pacotes que chegam Prof. Fábio M. Costa - INF / UFG Firewall: Gateway de Aplicação Examina os dados que entram e saem da rede no nível das aplicações Ex.: um gateway de e-mail examinaria o conteúdo das mensagens: – – – 72 cabeçalho texto da mensagem tamanho da mensagem Prof. Fábio M. Costa - INF / UFG Firewalls e Redes sem Fio 73 Firewalls são baseadas na suposição de que não há outros meios de comunicação entre a rede interna e a rede externa Esta suposição é inválida no caso de redes sem fio ... Prof. Fábio M. Costa - INF / UFG A Camada de Rede na Internet 74 O protocolo IP Endereços IP Sub-redes Protocolos de controle Protocolos de roteamento Multicasting IP Móvel Classless InterDomain Routing IPv6 Prof. Fábio M. Costa - INF / UFG A Camada de Rede na Internet 75 Prof. Fábio M. Costa - INF / UFG Modelo típico de comunicação Camada de Transporte (TCP, UDP, etc.) Camada de Transporte Stream de dados ... Stream Datagramas (≤64KB) Camada de Rede (IP) 76 Fragmentos de datagramas ... ... Datagramas (≤64KB) Camada de Rede (IP) Prof. Fábio M. Costa - INF / UFG O Protocolo IP (Internet Protocol): Formato de Pacote Ordem de Transmissão dos Bits (Big Endian) Máx: 40 bytes (10 words) 77 Prof. Fábio M. Costa - INF / UFG Pacotes IP Versão – – – 78 Número da versão do protocolo IP utilizada Atualmente: 4 Permite transição suave entre versões diferentes do protocolo Prof. Fábio M. Costa - INF / UFG Pacotes IP IHL (Internet Header Length) – – 79 Comprimento do cabeçalho do pacote (em palavras de 32 bits) Mínimo: 5 (20 bytes); Máximo: 15 (60 bytes) Prof. Fábio M. Costa - INF / UFG Pacotes IP Tipo de serviço – – – – 80 Permite solicitar vários tipos de serviço diferentes 3 bits de precedência: prioridade do pacote (0: normal, 7: máx.) 3 bits de flags: Delay, Throughput, Reliability Na prática, este campo é ignorado pelos roteadores Prof. Fábio M. Costa - INF / UFG Pacotes IP Comprimento total – – 81 Cabeçalho + Dados Máx.: 65.535 bytes Prof. Fábio M. Costa - INF / UFG Pacotes IP Identificação – – 82 Usado no caso de datagramas fragmentados Indica a qual datagrama o fragmento pertence Fragmentos são transmitidos como pacotes. Isto é, um datagrama pode ser transmitido em um ou mais pacotes. Prof. Fábio M. Costa - INF / UFG Pacotes IP Bit DF (Don´t Fragment) – Bit MF (More Fragments) – 83 Impede que roteadores fragmentem um datagrama Indica se o fragmento é (0) ou não o último na seqüência de fragmentos que compõem um datagrama Prof. Fábio M. Costa - INF / UFG Pacotes IP Fragment Offset – 84 Indica a posição, dentro do datagrama original, onde tem início o fragmento Prof. Fábio M. Costa - INF / UFG Pacotes IP Time to Live – – – 85 Contador utilizado para limitar o tempo de vida de um pacote na rede Decrementado a cada roteador intermediário pelo qual um pacote passa no percurso da origem até o destino Evita que pacotes fiquem trafegando na rede indefinidamente Prof. Fábio M. Costa - INF / UFG Pacotes IP Protocol – – – 86 Identifica o protocolo de Transporte que gerou os dados contidos no pacote Útil quando o IP vai entregar um datagrama à camada de transporte no destino: que processo chamar Cada protocolo de Transporte tem um número padrão (RFC 1700) Prof. Fábio M. Costa - INF / UFG Pacotes IP Header Checksum – – – 87 Código de detecção de erros do cabeçalho IP não checa erros na parte de dados do pacote Deve ser re-computado em cada roteador intermediario: cabeçalho pode mudar ao longo do caminho (campo time to live) Prof. Fábio M. Costa - INF / UFG Pacotes IP Endereços de Origem e de Destino – – 88 32 bits Identificam a origem e o destino do pacote Prof. Fábio M. Costa - INF / UFG Pacotes IP 89 Campo de Opções Prof. Fábio M. Costa - INF / UFG Endereços IP Endereço único atribuído a computadores ou roteadores presentes na Internet Composição: – – Máquinas conectadas a mais de uma rede: – – 90 Número da rede Número da máquina (host) através de várias interfaces de rede um endereço IP para identificar cada interface 5 Classes de endereços: A, B, C, D, E Prof. Fábio M. Costa - INF / UFG Endereços IP 91 Prof. Fábio M. Costa - INF / UFG Endereços IP: Classes Classe A – Classe B – 92 2 milhões de redes com até 254 hosts cada Classe D: – 16.382 redes com até 64K hosts cada Classe C – 126 redes com até 16 milhões de hosts cada Endereços de multicast Classe E: reservada para uso futuro Prof. Fábio M. Costa - INF / UFG Endereços IP: Formato Notação decimal pontuada Ex.: 192.41.6.20, 200.18.197.65 Primeiro e último números de cada rede: – 93 este host e broadcast na rede, respectivamente Prof. Fábio M. Costa - INF / UFG Sub-redes Partição de uma rede IP em várias redes – – Permite um melhor aproveitamento de endereços de rede – Um mesmo número de rede IP pode ser particionado em várias redes físicas (ex.: LANs) Subnet mask – 94 Efeito no endereçamento e roteamento interno Externamente: visto como uma única rede Indica quais bits do endereço identificam a subrede e quais identificam uma máquina específica Prof. Fábio M. Costa - INF / UFG Subnet Mask Exemplo: – – – Rede classe C: 200.18.162.0 Subnet mask: 255.255.255.192 Divide a rede classe C original em 4 sub-redes: 95 200.18.162.0 a 63, 200.18.162.64 a127, 200.18.162.128 a 191, 200.18.162.192 a 255 1o. e último endereços: this host e broadcast na sub-rede Prof. Fábio M. Costa - INF / UFG Processamento de Pacotes nos Roteadores: Sem Sub-redes Cada roteador tem uma tabela de rotas, com dois tipos de entradas: – – 96 (rede, 0): rota para chegar a uma rede distante (esta_rede, host): rota para máquinas locais Rotas: interface de rede através da qual um pacote deve ser transmitido para chegar ao destino (rede ou host) Rota default: utilizada quando o roteador não conhece a rede de destino do pacote Prof. Fábio M. Costa - INF / UFG Processamento de Pacotes nos Roteadores: Com Sub-redes Dois novos tipos de entradas na tabela de rotas: – – Ao receber um pacote para encaminhamento (destinado a outra sub-rede): – 97 (esta_rede, sub-rede, 0): rota para chegar a uma das outras sub-redes (esta_rede, sub-rede, host): rota para chegar a um host na sub-rede onde está o roteador Endereço IP AND subnet mask: para isolar o número da rede e sub-rede e então fazer o lookup na tabela de rotas Roteador não precisa manter rotas individuais para hosts em outras sub-redes Prof. Fábio M. Costa - INF / UFG Tabela de rotas em um roteador de pequeno porte: Exemplo fmc@zeus:~> netstat -r Kernel IP routing table Destination Gateway 200.137.197.128 apollo.inf.ufg. 200.137.197.192 artemis.inf.ufg 200.137.197.0 * 200.137.197.64 * default ares.inf.ufg.br Genmask 255.255.255.192 255.255.255.192 255.255.255.192 255.255.255.192 0.0.0.0 Flags UG UG U U UG MSS 40 40 40 40 40 Window 0 0 0 0 0 irtt 0 0 0 0 0 Iface eth1 eth1 eth1 eth0 eth1 Genmask 255.255.255.192 255.255.255.192 255.255.255.192 255.255.255.192 0.0.0.0 Flags UG UG U U UG MSS 40 40 40 40 40 Window 0 0 0 0 0 irtt 0 0 0 0 0 Iface eth1 eth1 eth1 eth0 eth1 fmc@zeus:~> fmc@zeus:~> netstat -nr Kernel IP routing table Destination Gateway 200.137.197.128 200.137.197.2 200.137.197.192 200.137.197.6 200.137.197.0 0.0.0.0 200.137.197.64 0.0.0.0 0.0.0.0 200.137.197.1 fmc@zeus:~> 98 Prof. Fábio M. Costa - INF / UFG Topologia da rede 200.137.197.192 200.137.197.128 zeus.inf.ufg.br eth0 apollo artemis 200.18.197.2 200.18.197.6 eth1 200.137.197.0 200.137.197.64 200.137.197.1 UFGNet 99 ares.inf.ufg.br Prof. Fábio M. Costa - INF / UFG Outro exemplo de tabela de rotas: ares.inf.ufg.br Destination Gateway Genmask Flags 200.137.192.0 200.137.197.0 200.137.197.64 200.137.197.128 200.137.197.192 192.168.0.0 192.168.40.0 0.0.0.0 0.0.0.0 0.0.0.0 200.137.197.11 200.137.197.2 200.137.197.6 200.137.197.18 200.137.197.18 200.137.192.1 255.255.255.0 255.255.255.192 255.255.255.192 255.255.255.192 255.255.255.192 255.255.255.0 255.255.255.0 0.0.0.0 U U UG UG UG UG UG UG MSS 1500 1500 1500 1500 1500 1500 1500 1500 Window irtt Iface 0 0 0 0 0 0 0 0 eth0 eth1 eth1 eth1 eth1 eth1 eth1 eth0 0 0 0 0 0 0 0 0 Ver esboço da topologia da rede no próximo slide 100 Prof. Fábio M. Costa - INF / UFG 101 Prof. Fábio M. Costa - INF / UFG Protocolos de Controle da Internet 102 Monitoramento, configuração e controle do funcionamento da camada de rede Pacotes destes protocolos são encapsulados em pacotes IP para transmissão ICMP ARP RARP BOOTP DHCP Prof. Fábio M. Costa - INF / UFG ICMP – Internet Control Message Protocol Usado pelos roteadores para: – – Reportar eventos anômalos Testar a rede Exemplo: utilitário ping – – Envia um pacote de requisição de “eco” e aguarda a resposta Efetua medições: 103 Tempo de resposta % de pacotes perdidos Prof. Fábio M. Costa - INF / UFG ICMP: Tipos de mensagens 104 Prof. Fábio M. Costa - INF / UFG ARP – Address Resolution Protocol Roteadores (camada de rede): utilizam endereços IP de 32 bits LAN (camada de enlace): utiliza endereços MAC (ex.: endereços Ethernet de 48 bits) Transmissão de um pacote na rede local: – – 105 Encapsular o pacote em um quadro Ethernet Mapear o endereço IP em um endereço Ethernet Protocolo ARP dispensa a necessidade de extensas tabelas de mapeamento Normalmente não usado se destino em outra rede Prof. Fábio M. Costa - INF / UFG ARP: Funcionamento Host de origem do pacote IP efetua o broadcast de um pacote ARP contendo: – – Host de destino responde com outro pacote ARP contendo seu próprio end. Ethernet – 106 Endereço IP do host de destino Endereços IP e Ethernet do host de origem Aproveita o endereço Ethernet recebido do host de origem Mapeamentos de endereços são guardados em uma cache (para evitar outros broadcasts) Prof. Fábio M. Costa - INF / UFG ARP: Exemplo 107 Prof. Fábio M. Costa - INF / UFG RARP – Reverse Address Resolution Protocol Dado um endereço Ethernet, qual o endereço IP correspondente? Útil ao inicializar uma estação sem disco (ou, mais genericamente, estações que não conhecem seu endereço IP) – – Estação faz um broadcast RARP, contendo seu endereço MAC (ex.: end. Ethernet de 48 bits) Servidor RARP responde com o endereço IP da estação – 108 Tudo o que a estação conhece é seu endereço MAC O endereço IP da estação pode mudar caso esta seja movida para uma rede diferente Cada rede local deve ter um servidor RARP Prof. Fábio M. Costa - INF / UFG Protocolos mais sofisticados para a configuração inicial de estações BOOTP – – – – DHCP (Dynamic Host Configuration Protocol) – Flexível quanto ao tipo de informação de configuração a ser fornecido pelo servidor Utilizam broadcast no nível do protocolo UDP – – 109 Endereço IP da estação Endereço IP do servidor de arquivos contendo a imagem de memória de estações sem disco Endereço IP do roteador default Subnet mask a ser usada propagado pelos roteadores permite que servidor BOOTP/DHCP esteja em uma rede diferente Prof. Fábio M. Costa - INF / UFG Protocolos de Roteamento na Internet Rede dividida em: – – Interior Gateway Routing Protocol – – Usado dentro de um AS OSPF – Open Shortest Path First Exterior Gateway Routing Protocol – – 110 Sistemas Autônomos (AS) Backbone conectando os sistemas autônomos Usado no Backbone da Internet BGP – Border Gateway Protocol Prof. Fábio M. Costa - INF / UFG Estrutura de Roteamento na Internet 111 Prof. Fábio M. Costa - INF / UFG OSPF: Características Gerais Protocolo de domínio público (aberto) Supore a diversas métricas diferentes – Dinâmico: capaz de se adaptar a mudanças Roteamento baseado em tipo de serviço – 112 Ex.: pode escolher rotas diferentes para tráfego de temporeal e tráfego não-tempo-real Permite balanceamento de carga – distância física, atraso, etc. Divide a carga entre rotas alternativas Suporte a redes hierárquicas Suporte a medidas de segurança básicas Prof. Fábio M. Costa - INF / UFG OSPF: Funcionamento Básico Definir rotas ótimas dentro de um mesmo sistema autônomo Roteadores adjacentes trocam informações de estado dos links (custo) entre si – Cada roteador constrói sua visão (grafo) da rede – – A partir da qual rotas “ótimas” são computadas Rota: próximo nodo no caminho até o destino Algoritmo hierárquico – – 113 Atualizadas periodicamente – Rede dividida em áreas ligadas por um backbone Roteador na “borda” de uma área: rotas até o backbone Rotas parciais são conectadas: área 1 + backbone + área 2 Prof. Fábio M. Costa - INF / UFG OSPF: Grafo da Rede 114 Prof. Fábio M. Costa - INF / UFG BGP: Características Básicas Protocolo de roteamento que leva em conta questões de natureza política – Necessário quando se conecta sistemas autônomos com objetivos conflitantes Permite a inclusão de políticas de roteamento. Exemplos: – – Um AS não aceita ser intermediário no roteamento de pacotes para outros ASes Não permitir que tráfego seja roteado através de certos ASes Políticas: configuráveis manualmente – 115 Ex.: ASes pertencentes a empresas concorrentes Não são definidas como parte do protocolo Prof. Fábio M. Costa - INF / UFG BGP: Funcionamento Básico Distance Vector Algorithm Roteadores trocam entre si informações sobre rotas completas Rotas são escolhidas com base em – – Atualizações periódicas – 116 Métricas de custo Políticas de roteamento Rotas alternativas podem substituir rotas com problemas Prof. Fábio M. Costa - INF / UFG BGP: Exemplo 117 Prof. Fábio M. Costa - INF / UFG Internet Multicasting Envio de um mesmo pacote para um grupo de receptores simultaneamente – Suporte a multicast no IP: endereços Classe D – – – 224.0.0.0 a 239.255.255.255 Cada endereço classe D: um grupo de hosts Até cerca de 250 milhões de grupos Sem garantias de confiabilidade – 118 Ex.: atualização de réplicas de um BD distribuído, tele-conferência Best-effort: Alguns membros do grupo podem não receber o pacote Prof. Fábio M. Costa - INF / UFG Internet Multicasting (2) Endereços de grupo permanentes – – – 224.0.0.1: todos os sistemas em uma LAN 224.0.0.2: todos os roteadores em uma LAN 224.0.0.5: todos os roteadores OSPF em uma LAN Endereços de grupo temporários – – Devem ser criados explicitamente Processo requisita ao seu host: – 119 entrada e saída no grupo Host mantém uma tabela dos grupos aos quais seus processos estão associados Prof. Fábio M. Costa - INF / UFG Internet Multicasting (3) Implementação através de roteadores habilitados a reconhecer endereços Classe D – Roteadores de Multicast Protocolo IGMP (Internet Group Management Protocol) – Permite a um roteador de multicast saber quais grupos têm membros em sua LAN 120 Consultas periódicas aos hosts Host respondem com os endereços de grupo pertinentes Prof. Fábio M. Costa - INF / UFG Internet Multicasting (4) Roteamento de multicasts – – – – 121 Spanning tree (árvore de espalhamento) Roteadores de multicast trocam entre si informações sobre os grupos existentes Cada roteador constrói para si uma spanning tree para cada grupo “passando” por ele Roteadores não pertencentes a um grupo não participam do algoritmo (para aquele grupo específico) Prof. Fábio M. Costa - INF / UFG IP Móvel Endereços IP são ligados a localizações fixas – Host móvel (HM) – – Migrar para uma rede diferente significaria ter que assumir um novo endereço IP... ...E provavelmente ter que anunciá-lo para boa parte dos roteadores na Internet Pacotes enviados ao host móvel devem ser entregues – 122 Ex.: 200.137.197.65 => host 65 na rede 200.137.197 Independente de sua localização física Prof. Fábio M. Costa - INF / UFG IP Móvel 123 Prof. Fábio M. Costa - INF / UFG IP Móvel: Requisitos 124 Cada HM deve poder utilizar seu endereço IP original em qualquer lugar/rede Não fazer mudanças no software de hosts fixos Não fazer mudanças no software e tabelas de rotas dos roteadores Maioria dos pacotes enviados para HMs não deve fazer desvios na rede Sem overhead quando o HM está em sua rede original (i.e., em casa) Prof. Fábio M. Costa - INF / UFG IP Móvel: Funcionamento Rede que aceita visitantes (hosts móveis): – Rede que permite a mobilidade de seus hosts: – Deve criar um agente “de casa” (home agent) Na chegada de um HM a uma rede estrangeira: – – 125 Deve criar um agente estrangeiro (foreign agent) HM registra-se com o agente estrangeiro local Agente estrangeiro contacta o agente da rede original do HM (home agent), indicando o endereço de desvio dos pacotes enviados ao HM Prof. Fábio M. Costa - INF / UFG IP Móvel: Funcionamento (2) Na chegada de um pacote endereçado ao HM em sua rede original: – – – – – – 126 Pacote chega por um dado roteador da rede Roteador difunde um pacote ARP para obter o endereço MAC (Ethernet) do host Home agent responde com seu próprio endereço MAC Roteador transmite o pacote para o home agent Home agent encapsula o pacote original em um outro pacote IP (tunneling) e o envia ao foreign agent atual Foreign agent recebe o pacote, desencapsula o pacote original e o entrega ao HM Prof. Fábio M. Costa - INF / UFG IP Móvel: Funcionamento (3) Evitando futuros redirecionamentos: – – – 127 Ao receber o primeiro pacote endereçado a um HM distante... ...Home agent envia o endereço do agente estrangeiro (da rede onde o HM se encontra) para o transmissor... ...De forma que novos pacotes sejam enviados diretamente para a rede na qual o HM se encontra atualmente Prof. Fábio M. Costa - INF / UFG IP Móvel: Outras questões Invalidação de tabelas ARP quando HM migra HM sendo seu próprio agente estrangeiro Como encontrar um agente – Agentes (home e estrangeiro) anunciam sua presença a quem possa interessar – 128 Através de broadcasts (difusão) na rede local HMs difundem requisição pelo agente estrangeiro HMs que deixam uma rede estrangeira abruptamente: registro no agente válido por tempo determinado Segurança: agente estrangeiro deve provar que, de fato o verdadeiro HM está em sua rede Prof. Fábio M. Costa - INF / UFG