REDES DE COMPUTADORES Camada de Rede RELEMBRANDO AS CAMADAS Dados Aplicação 7 Aplicação Apresentação 6 Apresentação Sessão 5 Sessão Transporte 4 Transporte Rede 3 Rede Enlace 2 Enlace Físico 1 Físico O Modelo OSI – Transmissão de dados Dados A CAMADA DE REDE Fornece serviços para o nível de transporte, sendo, freqüentemente, 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 aplicação transporte rede enlace física 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) 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 sem ou com conexão, com características indicadas na tabela a seguir. Operação (interna) do Nível de Rede 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 sem conexão (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. Em redes com conexão (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. 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-doEnlace, 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). Políticas de prevenção de congestionamento A tabela a seguir resume as políticas adotadas em diversas camadas de uma pilha de protocolos que afetam o congestionamento. 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. Esse tipo de controle (de modelo circuito aberto) é largamente usado em redes ATM. Evidentemente, a rede deve também fazer um monitoramento de tráfego (Traffic Monitoring) para evitar que estações clientes gerem tráfego fora do padrão solicitado para a rede. 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. Em redes com pacotes de tamanho fixo (p.ex. ATM), tudo funciona bem. Em redes com pacotes de tamanho variável, podem ser transmitidos N pacotes de modo que a soma dos tamanhos dos N pacotes não ultrapasse o tamanho máximo de pacote admitido. Se o número de pacotes não for exato, transmite-se N-1 pacotes e o tempo restante não é utilizado. 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 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 comp. tipo de comprimento ver cab serviço início do ident. 16-bits 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 Endereço IP. Notação Decimal 7 0 8 15 16 23 24 31 1 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 146 164 2 70 Endereçamento hierárquico 9.0.0.0 139.82.0.0 IBM PUC-RJ 36.0.0.0 Stanford 143.107.0.0 146.164.0.0 USP UFRJ Classe de Endereços IP Número de redes e hosts por classe 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 Interconexão usando IP 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 Duas soluções foram introduzidas: Endereçamento subrede (subnetting) é utilizado dentro de uma organização para subdividir o endereço da rede da organização. Roteamento inter-domínio sem classes (classless interdomain routing - CIDR) foi introduzido em 1993 para proporcionar um endereçamento IP mais eficiente e flexível na Internet. CIDR é conhecido também como endereçamento superrede (supernetting). Os endereçamentos subrede e super-rede têm basicamente o mesmo conceito. IETF (Internet Engineering Task Force) propôs também uma outra solução mais abrangente para solucionar completamente o problema de endereçamento: o IPv6. O conceito de subrede 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 de linha. Cada segmento de linha é descrito por prefixo. Um prefixo é da forma x/y, onde x indica o prefixo de todos os endereços no segmento de linha, e y indica o comprimento do segmento. Por exemplo, o prefixo 128.9/16 representa o segmento de linha que contém os endereços no intervalo: 128.9.0.0 … 128.9.255.255 Roteamento Interdomínio sem Classes (CIDR) 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. 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 Enviando um datagrama da origem ao destino tabela de rotas em A rede dest. próx. rot. 223.1.1 223.1.2 223.1.3 datagrama IP: aampos end. IP end. IP misc origem dest dados A 223.1.1.4 223.1.1.4 1 2 2 223.1.1.1 datagrama permanece inalterado, enquanto passa da origem ao destino campos de endereços de interesse aqui Nenlaces 223.1.2.1 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 E Enviando um datagrama da origem ao destino campos dados div. 223.1.1.1 223.1.1.3 Supomos um datagrama IP originando em A, e endereçado a B: rede dest. próx. rot. 223.1.1 223.1.2 223.1.3 A 223.1.1.4 223.1.1.4 1 2 2 223.1.1.1 procura endereço de rede de B 223.1.2.1 descobre que B é da mesma rede que A camada de rede remeterá datagrama diretamente para B num quadro da camada de enlace B e A estão diretamente ligados Nenlaces B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 E Enviando um datagrama da origem ao destino campos dados div. 223.1.1.1 223.1.2.2 rede dest. próx. rot. 223.1.1 223.1.2 223.1.3 OrigemA, destino E: procura endereço de rede de E E numa rede diferente A A, E não ligados diretamente tabela de rotas: próximo roteador na rota para E é 223.1.1.4 camada de rede envia datagrama B ao roteador 223.1.1.4 num quadro da camada de enlace datagrama chega a 223.1.1.4 continua… Nenlaces 223.1.1.4 223.1.1.4 1 2 2 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 E Enviando um datagrama da origem ao destino campos dados div. 223.1.1.1 223.1.2.2 Chegando a 223.1.1.4, destinado a 223.1.2.2 procura endereço de rede de E E fica na mesma rede que a interface 223.1.2.9 do roteador roteador, E estão diretamente ligados camada de rede envia datagrama p/ 223.1.2.2 dentro de quadro de camada de enlace via interface 223.1.2.9 datagrama chega a 223.1.2.2!!! rede dest. 223.1.1 223.1.2 223.1.3 A próx. rot. Nenl. interface - 1 1 1 223.1.1.4 223.1.2.9 223.1.3.27 223.1.1.1 223.1.2.1 B 223.1.1.2 223.1.1.4 223.1.1.3 223.1.3.1 223.1.2.9 223.1.3.27 223.1.2.2 223.1.3.2 E