IP - Internet Protocol

Histórico

O protocolo internet (IP), definido e aprovado pelo DoD (Departamento de Defesa Americano), foi concebido para uso em sistemas de computação interconectados através de comutação de pacotes [RFC791] As primeiras redes a se utilizarem do IP foram a ArpaNET (Rede militar de pesquisa, financiada pela ARPA - Advanced Research Projects Agency) e a NSFNet (Rede acadêmica de pesquisa, financiada pela NSF - National Science Foundation).
Como o pricipal objetivo da internet era manter a informação circulando entre os principais centros de conhecimento e os centros militares, mesmo em caso de guerra, o protocolo de rede deveria ser robusto e auto-configurável, garantindo alguma imunidade quanto à destruição das linhas de comunicação e/ou destes centros. A operação descentralizada é muito importante no sistema militar americano e esta característica foi obrigatoriamente incluída na ArpaNet.
Por causa destas características desejadas, o método de comunicação na camada de rede escolhido deveria ser não orientado a conexão, e não confiável, refletindo completamente a situação de uma rede física em momentos críticos. A confiabilidade das informações deveria ser provida pelas aplicações ou por protocolos de camadas superiores, como o TCP.
O Protocolo Internet criou então três definições importantes:

Formato do Datagrama

Falando em formato dos dados em um datagrama, vamos direto ao assunto. A figura abaixo mostra um mapa de bits que compõe o cabeçalho de um datagrama IP. Seu tamanho mínimo é de 20 bytes (5 longwords), mas pode variar em função das opções.
 0                   1                   2                   3   
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|  IHL  |Type of Service|          Total Length         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         Identification        |Flags|      Fragment Offset    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Time to Live |    Protocol   |         Header Checksum       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       Source Address                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Destination Address                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Options                    |    Padding    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Comentários

Analisando o sistema de roteamento IP do ponto de vista de uma estação, temos 3 casos particulares:
  1. Loopback: Endereço 127.0.0.1 ou mesmo um dos endereços associados ao próprio emissor.
    • Neste caso, o datagrama não chega nem mesmo a sair da estação emissora, sendo conduzido internamente pelo sistema operacional.
  2. Local: O endereço destino está localizado na mesma sub-rede que o emissor. Esta determinação pode ser feita através de uma comparação do netmask com os endereços envolvidos.
    • Neste caso, o datagrama deve ser enviado para o endereço físico (MAC Addr, no caso ethernet) do destinatário.
  3. Remoto: O endereço deve ser acessado através de um roteador.
    • Neste caso, o datagrama deve ser enviado para o endereço físico do roteador, sem mexer no endereço lógico (IP Dest Addr), do destinatário.
Temos então um problema: Como determinar qual roteador usar nas entregas remotas ? Se só existir um roteador, o problema termina: basta mandar tudo que é desconhecido para ele. Este caso é chamado de rota default.
Se existir mais de um roteador, então é necessário usar alguma forma de escolha. A mais comum é usar uma tabela de roteamento interna, com pares destino-roteador. A forma de construção desta tabela pode ser estática, através de uma configuração permanente, ou dinâmica, com o uso de um software de roteamento tipo o routed ou o gated.
Outro problema existente se refere ao uso de endereços locais. Como determinar qual o endereço físico referente a um endereço lógico ? Uma opção é encapsular o endereço físico dentro do endereço lógico. Essa opção é usada pela rede DecNet, da DEC. Outra forma, menos restritiva é usar uma tabela de conversão.
Esta tabela de conversão pode ser fixa ou dinâmica. Uma tabela fixa é mais simples de implementar, mas torna proibitiva a interligação de novas máquinas. Cada modificação na rede ou na interface de uma das máquinas exigiria a atualização das bases de dados de todas as outras. Esse é um problema de complexidade exponencial, que deve ser evitado.
Já a implementação dinâmica se baseia na determinação do endereço através de negociação entre as máquinas. Para redes com suporte a transmissão em broadcast, como a ethernet, foi criado o protocolo ARP, assunto do próximo capítulo.


Copyright ©1995 by Jonny