REDES DE COMPUTADORES Camada de Rede Professor: Dr. Carlos Oberdan Rolim Versão: 030517_01 • A CAMADA DE REDE • Fornece serviços para o nível de transporte, sendo, frequentemente, a interface entre a rede do cliente e a empresa de transporte de dados (p.ex. Embratel). • SUA PRINCIPAL FUNÇÃO É RECEBER BITS DE DADOS DA CAMADA SUPERIOR, ORGANIZÁ-LOS EM BLOCOS DE DADOS (PACOTES EM REDES COM CONEXÃO E DATAGRAMAS EM REDES SEM CONEXÃO) E DETERMINAR A ”MELHOR” ROTA PARA QUE ESTES PACOTES ALCANCEM SEU DESTINO, TENDO COMO BASE ENDEREÇOS LÓGICOS DE ORIGEM E DESTINO. • A camada de rede deve: – Fornecer serviços independentes da tecnologia da subrede; – Esconder do nível de transporte o número, tipo e a topologia das subredes existentes; – Oferecer ao nível de transporte um esquema de endereçamento uniforme, independente da tecnologia da subrede (LAN, MAN, WAN). Funções da camada de rede • transporta pacote da estação remetente à receptora • protocolos da camada de rede em cada estação, roteador três funções importantes: • determinação do caminho: rota seguida por pacotes da origem ao destino. Algoritmos de roteamento (routing) • comutação: mover pacotes dentro do roteador da entrada à saída apropriada (switching) • estabelecimento da chamada: algumas arquiteturas de rede requerem determinar o caminho antes de enviar os dados (call setup) aplicação transporte rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física aplicação transporte rede enlace física A transferência de dados pode ser feita de dois modos: Modo datagrama Modo circuito virtual Usado pela Internet Usado pelas operadoras Subrede não confiável Subrede considerada mais confiável (pouco atraso, perda de pacotes) Cada pacote contém endereço de origem e destino Cada pacote contém identificação de número do circuito Subrede não guarda nenhuma informação Subrede precisa guardar informações a respeito da condição dos circuitov Cada pacote é roteado independentemente Rota fixa é definida na abertura da conexão Se roteador falha pacotes são perdidos Se roteador falha circuito é desfeito Controle de congestionamento difícil Controle de congestionamento fácil (a nível de circuito) • Algoritmo de Roteamento • Roteamento é o mecanismo pelo qual se escolhe o caminho (canal de comunicação) que um pacote deve seguir para atingir seu destino. • Em redes modo datagrama, cada datagrama tem de carregar seu endereço destino e a decisão de roteamento é tomada em cada nó da rede, para cada datagrama que chega. • Algoritmo de Roteamento • Em redes modo circuito virtual os pacotes não precisam carregar o endereço destino (só a identificação da conexão) e a decisão de roteamento é tomada no estabelecimento da conexão, após a qual todo pacote segue sempre o mesmo caminho roteamento por sessão. • Algoritmo de Roteamento • Um algoritmo de roteamento deve oferecer: – Correticidade (funciona); – Simplicidade (é fácil de entender/usar); – Robustez (suporta falhas na rede); – Estabilidade (fixa caminhos rapidamente); – Equanimidade (distribui carga de modo justo); e – Optimalidade (proporciona melhor caminho sempre). • Um algoritmo de roteamento pode ser: – Não adaptativo, quando as decisões de roteamento são definidas antecipadamente (pelo gerente da rede, p. ex.) e colocadas nos roteadores quando estes são ligados - roteamento estático; – Adaptativo, quando as decisões de roteamento são [re]definidas continuamente, de acordo com a estrutura da rede (topologia, carga, etc.) roteamento dinâmico. • Nesse último caso, o algoritmo de roteamento pode ser do tipo Vetor-Distância ou Estado-do-Enlace, cujas características são resumidas na tabela a seguir. Controle de Congestionamento • Congestionamento ocorre quando a quantidade de pacotes na rede é muito grande (normalmente isso ocorre quando se atinge um patamar da capacidade de carga dos canais de comunicação). Padrão de comportamento na ocorrência de congestionamento O que congestiona? – Pacotes chegando por canais de comunicação rápidos, tendo de sair por canais mais lentos; – Roteadores lentos; – Roteadores com pouca memória para armazenar pacotes temporariamente. Como controlar fluxo? • Modelo circuito aberto (open loop), propõe resolver os problemas na fase de projeto/configuração dos roteadores de modo a (tentar) garantir que não ocorra congestionamento. Para ajustar alguma coisa, tem-se de reinicializar tudo. • Modelo circuito fechado (closed loop), propõe: – Monitoração do sistema para detectar quando e onde o congestionamento ocorre; – Passagem dessas informações para pontos de controle onde alguma ação pode ser tomada; – Ajuste da operação do sistema para corrigir o problema. • No modelo circuito fechado, o controle pode ser: – explícito, quando o ponto de congestionamento avisa (de alguma forma) a origem dos pacotes (p.ex. ATM com ABR); – implícito, quando a origem dos pacotes deduz que há congestionamento fazendo observações localmente (p.ex., pela demora no recebimento de confirmação de entrega de pacotes, p.ex. TCP/IP). Condicionamento de Tráfego (Traffic Shaping) • Em redes que oferecem qualidade de serviço (Quality of Service - QoS), as estações clientes podem ser forçadas a transmitir a uma taxa uniforme, previamente acertada com a rede antes do início da transmissão (via abertura de conexão). • Dessa forma, recursos podem ser reservados antecipadamente, de modo que se possa garantir a não sobrecarga da rede - o tráfego é, sempre que possível, previsível. Condicionamento de Tráfego (Traffic Shaping) • Esse tipo de controle (de modelo circuito aberto) é largamente usado em redes ATM. • Evidentemente, a rede (responsável pela mesma) deve também fazer um monitoramento de tráfego para evitar que estações clientes gerem tráfego fora do padrão solicitado para a rede. • Esse esquema é mais facilmente implementado em redes baseadas em circuito virtual do que em redes baseadas em datagrama. Algoritmo do Balde Furado (Leaky Bucket Algorithm) • Outro mecanismo (de modelo circuito aberto) é o do Balde Furado, onde uma fila de tamanho finito age como um depósito de contenção para suportar rajadas de tráfego descartando o mínimo de pacotes e colocando-os para transmissão de modo controlado. • O controle é feito enviando-se para a rede pacotes sempre em uma velocidade constante (basicamente em função da capacidade do canal, do tempo de propagação e do tamanho máximo do pacote admitido) - tipo um pacote a dada ∆T. Modelo do Balde Furado para Pacotes Interconexão de Redes • Problema: como interconectar redes heterogêneas ? • Três problemas com interconexão a nível de enlace de dados : – Expansão difícil para diferentes tecnologias de enlace de dados. – Expansão difícil com o crescimento de número de hospedeiros ou redes. – Diferentes espaços de endereçamento. Interconexão de redes Dificuldade de Expansão com diferentes tecnologias de enlace de dados • Conversão entre estruturas de quadros. • Problema de escalabilidade quando o número de tecnologias de enlace de dados aumenta. Espaço de endereço MAC não homogêneo • O número de bits usado em endereço MAC pode ser. – Endereços MAC de 48 bits do IEEE – IBM recomenda outros endereços MAC administrados localmente (ignorando os endereços MAC embutidos). • Cada endereço em uma tecnologia de enlace de dados deve ser universalmente único, mas a sua unicidade não é garantida quando várias redes são atravessadas A Solução da camada três para interconexão de redes • Substituir switches de LAN por switches de camada três, mais conhecidos como roteadores. • Acrescentar software de IP a cada hospedeiro final (junto com o todo conjunto de softwares). • Atribuir um endereço IP a cada interface de rede. A Solução da camada três para interconexão de redes IP: escalabilidade para as tecnologias de enlace de dados Interconexão usando IP Endereçamento • Ao nível de rede, cada elemento (máquina final ou intermediária) precisa ser identificado de forma única na rede, independente da tecnologia da subrede utilizada. • Rede IP usa hierarquia para conseguir escalabilidade. • Há pelo menos três níveis: – Um simples hospedeiro IP (servidor.san.uri.br) – Uma sub-rede IP (san.uri.br) – Um sistema autônomo (uri.br) • Criação de um espaço de endereço para identificação de interfaces de rede. • Classes A a C para unicast e uma classe D para multicast: DATAGRAMA IP número da versão do protocolo IP comprimento do cabeçalho (bytes) “tipo” dos dados (DS) número máximo de enlaces restantes (decrementado a cada roteador) protocolo da camada superior ao qual entregar os dados 32 bits ver comp. tipo de cab serviço comprimento início do bits ident. 16-bits fragmento sobre- camada checksum superior vida Internet comprimento total do datagrama (bytes) para fragmentação/ remontagem endereço IP de origem 32 bits endereço IP de destino 32 bits Opções (se tiver) dados (comprimento variável, tipicamente um segmento TCP ou UDP) p.ex. temporizador, registrar rota seguida, especificar lista de roteadores a visitar. Endereçamento IP Um endereço de IP não identifica um computador específico. Pelo contrário, cada endereço de IP identifica uma conexão entre um computador e uma rede. Um computador com conexões de rede múltiplas (por exemplo, router) deve ser atribuído um endereço IP para cada conexão. Endereçamento IP Fornece uma abstração Independente de endereçamento de hardware (MAC) Utilizado por Protocolos de camada mais altas Aplicações Virtual só reconhecido por software Utilizado para toda a comunicação numa rede de interconexão IPv4 inteiro de 32 bits Valor distinto para cada Computador/interface Endereçamento IP Dividido em duas partes prefixo identifica a rede sufixo identifica o computador/interface Autoridade global atribui um prefixo distinto para a rede Administrador local atribui sufixo distinto para o computador/interface Endereço IP Endereço IP. Notação Decimal Representa cada octeto em decimal separado por pontos Não é igual a nomes como www.xyz.com.br 129.194.69.68 = Endereço IP 129.194 = id-rede 1000 0001 1100 0010 69.68 = id-computador 0100 0101 0100 0100 Quatro valores decimais por endereço de 32 bits Cada número decimal representa oito bits está entre 0 e 255 inclusivo Classe de Endereços IP Número de redes e hosts por classe Classe Primeiros bits Intervalo do 1º octeto Núm. de redes Número de hosts 128 (28) 16.777.216 (224) 128 a 191 16.384 (214) 65.536 (2116) 110 192 a 223 2.097.152(221) 256 (28) D 1110 224 a 239 Utilizado para tráfego Multicast E 1111 240 a 254 Reservado para uso futuro A 0 1 a 126 B 10 C Intervalos de endereços por classe Endereços Reservados • Identificador de rede não pode ser 127 – 127 é reservado para fins de loop-back • Os identificadores de rede e de hospedeiro não podem ser 255 (todos os bits iguais a 1) – 255 é um endereço para difusão • Os identificadores de rede e de hospedeiro não podem ser 0 (todos os bits iguais a 0) – 0 (zero) significa “somente esta rede” • O identificador de hospedeiro deve ser único na rede Endereços Privados • A RFC 1918 define alguns intervalos de IPs como não roteáveis: Endereçamento IP Problemas endereçamento original: Crescimento de Internet Tamanho de tabela de routing Esgotamento de endereços Peso Administrativo Má utilização de endereços Soluções introduzidas Endereçamento subrede (subnetting) - 1985 Subdividir uma classe grande em redes menores mascara de rede (netmask) Roteamento inter-domínio sem classes (classless interdomain routing - CIDR) - 1993 introduzido em 1993 endereçamento IP mais eficiente e flexível CIDR é conhecido também como endereçamento super-rede (supernetting). Os endereçamentos subrede e super-rede têm basicamente o mesmo conceito. NAT (Network Address Translation) – 1994 (RFC 1631) Rede interna -- endereço privado --- | Gateway | --- endereço público -- Internet IPv6 Solução completa do problema O conceito de subrede Máscara de suberede • Auxilia na definição de que porção do endereço define rede e host • Classes A, B e C possuem máscaras padrão – Classe A: 255.0.0.0 ou /8 – Classe B: 255.255.0.0 ou /16 – Classe C: 255.255.255.0 ou /24 • Determina se um host está na subrede local ou remota • Mascara de rede vista somente dentro da organização Exemplo de máscara de suberede Roteamento Interdomínio sem Classes (CIDR) Roteamento Interdomínio sem Classes (CIDR) O espaço de endereço IP é quebrado em segmentos Cada segmento é descrito por um prefixo. Um prefixo tem a forma x/y, onde x indica o prefixo de todos os endereços no segmento, e y indica o comprimento do segmento. Por exemplo, o prefixo 128.9/16 representa o segmento de rede que contém os endereços no intervalo: 128.9.0.0 … 128.9.255.255 Hosts Netmask Quantidade de uma classe C /32 1 255.255.255.255 1/128 /30 4 255.255.255.252 1/64 /29 8 255.255.255.248 1/32 /28 16 255.255.255.240 1/16 /27 32 255.255.255.224 1/8 /26 64 255.255.255.192 1/4 /25 128 255.255.255.128 1/2 /24 256 255.255.255.0 1 /23 512 255.255.254.0 2 /22 1.024 255.255.252.0 4 /21 2.048 255.255.248.0 8 /20 4.096 255.255.240.0 16 /19 8.192 255.255.224.0 32 /18 16.384 255.255.192.0 64 /17 32.768 255.255.128.0 128 /16 65.536 255.255.0.0 256 Roteamento Interdomínio sem Classes (CIDR) Agregação de prefixos •Se um provedor de Internet presta serviço a várias companhias com vários prefixos, pode (algumas vezes) agregá-los em um único prefixo. Os outros roteadores podem reduzir o tamanho da tabela de endereço. NAT – Network Address Translation Solução paliativa para a falta de endereços IP IPv6 Versão mais atual do IP (proposta em 2012) Funciona lado a lado com IPv4 Cabeçalho mais enxuto que o IPv4 checksum não usado Tamanho de 128 bits 340.282.366.920.938.463.463.374.607.431.768.211.456 de endereços Não existe prefixo e sufixo de rede 8 grupos de 4 dígitos hexadecimais 2001:0db8:85a3:08d3:1319:8a2e:0370:7344 Se um grupo de vários dígitos seguidos for 0000, pode ser omitido. 2001:0db8:85a3:0000:0000:0000:0000:7344 2001:0db8:85a3::7344 Solução para o esgotamento de endereços A Camada de Rede na Internet Funções da camada de rede em estações, roteadores: Camada de transporte: TCP, UDP Camada de rede protocolo IP •convenções de endereços •formato do datagrama •convenções de manuseio do pct Protocolos de rot. •seleção de rotas •RIP, OSPF, BGP Tabela de rotas protocolo ICMP •relata erros •“sinalização” de roteadores Camada de enlace Camada física