SlideShare a Scribd company logo
1 of 7
Download to read offline
TCP Westwood - Stima della banda
Il TCP Westwood è una variante TCP che consiste in una modifica dell’algoritmo di
controllo della finestra di trasmissione del mittente. La miglioria diventa molto significativa
sui link wireless dato che il TCPW si basa sulla stima della banda end-to-end per
discriminare la causa di perdita di pacchetti.
1. INTRODUZIONE
Al giorno d’oggi, il controllo di congestione del TCP si basa prettamente sulla perdita di
pacchetti come indicatore della congestione stessa, su qualunque tipo di link. Tuttavia, nella
porzione cablata della rete, la congestione potrebbe essere causata da un router
che inizia a perdere pacchetti; sulla porzione wireless, la causa della perdita
potrebbe essere del rumore sul canale radio. Ciò è un problema perché il TCP Reno
(TCPR) non ha i mezzi per distinguere e isolare una “congestione cablata” da una
“congestione wireless”: di conseguenza, il TCPR reagisce sempre e comunque con una
drastica riduzione della finestra di trasmissione.
Nel TCPW, il mittente monitora il tasso di ricezione degli ACK e da esso stima il
tasso di pacchetti sulla rete raggiunto in quel momento. Quando viene percepita una
perdita, il mittente utilizza la banda stimata per impostare correttamente cwnd e
ssthresh.
In questo modo, il TCPW evita le riduzioni drastiche di tali parametri e permette alla rete
di raggiungere il regime più velocemente, motivo per cui tale meccanismo è detto faster
recovery. L’utilizzo del TCPW, inoltre, non entra in conflitto con il TCPR.
Ci sono altre varianti del TCP che utilizzano la stima di banda per impostare i parametri del
TCP. Per esempio, il Bandwith Aware TCP (BA-TCP) basa le proprie misurazioni sui
router intermedi e su tali informazioni elabora anche in che modo dividere equamente la
banda tra le varie connessioni e impostare i parametri di cui sopra.
Tuttavia, questa variante viola uno dei principi su cui si basa l’idea del TCP, cioè che ogni
strato è indipendente dall’altro.
2. MISURAZIONE DELLA BANDA END-TO-END
TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio
Il design di TCPW rispetta, invece, l’assunto che il controllo di congestione debba essere
effettuato end-to-end e che la rete nel mezzo venga considerata una black box.
Innanzitutto, la sorgente deve “mettere alla prova” il link in modo progressivo,
andando a incrementare il carico in input, in modo da determinare a che tasso possa
trasmettere. Questo, finché non viene ricevuto in feedback implicito sulla saturazione,
ovvero timeout o 3DUPACK. Il fulcro di questo algoritmo risiede proprio negli ACK.
Quando un ACK arriva alla sorgente, si può affermare che questo contiene l’informazione
relativa al fatto che un certo carico di dati, corrispondente a un certo pacchetto, è
stato consegnato a destinazione. Se la trasmissione non è affetta da perdite, basta
calcolare la media dei dati consegnati nel tempo per ottenere una buona stima
della banda attualmente usata dalla sorgente.
Questa stima, inoltre, dovrebbe tener conto degli eventuali DUPACK.
Ciononostante, la sorgente non è in grado di conoscere quale segmento abbia causato il
DUPACK e quindi non può aggiornare il conteggio dei dati aggiungendo la dimensione di
tale segmento; è per questo motivo che viene utilizzata una media della dimensione
dei segmenti. Per semplicità della trattazione, si assume che tutti i segmenti abbiano stessa
dimensione: di conseguenza, si può dire che il sequence number viene incrementato
di 1 per ogni segmento.
Si procede, dunque, al calcolo della stima.
Figura 1. Campionamento della banda
Se viene ricevuto un ACK all’instante 𝑡𝑡𝑘𝑘, allora significa che una certa quantità di dati 𝑑𝑑𝑘𝑘
è stata ricevuta dal destinatario TCP. Si può misurare la banda usata per questa singola
trasmissione come:
𝑏𝑏𝑘𝑘 =
𝑑𝑑𝑘𝑘
𝑡𝑡𝑘𝑘 − 𝑡𝑡𝑘𝑘−1
dove 𝒕𝒕𝒌𝒌−𝟏𝟏 è l’istante in cui è stato ricevuto l’ACK precedente.
TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio
Dato che la congestione si verifica quando il traffico eccede la capacità del link, si adopera
un filtro passa-basso per ottenere le componenti a bassa frequenza della banda.
La scelta ricade sul discretizzare, secondo l’approsimazione di Tustin, un filtro continuo:
𝑏𝑏�𝑘𝑘 =
2𝜏𝜏
𝑡𝑡𝑘𝑘 − 𝑡𝑡𝑘𝑘−1
− 1
2𝜏𝜏
𝑡𝑡𝑘𝑘 − 𝑡𝑡𝑘𝑘−1
+ 1
𝑏𝑏�𝑘𝑘−1 +
𝑏𝑏𝑘𝑘 + 𝑏𝑏𝑘𝑘−1
2𝜏𝜏
𝑡𝑡𝑘𝑘 − 𝑡𝑡𝑘𝑘−1
+ 1
dove 𝒃𝒃𝒌𝒌
� è la stima ottenuta per l’istante 𝒕𝒕𝒌𝒌 e
𝟏𝟏
𝝉𝝉
è la frequenza di taglio del filtro.
Se si considera un tempo di interarrivo (𝒕𝒕𝒌𝒌 − 𝒕𝒕𝒌𝒌−𝟏𝟏) costante, la scrittura si riduce a:
𝑏𝑏�𝑘𝑘 = 𝑎𝑎𝑏𝑏�𝑘𝑘−1 +
(1 − 𝑎𝑎)
2
[𝑏𝑏𝑘𝑘 + 𝑏𝑏𝑘𝑘−1] (𝑎𝑎 = 0.9)
È possibile osservare che il valore 𝒃𝒃�𝒌𝒌 dipende, per il 90%, dal precedente valore
stimato, più una media aritmetica delle due ultime due misurazioni.
Sebbene, comunque, questo filtro sia utile per comprendere in che modo funzioni il calcolo
della stima, non può essere utilizzato nelle reti reali perché il tempo di interarrivo
non è costante. Infatti, quando tale valore aumenta, l’ultima stima 𝑏𝑏�𝑘𝑘−1 inizia a perdere
significato, dato che rappresenta un valore più vecchio, mentre aumenta la rilevanza degli
ultimi due campioni. Questo è esattamente ciò che accade col filtro: il coefficiente ‘𝒂𝒂’
diminuisce quando aumenta il tempo di interarrivo.
Si consideri ora la frequenza di taglio. Un filtro con una frequenza di taglio
1
𝜏𝜏
va a tagliare
tutte le componenti in frequenza al di sopra di tale valore. Secondo il teorema di Nyquist,
per campionare un segnale con una banda di
𝟏𝟏
𝝉𝝉
, è necessario un passo di
campionamento di
𝝉𝝉
𝟐𝟐
. Tuttavia, dato che la ricezione degli ACK potrebbe essere irregolare,
diventa difficile rispettare il vincolo imposto dal teorema. Dunque, si stabilisce che, se è
trascorso un tempo:
𝜏𝜏
𝑚𝑚
(𝑚𝑚 ≥ 2)
dall’ultimo ACK ricevuto senza averne ricevuto uno nuovo, il filtro assume un campione
virtuale 𝑏𝑏𝑘𝑘 = 0.
È per questo motivo che in Figura 1. si presenta un campione senza dicitura. Negli istanti
che intercorrono tra 𝑡𝑡𝑘𝑘 e 𝑡𝑡𝑘𝑘+𝑛𝑛−1 non viene ricevuto nessun ACK, dunque viene assunta una
banda 𝑏𝑏𝑘𝑘 = 0.
TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio
Come affermato precedentemente, i DUPACK dovrebbero essere conteggiati all’interno
della stima della banda, dato che il loro arrivo indica un segmento correttamente
ricevuto dal destinatario, sebbene in ordine errato. Tuttavia, si considera il
DUPACK come sempre e solo un ACK (quello originale) dato che il segmento di riferimento
è stato già conteggiato. Il problema si presenta nel momento in cui è l’ACK originale a
essere in ritardo. Combinare, simultaneamente, DUPACK e ACK ritardati, potrebbe
distruggere il processo di stima della banda.
Prima di proseguire ulteriormente, comunque, è necessario ricordare due aspetti necessari a
risolvere tale problematica:
• la sorgente deve tener traccia del numero di DUPACK arrivati prima che
nuovi segmenti vengano riscontrati
• la sorgente deve capire quando un ACK sta ritardando e deve agire di
conseguenza
L’approccio usato per risolvere questi due problemi congiuntamente, prende il nome di
AckedCount.
PROCEDURE AckedCount
cumul_ack = current_ack_segno – last_ack_segno;
if (cumul_ack == 0)
accounted_for++;
cumul_ack = 1;
endif
if (cumul_ack > 1)
if (accounted_for >= cumul_ack)
accounted_for = accounted_for – cumul_ack;
cumul_ack = 1;
else if (accounted_for < cumul_ack)
cumul_ack = cumul_ack - accounted_for;
accounted_for = 0;
endif
endif
last_ack_segno = current_ack_segno;
acked = cumul_ack;
return (acked);
END PROCEDURE
TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio
La variabile chiave è accounted, che tiene traccia dei DUPACK ricevuti. Quando viene
ricevuto un ACK, viene determinato il numero di segmenti che riscontra (cumul_ack): se
tale valore è nullo, si tratta chiaramente di un DUPACK e conta sempre come un segmento
riscontrato; al contrario, se il valore è maggiore di 1, allora l’ACK ricevuto è un ACK
ritardatario oppure un ACK arrivato dopo una ritrasmissione: in tal caso il numero di
segmenti deve essere confrontato con quelli già riscontrati.
Se l’ACK ricevuto riscontra meno pacchetti di quelli attesi, significa che alcuni di questi
sono stati già riscontrati col DUPACK e non vanno conteggiati ancora. Al
contrario, significa che alcuni sono stati riscontrati dal DUPACK altri dall’ACK
ricevuto.
TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio
3. IMPLEMENTAZIONE DEL TCP WESTWOOD
L’impostazione delle variabili cwnd e ssthresh utilizzando il TCPW, segue due modalità.
Quella di seguito riguarda la gestione di n ACK duplicati (pseudocodice):
if (n DUPACK ricevuti)
ssthresh = (BWE * RTTmin) /seg_size;
if (cwnd > ssthresh) /*congestion-avoidance*/
cwnd = sstresh;
endif
endif
dove BWE è la banda stimata, RTTmin è il più piccolo RTT misurato, seg_size
è la lunghezza del segmento espressa in bit.
Quando vengono ricevuti n DUPACK, significa che si è raggiunta la capacità della rete:
ssthresh viene impostato della stessa dimensione disponibile sul bottleneck quando il buffer
è vuoto (BWE * RTTmin), poi cwnd viene posto uguale a ssthresh e si rientra nuovamente
in congestion-avoidance. Ne consegue, che anche in slow-start, cwnd viene incrementato
esponenzialmente. Si sceglie RTTmin in modo che la coda possa drenarsi in seguito a una
congestione.
Quella di seguito riguarda la gestione del timeout (pseudocodice):
if (timeout)
ssthresh = (BWE * RTTmin) /seg_size;
if (ssthresh < 2) /*congestion-avoidance*/
sstresh = 2;
endif
cwnd = 1;
endif
Dopo un timeout, sia cwnd che c ssthresh vengono impostati a 1 e BWE rispettivamente,
quindi viene mantenuto il comportamento del TCPR ma con faster recovery, perché
si imposta già sshtresh alla banda disponibile al momento del timeout.
TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio
Un importante obiettivo del TCPW, come di qualsiasi implementazione del TCP, è l’utilizzo
equilibrato della banda. Si considerino due connessioni con lo stesso RTT e si supponga
che un RTT corrisponda a X trasmissioni e che il link bottleneck abbia X buffer.
La connessione A inizia prima. La sua finestra “cicla” da X a 2X e ogni ciclo termina con un
overflow. Più tardi, la connessione B inizia prima in slow-start e poi in congestion-avoidance.
In congestion-avoidance, le finestre di A e B crescono, approssimativamente, con
lo stesso rate, cioè un segmento per RTT. Nel momento in cui si raggiunge l’overflow,
la finestra ha dimensione:
𝑊𝑊𝑖𝑖 = 𝑅𝑅𝑖𝑖 �
𝑏𝑏
𝐶𝐶
+ 𝑅𝑅𝑅𝑅𝑅𝑅�
dove R è il rate raggiunto, b è la dimensione del buffer del bottleneck e C è la
capacità del link bottleneck. Dopo l’overflow, il TCPW riduce alla finestra alla seguente
dimensione:
𝑊𝑊𝑖𝑖 = 𝑅𝑅𝑖𝑖 (𝑅𝑅𝑅𝑅𝑅𝑅)
Il rapporto
𝑊𝑊 𝐵𝐵
𝑊𝑊 𝐴𝐴
continua a crescere anche durante la congestion-avoidance. L’equilibrio viene
raggiunto quando le due connessioni hanno la stessa finestra e la stessa banda.

