Capítulo 4: Nível de Rede Objectivos: Compreender os princípios subjacentes ao serviço do nível de rede: Encaminhamento (selecção do caminho) • routing (path selection) Problema de escala • Como é que o router funciona • Tópicos avançados: IPv6, multicast Instanciação e implementação na Internet Visão geral: Princípios do serviço de nível de rede Princípios de encaminhamento: selecção do caminho Encaminhamento hierárquico IP Protocolos de encaminhamento na Internet Dentro do domínio: intradomain Entre domínios: inter-domain 4: Nível de Rede 4a-1 Funções do nível de rede Encaminhar pacotes dos emissores para os receptores Protocolos de nível de rede em cada router Três funções importantes: Determinação do caminho: rota percorrida pelos pacotes da origem para o destino – algoritmos de routing Comutação switching: transferir os pacotes da entrada do router para a saída apropriada Estabelecimento de chamada: Algumas arquitectura de rede requerem que os routers estabelecem um caminho antes de se iniciar a transferência de dados Aplicação Transporte Rede Lig. lógica Física Rede Lig. Lógica Física Rede Lig. Lógica Física Rede Lig. Lógica Física Rede Lig. Lógica Física Rede Lig. Lógica Física Rede Lig. Lógica Física Rede Lig. Lógica Física Rede Lig. Lógica Física Aplicação Transporte Rede Lig. lógica Física 4: Nível de Rede 4a-2 Modelo de serviço de rede Q: Qual o modelo de serviço para um canal que transporte pacotes do emissor para o receptor? Largura de banda garantida? Preservação do tempo entre pacotes (sem jitter)? Entrega sem perdas ? Entrega organada? Informação de congestão ao emissor? A abstração mais importante do serviço do nível de rede: ? ? ? Circuito virtual ou Datagrama ? 4: Nível de Rede 4a-3 Circuitos virtuais “os caminhos entre a fonte e o destino comportam-se de forma semelhante a um circuito telefónico Bom desempenho Acções da rede no caminho entre a fonte e o destino Estabelecimento de chamada antes de se iniciar a transferência de dados; no final cancelamento da chamada Cada pacote transporta o identificador do cirvuito virtual (VC) (não o identificador do destino) Cada router no caminho entre a origem e o destino mantem o estado de cada ligação que o atravessa Ligações de nível de transporte só envolvem sistemas terminais Os recursos das ligações e dos routers (bandwidth, buffers) são alocados por VC Desempenho semelhante a um circuito permanente.4: Nível de Rede 4a-4 Circuitos virtuais: protocolos de sinalização Usados para estabelecer, manter e terminar VC Tecnologias: ATM, frame-relay, X.25 Não utilizados actualmente na Internet Aplicação Aplicação Transporte 5. Início do fluxo de dados 6. Recepção de dados Transporte 4. Call connected Rede 3. Accept call Rede Lig. lógica 1. Initiate call 2. incoming call Lig. lógica Física Física 4: Nível de Rede 4a-5 Redes datagrama: O modelo Internet Não há estabelecimento de chamada ao nível de rede routers: não há estado sobre as ligações extremo-a-extremo Não há conceito de ligação ao nível de rede Pacotes tipicamente encaminhados usando o ID do sistema terminal de destno Pacotes com origem e destino comuns podem utilizar rotas diferentes Aplicação Transporte Rede Lig. lógica 1. Send data Física Aplicação Transporte Rede 2. Receive data Lig. lógica Física 4: Nível de Rede 4a-6 Rede datagrama ou de VCs: porquê? Internet ATM computadores Serviço elástico sem restrições temporais. Sistemas Terminais “inteligentes” Adaptação, controlo e recuperação de erros Simplicidade da rede, complexidade na periferia Muitos tipos de ligações Características diferentes Dificuldade dum serviço uniforme Surgiu da telefonia Dados transferidos entre Conversão humana: Requisitos temporais e de fiabilidade Necessidade de serviço garantido Sistemas Terminais “burros” telefones Complexidade na rede 4: Nível de Rede 4a-8 Routing Protocolos de routing Objectivo: determinar um bom caminho (sequência de routers) entre a origem e o destino Grafos usados como modelo de abstração: Nós - routers Arestas – ligações físicas Custo da ligaçõa: atraso, $, ou nível de congestão 5 2 A B 2 1 D 3 C 3 1 5 F 1 E 2 “Bons” caminhos: Tipicamente caminhos mais curtos Outras possibilidade .. 4: Nível de Rede 4a-9 Classificação Informação global ou descentralizada? Global: Todos os routers tem a toplogia completa, custos das ligaçõee “link state” Decentralizada: Routers sabem os vizinhos a que estão ligados fisicamente e os custos das respectivas ligações Processo iterativo de computação, troca de informação entre vizinhos “distance vector” Estática ou dinâmica? Estática: Rotas variam lentamente no tempo Dinamica: Rotas variam mais rapidamente Actualização periódica Em resposta a alterações de custo em ligações. 4: Nível de Rede 4a-10 Algoritmo de Encaminhamento Estado de Linha (Link-State) Algoritmo de Dijkstra Topologia da rede, custo das ligações para todos os nós conhecido Difusão do estado das ligações Todos os nós têm a mesma informação Calcula caminhos de menor custo dum nó para todos os restantes Calcula a tabela de routing para cada nó iterativo: depois de k iterações, conhece os caminhos de menor custo para cada destino k Notação: c(i,j): custo da ligação do nó i para onó j Custo infinito para nós que não são vizinhos D(v): valor actual do custo do caminho da origem até ao destino v. p(v): nó predecessor bo caminho da origem até ao destino v. N: conjunto de nós que têm o caminho de menor custo conhecido 4: Nível de Rede 4a-11 Algorithmo de Dijsktra: exemplo Step 0 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A infinity infinity 2,A 4,D 2,D infinity 2,A 3,E 4,E 3,E 4,E 4,E 5 2 A B 2 1 D 3 C 3 1 5 F 1 E 2 4: Nível de Rede 4a-13 Algoritmo de Dijsktra: discussão Oscilações possíveis: e.g., custo da ligação = quantidade do tráfego transportado D 1 1 0 A 0 0 C e 1+e B e 2+e D 0 1 Inicialmente A 1+e 1 C 0 B 0 … recalculando a rota 0 D 1 A 0 0 2+e B C 1+e … recalculando 2+e D 0 A 1+e 1 C 0 B e … recalculando 4: Nível de Rede 4a-14 Algoritmo Vector de Distância iterativo: Continua até que mais nenhum nó precise de enviar informação. self-terminating: não há “sinal” de paragem assíncrono: Nós não precisam de transferir informação distribuído: Cada nó só comunica com os nós que lhe estão adjacentes Estrutura de dados: Tabela de Distâncias Cada nó tem a sua própria Linha para cada destino Coluna para cada nó adjacente que conduz ao destino exemplo: nó X, para o destino Y através do nó Z X D (Y,Z) Distância a partir X para = Y, sendo Z o próximo nó = c(X,Z) + min {DZ(Y,w)} w 4: Nível de Rede 4a-15 Tabela de distâncias: exemplo 7 A B 1 C E cost to destination via D () A B D A 1 14 5 B 7 8 5 C 6 9 4 D 4 11 2 2 8 1 E 2 D E D (C,D) = c(E,D) + min {DD(C,w)} = 2+2 = 4 w E D (A,D) = c(E,D) + min {DD(A,w)} E w = 2+3 = 5 loop! D (A,B) = c(E,B) + min {D B(A,w)} = 8+6 = 14 w loop! 4: Nível de Rede 4a-16 Tabela de Distâncias e Tabela de Routing E cost to destination via Outgoing link D () A B D A 1 14 5 A A,1 B 7 8 5 B D,5 C 6 9 4 C D,4 D 4 11 2 D D,4 Distance table to use, cost Routing table 4: Nível de Rede 4a-17 Encaminhamento Vector de Distância: overview Iterativo, assíncrono: cada iteração local causada por: Alteração do custo da ligação Mensagem dum nó vizinho: o menor custo a partir desse vizinho para um destino pode ser alterado Distribuído: Cada nó notifica os vizinhos apenas quando o menor custo para um destino se altera Os vizinhos só notificam os vizinhos se necessário Cada nó: wait for (change in local link cost of msg from neighbor) recompute distance table if least cost path to any dest has changed, notify neighbors 4: Nível de Rede 4a-18 Encaminhamento hierárquico Estudo de encaminhamento até agora - ideal Todos os routers são idênticos Rede plana (“Flat”) … não é verdade na prática escala: com 50 milhões de destinos: Não é possível armazenar todos os destinos nas tabelas de encaminhamento A transferência das tabelas de encaminhamento entupia as ligações! Autonomia administrativa internet = rede de redes Cada domínio administrativo pode controlar o encaminhamento dentro da sua própria rede 4: Nível de Rede 4a-26 Encaminhamento hierárquico Agregação de routers em regiões, “autonomous systems” (AS) routers do mesmo AS executam o mesmo protocolo de routing Protocolo de routing: intra-domínio (“intra-AS”) routers de AS´s diferentes executam diferentes protocolos de routing gateway routers Routers especiais dum AS Executam protocolo de routing intra-domínio com todos os outros routers do mesmo AS Também são responsáveis por encaminhar para o exterior do domínio Executa o protocolo de encaminhamento interdomínio (inter-AS routing) com os outros gateways routers 4: Nível de Rede 4a-27 Intra-AS and Inter-AS routing C.b a C Gateways: B.a A.a b A.c d A a b c a c B b •Executam routing inter-domínio entre eles •Executam routing intra-domínio com os restantes routers do AS network layer inter-AS, intra-AS routing in gateway A.c link layer physical layer 4: Nível de Rede 4a-28 Encaminhamento intra e inter domínio C.b a Host h1 C b A.a Inter-AS routing entre AeB A.c a d c b A Intra-AS routing dentro de AS A B.a a c B Host h2 b Intra-AS routing dentro de AS B 4: Nível de Rede 4a-29 O nível de rede na Internet Funções de nível de rede num Sistema Terminal e num router: Nível de transporte: TCP, UDP Nível de rede Protocolo IP •Convenções de endereços •Formato dos datagramas •Processamento de pacotes Protocolos de routing •Selecção de caminhos •RIP, OSPF, BGP Tabela de routing Protocolo ICMP •Reporte de erros •router “signaling” Nível de ligação lógica Nível físico 4: Nível de Rede 4a-30 Endereçamento IP: introdução Endereço IP : Identificador de 32-bit Para Sistemas Terminais e interfaces dos routers interface: ligação entre Sistemas Terminais, Routers e a ligação física 223.1.1.1 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 Os routers tem múltiplas interfaces Os Sistemas Terminais 223.1.3.2 223.1.3.1 podem ter múltiplas interfaces Os endereços IP estão associadas às interfaces, não aos Sistemas 223.1.1.1 = 11011111 00000001 00000001 00000001 Terminais ou aos routers 223 1 1 1 4: Nível de Rede 4a-31 Endereçamento IP Endereço IP: Parte da rede (bits mais significativos) Parte do Sistema Terminal (host) (bits menos significativos) O que é uma rede ? (na perspectiva do endereço IP) Dispositivos de interface com um valor comum para a parte do endereço IP que identifica a rede 223.1.1.1 Pode-se chegar aos vários elementos duma rede sem intervenção do router 223.1.2.1 223.1.1.2 223.1.1.4 223.1.1.3 223.1.2.9 223.1.3.27 223.1.2.2 LAN 223.1.3.1 223.1.3.2 Esta rede é constituída por 3 redes IP • Para os endereços IP que começam em 223 • Primeiros 24 bits identificam a rede 4: Nível de Rede 4a-32 Endereçamento IP 223.1.1.2 223.1.1.3 223.1.1.1 Como encontrar as redes? 223.1.1.4 Identificar cada interface dum router, 223.1.7.2 223.1.9.2 host Criar ilhas de redes isoladas 223.1.9.1 223.1.7.1 223.1.8.1 223.1.8.2 223.1.2.6 Sistema interligado Constituído por 6 redes 223.1.2.1 223.1.3.27 223.1.2.2 223.1.3.1 223.1.3.2 4: Nível de Rede 4a-33 Endereçamento IP Dada a noção de rede, vamos re-examinar o endereço IP “class-full” addressing: classe A 0 network B 10 C 110 D 1110 1.0.0.0 to 127.255.255.255 host network 128.0.0.0 to 191.255.255.255 host network multicast address 32 bits host 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 Classe A B C Redes 27 214 221 ST 224 216 28 4: Nível de Rede 4a-34 Endereçamento IP : CIDR Endereçamento classful: Uso ineficiente do espaço de endereçamento, falta de endereços disponíveis e.g., uma rede de classe B reserva 64K para os sistemas terminais, mesmo que só existam 2K na realidade ! CIDR: Classless InterDomain Routing A parte do endereço que identifica a rede tem um tamanho arbitrário Formato do endereço : a.b.c.d/x, em que x representa o nº de bits do endereço que representam a rede Parte da rede Parte do ST 11001000 00010111 00010000 00000000 200.23.16.0/23 Endereço/prefixo 4: Nível de Rede 4a-35 Endereços IP: Como se obtém um ? Sistemas terminais (parte do Sistema Terminal): hard-coded pelo administrador de sistema num ficheiro DHCP: Dynamic Host Configuration Protocol: endereço IP obtido dinamicamente “plug-and-play” Sistema Terminal envia em difusão “DHCP discover” msg Servidor de DHCP responde com “DHCP offer” msg Sistema Terminal pode endereço IP : “DHCP request” msg Sevidor DHCP envia endereço: “DHCP ack” msg 4: Nível de Rede 4a-36 Endereços IP: Como se obtém um ? Rede (Parte da rede): Aloca uma parte do espaço de endereços reservado para o ISP Parte do ISP 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 ... 11001000 00010111 00010100 00000000 ….. …. 200.23.20.0/23 …. Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 8 blocos de igual dimensão 4: Nível de Rede 4a-37 Endereçamento hierárquico: agregação de rotas Endereçamento hierárquico permite uma distribuição eficiente da Informação de encaminhamento Organization 0 200.23.16.0/23 “Envia-me qualquer pacote com o endereço começado por 200.23.16.0/20” Organization 1 200.23.18.0/23 Organization 2 200.23.20.0/23 Organization 7 . . . . . . Fly-By-Night-ISP Internet 200.23.30.0/23 ISPs-R-Us “Envia-me qualquer pacote com o endereço começado por 199.31.0.0/16” 4: Nível de Rede 4a-38 Endereçamento hierárquico: rotas mais específicas ISPs-R-Us tem rotas mais específicas para cada organização (Organização 1) Organization 0 200.23.16.0/23 “Envia-me qualquer pacote com o endereço começado por 200.23.16.0/20” Organization 1 200.23.18.0/23 Organization 2 200.23.20.0/23 Organization 7 . . . . . . Fly-By-Night-ISP Internet 200.23.30.0/23 ISPs-R-Us Organization 1 200.23.18.0/23 “Envia-me qualquer pacote com o endereço começado por 199.31.0.0/16 ou 200.23.18.0/23” Quando se envia um pacote destino à organização A a selecção do ISP realiza-se comparando com o maior prefixo 4: Nível de Rede 4a-39 Enviando um datagrama da origem para o destino Tabela de Encaminhamento de A Dest. Net. next router Nhops 223.1.1.0/24 223.1.2.0/24 223.1.3.0/24 Datagrama IP: misc source dest fields IP addr IP addr data A Datagrama mantém-se inalterado quando viaja da origem para o destino Campos de endereço com interesse para esta análise 223.1.1.4 223.1.1.4 1 2 2 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 E 223.1.3.2 4: Nível de Rede 4a-41 Getting a datagram from source to dest. misc data fields 223.1.1.1 223.1.1.3 Iniciando em A, como enviar um datagrama IP para B ? Analisar a parte de endereço da rede de B Descobrir que B está na mesma rede do que A Nível de ligação de dados envia o datagrama directamente para B através duma trama de nível lógico A e B estão directamente ligados Dest. Net. next router Nhops 223.1.1.0/24 223.1.2.0/24 223.1.3.0/24 A 223.1.1.4 223.1.1.4 1 2 2 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 E 223.1.3.2 4: Nível de Rede 4a-42 Getting a datagram from source to dest. misc data fields 223.1.1.1 223.1.2.3 Iniciando em A, como enviar um datagrama IP para E ?: Analisar a parte de endereço da rede de E E pertence a outra rede A e A não estão directamente ligados Tabela de encaminhamento: next hop router para E é 223.1.1.4 O nível de ligação de dados envia o datagrama para o 223.1.1.4 dentro duma trama de nível lógico Dest. Net. next router Nhops 223.1.1.0/24 223.1.2.0/24 223.1.3.0/24 A 223.1.1.4 223.1.1.4 1 2 2 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 E 223.1.3.2 4: Nível de Rede 4a-43 Getting a datagram from source to dest. misc data fields 223.1.1.1 223.1.2.3 Datagrama chega a 223.1.4, destinado a 223.1.2.2 Analisar a parte de endereço da rede de E E está na mesma rede que a interface do router que tem o IP 223.1.2.9 Router e E estão directamente ligados O nível de ligação de dados envia o datagrama para o 223.1.2.2 dentro duma trama de nível lógico através da interface 223.1.2.9 Datagrama chega a 223.1.2.2!!! (hooray!) Dest. next network router Nhops interface 223.1.1 223.1.2 223.1.3 A - 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 E 223.1.3.2 4: Nível de Rede 4a-44 Formato do datagrama IP Nº de versão do Protocolo IP Dimensão do Cabeçalho (bytes) “tipo” de dados Nº máximo de hops a visitar (decrementado em cada router) Nível superior do protocolo a que se destina o pacote 32 bits head. type of length len service fragment 16-bit identifier flgs offset time to upper Internet layer live checksum ver Dimensão total do datagrama (bytes) para fragmentação reassemblagem 32 bit source IP address 32 bit destination IP address Options (if any) data (variable length, typically a TCP or UDP segment) E.g. timestamp, Armazena a rota tomada, lista de routers a visitar 4: Nível de Rede 4a-45 Fragmentação e reassemblagem IP Ligações da rede têm MTU (max.transfer size) – dimensão máxima duma trama de nível de rede. Ligações diferentes têm MTUs diferentes datagramas IP grandes são divididos (“fragmentados”) na rede Um datagrama transforma-se em vários datagranas “reassemblados” apenas no destino final Bits do cabeçalho IP header usados para identificar fragmentos relacionados fragmentação in: 1 datagrama grande out: 3 datagramas pequenos reassemblagem 4: Nível de Rede 4a-46 Fragmentação e reassemblagem IP length ID fragflag offset =4000 =x =0 =0 Um datagrama grande transforma-se em 3 pequenos length ID fragflag offset =1500 =x =1 =0 length ID fragflag offset =1500 =x =1 =1480 length ID fragflag offset =1040 =x =0 =2960 4: Nível de Rede 4a-47 Fragmentação e reassemblagem IP ver head. len type of service 16-bit identifier time to live length fragment offset flgs upper layer Internet checksum 32 bit source IP address 32 bit destination IP address Options (if any) # porto origem # porto destino Número sequência Número acknowledgment not head rcvr window size used U A P R S F len ptr urgent data checksum Opções (dimensão variável) Valor mínimo do MTU suportado é de 576 Bytes Se a dimensão máxima do segmento for de 536 Bytes a fragmentação pode ser eliminada 20 Bytes são para o cabeçalho TCP 20 Bytes são para o cabeçalho IP application data (variable length) 4: Nível de Rede 4a-48 ICMP: Internet Control Message Protocol Utilizado pelos sistemas terminais, routers e gatewyas para transferir informação de controlo de nível de rede Reporte de erros : unreachable host, network, port, protocol echo request/reply (used by ping) Nível de rede: “acima” do IP: ICMP msgs transportadas em datagramas IP ICMP message: type, code plus first 8 bytes of IP datagram causing error Type 0 3 3 3 3 3 3 4 Code 0 0 1 2 3 6 7 0 8 9 10 11 12 0 0 0 0 0 description echo reply (ping) dest. network unreachable dest host unreachable dest protocol unreachable dest port unreachable dest network unknown dest host unknown source quench (congestion control - not used) echo request (ping) route advertisement router discovery TTL expired bad IP header 4: Nível de Rede 4a-49