QoS a livello Network

Transcript

QoS a livello Network
QoS a livello Network
Paolo Campegiani
[email protected]
http://www.ce.uniroma2.it
– p.1
IP: un protocollo best effort
Il protocollo IP é un protocollo best effort:
non c’é garanzia che i pacchetti spediti raggiungano la
destinazione
i tempi per la consegna possono grandemente variare
alcuni pacchetti possono andare persi e devono essere
ritrasmessi
Questo modus operandi permette di costruire reti IP grandemente scalabili e robuste, ma cosa succede a livello
applicativo?
– p.2
Le richieste del livello applicativo
Esistono piú tipi di traffico, che hanno esigenze diverse:
FTP, e-mail: scarsamente interattivi
Web: da interattivo a molto interattivo
giochi online: molto interattivo
streaming audio/video: molto interattivo, con vincoli
sulla varianza nel ritardo dei pacchetti (jitter ) e sulla
quantità di dati persi
Un gestione efficiente del livello Network dovrebbe dare più
risorse al traffico con vincoli temporali piú stringenti.
– p.3
QoS: definizione
La qualitá del servizio (QoS) é la capacitá di una infrastruttura di differenziare il servizio fornito a piú flussi di traffico
concorrentemente presenti sulla rete. [RFC 2990]
Non si puó infatti contare sul fatto che la banda disponibile sia sempre sufficientemente elevata né risulta economico
sovradimensionare le risorse di rete (overprovisioning)
– p.4
Come si definisce la QoS (1)
Qualitá: Insieme di elementi concreti che definiscono la
natura di qualcosa, e ne permettono la valutazione
(Zingarelli).
Esistono metriche diverse per la qualitá, a seconda di
quanto occorre al livello applicativo. Le metriche possono
essere di tipo assoluto o relativo.
Esempi di metriche assolute:
“L’applicazione puó inviare 200 kbps sostenuti” (banda)
“Il 99% dei pacchetti arriva a destinazione entro 300
ms” (delay)
“Nel 98% dei casi i pacchetti arrivano tra 90 e 98 ms”
(jitter)
– p.5
Come si definisce la QoS (2)
Nelle metriche relative si differenziano i flussi in categorie
(tenendo conto di aspetti applicativi, tariffe pagate dagli
utenti, servizio richiesto...) e si stabilisce che i pacchetti in
categorie migliori sono sempre trattati “meglio” dei pacchetti
appartenenti a categorie peggiori.
Per appartenere ad una categoria migliore in genere
occorre pagare di piú per l’uso delle risorse di rete.
– p.6
Come si definisce la QoS (3)
Y
guadagno
Si puó pensare che l’utilizzatore di una rete sia disposto a
corrispondere una certa tariffa in base al ritardo che
impiegano i suoi dati a viaggiare nella rete.
D
D’
tempo
Quindi lo scopo di una architettura QoS diviene quello di
massimizzare il totale dei guadagni ottenuti.
– p.7
Obiettivi di una QoS
Controllare la rete in modo che i tempi di risposta siano
predicibili
Permettere di stabilire in anticipo il livello di servizio che
si otterrá dalla rete
Arbitrare l’accesso alla rete in modo tale che alcuni
servizi siano privilegiati
Fornire un accesso “equo” alle risorse
Massimizzare l’uso della rete
Tutto questo con un coinvolgimento attivo del network (che
attualmente é un componente passivo, lasciando alcuni di
questi compiti a TCP).
– p.8
Flussi (1)
Con flow si intende un unico e mono-direzionale flusso di
dati tra un destinatario ed un ricevente. I flussi sono usati
per specificare i requisiti di banda per QoS a livello network.
Traffic Specification (TSPec, RFC 2215) é un modello
token-bucket:
Token rate r: massimo service rate
Bucket depth d: extra data rate per brevi periodi di
tempo (burst data rate)
Peak rate p: massimo tasso di invio (se noto, altrimenti
infinito)
Minimum policed size m: dimensione minima dei
pacchetti (tutti i pacchetti piú piccoli di m sono
considerati grandi m).
– p.9
Flussi (2)
Maximum packet size M: dimensione massima dei
pacchetti (idem)
Il meccanismo di funzionamento é sostanzialmente il seguente: nel bucket arrivano b gettoni al secondo, e quando
viene ricevuto un pacchetto di lunghezza N ne vengono tolti
N. Se non ci sono abbastanza gettoni da togliere, si aspetta
che ne arrivino altri. Quando i pacchetti hanno pagato il numero di gettoni dovuto vengono processati (smooth).
I token bucket possono essere ostili al TCP [RFC 2990].
– p.10
SLA
Un Service Level Agreement é un contratto tra un cliente ed
un fornitore di connettivitá Internet che disciplina il servizio
che i dati del cliente riceveranno, quindi quali parametri
misurare, come misurarli (attivamente o passivamente), le
modalitá di rimborso in caso di non rispetto.
Si tratta quindi della visione ad alto livello e contrattuale di
un sistema con QoS.
– p.11
Integrated Services (1)
É una emulazione di circuito su reti IP [RFC 1633], quindi si
allontana molto dal tradizionale approccio best effort. Si basa su un protocollo di prenotazione (Resource Reservation
Protocol, RSVP [RFC 2205]) ed opera su singoli flussi.
– p.12
Integrated Services (2)
Nella prima fase del protocollo, viene memorizzato tutto il
percorso che collega la sorgente del flusso con il
destinatario:
1. La sorgente del flusso determina il TSpec del flusso e
invia un messaggio PATH al destinatario
2. Quando un router riceve un pacchetto PATH memorizza
nel pacchetto stesso l’indirizzo del router precedente e
lo inoltra poi verso la destinazione
3. Il destinatario riceve il pacchetto PATH
– p.13
Integrated Services (3)
A questo punto il destinatario conosce il percorso che
seguiranno i dati del mittente, e su questo percorso invia un
pacchetto RESV.
Quando un router riceve un pacchetto RESV decide (con un
admission control) se puó fornire le risorse richieste (banda
e memoria) per processare i pacchetti del flusso. In caso
affermativo inoltra il pacchetto RESV al router successivo.
Altrimenti comunica al destinatario il rifiuto.
– p.14
Integrated Services (4)
Se la sorgente riceve il pacchetto RESV vuol dire che il
circuito virtuale é stato creato, e puó cominciare ad inviare
pacchetti. Quando il flusso non serve piú invia ai router del
percorso una notifica di chiusura.
C’é un approccio soft-state:
il mittente deve reinviare
periodicamente un pacchetto PATH altrimenti i router
rilasciano le risorse associate al flusso.
– p.15
Integrated Services (5)
Sono possibili due livelli di servizio:
Guaranteed Service l’emulazione di circuito
Controlled Load Service é un best effort
Il problema di questo protocollo é la scalabilitá: i router devono tener conto di molte informazioni ed hanno uno stato!
– p.16
Differentiated Services (1)
In questa soluzione architetturale il traffico viene ripartito
in grandi flussi aggregati. Questo viene fatto utilizzando il
campo TOS (Type Of Service) di IPv4 che viene ridefinito
come DSCP (DiffServ Code Point).
Il DSCP si mappa in un PHB (Per Hop Behaviour) che
specifica come ogni router deve gestire il pacchetto,
ad esempio con politiche a prioritá per il dropping e lo
scheduling.
– p.17
Differentiated Services (2)
Il DSCP viene impostato dal mittente (o dal primo router), e
a paritá di DSCP il trattamento é lo stesso: in questo modo
i router devono distinguere solo tra poche classi di traffico.
Sono presenti due modelli di servizio:
Premium Service simile al Guaranteed Service di
IntServ
Assured Service diviso in 4 classi.
L’applicazione che imposta il DSCP non effettua una negoziazione esplicita, quindi le sue richieste di QoS potrebbero
essere onorate o meno.
– p.18
Confronti tra IntServ e DiffServ
Proprieta’
Integrated Services
Granularita’
Flusso
Aggregati
Flusso
Aggregato
Informazioni
di
stato
Differentiated Services
Classificazione pacchetti
Quintupla (TSpec)
Tipo di differenziazione
Determ/Statistica
Assoluta/relativa
Admission
Necessario
Nec. per diff. ass.
Protocollo di segnalazione
RSVP
Solo per diff. ass.
Coordinamento
End
Scalabilita’
No
Network
Control
accounting
to
End
Byte DS di IP
Per Hop
Si’
In base al flusso
Virtuali
In base alla classe
Organizzazione Network
Circuiti
Datagrammi
Accordi per interdominio
Multilaterali
Bilaterali
Livello
Applicazione
Trasporto
– p.19
IntServ e DiffServ
RSVP e DiffServ possono essere impiegati insieme,
avendo ambiti di applicazione ottimali diversi e
complementandosi a vicenda.
Sui router centrali di Internet si usa DiffServ, poiché
questi router gestiscono centinaia di migliaia di flussi.
Sui router periferici (dove la congestione é piú alta) si
usa IntServ (ad esempio per gestire flussi multimediali
in una Intranet).
Vengono definite delle mappe tra i flussi di RSVP e i
valori di DSCP.
Le applicazioni richiedono esplicitamente di avere QoS
e hanno notifica quando non é possibile
– p.20
QoS routing
Sia IntServ che DiffServ usano il percorso individuato per
best effort (con SPF) ma non c’é garanzia che questo sia il
miglior percorso per fare QoS.
In una comunicazione TCP sono presenti due flussi, e il
routing non garantisce la simmetria dei flussi.
QoS routing:
cercare non un percorso best effort ma
un percorso capace di QoS (traffic engineering: MPLS?).
– p.21
Router e QoS
I router sono la componente di rete essenziale per avere
QoS.
out profile
Pacchetti
Classifier
Marker
Meter
Dropper
in profile
out profile
Shaper
out profile
– p.22
Componenti di un router
Classifier riceve i pacchetti e determina il
flusso/aggregato al quale appartengono (DSCP, Flow
Label di IPv6...)
Marker etichetta se serve i pacchetti (ad es.
aggiungendo DSCP)
Meter elabora statistiche sui pacchetti e determina se
sono in profilo o fuori profilo (rispettano lo SLA o meno)
Dropper scarta i pacchetti fuori profilo
Shaper riceve pacchetti fuori profilo e prova a ritardarli
per riportarli in profilo
Dopo questa fase i pacchetti vengono accodati.
– p.23
Gestione della coda
La causa tipica di perdita dei pacchetti é la congestione
TCP ha meccanismi propri di gestione della
congestione
non tutto il traffico é TCP
una gestione efficace della congestione puó essere
fatta sui router con una opportuna politica di dropping e
scheduling
– p.24
Politiche di dropping (1)
Politiche elementari di dropping:
drop tail (del vino): se la coda é piena si scarta
l’ultimo pacchetto arrivato
drop front (del latte): se la coda é piena si scarta il
primo pacchetto in coda
Nessuna di queste politiche é migliore in assoluto, dipende dal tipo di traffico su cui opera (ovvero dalla presenza
o meno di meccanismi di livello superiore di gestione della
congestione).
– p.25
Politiche di dropping (2)
Politiche evolute di dropping:
Random Early Detection (RED) considera la
lunghezza della coda per decidere come operare:
accetta tutti i pacchetti
con probabilitá crescente con
scarta un pacchetto a caso tra tutti i presenti
scarta con certezza un pacchetto a caso
tra tutti i presenti
La scelta di un pacchetto in modo casuale evita fenomeni di
sincronizzazione globale.
– p.26
Politiche di dropping (3)
RIO (Red with In/Out bits): discrimina tra pacchetti in
per i pacchetti in
profilo e fuori profilo, calcolando
per tutti.
profilo e
quindi pacchetti out sono scartati per
primi
La probabilitá di drop per i pacchetti out é maggiore
di quella per i pacchetti in
quindi scarta ogni pacchetto out
prima
– p.27
Politiche di dropping (4)
1
1
P(drop in)
P(drop out)
Il risultato di queste scelte é che i pacchetti in profile
vengono scartati solo come extrema ratio, tentando di
rimuovere quelli out profile quando si comincia ad avvertire
la congestione.
P_max_in
min_in max_in L_in
P_max_out
min_out
max_out L_total
– p.28
Politiche di scheduling
FCFS (FIFO) usa una sola coda
Priority Scheduling ogni classe ha una propria coda e
vengono svuotate prima le code delle classi a prioritá
maggiore. Permette differenziazione relativa tra le
classi
Weighted Fair Queueing (WFQ) ogni classe riceve
una quantitá di servizio proporzionale alla sua prioritá,
quindi ogni tanto vengono prelevati pacchetti anche
dalle classi meno privilegiate
Earliest Deadline First (EDF) ogni pacchetto deve
essere spedito entro un certo tempo, e EDF cerca di
massimizzare il numero di volte che il vincolo viene
soddisfatto
– p.29
QoS interdominio
Nel caso generale, una comunicazione tra due entità coinvolge più di un Autonomous System, quindi occorrono meccanismi di gestione della QoS che possano essere interdominio.
Questo include meccanismi di autenticazione, autorizzazione ed accounting (AAA), ma non c’è ancora accordo su
meccanismi condivisi.
– p.30
Algoritmi di Admission Control (1)
Il ruolo di un algoritmo di admission control é quello di garantire che l’accesso di un nuovo flusso ad una risorsa di rete
limitata non violi i livelli di servizio per i flussi che giá usano
quella risorsa, cercando inoltre di massimizzarne il profitto
derivante dall’uso.
– p.31
Algoritmi di Admission Control (2)
Per operare un algoritmo di admission control tiene conto
delle risorse richieste per il flusso che si deve ammettere, e
questo puó essere fatto in due modi:
stima a priori
stima dinamica con uno stimatore
In generale sono possibili più classi di servizio, per ognuna
delle quali si puó definire una probabilitá di call-blocking, ovvero la probabilitá che una richiesta di quella classe non sia
ammessa.
– p.32
Algoritmi di Admission Control (3)
I requisiti di QoS possono essere definiti in vari modi:
rapporti esistenti tra le probabilitá di call-blocking per
richieste di classi diverse
deviazione dal livello di servizio pattuito
profitto complessivamente ottenuto (considerando
guadagni per richieste onorate e perdite per richieste
rifiutate)
In generale un problema di admission control é un problema
complicato, e si puó risolvere solo in modo approssimato.
– p.33
QoS e reti mobili
Nelle reti mobili la QoS é essenziale:
maggiore variabilitá delle condizioni della rete
costi maggiori della rete
contenuti multimediali (VoIP)
Le architetture di QoS attualmente presenti non sono state
pensate per nodi mobili (ad esempio RSVP crea un circuito virtuale ma il nodo puó spostarsi e occorre “spostare” il
circuito virtuale).
– p.34
Algoritmi di Call Admission Control
Sono algoritmi di admission control specializzati per reti mobili. In queste reti un flusso puó essere accettato nell’ambito
della rete di una cella, poi puó avvenire un handoff verso
una nuova cella e occorre una nuova decisione di admission control, che deve tuttavia tenere conto del fatto che il
flusso era giá stato accettato nella vecchia cella, e quindi
privilegiarlo (per quanto possibile), in modo da non sprecare
il lavoro fatto.
– p.35
Riferimenti
N. Vasiliou, “Reading Course Paper: Overview of QoS
and Web Server QoS”, Dept. of Computer Science
University of Western Ontario, Canada.
RFC 2990 “Next Steps for QoS Architecture”
– p.36