Reading Time: 9 minutes

Protocollo a livello di rete: IP

Panoramica su IP

Se internet rappresenta oggi la soluzione più diffusa per interconnettere reti locali, geografiche e metropolitane di natura eterogenea, questo è dovuto principalmente alla versatilità del protocollo IP (Internet Protocol).

Il protocollo IP ha lo scopo di fornire le varie entità di un’interfaccia universale, in grado di mascherare le diversità nel servizio di comunicazione offerto dalle reti a cui queste sono direttamente connesse.

Per ottenere questo, il protocollo IP fornisce un sistema standard e universale per l’indirizzamento di tutte le stazioni che intendono operare fra loro.

Stazioni e gateway sono chiamati a condividere un comune sistema di indirizzamento che rende possibile riconoscere univocamente ciascuna entità.

L’adozione degli indirizzi IP è presupposto fondamentale anche per l’implementazione dell’instradamento dei pacchetti attraverso internet pubblica.

Il servizio offerto dal protocollo IP è un servizio di consegna dati non affidabile, svolto utilizzando tutte le risorse disponibili (approccio best-effort), che non prevede l’instaurazione di una connessione preliminare tra le stazioni coinvolte nello scambio dei dati.

La consegna è definita non affidabile in quanto, se un pacchetto non giunge a destinazione, o vi giunge affetto da errore, il protocollo IP non avvia alcuna operazione di recupero.

Il compito unico del protocollo IP è accorgersi della presenza di un errore nella trasmissione dei parametri relativi allo stesso protocollo IP e scartare i pacchetti che ne risultano affetti.

Rimane responsabilità dei livelli superiori attivare (se previste) le specifiche procedure per l’individuazione degli errori sui dati in transito e/o il recupero da situazioni di errore.

Struttura del protocollo IP

I dati scambiati all’interno di una connessione di rete vengono comunemente chiamati pacchetti.

Questi pacchetti all’interno del livello collegamento del modello TCP/IP, vengono chiamati datagrammi.

L’indirizzamento e l’inoltro di questi datagrammi in internet, avviene attraverso l’utilizzo di Internet Protocol (IP). Attualmente sono in uso due versioni di IP: IPv4 ed IPv6.

Per il momento ci soffermiamo sui dettagli che costituiscono il più utilizzato dei due: IPv4.

I principali campi dei datagrammi IPv4 sono i seguenti:

  • Numero di versione: 4 bit che specificano la versione del protocollo IP nel datagramma e che consentono al router la corretta interpretazione del datagramma.
  • Lunghezza dell’intestazione: Questi 4 bit indicano dove iniziano effettivamente i dati del datagramma, la maggior parte dei datagrammi IP non contiene opzioni, per cui un tipico datagramma IP ha un’intestazione di 20 byte.
  • Tipo di servizio: I bit relativi al tipo di servizio sono stati inclusi nell’intestazione IP per distinguere i diversi tipi di datagramma (ad esempio, quelli che richiedono basso ritardo, alto throughtput o affidabilità).
  • Lunghezza del datagramma: rappresenta la lunghezza totale del datagramma IP, intestazione più dati, misurata in byte.
    Considerando che questo campo è di 16 bit, si deduce che la massima dimensione di un datagramma è di 65535 byte, anche se quasi sempre non si va oltre i 1500 byte.
  • Identificatore, flag, spostamento laterale di frammentazione: questi tre campi hanno a che fare con la cosiddetta frammentazione.
  • 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 un’unità ogni volta che il datagramma viene elaborato da un router, e quando raggiunge 0 il datagramma deve essere eliminato.
  • Protocollo: questo campo viene utilizzato 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. Il valore 6 indica che i dati sono destinati a TCP, mentre il valore 17 a UDP.
    Tale valore del datagramma IP ha un ruolo analogo a quello del campo numero di porta, del 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 lega i livelli di trasporto e applicazione.
  • Checksum dell’intestazione: questo campo consente ai routers di rilevare gli errori sui bit nei datagrammi ricevuti.
    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 quella calcolata. I routers normalmente scartano i datagrammi in cui si verifica un errore.
  • Indirizzi IP d’origine e destinazione: quando un host crea un datagramma, inserisce il proprio indirizzo IP nel campo indirizzo IP d’origine e quello della destinazione nel campo indirizzo IP di destinazione.
  • Opzioni: questo campo consente di estendere l’intestazione IP. Le opzioni dell’intestazione sono state concepite per essere utilizzate raramente.
    Le opzioni costituiscono un problema: dal momento che possono avere lunghezza variabile, non è possibile determinare a priori dove comincerà il campo dati.
    Inoltre, dato che i datagrammi possono richiedere o meno l’elaborazione delle opzioni, il tempo necessario per questa operazione presso un router può variare in modo significativo.
    Per questi motivi IPv6 non implementa il campo opzioni.
  • Dati (carico utile): il campo dati contiene il segmento a livello trasporto (TCP o UDP)da consegnare alla destinazione.

