vuoi
o PayPal
tutte le volte che vuoi
Protocollo Internet (IP): inoltro e indirizzamento in Internet
Adesso ci concentreremo sulle modalità d’indirizzamento e d’inoltro in Internet, cioè
nell’ambito dell’Intenet Protocol (IP).Attualmente sono in uso due versioni di IP: il
protocollo IP versione 4, ampiamente adottato, detto IPv4 e la versione 6 di IP,
proposta in sostituzione di IPv4. Consideriamo i componenti di Internet a livello di rete.
Come mostrato in figura, il primo è il protocollo IP, il secondo è il protocollo
d’instradamento, che determina il percorso che i datagrammi seguiranno per giungere
a destinazione e l’ultimo è costituito dalla capacità di riportare gli errori nei
datagrammi e di rispondere a determinate richieste di informazioni a livello di rete.
Formato dei datagrammi
Un pacchetto a livello di rete viene detto datagramma. I principali campi dei
datagrammi IPv4 sono i seguenti:
Numero di versione. Questi quattro bit, che specificano la versione del
protocollo IP del datagramma, consentono al router la corretta interpretazione
del datagramma; infatti, versioni diverse di IP hanno differenti formati per i
datagrammi.
Lunghezza dell’intestazione. Un datagramma IPv4 può contenere un numero
variabile di opzioni(incluse nell’intestazione), e questi 4 bit indicano dove
iniziano effettivamente i dati del datagramma. La maggior parte dei
datagrammi IP non contiene opzioni, pertanto il tipico datagramma IP ha
un’intestazione di 20 byte.
Tipo di servizio. I bit relativi al tipo di servizio (TOS)sono stati inclusi
nell’intestazione IPv4 per distinguere diversi tipi di datagrammi. Spesso è utile
distinguere datagrammi in tempo reale(usati nelle applicazioni di telefonia) da
altro traffico (ad esempio,FTP).
Lunghezza del datagramma. Rappresenta la lunghezza totale del datagramma
IP,intestazione più dati, misurata in byte. Poiché questo campo è lungo 16 bit, la
massima dimensione dei datagrammi IP è 65535 byte, anche se raramente
questi superano i 1500.
Identificatore,flag,spiazzamento di frammentazione. Questi tre bit hanno a che
fare con la cosi detta frammentazione. Occorre rilevare che IPv6 non consente
frammentazione presso i router.
Tempo di vita. Il campo time-to-live (TTL) è stato incluso per assicurare che i
datagrammi non restino in circolazione per sempre nella rete. Questo campo
viene decrementato di una unità ogni volta che il datagramma è elaborato da
un router, e quando raggiunge 0 il datagramma deve essere eliminato.
Protocollo. Questo campo è usato solamente quando il datagramma raggiunge
la destinazione finale. Il valore del campo indica lo specifico protocollo a livello
di trasporto al quale vanno passati i dati del datagramma. Ad esempio, il valore
6 indica che i dati sono destinati a TCP, mentre il valore 17 designa UDP. Il
numero di protocollo nel datagramma IP ha un ruolo analogo a quello del campo
numero di porta nel segmento a livello di trasporto. Il numero di protocollo è
l’anello di collegamento tra i livelli di rete e di trasporto, mentre il numero di
porta è il “collante” che lega i livelli di trasporto e di applicazione.
Checksum dell’intestazione. Consente ai router di rilevare gli errori sui bit nei
datagrammi ricevuti. E’ calcolata trattando ogni coppia di byte dell’intestazione
come numeri che sono poi sommati in complemento a 1. Un router calcola tale
valore per ciascun datagramma IP ricevuto e rileva una condizione di errore se
la checksum trasportata nell’intestazione del datagramma non corrisponde a
ca
quella calcolata. I router normalmente scartano i datagrammi in cui si verifi
un errore. Notiamo che la checksum deve essere calcolata e memorizzata
su ogni router,come anche il campo TTL e i campi opzione, che possono
cambiare.
Indirizzi IP d’origine e destinazione. Quando un host crea un datagramma,
inserisce il proprio indirizzo IP nel campo indirizzo IP origine e quello della
destinazione nel campo indirizzo IP destinazione. Spesso l’host origine
determina l’indirizzo di destinazione attraverso una ricerca DNS.
Opzioni. Questi campi consentono di estendere l’intestazione IP. Le opzioni
dell’intestazione sono state concepite per un utilizzo sporadico. Da qui la
decisione di non includere l’informazione dei campi opzione nell’intestazione di
tutti i datagrammi.
Dati(carico utile).Nella maggior parte dei casi, il campo contiene il segmento a
livello di trasporto(TCP o UDP) da consegnare alla destinazione.
I datagrammi IP hanno 20 byte d’intestazione, escludendo le opzioni, ma i datagrammi
che trasportano segmenti TCP,ne hanno 40: 20 d’intestazione IP più 20 d’intestazione
TCP. Frammentazione dei datagrammi IP
Vedremo che non tutti i protocolli a livello di collegamento possono trasportare
pacchetti della stessa dimensione a livello di rete.
La massima quantità di dati che un frame a livello di collegamento può trasportare è
detta unità massima di trasmissione (MTU).Dato che,per il trasporto da un router a un
altro, i datagrammi IP sono incapsulati in frame a livello di link, la MTU di questo
protocollo pone un limite rigido alla lunghezza dei datagrammi IP. Tale limite non
costituisce un problema in sé, ma la difficoltà è dovuta al fatto che le tratte del
percorso tra mittente e destinatario possono utilizzare differenti protocolli a livello di
collegamento, e ciascuna tratta può avere differenti MTU.
La soluzione consiste nel frammentare i dati del datagramma IP in due o più
datagrammi IP più piccoli, detti frammenti, e quindi trasferirli sul collegamento
d’uscita.
I frammenti dovranno però essere riassemblati prima di raggiungere il livello di
trasporto alla destinazione. Infatti ,TCP e UDP si aspettano di ricevere segmenti
completi, da parte del livello di rete. I progettisti di IPv4 decisero di assegnare il
compito del riassemblaggio dei datagrammi ai sistemi terminali anziché ai router
interni.
Quando un host di destinazione riceve una serie di datagrammi dalla stessa origine,
deve individuare i frammenti, determinare quando ha ricevuto l’ultimo, e stabilire
come debbano essere assemblati per formare il datagramma originario. Per consentire
all’host di destinazione di svolgere questo compito, i progettisti hanno posto nel
datagramma IP i campi identificazione, flag e spiazzamento di frammentazione.
Quando crea un datagramma, l’host lo contrassegna con un numero identificativo e
con gli indirizzi d’origine e di destinazione. Generalmente, l’host d’invio incrementa
l’identificativo di ciascun datagramma che invia. Quando il router frammenta il
datagramma, contrassegna i frammenti con gli indirizzi d’origine e di destinazione e
con l’identificatore numerico del datagramma originario. Quando la destinazione
riceve una serie di datagrammi dallo stesso host mittente, può esaminare gli
identificatori per determinare i frammenti di uno stesso datagramma. Poiché IP
fornisce un servizio non affidabile, alcuni frammenti potrebbero non giungere mai a
destinazione. Per questo motivo, affinché l’host destinazione sia assolutamente certo
di aver ricevuto tutti i frammenti e sia in grado di riassemblarli in modo corretto,
l’ultimo ha un bit posto a 0, mentre in tutti gli altri è posto a 1, e si utilizza il campo
spiazzamento per specificare l’esatto ordine che questi avevano originariamente
all’interno del datagramma IP.
Se qualche frammento non arriva a destinazione , il datagramma incompleto viene
scartato senza essere inoltrato al livello di trasporto. Ma questo recupererà la perdita
facendo ritrasmettere dall’origine i dati del datagramma originario.
Indirizzamento IPv4
E’ ora necessario soffermarci sul modo in cui gli host e i router vengano connessi per
formare una rete. Generalmente un host ha un solo collegamento con la rete; quando
l’IP dell’host vuole inviare un datagramma, lo fa su tale collegamento. Il confine tra
host e collegamento fisico viene detto interfaccia. Invece, dato che il compito di un
router è ricevere datagrammi da un collegamento e inoltrarli su un altro, questi
devono necessariamente essere connessi ad almeno due collegamenti.
Anche il confine tra un router e i suoi collegamenti è chiamato interfaccia .Il router
presenta più interfacce,una su ciascuno dei suoi collegamenti. Poiché ogni host e ogni
router sono in grado d’inviare e ricevere datagrammi, IP richiede che tutte le
interfacce abbiano un proprio indirizzo IP. Pertanto, l’indirizzo IP è tecnicamente
associato a un’interfaccia, anziché all’host o al router che la contiene.
Gli indirizzi IP sono lunghi 32 bit(4 byte), e quindi ci sono in totale 2 indirizzi IP, cioè
circa 4 miliardi. Tali indirizzi sono solitamente scritti nella cosiddetta notazione
decimale puntata, in cui ciascun byte dell’indirizzo viene indicato in forma decimale ed
è separato con un punto dagli altri byte dell’indirizzo.
Ad esempio nell’indirizzo IP 193.32.216.9 il numero 193 è l’equivalente decimale dei
primi 8 bit dell’indirizzo;32 è l’equivalente dei secondi 8, e così via. Pertanto, l’indirizzo
193.32.216.9 in notazione binaria diventa
11000001 00100000 11011000 00001001
Ogni interfaccia di host e router di Internet ha un indirizzo IP globalmente univoco. Tali
indirizzi non possono essere scelti in modo arbitrario. Una parte dell’indirizzo di
un’interfaccia è determinata dalla sottorete cui è collegata.
La figura mostra un router (con tre interfacce) che connette sette host. I tre a sinistra
e l’interfaccia del router cui sono connessi hanno un indirizzo IP della forma
233.1.1.xxx: ossia i 24 bit più a sinistra nell’indirizzo IP sono identici. Le quattro
interfacce sono anche interconnesse da una rete che non contiene router. Se questa
rete fosse una LAN Ethernet, le interfacce sarebbero interconnesse da un hub o da uno
switch Ethernet. Per IP, questa rete che interconnette tre interfacce di host e
l’interfaccia di un router forma una sottorete. Le sottoreti sono anche chiamate reti IP
o semplicemente reti. IP assegna a questa sottorete l’indirizzo 223.1.10/24, dove la
notazione /24, detta anche maschera di sottorete, indica che i 24 bit più a sinistra
dell’indirizzo definiscono l’indirizzo della sottorete. Di conseguenza, la sottorete
223.1.1.0/24 consiste di tre interfacce di host (223.1.1.1,223.1.1.2,223.1.1.3) e un’di
un’interfaccia di router (223.1.1.4).Ogni altro host connesso alla sottorete 223.1.1.0/24
deve avere un indirizzo della forma 223.1.1.xxx.La figura riporta gli indirizzi delle tre
sottoreti.
E’ detta sottorete una rete isolata i cui punti terminali sono collegati all’interfaccia di
un host o di un router.
In linea di principio, le diverse sottoreti potrebbero avere indirizzi alquanto differenti;
anche se in pratica questi presentano molti punti in comune.
La strategia di assegnazione degli indirizzi Internet è detta Classless Interdomain
Routine.(CIDR)L’indirizzo IP viene diviso in due parti e mantiene la forma decimale
puntata a.b.c.d/x, dove x indica il numero di bit nella prima parte dell’indirizzo.
Gli x bit più a sinistra di un indirizzo della forma a.b.c.d/x costituiscono la porzione di
rete dell’indirizzo IP, e sono spesso detti prefisso ( di rete) dell’indirizzo. A