Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
segmenti prima di iniziare la connessione vera e propria. Inoltre TCP full duplex e possiede una
connessione punto-punto, ovvero tra un singolo mittente ad un singolo destinatario.
Per stabilire una connessione il processo TCP invia uno speciale segmento al server, che risponde
con un altro segmento specifico. Successivamente i due processi iniziano a scambiarsi dati: il
processo client passa i segmenti al socket, che li dirige al buffer di invio della connessione.
La quantit di dati che pu essere inserita in un segmento limitata dalla sua dimensione massima,
che a sua volta limitata dalla dimensione massima del frame a livello connessione che pu essere
inviato dall'host mittente.
Il segmento TCP formato da vari campi:
Porta sorgente
Porta destinatario
Numero di sequenza: serve per garantire il trasferimento affidabile dei dati, indica il numero
del primo byte del segmento all'interno della sequenza di byte.
Numero di riconoscimento: il numero di sequenza del prossimo segmento che l'host si
aspetta di ricevere.
Lunghezza dell'header
Finestra di ricezione: serve per il controllo di flusso dei dati: indica il numero di byte che il
destinatario disposto ad accettare
Dati
I numeri di sequenza sono relativi al flusso di byte trasmessi e non alla serie dei segmenti, perch
TCP vede i dati come un sequenza ordinata.
I numeri di riconoscimento servono per scartare o registrare in aree particolari i dati che non
seguono la consequenzialit dei messaggi.
Timeout: meccanismo utilizzato per evitare di ritrasmettere un segmento che non andato perso ma
che ancora in transito sulla rete. E' una variabile di tempo che superiore al tempo impiegato dal
segmento per fare andata e ritorno.
In caso il segmento di risposta (chiamato anche ACK) non arrivi entro il timeout, il client provvede
a reinviare il segmento. Le ritrasmissioni innescate dal timeout hanno il problema che la scadenza
pu essere relativamente lunga, aumentando il ritardo punto-punto. Fortunatamente, il mittente pu
individuare la perdita di pacchetti prima che scada il timeout, notando i cosiddetti ACK duplicati.
Se infatti il mittente riceve per tre volte lo stesso ACK, considera perso il segmento
immediatamente successivo.
Per evitare di saturare il buffer della ricezione, TCP fornisce il controllo di flusso attraverso una
variabile, mantenuta dal destinatario, chiamata finestra di ricezione, il cui scopo quello di indicare
lo spazio disponibile nel buffer di ricezione del destinatario. Essa si calcola sottraendo allo spazio
massimo del buffer la differenza tra l'ultimo messaggio letto e l'ultimo ricevuto.
Quando un host riceve un segmento TCP il cui numero di porta non corrisponde ad alcun socket,
egli trasmette uno speciale segmento di reset al mittente, indicando il fatto che non esiste il socket
desiderato.