Il protocollo TCP
Pagina 1 di 7
In questo articolo andremo ad analizzare le caratteristiche del protocollo TCP e cercheremo di affrontare, in maniera abbastanza approfondita, le principali tematiche che riguardano questo protocollo.
Affidabilità
Iniziamo con il dire che il protocollo TCP è un protocollo appartenente al livello di trasporto della pila protocollare ISO/OSI. La maggior parte delle applicazioni internet utilizzano, appunto, questo protocollo il quale - per sua natura - è caratterizzato da un elevato grado di affidabilità.
Vedremo, nel corso dell'articolo, il perchè di questa affermazione.
Protocollo orientato alla connessione
Il TCP è detto un protocollo orientato alla connessione dato che due applicazioni su terminali diversi, prima di trasmettere dati, devono instaurare una connessione detta Handshake (stretta di mano). In questa operazione vengono trasferite informazioni preliminari per poi poter garantire un servizio di conesgna dei pacchetti affidabile.
Full-duplex
Il TCP offre un servizio full-duplex dove, quindi, il flusso dati tra mittente e destinatario è bidirezionale; più precisamente i flussi dati, con direzione diverse, possono coesistere contemporaneamente. Ciò vuol dire che un generico host potrà trasmettere dati ad un altro e nello stesso momento ricevere dati da un terzo host senza che ciò mini l'affidabilità della trasmissione.
Connessione Point-to-point
Si può definire una generica connessione TCP come una connessione point-to-point cioè relativa ad una sola sorgente e una sola destinazione.
Detto questo è evidente che non può essere usata la modalità di multicast, ovvero il trasferimento di dati da un mittente a più destinatari in una sola operazione. Se ipotizziamo che un generico host debba notificare qualcosa ad altri tre host dovrà, necessariamente, instaurare una connessione TCP separata per ogni host di destinazione.
Le operazioni gestite dal TCP sono totalmente invisibili alle funzioni a livello di rete come per esempio l'inoltro dei pacchetti che raggiungono un router.
Protocollo stream-oriented
Il TCP inoltre è un protocollo che potremo definire come un protocollo stream-oriented ovvero che il TCP "vede" i dati trasmessi come un flusso di byte ordinati che vengono numerati.
Le caratteristiche principali del TCP
Le caratteristiche principali del TCP possono essere riassunte nell'elenco sottostante:
- Trasferimento affidabile dei dati: Viene garantito un servizio di dati affidabile ovvero che tutti i dati inviati dal mittente siano recapitati al destinatario e senza errori. Può succedere, per errore tra collegamenti, che qualche pacchetto vada perduto nella rete. A questo punto il TCP si occuperà di rilevare questa mancata ricezione e procederà a ritrasmettere il pacchetto perso (vedremo in maniera più approfondita come avviene questo procedimento).
- Riordinamento corretto dei pacchetti: Questa funzionalità è estremamente importante per la corretta comprensione del messaggio da parte dell'applicazione destinazione. Infatti può accadere che i pacchetti conteneti l'informazioni subiscono ritardi all'interno della rete per via del congestionamento della stessa, e quindi può accadere che arrivino alla destinazione non in ordine. Il compito del TCP è proprio quello di riassemblare, in maniera corretta, il messaggio e inoltrarlo al livello superiore.
- Controllo del flusso: Il TCP controlla che un host più veloce nella trasmissioni dati non mandi in overflow il buffer di ricezione di un altro host più lento. Infatti se il TCP si accorge che l'applicazione dell'host destinazione ha difficoltà nella lettura dei dati presenti nel buffer di ricezione, abbassa la frequenza di trasmissione del mittente al fine di equilibrare le prestazioni dei due host.
- Controllo della congestione: Se il TCP si accorge che c'è un congestionamento diffuso della rete impone all'host mittente di diminuere la frequenza di trasmissione dei pacchetti per evitare di congestionare maggiormente la rete.
Definizione di MMS (dimensione massima di segmento)
Al fine della comprensione di alcuni argomenti dell'articolo diamo adesso la definizione di dimensione massima di segmento che chiameremo MSS.
Il valore del parametro MSS viene determinato in base al valore della unità trasmissiva massima detta MTU ovvero la dimensione del frame più grande sostenibile al livello collegamento. In definitiva, il valore MSS viene scelto affinchè un segmento a livello trasporto venga trasmesso in un unico frame a livello collegamento.







