Il Protocollo TCP/IP

Introduzione

In questo articolo di ComeFunziona.net affronteremo l'argomento del Protocollo TCP. Di cosa parliamo? Parliamo di una tecnologia che è stata introdotta per la prima volta nel 1981 (RFC793), nell' ambito delle Telecomunicazioni e dell'Informatica, allo scopo di mettere in comunicazione in maniera sicura ed affidabile due host, ovvero due elaboratori fisicamente lontani  tra loro.

Abbiamo già discusso, negli articoli sul P2P e sul DNS, come questo grande mondo che è Internet si presenti principalmente attraverso due grandi architetture che stabiliscono la "forma di comunicazione", basata su trasmissione di pacchetti, tra due host: Client-Server e Peer-to-Peer. Nella prima, laddove si colloca con maggiore preponderanza il Protocollo TCP, è costituita da Clients che richiedono un servizio (di connessioni e di scambi di informazioni) ad un Server, fornitore del servizio stesso, mentre nella seconda in cui gli host sono al tempo stesso sia Client, sia Server.

Per capire in maniera intuitiva l'importanza del Protocollo TCP, immaginate la seguente situazione: vi siete trasferiti da poco in una nuova città e dopo aver letto un annuncio sul giornale siete riusciti trovare un lavoro presso un'azienda del posto. Il vostro primo problema è come raggiungere l'ufficio. Supponendo che non abbiate un'auto, la vostra unica soluzione è quella di prendere un autobus o una metropolitana, che vi garantisca di arrivare a destinazione, possibilmente alle 8:00 in punto! Naturalmente, in cuor vostro sperate che il servizio offerto sia impeccabile, altrimenti potreste fare tardi il primo giorno. Ecco, così come la metropolitana garantisce il trasporto della vostra persona, così il TCP garantisce il trasporto affidabile del pacchetto. In particolar modo si dice che esso garantisca un trasporto:

1. Orientato alla connessione: prima dell'inizio di qualsiasi trasmissione, il TCP stabilisce tra i due host una connessione, ovvero un canale privilegiato sul quale veicolare i pacchetti. La connessione si costituisce di più sessioni, ovvero viene sospesa quando non vengono rilevati pacchetti in arrivo o in partenza. La connessione, in genere, viene stabilita in 3 fasi (3-way Handshaking), come se fosse "stretta di mano" tra due hosts.  

2. Senza errori: a livello di bit, il pacchetto non deve subire cambiamenti o modifiche compromettenti l'informazione.

3. Senza perdite : se una singola informazione è distribuita in più di un pacchetto, essa non deve subire perdite, ovvero il protocollo deve assicurare che tutti i pacchetti arrivino a destinazione. 

4. In ordine: i pacchetti devono partire ed arrivare con un ordine prestabilito, affinché l'informazione non sia inconsistente.