02. Livello Internet

Livello Internet

Corrisponde al livello 3 della pila OSI. Questo livello ha la responsabilità di prendere in consegna i blocchi di dati del livello superiore, inscriverli in datagram, il PDU di questo livello, e farli pervenire all'host di destinazione.

Questo livello specifica il comportamento di dispositivi in grado di svolgere funzioni di inoltro (forwarding) e instradamento (routing). Tali dispositivi, i router, hanno la capacità di interconnettere più reti tramite le proprie interfacce fisiche (almeno due).

La funzione di inoltro prevede che un pacchetto che arriva ad una delle interfacce di un router sia veicolato verso la corretta interfaccia di uscita. 

La funzione di instradamento consente di definire il percorso che il datagram deve compiere per giungere a destinazione. Per far ciò in uscita dall'host mittente e poi ogni volta che il datagram giunge ad un router, deve essere stabilito qual è il successivo router che deve essere raggiunto per avvicinarsi alla destinazione.

Va precisato che la funzione di inoltro è una funzione interna del router mentre l'instradamento coinvolge l'intera rete.

A questo livello appartengono i seguenti protocolli:

Note:

Indirizzi IPv4

Il compito principale del livello Internet, come si è detto, è quello di consentire a ciascun datagram di portare a destinazione il proprio payload, attraversando i nodi interposti tra mittente e destinatario.

E' chiaro che il sistema di indirizzamento svolge un ruolo fondamentale in tutto questo ed è intuitivo che l'indirizzo del destinatario deve avere caratteristiche di univocità a livello mondiale.

Gli indirizzi del livello Internet sono detti indirizzi IP. Storicamente questi indirizzi sono costituiti da 4 byte (32 bit) e vengono solitamente rappresentati con la notazione decimale puntata che prevede che il valore di ciascun byte sia rappresentato in decimale e separato dal numero successivo da un punto. 

Un esempio di indirizzo IP è 192.168.10.44.

Ciascun numero di questa quaterna è compreso tra 0 e 255 (i valori che possono essere contenuti in un byte) ed è detto ottetto.

Gli indirizzi cui si è fatto riferimento sono  quelli di IPv4 (versione 4 di IP) e sono gli indirizzi tipici utilizzati sulla rete Internet.

Tuttavia è facile osservare che con 32 bit è possibile comporre poco più di 4 miliardi di indirizzi (232  = 4.294.967.296) e che i dispositivi connessi ad Internet sono almeno un ordine di grandezza in più.

Nel tempo sono stati messi a punto una serie di meccanismi sofisticati per consentire di ovviare a questa palese anomalia ma la soluzione alla quale si punta è quella di sostituire IPv4 con una nuova versione detta IPv6 che prevede indirizzi a 128 bit. In questo caso il numero di indirizzi ammissibili si possono considerare virtualmente illimitati (circa 3,4 × 1038). 

La nuova versione IPv6 è disponibile dal 2008 ma il suo effettivo utilizzo su Internet ad oggi è ancora marginale.

Tornando alla versione IPv4, gli indirizzi sono assegnati ai dispositivi in modo tale che i dispositivi inclusi in una stessa LAN abbiano indirizzi "simili", in modo da poter stabilire in modo efficiente se l'indirizzo del destinatario di una comunicazione sia interno o esterno alla LAN.

Questa circostanza è di fondamentale importanza perché i dispositivi di una stessa LAN si possono ritenere contigui e quindi possono comunicare senza dover attraversare nodi intermedi.

Viceversa, se l'indirizzo del destinatario non appartiene alla stessa LAN del mittente, la comunicazione deve essere instradata attraverso uno o più nodi intermedi. In quest'ultimo caso, responsabilità del mittente è individuare il primo nodo cui indirizzare la comunicazione. Questo nodo è detto Gateway e, nelle reti domestiche, coincide con il router che dà accesso ad Internet.

L'individuazione del Gateway è possibile grazie alla tabella di Routing, presente su ciascun host ma anche sui nodi intermedi.

La tabella di Routing presente sugli host (ad esempio sul proprio PC) è molto semplice se raffrontata alla tabella di Routing presente sui Router degli Internet Service Provider che forniscono l'accesso ad Internet.

Uno dei meccanismi introdotti per mitigare il problema della penuria di indirizzi IPv4, prevede di utilizzare nelle LAN, sia domestiche che aziendali, indirizzi privati che si ripetono identici in moltissime altre LAN.

Questo meccanismo comporta un sovraccarico di lavoro sui router che devono adoperarsi per "mascherare" questi indirizzi non appena i datagram lasciano la LAN. Questo meccanismo è detto NAT (Network Address Translation) e consente la navigazione su Internet ai dispositivi che utilizzano indirizzi privati ma non dà la possibilità di raggiungere host interni ad altre LAN.

E' bene precisare che esistono altri meccanismi che consentono di aggirare quest'ultima limitazione.

Nelle reti domestiche gli indirizzi IP più usati sono del tipo 192.168.10.x, dove la x rappresenta la parte variabile dipendente dagli'host. In altri termini, tutti i dispositivi della LAN avranno indirizzi, univoci nell'ambito della LAN, che si differenziano esclusivamente per il quarto ottetto.

In termini più formali, l'indirizzo IP è suddiviso in due parti denominate NetId e HostId (o anche Network Id e Host Id). La NetId è la parte invariabile nell'ambito di una LAN (nell'esempio corrisponde a 192.168.10) mentre l'HostId è la parte che dipende dall'host (nell'esempio questa parte è stata indicata con x). 

Per specificare in maniera precisa qual è la parte dell'indirizzo corrispondente alla NetId e quale quella dell'HostId, si usa la Maschera, in inglese Mask o Subnet mask.

La maschera, per la rete indicata in precedenza, è 255.255.255.0. L'ottetto posto a 0  consente di identificare la parte dell'indirizzo corrispondente all'HostId.

L'indirizzo che si ottiene azzerando l'HostId è l'indirizzo della Network (o Network address).

La seguente figura mostra la finestra di configurazione dell'interfaccia di rete di un computer con Widnows 10.

Tra i parametri figura anche l'indirizzo del Gateway predefinito (o Gateway di default) che nelle reti domestiche coincide con il router che dà accesso ad Internet. Questa informazione è necessaria per la definizione della tabella di Routing, che i S.O. dei computer ad uso personale costruiscono in modo automatico. 

Tutti i datagram indirizzati ad un destinatario esterno alla LAN sono inoltrati a tale nodo.

Nella parte bassa della scheda di configurazione appare il riferimento al DNS che è un protocollo del livello Application che si preoccupa di convertire i nomi di dominio in indirizzi IP. Questa aspetto verrà affrontato in seguito.


Indirizzi IP pubblici e privati

In origine gli indirizzi IP erano assegnati in modo univoco a livello mondiale, solo successivamente si è fatta distinzione tra gli indirizzi pubblici, univoci a livello mondiale, e privati, utilizzati nelle LAN domestiche e aziendali.

Attualmente gli indirizzi pubblici sono gestiti dall'ente statunitense ICANN che si avvale di numerose emanazioni a livello continentale e nazionale. Queste ultime sono dette LIR (Local Internet Registry) e gestiscono la distribuzione degli indirizzi IP agli utenti assieme agli ISP (Internet Service Provider).

Gli indirizzi privati, utilizzabili liberamente nelle LAN che si avvalgono del meccanismo di NAT, sono elencati nella seguente tabella.

Per ogni riga, il primo indirizzo corrisponde all'indirizzo della Network e non è assegnabile a nessun host della LAN. Tramite esso, e con l'ausilio della Maschera, è possibile ricavare gli indirizzi effettivamente assegnabili. 

Per far ciò, basta osservare quali ottetti della maschera sono contrassegnati con il valore 0 per capire qual parte dell'indirizzo della Network corrisponde all'HostId e quindi è variabile nell'ambito della LAN.

Ciascun ottetto corrispondente all'HostId può contenere un valore compreso tra 0 e 255.

Fanno eccezione i valori estremi (corrispondenti a tutti gli ottetti dell'HostId posti contemporaneamente a 0 oppure posti contemporaneamente a 255), che sono riservati all'indirizzo della Network, come si è già detto, e all'indirizzo di Broadcast.

In base al numero di indirizzi assegnabili in una determinata Network, essa viene detta di classe A, B o C.

La classe A è molto estesa  e può contenere poco più di 16 milioni di host; la classe B può includere all'incirca 65 mila host e la classe C al più 254 host.

Indirizzi IP privati, riservati per le LAN domestiche e aziendali. 

Per consentire agli host interni l'accesso ad Internet, è necessario che nella LAN sia attivato il meccanismo di NAT.

Instradamento

Il datagram IP include nel proprio header gli indirizzi del mittente e del destinatario ma c'è da chiedersi come avvenga l'instradamento verso i nodi intermedi, a partire dal Gateway della LAN.

Il meccanismo di instradamento prevede che, in fase di imbustamento del datagram IP nel frame sia specificato l'indirizzo fisico (MAC address) del Gateway.

Quest'ultimo, ricevuto il frame, sarà in grado, a partire dall'IP del destinatario e dalle tabelle di Routing, di individuare il successivo nodo a cui inoltrare il datagram. Anche in questo caso un ruolo fondamentale è svolto dal frame che verrà instradato verso il successivo nodo.

Questa tecnica verrà applicata in cascata fino a raggiungere il Gateway della LAN del destinatario.

Quest'ultimo imbusterà il datagram in un frame indirizzato all'effettivo destinatario.

Indirizzi speciali

Alcuni indirizzi hanno un significato speciale e quindi anche il loro utilizzo è particolare.