Transmission Control Protocol

Suite di protocolli Internet   Modifica
Livello Applicazioni HTTP, SMTP, FTP, DNS, SSH, IRC, SNMP, SIP,
RSYNC, Telnet ...
Livello di Trasporto TCP, UDP, SCTP, RTP, DCCP ...
Livello di Rete IPv4, IPv6, ARP, ICMP, IGMP ...
Livello Datalink Ethernet, WiFi , PPP ...
Livello Fisico Ethernet, WiFi , Token ring, FDDI, ...

Transmission Control Protocol (TCP) è il protocollo di trasporto su cui si appoggiano gran parte delle applicazioni Internet.

Il TCP è un protocollo corrispondente al livello 4 (trasporto) del modello di riferimento OSI, e di solito è usato in combinazione con il protocollo di livello 3 (rete) IP. La corrispondenza con il modello OSI non è perfetta, in quanto il TCP e l'IP nascono prima. La loro combinazione è indicata come TCP/IP ed è, alle volte, erroneamente considerata un unico protocollo.

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:

TCP header

Immagine mancante
Tcp_header.png
Struttura dell'header di un segmento TCP

L'header di un segmento TCP è così strutturato:

Instaurazione della connessione

right|300px|Three-way handshake 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:

  1. A invia un segmento SYN a B, contenente il suo sequence number x;
  2. B invia un segmento SYN/ACK ad A, contenente il suo sequence number y e l'acknowledgment del sequence number x di A;
  3. A invia un segmento ACK a B con l'acknowldedgment del sequence number y di B.

Collegamenti esterni

See also: Transmission Control Protocol, 1970, ARP, DNS, Ethernet, FTP, Finestra scorrevole, HTTP