Il Protocollo TCP/IP

Il pacchetto TCP

Per comprendere il funzionamento del TCP, vediamo come è costituito il segmento TCP. Un segmento TCP si presenta con una struttura costituita da campi: 


N° di porto origine e destinazione (16 bit): illustreremo nel prossimo paragrafo cosa sono le "porte" e il loro utilizzo. Il numero di porte di origine e destinazione è stimato intorno al valore di 2^16, ovvero 65.536. Ricordate con attenzione questa cifra, ci servirà. 

N° di sequenza e di riscontro (32 bit): nel caso in cui un solo pacchetto non riesca a contenere tutta l'informazione, essa può essere distribuita in più pacchetti. Tali pacchetti però, una volta arrivati, devono essere riscontrati, ovvero l'host destinatario deve comunicare l'avvenuta ricezione del pacchetto. Una volta riscontrati tutti i pacchetti, devono essere ricongiunti in maniera ordinata per ricostruire l'informazione. Il N° di sequenza indica la posizione giusta del pacchetto per ricostruire l'informazione.

 URG, ACK, PSH, RST, SYN, FIN (6 bit): sono bit che indicano delle informazioni utili. In particolare ACK, indica che il pacchetto è stato riscontrato; RST, SYN, FIN sono bit che relativi l'apertura o la chiusura della connessione TCP. 
 
Finestra di Ricezione: ogni host destinatario ha una finestra di ricezione, ovvero un finestra di dimensione prefissata in cui accoda i pacchetti in arrivo. In tale campo viene memorizzata il numero massimo, in byte, dei pacchetti che il destinatario può accordare. 

Checksum (4 bit): è un campo che permette a mittente e destinatario di controllare e testare se durante il trasferimento l'intero segmento esso abbia subito delle modifiche involontarie che abbiano compromesso la correttezza delle informazioni. 

Puntatore a dati urgenti: se esistono dati urgenti nella sezione Dati (corpo del messaggio) tale campo permette al destinatario di recuperarli velocemente. 

Opzioni: è un campo che indica delle informazioni non utili ai fini della trasmissione.

Dati: il campo dati contiene l'informazione utile. La sua dimensione massima (MMU) è naturalmente limitata e la lunghezza dell'informazione utile è variabile e dipende dall'informazione inviata. Ad esempio un click del mouse ha una dimensione differente da quella di una stringa di testo.