O Datagrama IPv4 é a unidade de dados básica da camada de rede. Ele é composto por um Cabeçalho (mínimo de 20 bytes) seguido pelos dados propriamente ditos.
1. Estrutura do Cabeçalho IPv4 (RFC 791)
| Campo | Tamanho (Bits) | Função |
|---|---|---|
| Version | 4 | Para o IPv4, o valor é fixo em 4 (0100). |
| IHL (Header Length) | 4 | Indica o tamanho do cabeçalho em palavras de 32 bits. |
| Type of Service (ToS) | 8 | Usado para priorização de pacotes (Differentiated Services). |
| Total Length | 16 | Tamanho total do datagrama (Cabeçalho + Dados). |
| Identification | 16 | Identifica pacotes que pertencem a um mesmo datagrama fragmentado. |
| Flags | 3 | Usado no controle de fragmentação (Don’t Fragment, More Fragments). |
| Fragment Offset | 13 | Indica a posição da parte do dado no datagrama original. |
| TTL (Time to Live) | 8 | Contador de “saltos” para evitar pacotes em loop infinito na rede. |
| Protocol | 8 | Identifica qual protocolo da camada superior (ex: 6=TCP, 17=UDP, 1=ICMP). |
| Header Checksum | 16 | Verificação de integridade apenas do cabeçalho. |
| Source Address | 32 | Endereço IP do emissor. |
| Destination Address | 32 | Endereço IP do receptor final. |
2. O Papel do TTL (Time to Live)
O campo TTL é vital para a sobrevivência da rede:
- A cada roteador que o pacote atravessa, o valor do TTL é subtraído em 1.
- Se o TTL chegar a zero, o roteador descarta o pacote e envia uma mensagem de erro ICMP Type 11 (Time Exceeded) para o remetente.
- Isso impede que pacotes fiquem girando para sempre em caso de erro de roteamento.
3. Fragmentação e Montagem
Quando um pacote IP precisa atravessar um link com uma MTU (Maximum Transmission Unit) menor que o tamanho do pacote, ele é fragmentado.
- Os roteadores dividem o pacote original em pedaços menores.
- O host de destino usa o campo Identification e Fragment Offset para remontar o pacote original antes de entregá-lo para a camada de transporte.
[!IMPORTANT]
No IPv6, a fragmentação não é mais feita pelos roteadores intermediários. Se um pacote for muito grande, o roteador simplesmente o descarta e avisa o emissor para que ele mesmo faça a fragmentação. Isso torna o roteamento na espinha dorsal da Internet muito mais performático.