Intestazione del pacchetto IP: formato, campi

⚡ Riepilogo intelligente

L'intestazione IP è costituita dai metadati posti all'inizio di ogni pacchetto IP, che contengono campi quali versione, lunghezza dell'intestazione, lunghezza totale, tempo di vita (Time To Live), protocollo, checksum e indirizzi di origine e destinazione, che i router leggono per recapitare i dati.

  • 🧭 Scopo: L'intestazione IP memorizza i dettagli di instradamento e consegna in modo che ogni pacchetto raggiunga la destinazione corretta attraverso le reti.
  • 📏 Dimensioni: L'intestazione IPv4 ha una lunghezza compresa tra 20 e 60 byte, controllata dal campo Internet Header Length.
  • 🧱 Campi chiave: I campi principali includono Versione, IHL, Tipo di servizio, Lunghezza totale, TTL, Protocollo, Checksum e indirizzi.
  • 🔀 Frammentazione: Identificazione, flag e offset dei frammenti consentono di suddividere e riassemblare correttamente datagrammi di grandi dimensioni.
  • 🆚 IPv4 contro IPv6: IPv6 sostituisce l'intestazione variabile con un'intestazione fissa di 40 byte ed elimina il campo checksum.
  • 🤖 Assistenza AI: Gli analizzatori di pacchetti basati sull'intelligenza artificiale analizzano automaticamente le intestazioni IP per segnalare anomalie e velocizzare la risoluzione dei problemi.

Formato e campi dell'intestazione del pacchetto IP

Cos'è l'intestazione IP?

L'intestazione IP è un'informazione meta posta all'inizio di un pacchetto IP. Visualizza informazioni quali la versione IP, la lunghezza del pacchetto, l'origine e la destinazione.

Il formato dell'intestazione IPv4 ha una lunghezza compresa tra 20 e 60 byte e contiene le informazioni necessarie per l'instradamento e la consegna. È composto da campi quali Versione, Lunghezza intestazione, Lunghezza totale, Identificazione, Flag, Checksum, l'indirizzo IP di origine e l'indirizzo IP di destinazione. Insieme, questi campi forniscono i dati essenziali necessari per transmit il pacchetto viene trasmesso in modo affidabile da un host all'altro.

Componenti/campi dell'intestazione IPv4

Il diagramma seguente mostra il formato completo dell'intestazione IPv4, con ciascun campo disegnato nella sua posizione e larghezza in bit corrette:

Diagramma del formato dell'intestazione del pacchetto IPv4 che mostra tutti i campi e le relative posizioni dei bit