More Related Content

What's hot

Accesso iniziale nei sistemi a onde millimetriche
Accesso iniziale nei sistemi a onde millimetricheAccesso iniziale nei sistemi a onde millimetriche
Accesso iniziale nei sistemi a onde millimetricheNicolLaMura
 
Calcolo delle prestazioni di un sistema di comunicazione numerico con modulaz...
Calcolo delle prestazioni di un sistema di comunicazione numerico con modulaz...Calcolo delle prestazioni di un sistema di comunicazione numerico con modulaz...
Calcolo delle prestazioni di un sistema di comunicazione numerico con modulaz...Tullio Emilio Di Simone
 
Townet e il Tdma
Townet e il TdmaTownet e il Tdma
Townet e il TdmaTownet
 
Thermal Hydraulics of the primary circuit
Thermal Hydraulics  of the primary circuitThermal Hydraulics  of the primary circuit
Thermal Hydraulics of the primary circuitSabinoMiani
 
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...Andrea Cannella
 
Summary of "Cache Me If You Can: Effects of DNS Time-to-Live
Summary of "Cache Me If You Can: Effects of DNS Time-to-LiveSummary of "Cache Me If You Can: Effects of DNS Time-to-Live
Summary of "Cache Me If You Can: Effects of DNS Time-to-LiveAndreaZennaro3
 

