Aggiungi a: Digg Aggiungi a: Del.icoi.us Aggiungi a: Furl Aggiungi a: Yahoo Aggiungi a: Technorati Aggiungi a: Google Information  RSS ePOINT Ferrara
Protocollo TCP-IP PDF Stampa E-mail

Un linguaggio comune per la rete: il protocollo TCP-IP (Transmission Control Protocol/Internet Protocol.)

Internet è uno strumento di comunicazione. Uno strumento di comunicazione tra i computer, e tra gli uomini che usano i computer interconnessi attraverso la rete. Naturalmente i due soggetti in campo, computer e uomini, hanno esigenze diverse, spesso contrastanti, che occorre tenere presenti per fare in modo che la comunicazione vada a buon fine. Le tecnologie su cui si basa Internet si sono evolute nel corso degli anni proprio per rispondere con la massima efficienza a queste esigenze.

Il primo problema in ogni processo di comunicazione è naturalmente la definizione di un linguaggio che sia condiviso tra i diversi attori che comunicano; attori che, nel caso di Internet, sono in primo luogo i computer. E i computer, come ben si sa, pur usando tutti lo stesso alfabeto - il codice binario - 'parlano' spesso linguaggi differenti e incompatibili. Fuori di metafora, computer diversi usano sistemi operativi, codici di caratteri, strutture di dati, che possono essere anche molto diversi. Per permettere la comunicazione tra l'uno e l'altro è necessario definire delle regole condivise da tutti. Questa funzione, nell'ambito della telematica, viene svolta dai protocolli.

Nel mondo diplomatico per 'protocollo' si intende una serie di regole di comportamento e di etichetta rigidamente codificate, che permettono a persone provenienti da diversi universi culturali di interagire senza creare pericolose incomprensioni. Protocolli sono detti anche gli accordi o i trattati internazionali. Queste accezioni del termine possono essere accolte per metafora anche nell'ambito della telematica: un protocollo di comunicazione definisce le regole comuni che un computer deve conoscere per elaborare e inviare i bit attraverso un determinato mezzo di trasmissione fisica verso un altro computer. Un protocollo dunque deve specificare in che modo va codificato il segnale, in che modo far viaggiare i dati da un nodo all'altro, in che modo assicurarsi che la trasmissione sia andata a buon fine, e così via.

Nel caso di Internet, che interconnette milioni di computer e di sottoreti, basati su ambienti operativi e architetture hardware diverse, tali protocolli debbono rispondere ad esigenze particolarmente complesse. E come abbiamo visto la storia stessa della rete è stata scandita dallo sviluppo dei suoi protocolli fondamentali. Il nucleo fondamentale, l'insieme di protocolli che permettono il funzionamento di questo complesso e proteico sistema di comunicazione telematico, viene comunemente indicato con la sigla TCP/IP, che è un acronimo per Transmission Control Protocol/Internet Protocol.

Possiamo affermare che una delle ragioni del successo di Internet risiede proprio nelle caratteristiche del suo protocollo di comunicazione. In primo luogo il TCP/IP è indipendente dal modo in cui la rete è fisicamente realizzata: una rete TCP/IP può appoggiarsi indifferentemente su una rete locale Ethernet, su una linea telefonica, su un cavo in fibra ottica, su una rete di trasmissione satellitare... e così via. È anzi progettato esplicitamente per integrare facilmente diverse tecnologie hardware in un'unica struttura logica di comunicazione.

In secondo luogo il TCP/IP è un protocollo di comunicazione che risolve in modo molto efficiente i problemi tecnici di una rete geografica eterogenea come è Internet:

* sfruttare al meglio le risorse di comunicazione disponibili;
* permettere un indirizzamento efficiente e sicuro dei computer collegati, anche se questi sono diversi milioni [73];
* garantire con la massima sicurezza il buon fine della comunicazione;
* permettere lo sviluppo di risorse e servizi di rete evoluti e facilmente utilizzabili dall'utente.


E infine, ma non secondariamente, TCP/IP è un open standard, le cui specifiche sono liberamente utilizzabili da chiunque. Questo ha permesso il rapido diffondersi di implementazioni per ogni sistema operativo e piattaforma esistente, implementazioni spesso distribuite gratuitamente o integrate in modo nativo nel sistema stesso.

Un protocollo a strati

Ciò che viene comunemente indicato come TCP/IP, in realtà, è costituito da un vero e proprio insieme di protocolli di comunicazione, ognuno con un compito specifico, organizzati in maniera gerarchica. In termini tecnici si dice che è un 'protocollo a livelli di servizi' (layers of services). Per la precisione TCP/IP si basa su un modello a quattro livelli:

1. livello delle applicazioni, che gestisce i servizi di rete per l'utente e dunque è la fonte e la destinazione finale di ogni transazione di rete;
2. livello di trasporto, che gestisce l'organizzazione dei dati ai fini della trasmissione e ha il compito di controllare che la comunicazione di un certo blocco di dati sia andata a buon fine, e di ritrasmettere quello che eventualmente è andato perso;
3. livello di rete, che gestisce l'indirizzamento dei computer e l'instradamento dei dati;
4. livello fisico e di collegamento dati, che gestiscono l'uso dei cavi e l'invio dei segnali fisici sulla rete (ma non fa propriamente parte di TCP/IP).


Nell'architettura TCP/IP ogni livello è gestito da uno o più protocolli. Durante lo svolgimento di una transazione, alla sequenza dei vari livelli corrisponde una sequenza di operazioni necessarie per la trasmissione dei dati. In fase di invio i dati partono dal livello delle applicazioni, e passano in sequenza attraverso la pila di strati; ogni protocollo riceve i dati dal livello superiore, aggiunge le informazioni di gestione che gli competono in una intestazione (header), e poi passa il tutto al livello inferiore, fino al livello che invia il segnale lungo il canale. In fase di ricezione avviene naturalmente il processo inverso.

I dati arrivati mediante il livello fisico e il livello di rete passano al livello di trasporto che legge l'intestazione a lui destinata, ricompone il messaggio, e poi passa il tutto al livello applicativo.

Naturalmente nella realtà le cose sono molto più complicate, ma questa descrizione rende l'idea. TCP/IP, insomma, può essere visto come una sorta di servizio di recapito basato su un meccanismo a scatole cinesi: al momento della spedizione i dati sono 'avvolti' in una scatola (che riporterà all'esterno alcune indicazioni sul contenuto), questa scatola viene inserita in un'altra scatola (con all'esterno un altro tipo di indicazioni), e così via.
Al momento della ricezione le scatole vengono 'aperte' una dopo l'altra, ricavando da ognuna le informazioni su di essa riportate. Ogni interazione tra due computer della rete è costituita dalla confezione e dall'invio di una serie di scatole.

In realtà, come abbiamo detto, il gruppo di protocolli TCP/IP in senso stretto non si occupa della gestione diretta della infrastruttura hardware della rete. Esso, infatti, è indipendente da tale infrastruttura, e questa sua caratteristica ne ha facilitato la diffusione. Esistono dunque una serie di specifiche che descrivono in che modo ogni singola architettura fisica di rete possa interfacciarsi con il TCP/IP: ad esempio per la rete Ethernet, il tipo di rete locale più diffusa al mondo, ci sono l'Address Resolution Protocol (ARP) e lo Standard for the Transmission of IP Datagrams over Ethernet Networks. Le implementazioni software dei protocolli TCP/IP normalmente integrano queste tecnologie, e dunque permettono di creare reti Internet/Intranet su qualsiasi tipo di cavo.

Lo scambio dei dati: ad ogni computer il suo indirizzo

La trasmissione dei dati e la gestione del traffico tra i vari computer in una rete TCP/IP sono governati dall'Internet Protocol (IP). Il protocollo IP ha il compito di impacchettare i dati in uscita e di inviarli, trovando la strada migliore per arrivare ad un particolare computer tra tutti quelli connessi alla rete. Le informazioni necessarie a questo fine sono inserite in una intestazione (header) IP che viene aggiunta ad ogni pacchetto di dati.

La tecnica di inviare i dati suddivisi in pacchetti (detti anche datagrammi) recanti tutte le informazione sulla loro destinazione è una caratteristica delle reti di tipo TCP/IP, che sono dette reti a commutazione di pacchetto. In questo modo è possibile usare lo stesso tratto di cavo fisico per far passare molte comunicazioni diverse, sia che provengano da più persone che operano sullo stesso computer, sia che provengano da più computer collegati a quel tratto di rete. Mai nessuno occuperà un certo tratto di rete fisica per intero, come invece avviene nella comunicazione telefonica. Questa tecnica di trasmissione dei dati permette una grande efficienza nella gestione dei servizi di rete: infatti se per una qualche ragione una singola sessione di invio si interrompe, il computer emittente può iniziare un'altra transazione, per riprendere in seguito quella iniziale. E occorre ricordare che, per un computer, interruzione vuol dire pochi millesimi di secondo di inattività!

Il secondo compito del protocollo IP è l'invio dei dati per la 'retta via'. Per fare in modo che la comunicazione tra gli host vada a buon fine è necessario che ogni singolo computer abbia un indirizzo univoco, che lo identifichi senza alcuna ambiguità, e che indichi la via per raggiungerlo tra i milioni di altri host della rete. A questo fine viene impiegato uno schema di indirizzamento dei computer collegati in rete, che si basa su un sistema di indirizzi numerici.

Ogni computer su Internet, infatti, è dotato di un indirizzo numerico costituito da quattro byte, ovvero da quattro sequenze di 8 cifre binarie. Normalmente esso viene rappresentato in notazione decimale come una sequenza di quattro numeri da 0 a 255 (tutti valori decimali rappresentabili con 8 bit), separati da un punto; ad esempio:

151.100.20.17

Questi indirizzi numerici hanno una struttura ben definita. Come abbiamo detto Internet è una rete che collega diverse sottoreti. Lo schema di indirizzamento rispecchia questa caratteristica: in generale la parte sinistra dell'indirizzo indica una certa sottorete nell'ambito di Internet, e la parte destra indica il singolo host di quella sottorete. La esatta distribuzione dei quattro byte tra indirizzo di rete e indirizzo di host dipende dalla 'classe' della rete. Esistono cinque classi di rete designate con le lettere latine A, B, C, D, E; di queste solo le prime tre classi sono utilizzate effettivamente su Internet. Una rete di classe A, ad esempio, usa il primo byte per indicare la rete, e i restanti tre byte per indicare i singoli nodi. Una rete di classe C invece usa i prime tre byte per indicare la rete e l'ultimo per l'host. Inoltre, poiché il riconoscimento del tipo di indirizzo viene effettuato sul primo byte, esistono dei vincoli sul valore che esso può assumere per ogni classe [75]. Per le reti di classe A i valori potranno andare da 1 a 127, per quelle di classe B da 128 a 191, per quelle di classe C da 192 a 223.

Ne consegue che possono esistere solo 127 reti di classe A, a ciascuna delle quali però possono essere collegati ben 16.777.214 diversi computer. Invece le reti di classe B (due byte per l'indirizzo) possono essere 16.384, ognuna delle quali può ospitare fino a 65.534 host. Infine le reti di classe C potranno essere 2.097.152, composte da un massimo di 254 host.

Per capire meglio lo schema di indirizzamento di Internet basta pensare alla struttura di un normale indirizzo postale. Lo scriviamo come nei paesi anglosassoni, con il numero civico prima: 2, Vicolo Stretto, Roma, Italia. Anche qui abbiamo quattro blocchi di informazioni: 'Vicolo Stretto, Roma, Italia' svolge la funzione di un indirizzo di rete, '2' corrisponde all'indirizzo del computer. Un indirizzo di classe C! Per trovare una analogia con un indirizzo di classe A potremmo pensare a 'Presidenza della Repubblica, Italia'.

L'analogia con il sistema postale è in realtà molto più profonda di quanto non potrebbe sembrare. Infatti il sistema di recapito dei pacchetti di dati attraverso la rete è funzionalmente simile al modo in cui un servizio postale tradizionale organizza il recapito delle lettere (anche queste in fondo sono pacchetti di dati). Pensiamo al sistema postale: quando imbuchiamo una lettera questa arriva all'ufficio postale locale; se la lettera reca sulla busta un indirizzo di destinazione di competenza di un altro ufficio postale, sarà inviata a quell'ufficio postale, che si preoccuperà di recapitarla al destinatario. Naturalmente l'ufficio postale locale non conosce gli indirizzi di tutti gli altri uffici postali locali del mondo. Se una lettera è indirizzata ad esempio in Francia, l'ufficio locale la spedirà prima all'ufficio nazionale delle poste, che a sua volta manderà tutta la corrispondenza indirizzata alla Francia al suo omologo francese, il quale farà procedere la nostra lettera verso l'ufficio postale locale, che infine la recapiterà al destinatario.

Anche Internet funziona così. Quando infatti il protocollo IP di un computer riceve dei dati da inviare ad un certo indirizzo, per prima cosa guarda alla parte dell'indirizzo che specifica la rete. Se l'indirizzo di rete è quello della rete locale, i dati sono inviati direttamente al computer che corrisponde all'indirizzo. Se invece l'indirizzo di rete è esterno, i dati vengono inviati ad un computer speciale denominato gateway o router che gestisce il traffico di interconnessione (quello, cioè, diretto verso altre sottoreti), proprio come l'ufficio postale gestisce il recapito delle lettere.

Ogni router ha in memoria un elenco (detto tabella di routing) degli indirizzi dei router competenti per le altre sottoreti che conosce direttamente, più uno per le destinazioni di cui non ha diretta conoscenza. Quando riceve un pacchetto di dati da uno dei computer della sua sottorete, il router legge l'intestazione IP, dove è segnato l'indirizzo di destinazione, e poi lo invia al router competente per quell'indirizzo, che a sua volta lo trasmetterà al computer a cui esso era destinato.

L'assegnazione effettiva degli indirizzi di rete viene curata da un organismo internazionale, l'Internet Assigned Number Authority (IANA), il quale a sua volta delega ad enti nazionali la gestione degli indirizzi di rete nei vari paesi. In Italia tale gestione è curata dalla Registration Authority italiana, che fa capo al CNR (ed è dunque funzionalmente collegata al Ministero dell'università e della ricerca scientifica e tecnologica), in base alle indicazioni fornite dalla Naming Authority italiana (che opera in stretto rapporto con il Ministero delle poste e delle telecomunicazioni). Tutte le indicazioni del caso, compresi i moduli necessari alla richiesta di registrazione per nuovi nomi di dominio, sono disponibili alla URL http://www.nic.it/RA. Fino al 1998 questo lavoro era svolto nell'ambito del GARR, ma l'espansione commerciale della rete Internet sta progressivamente portando anche in Italia a uno svincolamento delle procedure centrali di gestione della rete dal solo mondo della ricerca universitaria.

Naturalmente la cura degli indirizzi di ogni singolo host è affidata ai gestori (o meglio system manager) delle varie reti. Ed è ovviamente importante che gli indirizzi assegnati ai vari host siano diversi l'uno dall'altro.

Una conseguenza del complicato (ma efficiente) schema di indirizzamento di Internet è che gli indirizzi sono limitati. Tanto per farsi una idea: gli indirizzi di classe A sono stati esauriti da molto tempo, quelli di classe B quasi, e non vengono più assegnati, quelli di classe C sono assegnati al 50 per cento. Con gli attuali ritmi di crescita di Internet si corre seriamente il rischio di esaurire entro pochi anni tutti gli indirizzi disponibili. Per questa ragione è stata sviluppata recentemente una versione evoluta del protocollo IP, denominata 'IP Next Generation' o 'IP 6', basata, come si è accennato, su un sistema di indirizzamento a 128 bit. Le possibili combinazioni sono decisamente al di là del numero di abitanti del pianeta. Il prossimo collo di bottiglia, se mai ci sarà, verrà causato da amici alieni! Il nuovo protocollo IPNG è tra quelli inclusi nelle sperimentazioni di Internet II.

< Prec.   Succ. >
Contatta ePOINT web agency Ferrara e Bologna
Portfolio


     Qui un estratto del

        nostro portfolio 

Partner Program


Agenzia di comunicazione
      o pubblicitaria?

Diventa partner ePOINT.