Internetworking Interconexão de Redes Sumário – – – – Interconexão de redes heterogêneas Serviço universal de comunicação O modelo de serviço de interredes Esquema de endereçamento global Curso de Redes de Computadores, 2004 DCC - ICEx - UFMG Prof. José Marcos Silva Nogueira Redes de Computadores – DCC UFMG <#> IP Internet • Concatenation of Networks Network 1 (Ethernet) H7 H2 H1 R3 H8 H3 Network 4 (point-to-point) Network 2 (Ethernet) R1 R2 H4 Network 3 (FDDI) H5 Redes de Computadores – DCC UFMG H6 <#> Motivação para interconexão • Diferentes tecnologias de rede oferecem diferentes características: – LANs: alta velocidade, pequena distância – WANs: comunicação numa grande área – Não existe uma única tecnologia de rede que é melhor para todas as necessidades Redes de Computadores – DCC UFMG <#> Motivação para interconexão • É comum uma grande organização ter várias redes físicas, cada uma adequada para um determinado tipo de ambiente Redes de Computadores – DCC UFMG <#> Conceito de Serviço Universal • Serviço universal: – Permite que um usuário ou aplicação num computador troque informações com qualquer outro usuário ou aplicação em outro computador da rede • Um sistema de comunicação que provê serviço universal permite que pares arbitrários de computadores se comuniquem Redes de Computadores – DCC UFMG <#> Conceito de Serviço Universal • Incompatibilidades entre hardware de rede e endereçamento físico fazem com que não seja possível criar uma rede com diferentes tecnologias • Solução – Interconexão entre redes através de hardware e software • Sistema resultante: – internet Redes de Computadores – DCC UFMG <#> Hardware básico de uma internet • Roteador – Computador de finalidade especial dedicado a interconexão de redes • As redes podem usar diferentes tecnologias como meio físico, endereçamento, formato de pacotes Redes de Computadores – DCC UFMG <#> Arquitetura de uma internet • Roteadores comerciais podem ser usa-dos para conectar mais de duas redes • Um único roteador não é usado para conectar todas as redes de uma organização: – Provável incapacidade do roteador de processar todos os pacotes entre as redes de forma apropriada – Falta de confiabilidade e redundância Redes de Computadores – DCC UFMG <#> Como obter serviço universal • Objetivo de interconexão: – Ter serviço universal entre redes heterogêneas • Como? – Roteadores devem negociar a sintaxe e semântica de pacotes entre origem e destino – Rede virtual: sistema de comunicação é uma abstração Redes de Computadores – DCC UFMG <#> Rede virtual Redes de Computadores – DCC UFMG <#> Rede virtual Redes de Computadores – DCC UFMG <#> Protocolos para interconexão • Mais importante de todos: IP • Interconexão: – Conceito fundamental das redes modernas • Para que haja interconexão, hosts e roteadores precisam do protocolo IP • Hoje, é comum encontrar roteadores que executam alguma aplicação também como funções de gerência Redes de Computadores – DCC UFMG <#> IP Internet • Protocol Stack H1 H8 TCP R1 IP IP ETH R2 ETH R3 IP FDDI Redes de Computadores – DCC UFMG FDDI IP PPP PPP TCP IP ETH ETH <#> Service Model • Connectionless (datagram-based) • Best-effort delivery (unreliable service) – – – – packets are lost packets are delivered out of order duplicate copies of a packet are delivered packets can be delayed for a long time Redes de Computadores – DCC UFMG <#> Princípio de funcionamento do protocolo IP • Entrega será feita com o “maior esforço” (best-effort delivery) • No entanto, IP não garante que não haja: – – – – – Duplicação de pacotes Entrega atrasada ou fora de ordem Alteração de dados Perda de pacotes Protocolos de outros níveis devem tratar desses problemas Redes de Computadores – DCC UFMG <#> Service Model • Datagram format 0 4 Version 8 16 TOS HLen 31 Length Ident TTL 19 Flags Protocol Offset Checksum SourceAddr DestinationAddr Options (variable) Pad (variable) Data Redes de Computadores – DCC UFMG <#> Formato do pacote IP Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Version: – Indica o número da versão corrente – Permite uma transição “suave” entre versões Redes de Computadores – DCC UFMG <#> Formato do pacote IP • IHL (Tamanho do cabeçalho): – Qte de 32 bits presente no cabeçalho – Mínimo: 5 (sem nenhuma opção) – Máximo: 15 a 60 bytes (40 opções) Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Tipo de serviço - TOS – Prioridade (3 bits) – Flags indicam o que é mais importante para a aplicação: menor atraso, maior vazão, maior confia-bilidade (3 bits) – Dois bits não usados – Na prática, os roteadores tendem a ignorar este campo Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Comprimento total do pacote: – Pode ser até 65535 bytes Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Identificação: – Identifica o fragmento de um datagrama – É usado pelo destinatário para remontagem Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Bit DF (don't fragment): – Indica que o pacote não deve ser fragmentado • Bit MF (more fragments): – Todos os fragmentos de um pacote, exceto o último, setam este bit Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Fragment Offset: – Indica onde o fragmento se encaixa dentro do pacote – Cada fragmento, exceto o último, deve ser múltiplo de 8 Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Time To Live: – Teoricamente, indica o tempo máximo que um pacote pode existir, i.e., 255 s – Na prática, indica o número máximo de roteadores que pode passar Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Protocolo: – Indica o protocolo para o qual deve-se passar o pacote – A identificação dos protocolos é dada pela RFC 1700 Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Checksum do cabeçalho: – Tem como objetivo aumentar a confiabilidade do pacote entregue às camadas superiores Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Endereços dos computadores origem e destino Redes de Computadores – DCC UFMG <#> Formato do pacote IP • Opções: – Forma de incluir informações não presentes na versão Redes de Computadores – DCC UFMG <#> Fragmentação de pacotes • A camada de rede de cada protocolo especifica uma quantidade máxima de dados que pode enviar de cada vez • Este limite é conhecido como MTU (Maximum Transmission Unit) • Logo, pacotes devem ter no máximo esse tamanho Redes de Computadores – DCC UFMG <#> Fragmentação de pacotes • Problema encontrado frequentemente na prática Redes de Computadores – DCC UFMG <#> Fragmentação de pacotes • Cabeçalho original deve ser preservado na fragmentação • Bit MF e campos de Identificação e Fragment Offset devem ser usados Redes de Computadores – DCC UFMG <#> Fragmentation and Reassembly • Each network has some MTU • Strategy – – – – – – – fragment when necessary (MTU < Datagram) try to avoid fragmentation at source host re-fragmentation is possible fragments are self-contained datagrams use CS-PDU (not cells) for ATM delay reassembly until destination host do not recover from lost fragments Redes de Computadores – DCC UFMG <#> Example H1 ETH IP (1400) R1 R2 FDDI IP (1400) Redes de Computadores – DCC UFMG R3 H8 PPP IP (512) ETH IP (512) PPP IP (512) ETH IP (512) PPP IP (376) ETH IP (376) <#> Example Start of header Ident= x 0 Offset= 0 Rest of header 1400 data bytes Start of header Ident= x 1 Offset= 0 Rest of header 512 data bytes Start of header Ident= x 1 Offset=64 Rest of header 512 data bytes Start of header Ident= x 0 Offset= 128 Rest of header 376 data bytes Redes de Computadores – DCC UFMG <#> Remontagem de pacotes • Processo inverso ao da fragmentação • Quem é responsável por essa tarefa? – Computador de destino responsável por essa tarefa Redes de Computadores – DCC UFMG <#> Remontagem de pacotes • O que ocorre se fragmentos são perdidos, chegam foram de ordem ou atrasados? • RX não tem como informar TX para enviar um fragmento já que TX não conhece nada sobre fragmentação Redes de Computadores – DCC UFMG <#> Remontagem de pacotes • Solução: – RX ao receber o primeiro fragmento de um pacote inicializa um temporizador – Se todos os fragmentos não chegam antes do temporizador se esgotar então todos os fragmentos são ignorados Redes de Computadores – DCC UFMG <#> Fragmentação de fragmentos • É possível fragmentar fragmentos? – Sim. O protocolo IP não faz distinção de níveis de fragmentação • Na prática, a remontagem pode ser feita mais rápida se todos os fragmentos forem do mesmo tamanho Redes de Computadores – DCC UFMG <#> Endereçamento numa rede virtual • Componente crítico da abstração fornecida por uma internet • Independente dos endereços físicos como os usados em redes locais • Ajuda a criar a ilusão de uma rede única e integrada • Usuários, aplicações e protocolos de alto nível usam endereços abstratos para se comunicar Redes de Computadores – DCC UFMG <#> Esquema de endereçamento IP • Na arquitetura TCP/IP, o endereçamento é especificado pelo Internet Protocol (IP) • Endereço IP de um computador: – Número binário único de 32 bits • Dividido em duas partes: – Prefixo: identifica a rede física na qual o computador se encontra (número de rede) – Sufixo: identifica o computador na rede Redes de Computadores – DCC UFMG <#> Esquema de endereçamento IP • Número de rede é único • Número do prefixo deve ser controlado globalmente • Número do sufixo pode ser controlado localmente Redes de Computadores – DCC UFMG <#> Classes de endereçamento IP • Compromisso entre tamanho de prefixo e sufixo que reflete diferentes tamanhos de rede • Classes primárias: A, B e C • Classe D: comunicação em grupo • Classe E: extensão futura (sem uso) • É chamado de auto-identificável: – A classe de um endereço pode ser calculada do próprio endereço Redes de Computadores – DCC UFMG <#> Global Addresses • Properties – globally unique – hierarchical: network + host • Dot Notation – 10.3.2.4 – 128.96.33.81 – 192.12.69.77 A: B: C: Redes de Computadores – DCC UFMG 0 7 24 Network Host 1 0 1 1 0 14 16 Network Host 21 8 Network Host <#> Classes de endereçamento IP Redes de Computadores – DCC UFMG <#> Endereço IP • É chamado de autoidentificável: – A classe de um endereço pode ser calculada do próprio endereço Redes de Computadores – DCC UFMG <#> Endereço IP • Notação decimal com ponto: – 32 bits: 4 x 8 bits • Forma usual de representar endereços • Exemplo: – turmalina.dcc.ufmg.br: 150.164.10.1 Redes de Computadores – DCC UFMG <#> Endereço IP • Valores do primeiro octeto do endereço: • Espaço de endereçamento: Redes de Computadores – DCC UFMG <#> Exemplo de endereçamento Redes de Computadores – DCC UFMG <#> Endereços especiais • Existem alguns endereços que são reservados e não são atribuídos a computadores Redes de Computadores – DCC UFMG <#> Endereços de roteadores • Roteadores devem ter endereços IP • Cada roteador deve ter dois ou mais endereços IP – Um roteador tem conexões para diferentes redes físicas – Cada endereço IP contém um prefixo que especifica uma rede física Redes de Computadores – DCC UFMG <#> Endereços de roteadores Redes de Computadores – DCC UFMG <#> Computadores muti-homed • Computadores ligados a mais de uma rede física • Objetivos: – Confiabilidade – Desempenho • O computador possui um endereço IP em cada rede que se conecta Redes de Computadores – DCC UFMG <#> Datagram Forwarding • Forwarding – encaminhamento – O processo de pegar um pacote de uma entrada e passá-lo para uma saída apropriada. • Routing – roteamento – O processo de construção de tabelas que permitem a correta saída de um pacote ser determinada. Redes de Computadores – DCC UFMG <#> Datagram Forwarding • Strategy – every datagram contains destination’s address – if directly connected to destination network, then forward to host – if not directly connected to destination network, then forward to some router – forwarding table maps network number into next hop – each host has a default router – each router maintains a forwarding table Redes de Computadores – DCC UFMG <#> Datagram Forwarding • Example network Network 1 (Ethernet) H7 H2 H1 R3 H8 H3 Network 4 (point-to-point) Network 2 (Ethernet) R1 R2 H4 Network 3 (FDDI) H5 Redes de Computadores – DCC UFMG H6 <#> Datagram Forwarding • Example (R2) Network Number Next Hop 1 R3 2 R1 (From fig. 4.1) Redes de Computadores – DCC UFMG <#> Datagram Forwarding • Example (R2) Redes de Computadores – DCC UFMG Network Number 1 2 3 4 Next Hop R3 R1 interface 1 interface 0 <#> Datagram Forwarding • Redes escaláveis – Para se obter escalabilidade, é preciso reduzir a quantidade de informação armazenada em cada nodo – A maneira mais comum é usar agregação hierárquica Redes de Computadores – DCC UFMG <#> Datagram Forwarding • Escalabilidade com IP – Dois níveis de hierarquia • Redes no nível superior • Nodos no nível inferior • Roteadores tratam apenas dados agregados – Consideram apenas as redes, e não os nodos Redes de Computadores – DCC UFMG <#> Address Translation • Map IP addresses into physical addresses – destination host – next hop router • Techniques – encode physical address in host part of IP address (don’t work, addresses are limited) – table-based: a table in each host Redes de Computadores – DCC UFMG <#> Address Translation • ARP – Address Resolution Protocol – table of IP to physical address bindings – broadcast request if IP address not in table – target machine responds with its physical address – table entries are discarded if not refreshed Redes de Computadores – DCC UFMG <#> ARP– The Address Resolution Protocol Three interconnected /24 networks: two Ethernets and an FDDI ring. Redes de Computadores – DCC UFMG <#> ARP Packet Format 0 8 16 Hardware type = 1 HLen = 48 PLen = 32 31 ProtocolType = 0x0800 Operation SourceHardwareAddr (bytes 0– 3) SourceHardwareAddr (bytes 4– 5) SourceProtocolAddr (bytes 0– 1) SourceProtocolAddr (bytes 2– 3) TargetHardwareAddr (bytes 0– 1) TargetHardwareAddr (bytes 2– 5) TargetProtocolAddr (bytes 0– 3) Redes de Computadores – DCC UFMG <#> ARP Details • Request Format – – – – – HardwareType: type of physical network (e.g., Ethernet) ProtocolType: type of higher layer protocol (e.g., IP) HLEN & PLEN: length of physical and protocol addresses Operation: request or response Source/Target-Physical/Protocol addresses • Notes – – – – table entries timeout in about 10 minutes update table with source when you are the target update table if already have an entry do not refresh table entries upon reference Redes de Computadores – DCC UFMG <#> Error reporting in the Internet • Embora o protocolo IP simplesmente descarte os pacotes com problemas, • Na prática, os problemas são reportados às fontes de pacotes • Protocolo ICMP, companheiro do IP – Define uma coleção de mensagens de erro Redes de Computadores – DCC UFMG <#> Internet Control Message Protocol (ICMP) • Echo (ping) • Destination unreachable (protocol, port, or host) • TTL exceeded (so datagrams don’t cycle forever) • Checksum failed • Reassembly failed • Cannot fragment • Redirect (from router to source host) Redes de Computadores – DCC UFMG <#> Dynamic Host Configuration Protocol Operation of DHCP. Redes de Computadores – DCC UFMG <#>