O protocolo IP

Julho 2015

O papel do protocolo IP

O protocolo IP faz parte da camada Internet da sequência de protocolos TCP/IP. É um dos protocolos mais importantes da Internet, porque permite a elaboração e o transporte dos datagramas IP (os pacotes de dados), sem contudo assegurar a “entrega”. Na realidade, o protocolo IP trata os datagramas IP independentemente uns dos outro, definindo a sua representação, o seu encaminhamento e a sua expedição.

O protocolo IP determina o destinatário da mensagem graças a 3 campos:

  • O campo dirige IP : endereço da máquina
  • O campo máscara de subrede: uma máscara de subrede permite ao protocolo IP determinar a parte do endereço IP que se refere à rede
  • O campo ponte estreita por defeito: Permite ao protocolo Internet saber a que máquina entregar o datagrama, se por acaso a máquina de destino não está na rede local

Os datagramas

Os dados circulam na Internet sob a forma de datagramas (fala-se também de pacotes). Os datagramas são dados encapsulados, isto é, são dados aos quais se acrescentaram cabeçalhos que correspondem a informações sobre o seu transporte (como o endereço IP de destino).

Os dados contidos nos datagramas são analisados (e eventualmente alterados) pelos switchs que permitem o seu trânsito.

Eis o aspecto de um datagrama:


<--
32 bits -->


Versão
(4 bits)

Comprimento de cabeçalho
(4 bits)

Tipo de serviço
(8 bits)

Comprimento total
(16 bits)

Identificação
(16 bits)

Bandeira
(3 bits)

Desfasamento fragmento
(13 bits)

Duração de vida
(8 bits)

Protocolo
(8 bits)

Soma de controlo cabeçalho
(16 bits)

Endereço IP fonte (32 bits)

Endereço IP destino (32 bits)

Dados



Eis o significado dos diferentes campos:

  • Versão (4bits): trata-se da versão do protocolo IP que se utiliza (actualmente utiliza-se a versão 4 IPv4) para verificar a validade do datagrama. É codificada em 4 bits.
  • Comprimento de cabeçalho, ou IHL para Internet Header Length (4 bits): trata-se do número de palavras de 32 bits que constituem o cabeçalho (nota: o valor mínimo é 5). Este campo é codificado em 4 bits.
  • Tipo de serviço (8 bits): indica a maneira segundo a qual o datagrama deve ser tratado.
  • Comprimento total (16 bits) : indica a dimensão total do datagrama em bytes. A dimensão deste campo de 2 bytes, a dimensão total da datagrama não pode exceder 65536 bytes. Utilizado conjuntamente com a dimensão do cabeçalho, este campo permite determinar onde estão situados os dados.
  • Identificação, bandeiras (flags) e deslocação de fragmento são campos que permitem a fragmentação dos datagramas, e que serão explicados abaixo.
  • Duração de vida chamada também TTL, para Time To Live (8 bits): este campo indica o número máximo de switchs através através dos quais o datagrama pode passar. Assim este campo é reduzido a cada passagem em switch, quando este atinge o valor crítico de 0, o switch destrói o datagrama. Isto evita o congestionamento da rede pelos datagramas perdidos.
  • Protocolo (8 bits): este campo, em notação decimal, permite saber de que protocolo procede o datagrama
    • ICMP : 1
    • IGMP : 2
    • TCP : 6
    • UDP : 17
  • Soma de controlo do cabeçalho ou, em inglês, header checksum (16 bits) : este campo contém um valor codificado de 16 bits, que permite controlar a integridade do cabeçalho a fim de determinar se este não foi alterado durante a transmissão. A soma de controlo é o complemento de todas as palavras de 16 bits do cabeçalho (campo soma de controlo excluído). Isto faz-se para que, quando se faz a soma dos campos do cabeçalho (soma de controlo incluída), se obtenha um número com todos os bits posicionados a 1.
  • Endereço IP fonte (32 bits) : Este campo representa o endereço IP da máquina emissora, permite ao destinatário responder
  • Endereço IP destino (32 bits) : endereço IP do destinatário da mensagem

A fragmentação dos datagramas IP

Como vimos anteriormente, a dimensão máxima de um datagrama é de 65536 bytes. Contudo, este valor nunca é atingido porque as redes não têm uma capacidade suficiente para enviar pacotes assim tão grandes. Além disso, as redes na Internet utilizam diferentes tecnologias, de modo que a dimensão máxima de um datagrama varia de acordo com o tipo de rede.
A dimensão máxima de uma trama chama-se MTU (Maximum Transfer unit), que provocará a fragmentação do datagrama se este tiver uma dimensão maior do que a MTU da rede.


Tipo de redeMTU (em bytes)
Arpanet1000
Ethernet1500
FDDI4470




A fragmentação de um datagrama faz-se a nível dos switchs, ou seja, durante a transição de uma rede cuja MTU é considerável para uma rede cuja MTU é mais fraca. Se o datagrama for demasiado grande para passar na rede, o switch vai fragmentá-lo, quer dizer, recortá-lo em fragmentos de dimensões inferiores ao MTU da rede e de modo a que a dimensão do fragmento seja um múltiplo de 8 bytes.




O switch vai seguidamente enviar estes fragmentos de maneira independente e reencapsulá-los (acrescentar um cabeçalho a cada fragmento) de maneira a ter em conta a nova dimensão do fragmento. Além disso, o switch acrescenta informações para que a máquina de destino possa remontar os fragmentos na boa correcta. Nada nos diz, contudo, que os fragmentos chegarão pela boa ordem, já que são encaminhados independentemente uns dos outro.


Para ter em conta a fragmentação, cada datagrama possui vários campos que permitem a sua remontagem :

  • campo deslocação de fragmento (de 13 bits): campo permitindo conhecer a posição do início do fragmento no datagrama inicial. A unidade de medida deste campo é de 8 bytes (o primeiro fragmento que tem um valor de zero).
  • campo identificação (16 bits) : número atribuído a cada fragmento a fim de permitir a sua remontagem.
  • campo comprimento total (16 bits): é calculado novamente para cada fragmento.
  • campo bandeira (3 bits): é composto de três bits :
    • O primeiro não é utilizado.
    • O segundo (chamado DF: Don' t Fragment) indica se o datagrama pode ser fragmentado ou não. Se por acaso um datagrama tem este bit posicionado em 1 e o switch não pode encaminhá-lo sem o fragmentar, então o datagrama é rejeitado com uma mensagem de erro
    • O último (designado MF : More Fragments, em portuguêsMais fragmentos) indica se o datagrama for um fragmento de dado (1). Se o indicador estiver a zero, isso indica que o fragmento é o último (por conseguinte , que o switch deveria estar na posse dos fragmentos precedentes) ou que o datagrama não foi alvo de uma fragmentação.


O encaminhamento IP

O encaminhamento IP faz parte integrante da camada IP da sequência TCP/IP. O encaminhamento consiste em assegurar o encaminhamento de um datagrama IP através de uma rede tomando o caminho mais curto. Este papel é assegurado por máquinas chamadas switchs, quer dizer máquinas ligadas (que ligam) pelo menos duas redes.

Mais informações

Para mais informações, é melhor consultar o RFC 791, que explica de maneira detalhada o protocolo IP:

Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
O-protocolo-ip .pdf

Veja também


IP protocol
IP protocol
Protocolo IP
Protocolo IP
Das IP Protokoll
Das IP Protokoll
Le protocole IP
Le protocole IP
Il protocollo IP
Il protocollo IP
Este documento, intitulado « O protocolo IP »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.