IPv4 Internet Protocol version 4 @1981 RFC 791 Prof. Esp. Thiago José Lucas thiago@fatecourinhos.edu.br
Estudos e criação da especificação RFC 791 DARPA Internet Program Protocol Specification, USA September, 1981 Prepared for DARPA, Information Processing Techniques Office Prepared by Information Sciences Institute University of Southern California Marina del Rey City
Motivação Interconexão de redes comutadas por pacotes Transmissão de blocos (chamados datagramas) Identificar origem e destino Fragmentação
Escopo Limites do IP Não emprega mecanismos de confiabilidade Não emprega mecanismos de controle de fluxo Não emprega mecanismos de sequenciamento Depende de outros serviços para garantia de qualidade
Interfaces Ambiente de Internetworking: IP é utilizado por outros protocolos para realizar a comunicação host-to-host Por exemplo: um segmento TCP (OSI transporte) deseja endereçar na camada inferior (OSI rede) Este datagrama IP conterá header e payload TCP Neste caso, abstrai-se uma ideia de um bloco com IP de origem e IP de destino Porta de origem e porta de destino
Operação Duas operações básicas: endereçamento e fragmentação Roteadores analisam source e destination [mais comum] para determinar o melhor caminho Este processo é chamado roteamento Os módulos de internet utilizam campos do cabeçalho IP para fragmentar e remontar os datagramas quando necessário
Operação O módulo internet deve residir em cada host que queira participar de uma comunicação IP, bem como em cada hop que os encaminhe Estes módulos seguem padrões de análise dos endereçamentos IP Sejam padrões para fragmentação Ou padrões para roteamento
Operação O IP utiliza três mecanismos-chave para realizar suas tarefas Type of Service ToS Time to Live TTL Header Checksum
Operação ToS - Qualidade do serviço que é desejada Em geral, é respeitada somente em uma rede local ou no mesmo Sistema Autônomo TTL - Quantidade máxima de hops que o datagrama pode passar até que se chegue ao seu destino Cada hop decrementa 1 ao valor da TTL Quando TTL == 0, o datagrama é descartado Exemplo traceroute
Operação Header Checksum contém a saída de um cálculo hash executado sobre o payload Caso o checksum atual seja diferente do checksum anterior, payload foi corrompido
Operação IP não faz retransmissão e nem controle de fluxo Os módulos de Internet, no mínimo, geram checksum do payload e o adicionam ao header do IP Neste caso de detecção de erros, a reportagem é feita via Internet Control Message Protocol (ICMP)
Relacionamento com outros protocolos O seguinte diagrama ilustra a relação hierárquica com alguns dos principais protocolos da suíte TCP/IP Fonte: RFC 791 DARPA Internet Program Protocol Especification. Setembro de 1981
Modelo de Operação O modelo de operação para transmissão de um datagrama de uma aplicação (camada 7 OSI) para outra é ilustrado pelo seguinte cenário: Supõe-se que a transmissão envolverá apenas 1 hop intermediário, chamado Gateway Padrão Chamaremos a aplicação transmissora de TX e a receptora de RX TX prepara o dado que será enviado e invoca seu módulo de internet para que seja formatado o datagrama, passando como parâmetro o endereço IP de destino. TX recebeu da camada superior informações que permitirão identificar a aplicação em RX
Modelo de operação Continuação... O módulo de internet prepara o header do datagrama e anexa a ele os dados fornecidos pela aplicação O módulo de internet adiciona como endereço IP de origem o próprio endereço da máquina que executa a aplicação TX Como o endereço IP de RX não está na rede local (fora da máscara), o módulo internet adiciona como destino na camada de enlace o endereço físico do Gateway Padrão que está entre TX e RX
Modelo de operação Continuação... Temos, neste ponto, um datagrama (OSI camada 3) encapsulado em um frame (OSI camada 2) pronto para ser enviado ao meio físico (OSI camada 1) << fluxo de bits >> O datagrama chega ao Gateway Padrão, envolto em um frame O Gateway Padrão retira o header do frame e tem agora consigo o próprio datagrama. Ele processará o datagrama com seus módulos internet
Modelo de operação O módulo internet do Gateway Padrão percebe que o endereço IP de destino do datagrama não é de nenhuma de suas NIC s. Ele deve então encaminhar o datagrama, de acordo com a sua tabela de roteamento Como o Gateway Padrão conhece o endereço físico de RX, monta então um frame para que possa ser entregue ao destinatário <<fluxo de bits>>
Modelo de operação RX recebe o frame, desencapsula-o e processa o datagrama RX percebe que o IP de destino do datagrama pertence a si. RX continua a processar o datagrama, desencapsulando-o novamente para ter acesso a informações da camada superior (que conterá dados que informam para qual aplicação o pacote deve ser entregue)
Descrição das funções No geral, a função do IP é prover mecanismos de movimento de datagramas em redes interconectadas de comutação por pacotes Este objetivo é alcançado após o processamento dos datagramas pelos módulos de internet, desde o host de origem até o host de destino, passando por todos os hops intermediários Portanto, obrigatoriamente, qualquer elemento que queira participar de uma internetworking, deve executar um módulo internet
Descrição das funções Para que esse fluxo de datagramas aconteça, uma informação do datagrama é primordial: o endereçamento O endereçamento é interpretado (processado) em todos os hops participantes da internetworking para que o melhor caminho entre origem e destino seja escolhido processo denominado roteamento Para que os datagramas sejam roteados, eles devem ser formatados pelo módulo internet obedecendo o tamanho máximo permitido pela tecnologia física correspondente
Endereçamento Deve-se, neste ponto, entender as diferenças entre nome, endereço e rota: Nome: O que se busca? Endereço: Onde encontrar o que se busca? Rota: Qual o caminho a percorrer para que se chegue ao que se busca?
Endereçamento Esta explicação (nome, endereço e rota) abrange todas as camadas do modelo OSI. Veja: Nome: Camada 7 do modelo OSI Aplicação Apontamento DNS Endereço: Camadas 4 e 3 do modelo OSI Transporte e Rede IP e Porta Rota: Camada 3 do modelo OSI Rede Protocolos de Roteamento
Endereçamento Existe mais uma tradução de endereços, que não é de nomes para endereços IP, mas sim de endereços IP para endereços físicos (MAC) O módulo internet de todo hop deve ser capaz de mapear endereços IP em endereços MAC Existem protocolos específicos para este caso, que estudaremos adiante: ARP Address Resolution Protocol Tradução de IP para MAC (RFC 826) RARP Reverse Address Resolution Protocol Tradução de MAC para IP (RFC 903)
Endereçamento Endereços IP possuem tamanho fixo de 32 bits divididos em 4 octetos Para uso, existem 3 classes de endereçamento IP, explicadas na sequência
Endereçamento Endereçamento IP classe A O primeiro bit do primeiro octeto indica até onde vai esta rede 0-127 Os primeiros 8 bits indicam a rede a qual o host pertence Os demais 24 bits indicam qual o endereço do host nesta rede
Endereçamento Endereçamento IP classe B O dois primeiros bits do primeiro octeto indicam até onde vai esta rede 128-191 Os primeiros 16 bits indicam a rede a qual o host pertence Os demais 16 bits indicam qual o endereço do host nesta rede
Endereçamento Endereçamento IP classe C O primeiros 3 bits do primeiro octeto indicam até onde vai esta rede 192-223 Os primeiros 24 bits indicam a rede a qual o host pertence Os demais 8 bits indicam qual o endereço do host nesta rede
Endereçamento Resumindo
Fragmentação É necessário fragmentar um datagrama IP quando ele é originado por uma rede que possui capacidade de fluxo (tamanho de bloco de bits) superior a uma rede de destino Exemplo: Caso o tamanho máximo de bloco de bytes (frame) de uma rede física seja de 1500 bytes e precise ser trafegado por uma rede de tamanho máximo de frame de 500 bytes, será necessário criar 3 frames (ou seja, 3 fragmentos de um datagrama) de 500 bytes cada. Neste exemplo não considero o tamanho do header, mas, na prática, deve ser considerado.
Fragmentação Um datagrama IP pode ser marcado com a flag don t fragment Neste caso, nenhum hop intermediário poderá fragmentá-lo Em nenhuma circunstância Caso esse datagrama possua essa flag setada como 1, ele não será entregue em redes que possuam tamanho máximo de frame menor que o frame que está sendo enviado Ele será descartado na sua origem
Fragmentação A fragmentação e a remontagem do datagrama IP só funcionam pois: Cada datagrama IP possui uma identificação (campo identification) Gerado automaticamente. Instanciado em memória e incrementado para cada novo datagrama gerado Cada fragmento (menos o último), terá a flag more fragments follow = 1 Cada fragmento desse datagrama fragmentado possui um número de ordenação (campo offset)
DIVIDE POR 8 Simulação de Fragmentação (Exemplo não-real) DO: Tamanho original do datagrama: 1500 bytes MR: MTU da rede: 670 bytes HF: Header do Frame: 10 bytes TF = Tamanho do fragmento do datagrama Cálculo de quantidade de fragmentos (QF): QF = (DO / MR) = 2,23 (ou seja, 3 fragmentos) Cálculo de tamanho dos fragmentos (TF): TF¹ = MR HF = 670 10 = 660 bytes TF² = MR HF = 670 10 = 660 bytes TF³ = <restante> = 180 bytes
Fragmentação Na remontagem dos fragmentos, o receptor do datagrama avalia o valor de quatro campos para determinar que os n fragmentos são de um mesmo datagrama. São eles: Identification Source Destination Protocol Para identificar qual o primeiro fragmento: fragmente offset = 0 Para identificar qual o último fragmento: flag more-fragments = 0
Datagrama IP Fonte: RFC 791 DARPA Internet Program Protocol Especification. Setembro de 1981
Explicação dos campos do cabeçalho IP Version (4 bits) Indica o formato do header que está por vir. Como é o primeiro campo a ser processado, prepara o host para processar IPv4 ou IPv6 IHL (4 bits) Internet Header Length. Indica qual o tamanho total do cabeçalho. O valor mínimo para o header não-corrompido é de 5 bits. Após o valor de IHL, iniciase o payload.
Explicação dos campos do cabeçalho IP Type of Service (8 bits) Indica qual a qualidade de serviço desejada. Na prática, só funciona em uma rede local (se corretamente configurados os parâmetros de QoS). Geralmente pode possuir um dos três valores abaixo: low-delay baixo atraso regular high-relibility alta confiabilidade bom high-throughput alta taxa de transferência ótimo
Explicação dos campos do cabeçalho IP Total Length (16 bits) Indica qual o tamanho da somatória header + payload, ou seja, o tamanho total do datagrama ou do fragmento. Identification Valor que identificará o fragmento no destino. Usado na remontagem Flags (3 bits) Serve para identificar se trata-se de um fragmento (ou se é o último fragmento de uma sequência
Explicação dos campos do cabeçalho IP Fragment Offset (13 bits) Indica em que ponto do datagrama o fragmento deve ser colocado na remontagem Time to Live (8 bits) Valor decrementado a cada hop por onde um datagrama (ou fragmento) passa. Quando seu valor chega a zero, é descartado. É extremamente útil na amenização de loops de roteamento (que estudaremos adiante).
Explicação dos campos do cabeçalho IP Protocol (8 bits) Indica qual o protocolo da camada superior que o datagrama está transportando em seu payload. Pode ser, por exemplo, TCP ou UDP Header Checksum (16 bits) Trata-se do hash identificador do cabeçalho. Sempre que, pelo menos 1 bit for alterado, deve ser recalculado. Como TTL é decrementado em cada hop, cada hop deve recalcular este valor de hash e adicioná-lo ao campo Header Checksum Não entraremos nos méritos dos algoritmos utilizados. Vocês devem ver com detalhes na Disciplina de Criptografia
Explicação dos campos do cabeçalho IP Source Address (32 bits) Endereço IP de origem (host que originou o datagrama) Destination Address (32 bits) Endereço IP de destino (host que receberá o datagrama) Options (tamanho variável) É de preenchimento opcional.
Explicação dos campos do cabeçalho IP Padding (tamanho variável) Usado para garantir que o cabeçalho seja um múltiplo de 8
Autonomous System Detentor de determinado(s) bloco(s) de endereçamento IP público No Brasil, o título de AS é determinado pela ANATEL, mediante burocracia Cada AS recebe um ID identificador É a penúltima escala burocrática na distribuição de blocos de endereço IP A última é o usuário
Hierarquia de alocação de endereços IP (nível global)
Hierarquia de alocação de endereços IP (nível Brasil) O Comitê Gestor da Internet no Brasil (CGI.br) determina legalmente quem recebe o bloco de endereços IP públicos no Brasil Quem recebe é o Núcleo de Informação e Coordenação do ponto br (NIC.br) O NIC.br deve então repassar os blocos aos Sistemas Autônomos, como VIVO, EMBRATEL, OI, TDKOM, GLOBALTECH, etc Provedor menores podem receber blocos de endereço IP de provedores maiores
Hierarquia do CGI.br
Endereçamento público e privado Determina a alcançabilidade do endereço IP Popularmente conhecido como IP Válido (público) IP Inválido (privado) O endereço IP privado é de uso exclusivo de redes intra-as LAN, MAN (VPN), CAN O endereço IP público é visível na Internet e na rede local WAN, inter-as
Governança da Internet Quem, afinal, controla RFC s, alocação de endereços IP e de nomes DNS? Video NIC.br
Atividade Prática - Configurações de Rede Distribuições Linux derivadas do Debian Debian Ubuntu Mint Distribuições Linux mantidas pela Red Hat Red Hat Enterprise Linux Fedora CentOS Unbreakable