PROTOCOLLO INTERNET IP

 


5.4 Protocollo Internet IP

5.4.1 Protocollo IPV6

5.5 Protocollo ICMP


5.4. Protocollo Internet IP

       Il Protocollo di rete IP (Internet Protocol), elaborato dal Dipartimento della Difesa degli Stati Uniti, abbastanza simile alla specifica ISO 8473 relativa al protocollo senza connessione CLNP, consente lo scambio di dati tra due computer host senza alcuna impostazione preliminare della chiamata. Poiché IP è un protocollo senza connessione è possibile che i datagrammi vadano persi prima di completare l’intero tragitto.

       IP non è dotato di meccanismi di sicurezza: non prevede la correzione degli errori né il controllo se i datagrammi sono persi, duplicati o giunti in ordine errato.

       Tutti questi inconvenienti vengono risolti dal protocollo TCP appartenente allo strato superiore, il livello di trasporto.

       Il protocollo IP supporta l’operazione di frammentazione che consiste nella suddivisione di una PDU in unità più piccole poiché non tutte le reti adottano la stessa dimensione per la PDU. La dimensione di una PDU va da 128byte (X.25) a 1500byte (Ethernet).

       Tutte le reti prevedono una dimensione massima per la PDU denominata Unità di Trasmissione Massima MTU.

       Si mostra, nella tabella 17, il datagramma IP. Fra parentesi è indicato il numero di bit impiegato dal relativo campo.

 

  

Tabella 17. – Datagramma IP

Versione (4)

Lunghezza intestazione (4)

Tipo di servizio (8)

Lunghezza totale (16)

Identificatore (16)

Flag (3)

Scostamento del frammento (13)

Tempo di durata (8)

Protocollo (8)

Checksum dell’intestazione (16)

Indirizzo di origine (32)

Indirizzo di destinazione (32)

Opzioni e riempimento (variabili)

Dati (variabili)

 

 

 

Si descrivono i campi del protocollo IP:

1.      La versione identifica il tipo di IP. Attualmente la versione è la 4 (IPV4). In futuro si avrà la IPV6.

2.      Occorre specificare la lunghezza dell’intestazione poiché i campi opzioni e riempimento sono di lunghezza variabile.

3.      Il tipo di servizio consente di impostare le funzioni di qualità del servizio; è composto da 4 sottocampi: precedenza (3bit) che indica l’importanza del datagramma, ritardo (1bit), efficienza (1bit), attendibilità (1bit). Normalmente questi ultimi 3 bit sono impostati a 0. Se sono impostati a 1 si richiede un basso ritardo ed una elevata efficienza ed attendibilità.

4.      La lunghezza totale si riferisce al datagramma comprensivo dell’intestazione.

5.      L’identificatore viene utilizzato con i campi degli indirizzi per identificare in modo univoco la PDU da frammentare.

6.      Il flag è utilizzato nelle operazioni di frammentazione. Il primo bit è inutilizzato. Il secondo bit è Don’t Fragment (DF) ed il terzo è More Fragment (MF). Se DF=1 il datagramma non può essere frammentato.

7.      Lo scostamento del frammento indica a quale frammento della PDU appartiene il datagramma.

8.      Il tempo di durata (TTL=Time To Live) indica quanto tempo un datagramma può vivere in Internet. Quando un datagramma attraversa un router il campo TTL viene decrementato di 1. Quando TTL=0 il router scarta il datagramma ed invia al mittente, tramite protocollo ICMP, un messaggio di invito a ritrasmettere il datagramma.

9.      Il campo protocollo individua il protocollo dello strato superiore del ricevitore che deve elaborare il datagramma. Ogni protocollo ha un suo codice ben definito, ad esempio: ICMP è il protocollo 1, TCP è il protocollo 6.

10.  Il checksum dell’intestazione serve ad effettuare il controllo degli errori nell’intestazione. Ogni router attraversato dal datagramma deve ricalcolare questo campo poiché decrementa di 1 il TTL.

11.  Indirizzo di origine e di destinazione identificano i relativi computer e le reti collegate direttamente ad essi. In pratica rappresentano gli indirizzi IP.

12.  Il campo opzioni viene utilizzato per richiedere servizi supplementari.

13.  Il campo riempimento viene utilizzato per dare al datagramma un allineamento a 32 bit.

