>> Il protocollo TCP
Transmission Control Protocol (TCP) è il protocollo di trasporto, definito nel RFC 793, su cui si appoggiano gran parte delle applicazioni Internet.
Il TCP nacque nel 1970 come frutto del lavoro di un gruppo di ricerca del dipartimento di difesa statunitense. I suoi punti di forza sono l'alta affidabilità e robustezza. La sua popolarità si deve anche grazie ad una sua implementazione diffusa dalla Berkeley University of California sotto forma di sorgenti.
Le caratteristiche principali del TCP sono:
- La creazione di una connessione (protocollo orientato alla connessione)
- La gestione di connessioni punto-punto
- La garanzia che i dati trasmessi giungano a destinazione in ordine e senza perdita di informazione (tramite il meccanismo di acknowlegment e ritrasmissione)
- Attraverso il meccanismo della "finestra scorrevole", offre funzionalità di "controllo di flusso" e "controllo della congestione", vitali per il buon utilizzo della rete IP, che non offre alcuna garanzia in ordine alla consegna dei pacchetti, al ritardo, alla congestione.
- Una funzione di multiplazione delle connessioni ottenuta attraverso il meccanismo delle porte.
Instaurazione della connessione
La procedura utilizzata per instaurare in modo affidabile una connessione TCP tra due host è chiamata three-way handshake (triplice stretta di mano), ad indicare la necessità di scambiare tre messaggi per garantire la corretta creazione della connessione. Supponiamo, per esemplificare, che l'host A (il client) intenda instaurare una comunicazione TCP con l'host B (il server); i passi indicati dalla tecnica three-way handshake sono:
- A invia un segmento SYN< a B, contenente il suo sequence number x;
- B invia un segmento SYN/ACK ad A, contenente il suo sequence number y e l'acknowledgment del sequence number x di A;
- A invia un segmento ACK a B con l'acknowldedgment del sequence number y di B.
Avendo chiamate SYN poi insieme SYN + ACK e infine ACK se si cercano solo i segmenti di tipo ACK si ottengono tutte le nuove connessioni instaurate.
TCP tratto da WIKIPEDIA.