Transmission Control Protocol
TCP fornisce un flusso di flusso affidabile dei dati tra gli host Internet.
Come UDP, TCP utilizza Internet Protocol, il protocollo sottostante, per trasportare datagrammi e supporta la trasmissione a blocchi di un flusso continuo di datagrammi tra i porti di processo. A differenza di UDP, TCP fornisce una consegna dei messaggi affidabile. TCP garantisce che i dati non vengano danneggiati, persi, duplicati o consegnati fuori dall'ordine ad un processo di ricezione. Questa garanzia di affidabilità di trasporto tiene ai programmatori delle applicazioni dal dover costruire tutele di comunicazione nel loro software.
Di seguito sono riportate le caratteristiche operative di TCP:
| Elemento | Descrizione |
|---|---|
| Trasferimento dati di base | TCP può trasferire un flusso continuo di 8 - bit ottetti in ogni direzione tra i propri utenti inserendo un certo numero di byte in segmenti per la trasmissione attraverso il sistema Internet. L'implementazione TCP consente una dimensione del segmento di almeno 1024 bytes. In generale, TCP decide quando bloccare e inoltrare pacchetti a propria convenienza. |
| Affidabilità | TCP deve recuperare i dati danneggiati, persi, duplicati o consegnati fuori dall'ordine da Internet. TCP raggiunge questa affidabilità assegnando un numero di sequenza a ogni ottetto che trasmette e richiedendo un riconoscimento positivo (ACK) dalla ricezione TCP. Se l'ACK non viene ricevuto entro l'intervallo di time-out, i dati vengono ritrasmessi. Il valore di time-out di ritrasmissione TCP è dinamicamente determinato per ogni connessione, in base al tempo di andata e ritorno. Al ricevitore, i numeri di sequenza sono utilizzati per ordinare correttamente i segmenti che possono essere ricevuti fuori dall'ordine e per eliminare i duplicati. I danni vengono gestiti aggiungendo una checksum a ciascun segmento trasmesso, verificandolo al ricevitore e scartando segmenti danneggiati. |
| Controllo del flusso | TCP governa la quantità di dati inviati restituendo una finestra con ogni ACK per indicare una gamma di numeri di sequenza accettabili oltre l'ultimo segmento ricevuto con successo. La finestra indica un numero consentito di ottetti che il mittente può trasmettere prima di ricevere ulteriore autorizzazione. |
| Multiplexing | TCP consente a molti processi all'interno di un singolo host di utilizzare contemporaneamente le strutture di comunicazione TCP . TCP riceve una serie di indirizzi di porte all'interno di ogni host. TCP combina il numero di porta con l'indirizzo di rete e l'indirizzo host per identificare univocamente ogni socket. Una coppia di socket identifica univocamente ogni connessione. |
| Collegamenti | TCP deve inizializzare e mantenere determinate informazioni di stato per ogni flusso di dati. La combinazione di queste informazioni, incluse socket, numeri di sequenza e dimensioni della finestra, è chiamata connessione. Ogni connessione è univocamente specificata da un paio di socket che identificano i suoi due lati. |
| Precedenza e Sicurezza | Gli utenti di TCP possono indicare la sicurezza e la precedenza delle loro comunicazioni. I valori predefiniti vengono utilizzati quando queste funzioni non sono necessarie. |
La Figura TCP Packet Header illustra queste caratteristiche.