What's hot (7)

Accesso iniziale nei sistemi a onde millimetriche
Accesso iniziale nei sistemi a onde millimetricheAccesso iniziale nei sistemi a onde millimetriche
Accesso iniziale nei sistemi a onde millimetriche
 
Calcolo delle prestazioni di un sistema di comunicazione numerico con modulaz...
Calcolo delle prestazioni di un sistema di comunicazione numerico con modulaz...Calcolo delle prestazioni di un sistema di comunicazione numerico con modulaz...
Calcolo delle prestazioni di un sistema di comunicazione numerico con modulaz...
 
Prot-09 pchar
Prot-09 pcharProt-09 pchar
Prot-09 pchar
 
Townet e il Tdma
Townet e il TdmaTownet e il Tdma
Townet e il Tdma
 
Thermal Hydraulics of the primary circuit
Thermal Hydraulics  of the primary circuitThermal Hydraulics  of the primary circuit
Thermal Hydraulics of the primary circuit
 
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
Seminario Basi di Dati - Architetture Distribuite - Università degli Studi di...
 
Summary of "Cache Me If You Can: Effects of DNS Time-to-Live
Summary of "Cache Me If You Can: Effects of DNS Time-to-LiveSummary of "Cache Me If You Can: Effects of DNS Time-to-Live
Summary of "Cache Me If You Can: Effects of DNS Time-to-Live
 