14.  Il campo dati contiene i dati dell’utente.

 

IP è un protocollo di strato di rete che svolge le funzioni di:

·      indirizzamento;

·      instradamento;

·      frammentazione;

·      aggregazione.

      

Il principale servizio di IP è il trasferimento delle unità informative PDU.

       Esso è inaffidabile poiché la consegna della PDU non è garantita: il pacchetto può essere perso, non consegnato o fuori sequenza.

       Il datagramma, trasferendosi di rete in rete, può essere frammentato, cioè ulteriormente suddivido, per poi essere ricomposto quando giunge a destinazione. 

       Le procedure di frammentazione e di aggregazione da parte di IP  devono essere in grado di segmentare il pacchetto in un numero arbitrario di unità che, giunte a destinazione, devono poter essere ricomposte nella forma originaria.

       L’instradamento può essere diretto o indiretto. Nel primo caso il mittente e il destinatario del pacchetto appartengono alla stessa sottorete; non viene coinvolto alcun gateway, punto di accesso ad una sottorete. Nel secondo caso il mittente e il destinatario del pacchetto appartengono a sottoreti diverse.

       I gateway delle varie sottoreti fanno da ponte al pacchetto che si muove dal mittente al destinatario.

 

5.4.1. IPV6

       La quantità di indirizzi IP ancora disponibili nella rete internet va rapidamente diminuendo per cui si è pensato di elevare da 32 a 128 il numero di bit che individua un indirizzo IP. In tal modo si metterebbe a disposizione un numero sconfinato di possibili indirizzi IP (2128). Questo è il principale motivo per cui il gruppo di lavoro IETF (Internet Engineering Task Force) ha messo a punto la versione 6 del protocollo IP coniando il termine IPV6. Gli altri vantaggi rispetto all’attuale versione di IP (IPV4) sono: maggior efficienza nei router in quanto permette di minimizzare le tabelle di routing grazie ad un’organizzazione più flessibile degli indirizzi, miglior supporto del traffico dati “real time”, maggior sicurezza nei confronti dei dati riservati, 8 campi anziché 13 nelle intestazioni, funzioni di autentificazione e privacy basate su crittografia.        I pacchetti non possono più essere frammentati lungo il percorso ma solo da chi trasmette e riceve.

       L’utilizzo di IPV6 su sistemi Windows XP e 2003 è immediato: è sufficiente eseguire, dal prompt del DOS, il comando ipv6 – install. Su Windows 2000 SP1 è necessario applicare una opportuna patch scaricabile da internet.

       Nell’attuale periodo di transizione da IPV4 a IPV6, una volta installato IPV6, per poter comunicare con un PC che implementa il vecchio IPV4 è necessario collegarsi ad un “tunnel broker”. Microsoft consente il collegamento automatico ad un proprio server di tunnelling. Volendo scegliere un diverso “tunnel broker” si possono ottenere informazioni al sito http://ipv6.he.net/. Il datagramma di IPV6 è così costituito:

1)      Versione (4 bit): versione del protocollo usato;

2)      Priorità (4 bit);

3)      Flow label (24 bit): indicatore di flusso;

4)      Payload lenght (16 bit): lunghezza del pacchetto;

5)      Next Header (8 bit): indica l’extension header;

6)      Hop limit (8 bit): numero di nodi attraversati prima dell’abbattimento del pacchetto;

7)      Source Address (128 bit): indirizzo di origine;

8)      Destination Address (128 bit): indirizzo di destinazione.

       La vecchia notazione a 4 cifre decimali per l’individuazione dell’indirizzo IP è sostituita, nella versione IPV6, da 8 numeri esadecimali ciascuno a 4 cifre. Un esempio di indirizzo IPV6 è il seguente:

 

5B3E:00A0:0000:0000:A502:753B:0000:0007

 

       Si ritiene che ogni essere umano possa disporre di 256 indirizzi IPV6.

       È possibile semplificare la notazione IP omettendo gli zeri in testa ad ogni blocco di 4 cifre esadecimali ed omettendo i blocchi consecutivi costituiti da tutti 0, operazione che può essere svolta una sola volta. L’indirizzo IP precedente, pertanto, si può così semplificare:

 

5B3E:A0::A502:753B:0:7

 

       L’indirizzo di localhost 127.0.0.1 in IPV4, è costituito, in IPV6, da tutti i bit uguali a zero tranne l’ultimo che, ovviamente, vale 1. In esadecimale:

 