Di seguito sono elencati i vari componenti/campi dell'intestazione del pacchetto IP:

  • Versione: Il primo campo dell'intestazione IP è un indicatore di versione a 4 bit. In IPv4, il valore di questi quattro bit è impostato su 0100, che indica 4 in binario. Se il router non supporta la versione specificata, il pacchetto viene scartato.
  • Lunghezza dell'intestazione Internet: La lunghezza dell'intestazione Internet, nota anche come IHL, è di 4 bit. Viene anche chiamata HELEN (Header Length). Questo componente IP indica quante parole a 32 bit sono presenti nell'intestazione.
  • Tipo di servizio: Il tipo di servizio è anche chiamato servizio differenziato Code Punto, o DSCP. Questo campo fornisce funzionalità relative alla qualità del servizio per lo streaming di dati o le chiamate VoIP. I primi 3 bit sono i bit di priorità. Specifica inoltre come deve essere gestito un datagramma.
  • Lunghezza totale: La lunghezza totale viene misurata in byte. La dimensione minima di un datagramma IP è di 20 byte e la massima è di 65,535 byte. HELEN e la lunghezza totale possono essere utilizzati per calcolare la dimensione del payload. Tutti gli host devono essere in grado di leggere datagrammi da 576 byte. Tuttavia, se un datagramma è troppo grande per gli host della rete, si utilizza ampiamente il metodo di frammentazione.
  • Identificazione: L'identificazione è un campo utilizzato per identificare in modo univoco i frammenti di un datagramma IP. Alcuni hanno raccomandato di utilizzare questo campo per altri scopi, come l'aggiunta di informazioni per i pacchetti. tracING.
  • Flag IP: Flags è un campo a tre bit che aiuta a controllare e identificare i frammenti. Le possibili configurazioni sono: il bit 0 è riservato e deve essere impostato a zero; il bit 1 significa non frammentare; e il bit 2 significa più frammenti.
  • Offset del frammento: L'offset di frammento rappresenta il numero di byte di dati che precedono un particolare frammento all'interno dello specifico datagramma. Viene specificato in unità di 8 byte e ha un valore massimo di 65,528 byte.
  • Tempo di vivere: Questo è un campo a 8 bit che indica il tempo massimo di permanenza di un datagramma nel sistema internet. Ogni volta che un datagramma viene elaborato, il suo valore TTL viene decrementato di uno. Quando il valore TTL raggiunge zero, il datagramma viene scartato per evitare che i pacchetti vengano recapitati all'infinito. Il valore di TTL può variare da 0 a 255.
  • Protocollo: Questo campo dell'intestazione IPv4 indica quale protocollo Internet viene trasportato nella parte finale del datagramma. Ad esempio, il numero 6 viene utilizzato per indicare TCP e 17 per indicare il protocollo UDP.
  • Checksum dell'intestazione: Il componente successivo è un campo di checksum dell'intestazione a 16 bit, utilizzato per verificare la presenza di errori nell'intestazione stessa. L'intestazione IP viene confrontata con il valore del suo checksum. Se il checksum dell'intestazione non corrisponde, il pacchetto viene scartato.
  • Indirizzo di partenza: L'indirizzo di origine è un indirizzo a 32 bit dell'origine utilizzata per il pacchetto IPv4.
  • Indirizzo di destinazione: L'indirizzo di destinazione è anch'esso a 32 bit e memorizza l'indirizzo del destinatario.
  • Opzioni IP: Questo è un campo opzionale dell'intestazione IPv4, utilizzato quando il valore di IHL (Internet Header Length) è maggiore di 5. Contiene valori e impostazioni relativi alla sicurezza, al record di routing, al timestamp e ad opzioni simili. L'elenco delle opzioni di solito termina con un marcatore di fine elenco opzioni (EOL).
  • Data: Questo campo memorizza i dati provenienti dal livello di protocollo che ha trasmesso i dati al livello IP.

Come calcolare la lunghezza dell'intestazione IPv4

Il campo Internet Header Length (IHL) indica al router la lunghezza esatta dell'intestazione, permettendogli di distinguere dove termina l'intestazione e dove iniziano i dati. Poiché il campo è largo solo 4 bit, non memorizza direttamente la lunghezza in byte. Conta invece l'intestazione in parole da 32 bit, dove ogni parola corrisponde a 4 byte.

Per convertire il valore IHL in byte, moltiplicalo per 4:

  • Minimo: Il valore IHL minimo consentito è 5, quindi 5 × 4 = 20 byte. Si tratta di un'intestazione senza opzioni.
  • Massimo: Il valore IHL più grande è 15, quindi 15 × 4 = 60 byte. I restanti 40 byte contengono campi opzionali.

Consideriamo un esempio pratico. Se un pacchetto arriva con un valore IHL pari a 6, la lunghezza dell'intestazione è 6 × 4 = 24 byte, il che significa che sono presenti 4 byte di opzioni dopo l'intestazione standard di 20 byte. Per trovare la dimensione del payload, si utilizzatract la lunghezza dell'intestazione dal campo Lunghezza totale. Se la lunghezza totale è di 1,500 byte e l'intestazione è di 24 byte, allora il payload è 1,500 − 24 = 1,476 byte.

Questo calcolo è importante durante la frammentazione, perché un router deve conoscere la dimensione dell'intestazione per capire quanti dati può trasportare ciascun frammento senza superare il limite massimo della rete. Transmission Unità (MTU).

Intestazione IPv4 vs IPv6

L'intestazione IPv6 è stata riprogettata per essere più semplice e veloce da elaborare rispetto all'intestazione IPv4. Utilizza una lunghezza fissa e sposta le opzioni utilizzate raramente in intestazioni di estensione separate, in modo che i router possano inoltrare i pacchetti alla velocità di linea. La tabella seguente confronta i due campi delle intestazioni:

Caratteristica Intestazione IPv4 Intestazione IPv6
Dimensione dell'intestazione Da 20 a 60 byte (variabile) 40 byte (fisso)
Numero di campi 13 campi più opzioni 8 campi
lunghezza dell'indirizzo Sorgente e destinazione a 32 bit Sorgente e destinazione a 128 bit
Checksum dell'intestazione Presente rimosso
Campi di frammentazione Nell'intestazione di base (Identificazione, Flag, Offset) Spostato in un'intestazione di estensione Fragment
Opzioni Trasportato all'interno dell'intestazione Trasportato nelle intestazioni di estensione
Campo lunghezza Lunghezza totale (intestazione più dati) Lunghezza del carico utile (solo carico utile)

