Rete : Una rete è un insieme di periferiche che condividono tra loro alcune risorse.
Per dialogare tra di loro queste periferiche sfruttano un protocollo standardizzato in ambito mondiale che si chiama TCP/IP. Un protocollo di comunicaizone altro non è che la dialettica utilizzata per mettere in comunicazione due o più dispositivi.
All’interno di questo post viene utilizzato come protocollo di comunicazione l’italiano, che rappresenta un linguaggio standard in grado di trasmettere a più destinatari uno stesso messaggio.
Il TCP/IP ha come primissimo vantaggio il fatto di essere un linguaggio mondiale, questo vuol dire che in tutto il mondo, tutti i dispositivi in grado di connetersi ad una rete sono in grado di dialogare sfruttando il TCP/IP come linguaggio.
Per questo motivo una volta capito come due computer parlano tra loro è possibile immaginare come avviene una comunicazione a lunga distanza. Non c’è infatti differenza nel dialogo fra due computer distanti tra loro 2 metri ed una macchina che dialoga con un computer che si trova in Australia, in entrambi i casi infatti i dispositivi sfruttano il TCP/IP per negoziare tra loro.
Il TCP/IP nasce per scopi “militari” con l’intento di trovare un protocollo capace di garantire la comunicazione a lunga distanza anche nel caso di interruzioni di cavi causati ad esempio da un ipotetico attacco nucleare.
Prima di esso infatti esistevano reti che sfruttavano protocolli come il NETBEUI in cui le macchine venivano collegate in SERIE tra loro. L’inconveniente di una rete di questo tipo risiede nel fatto che se solo un cavo venisse interrotto la rete smetterebbe di funzionare poiché la dorsale che porta l’informazione risulterebbe interrotta. Per ovviare a questo vennero studiate le reti ad anello o RING che garantivano continuità di servizio nel caso avvenisse l’interruzione di un cavo.
La soluzione definitiva avvenne con l’adozione del TCP/IP un protocollo scalabile e performante, in grado di rivoluzionare le comunicaizoni in ambito mondiale.
Per capire come funziona il TCP/IP occorre fare un passo indietro.
Per rendere più agevole la comprensione del protocollo immaginiamo una rete come una città, composta da case, strade, veicoli ecc...
Le case di una città rappresentano il luogo fisico ove risiedono le persone. Ogni casa di una città possiede un indirizzo che identifica in maniera univoca la collocazione di quella casa nello spazio e permette alle persone di raggiungerla.
In una rete, ogni dispositivo ( casa ) possiede un indirizzo chiamato indirizzo IP. L’indirizzo IP permette di identificare in maniera univoca uno specifico dispositivo, come ad esempio un computer, una stampante di rete, un telefono ecc...
L’indirizzo ip è composto da 4 triplette che vanno da 0 a 255.
000.000.000.000
255.255.255.255
Ad esempio 192.168.000.001 è un indirizzo IP valido in quanto è composto da 4 triplette i cui numeri sono compresi fra lo 0 ed il 255. Ovviamente tale indirizzo si può anche scrivere omettendo gli zeri non significativi : 192.168.0.1
L’ip perciò è come la targa delle auto che permette di identificare univocamente un determinato dispositivo assegnandogli un indirizzo.
Chiaramente le triplette vanno da 0 a 255 poiché ogni tripletta occupa un Byte ( 2^8 ovvero 256 combinazioni )
Se ogni dispositivo deve avere un indirizzo ip logicamente il numero di IP disponibili deve essere davvero alto. Infatti con quattro triplette è possibile creare 256*256*256*256 combinazioni di IP differenti, ovvero circa 4 miliardi di combinazioni diverse.
Agli albori della rete internet un tale numero di combinazioni sembrava più che sufficiente a soddisfare i bisogni dell’intero pianeta, ma dando un’occhiata alla rapida diffusione della rete che viene raggiunta da computer, telefonini, ipod, decoder e pensando che ognuna di queste periferiche deve avere assegnato un ip differente fra le combinazioni possibili, si può capire il motivo per cui già da qualche anno stiamo giungendo all’esaurimento degli indirizzi ip disponibili.
Questo tipo di indirizzo prende il nome di IPv4 ( Ip versione 4 ) questo perché l’indirizzo è composto da 4 triplette. Attualmente sistemi operativi e dispositivi di rete sono già pronti alla migrazione verso l’IPv6 ( ovvero un ip con 6 triplette ) questo allargherà di 65000 volte la rete, garantendo un maggior numero di ip diversi a disposizione degli utenti.
Infatti un IPv6 prenderà una forma simile : 192.168.000.001.140.200
Naturalmente allo stato attuale la rete internet non è ancora migrata al IPv6 a causa di una serie di criticità da risolvere prima del passaggio.
Oltre alle case ed i loro relativi indirizzi, all’interno della nostra ipotetica città esistono le strade. Le strade altro non sono che il vincolo fisico in grado di mettere in condivisione le varie case. Parlando di rete, invece, esistono delle periferiche chiamate concentratori che sono dei collettori, in grado mettere in connessione tra loro i membri di una rete.
Per membro di rete si intende quel dispositivo ( computer, scanner, modem, stampante ecc... ) connesso ad una rete tramite concentratore.
Tale connessione può avvenire tramite rete cablata oppure wireless ( ovvero sfruttando come sistema fisico l’etere ). La rete cablata solitamente è più veloce e sicura, mentre una rete wireless può avere dei difetti di ricezione ed è meno sicura a causa dell’impossibilità di circoscrivere un segnale all’interno di uno specifico perimetro. Sono entrambi sistemi validissimi, basti pensare a come il protocollo UMTS permette ai nostri telefonini di connettersi ad internet sfruttando l’etere come sistema fisico per collegarsi con una rete.
I concentratori fisici possono essere di due tipi : HUB o SWITCH
La differenza fondamentale sta nel fatto che mentre l’HUB possiede un BUS univoco in cui transitano i dati di tutte le periferiche connesse, lo swich è MULTIPLEXATO ovvero crea una corsia preferenziale in cui transitano i dati relativi ad una specifica sessione fra due macchine.
Sarebbe come dire che nell’HUB la strada è unica, quindi i dati provenienti da più dispositivi si possono scontrare, mentre lo switch ha una strada per ogni dialogo o sessione.
Gli scontri che avvengono all’interno di un HUB vengono chiamate collisioni. Le collisioni riducono anche del 90% la velocità di trasferimento fra i dispositivi poiché nel caso di collisione le macchine attendono un tempo RANDOM prima di inviare nuovamente i dati corrotti, sperando di non incappare in una nuova collisione.
Sino a qualche anno fa la differenza di costo fra HUB e SWITCH faceva propendere le piccole e medie aziende all’acquisto di HUB ma attualmente la scarsa differenza di prezzo ha fatto si che gli hub siano totalmente scomparsi dal mercato.
La velocità con cui i dati si spostano fra i vari dispositivi viene calcolata in [boud] più comunemente chiamata [ bit / sec ] che rappresenta il numero di bit che escono o entrano ogni secondo.
Attualmente si trovano switch a 10/100 Mbit/sec ovvero ( 100.000.000 di bit ogni secondo ) sino ad arrivare a switch a 1Gb/sec ( ovvero 1.000.000.000 di bit ogni secondo ). Maggiore è la velocità di trasferimento, minore sarà il tempo impiegato dalla periferica per trasmettere o ricevere un dato da un’altra periferica.
Dallo switch partono dei cavi che vanno a finire nelle schede di rete dei vari computer da connettere. Una scheda di rete altro non è che una particolare periferica in grado di ospitare un connettore del tipo RJ-45.
Un cavo composto da due RJ-45, viene chiamato cavo di rete.
I cavi di rete abitualmente vengono fatti passare dentro canalette interrate o a vista e resi accessibili mediante specifiche spine.
Procedendo con la metafora della nostra ipotetica città abbiamo trascurato i veicoli che percorrono le strade. Così come i veicoli trasportano da una casa a quell’altra oggetti e persone, allo stesso modo il veicolo in rete ( chiamato TCP ) trasporta dati da un dispositivo a quell’altro.
Il TCP ( Transmission Control Protocol ) si dice che funziona a pacchetti. Questo significa che tutti i dati trasmessi atraverso il TCP/IP vengono suddivisi in tanti pacchetti, ognuno dei quali trasporta un frammento del messaggio.
Banalmente si può pensare che se ci fosse la necessità di inviare il messaggio :
“ Non amo che le rose che non colsi ”
Tale messaggio verrà suddiviso in più pacchetti, ad esempio :
PACCHETTO 1 : Non amo
PACCHETTO 2 : che le
PACCHETTO 3 : rose che
PACCHETTO 4 : non colsi
Ognuno di questi pacchetti, prima di essere spedito verrà numerato al fine di facilitare al ricevente la ricostruzione del messaggio originale.
Il concetto di pacchetto ha rivoluzionato le trasmissioni in ambito mondiale ed ha posto le basi all’era della comunicazione globale. Per capire meglio l’utilità di scomporre un messaggio in tanti pacchetti occorre analizzare più specificatamente l’architettura di una rete TCP/IP.
Prima avevamo accennato al fatto che ogni dispositivo, membro di una rete eredita un indirizzo ip univoco, in grado di renderlo identificabile, questo significa che ipoteticamente la rete internet può essere al massimo grande ( 256*256*256*256 = 256^4 = 4.000.000.000 elementi ) perciò grazie a questo calcolo possiamo dire che Internet altro non è che un insieme di 4 miliardi di computer membri della stessa rete e che dialogano tra loro attraverso il TCP/IP.
Eppure in questa dissertazione abbiamo trascurato una serie di elementi fondamentali. Primo fra tutti il concetto di classe.
Nel nostro precedente esempio parlavamo di una città composta da case, strade e veicoli, questa ipotetica città nell’universo del TCP prende il nome di CLASSE, perciò banalmente, gli elementi che fanno parte della stessa classe appartengono alla stessa città.
Per ora diciamo che la classe sia rappresentata dalle prime tre triplette di un indirizzo ip. Questo vuol dire che se due computer hanno le prime tre triplette uguali, essi appartengono alla medesima città.
Es.
192.168.0.25 --> Classe xxx
192.168.0.34 --> Classe xxx
192.167.27.45 --> Classe yyy
192.167.27.43 --> Classe yyy
Dal momento che in questo esempio la classe è rappresentata dalle prime tre triplette, questo significa che al massimo una classe può avere 256 elementi, poiché per appartenere alla stessa classe può cambiare soltanto l’ultima tripletta.
La cosa sconvolgente è che possono parlare tra loro soltanto le macchine che appartengono alla stessa classe. Perciò questo vuol dire che il protocollo impedisce a 192.168.0.25 di parlare con 192.167.27.45 poiché appartengono a due classi diverse.
Questo vorrebbe dire che se io risiedo a Vicenza posso parlare soltanto con i 256 abitanti della mia città e non posso parlare con nessun altro. In quest’ottica perciò i 4 miliardi di utenti che possono parlare tra di loro si riducono drasticamente a 256, falsificando il concetto di rete internet.
Per ovviare a questo problema è nato il router. Il router altro non è che un dispositivo composto da due o più schede di rete che si appoggiano su due classi differenti.
Un tempo per andare dall’italia alla francia bisognava passare per la dogana, eppure se fosse esistita una casa con due porte sorta proprio nella linea di confine, avrei potuto entrare dalla porta affacciata sull’italia ed uscire dalla porta affacciata sulla francia senza dover passare per la dogana.
Allo stesso modo funziona il router. Se il TCP/IP mi permette di parlare soltanto con i dispositivi che appartengono alla mia stessa classe, l’unica cosa che mi rimane da fare è creare un dispositivo con due schede di rete, ognuna delle quali appartenente ad una classe diversa. In questo modo riesco a raggiungere il router poiché appartiene alla mia stessa classe e come d’incanto mi trovo “catapultato” in una nuova classe.
Questo procedimento prende il nome di “hop” .
In questo caso, se il computer 192.168.0.240 vuole mandare il messaggio “Non amo che le rose che non colsi” alla macchina 200.1.1.48, non dovrà fare altro che suddividere il messaggio in tanti pacchetti ed instradarli verso il router che in questo caso si trova all’indirizzo 192.168.0.254 i pacchetti entreranno nel router e si troveranno magicamente inoltrati all’interno della classe 200.1.1.* e perciò potranno agevolmente raggiungere l’indirizzo di destinazione 200.1.1.48
L’indirizzo ip di un router prende il nome di GATEWAY
Infatti quando un pacchetto non è destinato alla mia classe è obbligato ad instradarsi verso il GATEWAY al fine di saltare verso una nuova classe.
Internet funziona in questo modo, ogni qual volta devo mandare un pacchetto ad un computer che non appartiene alla mia classe, il pacchetto viene instradato verso il gateway nella speranza di incontrare al di la del router la classe di destinazione. Nel caso in cui il pacchetto non si trovi nella classe di destinazione verrà instradato verso il GATEWAY successivo e continuerà così in maniera aleatoria di HOP in HOP finchè non raggiungerà la classe di destinazione.
Questo significa che all’interno della rete internet nessuno conosce il percorso che effettua un pacchetto. L’unica cosa certa è che il pacchetto continuerà a girare per la rete di router in router finché non raggiungerà la macchina a cui è destinato.
Lanciare un pacchetto in internet è come buttare in mare un messaggio in bottiglia. La bottiglia continuerà a girare di isola in isola, di naufrago in naufrago, finché non raggiungerà l’isola di destinazione. L’unico rischio in questo caso risiede nel fatto che un naufrago trovi la bottiglia, si accorga che non è destinata a lui e prima di ributtarla in mare ne legga il contenuto. Questa tecnica viene chiamata SNIFFING.
L’instradamento aleatorio dei pacchetti, garantisce perciò una cosa: il pacchetto potrà anche effettuare il giro del mondo ma arriverà a destinazione. Per questo motivo il TCP/IP scongiura l’ipotesi dell’interruzione delle trasmissioni causata da un attacco nucleare, perché in questo modo anche attraverso strade alternative il pacchetto giungerebbe comunque a destinazione.