next up previous contents
Next: Il routing Up: I concetti base. Previous: Introduzione.   Contents


Indirizzi IP

Per poter comunicare fra loro due computer in rete devono potersi in qualche modo riconoscere. L'analogia più immediata è quella con il telefono; per poter telefonare occorre avere un numero e conoscere il numero di chi si vuole chiamare. Uno dei concetti base del TCP/IP è appunto di indirizzo IP: questo è l'equivalente del numero di telefono, solo che invece che di un numero decimale composto di un numero variabile di cifre è un numero binario (quindi espresso con soli 0 e 1) ed ha una dimensione fissa (di quattro byte).

Di solito, visto che scrivere i numeri in formato binario è poco comprensibile, si è soliti esprimere il numero IP usando una apposita notazione che viene chiamata dotted decimal, usando i normali numeri decimali; un esempio potrebbe essere qualcosa del tipo di 192.168.111.11. È attraverso questo numero che il vostro computer viene identificato univocamente in Internet.

Come per il telefono di casa ogni computer connesso ad Internet viene sempre considerato come facente parte di una rete; la cosa è vera anche per le reti private non connesse direttamente ad Internet (come quelle che collegano i computer di un ufficio), per proseguire nell'analogia si pensi alle linee telefoniche interne di una ditta, usate per parlare dalla portineria agli uffici. Dato che Internet, come dice il nome, è un insieme di reti, anche queste devono venire identificate, questo è fatto attraverso altrettanti indirizzi IP, che corrispondono alla parte comune di tutti gli indirizzi delle macchine della stessa rete.

Per proseguire nell'analogia con il telefono si può pensare all'indirizzo di rete come al prefisso che serve per parlare con un altra città o un altro stato, e che è lo stesso per tutti i telefoni di quell'area. La differenza con i prefissi è che un indirizzo di rete IP, quando lo si scrive, deve essere completato da tanti zeri quanti sono necessari a raggiungere la dimensione di 32 bit degli indirizzi normali; per riprendere il precedente esempio di numero IP, un possibile indirizzo di rete ad esso relativo potrebbe essere 192.168.111.0.

Questo meccanismo significa in realtà che ogni indirizzo su Internet, pur essendo espresso sempre come un singolo numero, nei fatti è composto da due parti, l'indirizzo di rete, che prende la parte superiore dell'indirizzo e identifica la particolare sezione di internet su cui detto computer si trova e l'indirizzo della macchina finale (il cosiddetto host), che prende la parte inferiore del numero e che identifica, all'interno della rete, il vostro computer.

La situazione dunque è ancora analoga a quella di un numero di telefono che è diviso in prefisso e numero locale. La notazione degli indirizzi IP però è diversa da quella dei numeri telefonici e, dato che si ha a che fare con indirizzi binari a dimensione fissa, non esiste l'equivalente della / per dividere il prefisso dal resto del numero; pertanto non è automatico sapere come effettuare questa divisione.

Per questo motivo quando si configura una macchina ad ogni indirizzo IP si associa sempre anche quella che viene chiamata una netmask: una maschera che permette di separare la parte di rete da quella di host. Questa viene espressa con la solita notazione dotted decimal, mettendo un 1 ad ogni bit dell'indirizzo corrispondente alla rete e uno zero a quello corrispondente all'host: nel caso dell'indirizzo in esempio si avrebbe allora 255.255.255.0).

L'assegnazione degli indirizzi IP è gestita a livello internazionale dalla IANA2, che ha delegato la gestione di parte delle assegnazioni ad altre organizzazioni regionali (come INTERNIC, RIPE NCC e APNIC). Per venire incontro alle diverse esigenze gli indirizzi di rete sono stati originariamente organizzati in classi, (riportate tab. 1), per consentire dispiegamenti di reti di dimensioni diverse.


Table 1: Le classi di indirizzi IP.
Classe Intervallo
A 0.0.0.0 -- 127.255.255.255
B 128.0.0.0 -- 191.255.255.255
C 192.0.0.0 -- 223.255.255.255
D 224.0.0.0 -- 239.255.255.255
E 240.0.0.0 -- 247.255.255.255


