Académique Documents
Professionnel Documents
Culture Documents
ie all'utilizzo di:
- ack (cumulativi)
- numero di sequenza
- scelta di un timeout per la ritrasmissione.
Appena un mittente vuole inviare un segmento, a quest'ultimo viene associato un
numero di sequenza.
Alla ricezione di un segmento, il ricevitore manda un segmento di ack (normale s
egmento con campo flag
settato ad 1 - l'ack in piggybacking). Il TCP supporta ack cumulativi.
Inoltre, grazie al timeout, il mittente allo scadere del timer ritrasmetter il se
gmento di cui non ha
ricevuto l'ack (il mittente considera il segmento perso). A ricezione potrebbe a
rrivare
un segmento "doppione", in questo caso grazie al numero di sequenza il ricevitor
e capisce
che si tratta di un duplicato e lo scarta.
TCP connection oriented, nel senso che prima dell'effettivo trasferimento dei da
ti
c' una fase di instaurazione della connessione. La connessione viene stabilita me
diante
l'HANDSHAKING a 3 vie. (tale meccanismo si ritrova anche in fase di chiusura del
la connessione).
Bisogna che host mittente e destinatario conoscano il numero di sequenza dell'al
tro terminale.
Si tratta di un vero e proprio "dialogo" che si svolge in tre fasi:
- prima fase: il client (lato mittente) trasmette un segmento di SYN (con il fla
g SYN settato ad 1CC-per
segnalare che si tratta di un segmento di sincronizzazione), con un numero di se
quenza scelto arbitrariamente dal
mittente, che l'initial sequence number di dell'host mittente.
-seconda fase: il ricevitore riceve il segmento di syn e manda una conferma al m
ittente (con segmento in cui
flag ACK e SYN sono settati a 1). Questo segmento conterr anche il numero di
sequenza del ricevitore e il numero di ACK che sar posto = numero di sequenza del
mittente + 1-terza fase: il client manda anch'esso un ack al ricevitore (il segmento avr flag
ack settato a 1 e flag syn settato a 0: la fase di sincronizzazione finita).
Il suo numero di sequenza sar incrementato (tcp orientato al byte e non al numero
di segmenti) e il numero di ack sar
settato = numero di sequenza del ricevitore + 1.
I segmenti utilizzati durante questa fase di instaurazione sono solitamente "sol
o header", cio non contengono dati.
TCP offre un servizio di consegna affidabile dei messaggi e ORDINATA, grazie al
numero di sequenza.
Il numero di sequenza, infatti, serve ad identificare e posizionare in ordine il
carico utile del segmento TCP (il payload
applicativo) all'interno del flusso di dati.
A ricezione ci si aspetta di ricevere il segmento successivo all'ultimo segmento
ricevuto in ordine, ovvero quel segmento il
cui sequence number = sequence number dell'ultimo pervenuto in ordine pi la dimen
sione del carico utile del segmento in attesa).
Se il sequence number ricevuto= a quello atteso il carico utile del segmento vie
ne inviato direttamente al livello soprastante.
Se il sequence number > si deduce che sono stati persi o sono in transito sulla
rete. Quindi il ricevitore riceve un segmento fuori