Fundamentos de Redes de Computadores Internet Protocol
Internetworking LANs separadas e sem interoperabilidade Necessidade de um esquema que permitisse interligar várias tecnologias de rede em um todo coerente Objetivo: interligar diferentes tecnologias de rede oferecendo serviços universais de comunicação Resultado: abstração de alto-nível que oferece uma base para todas as decisões de projeto
Internetworking aplicação camada de abstração aplicação FDDI DecNET Token Ring Ethernet LANtastic
Internetworking - Aplicação Oferecida em sistemas antigos A aplicação entende os detalhes da rede e se comunica com outra aplicação em outra rede Novas funcionalidades de rede -> novas aplicações Há duplicidade de código entre duas aplicações Aplicação X Aplicação X Rede A Rede B
Internetworking - Rede Oferece mecanismos que entregam pacotes da fonte ao destino Vantagens Mapeamento direto no hardware -> eficiente Separação das atividades de comunicação das atividades de aplicação Mantém o sistema flexível, tornando possível a construção de protocolos de propósito geral Permite a mudança de código no nível de rede sem afetar as aplicações
Internetworking - Rede Oferecer uma interconexão de redes unificada e cooperativa que ofereça serviço de comunicação universal internet (com i minúsculo!) Aplicação X abstração Aplicação X Rede A Rede B
Arquitetura da internet Como as redes são interconectadas de modo a formarem uma internet? R:duas redes só podem estar interconectadas por um computador que está ligado a ambas (mas isso não é suficiente) Computadores que interligam duas redes E passam pacotes de uma para outra são chamados de roteadores
Interconexão através de roteadores Roteadores oferecem um meio de interconectar redes, e não apenas máquinas! Em uma rede TCP/IP, roteadores oferecem a base da interconexão entre redes físicas
Todas as redes são iguais Do ponto de vista da rede internet, qualquer sistema capaz de transferir pacotes conta como uma única rede, independente da latência, vazão, tamanho de pacotes ou escala geográfica. Os protocolos TCP/IP tratam todas as redes de maneira igualitária. Uma rede local Ethernet, o backbone da RNP ou um link ponto-a-ponto são vistos como uma única rede
internet TCP/IP Visão usuário
Histórico Internet Paul Baran On Distributed Communications... (1960) paper seminal
Histórico Internet Possível topologia da ARPANET 1960 (Larry Roberts).
Histórico Internet Topologia ARPANET (ARPA/DoD) -1969 Hobbes' Internet Timeline Copyright (c)1993-2001 by Robert H Zakon IMP: Internet Message Processor
Histórico Internet Topologia ARPANET (ARPA/DoD) Abril 1971
Histórico Internet Topologia ARPANET (ARPA/DoD) Setembro 1971
Histórico Internet Topologia ARPANET (ARPA/DoD) 1973 e 1974
Histórico Internet Topologia ARPANET (ARPA/DoD) Anos 80
Internet in a chip (Agosto 1987) Histórico Internet
Histórico Internet
Histórico Internet Hoje a arquitetura da Internet é bem mais complicada... Usuário ISP ISP ISP ISP Usuário Conteúdo ISP ISP ISP ISP Usuário Usuário Usuário Usuário ISP NAP Acesso Dedicado Usuário Usuário Acesso Discado ISP - Internet Service Provider NAP - Network Access Point
Com milhões de hosts... Histórico Internet
Histórico Internet E aplicações cada vez mais exigentes em termos de Qualidade de Serviço (QoS - Quality of Service). Video sob-demanda Vídeo em tempo real Telefonia IP (VoIP) Transações Bancárias Videoconferências...
Internet - Pressões Aumento de carga e de usuários Novas Aplicações Internet Novas políticas Novas tecnologias de computação e comunicação Internetworking with TCP/IP - Douglas Comer
Internet - Brasil FAPESP http://registro.br Backbone RNP (Rede Nacional de Pesquisas) http://www.rnp.br/backbone/ Estatísticas Link RJ - Miami http://www.rnp.br/operacao/trafego/internacional.html Comitê Gestor da Internet - Brasil http://www.cg.org.br/
Exercícios 1) Diferencie internet e Internet. 2) Esboce a arquitetura de uma conexão discada a um provedor Internet. 3) Esboce a arquitetura de uma conexão dedicada a um provedor Internet. 4) Qual a principal vantagem da interconexão de rede (interneworking) do ponto de vista do usuário? 5) Para que serve um roteador? 6) Cite alguns problemas que estão sendo enfrentados pela Internet atual
Arquitetura Internet O software de uma internet (rede IP) é projetado tendo em vista três camadas conceituais arranjadas em uma hierarquia: muito de seu sucesso baseia-se na robustez e flexibilidade dessa hierarquia
Sistema de entrega connectionless Serviço fundamental: entrega de pacotes Não confiável A entrega não é garantida (pacote pode ser perdido, duplicado, atrasado ou entregue fora de ordem sem haver notificação) Não orientado à conexão (connectionless) O pacote é tratado de maneira independente de todos os outros. Uma sequência de pacotes de uma máquina para outra pode passar por caminhos diferentes Baseado no paradigma de melhor esforço (besteffort) A rede faz o possível para entregar o pacote, não descartando nenhum deles a não ser que seus recursos estejam sobrecarregados
O que está por trás do IP Internet Protocol Implementa o mecanismo de entrega de pacotes não-confiável, não orientado à conexão e best-effort Define a unidade básica de transmissão datagrama IP Realiza a função de roteamento Escolha de qual rota o datagrama deve seguir Define regras que englobam a idéia de entrega não confiável de pacotes Quando mensagens de erro devem ser geradas, as condições em que pacotes são descartados, etc.
Datagrama IP O datagrama IP é dividido em duas áreas: área de cabeçalho (header) e área de dados. O header contém os endereços IP de origem e destino e um campo que identifica o conteúdo transportado na área de dados
Datagrama IP
Datagrama IP Versão do protocolo IP. Versão corrente = 4 (IPv4). Qualquer software IP deve processar esse campo antes de processar o datagrama
Datagrama IP Tamanho do header medido em palavras de 32 bits (4 bytes). Tamanho mais comum é 20 bytes (sem ip options e padding), o que significa HLEN = 5
Datagrama IP Tamanho do datagrama IP medido em bytes, incluindo os bytes do header e do campo de dados. Tamanho máximo possível de um datagrama IP é, portanto, 65536 bytes (64KB).
Datagrama IP Type of Service (TOS): Especifica como o datagrama deve ser manipulado. Esse campo é dividido em cinco sub-campos...
TOS (Type os Service) Utilizado para QoS (MPLS) 000 - normal 001 010 011 100 101 110 111 controle de rede low delay high throughput high reliability dica para o roteamento
Encapsulamento IP À medida que o datagrama move-se de uma rede para a outra, ele deve ser encapsulado em frames de tamanhos distintos (dependentes da rede física)
Fragmentação IP Caso ideal Todo o datagrama encapsulado em único quadro físico. (como escolher o tamanho de datagrama ideal?) MTU (Maximum Transfer Unit) MTU Ethernet: 1500 bytes/frame MTU pronet: 2044 bytes/frame O datagrama IP se adapta ao MTU das redes físicas através da fragmentação (divisão do datagrama em fragmentos)
Fragmentação IP Roteador R1 fragmenta datagramas grandes enviados de A para B; R2 fragmenta datagramas grandes de B para A
Fragmentação IP
Fragmentação IP O tamanho dos fragmentos deve ser múltiplo de oito Usualmente o último fragmento é menor dos que os outros Os fragmentos devem ser remontados antes de serem entregues ao destino final O IP não limita os datagramas a um tamanho pequeno e nem garante que eles não serão fragmentados (a fragmentação e a montagem ocorrem automaticamente) Cada fragmento contém um header que duplica a maioria da informação (exceto por um bit no campo FLAGS)
Remontagem A remontagem só acontece no sistema destino Desvantagens: Se fragmentos são perdidos, o datagrama não pode ser montado Se um datagrama passa por uma rede de pequeno MTU, os fragmentos permanecerão pequenos até o destino, mesmo que haja uma rede com MTU maior antes do destino (ineficiência) O destino dispara um timer quando ele recebe o fragmento inicial Se o timer expira antes de todos os datagramas chegarem, a máquina destino descarta os fragmentos sem processar o datagrama.
Controle dos Fragmentos Número inteiro único que identifica o datagrama. Usado pelo sistema destino para identificar os fragmentos recebidos
Controle dos Fragmentos Especifica o offset (deslocamento) dos dados carregados nesse datagrama em relação ao datagrama original (medido em bytes, iniciando em zero)
Controle dos Fragmentos 2 bits desse campo controlam fragmentação. Um deles define se o datagrama poderá ser fragmentado (do not fragment bit) e o outro define se os dados carregados são originários do meio do datagrama ou do fim (more fragment bit)
TTL (Time to Live) Especifica quanto tempo, em segundo, o datagrama pode permanecer no sistema internet. Quando uma máquina injeta um datagrama na rede, ela configura um tempo máximo. Cada vez que um roteador processa um datagrama, ele decrementa em uma unidade esse contador. Se o contador for igual a zero, o datagrama é descartado.
Outros campos do datagrama Análogo ao campo TYPE do frame Ethernet. O valor nesse campo especifica qual protocolo de alto nível está sendo transportado dentro do campo de dados do datagrama (esse valor é padronizado e pode ser obtido em http:///www.iana.org)
Outros campos do datagrama Esse campo garante a integridade dos valores presentes no cabeçalho. O valor nesse campo é obtido tratando o cabeçalho como uma seqüência de inteiros de 16 bits, adicionando-os utilizando aritmética complemento de um e tirando o complemento de um do resultado (obs: utilizar valor = 0 no campo ao realizar a computação)
Outros campos do datagrama Endereços IP de origem e destino do datagrama IP. Esses valores nunca mudam à medida que o datagrama é encaminhado pelos roteadores
Outros campos do datagrama Representa o início da área de dados do datagrama. Seu tamanho dependerá do que estiver sendo enviado no datagrama.
Outros campos do datagrama Utilizado para teste do protocolo. Todas as implementações padrão devem incluir esse campo. Pode-se gravar a rota de um pacote, forçar que um pacote seja enviado por uma determinada rota ou gravar o instante de tempo em que o pacote passou por cada roteador
Revisão Endereços IP são identificadores universais As redes TCP/IP formam uma rede virtual que utiliza os endereços IP para o envio/recebimento de pacotes Duas máquinas em uma dada rede física somente podem se comunicar se elas souberem o endereço físico de cada uma delas Como um host (ou roteador) mapeia um dado endereço IP em um endereço físico quanto necessita enviar um pacote pela rede física?
O Problema da Resolução de Endereços MACa MACb IPa A IPb B Máquina A deseja enviar um pacote para a máquina B sabendo apenas IPb. Como a máquina A mapeia o endereço IPb para o endereço MACb?
O Problema da Resolução de Endereços Formalmente, é o problema de mapear endereços de alto nível para endereços físicos Algumas abordagens: Manter tabelas de mapeamento entre endereços de alto nível e endereços físicos em cada máquina Codificar os endereços físicos em endereços de alto nível Duas abordagens utilizadas no TCP/IP Resolução por mapeamento direto (histórico) Resolução por mapeamento dinâmico (ARP)
Resolução por mapeamento direto Existe uma relação direta entre o endereço IP configurado na estação e o seu endereço físico, ou seja, MACa = f (IPa) Ex: Rede Token Ring pronet-10 O usuário pode escolher o endereço físico configurado na estação Assim, o endereço físico escolhido pode possuir relação direta com o endereço IP da estação Endereço físico 3 para uma máquina que possui o endereço IP 192.5.48.3 Resolução = extrair o host id do endereço IP
O Problema da Resolução de Endereços 3 4 A B 192.5.48.3 192.5.48.4 Máquina A deseja enviar um pacote para a máquina B sabendo apenas IPb (192.5.48.4). MACb = f (192.5.48.4) = 4 f = extrair o host id do endereço IP
Resolução por mapeamento direto Eficiente Requer poucas instruções de máquina Fácil de manter O mapeamento é realizado sem referência a nenhum banco de dados externo Escalável Novas máquinas podem ser adicionadas a rede sem mudanças no perfil de tráfego (mapeamento intrínseco) e nem recompilação de código Versatilidade baixa Inadequado para outras tecnologias (como a Ethernet) e sujeita a erros de mapeamento
Resolução por mapeamento dinâmico Endereços Ethernet são formados por 48 bits e são queimados (associados) diretamente a uma dada placa de rede Quando uma placa de rede falha e há a necessidade de troca, o endereço físico da estação muda Além disso, é difícil que um endereço de 48bits possa ser codificado de uma maneira eficiente em um endereço IP de 32 bits
Resolução por mapeamento dinâmico Os projetistas do TCP/IP propuseram uma solução criativa para o problema da resolução de endereços para redes que possuem a capacidade de broadcast. Solução: possibilitava a inclusão de novas máquinas sem recompilação de código não necessitava da manutenção de um banco de dados centralizado ARP (Address Resolution Protocol) - RFC 826 protocolo de baixo nível que associa endereços IP a endereços físico dinamicamente
ARP e RARP Endereço IP de 32 bits ARP RARP Endereço Ethernet de 48 bits Exercício: Imagine uma situação prática em que o RARP é utilizado.
ARP - Funcionamento Quando o host A quer resolver o endereço IPb, ele realiza um broadcast de um pacote especial (ARP request) que pergunta ao host que tem o IPb que responda com o seu endereço físico MACb Todos os hosts recebem a requisição mas APENAS o host B reconhece o seu endereço IP O host B envia uma resposta para A (ARP reply) que contém o seu endereço físico Quando A recebe a resposta, ele utiliza o endereço físico de B para enviar o pacote diretamente a B
ARP - Funcionamento
ARP Cache Para reduzir os custos de comunicação, cada host mantém uma tabela com os mais recentes mapeamentos realizados (ARP cache) Quando um host recebe um ARP reply, a sua tabela é atualizada com o novo mapeamento Quando um host quer enviar um pacote, ele sempre pesquisa em sua tabela o endereço IP que deseja mapear. Se existe o mapeamento, o host não necessita realizar o broadcast Tempo médio de permanência em cache: 20min
Encapsulamento ARP Ethernet (14) ARP request/reply (28) (frame type) 0x0806
Formato pacote ARP 1 - Ethernet 0x0800 IP (Qual protocolo se quer mapear) 1 ARP request 2 ARP reply
Formato pacote ARP Os pacotes ARP não possuem um formato fixo, ao contrário dos outros protocolos Campo hard size (tamanho em bytes do endereço físico) 6 Ethernet Campo prot size (tamanho em bytes do protocolo) 4 IP O ARP pode ser utilizado para a resolução de endereços físico de diferentes tecnologias de rede
Refinamentos Se host A deseja falar com o host B, é provável que B deseje falar com A também A pode enviar o seu endereço físico na requisição para que B atualize a sua tabela Se A realiza um broadcast de sua requisição, então todas as máquinas podem atualizar suas tabelas com o mapamento de A Quando uma nova máquina é inserida na rede (ou quando há reboot), pode-se evitar ARPs de outras máquinas enviando-se via broadcast um ARP request de seu próprio endereço (gratuitous ARP)