Similar to Tcp Westwood - Stima della banda

5 Protocolli Trasporto Parte3
5 Protocolli Trasporto Parte35 Protocolli Trasporto Parte3
5 Protocolli Trasporto Parte3Majong DevJfu
 
SAM: Abilitazione Pratica dell’Accesso Spaziale Multiplo nelle Wireless LAN
SAM: Abilitazione Pratica dell’Accesso Spaziale Multiplo nelle Wireless LANSAM: Abilitazione Pratica dell’Accesso Spaziale Multiplo nelle Wireless LAN
SAM: Abilitazione Pratica dell’Accesso Spaziale Multiplo nelle Wireless LANCarloPodbersig
 
B Esercizi Tcp
B Esercizi TcpB Esercizi Tcp
B Esercizi Tcpacapone
 
Clink
ClinkClink
Clinkh4f
 
Extended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet NetworkExtended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet NetworkOlesiaRonzon
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasportoacapone
 
Tcp Satellite
Tcp SatelliteTcp Satellite
Tcp Satellitepsegat
 
13 Linux Network Comandi
13 Linux Network Comandi13 Linux Network Comandi
13 Linux Network ComandiMauro Ferrigno
 
Presentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti RPresentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti Rguest6ac2c
 
Lumit.Basic.Knowledge.Training.Introduzione.Tcp Ip
Lumit.Basic.Knowledge.Training.Introduzione.Tcp IpLumit.Basic.Knowledge.Training.Introduzione.Tcp Ip
Lumit.Basic.Knowledge.Training.Introduzione.Tcp IpLuca Astori
 
Modellizzazione e stima delle capacità del canale a onde millimetriche
Modellizzazione e stima delle capacità del canale a onde millimetricheModellizzazione e stima delle capacità del canale a onde millimetriche
Modellizzazione e stima delle capacità del canale a onde millimetricheRiccardoPestrin
 
8 Routing
8 Routing8 Routing
8 Routingacapone
 
Circuito RC in regime transitorio
Circuito RC in regime transitorioCircuito RC in regime transitorio
Circuito RC in regime transitorioClaudio Cancelli
 
Sistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazioneSistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazioneDavide Ciambelli
 

Similar to Tcp Westwood - Stima della banda (20)

5 Protocolli Trasporto Parte3
5 Protocolli Trasporto Parte35 Protocolli Trasporto Parte3
5 Protocolli Trasporto Parte3
 
SAM: Abilitazione Pratica dell’Accesso Spaziale Multiplo nelle Wireless LAN
SAM: Abilitazione Pratica dell’Accesso Spaziale Multiplo nelle Wireless LANSAM: Abilitazione Pratica dell’Accesso Spaziale Multiplo nelle Wireless LAN
SAM: Abilitazione Pratica dell’Accesso Spaziale Multiplo nelle Wireless LAN
 
B Esercizi Tcp
B Esercizi TcpB Esercizi Tcp
B Esercizi Tcp
 
Clink
ClinkClink
Clink
 
Elaborato
ElaboratoElaborato
Elaborato
 
DataLink LAN
DataLink LANDataLink LAN
DataLink LAN
 
Livello Data Link
Livello Data LinkLivello Data Link
Livello Data Link
 
Extended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet NetworkExtended Summary of Optimized Design of a Human Intranet Network
Extended Summary of Optimized Design of a Human Intranet Network
 
3 Livello Trasporto
3 Livello Trasporto3 Livello Trasporto
3 Livello Trasporto
 
Kasiski
KasiskiKasiski
Kasiski
 
Tcp Satellite
Tcp SatelliteTcp Satellite
Tcp Satellite
 
Car accident detector
Car accident detectorCar accident detector
Car accident detector
 
13 Linux Network Comandi
13 Linux Network Comandi13 Linux Network Comandi
13 Linux Network Comandi
 
Pathneck
PathneckPathneck
Pathneck
 
Presentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti RPresentazione Tesi Elisa Benetti R
Presentazione Tesi Elisa Benetti R
 
Lumit.Basic.Knowledge.Training.Introduzione.Tcp Ip
Lumit.Basic.Knowledge.Training.Introduzione.Tcp IpLumit.Basic.Knowledge.Training.Introduzione.Tcp Ip
Lumit.Basic.Knowledge.Training.Introduzione.Tcp Ip
 
Modellizzazione e stima delle capacità del canale a onde millimetriche
Modellizzazione e stima delle capacità del canale a onde millimetricheModellizzazione e stima delle capacità del canale a onde millimetriche
Modellizzazione e stima delle capacità del canale a onde millimetriche
 
8 Routing
8 Routing8 Routing
8 Routing
 
Circuito RC in regime transitorio
Circuito RC in regime transitorioCircuito RC in regime transitorio
Circuito RC in regime transitorio
 
Sistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazioneSistema elaboratore in multiprogrammazione
Sistema elaboratore in multiprogrammazione
 

More from Antonio Tandoi

Cibi omonimi a personaggi storici
Cibi omonimi a personaggi storiciCibi omonimi a personaggi storici
Cibi omonimi a personaggi storiciAntonio Tandoi
 
La Rosa Bianca, i ragazzi che si opposero a Hitler
La Rosa Bianca, i ragazzi che si opposero a HitlerLa Rosa Bianca, i ragazzi che si opposero a Hitler
La Rosa Bianca, i ragazzi che si opposero a HitlerAntonio Tandoi
 
Dante in veste di medico - La medicina nella Divina Commedia
Dante in veste di medico - La medicina nella Divina CommediaDante in veste di medico - La medicina nella Divina Commedia
Dante in veste di medico - La medicina nella Divina CommediaAntonio Tandoi
 
La seconda guerra punica - Storia completa
La seconda guerra punica - Storia completaLa seconda guerra punica - Storia completa
La seconda guerra punica - Storia completaAntonio Tandoi
 
Grecia contro Cartagine: la battaglia di Hymera
Grecia contro Cartagine: la battaglia di HymeraGrecia contro Cartagine: la battaglia di Hymera
Grecia contro Cartagine: la battaglia di HymeraAntonio Tandoi
 
Storia dei simboli matematici
Storia dei simboli matematiciStoria dei simboli matematici
Storia dei simboli matematiciAntonio Tandoi
 
Situazione politica del Venezuela
Situazione politica del VenezuelaSituazione politica del Venezuela
Situazione politica del VenezuelaAntonio Tandoi
 
Dispensa di Cyber Security
Dispensa di Cyber SecurityDispensa di Cyber Security
Dispensa di Cyber SecurityAntonio Tandoi
 
Il sistema visivo umano
Il sistema visivo umanoIl sistema visivo umano
Il sistema visivo umanoAntonio Tandoi
 
Il modello standard della materia
Il modello standard della materiaIl modello standard della materia
Il modello standard della materiaAntonio Tandoi
 
Funzionamento della Scala Richter
Funzionamento della Scala RichterFunzionamento della Scala Richter
Funzionamento della Scala RichterAntonio Tandoi
 
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...Antonio Tandoi
 
Page ranking - Portare ordine sul web
Page ranking - Portare ordine sul webPage ranking - Portare ordine sul web
Page ranking - Portare ordine sul webAntonio Tandoi
 
Ingegneria della conoscenza
Ingegneria della conoscenzaIngegneria della conoscenza
Ingegneria della conoscenzaAntonio Tandoi
 
Funzionamento del Narrow-Band IoT
Funzionamento del Narrow-Band IoTFunzionamento del Narrow-Band IoT
Funzionamento del Narrow-Band IoTAntonio Tandoi
 

More from Antonio Tandoi (20)

Cibi omonimi a personaggi storici
Cibi omonimi a personaggi storiciCibi omonimi a personaggi storici
Cibi omonimi a personaggi storici
 
La Rosa Bianca, i ragazzi che si opposero a Hitler
La Rosa Bianca, i ragazzi che si opposero a HitlerLa Rosa Bianca, i ragazzi che si opposero a Hitler
La Rosa Bianca, i ragazzi che si opposero a Hitler
 
Dante in veste di medico - La medicina nella Divina Commedia
Dante in veste di medico - La medicina nella Divina CommediaDante in veste di medico - La medicina nella Divina Commedia
Dante in veste di medico - La medicina nella Divina Commedia
 
La corsa al Polo Sud
La corsa al Polo SudLa corsa al Polo Sud
La corsa al Polo Sud
 
La seconda guerra punica - Storia completa
La seconda guerra punica - Storia completaLa seconda guerra punica - Storia completa
La seconda guerra punica - Storia completa
 
Grecia contro Cartagine: la battaglia di Hymera
Grecia contro Cartagine: la battaglia di HymeraGrecia contro Cartagine: la battaglia di Hymera
Grecia contro Cartagine: la battaglia di Hymera
 
