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.
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:
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.