Le classi usate per il dispiegamento delle reti di cui è attualmente composta Internet sono le prime tre; la classe D è destinata all'ancora non molto usato multicast3, mentre la classe E è riservata per usi sperimentali e non viene impiegata. Oggigiorno questa divisione in classi non è più molto usata (perché come vedremo fra poco è inefficiente), ma la si trova riportata spesso, ed alcuni programmi cercano di calcolare automaticamente la netmask a seconda dell'IP che gli date, seguendo queste tabelle.4

Nella tabella si è riportata in grassetto la parte di indirizzo assegnata alla rete per ciascuna delle tre classi; una rete di classe A è una rete che comprende 16777216 (cioè $ 2^{24}$) indirizzi di singoli computer ed ha una netmask pari a 255.0.0.0, una rete di classe B comprende 65536 (cioè $ 2^{16}$) indirizzi ed ha una netmask pari a 255.255.0.0 e una rete di classe C comprende 256 (cioè $ 2^8$) indirizzi ed ha una netmask pari a 255.255.255.0.


Table 2: Uno esempio di indirizzamento CIDR.
    $ n$ bit $ 32-n$ bit                                
                                                                   
CIDR                                    
                                                                   
                                                                 


La suddivisione riportata in tab. 1 è largamente inefficiente in quanto se un utente necessita di anche solo un indirizzo in più dei 2565 disponibili con una classe A occorre passare a una classe B, con un conseguente enorme spreco di numeri (si passerebbe da 256 a 65536).

Per questo nel 1992 è stato introdotto un indirizzamento senza classi (detto CIDR) in cui il limite fra i bit destinati a indicare il numero di rete e quello destinati a indicare l'host finale può essere piazzato in qualunque punto dei 32 bit totali (vedi tab. 2), permettendo così di accorpare più classi A su un'unica rete o suddividere una classe B. È stata così introdotta anche una nuova notazione, che permette di indicare la parte di rete appendendo all'indirizzo l'indicazione del numero di bit riservati alla rete; nel caso in esempio si avrebbe allora 192.168.111.11/24.

Per concludere questa panoramica sugli indirizzi occorre accennare all'indirizzo di broadcast mostrato nello specchietto in tab. 3 in cui si è riassunta la struttura di un indirizzo IP. In ogni rete Internet infatti esiste un indirizzo riservato, che per convenzione è sempre ottenuto mettendo ad 1 tutti i bit della porzione dell'indirizzo riservata all'host, che serve ad inviare messaggi a tutti i computer presenti sulla rete.


Table 3: Specchietto riassuntivo della struttura degli indirizzi IP.
Indirizzo Esempio
Indirizzo completo 192.168.111.11
Maschera di rete 255.255.255.0
Porzione di rete 192.168.111.
Porzione dell'host .11
Indirizzo di rete 192.168.111.0
Indirizzo broadcast 192.168.111.255


Questo permette il funzionamento di una serie di protocolli ausiliari del TCP/IP che devono poter scambiare e ricevere informazione con tutti i computer presenti (ad esempio quelli che permettono di scoprire quali sono gli indirizzi realmente attivi), senza doversi indirizzare a ciascuno di essi individualmente.



Footnotes

... IANA2
Internet Assigned Number Authority.
...multicast3
il multicast è progettato per la comunicazione simultanea verso più stazioni che si possono mettere in ascolto su uno di questi indirizzi.
... tabelle.4
e questo alle volte può creare problemi, dato che non è detto che la rete in questione sia ancora classificabile in questo modo.
... 2565
in realtà gli indirizzi disponibili con una classe A sono 254, questo perché l'indirizzo .0 è riservato per indicare la rete, mentre l'indirizzo .255, come vedremo fra poco, è quello di broadcast; questi indirizzi sono riservati per ogni rete e non possono essere usati per un singolo host.

next up previous contents
Next: Il routing Up: I concetti base. Previous: Introduzione.   Contents
Simone Piccardi 2002-08-08