Resumo

  • A RFC 791 define Total Length como o datagrama IPv4 completo, incluindo cabeçalho e dados.
  • A RFC 894 exclui do pacote IP o preenchimento que a Ethernet adiciona para alcançar 46 octetos.

Quando um datagrama é curto, a Ethernet ainda precisa cumprir seu contrato de quadro. Seu campo de dados deve ter pelo menos 46 octetos; por isso, zeros podem aparecer depois do datagrama IPv4. A carga do quadro fica maior que o objeto pertencente à camada de rede.

O IPv4 leva sua própria resposta no cabeçalho. Total Length é um campo de 16 bits que mede, em octetos, o cabeçalho junto com os dados. O quadro transporta o pacote, mas não define onde o pacote termina.

Duas medidas, uma fronteira

IHL informa o tamanho do cabeçalho em palavras de 32 bits. O valor mínimo é cinco, equivalente a 20 octetos. Total Length mede o datagrama inteiro em octetos. Assim, o tamanho dos dados resulta da subtração entre o total e o cabeçalho calculado a partir de IHL. Opções podem aumentar o cabeçalho, mas não alteram a função de Total Length.

O campo não inclui endereços Ethernet, campos de controle, preâmbulos, verificações de quadro ou preenchimento. Ele identifica, dentro da carga entregue ao IPv4, os octetos que pertencem ao datagrama.

O limite de 16 bits não é uma promessa de entrega

Total Length pode representar até 65.535 octetos. A RFC 791 considera datagramas tão longos pouco práticos para a maioria dos hosts e redes. Ela exige que hosts aceitem até 576 octetos, inteiros ou fragmentados, e recomenda tamanhos maiores somente com segurança sobre a capacidade do destino. A Ethernet limita a 1.500 octetos o datagrama IP carregado em seu campo de dados. Portanto, o máximo representável não é uma MTU de caminho nem uma garantia de recebimento.

A regra continua na fragmentação

Cada fragmento recebe cabeçalho próprio e seu próprio Total Length, que cobre o cabeçalho e os dados daquele fragmento. Identification, Fragment Offset e More Fragments têm outras funções. Total Length delimita o fragmento atual; não é o tamanho de uma mensagem de aplicação nem necessariamente o tamanho do datagrama original.

Uma declaração pode estar errada e uma captura pode estar truncada. A análise deve comparar Total Length, IHL, bytes disponíveis, possível preenchimento e origem da captura. O campo fornece uma regra de interpretação, não prova de integridade ou entrega.

A divisão de autoridade é o ponto duradouro: IPv4 controla a fronteira do datagrama; o enlace controla quadro e preenchimento. Essa separação permite atravessar tecnologias diferentes sem confundir transporte com pertencimento.

Fontes