Cabeçalho do pacote IP: formato, campos

⚡ Resumo Inteligente

O cabeçalho IP é o metadado colocado no início de cada pacote IP, contendo campos como versão, comprimento do cabeçalho, comprimento total, tempo de vida (TTL), protocolo, checksum e os endereços de origem e destino que os roteadores leem para entregar os dados.

  • 🧭 Objetivo: O cabeçalho IP armazena detalhes de roteamento e entrega, garantindo que cada pacote chegue ao destino correto em todas as redes.
  • 📏 Tamanho O tamanho de um cabeçalho IPv4 varia de 20 a 60 bytes, controlado pelo campo "Comprimento do Cabeçalho da Internet".
  • 🧱 Campos-chave: Os campos principais incluem Versão, IHL, Tipo de Serviço, Comprimento Total, TTL, Protocolo, Soma de Verificação e endereços.
  • 🔀 Fragmentação: A identificação, os sinalizadores e o deslocamento de fragmentos permitem que grandes datagramas sejam divididos e remontados corretamente.
  • 🆚 IPv4 x IPv6: O IPv6 substitui o cabeçalho variável por um cabeçalho fixo de 40 bytes e elimina o campo de checksum.
  • 🤖 Assistência de IA: Os analisadores de pacotes com IA examinam automaticamente os cabeçalhos IP para sinalizar anomalias e acelerar a resolução de problemas.

Formato e campos do cabeçalho do pacote IP

O que é cabeçalho IP?

O cabeçalho IP é uma informação adicional presente no início de um pacote IP. Ele exibe informações como a versão do IP, o comprimento do pacote, a origem e o destino.

O formato do cabeçalho IPv4 tem de 20 a 60 bytes de comprimento e contém as informações necessárias para roteamento e entrega. Ele consiste em campos como Versão, Comprimento do Cabeçalho, Comprimento Total, Identificação, Flags, Checksum, endereço IP de origem e endereço IP de destino. Juntos, esses campos fornecem os dados essenciais necessários para a comunicação. transmit o pacote é transmitido de forma confiável de um host para outro.

Componentes/campos do cabeçalho IPv4

O diagrama abaixo mostra o formato completo do cabeçalho IPv4, com cada campo desenhado em sua posição e largura de bits corretas:

Diagrama do formato do cabeçalho de pacote IPv4 mostrando todos os campos e suas posições de bits.

A seguir, estão os vários componentes/campos do cabeçalho do pacote IP:

  • Versão: O primeiro campo do cabeçalho IP é um indicador de versão de 4 bits. No IPv4, o valor desses quatro bits é definido como 0100, que representa o número 4 em binário. Se o roteador não suportar a versão especificada, o pacote será descartado.
  • Comprimento do cabeçalho da Internet: O comprimento do cabeçalho da Internet, abreviado como IHL, tem 4 bits. Também é chamado de HELEN (Header Length). Este componente IP indica quantas palavras de 32 bits estão presentes no cabeçalho.
  • Tipo de serviço: O tipo de serviço também é chamado de serviços diferenciados. Code Ponto de acesso direto (DSCP). Este campo fornece informações sobre a qualidade de serviço para streaming de dados ou chamadas VoIP. Os três primeiros bits são os bits de prioridade. Ele também especifica como um datagrama deve ser tratado.
  • Comprimento total: O comprimento total é medido em bytes. O tamanho mínimo de um datagrama IP é de 20 bytes e o máximo é de 65,535 bytes. O parâmetro HELEN e o Comprimento Total podem ser usados ​​para calcular o tamanho da carga útil. Todos os hosts devem ser capazes de ler datagramas de 576 bytes. No entanto, se um datagrama for muito grande para os hosts na rede, o método de fragmentação é amplamente utilizado.
  • Identificação: A identificação é um campo usado para identificar exclusivamente os fragmentos de um datagrama IP. Alguns recomendam o uso desse campo para outros fins, como adicionar informações ao pacote. tracing.
  • Sinalizadores de IP: O parâmetro `flags` é um campo de três bits que ajuda a controlar e identificar fragmentos. As configurações possíveis são: o bit 0 é reservado e deve ser definido como zero; o bit 1 significa não fragmentar; e o bit 2 significa mais fragmentos.
  • Deslocamento de fragmento: O deslocamento de fragmento representa o número de bytes de dados à frente de um fragmento específico no datagrama em questão. É especificado em unidades de 8 bytes e tem um valor máximo de 65,528 bytes.
  • Tempo de Viver: Este é um campo de 8 bits que indica o tempo máximo que um datagrama pode permanecer no sistema da internet. A cada processamento de um datagrama, seu valor de TTL é decrementado em um. Quando o valor de TTL chega a zero, o datagrama é descartado para evitar a entrega indefinida de pacotes. O valor de TTL pode variar de 0 a 255.
  • Protocolo: Este campo do cabeçalho IPv4 indica qual protocolo de internet é transportado na última parte do datagrama. Por exemplo, o número 6 é usado para indicar TCP e 17 para indicar o protocolo UDP.
  • Soma de verificação do cabeçalho: O próximo componente é um campo de checksum de cabeçalho de 16 bits, usado para verificar se há erros no cabeçalho. O cabeçalho IP é comparado com o valor do seu checksum. Quando o checksum do cabeçalho não corresponde, o pacote é descartado.
  • Endereço de Origem: O endereço de origem é um endereço de 32 bits da origem usada para o pacote IPv4.
  • Endereço de destino: O endereço de destino também tem 32 bits e armazena o endereço do destinatário.
  • Opções de IP: Este é um campo opcional do cabeçalho IPv4, usado quando o valor de IHL (Internet Header Length) é definido como maior que 5. Ele contém valores e configurações relacionados à segurança, registro de rota, carimbo de data/hora e opções semelhantes. A lista de opções geralmente termina com um marcador de Fim da Lista de Opções (EOL).
  • Data: Este campo armazena os dados da camada de protocolo que repassou os dados para a camada IP.

