O protocolo IP

O protocolo IP é, sem dúvidas, um dos mais importantes da internet. Seu nome, inclusive, é justamente Protocolo da Internet. Ele é responsável pela criação e transporte de pacotes de dados pela rede. Todos os demais protocolos da internet foram desenvolvidos para apoiar o protocolo IP em suas ações.

O que é e qual a função do protocolo IP

O protocolo IP (Internet Protocol e, em português, Protocolo da Internet) faz parte da sequência de protocolos TCP/IP. Ele é um dos protocolos mais importantes da internet, pois permite a elaboração e transporte de datagramas IP (pacotes de dados) sem, contudo, assegurar a entrega dos pacotes de dados. O protocolo IP trata os datagramas IP independentemente, definindo sua representação, encaminhamento e envio.

O protocolo IP determina o destinatário da mensagem graças a três campos. São eles endereço IP, que é o endereço do computador, máscara de subrede, que permite ao endereço IP determinar a parte do endereço que se refere à rede e gateway estreita por padrão, que permite ao protocolo saber qual computador vai receber o datagrama caso o computador de destino não esteja na rede local.

O que é um datagrama

Os dados circulam na Internet na forma de pacotes de dados ou datagramas. Os datagramas são dados encapsulados, ou seja, 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 switches (roteadores) que permitem o seu trânsito.

Como o datagrama aparece

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 de fragmento
(13 bits)

Duração de vida
(8 bits)

Protocolo
(8 bits)

Soma de controle cabeçalho
(16 bits)

Endereço IP de origem (32 bits)

Endereço IP de destino (32 bits)

Dados

O que significam os campos no protocolo IP

Os campos do protocolo IP são:

Versão (4 bits): versão do protocolo IP utilizada (atualmente utiliza-se a versão IPv4) para verificar a validade do datagrama.

Comprimento de cabeçalho ou IHL (4 bits): trata-se do número de palavras de 32 bits que constitui o cabeçalho (o valor mínimo é 5).

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 desse campo é de 2 bytes e a dimensão total do datagrama não pode exceder 65.536 bytes. Utilizado juntamente com a dimensão do cabeçalho, esse campo permite determinar onde estão situados os dados.

Identificação, bandeiras e deslocamento de fragmento são campos que permitem a fragmentação dos datagramas e que serão explicados abaixo.

Tempo de vida ou TTL: este campo indica o número máximo de switches (roteadores) através dos quais o datagrama pode passar. Assim, este campo é reduzido a cada passagem no roteador, quando este atinge o valor crítico de 0, o roteador destrói o datagrama. Isto evita o congestionamento da rede pelos datagramas perdidos.

Protocolo: em codificação decimal, permite saber de que protocolo procede o datagrama. Alguns tipos de protocolo e seus respectivos códigos são ICMP (1), IGMP (2), TCP (6) e UDP (17).

A soma de controle do cabeçalho: contém um valor codificado de 16 bits que permite controlar a integridade do cabeçalho a fim de determinar se ele não foi alterado durante a transmissão. A soma de controle é o complemento de todas as palavras de 16 bits do cabeçalho. Isso é feito para que, quando a soma dos campos do cabeçalho for feita, seja obtido um número com todos os bits posicionados em 1.

Endereço IP de origem ou fonte: representa o endereço IP do computador emissor e permite que o destinatário responda.

Endereço IP de destino: endereço IP do destinatário da mensagem.

Por que o datagrama IP é fragmentado

Como vimos anteriormente, a dimensão máxima de um datagrama é de 65.536 bytes. Contudo, esse valor nunca é atingido, pois as redes não têm capacidade suficiente para enviar pacotes 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 - Unidade de Transferência Máxima), que provocará a fragmentação do datagrama se este tiver uma dimensão maior do que a MTU da rede:

Tipo de rede MTU (em bytes)
Arpanet 1000
Ethernet 1500
FDDI 4470

A fragmentação de um datagrama é feita com os roteadores, 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 roteador vai fragmentá-lo, ou seja, recortá-lo em fragmentos de dimensões inferiores ao MTU da rede e de modo que a dimensão do fragmento seja um múltiplo de 8 bytes:

Em seguida, o roteador vai enviar esses fragmentos de maneira independente e encapsulá-los novamente, acrescentando um cabeçalho a cada fragmento. Além disso, o roteador acrescenta informações para que o computador de destino possa remontar os fragmentos corretamente. Nada impede, contudo, que os fragmentos cheguem na ordem correta, já que são encaminhados independentemente uns dos outros.

Para poder dar conta da fragmentação, cada datagrama possui vários campos que permitem que ele seja remontado. Entre eles está o campo de deslocamento de fragmento, que é o campo que permite conhecer a posição do início do fragmento no datagrama inicial. A unidade de medida deste campo é de 8 bytes. Ainda há o campo de identificação para o número atribuído a cada fragmento para permitir que seja remontado e o campo do comprimento total calculado novamente para cada fragmento.

Por fim, existe o campo da bandeira, que é composto de três bits. O primeiro não é utilizado. O segundo (chamado DF - Don't Fragment - Não fragmentar) indica se o datagrama pode ser fragmentado ou não. Se por acaso um datagrama tem este bit posicionado em 1 e o roteador não pode encaminhá-lo sem fragmentá-lo, então o datagrama é rejeitado com uma mensagem de erro. O terceiro (designado MF - More Fragments - Mais fragmentos), se o indicador estiver em zero, indica que o fragmento é o último ou que o datagrama não foi alvo de fragmentação.

Como se faz a codificação IP

A codificação IP faz parte da camada IP da sequência TCP/IP. Ela visa garantir o encaminhamento de um datagrama IP através de uma rede, tomando o caminho mais curto. Esta função é garantida por máquinas chamadas roteadores, ou seja, máquinas conectadas, que ligam, pelo menos, duas redes. Para mais informações, consulte o RFC 791, que explica de maneira detalhada o protocolo IP.

Foto: © Olivier Le Moal - Shutterstock.com

Este documento, intitulado 'O protocolo IP', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Receba toda semana o melhor conteúdo

Assine nossa newsletter!