Sei sulla pagina 1di 2

SCAMBIO DATI

TCP implementa, per lo scambio dei dati, un meccanismo di sliding window: si utilizza quindi una finestra di
trasmissione, la dimensione della quale viene riferita al sender dal receiver in base ai meccanismi di controllo
di flusso e di congestione; ogni volta che dei byte vengono inviati, la finestra scorre verso quelli successivi
(selfclocking).

Il rate di trasferimento dei dati definito come

Dove W indica la dimensione della finestra, mentre RTT indica il round trip time, vale a dire il tempo che il
pacchetto impiega per andare e tornare dal destinatario.

TCP un protocollo affidabile, quindi implementa un sistema di controllo sul segmento, che potrebbe andar
perso o essere corrotto. Perci si utilizzano due meccanismi differenti:

- 3DUPACK si procede alla ritrasmissione del pacchetto qualora si riscontrino 3 ACK duplicati;
- RTO si implementa un timer scaduto il quale si richiede linvio del pacchetto.

In ogni caso necessaria la stima di RTT, che non pu essere nota a priori; definiamo la stima del k-
esimo RTT, calcolato come:

= 1 + (1 )

Dove 1 la stima effettuata al passo precedente, il round trip time effettivamente calcolato.
Si tratta di una media esponenziale pesata, in cui il parametro a utilizzato per la creazione del filtro: infatti,
la stima del RTT pu essere analiticamente vista come lo spettro del RTT, campionato e filtrato passabasso;
7
in genere = 8.
Su calcola quindi la deviazione standard, ossia lo scostamento quadratico medio dalla media come:

= 1 + (1 ) | |
3
Dove = 4.

Abbiamo parlato del RTO come uno dei meccanismi implementati per il rilevamento e la conseguente
richiesta di ritrasmissione dei pacchetti corretti o non arrivati; la stima dellRTO anche essa importante e
deve essere effettuata ogni qualvolta si ricalcola lRTT:

= + 4

Controllo di flusso
Il livello 4, e in particolare il TCP, prevedono un meccanismo di controllo di flusso che permette di
ponderare la finestra di trasmissione in base alle dimensioni del buffer, o meglio, in base alle dimensioni
dello spazio rimanente nel buffer. A tal proposito si utilizza il campo awnd, advertising window, in cui il
receiver annota di volta in volta lo spazio restante nel buffer, calcolato quindi come:

= [ ]

Il sender, quindi, setta la finestra di trasmissione in modo tale che:

=
Controllo di Congestione
Il livello 4, inoltre, implementa un meccanismo di controllo di congestione: effettua, cio, un controllo sul
flusso dei dati in modo da evitare che si verifichi congestione, ossia che venga utilizzata pienamente la banda
disponibile, Si utilizza una variabile dambiente (lato server), cwnd, valutata in base ad un algoritmo
specifico e misurata in MSS, Maximum Segment Size: la finestra di trasmissione viene quindi settata in
modo che = min(, ).
Lalgoritmo per la valutazione del cwnd il AIMD (Additive Increase Multiplicative Decrease): lidea di
base che se la rete va bene, si incrementa il rate di trasmissione in modo graduale, mentre se si verifica un
episodio di congestione, si procede ad un decremento brusco del rate; la congestione si pu rilevare mediante
i meccanismi di 3DUPACK e di RTO.
Precisamente, esistono due zone separate dal SSTRESH (Slow Start Treshold):

- Slow Start incremento graduale della cwnd, ovvero poich viene incrementata di 1 ogni
riscontro, per ogni RTT quindi viene raddoppiata;
1
- Congestion Avoidance incremento lento, viene incrementata di ogni riscontro, quindi di 1

per ogni RTT.

Per reimpostare le variabili di ambiente si utilizza uno dei seguenti algoritmi:

TCP TAHOE avvenuto un 3DUPACK o la scadenza di un RTO, viene impostato =



2
e = 1. Si riprende, quindi, dallo slow start con le nuove variabili. Lunico difetto che
non distingue i due eventi.
TCP RENO avvenuto un 3DUPACK (evento meno grave visto che ancora vi ricezione), si

imposta = 2 e = dimezzando la finestra e non ripartendo dallo slow
start; se per si verificano pi 3DUPACK nello stesso RTT, la finestra rischia di essere ristretta in
modo importante; in caso di RTO si procede come TCP TAHOE.
TCP NEW RENO come TCP RENO, ma con la differenza che in caso di 3DUPACK, la finestra
pu essere dimezzata solo una volta nel corso dello stesso RTT.