Storia dei simboli matematici
Storia dei simboli matematiciStoria dei simboli matematici
Storia dei simboli matematici
 
Situazione politica del Venezuela
Situazione politica del VenezuelaSituazione politica del Venezuela
Situazione politica del Venezuela
 
Dispensa di Cyber Security
Dispensa di Cyber SecurityDispensa di Cyber Security
Dispensa di Cyber Security
 
Dispensa di PL-SQL
Dispensa di PL-SQLDispensa di PL-SQL
Dispensa di PL-SQL
 
Il sistema visivo umano
Il sistema visivo umanoIl sistema visivo umano
Il sistema visivo umano
 
Il modello standard della materia
Il modello standard della materiaIl modello standard della materia
Il modello standard della materia
 
Funzionamento della Scala Richter
Funzionamento della Scala RichterFunzionamento della Scala Richter
Funzionamento della Scala Richter
 
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
Un sistema di video streaming per contenuti streaming immersivi e riduzione d...
 
QR Code Security
QR Code SecurityQR Code Security
QR Code Security
 
Page ranking - Portare ordine sul web
Page ranking - Portare ordine sul webPage ranking - Portare ordine sul web
Page ranking - Portare ordine sul web
 
Descrizione di NO-SQL
Descrizione di NO-SQLDescrizione di NO-SQL
Descrizione di NO-SQL
 
Ingegneria della conoscenza
Ingegneria della conoscenzaIngegneria della conoscenza
Ingegneria della conoscenza
 
Funzionamento di LTE
Funzionamento di LTEFunzionamento di LTE
Funzionamento di LTE
 
Funzionamento del Narrow-Band IoT
Funzionamento del Narrow-Band IoTFunzionamento del Narrow-Band IoT
Funzionamento del Narrow-Band IoT
 

