Sei sulla pagina 1di 2

Capitolo 5

434

--------------------------------------------------------- 32 Bit ------------------------

Version

IHL

P p

Identification
Time to live

Total length

Type of service

Fragment offset
Header checksum

Protocol
Source address
Destination address
Opzioni (0 o pi word)

Figura 5.53. Lintestazione di IPv4 (Internet Protocol).

sione digitale del parlato la velocit di trasmissione prevale sullaccuratezza, mentre nel trasferimento dei file la trasmissione senza errori una qualit pi importante della velocit.
In origine, il campo di 6 bit conteneva (da sinistra a destra) un campo di 3 bit chiamato prec e d e tte (priorit) e tre segnalatori, D , T e R. Il campo precedence indicava la priorit da 0
(normale) a 7 (pacchetto di controllo della rete). I tre bit di segnalazione permettevano alfhost di indicare linteresse nei confronti dellinsieme costituito da ritardo, capacit di trasporto, affidabilit. In teoria, questi campi permettevano ai router di scegliere, per esempio,
tra un collegamento via satellite caratterizzato da unelevata capacit di trasporto e da un
lungo ritardo e una linea affittata caratterizzata da una bassa capacit di trasporto e un ritardo ridotto [NrR - stato definito anche un ulteriore bit, C: se impostato a uno, il router
dovrebbe scegliere il percorso di costo minimo per il pacchetto. I bit inutilizzati prima del
campo Total lenght, perci, non sono due ma uno solo]. In pratica i router correnti spesso
ignorano del tutto il campo type o f Service. Alla fine, IETF ha gettato la spugna e ha cambiato un po il campo per favorire i servizi differenziati. Sei bit sono utilizzati per indicare la classe di servizio di appartenenza del pacchetto; come abbiamo gi visto, queste classi includono quattro priorit di accodamento, tre probabilit di eliminazione e le classi storiche. Total lenght (lunghezza totale) tiene conto di tutto il contenuto del datagramma,
intestazione e dati; la lunghezza massima 65.535 byte. Oggi questo limite superiore
tollerabile, ma le reti gigabit del futuro potrebbero richiedere datagrammi pi grandi. Il
campo identification (identificazione) serve allhost di destinazione per determinare a
quale datagramma appartiene il frammento appena arrivato. Tutti i frammenti di un datagramma contengono lo stesso valore identification. Subito dopo c un bit inutilizzato, e
poi due campi lunghi un 1 bit. DF lacronimo di D o n t Fragment, ossia non frammentare; rappresenta un ordine che impone ai router di non dividere in frammenti il datagramma perch la destinazione non in grado di rimettere insieme i pezzi. Per esempio, allavvio di un computer, la ROM potrebbe chiedere di ricevere unimmagine di memoria trasmessa tramite un solo datagramma.

Lo strato network

435

Contrassegnando il datagramma con il bit DF, il trasmettitore sa che i dati arriveranno cos
come sono stati trasmessi, ossia in un unico pezzo, anche se questo significa imporre al
datagramma di evitare una rete a pacchetti piccoli posta sul percorso migliore, per seguire invece un percorso non ottimale. Qualsiasi computer deve accettare frammenti con
dimensione di 576 byte, ma pu accettarne anche di pi brevi. MF lacronimo di More
Fragments, ossia pi frammenti. Tutti i frammenti, tranne lultimo, hanno questo bit impostato a L E fondamentale sapere quando sono arrivati tutti i frammenti di un datagramma.
Fragment offset (offset del frammento) indica la posizione del frammento nel datagramma corrente. Tutti i frammenti tranne lultimo in un datagramma devono essere multipli di 8 byte, che
la dimensione del frammento elementare. Poich sono disponibili 13 bit, ci possono essere
al massimo 8.192 frammenti per ogni datagramma, di conseguenza la lunghezza massima di
un datagramma pari a 65.536 byte, uno pi del campo total lenght. Il campo fune to live
(tempo di vita) un contatore utilizzato per limitare la vita di un pacchetto. Si presume
che il conteggio sia espresso in secondi, quindi la durata massima di 255 sec. Il contatore dovrebbe essere decrementato a ogni salto, oppure se rimane per lungo tempo accodato in un router (in questo caso dovrebbe essere decrementato pi volte). Nella realt,
per, il valore riflette solo il numero di salti. Quando raggiunge lo zero, il pacchetto scartato e un pacchetto di avviso inviato allhost sorgente. Questa funzionalit impedisce ai
datagrammi di girare a vuoto per sempre, evento che potrebbe accadere in caso di danneggiamento delle tabelle di routing. Quando ha assemblato un datagramma completo, lo
strato network ha bisogno di sapere che cosa farne. Il campo protocol (protocollo) indica
quale processo di trasporto in attesa di quei dati. TCP una possibilit, ma ci sono anche
UDP e altre soluzioni. La numerazione dei protocolli valida globalmente in Internet. I
numeri di protocollo e gli altri numeri assegnati sono stati elencati in passato nel documento RFC 1700, ma oggi sono contenuti in un database in linea che pu essere scaricato dal sito w ww .iana.org. Il campo header checksum (checksum dellintestazione) verifica solo lintestazione. Questo checksum aiuta a rilevare gli errori generati da locazioni di
memoria difettose nel router. Lalgoritmo somma tutte le mezze parole di 16 bit appena
arrivate, usando laritmetica in complemento a uno, e poi prende il complemento a uno del
risultato. Per gli scopi di questo algoritmo, si suppone che header checksum sia zero allarrivo. Questo algoritmo pi robusto di una normale somma. Si noti che header checksum
deve essere ricalcolato a ogni salto, perch almeno un campo cambia sempre (il campo
time to live), ma alcuni trucchi permettono di accelerare lelaborazione. Source address
(indirizzo sorgente) e destination address (indirizzo di destinazione) indicano il numero di
rete e il numero di host; gli indirizzi Internet sono esaminati nel prossimo paragrafo. Il campo
options (opzioni) era stato pensato come via di fuga per dare alle versioni successive del protocollo la possibilit dincludere informazioni non presenti nel progetto originale, agli sperimentatori di collaudare nuove idee e ai progettisti di evitare di assegnare bit di intestazione
alle informazioni usate pi di rado. Le opzioni sono di lunghezza variabile. Ognuna inizia con
un codice di 1 byte che la identifica; alcune sono seguite da un campo option lenght (lunghezza di opzione ) di 1 byte che precede uno o pi byte di dati. Il campo options riempito
con multipli di quattro byte. In origine erano definite cinque opzioni, elencate nella Figura
5.54; successivamente ne sono state aggiunte delle nuove.