Como calcular o comprimento do cabeçalho IPv4

O campo Internet Header Length (IHL) informa ao roteador exatamente o comprimento do cabeçalho, permitindo que ele saiba onde o cabeçalho termina e os dados começam. Como o campo tem apenas 4 bits de largura, ele não armazena o comprimento diretamente em bytes. Em vez disso, ele conta o cabeçalho em palavras de 32 bits, onde cada palavra equivale a 4 bytes.

Para converter o valor IHL em bytes, multiplique-o por 4:

  • Mínimo: O menor valor IHL legal é 5, portanto 5 × 4 = 20 bytes. Este é um cabeçalho sem opções.
  • Máximo: O maior valor de IHL é 15, portanto 15 × 4 = 60 bytes. Os 40 bytes extras contêm campos opcionais.

Considere um exemplo prático. Se um pacote chega com um valor IHL de 6, o comprimento do cabeçalho é 6 × 4 = 24 bytes, o que significa que 4 bytes de opções estão presentes após o cabeçalho padrão de 20 bytes. Para encontrar o tamanho da carga útil, subtraiatract o comprimento do cabeçalho do campo Comprimento Total. Se o Comprimento Total for 1,500 bytes e o cabeçalho tiver 24 bytes, então a carga útil será 1,500 − 24 = 1,476 bytes.

Esse cálculo é importante durante a fragmentação, pois um roteador precisa saber o tamanho do cabeçalho para determinar a quantidade de dados que cada fragmento pode transportar sem exceder o limite máximo da rede. Transmission Unidade (MTU).

Cabeçalho IPv4 vs IPv6

O cabeçalho IPv6 foi redesenhado para ser mais simples e rápido de processar do que o cabeçalho IPv4. Ele usa um comprimento fixo e move opções raramente usadas para cabeçalhos de extensão separados, permitindo que os roteadores encaminhem pacotes na velocidade da linha. A tabela abaixo compara os dois cabeçalhos campo por campo:

Característica Cabeçalho IPv4 Cabeçalho IPv6
Tamanho do cabeçalho 20 a 60 bytes (variável) 40 bytes (fixo)
Número de campos 13 campos mais opções 8 campos
Comprimento do endereço Origem e destino de 32 bits Origem e destino de 128 bits
Soma de verificação do cabeçalho Presente Removido
Campos de fragmentação No cabeçalho base (Identificação, Flags, Offset) Movido para um cabeçalho de extensão de fragmento
Opções Transportado dentro do cabeçalho Transportado em cabeçalhos de extensão
Campo de comprimento Comprimento total (cabeçalho mais dados) Comprimento da carga útil (somente carga útil)