Tcp Westwood - Stima della banda

  • 1. TCP Westwood - Stima della banda Il TCP Westwood è una variante TCP che consiste in una modifica dell’algoritmo di controllo della finestra di trasmissione del mittente. La miglioria diventa molto significativa sui link wireless dato che il TCPW si basa sulla stima della banda end-to-end per discriminare la causa di perdita di pacchetti. 1. INTRODUZIONE Al giorno d’oggi, il controllo di congestione del TCP si basa prettamente sulla perdita di pacchetti come indicatore della congestione stessa, su qualunque tipo di link. Tuttavia, nella porzione cablata della rete, la congestione potrebbe essere causata da un router che inizia a perdere pacchetti; sulla porzione wireless, la causa della perdita potrebbe essere del rumore sul canale radio. Ciò è un problema perché il TCP Reno (TCPR) non ha i mezzi per distinguere e isolare una “congestione cablata” da una “congestione wireless”: di conseguenza, il TCPR reagisce sempre e comunque con una drastica riduzione della finestra di trasmissione. Nel TCPW, il mittente monitora il tasso di ricezione degli ACK e da esso stima il tasso di pacchetti sulla rete raggiunto in quel momento. Quando viene percepita una perdita, il mittente utilizza la banda stimata per impostare correttamente cwnd e ssthresh. In questo modo, il TCPW evita le riduzioni drastiche di tali parametri e permette alla rete di raggiungere il regime più velocemente, motivo per cui tale meccanismo è detto faster recovery. L’utilizzo del TCPW, inoltre, non entra in conflitto con il TCPR. Ci sono altre varianti del TCP che utilizzano la stima di banda per impostare i parametri del TCP. Per esempio, il Bandwith Aware TCP (BA-TCP) basa le proprie misurazioni sui router intermedi e su tali informazioni elabora anche in che modo dividere equamente la banda tra le varie connessioni e impostare i parametri di cui sopra. Tuttavia, questa variante viola uno dei principi su cui si basa l’idea del TCP, cioè che ogni strato è indipendente dall’altro. 2. MISURAZIONE DELLA BANDA END-TO-END
  • 2. TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio Il design di TCPW rispetta, invece, l’assunto che il controllo di congestione debba essere effettuato end-to-end e che la rete nel mezzo venga considerata una black box. Innanzitutto, la sorgente deve “mettere alla prova” il link in modo progressivo, andando a incrementare il carico in input, in modo da determinare a che tasso possa trasmettere. Questo, finché non viene ricevuto in feedback implicito sulla saturazione, ovvero timeout o 3DUPACK. Il fulcro di questo algoritmo risiede proprio negli ACK. Quando un ACK arriva alla sorgente, si può affermare che questo contiene l’informazione relativa al fatto che un certo carico di dati, corrispondente a un certo pacchetto, è stato consegnato a destinazione. Se la trasmissione non è affetta da perdite, basta calcolare la media dei dati consegnati nel tempo per ottenere una buona stima della banda attualmente usata dalla sorgente. Questa stima, inoltre, dovrebbe tener conto degli eventuali DUPACK. Ciononostante, la sorgente non è in grado di conoscere quale segmento abbia causato il DUPACK e quindi non può aggiornare il conteggio dei dati aggiungendo la dimensione di tale segmento; è per questo motivo che viene utilizzata una media della dimensione dei segmenti. Per semplicità della trattazione, si assume che tutti i segmenti abbiano stessa dimensione: di conseguenza, si può dire che il sequence number viene incrementato di 1 per ogni segmento. Si procede, dunque, al calcolo della stima. Figura 1. Campionamento della banda Se viene ricevuto un ACK all’instante 𝑡𝑡𝑘𝑘, allora significa che una certa quantità di dati 𝑑𝑑𝑘𝑘 è stata ricevuta dal destinatario TCP. Si può misurare la banda usata per questa singola trasmissione come: 𝑏𝑏𝑘𝑘 = 𝑑𝑑𝑘𝑘 𝑡𝑡𝑘𝑘 − 𝑡𝑡𝑘𝑘−1 dove 𝒕𝒕𝒌𝒌−𝟏𝟏 è l’istante in cui è stato ricevuto l’ACK precedente.
  • 3. TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio Dato che la congestione si verifica quando il traffico eccede la capacità del link, si adopera un filtro passa-basso per ottenere le componenti a bassa frequenza della banda. La scelta ricade sul discretizzare, secondo l’approsimazione di Tustin, un filtro continuo: 𝑏𝑏�𝑘𝑘 = 2𝜏𝜏 𝑡𝑡𝑘𝑘 − 𝑡𝑡𝑘𝑘−1 − 1 2𝜏𝜏 𝑡𝑡𝑘𝑘 − 𝑡𝑡𝑘𝑘−1 + 1 𝑏𝑏�𝑘𝑘−1 + 𝑏𝑏𝑘𝑘 + 𝑏𝑏𝑘𝑘−1 2𝜏𝜏 𝑡𝑡𝑘𝑘 − 𝑡𝑡𝑘𝑘−1 + 1 dove 𝒃𝒃𝒌𝒌 � è la stima ottenuta per l’istante 𝒕𝒕𝒌𝒌 e 𝟏𝟏 𝝉𝝉 è la frequenza di taglio del filtro. Se si considera un tempo di interarrivo (𝒕𝒕𝒌𝒌 − 𝒕𝒕𝒌𝒌−𝟏𝟏) costante, la scrittura si riduce a: 𝑏𝑏�𝑘𝑘 = 𝑎𝑎𝑏𝑏�𝑘𝑘−1 + (1 − 𝑎𝑎) 2 [𝑏𝑏𝑘𝑘 + 𝑏𝑏𝑘𝑘−1] (𝑎𝑎 = 0.9) È possibile osservare che il valore 𝒃𝒃�𝒌𝒌 dipende, per il 90%, dal precedente valore stimato, più una media aritmetica delle due ultime due misurazioni. Sebbene, comunque, questo filtro sia utile per comprendere in che modo funzioni il calcolo della stima, non può essere utilizzato nelle reti reali perché il tempo di interarrivo non è costante. Infatti, quando tale valore aumenta, l’ultima stima 𝑏𝑏�𝑘𝑘−1 inizia a perdere significato, dato che rappresenta un valore più vecchio, mentre aumenta la rilevanza degli ultimi due campioni. Questo è esattamente ciò che accade col filtro: il coefficiente ‘𝒂𝒂’ diminuisce quando aumenta il tempo di interarrivo. Si consideri ora la frequenza di taglio. Un filtro con una frequenza di taglio 1 𝜏𝜏 va a tagliare tutte le componenti in frequenza al di sopra di tale valore. Secondo il teorema di Nyquist, per campionare un segnale con una banda di 𝟏𝟏 𝝉𝝉 , è necessario un passo di campionamento di 𝝉𝝉 𝟐𝟐 . Tuttavia, dato che la ricezione degli ACK potrebbe essere irregolare, diventa difficile rispettare il vincolo imposto dal teorema. Dunque, si stabilisce che, se è trascorso un tempo: 𝜏𝜏 𝑚𝑚 (𝑚𝑚 ≥ 2) dall’ultimo ACK ricevuto senza averne ricevuto uno nuovo, il filtro assume un campione virtuale 𝑏𝑏𝑘𝑘 = 0. È per questo motivo che in Figura 1. si presenta un campione senza dicitura. Negli istanti che intercorrono tra 𝑡𝑡𝑘𝑘 e 𝑡𝑡𝑘𝑘+𝑛𝑛−1 non viene ricevuto nessun ACK, dunque viene assunta una banda 𝑏𝑏𝑘𝑘 = 0.
  • 4. TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio Come affermato precedentemente, i DUPACK dovrebbero essere conteggiati all’interno della stima della banda, dato che il loro arrivo indica un segmento correttamente ricevuto dal destinatario, sebbene in ordine errato. Tuttavia, si considera il DUPACK come sempre e solo un ACK (quello originale) dato che il segmento di riferimento è stato già conteggiato. Il problema si presenta nel momento in cui è l’ACK originale a essere in ritardo. Combinare, simultaneamente, DUPACK e ACK ritardati, potrebbe distruggere il processo di stima della banda. Prima di proseguire ulteriormente, comunque, è necessario ricordare due aspetti necessari a risolvere tale problematica: • la sorgente deve tener traccia del numero di DUPACK arrivati prima che nuovi segmenti vengano riscontrati • la sorgente deve capire quando un ACK sta ritardando e deve agire di conseguenza L’approccio usato per risolvere questi due problemi congiuntamente, prende il nome di AckedCount. PROCEDURE AckedCount cumul_ack = current_ack_segno – last_ack_segno; if (cumul_ack == 0) accounted_for++; cumul_ack = 1; endif if (cumul_ack > 1) if (accounted_for >= cumul_ack) accounted_for = accounted_for – cumul_ack; cumul_ack = 1; else if (accounted_for < cumul_ack) cumul_ack = cumul_ack - accounted_for; accounted_for = 0; endif endif last_ack_segno = current_ack_segno; acked = cumul_ack; return (acked); END PROCEDURE
  • 5. TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio La variabile chiave è accounted, che tiene traccia dei DUPACK ricevuti. Quando viene ricevuto un ACK, viene determinato il numero di segmenti che riscontra (cumul_ack): se tale valore è nullo, si tratta chiaramente di un DUPACK e conta sempre come un segmento riscontrato; al contrario, se il valore è maggiore di 1, allora l’ACK ricevuto è un ACK ritardatario oppure un ACK arrivato dopo una ritrasmissione: in tal caso il numero di segmenti deve essere confrontato con quelli già riscontrati. Se l’ACK ricevuto riscontra meno pacchetti di quelli attesi, significa che alcuni di questi sono stati già riscontrati col DUPACK e non vanno conteggiati ancora. Al contrario, significa che alcuni sono stati riscontrati dal DUPACK altri dall’ACK ricevuto.
  • 6. TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio 3. IMPLEMENTAZIONE DEL TCP WESTWOOD L’impostazione delle variabili cwnd e ssthresh utilizzando il TCPW, segue due modalità. Quella di seguito riguarda la gestione di n ACK duplicati (pseudocodice): if (n DUPACK ricevuti) ssthresh = (BWE * RTTmin) /seg_size; if (cwnd > ssthresh) /*congestion-avoidance*/ cwnd = sstresh; endif endif dove BWE è la banda stimata, RTTmin è il più piccolo RTT misurato, seg_size è la lunghezza del segmento espressa in bit. Quando vengono ricevuti n DUPACK, significa che si è raggiunta la capacità della rete: ssthresh viene impostato della stessa dimensione disponibile sul bottleneck quando il buffer è vuoto (BWE * RTTmin), poi cwnd viene posto uguale a ssthresh e si rientra nuovamente in congestion-avoidance. Ne consegue, che anche in slow-start, cwnd viene incrementato esponenzialmente. Si sceglie RTTmin in modo che la coda possa drenarsi in seguito a una congestione. Quella di seguito riguarda la gestione del timeout (pseudocodice): if (timeout) ssthresh = (BWE * RTTmin) /seg_size; if (ssthresh < 2) /*congestion-avoidance*/ sstresh = 2; endif cwnd = 1; endif Dopo un timeout, sia cwnd che c ssthresh vengono impostati a 1 e BWE rispettivamente, quindi viene mantenuto il comportamento del TCPR ma con faster recovery, perché si imposta già sshtresh alla banda disponibile al momento del timeout.
  • 7. TCP Westwood: Band Estimation for Wireless Links | Mascolo, Casetti, Gerla Tandoi Antonio Un importante obiettivo del TCPW, come di qualsiasi implementazione del TCP, è l’utilizzo equilibrato della banda. Si considerino due connessioni con lo stesso RTT e si supponga che un RTT corrisponda a X trasmissioni e che il link bottleneck abbia X buffer. La connessione A inizia prima. La sua finestra “cicla” da X a 2X e ogni ciclo termina con un overflow. Più tardi, la connessione B inizia prima in slow-start e poi in congestion-avoidance. In congestion-avoidance, le finestre di A e B crescono, approssimativamente, con lo stesso rate, cioè un segmento per RTT. Nel momento in cui si raggiunge l’overflow, la finestra ha dimensione: 𝑊𝑊𝑖𝑖 = 𝑅𝑅𝑖𝑖 � 𝑏𝑏 𝐶𝐶 + 𝑅𝑅𝑅𝑅𝑅𝑅� dove R è il rate raggiunto, b è la dimensione del buffer del bottleneck e C è la capacità del link bottleneck. Dopo l’overflow, il TCPW riduce alla finestra alla seguente dimensione: 𝑊𝑊𝑖𝑖 = 𝑅𝑅𝑖𝑖 (𝑅𝑅𝑅𝑅𝑅𝑅) Il rapporto 𝑊𝑊 𝐵𝐵 𝑊𝑊 𝐴𝐴 continua a crescere anche durante la congestion-avoidance. L’equilibrio viene raggiunto quando le due connessioni hanno la stessa finestra e la stessa banda.