Poiché IPv6 elimina il checksum e le opzioni a lunghezza variabile, la sua intestazione contiene meno campi e può essere elaborata a livello hardware senza ricalcolo per ogni hop.

Perché l'intestazione IP è importante

Ogni campo nell'intestazione IP esiste affinché router e host possano trasferire un pacchetto attraverso diverse reti senza una connessione permanente tra di esse. L'intestazione è ciò che rende possibile il funzionamento della commutazione di pacchetto.

  • Routing: L'indirizzo di destinazione indica a ciascun router dove inoltrare il pacchetto, mentre l'indirizzo di origine consente la ricezione di risposte e messaggi di errore.
  • Prevenzione del loop: Il campo Time to Live viene decrementato a ogni hop, quindi un pacchetto instradato in modo errato viene scartato invece di girare indefinitamente su Internet.
  • Consegna secondo il protocollo corretto: Il campo Protocollo indica all'host ricevente se inoltrare il payload a TCP, UDP o a un altro protocollo.
  • Integrity e rimontaggio: Il checksum protegge l'intestazione da eventuali danneggiamenti, mentre i campi Identificazione, Flag e Offset frammento consentono di ricostruire un datagramma frammentato nell'ordine corretto.

Per gli ingegneri di rete, leggere questi campi in un TCP / IP La cattura è spesso il modo più veloce per diagnosticare pacchetti persi, loop di routing e configurazioni errate Gli indirizzi IP.

DOMANDE FREQUENTI

La lunghezza dell'intestazione (IHL) misura solo l'intestazione, in parole a 32 bit, e varia da 20 a 60 byte. La lunghezza totale misura l'intero datagramma, intestazione più dati, in byte, fino a 65,535.tracSommando i valori di uno e dell'altro si ottiene la dimensione del carico utile.

La frammentazione divide un datagramma che è più grande del massimo di un collegamento Transmission Suddivide l'unità in pezzi più piccoli. I campi Identificazione, Flag e Offset frammento consentono alla destinazione di riassemblare i pezzi in ordine. Ciò accade ogni volta che un pacchetto deve attraversare una rete con un MTU inferiore.

Un'intestazione IPv4 ha 13 campi fissi: Versione, IHL, Tipo di servizio, Lunghezza totale, Identificazione, Flag, Offset frammento, TTL, Protocollo, Checksum, Indirizzo sorgente, Indirizzo di destinazione, più un campo Opzioni facoltativo. La sezione Dati che segue è il payload, non un campo di intestazione.

No. Il checksum dell'intestazione IPv4 copre solo i campi dell'intestazione, non il payload. I protocolli di livello superiore come TCP e UDP utilizzano i propri checksum per proteggere i dati. Poiché il TTL cambia a ogni hop, i router ricalcolano il checksum dell'intestazione a ogni inoltro.

Quando il TTL raggiunge zero, il router scarta il pacchetto e restituisce un messaggio ICMP Time Exceeded alla sorgente. Questo impedisce ai pacchetti di essere persiping per sempre in un ciclo di routing. Il traceroute Lo strumento si basa su questo comportamento per mappare ogni passaggio lungo un percorso.

Il campo Protocollo identifica quale protocollo di livello superiore deve ricevere il payload a destinazione. I valori comuni sono 6 per TCP, 17 per UDP e 1 per ICMP. L'host ricevente legge questo numero per inoltrare i dati al gestore corretto.

Gli strumenti di intelligenza artificiale e apprendimento automatico analizzano le intestazioni IP acquisite per rilevare anomalie come indirizzi sorgente falsificati, valori TTL anomali o attacchi di frammentazione. Classificano il traffico e segnalano le minacce più velocemente rispetto all'ispezione manuale, sebbene un tecnico debba comunque confermare i risultati prima di intervenire.

Copilota GitHub può bozza Python oppure codice C che estrae i campi dell'intestazione IP, decodifica i flag e convalida i checksum da un breve commento. RevEsaminate attentamente la logica di mascheramento dei bit generata, poiché gli scostamenti di un'unità sono una fonte comune di errori di analisi sintattica.

Riassumi questo post con: