Protocollo TCP/IP: cos’è e come funziona
Il protocollo TCP/IP è un insieme di regole, atte a stabilire la corretta trasmissione e ricezione di pacchetti di informazioni all’interno di una rete. Ne esistono molti altri, ma il TCP/IP è uno dei più utilizzati, poiché risulta affidabile e quasi del tutto esente da errori.
La preservazione del messaggio fino a destinazione è, infatti, uno degli aspetti fondamentali per la corretta comunicazione (wireless o cablata) fra i dispositivi in rete. Con questa famiglia di protocolli i risultati sono affidabili e la perdita di pacchetti è ridotta.
In cosa consiste il protocollo TCP/IP
Uno degli aspetti distintivi del protocollo TCP/IP è il sistema di layering. Il termine deriva dall’inglese e significa strato o livello. La suite di protocolli presenti nel TCP/IP si articola proprio su strati e lo fa seguendo un ordine ben specifico. Questo approccio porta con sé alcuni interessanti vantaggi:
- modularizzazione;
- i compiti complessi possono essere scomposti in sotto-compiti più semplici;
- astrazione del problema.
Va inoltre precisato che in una comunicazione (fatta con protocollo TCP/IP) fra due interlocutori, ogni livello forma un collegamento logico con il rispettivo livello presente nello stack di destinazione.
I livelli della suite TCP/IP sono di norma cinque: applicazione, trasporto, rete, collegamento e fisico. Il nome del protocollo deriva da due elementi importantissimi presenti all’interno di questi livelli: il TCP per il livello di trasporto e l’IP per la rete. Un altro termine comune con cui si identifica questo insieme di protocolli è famiglia di protocolli TCP/IP.
Come funziona la comunicazione tramite il TCP/IP
Comprendere come funziona la comunicazione fra due interlocutori tramite il protocollo TCP/IP è abbastanza semplice. Ogni Host (interlocutore) implementa nel proprio end-system la famiglia di protocolli TCP/IP con la sua tipica struttura a cinque livelli.
Il messaggio, prima di essere inviato dall’host sorgente, viene rinchiuso in una sorta di matrioska, che prende il nome di pacchetto. Il termine matrioska non è usato a caso, poiché ogni livello della suite genera un header e un pacchetto da quelli del livello precedente (lo si può immaginare come una scatola racchiusa in altre scatole).
In pratica, a livello 1 viene generato il messaggio (pacchetto 1) e un header 1. A livello 2 il pacchetto è costituito da tutto il contenuto del livello 1 (quindi pacchetto 1 + header 1) e da un nuovo header 2. Il processo si ripete finché non attraversa tutti e 5 i livelli. Questa procedura si chiama incapsulamento.
Quando il messaggio viene ricevuto dall’host di destinazione si procede con il decapsulamento. Si tratta in sostanza dell’operazione inversa rispetto a quella precedentemente descritta e consiste nello spacchettare ogni pacchetto fino a ottenere il messaggio originale.
Siccome esistono molti protocolli su ogni livello, l’operazione di impacchettamento può avvenire anche in una modalità più complessa, che prende il nome di multiplexing. In tal caso, i pacchetti ricevuti dal livello superiore sono più di uno e per essere instradati al giusto protocollo del livello successivo fanno affidamento ai rispettivi header.
Questi ultimi, oltre a contenere informazioni specifiche per il livello successivo, contengono anche l’indirizzo di destinazione del pacchetto una volta giunto all’host ricevente (nel quale subirà l’operazione di estrazione denominata demultiplexing).
Ogni livello del protocollo TCP/IP ha indirizzi ben definiti: il livello di collegamento, ad esempio, usa indirizzi MAC, quello di rete indirizzi IP, il trasposto usa le Porte, mentre quello delle applicazioni il Nome (“http://nomesito”). Grazie a questa differenziazione non c’è il rischio che un pacchetto finisca nel livello sbagliato quando giunge a destinazione.
