Concetti Chiave
- Il formato del datagramma IP include componenti come Version, Length, Service Type e Packet Length, ognuno con la propria funzione specifica.
- Il campo Identification consente di identificare univocamente i pacchetti, e la frammentazione è gestita tramite i campi Flags e Fragment Offset.
- Il campo Time to Live (TTL) impedisce la trasmissione di traffico parassita, riducendo il valore ogni volta che il pacchetto attraversa un nodo di rete.
- Il Protocol field specifica il protocollo associato ai dati, mentre l'Header Checksum verifica la correttezza dell'intestazione.
- L'header include anche gli indirizzi IP di origine e destinazione, opzioni aggiuntive e un campo Padding per allineare la lunghezza.
Il formato del pacchetto o datagramma e formato con i seguenti componenti:
Version(4bit):
Indica quale versione del protocollo e utilizzata. Attualmente la versione è la Ipv4 ma alcune criticità emerse con il passare degli anni in modo particolare la scarsità degli indirizzi ancora disponibili hanno portato alla sperimentazione una nuova versione denominata Ipv6.
Length(4bit):
E' la lunghezza in byte dell'intestazione del datagramma IP.
Service Type(8 bit):
E' composto da una serie di sotto campi che determinano alcune caratteristiche del datagramma tra le quali la priorità che può essere utili per stabilire nel caso di percorsi multipli su quale tratta inoltrare il pacchetto.
Pachet Length(16bit):
Indica la stanchezza totale del pacchetto.
Identification(16 bit):
Contiene un valore numerico che identifica univocamente il pacchetto.
Nel caso in cui sia necessario suddividere il pacchetto in più frammenti,ognuno di essi mantiene lo stesso valore del campo identificatore;
Flags e Fragment Offset(4bit il primo e 12 bit il secondo):
Sono i campi che consento la frammentazione del pacchetto e la sua successiva ricomposizione.
Il campo Flags contiene tre bit,dei quali solo due sono significativi.
1)DF (Don't Fragment):
Se impostato a 1 non consente la frammentazione del pacchetto pertanto se la MTU ovvero la massima dimensione dell'unita dati della rete attraverso la quale il pacchetto deve trasmettere è inferiore alla dimensione del pacchetto stesso questo viene scartato e ne viene segnalata al mittente l'eliminazione .Questo bit e utili in sede id test della comunicazione.
2)MF(More Fragment):
Indica se vi sono ancora frammenti quando è impostato al valore 0 significa chi frammento che lo contiene e l'ultimo del pacchetto.
Il campo Fragment Offset indica quanti byte intercorrono tra il primo byte del frammento rispetto e il primo byte del pacchetto originale;Questa distanza e definita offset.
I valori presenti nei due campi Flags Fragment Offset permettono al destinatario di assemblare correttamente il pacchetto di partenza. Ad esempio se un pacchetto da 1200 byte deve attraversare una rete con MTU pari a 500 byte,sarà suddiviso in tre frammenti con i seguenti valori assegnati ai flags e al campo offset:
Frammento DF MF Fragment Offset
1 0 1 0
2 0 1 500
3 0 1 1000
Time to live (8 bit):
E' un campo importante per impedire la trasmissione di traffico parassita nel caso di circoli viziosi tra gli apparati di rete detti anche loop di instradamento. Questo campo e inizializzato un dato valore che di norma e 15, e tutte le volte che il pacchetto attraversa un apparato di rete che si occupa di instradamento decrementato di una unità. Se il valore arriva a 0, il pacchetto è scartato e venie inviata al mittente una notifica di questo evento attraverso il protocollo ICMP;
Protocol(8 bit):
Rappresenta il protocollo al quale fanno riferimento le informazione del campo dati. Il protocollo TCP,ad esempio corrisponde al numero 6;
Header Checksun(16 bit):
Serve per verificare la correttezza dell'intestazione. Dato che il campo TTL e decrementato da ogni apparto di rete attraversato deve essere ogni volta ricalcolato;
IP Address source e IP address Destination(32 bit entrambi.):
Indicano i riferimenti al mittente e al destinatario del pacchetto;
Options(28 bit):
Serve per imposta numerose opzioni tra le quali pozioni di sicurezza traccia dei percorsi fino alla destinazione ,registrazione del tempio impiegato per attraversare gli apparati di rete;
Padding(4bit):
E' un campo fittizio,il cui unico scopo e quello di arrotondare il numero di byte che costituiscono l'intestazione a un multiplo di 4.
Domande da interrogazione
- Qual è la funzione del campo "Version" nel formato del pacchetto IP?
- Come viene determinata la priorità di un datagramma IP?
- Qual è il ruolo del campo "Flags e Fragment Offset"?
- Cosa succede quando il valore del campo "Time to live" arriva a zero?
- A cosa serve il campo "Header Checksum"?
Il campo "Version" indica quale versione del protocollo IP è utilizzata, attualmente Ipv4, ma si sta sperimentando Ipv6 a causa della scarsità di indirizzi disponibili.
La priorità di un datagramma IP è determinata dal campo "Service Type", che include sotto campi che stabiliscono caratteristiche come la priorità per l'inoltro su percorsi multipli.
I campi "Flags e Fragment Offset" consentono la frammentazione e la ricomposizione del pacchetto, con "DF" che impedisce la frammentazione e "MF" che indica se ci sono altri frammenti.
Quando il valore del campo "Time to live" arriva a zero, il pacchetto viene scartato e viene inviata una notifica al mittente tramite il protocollo ICMP.
Il campo "Header Checksum" verifica la correttezza dell'intestazione e deve essere ricalcolato ogni volta che il campo TTL viene decrementato da un apparato di rete.