Indirizzi IP

Il protocollo IP garantisce interoperabilità tra le varie entità che appartengono alla rete internet.

Per ottenere questo risultato si è dovuto creare un sistema di indirizzamento universale, basato su identificativi di lunghezza prefissata, denominati indirizzi IP.

Un indirizzo IP contrassegna ogni singola interfaccia connessa al web, sia che essa appartenga a una stazione finale sia a un gateway di interconnessione.

I nodi intermedi della rete Internet, altro non sono che dispositivi di interconnessione in grado di instradare i datagrammi IP.

Questi dispositivi sono generalmente chiamati router o gateway IP e la loro funzione è quella di regolare il transito dei datagrammi IP tra le reti direttamente connesse.

Per questo motivo un router deve possedere più interfacce e ad ogni interfaccia deve essere associato uno o più indirizzi IP.

La regola fondamentale, per quanto riguarda le interfacce, è che non è possibile assegnare a due stazioni distinte, o più precisamente a due interfacce distinte (indipendentemente da dove si trovino in Internet), lo stesso indirizzo IP.

Se due stazioni possiedono lo stesso indirizzo IP non sarà possibile distinguerle l’una dall’altra. La conseguenza immediata è l’impossibilità di riconoscere quale delle due stazioni rappresenti la destinazione (o la sorgente) corretta dei datagrammi IP.

Ciascun indirizzo IP è costituito da 32 bit. Fare riferimento agli indirizzi IP nella loro forma binaria però, potrebbe risultare difficile e non risulta funzionale, in quanto si potrebbero commettere degli errori scrivendo una lunga sequenza di 0 e 1.

Notazione decimale per indirizzi IP

Un metodo più semplice e veloce è quello di rappresentare gli indirizzi IP tramite una notazione a 4 cifre decimali separati da punti.

Secondo questa notazione, ogni cifra compresa tra 0 e 255 rappresenta un byte dell’indirizzo IP.

Una volta compreso il problema di associare un indirizzo IP a ogni nodo, il principio generale di indirizzamento IP stabilisce di assegnare, a stazioni appartenenti alla stessa rete locale, indirizzi IP appartenenti a uno stesso gruppo.

Ciascun indirizzo IP deve dunque essere pensato come se fosse composto da due parti distinte:

  • i bit più significativi identificano il gruppo di appartenenza (rappresentano l’indirizzo di rete o network address)
  • i bit meno significativi stabiliscono l’identità della stazione all’interno del gruppo (host address).

Gli indirizzi delle stazioni appartenenti all’internet pubblica vengono assegnati da un’autorità ufficiale, sulla base delle necessità di ciascuna organizzazione che ne fa richiesta (azienda, università).

Per ottenere un pool di indirizzi IP pubblico è necessario sottoporre all’attenzione dell’autorità competente la topologia della propria rete indicando tra l’altro:

  • il numero delle stazioni client attive;
  • il numero di server e servizi Internet attivi;
  • un dettagliato piano di sviluppo dell’infrastruttura di rete per il prossimo futuro.

Tutte le stazioni appartenenti alla stessa rete locale sono generalmente gestite da un unico amministratore di rete.

Una volta ricevuto dall’autorità competente il network address che contraddistingue il pool di indirizzi pubblici assegnati, è compito dell’amministratore locale assegnare a tutte le stazioni, un host address univoco, giocando sui bit meno significativi dell’indirizzo IP.

L’insieme di network address e di host address compone l’indirizzo IP completo dell’interfaccia della stazione e/o del gateway IP.