0000.0000.0000.0000.0000.0000.0000.0001

 

       In notazione esadecimale semplificata l’indirizzo di localhost vale ::1.

 

5.5. Protocollo ICMP

       Il protocollo IP non è in grado di individuare o correggere gli errori ma si affida al Protocollo dei Messaggi di Controllo di Internet avente sigla ICMP, residente nel computer host o nel gateway.

       Tale protocollo viene utilizzato per fornire messaggi di errore, di stato e amministrativi.

       ICMP, protocollo di rete, è impiegato  tra gli host o i gateway quando i datagrammi non possono essere consegnati, quando un gateway dirige il traffico su percorsi più brevi o quando un gateway non ha sufficiente memoria  per conservare ed inoltrare dati.

       ICMP comunica all’host se una destinazione è irraggiungibile, crea e gestisce messaggi per segnalare il superamento del tempo massimo TTL ed esegue delle funzioni di modifica per determinare se l’intestazione IP è errata.

 

Ping

       Una delle funzioni, denominata PING, consiste nella richiesta di eco inviata a un qualsiasi indirizzo IP; l’host o il gateway sollecitato risponde all’unità richiedente.   Questo servizio consente di verificare se ci sono problemi sulla rete, se la destinazione è attiva e disponibile senza effettuare alcun trasferimento dati.

       Per verificare, ad esempio, che la scheda di rete sul proprio computer è correttamente configurata e funzionante è sufficiente digitare dal prompt DOS il comando:

 

c:\>ping 127.0.0.1

Si ottiene come risposta:

Esecuzione di Ping 127.0.0.1 con 32 byte di dati:

Risposta da 127.0.0.1: byte=32 durata<1ms TTL=128

Risposta da 127.0.0.1: byte=32 durata<1ms TTL=128

Risposta da 127.0.0.1: byte=32 durata<1ms TTL=128

Risposta da 127.0.0.1: byte=32 durata<1ms TTL=128

 

Statistiche Ping per 127.0.0.1:

Pacchetti: Trasmessi=4, Ricevuti=4, Persi=0 (0% persi),

Tempo approssimativo percorsi andata/ritorno in millisecondi:

Minimo=0ms, Massimo=0ms, Medio=0ms

 

       Si ottiene lo stesso risultato digitando uno qualsiasi dei tre seguenti comandi ping ove 10.5.1.6 è l’indirizzo IP del computer di nome P4:

 

C:\>ping localhost   c:\>ping 10.5.1.6   c:\>ping P4

 

       Eseguendo, invece, un ping ad un indirizzo IP non raggiungibile (computer remoto spento, scheda di rete del computer remoto guasta, rete bloccata, IP inesistente, ecc.) si ottiene:

c:\>ping 10.5.1.7

Esecuzione di Ping 10.5.1.7 con 32 byte di dati:

Richiesta scaduta.

Richiesta scaduta.

Richiesta scaduta.

Richiesta scaduta.

 

Statistiche Ping per 10.5.1.7:

Pacchetti: Trasmessi=4, Ricevuti=0, Persi=4 (100% persi),

 

       Per avere la sintassi e lista delle opzioni possibili col comando ping è sufficiente digitare solamente ping al prompt dei comandi senza specificare alcun nome o indirizzo IP.  

       Se si esegue un ping ad un computer collegato ad internet non è certo che la funzione vada a buon fine poiché l’host che riceve il comando ping potrebbe essere protetto da un firewall che rifiuta il comando ping.

       Si esegua, a tale proposito il comando ping ai siti www.deltabeta.it e www.libero.it . Il comando ping, nei due casi, restituisce anche il numero di IP.

       Si mostra in fig.40 l’esito del comando ping nei due casi.

 

 

Fig.40. – Esecuzione del comando ping a due siti internet.

       Si noti che la risposta, nel secondo caso, fornisce una durata significativa della vita di un pacchetto compresa tra 66ms e 75ms e un TTL=118 ad indicare che il pacchetto, tra andata e ritorno, ha attraversato 10 nodi (128-10 =118).


5.4 Protocollo Internet IP

5.4.1 Protocollo IPV6

5.5 Protocollo ICMP


a cura del prof. Giuseppe Spalierno, docente di Elettronica - ultima versione febbraio 2005