Upload
stefano-fanelli
View
828
Download
8
Embed Size (px)
Citation preview
7/25/2019 A. Tanenbaum - Reti di Calcolatori - 4 Edizione.pdf
1/2
434 Capitolo 5
--------------------------------------------------------- 32 Bit ------------------------
Version IHL Type of service Total length
Identification P p Fragment offset
Time to live Protocol Header checksum
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 tra-
sferimento 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 pre -
cede t t e (priorit) e tre segnalatori, D ,T e R. Il campoprec ed en ce indicava la priorit da 0
(normale) a 7 (pacchetto di controllo della rete). I tre bit di segnalazione permettevano alf-
host di indicare linteresse nei confronti dellinsieme costituito da ritardo, capacit di tra-
sporto, 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 ritar-
do 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 cam-
biato un po il campo per favorire i servizi differenziati. Sei bit sono utilizzati per indica-
re la classe di servizio di appartenenza del pacchetto; come abbiamo gi visto, queste clas-
si includono quattro priorit di accodamento, tre probabilit di eliminazione e le classi sto-
riche. 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 data-
gramma contengono lo stesso valore identification. Subito dopo c un bit inutilizzato, e
poi due campi lunghi un 1 bit. DF l acronimo di D o n t F ragm en t, ossia non frammenta-
re; rappresenta un ordine che impone ai router di non dividere in frammenti il datagram-
ma perch la destinazione non in grado di rimettere insieme i pezzi. Per esempio, allav-
vio di un computer, la ROM potrebbe chiedere di ricevere unimmagine di memoria tra-
smessa tramite un solo datagramma.
7/25/2019 A. Tanenbaum - Reti di Calcolatori - 4 Edizione.pdf
2/2
Lo strato network 435
Contrassegnando il datagramma con il bitDF, 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 segui-
re 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 imposta-
to 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 cor-
rente. 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 diun 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 conta-
tore dovrebbe essere decrementato a ogni salto, oppure se rimane per lungo tempo acco-
dato 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 scar-
tato 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 dan-
neggiamento delle tabelle di routing. Quando ha assemblato un datagramma completo, lo
strato network ha bisogno di sapere che cosa farne. Il campo pro to col (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 docu-
mento RFC 1700, ma oggi sono contenuti in un database in linea che pu essere scarica-
to dal sito www.iana.org. Il campo header checksum (checksum dellintestazione) verifi-
ca 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 l aritmetica 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 allar-
rivo. 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 direte 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 pro-
tocollo la possibilit dincludere informazioni non presenti nel progetto originale, agli speri-
mentatori 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 (lun-
ghezza 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.