REDES DE COMPUTADORES Camada de Rede Prof.: Agostinho S. Riofrio
Agenda 1. Introdução 2. Funções 3. Serviços oferecidos às Camadas superiores 4. Redes de Datagramas 5. Redes de Circuitos Virtuais 6. Comparação entre Circuitos Virtuais e Datagramas 7. Algoritmos de Roteamento 8. Controle de Congestionamento 9. Datagrama IP 10. Endereços IPv4 11. IPv6 - Melhorias
Introdução A camada de rede é responsável pela movimentação de dados, entre o host origem e o host destino. É a primeira camada de transmissão fim a fim. Deve conhecer a topologia da sub-rede de comunicação. A camada de rede deve escolher rotas que evitem sobrecarga das linhas.
Introdução A camada de rede é responsável pela movimentação de dados, entre o host origem e o host destino.
Funções Comutação ou Encaminhamento: mover pacotes da entrada do roteador para a saída apropriada do roteador Roteamento: determinar a rota a ser seguida pelos pacotes desde a origem até o destino.
Serviços Oferecidos às Camadas Superiores Como devem ser os serviços oferecidos à camada de Transporte: 1. Devem ser independentes da tecnologia da sub-rede. 2. A camada de transporte deve ser isolada do número, tipo e topologia da sub-rede. 3. Os endereços de rede devem ter plano de numeração uniforme através de LAN e WAN.
Serviços Oferecidos às Camadas Superiores Serviços não orientados a conexão 1. Utiliza serviços não orientados a conexão da camada de rede. 2. Especificado para ser utilizado com serviços de rede muito confiáveis Serviços orientados a conexão 1. Estabelece conexão. 2. Transferência de dados. 3. Libera conexão.
Serviços Oferecidos às Camadas Superiores Serviços não orientados a conexão 1. Não cria conexão entre os dois hosts. 2. Não é possível a configuração inicial de parâmetros de qualidade 3. É necessário que cada pacote enviado contenha o endereço de destino. 4. Baseado em rede de datagramas.
Serviços Oferecidos às Camadas Superiores Serviços orientados a conexão Estabelecer uma conexão antes do envio de dados Negocia parâmetros de qualidade Pacotes em sequência e sem erros Controle do fluxo de dados Baseado em circuito virtual
Rede de Datagramas Não existe estabelecimento de conexão na camada de rede Roteadores: não existe estado sobre conexões fim-a-fim O conceito conexão não existe na camada de rede Pacotes são encaminhados pelo endereço do hospedeiro de destino Pacotes para o mesmo destino podem seguir diferentes rotas
Rede de Circuitos Virtuais Estabelecimento da conexão deve preceder o envio de dados. Liberação da conexão após os dados. Cada pacote transporte um identificador do Circuito Virtual, não transporta o endereço completo do destino Cada roteador na rota mantém informação de estado para conexão que passa por ele. O link e os recursos do roteador (banda, buffers) podem ser alocados por Circuito Virtual
Comparação entre Circuitos Virtuais e Datagramas 1. Datagramas Se adaptam melhor a variações na rede Mais robustos Inteligência se encontra nos hosts 2. Circuitos Virtuais Pacotes pequenos. Terminais interativos Inteligência se encontra na rede
Algoritmo de Roteamento Parte do software da camada de rede responsável por decidir sobre que linha de saída deve ser encaminhado determinado pacote recebido.
Algoritmo de Roteamento
Algoritmo de Roteamento Estáticos Rotas da tabela de roteamento são configuradas manualmente pelo administrador da rede Dinâmicos Alteram automaticamente os caminhos de roteamento a medida que mudam as cargas de tráfego ou topologia de rede. Custo Tamanho físico do enlace, velocidade do enlace, carga de tráfego ou custo monetário associado
Algoritmos de Roteamento Centralizado Roteamento Estado de Enlace (Link-State) Menor custo entre uma fonte e um destino usando conhecimento completo e global sobre a rede. Implementado via link state broadcast Todos os nós têm a mesma informação Computa caminhos de menor custo de um nó (fonte) para todos os outros nós Fornece uma tabela de roteamento para aquele nó Calculo da rota feito localmente em cada roteador. Exemplo de protocolo: OSPF
Algoritmos de Roteamento Descentralizado Roteamento Vetor de Distâncias (Distance Vector) Menor custo é determinado de modo interativo e distribuído. Nenhum nó tem informação completa sobre os custos de todos os enlaces da sub-rede. Informa os vizinhos sobre os menores custos dos enlaces diretamente ligados a ele. Exemplo de Protocolo: BGP
Roteamento Hierárquico Motivador Para redes grandes sugem vários problemas para implementar os roteamentos apresentados: Não é possível armazenar todos os destinos numa única tabela de rotas. Necessidade de grande capacidade de memória em cada nó. As mudanças na tabela de rotas irão congestionar os enlaces. Para redes composta de várias redes haverá além disso necessidades como: Cada administração de rede pode querer controlar o roteamento na sua própria rede
Roteamento Hierárquico Agrega roteadores em regiões, sistemas autônomos (AS) Roteadores no mesmo AS rodam o mesmo protocolo de roteamento Protocolo de roteamento intra-as Roteadores em diferentes AS podem rodar diferentes protocolos de roteamento Exemplo: RIP, OSPF Roteador Gateway Link direto para um roteador em outro AS Exemplo: BGP
Roteamento Hierárquico Tabela de roteamento é configurada por ambos os algoritmos, intra e inter-as Intra-AS estabelece entradas para destinos internos Inter-AS e intra-as estabelecem entradas para destinos externos
Roteamento de Difusão Objetivo: enviar mensagens a todos os outros hosts da rede Problema: Gera pacotes demais e consome banda passante em excesso. Roteamento com múltiplos destinos Cada nó gera uma cópia do pacote para cada linha de saída a ser usada e inclui em cada pacote somente os destinos que vão utilizar esta a linha Roteamento de progressão pelo caminho inverso Gera copias do pacote de difusão que chegou e envia para as demais saídas, exceto quela pela qual o pacote chegou.
Controle de Congestionamento Estratégias: Pré-alocação de buffers nos nós durante a formação do circuito virtual. Descarte de pacotes caso não se encontre espaço em buffer em algum nó. Limitação de pacotes trafegando na sub-rede. Controle de fluxo. Obstrução da entrada de novos pacotes quando a sub-rede está sobrecarregada.
versão do protocolo IP tamanho do header (bytes) classe de serviço número máximo de saltos (decrementado em cada roteador) protocolo da camada superior com dados no datagrama ver Tamanho do cabeçalho TCP? 20 bytes do TCP 20 bytes do IP = 40 bytes + cabeçalho da camada de aplicação head. len 16-bit identifier time to live type of service protocolo 32 bits flgs length fragment offset Internet checksum 32 bit endereço IP de origem 32 bit endereço IP de destino Opções (se houver) data (tamanho variável, tipicamente um segmento TCP ou UDP) tamanho total do datagrama (bytes) para fragmentação/ remontagem Ex.: marca de tempo, registro de rota, lista de roteadores a visitar
Endereços IPv4 Endereço IP: identificador de 32 bits para interfaces de roteadores e hospedeiros Parte para identificar a sub-rede (bits de ordem superior) Parte para identificar o hospedeiro (bits de ordem inferior) Máscara de subrede: Associado ao endereço IP da interface pode determinar a subrede. Serve para particionar a subrede em redes menores. Interface: conexão entre roteador ou hospedeiro e enlace físico Roteador tem tipicamente múltiplas interfaces Hospedeiros podem ter múltiplas interfaces Endereços IP são associados com interfaces, não com o hospedeiro ou com o roteador
Endereços IPv4
Endereços IPv4 Classe A: Usa 7 bits para <rede> e 24 bits para a parte <host>. 126 redes cada uma com 16.777.214 hosts Total de mais de 2 bilhões de endereços. Classe B: Usa 14 bits para <rede> e 16 bits para a parte <host>. 16.382 redes cada uma com 65.534 hosts Total de mais de 1 bilhão de endereços. Classe C: Usa 21 bits para <rede> e 8 bits para a parte <host>. 2.097.150 redes cada uma com 254 hosts Total de mais de meio bilhão de endereços. Classe D: Endereços reservados para multicasting (broadcasting em area limitada, para hostas com o mesmo endereço Class D). Classe E: Reservado para uso futuro ou experimental.
Endereços IPv4 Outra forma de dividir as redes 200.23.16.1 = 11001000 00010111 00001000 00000001 Endereço da rede: Máscara de rede: 200 23 16 1 11111111 11111111 11111110 00000000 parte de rede parte de host 11001000 00010111 00010000 00000000 200.23.16.0/23
IPv6 Melhorias Espaço de endereços de 128 bits 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 Checksum: removido inteiramente para reduzir o tempo de processamento em cada salto
REFERÊNCIAS BIBLIOGRÁFICAS [1] CARISSIMI, Alexandre da S. GRANVILLE, Lisandro Z. ROCHOL, Juergen. Redes de Computadores. Coleção: Livros Didáticos Informática - UFRGS, V.20. Bookman Companhia Ed., 2009. [2] TANEMBAUM, Andrew S. Redes de Computadores. Editora Campus, Rio de Janeiro, 1994. [3] SOARES Luiz F. G., LEMOS, Guido e COLCHER, Sérgio Redes de Computadores - Das LANs, MANs e WANs às Redes ATM [4] KUROSE, J. Ross Redes de Computadores e Internet: uma nova abordagem. Boston: Addison-Wesley, 2001. [5] FOROUZAN, Behrouz A. Protocolo TCP/IP. McGraw Hill, 2008. [6] STALLINGS, William Data and Computer Communications, Macmillan Publishing Co., Segunda Edição, USA, 1998. [7] IBM Red books series: TCP/IP Technical and Tutorial Overview [9] http://penta.ufrgs.br/rc952/trab2/osi4.html [10] http://www.lsi.usp.br/~cranieri/