Como o IPv6 descarta o checksum e as opções de comprimento variável, seu cabeçalho contém menos campos e pode ser processado em hardware sem recálculo por salto.

Por que o cabeçalho IP é importante

Cada campo no cabeçalho IP existe para que roteadores e hosts possam encaminhar um pacote por diversas redes sem uma conexão permanente entre elas. O cabeçalho é o que torna a comutação de pacotes possível.

  • Roteamento: O endereço de destino indica a cada roteador para onde encaminhar o pacote, enquanto o endereço de origem permite o retorno de respostas e mensagens de erro.
  • Prevenção de loops: O campo Tempo de Vida (Time to Live) é decrementado a cada salto, de modo que um pacote roteado incorretamente é descartado em vez de ficar circulando pela internet indefinidamente.
  • Entrega de acordo com o protocolo correto: O campo Protocolo informa ao host receptor se a carga útil deve ser entregue via TCP, UDP ou outro protocolo.
  • Integrity e remontagem: O checksum protege o cabeçalho contra corrupção, e os campos Identification, Flags e Fragment Offset permitem que um datagrama fragmentado seja reconstruído na ordem correta.

Para engenheiros de rede, ler esses campos em um TCP / IP A captura costuma ser a maneira mais rápida de diagnosticar pacotes descartados, loops de roteamento e configurações incorretas. Endereços IP.

Perguntas Frequentes

O Comprimento do Cabeçalho (IHL) mede apenas o cabeçalho, em palavras de 32 bits, e varia de 20 a 60 bytes. O Comprimento Total mede todo o datagrama — cabeçalho mais dados — em bytes, até 65,535.tracA soma de um valor com o outro fornece o tamanho da carga útil.

A fragmentação divide um datagrama que é maior que o tamanho máximo de um link. Transmission O pacote é dividido em partes menores. Os campos Identificação, Flags e Deslocamento de Fragmento permitem que o destino remonte as partes na ordem correta. Isso ocorre sempre que um pacote precisa atravessar uma rede com uma MTU menor.

Um cabeçalho IPv4 possui 13 campos fixos: Versão, IHL, Tipo de Serviço, Comprimento Total, Identificação, Flags, Deslocamento do Fragmento, TTL, Protocolo, Checksum, Endereço de Origem, Endereço de Destino, além de um campo opcional de Opções. A seção de Dados que se segue é a carga útil, não um campo de cabeçalho.

Não. O checksum do cabeçalho IPv4 abrange apenas os campos do cabeçalho, não a carga útil. Protocolos de camadas superiores, como TCP e UDP, possuem seus próprios checksums para proteger os dados. Como o TTL muda a cada salto, os roteadores recalculam o checksum do cabeçalho a cada encaminhamento.

Quando o TTL chega a zero, o roteador descarta o pacote e retorna uma mensagem ICMP de Tempo Excedido para a origem. Isso impede que os pacotes se percam.ping para sempre em um loop de roteamento. O traceroute A ferramenta depende desse comportamento para mapear cada salto ao longo de um caminho.

O campo Protocolo identifica qual protocolo de camada superior deve receber a carga útil no destino. Os valores comuns são 6 para TCP, 17 para UDP e 1 para ICMP. O host receptor lê esse número para passar os dados para o manipulador correto.

Ferramentas de IA e aprendizado de máquina analisam os cabeçalhos IP capturados para detectar anomalias como endereços de origem falsificados, valores TTL anormais ou ataques de fragmentação. Elas classificam o tráfego e sinalizam ameaças mais rapidamente do que a inspeção manual, embora um engenheiro ainda confirme as descobertas antes de agir.

Copiloto do GitHub pode rascunho Python ou código C que descompacta os campos do cabeçalho IP, decodifica os sinalizadores e valida os checksums a partir de um breve comentário. RevAnalise cuidadosamente a lógica de mascaramento de bits gerada, pois deslocamentos de uma unidade são uma fonte comum de erros de análise.

Resuma esta postagem com: