Il protocollo IP

Il protocollo IP è il protocollo più importante del terzo livello della suite TCP/IP.
Il tipo di servizio offerto da questo protocollo è del tipo connectionless ovvero non orientato alla connessione, senza controllo del flusso, senza correzione dell’errore e senza la verifica della corretta sequenza.

Compito dell’IP è di recapitare i pacchetti ( pacchetti IP) dalla sorgente alla destinazione individuate tramite gli indirizzi IP contenuti nelle intestazioni dei pacchetti a livello Internet. Il datagramma IP proveniente dal livello superiore ( trasporto) appare cosi:
[img]http://imgur.com/S7YODxl[/img]
Le funzioni più importanti di questo protocollo sono:
•l’inoltro dei pacchetti
•la frammentazione dei datagrammi quando si devono attraversare reti a “piccoli pacchetti”
•riassemblaggio dei datagrammi
•rilevazione degli errori ( ma non la correzione!).

La dimensione massima, comprensiva di intestazione, ammessa per il pacchetto IP ( chiamato anche datagramma internet) è di 65.535 ottetti. Il pacchetto è formato da :

•un’intestazione di dimensioni variabili da 20 ( parte fissa non opzionale) a 60 ottetti al massimo ( 40 ottetti al massimo di parte opzionale);
•campo DATI che comprende le PDU del livello superiore ( nel disegno di prima TCP+APP+DATI).
[img]http://imgur.com/RDn9mv7[/img]
Analizziamo l’intestazione IP:
[img]http://imgur.com/0V73bPY[/img]
Ecco nel dettaglio il significato dei diversi campi:
Vers (4 bit): versione del protocollo IP usato (IPv4 o IPv6).
Il protocollo IPv6 prevede indirizzi IP a 128 bit invece che 32 dell’Pv4;
Lunghezza dell'intestazione (Internet Header Length) (4bit): dimensione dell'header espressa in multipli di una parola di 32 bit.

Tipo di servizio (Type of service)(8 bit): attualmente non usato;

Lunghezza totale (16 bit): dimensioni totali in byte dell’intero pacchetto (header+dati); valore massimo 65.535 byte.

Identificazione (16 bit): numero identificativo attribuito in fase di frammentazione a tutti i frammenti di un medesimo pacchetto (serve, in fase di deframmentazione, per evitare di mescolare fra loro frammenti appartenenti a pacchetti diversi);

Flag: è composto da tre bit, di cui solo 2 sono attualmente usati.
In particolare:
 il bit DF (Don't Fragment ) (1bit):indica se il pacchetto può essere frammentato. Se tale flag vale 1 non deve essere frammentato, se vale 0 può essere frammentato;
 il bit MF (More Fragments)(1 bit): indica se si tratta dell’ultimo frammento o seguono altri frammenti. Se vale 0, allora il pacchetto è l'ultimo in sequenza (quindi il router dovrebbe avere tutti i frammenti precedenti);

Fragment offset (13 bit): indica la posizione del frammento all'interno del pacchetto dati originale. Il primo frammento avrà offset 0, mentre il secondo offset sarà uguale alle dimensioni del primo frammento (espresse in byte);

Durata di vita (Time To Live) (8bit): questo campo indica il numero massimo di router attraverso i quali il pacchetto può passare. E’ un contatore.Al momento della trasmissione iniziale del pacchetto il campo, della dimensione di un byte, viene caricato con un valore compreso tra 1 e 255: solitamente viene utilizzato 255. Tale valore viene diminuito ad ogni passaggio in un router e, quando raggiunge lo zero, il router distrugge il pacchetto. Questo evita la saturazione della rete con pacchetti persi, i quali altrimenti continuerebbero a "girare in rete” all'infinito.

Protocollo (8 bit): indica il protocollo del livello superiore usato e di cui il pacchetto trasporta la relativa PDU nel campo DATI.

Checksum (16 bit): è il valore che permette di controllare l'integrità dell'header del pacchetto (si noti che il protocollo IP non verifica eventuali errori nella parte dati: questa verifica è demandata eventualmente ai livelli superiori della suite TCP/IP);

Indirizzi IP: indicano l'indirizzo IP del mittente e del destinatario del pacchetto. Gli indirizzi IP sono fondamentali poiché consentono ai router di sapere dove inviare il pacchetto e, a chi riceve, di sapere a chi deve inviare la risposta.

Opzioni IP ( dimensione variabile): è un campo che potrebbe anche non essere presente. Potrebbero definire livelli di segretezza, la registrazione del percorso ( ogni router attraversato potrebbe inserire il proprio indirizzo) etc etc.

Padding (dimensione variabile): è un campo di riempimento per assicurare che l’intestazione sia un multiplo di 32 bit. In genere sono bit posti a “0”.

PROTOCOLLI DI SERVIZIO DELLO STRATO INTERNET
Oltre al protocollo IP esistono altri protocolli utilizzati in questo livello:
ICMP ( Internet Control Message Protocol) : ha lo scopo di riscontrare anomalie durante la trasmissione o il routing dei pacchetti IP attraverso lo scambio di messaggi di diagnostica ed errore.
ARP ( Address Resolution Protocol) : utilizzato per convertire indirizzi IP in indirizzi MAC delle schede di rete.
ICMP
Il protocollo IP fornisce un meccanismo di trasferimento dei pacchetti dal mittente al destinatario secondo un approccio best-effort (letteralmente: sforzo migliore). Questo vuol dire che l'IP non è in grado di garantire la consegna dei pacchetti (chiamati “datagrammi" in analogia con i telegrammi) al destinatario, ma esegue dei tentativi di consegna, al meglio delle possibilità di cui dispone, e non si fa remore di ignorare i datagrammi che per qualche motivo non riesce a gestire. Si dice che quei datagrammi vengono "dropped on the floor", cioè "lasciati cadere in terra", persi per sempre. Per questo motivo è benvenuto un meccanismo che consenta un error-reporting, offerto appunto dall'ICMP, che sta per Internet Control Message Protocol (Protocollo per i Messaggi di Controllo in Internet). Il protocollo ICMP è descritto dall'RFC 792.

Questo meccanismo consente un error-reporting, offerto appunto dall'ICMP, ma non svolge azioni di correzione. Il protocollo ICMP viene ritenuto generalmente parte integrante del protocollo IP, viene incapsulato direttamente nel datagram IP e pertanto si colloca al terzo livello di ISO/OSI.

Nel campo ‘Protocol’ del pacchetto IP ( 8 bit) viene posto il valore 1 in modo tale che si capisce che nel campo (DATI) abbiamo un messaggio ICMP. La struttura è la seguente:
[img]http://imgur.com/v5Ehvuy[/img]
Il tipo definisce il tipo di messaggio:
- errore
- richiesta informazione

Il “codice” viene usato in alcuni messaggi ICMP per descrivere ulteriormente il tipo di errore
Il “checksum” fa un controllo sui bit del messaggio.
APPLICAZIONE
La più semplice applicazione del protocollo IP viene eseguita col comando PING DEST
Permette di controllare se l’host DEST è raggiungibile o meno da SORG
• SORG invia a DEST un pacchetto ICMP di tipo “echo”
• Se l'host DEST è raggiungibile da SORG, DEST risponde inviando indietro un pacchetto ICMP di tipo “echo reply”.
ARP
Questo protocollo gestisce la traduzione di indirizzi IP in indirizzi fisici (MAC) e nasconde questi indirizzi agli strati superiori. ARP funziona con tabelle di mappatura chiamate cache ARP che forniscono la corrispondenza tra un indirizzo IP e un indirizzo fisico, e viene usato ogni qual volta un host vuole inviare un pacchetto ad un altro host sulla sottorete , di cui conosce solo l’indirizzo IP. La cache ARP viene compilata dal software di rete man mano che viene a conoscenza degli indirizzi MAC degli host ai quali ha inviato un pacchetto mediante l’indirizzo IP.

Vediamo come funziona. All’atto della trasmissione la prima cosa che il mittente fa è quella di capire se il destinatario è sulla sua stessa LIS ( Logica IP Subnet- rete fisica in cui gli host ad esso connessi possono colloquiare senza passare attraverso i router ma usando sistemi posti a livelli inferiori della pila OSI come bridge e switch) e attiva il software ARP che esegue la seguente procedura:
1.viene controllata la cache ARP del mittente per verificare se contiene la corrispondenza tra indirizzo fisico e IP
2.se non esiste corrispondenza , cioè è la prima volta che si invia un pacchetto a quell’host, il mittente invia una ARP Request a tutte le macchine connesse mediante una trasmissione broadcast.
3.ogni host controlla se l’indirizzo IP richiesto corrisponde al proprio e risponde con un ARP Reply solo in caso affermativo

4.L’ARP Reply viene inviata direttamente al mittente ed è costituita da un coppia di valori ( indirizzo MAC espresso in 48 bit e indirizzo IP espresso in 32 bit)
5.a seguito di questo scambio di informazioni, mittente e destinatario aggiornano la propria cache ARP.
Subnetting a maschera variabile (Variable Leght Subnet-Mask)
Un grosso limite posto dal subnetting tradizionale è quello, una volta scelta la maschera, di avere sottorete di dimensione fissa. Ciò comporta uno spreco di indirizzi IP.
Se ad una rete viene assegnata più di una maschera, questa viene considerata una rete a maschera variabile.
ESEMPIO:
supponiamo di voler dividere una rete in due sottorete LAN A e LAN B con, rispettivamente, 50 host e 100 host, e indirizzo 192.168.1.0/24 di classe C.
Poiché la LAN A ha 50 indirizzi per gli host bastano 64 indirizzi host ( che diventeranno 61 levando gli indirizzi di rete, broadcast e gateway): quindi 6 bit. L’indirizzo sarà x/26
Poiché la LAN B ha 100 indirizzi , servono 7 bit. L’indirizzo sarà y/25
Se in una rete sono presenti sottorete di dimensione differenti, per comunicare necessitano di un router.

Forwarding diretto e indiretto
Un host si dice diretto se è una stazione collegata allo stesso segmento di rete dell’host d’origine.
Un host si dice indiretto se l’host di destinazione è situato su una rete diversa da quella dell’host di origine.
Quindi si parla di forwarding diretto quando la trasmissione dell’IP datagram avviene tra due host con lo stesso NET ID, quindi non sono coinvolti i router. Mentre nel forwarding indiretto i datagrammi passano da un router all’altro fino a quando non arriva al destinatario. In quest’ultimo caso host sorgente e destinatario sono su 2 sottorete diverse e quindi il mittente invia il pacchetto al router del quale conosce l’indirizzo in quanto è quello predefinito di gateway. Nel pacchetto dovrà essere presente non solo l’indirizzo IP del destinatario ma anche l’indirizzo del router ( indirizzo MAC) al quale deve essere consegnato il pacchetto per la ritrasmissione. Quando il router si accorgerà che l’host fa parte del suo segmento di rete, sostituirà al posto dell’indirizzo del router, l’indirizzo del destinatario. L’indirizzo IP serve per realizzare una connessione logica mentre quello MAC per risolvere la connessione fisica.

Una rete logica è l’insieme delle interfacce a cui è stato assegnato lo stesso indirizzo di subnet : due host possono comunicare senza passare attraverso i router.

Un rete fisica è l’insieme delle interfacce connesse su una sottorete nella quale una particolare tecnologia di trasporto assicura la connessione.

Alla nascita del protocollo ip c’era una corrispondenza biunivoca tra le due, mentre oggi è possibile avere diverse reti logiche nella stessa rete fissa. In questo caso il rounting tra le reti è necessario ed è affidato ai router.

NAT
Il principio del Network Address Translation
Il meccanismo del NAT è diventato fondamentale nel momento in cui gli indirizzi IP del protocollo IPv4 hanno cominciato a scarseggiare. L'aumento esponenziale dei dispositivi connessi alla Rete ha fatto sì che gli indirizzi disponibili in questo spazio di rete (4 miliardi e 300 milioni circa) si esaurissero in fretta. Il NAT è stato quindi utilizzato per poter nascondere dietro un unico indirizzo pubblico decine e decine di indirizzi privati (e quindi altrettanti device). Nonostante l'introduzione del protocollo IPv6, questa tattica di “mascheramento” degli indirizzi privati è molto utilizzata sia per semplice comodità sia perché capace di garantire un certo numero di vantaggi. Il NAT utilizza un gateway con almeno un'interfaccia connessa alla rete interna e almeno un'interfaccia di rete connessa al web (e quindi all’esterno della LAN). Grazie a questo “portale”, tutti i dispositivi connessi alla LAN potranno accedere a Internet utilizzando, e quindi “consumando”, un singolo indirizzo IP pubblico: quello del gateway stesso. In questo caso il gateway si occupa di fare una traslazione – o traduzione – degli indirizzi IP dei pacchetti in transito attraverso il router stesso: quando un terminale della rete interna effettua una richiesta verso Internet, l'indirizzo IP di partenza risultante sarà quello, pubblico, del gateway stesso e non quello privato del dispositivo che effettua la richiesta; nel caso di pacchetti in entrata, invece, il gateway si occupa di reindirizzare il traffico verso i dispositivi di destinazione appartenenti alla rete modificando l’IP di destinazione di conseguenza.

Il NAT in pratica
Nella pratica, il network address translation si riduce a due casi principali: un dispositivo della rete locale che si connette al web; due dispositivi della LAN che comunicano tra di loro.

Da LAN ad Internet. In questo caso il NAT si risolve nel “mascheramento” degli indirizzi dei pacchetti originati dalla LAN in modo che l'unico indirizzo ad apparire in Internet sia l'IP pubblico assegnato dall'ISP (acronimo di Internet service provider, fornitore dei servizi Internet) al router.

Da Internet alla LAN. Con le tecniche di port forwarding e port triggering si permette a dispositivi esterni alla LAN (siano essi dei server appartenenti alla Rete mondiale o dispositivi di altre LAN) di comunicare con alcuni nodi della rete locale.

Fonte: Mia (Esame di Stato 2017)

Hai bisogno di aiuto in Informatica?
Trova il tuo insegnante su Skuola.net | Ripetizioni
Registrati via email