Negli ultimi anni, un grande dibattito si sviluppa intorno ad Internet e alla sua crescita prodigiosa. Questo dibattito è legato alla dimensione e alla struttura degli indirizzi IP.

Internet infatti, prevede un indirizzamento globale a 32 bit, pensato per interconnettere un numero ristretto di reti eterogenee.

All’inizio dello sviluppo, si è ritenuto che 32 bit di intestazione avessero permesso un numero di combinazioni tali da poter soddisfare tutte le esigenze di un’infrastruttura estesa basata su IPv4.

Ecco perchè al momento si sta anche lavorando molto sulla già citata tecnologia IPv6, che negli anni andrà a sostituire gradualmente IPv4.

Il principale vantaggio di IPv6, infatti, è proprio quello di avere un campo di intestazione più ampio (128 bit a fronte dei 32 bit di IPv4), e quindi meno soggetto a problemi di esaurimento delle combinazioni di indirizzi.

Avendo a disposizione 128 bit, si possono avere fino a 2128 indirizzi, mentre con 32 bit se ne hanno “solo” 232.

Il problema legato all’esaurimento degli indirizzi IP è complicato dalla difficoltà di utilizzare in maniera esaustiva tutti gli indirizzi IP assegnati alle diverse organizzazioni.

Il numero di stazioni ospitate in una rete locale varia considerevolmente da organizzazione a organizzazione, rendendo necessario stabilire pool di indirizzi di dimensione diversa per accomodare, senza sprecare indirizzi, le diverse necessità.

Per questo motivo sono state definite classi di indirizzi IP in grado di accomodare un diverso numero di stazioni.

Le classi definite originalmente sono tre: classe A, classe B, classe C.

Le diverse classi si differenziano fondamentalmente per la diversa lunghezza in bit del network address e dell’host address.

Il numero di stazioni che possono essere ospitate da una rete locale è stabilito dal numero di bit riservati come host address.

Una rete si definisce di classe A se al network address sono riservati 8 bit. La classe B prevede un network address di 16 bit e una classe C un network address di 24 bit.

Classi IP e riconoscimento

Indipendentemente dalla classe di appartenenza, due particolari host address non possono essere assegnati a nessuna stazione.

L’host address con tutti i bit a 0 e quello con tutti i bit a 1. Il primo rappresenta la rete nel suo complesso e non una specifica interfaccia, mentre il secondo rapppresenta l’indirizzo di broadcast locale.

Un significato speciale hanno anche gli indirizzi IP 0.0.0.0 e 255.255.255.255. al primo è assegnato il significato di “questa stazione”, al secondo è associato il significato di “tutte le stazioni”.

Per riconoscere la classe di appartenenza di una rete IP è sufficiente osservare i primi tre bit di un indirizzo.

Classi di indirizzamento IP

Le reti di classe A sono contraddistinte da indirizzi con il bit più significativo a 0. Questa proprietà, tradotta nella rappresentazione decimale, significa che ogni rete in classe A ha il primo byte compreso tra 1 e 126.

Le reti di classe B presentano il bit più significativo a 1 e il successivo a 0. La precedente proprietà significa che, ogni rete in classe B ha il primo byte compreso tra 128 e 191.

Le reti in classe C sono molto più numerose delle precedent, e rappresentano la soluzione ideale per molte organizzazioni di dimensioni contenute.

Ogni rete di classe C ha il primo byte compreso tra 192 e 223.

Esistono infine altre due classi speciali, rispettivamente classe D e classe E, con funzioni particolari. La classe D (valore del primo byte compreso tra 224 e 239) è riservata alla trasmissione di datagrammi IP in modalità multicast. La classe E (valore del primo byte compreso fra 240 e 254) è utilizzata a scopo sperimentale.

error: Content is protected !!

La maggior parte dei contenuti del blog ComputerSec vengono pubblicati a beneficio di tutti e in modo completamente gratuito.
Tuttavia per supportare il blog, e per avere ulteriori vantaggi, puoi decidere di abbonarti e sfruttare al 100% tutti i contenuti!
Abbonati Ora!

Complimenti! Ti sei iscritto alla nostra Newsletter

C'è stato un errore durante l'invio della richiesta. Per favore riprova.

Computer Security will use the information you provide on this form to be in touch with you and to provide updates and marketing.