E' evidente che la possibilità di raggiungere in pochissimo tempo un computer qualsiasi fra decine di milioni deve avere un ottimo sistema di indirizzamento. In Internet si hanno due tipi di indirizzi:
- gli indirizzi IP
- gli indirizzi simbolici.
Indirizzi IP
Dei due tipi di indirizzi gli indirizzi IP sono i piu' importanti. Infatti le comunicazioni tra computer basate sul protocollo TCP/IP avvengono grazie al fatto che ogni computer connesso alla rete Internet viene identificato in modo univoco da un indirizzo, detto appunto indirizzo IP.
Il termine "indirizzo IP" dipende dal fatto che la loro struttura dipende dal sistema IP (livello di rete dell'architettura ISO/OSI) di gestione degli indirizzi.
Un indirizzo IP e' un numero a 32 bit che viene scritto come quattro segmenti di un byte ciascuno. Anche se, come sappiamo i computer utilizzano esclusivamente rappresentazioni binarie di qualsiasi tipo di numero o codice, al fine di facilitarne la lettura è invalso l'uso di rappresentare gli indirizzi mediante 4 numeri interi decimali separati da 3 punti. Un indirizzo valido è per esempio 150.217.103.44 dove ciasun numero corrisponde al contenuto di uno dei quattro byte che compone l'indirizzo. Quindi per esempio 150 sarà l'espressione in decimale del contenuto del primo byte.
Poichè noi sappiamo che in un byte possiamo rappresentare al massimo il numero 28-1 = 255, ciascun numero di un indirizzo IP potrà assumere valori compresi fra 0 e 255.
E' utile pensare l'indirizzo suddiviso in due campi, chiamati campo rete e campo host. Il campo rete identifica, all'interno di Internet, la rete a cui l'host e`connesso (così che tutti gli host di una stessa rete hanno lo stesso campo rete), mentre il campo host identifica un particolare computer connesso ad una data rete. La rete può essere una rete locale o un insieme di reti locali gestite comunque nell'ambito di una singola organizzazione.
Per esempio
Il campo rete dell'indirizzo IP è assegnato da un'autorità centrale, il NIC, mentre l'assegnazione dei singoli indirizzi di host è controllata dall'amministratore di sistema dell'organizzazione che la ospita.
In origine gli indirizzi IP venivano distinti in cinque classi (A, B, C, D, E). Le prime tre di queste classi (A, B, C) erano quelle usate comunemente e servivano a fornire tre possibili suddivisioni fra il campo rete ed il campo host. A partire circa dalla metà degli anni 90 questa rigida suddivisione ha iniziato a mostrare dei limiti. Per esempio verso il 1995 stavano esaurendosi i possibili indirizzi di classe B. Allora fu introdotta una suddivisione più flessibile basata sostanzialmente su di una libera determinazione delle dimensioni dei campi rete ed host secondo la tecnica che si chiama subnet masking. Comunque, in assenza di una particolare specifica di masking valgono ancora le suddivisioni in classi tradizionali che riassumiamo nella tabella seguente.
Classe |
Primo byte |
Campo rete |
Campo host |
Numero computer |
Descrizione |
A |
1-126 |
XXX |
YYY.ZZZ.TTT |
224=16,777,216 |
Era usata agli esordi per grandissime reti |
B |
128-191 |
XXX.YYY |
ZZZ.TTT |
216=65536 |
Grandi organizzazioni |
C |
192-223 |
XXX. YYY.ZZZ |
TTT |
28=255 |
Medie e piccole organizzazioni |
D |
224-239 |
|
|
|
Usati per multicasting |
E |
240-254 |
|
|
|
Usati per fini di ricerca |
Il valore del primo byte, riportato nella seconda colonna della tabella, consente di riconoscere la classe. Se per esempio sappiamo che un indirizzo IP inzia con 150 allora possiamo dire che l'indirizzo è di classe B.
Gli indirizzi nelle tre classi (A, B, C) si differenziano in funzione di quanti dei quattro bytes sono utilizzati per identificare la rete e quanti per identificare gli host. Più precisamente gli indirizzi IP di classe A sono caratterizzati dal fatto che hanno un byte per il campo rete e tre byte per il campo host, disposizione opposta per quelli di classe C, mentre gli indirizzi IP di classe B hanno due byte per il campo rete e due byte per il campo host.
La quarta colonna, etichettata Numero computer, indica quanti computer possono essere indirizzati dal campo host nelle tre classi. Le due classi più comunemente usate sono la B e la C. Le grosse organizzazioni preferiscono avere una rete di classe A o B che poi suddividono in sottoreti.
Gli indirizzi di classe D non sono assegnati in modo permanente come gli altri e sono utilizzati per applicazioni di tipo multicast nelle quali i pacchetti trasmessi devono essere inviati ad un insieme di computer anzichè ad uno solo. Per esempio le video conferenze richiedono una tecnica del genere perchè le stesse informazioni devono essere diffuse a diversi computer contemporaneamente. Gli indirizzi di classe E sono riservati per fini di ricerca.
A titolo di esempio la rete dell'Università di Firenze è di classe B, infatti il suo campo rete è 150.217; quindi, nello spazio di indirizzamento della sottorete dell'Università si possono assegnare 65536 macchine. In realtà l'Università, come sempre succede nelle grandi organizzazioni, è composta di numerose entità ben distinte, Istituti, Dipartimenti, Centri e via dicendo. E' quindi utile partizionare il campo host in funzione della struttura dell'organizzazione. Questo viene realizzato mediante un'accorgimento che si chiama subnet masking: il terzo byte è usato come maschera per indicare le sottoreti dei vari istituti universitari, ecco due esempi relativi a due dipartimenti di medicina:
Nel primo esempio, del Dip. di Medicina Interna, abbiamo una subnet mask uguale a 255.255.255.0. Questo significa che i suoi bits sono
1111111 1111111 1111111 0000000
Funziona così: solo i bit che nella subnet mask della sottorete sono uguali 0 possono essere utilizzati per indirizzare dei computer. quindi in questo caso si possono utilizzare gli 8 bits dell'ultimo byte, che significa 256 macchine.
Quindi nel Dip. di Medicina Interna i computer sono indirizzati con indirizzi IP che hanno i primi tre byte uguali a
150.217.104.
Nel secondo esempio, relativo al Dip. di Fisiopatologi Clinica, la situazione è più articolata. Abbiamo infatti una subnet mask diversa dal caso precedente: 255.255.254.0 che scritta per disteso risulta:
1111111 1111111 1111110 0000000
In questo caso i bit utilizzabili sono gli ultimi 9 anzichè gli ultimi 8. Il bit in più appartiene al terzo byte. Questo si traduce nel fatto che nella stessa sottorete possiamo avere valori diversi per il terzo byte. Infatti i computer del Dip. Fisiopatologia Clinica possono avere una delle due seguenti combinazioni: 150.217.102.0 e 150.217.103.0. Come si vede il terzo byte può avere valore 102 o 103.
Indirizzi IP speciali e privati
In realtà non tutti gli indirizzi IP disponibili possono essere utilizzati. Intanto ve ne sono due speciali che sono riservati:
- gli indirizzi che iniziano con 127 denotano una speciale rete fittizia che si chiama loopbak network che contiene un solo computer. Su ogni computer, l'indirizzo 127.0.0.1 rappresenta sempre se stesso ed ha associato l'indirizzo simbolico localhost.
- I numeri 000 e 255, cioè il minimo ed il massimo che si può rappresentare in ognuno dei quattro byte che compongono l'indirizzo IP, non vengono utilizzati per rappresentare indirizzi normali. Per esempio se il quarto byte vale 255 allora l'indirizzo è un indirizzo di broadcast che causa l'invio dei messaggi a tutti i comuputer connessi alla rete locale. Quindi i computer che si possono indirizzare, per esempio in una rete di classe C, non sono 256 (da 0 a 255) bensì 254.
- Vi sono sono degli insiemi di indirizzi privati che sintetizziamo in questa tabella
Classe |
Da |
A |
A |
10.0.0.0 |
10.255.255.255 |
B |
172.16.0.0 |
172.31.255.255 |
C |
192.168.0. |
192.168.255.255 |
Questi indirizzi sono utilizzati in quelle che si chiamano reti private e non possono essere raggiunti direttamente da un router. Questo significa che possono esistere gli stessi indirizzi privati in reti diverse. Ci pensa il router che collega la rete privata con Internet a tradurre gli indirizzi privati in indirizzi possibili mediante un servizio che si chiama NAT: Network Address Translation.
Importante: Il precedente concetto di rete privata è importante. vi sono organizzazioni che devono mantenere un elevato grado di protezione dei dati che vengono processati al loro interno. Due esempi rilevanti sono gli sitituti bancari e le aziende ospedaliere. Chiaramente è questo secondo esempio che ci interessa qui. Tutti i dati relativi ad un paziente, a partire dai suoi dati anagrafici fino ai dati numerici delle sue analisi ed ai contenuti delle immagini radiografiche, sono proprietà privata del paziente medesimo. Egli ha diritto a pretendere che i dati che lo concernono non vengano diffusi pubblicamente e che vengano utilizzati solamente da personale sanitario autorizzato e competente a manipolarli nel suo interesse. Ebbene gli ospedali hanno tipicamente reti private. Per esempio la rete dell'Azienda Ospedale Careggi inzia con 10.10 .
Lo schema di indirizzamento fisico che abbiamo descritto è quello che viene utilizzato da quando Internet ha preso le mosse. Non vi è dubbio che abbia funzionato bene tuttavia, visto lo sviluppo esponenziale cui abbiamo assistito, rischia di mostrare presto un limite fondamentale: il numero di computer collegati ad Internet rischia di superare il limite massimo imposto dall'attuale schema di indirizzamento che in teoria vale poco più di 4 miliardi (per la precisione 232 = 4,294,967,296). In realtà, per vari motivi, gli indirizzi utilizzabili sono un po' meno ma la sostanza del discorso non cambia.
Questo versione del sistema di indirizzamento fisico è designato con la sigla IPv4. Già da tempo è stata approntata una versione ampliata dello stesso sistema nel quale si utilizzano 128 bit anzichè gli attuali 32 bit. Questo nuovo sistema si chiama IPv6 e sostituirà l'attuale progressivamente.
Indirizzi simbolici
Il metodo di reperimento dei computer in Internet si basa sugli indirizzi IP ed in effetti noi possiamo usare direttamente tali indirizzi. Potete provare da voi scegliendo un qualsiasi indirizzo simbolico, per esempio il sito http://lai.dfc.unifi.it/ATutor lo potete contattare anche con http://150.217.102.172/ATutor perchè 150.217.102.172 è l'indirizzo IP del server che ospita quel sito.
Tuttavia non è molto comodo per noi ricordare e gestire gli indirizzi IP. Per questo motivo esistono anche gli indirizzi simbolici che sono composti da stringhe di caratteri alfanumerici separate da punti. Per facilitare la comunicazione ad ogni computer collegato ad Internet viene assegnato, oltre ad un indirizzo IP, anche un indirizzo simbolico univoco (domain name) formato da stringhe di caratteri separate da un punto.
Vediamo l'esempio del computer di nome med1nuc2 che si trova nei locali della Medicina Nucleare nel Dip. di Fisiptaologia Clinica:
med1nuc2.dfc.unifi.it
Vediamo che il nome è suddiviso in campi nel modo seguente:
- it (Italia) indica il dominio principale; altri esempi sono fr (Francia), uk (United Kingdom) e via dicendo;
- unifi indica il sottodominio dell'Università di Firenze;
- dfc indica il Dipartimento di Fisiopatologia Clinica dell'Università di Firenze;
- med1nuc2 è il nome del computer.
E' evidente la struttura gerarchica dell'indirizzo, ove il campo più a destra rappresenta l'insieme più ampio per diminuire andando verso sinistra: Italia (it), Università di Firenze (unifi), Dipartimento di Fisiopatologia Clinica (dfc) ed infine il nome del computer (med1nuc2).
Si noti che anche gli indirizzi IP sono caratterizzati da una struttura gerarchica ma come quest'ultima sia ordinata in senso inverso: infatti a sinistra troviamo il campo rete ed a destra il campo host.
Tutti gli indirizzi simbolici hanno la seguente struttura
nomecomputer.dominio
dove nomecomputer rappresenta il singolo computer e dominio l'ambito di rete di una certa struttura. Nel nostro esempio med1nuc2 è un certo computer all'interno del dominio dfc.unifi.it.
I nomi per i domini a gerarchia più elevata (Top-Level Domains) non possono essere arbitrari ma sono stati fissati dallo IANA e sono gestiti in collaborazione con un'altra organizzazione, l'Internet Corporation for Assigned Names and Numbers, ICANN.
Vi sono dei domini storici quali:
- edu riservato ad Università degli U.S.A.
- gov riservato ad enti governativi U.S.A.
- com solitamente per organizzazioni commerciali
- net preferibilmente a chi fornisce servizi per Internet
Esistono poi i domini nazionali rappresentati da sigle con due caratteri, esempio
- uk Regno Unito
- de Germania
- it Italia
- au Australia
- ch Svizzera
- fr Francia
Infine esistono altri domini con caratteristiche e utilizzi particolari, come:
- biz (che "dovrebbe" essere per il Business...)
- eu Unione Europea
-
L'ICANN, in ciascuna nazione, delega un'organizzazione a svolgere le funzioni di registro ufficiale per il dominio nazionale, sotto il quale si possono creare i vari sottodomini. In Italia tale mansione viene svolta dal NIC.
Relazione tra indirizzi IP e indirizzi simbolici: il Domain Name System
Arrivati a questo punto sappiamo che
- in Internet ogni computer viene individuato solamente attraverso il suo indirizzo IP,
- noi utilizziamo indirizzi simbolici.
Come si armonizzano queste due cose?
La risposta è data da un ingegnoso meccanismo che si chiama DNS. Questo sfrutta la struttura gerarchica dei nomi degli indirizzi simbolici che evidenziamo con il seguente esempio.
I nodi del grafico rappresentano i DNS. Il nodo più in alto si chiama Root DNS. Nella realtà ogni singolo nodo è costituito da due o più computer localizzati in strutture diverse e in grado di sostituirsi vicendevolmente. Questa ridondanza serve a sopperire ad eventuali guasti di un DNS. Concettualmente possiamo pensare ad ogni nodo come se fosse costituito da un solo computer.
Sotto al nodo root troviamo i DNS dei domini primari dei vari paesi o di grandi organizzazioni: fr, uk, it e potremmo aggiungere com, edu, gov, org, net e via dicendo.
Sotto al nodo it troviamo alcuni esempi di domini di organizzazioni italiane: cnr è il Consiglio Nazionale delle Ricerche, unifi è l'Università di Firenze, infn è l'Istituto Nazionale di Fisica Nucleare e via dicendo.
All'interno dell'Uiniversità di Firenze abbiamo per esempio i domini ing di Ingegneria, dfc del Dipartimento di Fisiopatologia Clinica, iroe dell'Istituto di Ricerca sulle Onde Elettromagnetiche.
All'interno del Dipartimento di Fisiopatologia Clinica abbiamo i vari singoli computer.
Ogni DNS in sostanza gestisce un database che contiene un elenco di corrispondenze
domain name <-> indirizzo IP
per un sottoinsieme dei computer connessi ad Internet.
Cerchiamo di capire ora cosa succede quando, per esempio, si digita un indirizzo web in un browser di Internet. Supponiamo che da un computer localizzato presso l'università di Stanford uno studente, navigando con il suo browser, digiti l'indirizzo www.unifi.it.
La figura mostra la sequenza degli eventi a partire dalla richiesta del browser nel computer di Stanford. I vari messaggi da un computer all'altro sono numerati per riflettere la sequenza temporale con cui essi vengono inviati. Commentiamoli tenendo presente che per DNS intendiamo qui il Domain Name Server.
- Il browser che si trova nel computer in una rete locale dell'Università di Stanford chiede al DNS della rete di Stanford se sa qual'è l'IP che corrisponde al nome: www.unifi.it. Il DNS nel suo data base ha certamente le corrispondenze per tutti i computer della rete di Stanford ma quasi certamente (dopo vediamo perchè dico "quasi") non questa.
- Il DNS di Stanford quindi passa il nome www.unifi.it al DNS root.
- Il DNS root non potrà sapere l'IP di tutti i computer del mondo e quindi non saprà nemmeno quello che ci interessa ma è in grado di rendere al DNS di Stanford l'indirizzo IP del DNS che concerne il dominio it.
- Forte di questa informazione, il DNS di Stanford propone lo stesso quesito al DNS it.
- Il DNS it si comporta nello stesso modo del precedente: rende l'indirizzo IP del DNS del dominio unifi.it.
- Il DNS di Stanford rinvia il nome www.unifi.it al DNS di unifi.it che troverà nel proprio database la corrispoondenza con l'indirizzo 150.217.1.40 e potrà quindi ...
- inviare indietro l'indirizzo IP desiderato.
- Solo a questo punto il DNS di Stanford può concludere il suo compito inviando l'indirizzo 150.217.1.40 al browser.
Solo dopo che ha avuto luogo questa serie di passaggi, il browser può effettivamente contattare il computer desiderato mediante il suo l'indirizzo IP.
Il DNS di Stanford tuttavia non si sbarazza immediatamente del dell'indirizzo trovato bensì lo mantiente per un certo tempo nell'eventualità che lo stesso indirizzo venga richiesto un'altra volta. Questo serve ad ottimizzare il tempo perchè per veloci che siano i collegamenti il lavoro di ricerca mediante DNS una certa latenza temporale la comporta e poi è abbastanza probabile che se un indirizzo è stato cercato una volta venga ricercato un certo numero di volte successive: del resto, se avete chiamato un sito, a meno che non abbiate trovato un link sbagliato, è facile che in quel sito ci stiate un certo tempo interrogando quindi ulterormente il computer che lo ospita. Quindi, come abbiamo accennato al punto 1 precedente, può anche succedere cha il DNS di Stanford sia in grado di rendere subito l'indirizzo IP di www.unifi.it. Questo accade se si tratta di richieste abbastanza vicine ad una prima richiesta.
E' abbastanza sorprendente che questo complesso meccanismo che coinvolge macchine che possono distare varie migliaia di chilometri, abbia luogo in frazioni di secondo.
Comments (0)
You don't have permission to comment on this page.