Il Protocollo TCP/IP

Il Modello ISO/OSI e l'incapsulamento

Ovviamente, sebbene il principio di funzionamento teorico sia molto intuitivo, al contrario, quello reale non è così semplice. Infatti, affinché un pacchetto di partenza riesca a partire da un host Client ed arrivare intatto e senza perdita di informazione (se così non fosse, implicherebbe conseguenze poco gradevoli) al Server, così come il pacchetto di ritorno, è chiaro immaginare che a sostegno di questa trasmissione ci sia un meccanismo che ne garantisca il corretto funzionamento: questo meccanismo di comunicazione è definito come Modello ISO/OSI (International Standardization Organization / Open Systems Interconnection)


Tale modello, infatti, struttura il web e le trasmissioni in maniera modulare, allo scopo di semplificare l'intera comunicazione tra due host. Il singolo pacchetto infatti, unità dell'informazione della rete, lungo il suo viaggio da un host ad un altro, partendo dal livello più alto della struttura dell'host di partenza (livello Applicazione) percorre in ordine tutti i livelli sottostanti (livelli del Modello OSI) fino ad arrivare all'ultimo (livello Fisico) per poi raggiungere il livello Fisico dell'host di destinazione e ripercorrere di nuovo il percorso al contrario fino raggiungere di nuovo il Livello Applicazione.

Il pacchetto, nel percorrere la schiera dei livelli OSI subisce il cosiddetto principio dell'incapsulamento (e di decapsulamento). In corrispondenza di ogni livello della struttura che il pacchetto dell'host mittente attraversa, ad esso vengono incorporate delle informazioni che sono proprie e uniche del livello attraversato dal pacchetto. In questo senso, si dice che il pacchetto (immaginate ad esempio come il click del mouse) è "incapusulato" nelle informazioni aggiunte dai livelli stessi. Una volta arrivato all'host di destinazione, nel risalire la struttura, il pacchetto viene "decapsulato" dai vari livelli, ovvero spogliato delle informazioni aggiuntive fino ad estrarre il pacchetto originale. Perciò, in ogni livello, il pacchetto assume nomi identificativi differenti. Al livello di Trasporto, in cui opera il TCP, il pacchetto viene detto segmento TCP

Affinché però tutto funzioni nel modo giusto, è sufficiente che ogni livello offra il proprio "servizio" al livello sottostante (o sovrastante) in maniera corretta. Se tutti i livelli svolgono il proprio ruolo correttamente, allora l'intera struttura garantisce la trasmissione corretta del pacchetto. Questo conferisce al Modello OSI robustezza e sicurezza delle trasmissioni. Inoltre, le informazioni aggiunte da uno qualsiasi dei Livelli, in "discesa", devono essere comprese dal corrispondente Livello, in "salita" per raggiungere l''host di destinazione.
  
Ed è in questo contesto che nasce l'esigenza dell'esistenza di Protocolli per ognuno dei livelli del Modello OSI. Un Protocollo, infatti, non è altro che un insieme di regole di comunicazione nella scrittura e nella lettura delle informazioni, che permettono a due livelli di egual posizione di poter "comunicare" senza rischio di errori o di ambiguità. Sancite e rispettate tali regole, la trasmissione avverrà in maniera corretta per l'incapsulamento e il rispettivo decapsulamento.


Il Protocollo TCP (Transfer Control Protocol) si colloca nel livello di Trasporto del Modello OSI e il suo scopo è, come vedremo, quello di garantire il trasporto affidabile del pacchetto. Il servizio di trasporto è uno dei più importanti e rilevanti dell'intera trasmissione. 

In molti contesti, anzi quasi nella totalità di essi, è frequente trovare la dicitura "TCP/IP" anziché solo "TCP". Il motivo principale per il quale viene utilizzata tale scrittura è perché all'interno del Modello OSI, il livello di trasporto rappresenta quello superiore rispetto al livello di Rete, nel quale è definito il protocollo IP (Internet Protocol). Il protocollo IP a differenza del TCP, è un protocollo molto più semplice dedicato a smistare le informazioni sulla rete. Per garantire correttamente il trasferimento il protocollo IP si affida completamente al protocollo TCP (End-to-End Trasmission).