Gestione della Qualità del Servizio su Reti IP Wired e Wireless per

Transcript

Gestione della Qualità del Servizio su Reti IP Wired e Wireless per
UNIVERSITÀ DEGLI STUDI DI PARMA
FACOLTÀ DI INGEGNERIA
Corso di Laurea in Ingegneria Informatica
Gestione della Qualità del Servizio su Reti IP Wired e
Wireless per Applicazioni Multimediali
Relatore:
Chiar.mo Prof. F RANCESCO Z ANICHELLI
Tesi di laurea di:
A NDREA D ONETTI
Anno Accademico 2002-2003
Indice
1
Introduzione
1.1 Contributi della tesi . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Organizzazione della tesi . . . . . . . . . . . . . . . . . . . . . . .
2
Qualità del servizio su reti IP
2.1 QoS nelle reti di calcolatori . . . . . . . . . . . . . . . .
2.1.1 Le reti IP . . . . . . . . . . . . . . . . . . . . .
2.1.2 Qualità del servizio . . . . . . . . . . . . . . . .
2.2 Meccanismi per offrire QoS . . . . . . . . . . . . . . .
2.2.1 Control Plane . . . . . . . . . . . . . . . . . . .
2.2.2 Data Plane . . . . . . . . . . . . . . . . . . . .
2.2.3 Management Plane . . . . . . . . . . . . . . . .
2.3 Differentiated Services . . . . . . . . . . . . . . . . . .
2.3.1 QoS end-to-end basata su domini amministrativi
2.3.2 Controllo del flusso all’interno di un dominio . .
2.4 Bandwidth Broker . . . . . . . . . . . . . . . . . . . . .
2.4.1 Base di dati . . . . . . . . . . . . . . . . . . . .
2.4.2 Protocolli di comunicazione . . . . . . . . . . .
2.5 QoS per applicazioni multimediali in reti eterogenee . .
2.5.1 Caratteristiche delle applicazioni multimediali .
2.5.2 Gestione dell’infrastruttura di rete . . . . . . . .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
5
5
5
8
10
10
11
17
17
18
20
23
25
26
27
27
29
Qualità del servizio su reti wireless
32
3.1 Il protocollo IEEE 802.11 . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 QoS su reti wireless 802.11 . . . . . . . . . . . . . . . . . . . . . . 34
i
INDICE
3.3
4
5
6
INDICE
3.2.1 802.11 . . . . . . . . . . . . . . . . .
3.2.2 802.11e draft . . . . . . . . . . . . . .
3.2.3 Cisco Aironet 350 Series Access Point .
QoS end-to-end tra Diffserv e 802.11e WLAN .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Realizzazione di una architettura DiffServ
4.1 Supporto DiffServ in Linux . . . . . . . . . . . . . . . .
4.1.1 Traffic Control . . . . . . . . . . . . . . . . . .
4.1.2 Code, classi, filtri e policing . . . . . . . . . . .
4.1.3 Configurazione del kernel . . . . . . . . . . . .
4.2 Architettura per il controllo d’accesso . . . . . . . . . .
4.2.1 Modelli di interazione con il BB . . . . . . . . .
4.2.2 Prototipo realizzato . . . . . . . . . . . . . . . .
4.2.3 Componenti del sistema . . . . . . . . . . . . .
4.3 QoS tra rete Wired e rete Wireless . . . . . . . . . . . .
4.3.1 Filtraggio del traffico destinato alla rete wireless
4.3.2 Domini DiffServ . . . . . . . . . . . . . . . . .
Risultati sperimentali
5.1 Configurazione della rete . . . . . . . . . . . . . . . . .
5.2 Utilizzo di schede wireless su computer Linux . . . . . .
5.3 Testbed . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Risultati . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 Assenza di QoS . . . . . . . . . . . . . . . . . .
5.4.2 Presenza di QoS . . . . . . . . . . . . . . . . .
5.4.3 Presenza di QoS e banda in downstream variabile
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
34
36
38
40
.
.
.
.
.
.
.
.
.
.
.
42
43
43
45
55
56
57
60
61
74
74
81
.
.
.
.
.
.
.
84
84
85
87
89
90
92
96
Conclusioni
99
6.1 Sviluppi futuri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Bibliografia
101
ii
Capitolo 1
Introduzione
Negli ultimi anni sono aumentate enormemente sia la diffusione che la larghezza
di banda delle reti IP. Questa disponibilità di risorse ha favorito l’incremento della
richiesta di applicazioni distribuite multimediali in diversi ambiti, come ad esempio
l’intrattenimento, l’istruzione e il telelavoro. Anche strumenti di uso comune come
il telefono stanno migrando verso reti IP a commutazione di pacchetto.
La trasmissione di segnali vocali e video che devono essere riprodotti immediatamente dall’applicazione ricevente è molto sensibile alla perdita di pacchetti e
richiede che vengano rispettati precisi vincoli temporali. Nella maggior parte delle
reti IP attualmente utilizzate non viene fatta distinzione tra i dati in transito e non c’è
modo di garantire la consegna secondo i vincoli richiesti dal traffico multimediale.
In letteratura [1, 2, 3, 4, 5, 6] sono documentati alcuni meccanismi per differenziare il trattamento dei dati, dando maggiore priorità al traffico più sensibile
alla qualità del servizio offerto dalla rete. In particolare l’Internet Engineering Task Force (IETF) ha ideato alcuni modelli per soddisfare le richieste di qualità del
servizio.
Tra questi ha suscitato particolare interesse l’approccio Differentiated Services
(DiffServ) [4, 5], che garantisce maggiore scalabilità e miglior adattamento all’architettura delle reti IP esistenti rispetto alle altre soluzioni proposte. Al contrario del
modello Integrated Services (IntServ) [3], che prevede il mantenimento di uno stato
per ogni flusso in ciascun router attraversato, il modello DiffServ definisce un insieme limitato di classi utilizzate per differenziare il trattamento dei dati in transito.
1
Capitolo 1. Introduzione
In ingresso ad ogni dominio caratterizzato da un’unica amministrazione, i pacchetti
vengono marcati con il codice di una delle classi previste, in base alla priorità delle
informazioni contenute. Questa marcatura viene utilizzata nei nodi centrali per decidere l’ordine di inserimento nelle interfacce di uscita dei router e la probabilità di
eliminazione in caso di congestione.
Per le funzioni di negoziazione del livello di servizio, di controllo di accesso e
di configurazione dinamica della rete può essere utilizzato un componente chiamato Bandwidth Broker [7]. Alcuni centri di ricerca hanno realizzato dei prototipi di
Bandwidth Broker secondo le proprie necessità, ma gli studi in questo campo non
hanno ancora portato alla definizione di un sistema completo e soddisfacente.
Tra le varie tecnologie per la connessione di dispositivi elettronici, quella “senza filo” (wireless) ha ultimamente avuto un grande sviluppo. La tecnologia wireless
permette di connettere comodamente ad Internet dispositivi mobili (computer portatili, telefoni cellulari, PDA) negli ambienti più disparati. Sono stati definiti alcuni
standard per la comunicazione wireless mentre altri sono attualmente in via di sviluppo. In particolare l’Institute of Electrical and Electronics Engineers (IEEE) ha
proposto il protocollo 802.11 utilizzato dalla maggior parte dei dispositivi. Il gruppo
di lavoro 802.11e, che non ha ancora concluso il suo lavoro, definirà prossimamente
uno standard per offrire qualità del servizio su reti wireless [8, 9, 10].
Il canale wireless presenta caratteristiche differenti rispetto alle reti fisse; ad
esempio la perdita di pacchetti, praticamente assente su reti locali (LAN), è sperimentata frequentemente durante comunicazioni wireless. Ad oggi non sono ancora
disponibili meccanismi robusti per offrire un servizio end-to-end di qualità ad utenti
wireless.
1.1
Contributi della tesi
Questa tesi si colloca nel progetto, in corso presso il Dipartimento di Ingegneria
dell’Informazione dell’Università degli Studi di Parma, per la realizzazione di una
infrastruttura di rete che permetta a professori, ricercatori e studenti di utilizzare
in modo soddisfacente servizi di E-Learning, videoconferenza, streaming video e
tutte le applicazioni multimediali che possano essere utili per attività didattiche e di
ricerca. Lo scopo di questa tesi è stato quello di dotare l’infrastruttura di rete ete2
Capitolo 1. Introduzione
rogenea (wired e wireless) esistente di strumenti per il trattamento differenziato del
traffico secondo il modello DiffServ e realizzare un sistema software per garantire
un utilizzo semplice, equo e controllato delle risorse disponibili.
Per realizzare i nodi di rete DiffServ sono stati utilizzati personal computer dotati di software GNU/Linux. È stata predisposta una rete locale comprendente i router
(edge e core) previsti dal modello DiffServ.
Per le funzioni di controllo d’accesso, allocazione delle risorse e configurazione
dinamica del sistema sono stati studiati diversi modelli di interazione tra i componenti di un dominio. È stato inoltre realizzato un prototipo che comprende un
bandwidth broker basato sul codire sviluppato presso l’Università del Kansas ed un
proxy che si occupa di configurare per l’utente la qualità del servizio. Questa soluzione permette l’utilizzo sia dal lato client che dal lato server di programmi che
ignorano la qualità del servizio, consentendo di servirsi di qualsiasi prodotto disponibile. L’allocazione delle risorse, richiesta da un componente integrato nel sistema,
viene effettuata secondo le politiche specificate dai gestori del sistema stesso.
Sono state studiate e sperimentate le caratteristiche di qualità del servizio offerte dai dispositivi di connettività wireless disponibili in dipartimento, che realizzano
alcune funzionalità di differenziazione del traffico basate sulle bozze del protocollo
802.11e. Per migliorare le prestazioni non soddisfacenti ed offrire un sistema maggiormente configurabile è stato progettato e realizzato un meccanismo che integra
la parte wireless nell’architettura DiffServ predisposta per la rete wired. In particolare è stato introdotto un core router tra il resto della rete fissa e l’access point per
adattare il traffico diretto ai dispositivi mobili secondo una politica di qualità del
servizio.
1.2
Organizzazione della tesi
Il secondo capitolo introduce i concetti fondamentali relativi alla qualità del servizio
sulle tradizionali reti IP, con particolare attenzione al modello DiffServ. Successivamente viene descritto a livello teorico il funzionamento di un bandwidth broker.
Infine viene proposto un esempio di utilizzo della qualità del servizio nel contesto
di un campus universitario.
Il terzo capitolo presenta lo stato dell’arte della qualità del servizio su reti wi3
Capitolo 1. Introduzione
reless; in particolare sono presentate le caratteristiche degli access point disponibili
presso il dipartimento.
Il quarto capitolo è dedicato alla descrizione dei meccanismi per la qualità del
servizio utilizzati e del prototipo di architettura DiffServ realizzato. Viene inoltre
presentato il sistema proposto per migliorare la qualità del servizio per il traffico
diretto alla rete wireless.
Il quinto capitolo mostra i risultati degli esperimenti compiuti per valutare le
prestazioni offerte dai meccanismi di qualità del servizio realizzati.
Il sesto capitolo infine riassume i risultati ottenuti e indica alcune possibili
evoluzioni del progetto.
4
Capitolo 2
Qualità del servizio su reti IP
2.1
QoS nelle reti di calcolatori
In questo capitolo vengono introdotti i concetti fondamentali di funzionamento delle reti IP e della qualità del servizio. Vengono inoltre indicati alcuni dei meccanismi
proposti in letteratura per realizzare la qualità del servizio. In particolare viene descritta l’architettura Differentiated Services, utilizzata in questo lavoro di tesi. Per
una trattazione più dettagliata si rimanda al testo [1].
2.1.1
Le reti IP
La maggior parte delle reti di calcolatori attualmente utilizzate in tutto il mondo
si basa sulla suite di protocolli TCP/IP, ideata più di vent’anni orsono e affermatasi largamente con lo sviluppo di Internet. Il protocollo di livello rete IP (Internet
Protocol) è di tipo best effort, cioè non garantisce nulla riguardo l’effettiva ricezione, l’ordinamento e la prioritizzazione dei pacchetti. Il protocollo IP ha le seguenti
caratteristiche:
• è connectionless: il trasferimento dei dati non avviene attraverso un unico
percorso stabilito per tutta la durata della connessione.
• scelte di instradamento prese hop-by-hop
• nessun meccanismo di identificazione e correzione degli errori
5
Capitolo 2. Qualità del servizio su reti IP
• supporto per diverse tecnologie al livello 2 del modello OSI (data link)
Alcune funzionalità quali la numerazione dei pacchetti e la ritrasmissione in caso
di smarrimento possono essere gestite al livello superiore di trasporto utilizzando il
protocollo TCP.
Negli ultimi anni è aumentato enormemente il numero di computer connessi
a Internet, oltre alla disponibilità di risorse hardware, software e di connettività.
In particolare c’è stato un incremento della richiesta di applicazioni multimediali
(video on demand, videoconferenza, voice over IP, e-learning, ecc.) che necessitano
di banda larga ma soprattutto costante. Nella tabella 2.1 sono riportati alcuni valori
indicativi sull’utilizzo di banda da parte di alcune delle più comuni applicazioni di
rete.
Applicazione
Voice
Whiteboard
Web Application
File Transfer
Video (streaming)
Video-conferencing
Video MPEG
Medical images
Banda tipica
6 Kbps to 64 Kbps
10 Kbps to 100 Kbps
10 Kbps to 500 Kbps
10 Kbps to 1 Mbps
100 Kbps to 1 Mbps
128 Kbps to 1 Mbps
1 Mbps to 100 Mbps
10 Mbps to 100 Mbps
Tabella 2.1: Banda tipicamente utilizzata da alcune applicazioni
Nel caso di un flusso di dati in streaming, ossia utilizzati in tempo reale dall’applicazione che li riceve, è necessario che i pacchetti rispettino dei vincoli temporali
abbastanza precisi al fine di evitare che il risultato finale risulti degradato. Esistono
degli accorgimenti per ridurre l’effetto di eventuali ritardi nella ricezione dei dati, come ad esempio l’utilizzo di un buffer, ma queste soluzioni non garantiscono
comunque un servizio del tutto soddisfacente all’utente. Queste applicazioni avrebbero bisogno di una tipologia di servizio migliore rispetto al best effort messo a
disposizione dal protocollo IP.
La versione 4 del protocollo IP impone la presenza, nell’header dei pacchetti, di
un byte che specifica il tipo di servizio (Type of Service): i primi tre bit (“PRECEDENCE”, da 0 a 2) sono utilizzati per indicare la precedenza mentre i successivi 4
(“TOS”, da 3 a 6) contengono informazioni relative all’instradamento (figura 2.1).
6
Capitolo 2. Qualità del servizio su reti IP
0
1
2
3
4
PRECEDENCE
5
6
TOS
IPv4 RFC 1349
7
MBZ
MBZ = Must Be Zero
Figura 2.1: TOS nell’header IP
L’ultimo bit (7) deve essere 0. I bit “PRECEDENCE” indicano priorità crescente
con l’aumentare del valore, mentre i bit “TOS” significano (scrivendo per primo il
bit numero 3 e per ultimo il numero 6):
• 0000 = normal service
• 1000 = minimize delay
• 0100 = maximize throughput
• 0010 = maximize reliability
• 0001 = minimize monetary cost
L’utilizzo di queste informazioni comporta però overhead nei router, in particolare
in quelli ad alte prestazioni che elaborano grandi quantità di pacchetti. Nella pratica tali informazioni sono di fatto ignorate dai router, per evitare un degrado della
qualità del servizio offerta dalla la rete.
La versione 6 cerca di migliorare il supporto alla qualità del servizio, oltre a
risolvere altri problemi che non sono però oggetto di questo lavoro. IPv6 definisce
nell’header i campi flow label e traffic class:
• flow label ha lo scopo di consentire la manipolazione dei pacchetti a seconda del flusso di appartenenza. Un pacchetto con la flow label specificata può
essere inoltrato in modo efficiente, utilizzando quella informazione indipendentemente dal resto dell’header. L’identificazione basata sulla label viene
utilizzata da sistemi di gestione della QOS quali IntServ [3] e Multi-Protocol
Label Switching (MPLS) [6].
7
Capitolo 2. Qualità del servizio su reti IP
• traffic class permette di specificare una priorità associata ad ogni pacchetto
introducendo il concetto di classe di servizio; in una classe sono raggruppati pacchetti appartenenti a flussi differenti, che formano quindi degli aggregati. Questo concetto sta alla base dell’architettura Differentiated Service
(DiffServ) [4] [5].
2.1.2
Qualità del servizio
La Quality of Service (QoS) è definita come la misura delle prestazioni di un sistema di comunicazione, che si riflette nella qualità della trasmissione e nella disponibilità del servizio. Dal punto di vista dell’utente la QoS è percepibile, in modo
meno rigoroso, attraverso il funzionamento più o meno corretto e soddisfacente
dell’applicazione utilizzata. La qualità della trasmissione è espressa dai seguenti
parametri:
• perdita di pacchetti (loss): è il rapporto tra la quantità di pacchetti ricevuti
rispetto a quanti ne sono stati trasmessi. I pacchetti possono andare perduti
perchè scartati dai router in caso di congestione (queue overflow per lentezza
di trasmissione o per picchi di dati in input), perchè male indirizzati oppure
per colpa di errori di trasmissione.
• latenza (delay): rappresenta tutti i vari tipi di ritardi che i pacchetti subiscono
attraversando la rete. La latenza può essere espressa in vari modi, ad esempio
come latenza end-to-end, come tempo di risposta, come ritardi introdotti dalle applicazioni e come ritardi introdotti dai componenti di rete (router, hub,
switch, firewall).
• variazione di latenza (jitter): è la variazione dei ritardi che subiscono i vari
pacchetti. Per esempio, se un pacchetto impiega 100ms per attraversare la rete
da sorgente a destinazione e il successivo impiega 125ms per percorrere lo
stesso tragitto, il jitter calcolato è 25ms. Valori elevati di jitter possono causare
rimescolamento dei pacchetti ed errori di temporizzazione. Questo fenomeno
può essere causato da congestioni della rete, o da altri fattori legati alla rete
e ai tempi di risposta dei suoi componenti. Per diminuire l’influenza del jitter
sulla qualità di applicazioni che trasmettono audio o video in tempo reale
8
Capitolo 2. Qualità del servizio su reti IP
viene spesso utilizzato un buffer in ricezione. Questo comporta un aumento
del ritardo percepito dall’utente ed è efficace, a seconda della dimensione,
solo entro un certo range di jitter.
• affidabilità: percentuale di tempo in cui il sistema funziona senza malfunzionamenti, particolarmente importante per applicazioni mission-critical.
Solitamente viene stipulato un accordo tra utente e provider di servizi di rete sul livello di servizio, detto Service Level Agreement (SLA). In questo accordo vengono
specificati i valori che possono assumere i parametri di QoS, con l’aggiunta di altre
informazioni quali ad esempio la banda massima utilizzabile, il prezzo del servizio
e il comportamento da realizzare se i vincoli concordati non possono essere soddisfatti. Ad esempio, se le condizioni di traffico non consentono di fornire il servizio
concordato, un utente può scegliere tra diverse opzioni:
• proseguire l’applicazione in corso utilizzando la rete con prestazioni inferiori
• richiedere un servizio peggiore a livello applicativo che funzioni correttamente con le condizioni di rete (ad esempio richiedere un filmato con bitrate
minore)
• attendere che vengano rispettate le condizioni indicate nel SLA
Il livello di servizio concordato deve essere realizzato dalla rete lungo tutto il percorso, in modo da garantire un comportamento adeguato dell’applicazione che sia
soddisfacente per l’utente. Il servizio di tipo best effort offerto dalle reti IP funziona sufficientemente bene per molte applicazioni comunemente utilizzate; queste
applicazioni possono essere classificate come:
• applicazioni asincrone: per esempio l’email o il traffico HTTP, in entrambi i
casi la rete riesce solitamente a garantire prestazioni accettabili per l’utente.
• applicazioni burst: applicazioni che producono picchi istantanei nel bitrate
che variano sensibilmente rispetto al valore medio.
• applicazioni bulk: applicazioni che trasferiscono grandi quantità di dati ad una
velocità abbastanza costante, nel caso che i dati non debbano essere utilizzati
con precisi limiti temporali (ad esempio FTP).
9
Capitolo 2. Qualità del servizio su reti IP
Le applicazioni che invece necessitano di una specifica qualità del servizio sono
dette real time e si differenziano in soft real time e hard real time: le prime richiedono garanzie su determinati vincoli temporali ma possono anche accettare alcune
fluttuazioni delle caratteristiche di servizio senza compromettere il risultato percepito dall’utente. Le applicazioni hard real time, invece, non accettano variazioni nei
parametri della QoS.
Una descrizione più approfondita sui vincoli richiesti dai vari tipi di applicazioni
multimediali si trova nel sottoparagrafo 2.5.1.
2.2
Meccanismi per offrire QoS
Un primo elementare metodo per garantire la qualità del servizio consiste nel sovradimensionare le strutture di rete in modo da riuscire a soddisfare ogni richiesta
degli utenti; chiaramente questa è una soluzione effettivamente utilizzabile solo in
piccole reti locali a causa dei costi e del continuo sviluppo delle applicazioni e del
numero degli utenti.
Di fatto per regolare i parametri della QoS si utilizza un insieme di meccanismi
studiati per controllare a vari livelli il traffico di rete. Questi componenti base di
una architettura per la QoS si possono suddividere in tre aree: Control Plane, Data
Plane e Management Plane [2].
2.2.1
Control Plane
Riguarda i meccanismi che gestiscono il percorso attraverso il quale viaggia il
traffico degli utenti. Quest’area comprende:
• Admission control: controlla il traffico che può transitare all’interno della rete,
in modo che un nuovo flusso accettato non causi perdita di qualità al traffico
esistente. Normalmente l’admission control è guidato da un insieme di regole
concordate dal service provider con gli utenti della rete.
• QoS routing: si occupa di scegliere un percorso che soddisfi le richieste di
QoS dei flussi di traffico. Spesso si utilizzano algoritmi differenti dal tradizionale shortest path, basati su metriche che utilizzano i parametri di QoS
10
Capitolo 2. Qualità del servizio su reti IP
(banda, latenza, ecc.). Per realizzare questi meccanismi è necessaria la conoscenza delle richieste di QoS del flusso e delle caratteristiche di rete che
variano frequentemente. Questa conoscenza si ottiene tipicamente grazie a
protocolli di segnalazione, come Resource ReserVation Protocol (RSVP) o
estensioni di Open Shortest Path First (OSPF).
• Resource reservation: questo meccanismo prenota le risorse di rete richieste da una applicazione per garantire le prestazioni concordate. La capacità
di garantire le risorse è legata alle funzioni di admission control. Una condizione necessaria per soddisfare una richiesta di prenotazione è che ci siano sufficienti risorse di rete. Le caratteristiche del resource reservation dipendono dalle performance di rete richieste e dallo specifico approccio per
realizzare la QoS. Un esempio di protocollo per riservare risorse è il RSVP,
particolarmente usato nella architettura Integrated Service (IntServ).
2.2.2
Data Plane
Contiene i meccanismi che intervengono direttamente sul traffico degli utenti, ad
esempio modificando il modo in cui i router elaborano e inoltrano i pacchetti in
transito. Le operazioni effettuate dai router, descritte in modo molto semplice, sono le seguenti: i pacchetti ricevuti in modo sincrono o asincrono vengono messi
nelle code di input, successivamente sono elaborati secondo le operazioni di base
del protocollo IP (controllo del TTL, gestione degli indirizzi, ecc.) ed infine sono
indirizzati nella giusta coda di output per essere trasmessi. Questi processi a seconda della capacità di elaborazione, della dimensione della memoria, della velocità
di trasmissione del router introducono latenza e sono una delle principali fonti di
perdita dei pacchetti. Inoltre non c’è nessuna garanzia che i pacchetti provenienti
da una stessa sorgente vengano gestiti allo stesso modo, perciò la latenza dei vari
pacchetti tende ad essere variabile producendo jitter.
Le principali operazioni che fanno parte del Data Plane sono packet conditioning, queue scheduling e congestion control.
Per quanto riguarda il packet conditioning si usano le seguenti tecniche:
• packet classification and marking: i pacchetti vengono classificati in base ai
11
Capitolo 2. Qualità del servizio su reti IP
...
...
SHAPING
CLASSIFICATION
+ MARKING
POLICING
OUTPUT INTERFACE
SCHEDULING
INPUT QUEUES
OUTPUT QUEUES
CONGESTION CONTROL
Figura 2.2: Data plane all’interno di un router
parametri degli header a seconda della politica da realizzare e marcati per
essere rapidamente riconosciuti nelle successive elaborazioni. La classificazione può essere fatta esaminando i parametri a diversi livelli:
– Layer 2 (802.1Q Class of Service CoS, MAC address, MPLS experimental values)
– Layer 3 (IP precedence, DSCP, indirizzo IP sorgente/destinazione)
– Layer 4 (porte TCP o UDP)
– Layer 7 (application signatures)
I pacchetti vengono marcati in modo differente a seconda dell’architettura
utilizzata (Diffsev, Intserv, ecc.). Ogni architettura definisce infatti un campo
o un significato specifico ad un campo esistente in un header. I nodi interni di
rete classificano i pacchetti analizzando solamente questo campo.
• packet prioritization: i pacchetti vengono serviti con più o meno priorità a
seconda del “marchio” che hanno ricevuto. Per esempio gli algoritmi di scheduling nei router possono decidere il successivo pacchetto da analizzare in
base alla priorità assegnata.
• traffic shaping: i flussi di dati vengono modellati in modo da filtrare eventuali
picchi limitando la banda disponibile per i vari profili. Il traffico out-of-profile
(che eccede i limiti fissati) viene gestito a seconda del sistema e della politica utilizzata. Per effettuare questa operazione solitamente i sistemi di QoS
utilizzano uno schema token-bucket. Lo schema token-bucket viene utilizzato per controllare le caratteristiche principali dei flussi di pacchetti come la
12
Capitolo 2. Qualità del servizio su reti IP
velocità media, i picchi istantanei di velocià ed i burst (numero di pacchetti che temporaneamente possono essere inviati nonostante venga superato il
limite massimo di banda utilizzabile). Il funzionamento di un semplice filtro
token-bucket (TBF) è il seguente (figura 2.3):
– i token che rappresentano i “crediti” sono generati ad una velocità predefinita “r”
– i token sono accumulati in un bucket (cestino) fino ad un limite fissato
“b” che rappresenta la dimensione del bucket
– i pacchetti che arrivano alla velocità media “p” hanno accesso alla rete
grazie ai crediti disponibili nel cestino
– i pacchetti subiscono un comportamento definito dall’amministratore se
non sono disponibili crediti nel cestino (out-of-band). Ad esempio questi pacchetti possono essere eliminati oppure indirizzati in un’apposita
coda di output.
Token generation
rate (r)
Bucket
size (b)
Bucket
Packet
Network
Packet size (m)
out−of−band packet
Figura 2.3: Filtro Token Bucket
Il valore “r” rappresenta quindi la velocità media prevista per il flusso. La
dimensione del cestino rappresenta la variazione possibile rispetto alla velo13
Capitolo 2. Qualità del servizio su reti IP
cità media, ossia il numero massimo di pacchetti che possono essere inoltrati
istantaneamente al di sopra del rate fissato. I pacchetti consumano un numero
differente di crediti in proporzione alla loro dimensione.
• policing: applicazione di un insieme di regole che devono essere rispettate
relativamente al servizio. In base a queste regole (ad esempio gli accordi definiti in un SLA) vengono decise le azioni da compiere sui pacchetti come, ad
esempio, scartare quelli che sono oltre il limite di banda fissato.
Per migliorare le prestazioni per quanto riguarda latenza e jitter si è possibile intervenire sulla dimensione dei pacchetti in modo da evitare che pacchetti di grosse
dimensioni e bassa priorità siano causa ritardi eccessivi al traffico prioritario.
Il queue scheduling rappresenta un insieme di algoritmi e meccanismi usati per
controllare il trasferimento dei pacchetti dalle code di input a quelle di output nei
router. Gli obiettivi sono quelli di condividere la banda in modo equo evitando la
starvation di alcuni utenti, garantire i parametri di QoS come banda e latenza se
specificati e ridurre i jitter. Gli algoritmi usati più frequentemente per realizzare
questi obiettivi sono:
• First-In First-Out (FIFO): la coda più semplice, il primo arrivato è il primo ad
uscire. Tutti i pacchetti ricevono lo stesso trattamento. Funziona bene grazie
alla sua semplicità in assenza di congestioni.
• Priority Queuing (PQ): ci sono “n” code alle quali è associata una priorità
relativa. I pacchetti con priorità maggiore vengono serviti prima. I pacchetti
in una coda vengono serviti solo se le code a priorità maggiore sono vuote.
Causa problemi di starvation.
• Round Robin (RR) e Weighted Round Robin (WRR): sono presenti varie code.
L’algoritmo base serve in ordine tutte le code, un pacchetto per volta. Nella
versione weighted è possibile specificare il numero di pacchetti serviti per
le singole code ad ogni turno. Garantisce priorità e non provoca starvation.
Non viene considerata la dimensione dei pacchetti, quindi possono verificarsi
lunghe attese per pacchetti di piccole dimensioni. Non può quindi garantire
limiti di banda o latenza.
14
Capitolo 2. Qualità del servizio su reti IP
• Weighted-Fair Queuing (WFQ): è un algoritmo complesso pensato per fornire
imparzialità e per evitare la starvation, offrendo una priorità prefissata ai vari
flussi.
• Class-Based Queuing (CBQ): consente di suddividere il traffico in varie classi, ognuna delle quali può gestire il traffico in modo autonomo tramite code
interne.
Esistono anche altri metodi di gestione delle code, ad esempio variazioni agli algoritmi indicati, realizzazioni proprietarie di soluzioni generiche e nuove soluzioni
che non sono generalmente presenti nei router.
Il congestion control è l’insieme dei meccanismi usati per prevenire ed eliminare
le congestioni nelle reti. Vi sono tecniche reattive che tendono a diminuire l’intensità del traffico che attraversa la rete, e tecniche proattive che cercano di evitare il
formarsi di congestioni. I principali approcci al problema sono:
• Tail Drop: vengono eliminati i pacchetti ricevuti se la coda di output è piena.
• Random Early Detection (RED): i pacchetti vengono scartati con una data
probabilità in modo da evitare la formazione di congestioni. Quando le code
sono lontane dalla saturazione e si è quindi in condizioni di traffico sostenibile dalla rete nessun pacchetto viene scartato. Se il numero di pacchetti in
coda supera una soglia specificata il meccanismo RED comincia a scartare
alcuni pacchetti in modo casuale; la probabilità che hanno i pacchetti di essere scartati aumenta con la percentuale di riempimento della coda, arrivando a
scartare tutti i pacchetti in arrivo quando il buffer è pieno.
• Explicit Congestion Notification (ECN): i router notificano la congestione
esplicitamente ad un ECN-capable end-system invece di segnalarla scartando
semplicemente dei pacchetti.
Per realizzare soluzioni che garantiscano la qualità del servizio sono state proposte varie architetture. In particolare l’Internet Engineering Task Force (IETF) ha
ideato le proposte che più hanno influito nell’evoluzione delle reti IP. I due principali
approcci di gestione dei pacchetti sono i seguenti:
15
Capitolo 2. Qualità del servizio su reti IP
• flow-based packet processing: per flusso (flow) si intende in genere una trasmissione unidirezionale di dati fra due applicazioni identificata tipicamente
dagli indirizzi IP e porte (sorgente/destinazione) oppure da un identificatore
di flusso; questo identificatore è utilizzato, ad esempio, nella soluzione proposta da IPv6 e nel RSVP nell’architettura IntServ.
Utilizzando il concetto di flusso si riescono a suddividere in modo capillare
i vari pacchetti che attraversano una rete. Secondo questo approccio i pacchetti vengono elaborati per ottenere la QoS in modo diverso in base al flusso
di appartenenza. Questa capillarità porta a problemi di scalabilità nel caso di
grosse reti con molti utenti, sia a causa dell’aumento dell’elaborazione richiesta, sia per il numero delle informazioni che bisogna memorizzare per ogni
flusso. Il concetto di flusso, che ricorda il concetto di “chiamata” nelle linee
telefoniche, si scontra con la natura connectionless del protocollo IP.
• class-based packet processing: i flussi possono essere raggruppati insieme utilizzando in modo incrociato differenti caratteristiche come ad esempio la rete
di origine e qualsiasi altra informazione contenuta nell’intestazione IP. Grazie
a questi classificatori si possono ottenere aggregati di traffico che raggruppano in una classe flussi differenti ma che hanno in comune qualche attributo
identificativo. “Aggregato” e “classe” sono i termini che identificano questa
soluzione. I pacchetti vengono elaborati nei nodi di rete a seconda della classe
di apparteneza, non più in modo individuale come avviene nel caso precedentemente illustrato.
Il metodo Class-based scala bene con l’aumetare dei nodi e degli utenti e richiede la memorizzazione di poche informazioni. Considerando flussi aggregati si riduce l’analisi dell’header dei pacchetti diminuendo quindi l’overhead
introdotto dai router. Un altro vantaggio è quello di semplificare la gestione
e la realizzazione delle politiche da parte dell’amministratore, dovendo considerare solamente poche classi di servizio. Il principale inconveniente è invece la scarsa personalizzazione del servizio possibile. Questo approccio è
realizzato dalla architettura Differentiated Service (DiffServ).
16
Capitolo 2. Qualità del servizio su reti IP
2.2.3
Management Plane
Fanno parte di quest’area i meccanismi che riguardano gli aspetti di gestione e di
amministrazione degli traffico. Appartengono a questo insieme:
• Metering: monitorare le caratteristiche variabili di un flusso di dati (ad esempio la velocità di traferimento) in modo che rientrino nel profilo concordato. Uno strumento che esegue questa funzione può richiedere un trattamento
particolare per il traffico monitorato (ad esempio shaping o dropping).
• Service Level Agreement (SLA): un SLA è l’accordo tra un cliente ed il suo
fornitore di servizi, nel quale sono indicati il livello di affidabilità, di prestazioni e altri attributi del servizio. Può includere anche aspetti di natura economica come le tariffe. Nella parte tecnica vengono specificati i parametri di
traffico specifici utilizzati dall’architettura che gestisce la QoS nel dominio.
• Traffic Restoration: è la capacità della rete di funzionare in condizioni di
guasti ed errori. Gli errori possono verificarsi a livello di nodi di rete o di
connessione fra due nodi.
2.3
Differentiated Services
In questo tesi è stato scelto il modello DiffServ per fornire qualità del servizio,
preferendolo a quello IntServ perchè maggiormente scalabile, come spiegato precedentemente. L’idea fondamentale di questa modello è di ridurre la complessità nei
nodi centrali della rete che devono trattare un numero enorme di dati. Un piccolo
insieme di primitive per l’invio differenziato dei pacchetti può essere composto per
creare un vasto insieme di caratteristiche di QoS. I nodi centrali della rete devono
gestire solamente questo piccolo insieme di primitive.
Il modello DiffServ evidenzia come sia possibile offrire un servizio di QoS attraverso la configurazione statica dei nodi centrali della rete. Vengono tenute separate
le funzionalità di elaborazione dei pacchetti e di configurazione dei parametri di
QoS nei router centrali: la classificazione dei pacchetti avviene alla velocità con
cui viaggiano nella rete, mentre la configurazione delle primitive utilizzate dai core
17
Capitolo 2. Qualità del servizio su reti IP
router avviene su una scala temporale molto più lunga. Solitamente la riconfigurazione dei router centrali viene effettuata solamente nel caso di cambiamento delle
politiche generali del dominio oppure quando viene modificata la struttura della rete
(cambiamento della topologia o dell’hardware utilizzato). La riconfigurazione degli edge router deve avvenire, invece, quando viene concesso ad un utente di far
transitare i suoi dati all’interno del dominio.
Un altro grande vantaggio dell’approccio DiffServ è che si applica bene all’architettura di internet e può essere realizzato in modo minimalista, aggiungendo
complessità solo quando serve. All’interno di una rete è possibile utilizzare i Differentiated Services solo nei punti critici, dove il canale di comunicazione presenta
un collo di bottiglia.
2.3.1
QoS end-to-end basata su domini amministrativi
Nel modello DiffServ l’entità di base che garantisce il livello di servizio è il dominio
amministrativo di un unico operatore di rete.
Un dominio amministrativo può essere individuato sia in una rete aziendale o in un
singolo ISP (Internet Service Provider). Il modello è orientato verso un servizio di
tipo edge-to-edge attraverso ogni singolo dominio, in accordo con quanto definito
negli Service Level Agreement (SLA) stipulati con i propri clienti.
I clienti di un dominio possono essere ad esempio gli utenti serviti da un ISP
oppure i gestori dei domini adiacenti. Stipulando accordi tra domini adiacenti è
possibile creare una struttura complessa in grado di garantire la QOS attraverso una
rete non omogenea nella gestione amministrativa.
Nella versione più semplice l’architettura DiffServ prevede l’allocazione statica
delle risorse. Quando viene stipulato un SLA tra cliente e fornitore, vengono staticamente assegnate le risorse al cliente nel periodo indicato nell’accordo. Il cliente
avrà a disposizione le risorse senza bisogno di effettuare ulteriori richieste. In questo modo devono essere riconfigurate le risorse solo quando scadono i termini del
contratto o quando ne viene accordato uno nuovo. La configurazione statica pone
dei limiti sul numero di clienti che possono utilizzare le risorse e sull’efficienza del
loro utilizzo. L’allocazione statica delle risorse può essere vista come uno spreco di
risorse (pagare per delle risorse che non vengono usate) oppure come il privilegio
18
Capitolo 2. Qualità del servizio su reti IP
di poter utilizzare un servizio che è sempre disponibile, in qualunque momento lo si
voglia utilizzare. Nel caso in cui la somma delle risorse assegnate ai clienti tramite
gli SLA ecceda la capacità del sistema è necessario un protocollo di segnalazione
per richiedere l’allocazione effettiva della QoS concordata. In questo caso l’allocazione delle risorse è detta dinamica. Nella allocazione dinamica un meccanismo di
control plane deve effettuare un controllo sulla possibilità di soddisfare o meno la
richiesta. Per far questo è necessaria una segnalazione dei parametri di QoS, che
può essere effettuata in due modalità:
• in band: la segnalazione è codificata all’interno del flusso interessato, tipicamente all’interno di particolari campi nell’header IP (TOS). In questo modo
non viene introdotto ulteriore traffico e non vengono aggiunti ritardi per la
messa a punto.
• out of band: la segnalazione è trasportata da appositi pacchetti separatamente
dal traffico interessato dalla QoS. Viene introdotto perciò del traffico extra in
rete. In questo modo è possibile richiedere la prenotazione di risorse.
Se viene negata la QoS, l’utente può decidere di riprovare successivamente, di riprovare subito chiedendo meno risorse oppure di utilizzare subito la rete con servizio
best effort.
In ambiente multidominio, nel caso di configurazione dinamica, per poter soddisfare una richiesta di allocazione è necessario che tutti i domini interessati abbiano
sufficiente disponibilità di risorse. Per fare questo serve un protocolo di comunicazione tra i gestori dei vari domini. Il cliente chiede l’allocazione di risorse in accordo
con l’SLA al dominio di accesso ai servizi, il quale dovrà conoscere il successivo
dominio nel percorso verso l’altro end point e inoltrare la richiesta in accordo con
l’SLA stipulato tra i due amministratori. Per poter comunicare al cliente l’accettazione della sua richiesta il gestore del dominio deve attendere la risposta alla richiesta che ha effettuato al successivo. Il nuovo dominio contattato dovrà effettuare la
stessa cosa fino a che non viene raggiunto l’altro interlocutore della comunicazione
oppure quando un dominio nega l’allocazione. Per poter realizzare questo meccanismo è necessario che la catena di domini interessati da una comunicazione sia nota
e fissata. Al contrario il percorso che i dati effettueranno all’interno di un singolo
dominio non deve essere né noto né fissato.
19
Capitolo 2. Qualità del servizio su reti IP
L’architettura DiffServ offre la possibilità ai gestori di fornire ad ogni cliente una
gamma di servizi di rete con prestazioni (e costi) differenti associati ai vari aggregati
di traffico (TA). Il trattamento che un TA (o un insieme di TA) deve ricevere da un
bordo all’altro di un domino Diffserv è detto Per Domain Behaviour (PDB) [11].
Componendo i vari PDB che intervengono tra sorgente e destinazione si riesce a
stimare la QoS end-to-end che sarà applicata al traffico di dati.
2.3.2
Controllo del flusso all’interno di un dominio
I router che compongono un dominio vengono suddivisi in
• edge router: nodi di confine che separano due domini distinti
• leaf router: nodi che collegano un cliente al dominio
• core router: nodi centrali della rete che sono connessi esclusivamente ad altri
nodi appartenenti allo stesso dominio
Quando i pacchetti entrano in un dominio DiffDerv vengono collocati nelle varie
classi di servizio marcando il diffserv code point (DSCP), che corrisponde ai primi
sei bit del campo TOS nell’header IPv4 [12] (figura 2.4).
Layer 3 IPV4
Version
Length
ToS
1 Byte
7
6
LEN
5
ID
4
Offset
3
TTL
2
IP precedence
Proto
1
FCS
IP−SA
IP−DA
Data
0
bit non usati
DSCP
Figura 2.4: DSCP nell’header IPv4
La marcatura del DSCP può essere operata da vari componenti:
• dall’host (può essere un problema lasciare all’utente la scelta della classe di
servizio da associare al proprio traffico);
20
Capitolo 2. Qualità del servizio su reti IP
• dal primo router incontrato dopo l’host;
• da particolari componenti, ad esempio un VoIP gateway.
Alcuni software impostano direttamente il TOS, ad esempio il traffico generato dall’ssh è marcato con il valore 0x10. Il DSCP viene utilizzato per determinare il trattamento dei pacchetti nei nodi interni della rete. In questo modo i router centrali
non hanno problemi di scalabilità dovendo gestire solamente un piccolo insieme di
comportamenti diversi, uno per ogni classe di servizio.
Gli edge router (sia di ingresso che di uscita) ed i leaf router svolgono le seguenti funzioni: classifying, monitoring, marking, shaping/dropping (figura 2.5). I
core router invece effettuano behaviour classification e scheduling (figura 2.6) in
modo class-based.
Le operazioni più costose che implicano elaborazione flow-based vengono quindi eseguite nei router ai margini della rete; i leaf e gli edge router sono in grado di
gestire questa complessità visto che devono elaborare solamente una porzione del
traffico totale che attraversa il dominio. Una descrizione dettagliata del modello di
gestione dei router DiffServ si può trovare in [13].
METER
CLASSIFIER
MARKER
SHAPER/DROPPER
Forward
Figura 2.5: Schema logico di un Edge Router
Ad ogni valore del DSCP corrisponde un trattamento specifico da parte dei nodi
centrali, detto Per-Hop Behaviour (PHB). I vari nodi di rete cooperano attraverso
i propri PHB per realizzare il PDB osservabile dall’esterno. All’interno dell’IETF
esiste un gruppo di lavoro dedicato al modello DiffServ che ha deciso di standardizzare pochi fondamentali PHB. Questi PHB possono essere realizzati utilizzando
una grande varietà di meccanismi. I PHB standard sono:
21
Capitolo 2. Qualità del servizio su reti IP
Core Router
Per Hop Behaviour
(Behaviour classification
Scheduling)
Border Router (Ingress)
Classifying
Marking
Monitoring
Shaping/Dropping
Border Router (Egress)
Classifying
Marking
Monitoring
Shaping/Dropping
CR
BR
Traffico
Dati
vengono combinati
i flussi appartenenti allo stesso
TA che attraversano il dominio
BR
Figura 2.6: Schema di un dominio Diffserv
• Default behaviour: il DSCP è zero, viene fornito un servizio comparabile all’attuale servizio Internet di tipo best effort (congestioni e perdita di pacchetti
completamente fuori controllo).
• Class selector behaviours: si hanno sette possibili valori del DSCP, che vanno
da 00100 a 111000, per specificare sette possibili comportamenti con crescente probabilità di essere inoltrati prima rispetto alle classi precedenti. Si può
notare che l’utilizzo di queste classi in aggiunta al Default behaviour rispecchia esattamente il meccanismo realizzato dall’IP Precedence (illustrato nel
paragrafo 2.1.1).
• Expedited Forwarding Behaviour (EF) [14]: viene raccomandato il DSCP di
valore 101110 e come comportamento è previsto un bitrate minimo garantito
configurabile in uscita dal dispositivo. L’EF è pensato per i servizi che necessitano di un servizio di rete con caratteristiche minime garantite, come ad
esempio servizi real-time con un throughput configurabile.
Dal punto di vista dell’utente, l’EF assicura una banda minima con bassa latenza, basso jitter e poca perdita. In altre parole questo modello di servizio
emula una linea dedicata. È consigliato di allocare per questo servizio solo
una piccola percentuale della capacità totale della rete.
• Assured Forwarding Behaviours (AF) [15]: questo PHB è suggerito per applicazioni che richiedono una affidabilità maggiore rispetto al servizio best
22
Capitolo 2. Qualità del servizio su reti IP
effort, senza però stretti vincoli sui parametri della QoS. Una classe AF è
composta da quattro sotto-classi chiamate AF1, AF2, AF3 e AF4. Queste
classi sono indipendenti, ossia ognuna ha la proprie risorse di rete nei nodi
Diffserv.
Le classi hanno priorità crescente da AF1 a AF4. All’interno di ogni classe si
trova una ulteriore suddivisione data da tre Drop Precedence, che indicano la
probabilità per un pacchetto di essere scartato in caso di congestione. In questo modo si ottengono 12 differenti classi AF indicate con la notazione AFIJ
che rappresenta un PHB di tipo AF classe “I” con Drop Precedence “J”.
In un dominio DiffServ tutti i nodi centrali devono offrire lo stesso insieme di PHB.
I router ai margini devono classificare il traffico nelle classi disponibili a seconda
degli SLA stipulati col cliente, eventualmente scartando o riclassificando i pacchetti
che non rientrano nei parametri concordati. Ad esempio, se un flusso arriva all’ingresso della rete con una banda superiore a quella consentita, la parte che eccede
tale limite può venire inserita in una classe di servizio peggiore [16] [17]. In altri
casi, invece, la politica adottata prevede di scartare il traffico in eccesso.
In [18] è proposto un Policy Information Base per un dispositivo Diffserv, ovvero un insieme di dati che devono essere memorizzati e scambiati tra le varie entità di
una architettura Diffserv. Nel modello sono previste alcune entità che si occupano
di operare le decisioni sulle politiche detti Policy Decision Point (PDP) ed altre che
mettono in pratica quanto deliberato chiamate Policy Enforcement Point (PEP).
2.4
Bandwidth Broker
I meccanismi di gestione della QoS forniti dal modello DiffServ consentono di proteggere le classi di servizio più importanti da quelle che hanno meno priorità. Il controllo d’accesso è utilizzato per garantire che una comunicazione non sia in conflitto
con altre appartenenti allo stesso aggregato di traffico, impedendo l’inserimento in
una classe di servizio di una quantità di traffico superiore a quella sostenibile da
parte della rete.
In un contesto di allocazione dinamica delle risorse, le funzioni di admission
control, di resource reservation e di configurazione del sistema sono realizzate da
23
Capitolo 2. Qualità del servizio su reti IP
agenti software. In particolare è stata studiata, per svolgere queste funzioni, una
entità detta Bandwidth Broker (BB) [7]. I BB possono essere considerati dei PDP,
mentre i router sono dei PEP.
BB 2
BB 1
BB 3
Edge
Router
Edge
Router
Edge
Router
Edge
Router
Leaf
Router
Edge
Router
Leaf
Router
Dominio
Diffserv #2
Edge
Router
Host
Dominio
Diffserv #1
Host
COMUNICAZIONE CON L’UTENTE
Dominio
Diffserv #3
COMUNICAZIONE INTRA−DOMINIO
COMUNICAZIONE INTER−DOMINIO
Figura 2.7: BB in uno schema multidominio
L’interazione tra il BB e gli altri componenti nell’architettura Diffserv è la
seguente:
1. quando un flusso deve entrare in un dominio Diffserv o un utente locale vuole
inviare dei dati, deve essere segnalata al BB la richiesta di allocazione, detta
Resource Allocation Request (RAR), contenente il riferimento ad un SLA
2. il BB deve controllare l’autenticità dell’SLA e, in base alle specifiche indicate, verificare la disponibilità di risorse (deve avere una conoscenza precisa e
aggiornata sulla topologia e sulle condizioni di rete)
3. se il flusso di dati, per raggiungere il secondo end-point della comunicazione,
attraversa altri domini, il BB deve negoziare l’allocazione di risorse con il
24
Capitolo 2. Qualità del servizio su reti IP
dominio vicino. Questo meccanismo deve essere ripetuto fino a raggiungere
il dominio a cui è collegato l’interlocutore della comunicazione
4. il BB deve decidere se la richiesta può essere soddisfatta in base alle informazioni ottenute nei punti precedenti e comunicare la decisione al richiedente
5. se la richiesta è stata accettata il BB deve riconfigurare opportunamente l’edge
router o il leaf router che fornisce la connessione tra l’utente e il dominio.
Un BB è composto da alcuni componenti fondamentali classificati nel seguente
modo:
• Base di dati
– Tabelle di routing
– Deposito di dati (SLA, politiche, allocazione corrente, ecc.)
• Protocolli di comunicazione
– Interfaccia utente/applicazione
– Protocollo di comunicazione inter domain
– Protocollo di comunicazione intra domain
2.4.1
Base di dati
Il BB deve mantenere una base di dati contenente tutti gli elementi relativi alla gestione del dominio. È necessario memorizzare le tabelle di routing per avere una mappa topologica completa del dominio gestito. Le informazioni che deve
conoscere sono:
• il router di ingresso e di uscita per ogni flusso che attraversa il dominio;
• il dominio successivo nel percorso del flusso verso la destinazione, se questa
si trova in un altro dominio;
• il primo leaf router nel caso in cui la richiesta è generata da un cliente all’interno del dominio.
25
Capitolo 2. Qualità del servizio su reti IP
Il modo migliore per ottenere informazioni aggiornate è fornire al BB un protocollo intra-dominio che gli permetta di comunicare con gli altri componenti di
rete.
Oltre alle informazioni relative alla topologia della rete, il BB deve mantenere
i dati che riguardano le politiche, gli accordi SLA, la gestione della rete e l’allocazione corrente delle risorse. Devono inoltre essere memorizzare le informazioni
relative alla configurazione dei router e dei componenti propri del BB per poter intervenire in caso di errori. Un Policy Information Base (PIB) può essere utilizzato
per la gestione delle informazioni relative alle politiche. La descrizione di un PIB
per una architettura DiffServ si può trovare in [18].
2.4.2
Protocolli di comunicazione
Per eseguire le sue complesse funzioni il BB necessita di un insieme di protocolli
di comunicazione per interagire con i diversi componenti del dominio DiffServ. Per
prima cosa c’è bisogno di un protocollo o di una interfaccia per comunicare con
l’operatore di rete e con gli utenti (o le applicazioni degli utenti). L’amministratore
di rete interagisce con il BB per controllarne o aggiornarne la caratteristiche di
funzionamento. Gli utenti invece necessitano di comunicare con il BB per richiedere
l’allocazione delle risorse e per conoscere la risposta a tale richiesta.
Il protocollo di comunicazione intra-dominio è utilizzato per la gestione dei
nodi di rete. In generale il protocollo intra dominio deve poter trasferire i parametri di configurazione dal BB ai PEP (gli edge router). Ogni router possiede un
meccanismo di configurazione predisposto dal costruttore; in particolare i meccanismi più diffusi sono Common Open Policy Services (COPS) [19], Simple Network Management Protocol (SNMP) [20] e Telnet, anche se non tutti i dispositivi li
supportano.
La comunicazione inter-dominio serve per far interagire due BB di domini adiacenti. I BB devono comunicare tra loro per realizzare la QoS end-to-end a partire
dalle prestazioni edge-to-edge offerte dai singoli domini. Non è stato ancora definito
un singolo protocollo che possieda tutte le caratteristiche necessarie per il livello di
comunicazione inter-dominio. L’Internet2 QBone BB Advisory Council ha proposto
in [21] il Simple Inter domain Bandwidth Broker Signalling (SIBBS).
26
Capitolo 2. Qualità del servizio su reti IP
2.5
QoS per applicazioni multimediali in reti eterogenee
Solo recentemente è stata superata la convinzione diffusa che la QoS non è fondamentale in una rete dove la banda è abbondante, come ad esempio nel caso di un
campus universitario. Realizzando applicazioni come IP Telephony, video conferenza e applicazioni mission-critical è diventato evidente che anche la gestione dei
buffer di comunicazione necessita di particolare attenzione.
2.5.1 Caratteristiche delle applicazioni multimediali
I vari tipi di applicazioni multimediali necessitano di prestazioni di rete differenti.
Ad ogni applicazione che richiede QoS deve essere assegnata una classe di servizio
che definisce la priorità relativa rispetto alle altre applicazioni. Il criterio di ordinamento si deve basare in parte sulle caratteristiche intrinseche del tipo di trasmissione
e in parte sulle politiche dell’organizzazione che utilizza il servizio. Ad esempio il
servizio Voice over IP (VoIP) ha delle necessità di QoS oggettivamente superiori allo streaming video, mentre per quanto rigurda i dati trasferiti da applicazioni
varie l’ordinamento deve essere scelto in modo soggettivo a seconda dell’organizzazione. Le caratteristiche intrinseche del traffico che devono essere considerate per
effettuare la classificazione delle applicazioni sono:
• perdita di pacchetti tollerata;
• latenza tollerata;
• variazione di latenza tollerata;
• pattern di traffico (variabilità della banda, dimensione dei pacchetti, ecc.).
È controproducente utilizzare troppe classi distinte per il traffico dei dati, perchè
rende meno evidente la distinzione del livello di servizio tra le classi. La suddivisione in classi offerta dai PHB standard del modello DiffServ consente di avere una
servizio “premium” identificato dalla classe EF, un servizio normale BE e quattro
classi intermedie AF. L’efficienza della QoS viene compromessa anche assegnando
27
Capitolo 2. Qualità del servizio su reti IP
ad un unica classe troppe applicazioni. Nel caso estremo in cui tutte le applicazioni utilizzano il servizio migliore si ottiene lo stesso risultato ottenibile senza QoS
(tutto il traffico viene trattato allo stesso modo secondo lo schema FIFO).
Un esempio di classificazione delle applicazioni, indicato in ordine di priorità
decrescente, è il seguente:
• Mission-Critical: applicazioni per l’Enterprise Resource Planning (ERP), transazionali, ecc.
• Banda Garantita: streaming video, messaging, Intranet
• Best-Effort (default): Internet browsing, E-Mail
• Traffico in Background (priorità minima, massima probabilità di drop): FTP,
backup, applicazioni Peer-to-Peer (P2P)
Vengono di seguito presentate le caratteristiche di traffico delle principali applicazioni multimediali e la loro classificazione suggerita in letteratura [22].
Voice over IP
Il traffico che trasporta un segnale vocale necessita di:
• perdita di pacchetti inferiore al 1%;
• latenza inferiore a 150-200 ms;
• jitter medio inferiore a 30 ms;
• banda prioritaria tra 21 kbps e 100 kbps a seconda della codifica e del campionamento;
• 150 bps di banda garantita per i segnali di controllo.
Per il traffico VoIP è raccomandato il PHB EF (DSCP 46), corrispondente al valore
5 di IP Precedence e CoS per mantenere la retrocompatibilità con i vecchi sistemi
di QoS. Per i segnali di controllo del traffico vocale è raccomandato il PHB AF31
(DSCP 26, IP Precedence 3, CoS 3).
28
Capitolo 2. Qualità del servizio su reti IP
Videoconferenza
Il traffico generato da applicazioni di videoconferenza richiede le stesse prestazioni
del VoIP per quanto riguarda la perdita di pacchetti, la latenza e la variazione di
latenza, ma ha un pattern di traffico completamente differente. Il traffico di videoconferenza ha infatti dimensione e rate dei pacchetti molto variabile. La banda prioritaria da allocare per questo tipo di traffico deve essere superiore del 20% rispetto
al bitrate nominale della sessione. Ad esempio una sessione di videoconferenza da
384 kbps richiede l’allocazione di 460 kbps di banda garantita e un parametro di
burst impostato a 30000 byte. È consigliato l’utilizzo del PHB AF41 (DSCP 34, IP
Precedence 4, CoS 4).
Video streaming
Le applicazioni di streaming video hanno richieste di QoS meno rigide, infatti la
latenza non comporta grossi problemi visto che può essere tollerato un tempo di
attesa iniziale di alcuni secondi e il jitter può essere compensato tramite buffering.
Il range accettabile per i parametri di QoS è il seguente:
• perdita di pacchetti inferiore al 2%;
• latenza inferiore a 4-5 secondi;
• il valore del jitter non è particolarmente significante.
Lo streaming video può essere utilizzato per applicazioni di intrattenimento oppure
per contenuti più importanti come nel caso dell’E-Learnig. Per questo tipo di applicazioni è consigliato l’utilizzo di una classe di servizio di priorità medio-bassa,
come ad esempio il PHB AF13 (DSCP 14, IP Precedence 1, CoS 1).
2.5.2
Gestione dell’infrastruttura di rete
In figura 2.8 sono illustrate le aree nelle quali sono richiesti meccanismi di QoS.
I punti di accesso della rete devono classificare il traffico prodotto o inoltrato secondo i meccanismi previsti per il livello 2 o 3. Possono essere presenti molteplici
code. L’amministrazione del dominio deve potersi fidare di questi nodi di confine
29
Capitolo 2. Qualità del servizio su reti IP
Edificio 1
Edificio 2
Accesso
Accesso
WAN
Distribuzione
Collegamento
WAN
Collegamento
WAN
Accesso
Accesso
Accesso
Figura 2.8: Componenti di QoS nella rete di un campus
visto che la gestione interna del traffico si basa sulla loro classificazione. Può essere
effettuato in questi nodi anche il controllo d’accesso.
I nodi centrali di distribuzione hanno diverse code per le varie classi di traffico e utilizzano la classificazione effettuata ai margini della rete per l’inserimento
nelle code. Possono essere utilizzate tabelle di conversione tra i vari meccanismi di
marcamento. Nelle reti locali la latenza dovuta all’inserimento in modo seriale da
parte delle interfacce LAN sul mezzo fisico è trascurabile, ossia non incide in modo
significativo sul comportamento delle applicazioni sensibili ai ritardi. Nella realizzazione dei sistemi di accesso e distribuzione si deve fare più attenzione al jitter,
che può effettivamente peggiorare la qualità di voce e video. Il problema principale è comunque rappresentato dalle congestioni nei buffer di trasmissione. Questo
problema viene generalmente affrontato separando in varie code gli aggregati di
traffico.
I nodi che collegano le reti locali alle Wide Area Network (WAN) devono avere
code a bassa latenza e devono offrire servizi di controllo d’accesso, modellazione
30
Capitolo 2. Qualità del servizio su reti IP
del traffico secondo profili prestabiliti e frammentazione dei pachetti. La frammentazione dei pacchetti può servire per ridurre la latenza e il jitter dei pacchetti ad alta
priorità, in presenza di pacchetti di grandi dimensioni e bassa priorità.
Ogni edificio può essere visto come un dominio DiffServ, nel quale i nodi di
distribuzione rappresentano i core router mentre i punti d’accesso e i nodi di collegamento WAN possono essere identificati come edge router con differenti caratteristiche.
In alcuni casi ci si trova nella condizione di utilizzare nodi di rete di terze parti
che non supportano meccanismi di QoS. In queste situazioni si può solamente elaborare il traffico a monte del dispositivo in questione, limitando la banda secondo le
caratteristiche di trasmissione garantite dal tratto seguente ed eseguendo frammentazione, interleaving e ordinamento per salvaguardare i dati prioritari. È importante
che il dispositivo di terze parti riesca ad inoltrare tutto il traffico ricevuto, per evitare che vengano scartati pacchetti senza distinzione di classe. Il meccanismo FIFO
presente in un dispositivo che non supporta la QoS preserva il corretto ordinamento
assegnato dal nodo appositamente inserito.
31
Capitolo 3
Qualità del servizio su reti wireless
Le tecnologie per la comunicazione “senza fili” (Wireless) si stanno diffondendo rapidamente in tutto il mondo. Esse sono utilizzate sia per realizzare reti locali (LAN)
di computer mobili, sia per la comunicazione tra dispositivi di uso comune come
telefoni, macchine fotografiche, ecc.
Le reti locali senza fili sono dette Wireless Local Area Network (WLAN) e vengono
utilizzate per fornire connetivitá ad utenti mobili con prestazioni paragonabili alle
soluzioni broadband via cavo che si trovano sul mercato. Le principali tecnologie
wireless si basano sulle specifiche del protocollo IEEE 802.11.
3.1
Il protocollo IEEE 802.11
Nel 1990 venne costituito il primo gruppo di lavoro 802.11 dedicato allo sviluppo di
uno standard per reti wireless, che venne approvato dall’IEEE sette anni dopo. Parallelamente l’IEEE costituì diversi gruppi di lavoro dedicati allo sviluppo di nuove
funzionalità da aggiungere allo standard di base.
802.11a È lo standard di trasmissione ad alta velocità (54 Mbit al secondo) sulla frequenza 5 GHz. I problemi legati a questa specifica non sono pochi, ad
esempio non è prevista alcuna compatibilità con 802.11b, che era già molto diffuso al momento dell’approvazione di 802.11a. Alcuni produttori hanno sviluppato tecnologie per rendere interoperabili i due standard, anche se
questa linea di prodotti non ha coinvolto i consumatori. Questo contrasto ha
32
Capitolo 3. Qualità del servizio su reti wireless
sicuramente influenzato negativamente lo standard 802.11a, che, lavorando
sulla frequenza 5 GHz, eviterebbe eventuali interferenze con forni microonde
o dispositivi Bluetooth e permetterebbe una trasmissione con meno disturbi.
802.11b È attualmente lo standard piú diffuso, consente trasmissioni a 11 Mbit al
secondo sulla frequenza di 2,4 GHz. Dal momento che è ormai diffuso con
una certa capillarità sul territorio mondiale (soprattutto USA, Europa e Giappone) il WECA e l’ IEEE stanno rivolgendo i loro sforzi principalmente sulla
realizzazione di standard ad esso compatibili, come 802.11g, ormai pronto ad
arrivare sul mercato. Alcuni produttori hanno sviluppato una tecnologia proprietaria chiamata 802.11b+, che comunque non è certificata dall’IEEE e che
permette di trasmettere fino a 22 Mbps.
802.11c/d Sono stati raccolti questi due gruppi di lavoro perché il primo è stato
sospeso e si è poi unito al secondo; i lavori sono ancora in corso e mirano alla
definizione di un livello fisico utilizzabile in qualsiasi paese.
802.11e Anche questo gruppo di lavoro, che si occupa della QoS, non ha completato le proprie attività. Sta lavorando sul livello MAC per aggiungere funzionalità multimediali alla tecnologia 802.11. Una volta approvato questo standard
riguarderà tutte le specifiche di trasmissione (802.11a/b/g) e permetterà di
sfruttare il wireless anche all’interno di apparecchi multimediali.
802.11f È stato già completamente implementato ed è solo in attesa dell’approvazione dell’IEEE, definisce le specifiche, a livello MAC, per la realizzazione
di sistemi wireless distribuiti e, piú in generale, per le attività di roaming.
La realizzazione del protocollo IAPP (Inter Access Point Protocol), su cui la
specifica si basa, è stata sostenuta da diversi produttori tra cui Lucent e Cisco.
802.11g È l’ultimo gruppo costituito per la definizione di nuovi parametri di trasmissione sulla frequenza 2,4 GHz. Attualmente si stanno svolgendo i test e
prodotti compatibili a questa specifica dovrebbero essere presto sul mercato
(anche se alcuni produttori hanno deciso di lanciare dispositivi basandosi su
una draft della specifica). Questo standard, che sarà totalmente compatibile
con 802.11b, è capace di trasmettere fino a 54 Mbps utilizzando la stessa tecnica di modulazione di 802.11a. Come già detto le trasmissioni su 2,4 GHz
33
Capitolo 3. Qualità del servizio su reti wireless
sono ad alto rischio di interferenza, per questo si pensa che 802.11g sia uno
standard di transito verso una futura specifica che permetterà di migrare sulla
piú sicura e versatile frequenza dei 5 GHz.
802.11h Sta tuttora lavorando per la ridefinizione della frequenza di trasmissione
sui 5 GHz, per diminuire le emissioni di onde radio da parte dei dispositivi.
802.11i Questo gruppo di lavoro sta lavorando all’implementazione di sistemi di
sicurezza per 802.11, che si affida attualmente al semplice Wired Equivalent
Privacy (WEP). Il WEP prevede la possibilità di poteggere i dati trasmessi
criptandoli tramite chiavi. Alcuni miglioramenti sono stati già implementati e in alcuni casi già disponibili sul mercato (per esempio il Wi-Fi Protected Access WPA), le pressanti richieste del mercato porteranno a breve alla
realizzazione di altri sistemi di sicurezza piú solidi.
802.11j Questo gruppo, non più attivo, si è occupato della progettazione di una
specifica unica, a livello nazionale, per LAN wireless alla frequenza di 5 GHz.
3.2
QoS su reti wireless 802.11
Le reti WLAN 802.11 sono considerate come un “Ethernet senza fili” per il tipo di
servizio best effort fornito dal livello Medium Access Control (MAC), simile a quello di Ethernet. Ad oggi non sono stati ancora definiti standard per supportare a livello MAC la QoS; sono solamente disponibili alcune bozze del protocollo 802.11e
che dovrà fornire questa funzionalità. Basandosi su queste bozze alcuni produttori
hanno già messo in commercio dispositivi che hanno caratteristiche di QoS. Verranno ora analizzate le caratteristiche principali dei protocolli MAC presenti nello
standard originale 802.11 e nelle bozze 802.11e [8] [9].
3.2.1
802.11
Il protocollo MAC 802.11 consiste di due funzioni di coordinamento, una obbligatoria detta Distributed Coordination Function (DCF) basata sul Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) e una opzionale chiamata Point
34
Capitolo 3. Qualità del servizio su reti wireless
Coordination Function (PCF) basata su un protocollo di tipo poll-and-response. La
maggior parte dei dispositivi disponibili sul mercato utilizza solamente la modalità DCF. Il controllo del traffico realizzato dal DCF si basa su un servizio nonpreemptive (ad esempio una coda FIFO). Il meccanismo del controllo di accesso
del canale è chematizzato in figura 3.1. Quando un pacchetto MAC esce dalla coda deve attendere finchè non si libera il canale e successivamente aspettare per un
intervallo di tempo fissato per evitare potenziali collisioni con altri nodi di rete.
Questo tempo di attesa fissato è detto DCF InterFrame Space (DIFS). Quando il
canale rimane libero per il tempo DIFS, viene iniziato un conto alla rovescia di durata casuale detto backoff (BO), al termine del quale viene trasmesso il pacchetto.
Se il canale diventa occupato viene sospeso temporaneamente il BO, che riprende
dall’ultimo valore calcolato quando il canale ritorna libero per un tempo maggiore
di DIFS. Ogni dispositivo che utilizza il canale wireless possiede un valore chiamato Contention Window (CW), utilizzato per la scelta del BO. Il valore iniziale del
BO è assegnato scegliendo in modo pseudo-casuale un numero intero nell’intervallo
[0,CW]. Se il pacchetto non viene trasmesso con successo viene calcolato un nuovo
BO utilizzando il valore di CW raddoppiato, per diminuire la probabilità di collisione con altre stazioni. Il valore iniziale del CW è indicato come CWmin, mentre
limite massimo che può assumere in caso di insuccessi è definito da CWmax. Nel
caso in cui un pacchetto arriva in una coda vuota e il canale è libero da un tempo
maggiore di DIFS, il pacchetto viene inviato immediatamente.
DIFS
DIFS
PIFS
SIFS
Contention Window
Canale Occupato
Accesso Rinviato
Trasmissione del
pacchetto successivo
Backoff
slot
(t)
mentre il canale e’ libero
viene decrementato il backoff
Figura 3.1: Accesso al canale 802.11 DCF
Per offrire un supporto alla QoS, seppur in modo limitato, è stato definito il Point
35
Capitolo 3. Qualità del servizio su reti wireless
Coordination Function (PCF). Il PCF permette alle stazioni mobili di avere accesso
al canale wireless con diversa piorità, grazie ad una stazione Point Coordinator (PC)
che svolge la funzione di coordinamento. Il PCF ha una priorità maggiore rispetto
al DCF, visto che può trasmettere dopo un intervallo di tempo più breve rispetto alla
durata del DIFS; nel caso di PCF il tempo di attesa viene chiamato PCF InterFrame
Space (PIFS). Il PIFS è sempre minore del Simple InterFrame Space (SIFS). Per
una spiegazione più dettagliata riguardo al PCF si rimanda al testo [8].
3.2.2
802.11e draft
Il gruppo di lavoro 802.11e ha proposto uno sviluppo del protocollo MAC precedentemente descritto, definendo una unica funzione di coordinamento Hybrid Coordination Function (HCF). L’HCF combina le funzioni di DCF e PCF con l’aggiunta
di alcune proprietà specifiche per la QoS. L’HCF utilizza per il controllo d’accesso al canale l’Enhanced Distributed Coordination Function (EDCF). Le stazioni
che operano con il protocollo 802.11e sono chiamate Enhanced Station e in modo opzionale possono operare come controllore centralizzato per le altre stazioni
associate nello stesso gruppo. Generalmente questa funzione denominata Hybrid
Coordinator (HC) viene svolta dall’Access Point (AP). Un AP insieme al gruppo di
stazioni a lui associate forma un Basic Service Set (BSS), mentre se questi componenti sono compatibili con le specifiche del 802.11e l’insieme viene chiamato QoS
Basic Service Set (QBSS).
L’EDCF realizza la QoS introducendo delle categorie di traffico, in modo da
gestire otto differenti priorità. Il valore della priorità, detto Traffic Category Identification (TCID), è memorizzato all’interno dell’header del pacchetto MAC. Una
stazione 802.11e deve avere almeno quattro categorie d’accesso (AC) (al massimo
otto, una per ogni priorità). Ogni categoria d’accesso corrisponde ad una variante
estesa della coda FIFO presente nel DCF (figura 3.2).
Ogni pacchetto che arriva al livello MAC viene indirizzato in una categoria di
accesso in base alla priorità. È da notare come la priorità di valore 0 riceve una priorità relativa tra il livello 2 e il livello 3 (in accordo con le specifiche IEEE 802.1D).
I parametri che influenzano il tempo di attesa prima della trasmissione sono assegnati in funzione della categoria d’accesso del pacchetto elaborato. I parametri
36
Capitolo 3. Qualità del servizio su reti wireless
priorita’ crescente
AC 7
AC 6
AC 5
AC 4
AC 3
AC 0
AC 2
AC 1
Backoff
AIFS[7]
CWmin[7]
CWmax[7]
Backoff
AIFS[6]
CWmin[6]
CWmax[6]
Backoff
AIFS[5]
CWmin[5]
CWmax[5]
Backoff
AIFS[4]
CWmin[4]
CWmax[4]
Backoff
AIFS[3]
CWmin[3]
CWmax[3]
Backoff
AIFS[0]
CWmin[0]
CWmax[0]
Backoff
AIFS[2]
CWmin[2]
CWmax[2]
Backoff
AIFS[1]
CWmin[1]
CWmax[1]
Virtual Collision Handler
Tentativo di
trasmissione
Figura 3.2: Categorie d’accesso nel EDCF
utilizzati sono CWmin[AC], CWmax[AC] e AIFSD[AC], quest’ultimo utilizzato in
sostituzione del DISF presente nel DCF. L’AIFSD è calcolato in questo modo:
AIF SD[AC] = SIF S + AIF S[AC] · SlotT ime
I valori di AIFS[AC], CWmin[AC] e CWmax[AC] sono determinati e comunicati
dall’AP attraverso dei beacon frame trasmessi periodicamente (generalmente ogni
100 msec). L’AP può adattare questi parametri alle condizioni della rete. Questi parametri sono utilizzati per differenziare la priorità d’accesso alle diverse categorie
di traffico. Ogni coda associata ad un AC possiede un proprio valore di AIFS e un
proprio contatore di BO. Se più code finiscono il proprio BO contemporaneamente, la collisione viene gestita in modo virtuale trasmettendo il pacchetto a più alta
priorità e riassegnando un BO agli altri con CW aumentato.
In [10] sono riportati i risultati di alcune simulazioni effettuate sul meccanismo
EDCF.
37
Capitolo 3. Qualità del servizio su reti wireless
3.2.3
Cisco Aironet 350 Series Access Point
In questo lavoro di tesi è stato utilizzato un access point Cisco Aironet 350 Series
dotato del firmware 12.01T1 [23] [24]. Questo access point aderisce allo standard
802.11b, con l’aggiunta di alcune funzionalità di QoS basate sulla bozze delle specifiche dello standard 802.11e fino al novembre 2002. Il traffico gestito dall’access
point può essere distinto in quattro flussi indicati in figura 3.3:
• Radio Downstream si riferisce al traffico inviato dall’access point e ricevuto dall’utente wireless. La gestione della QoS da parte dell’access point si
occupa di questo flusso di dati.
• Radio Upstream si riferisce al traffico dall’utente wireless all’access point.
La gestione della QoS su questo tratto è definita nelle bozze dello standard
802.11e ma non è stata ancora realizzata nei dispositivi disponibili.
• Ethernet Downstream si riferisce al traffico inviato dal router (o switch) collegato alla rete fissa e che arriva all’access point. È possibile applicare QoS
in questo tratto, ma ciò non fa parte delle funzionalità della rete wireless.
• Ethernet Upstream si riferisce al traffico che viaggia dall’access point al
router/switch. L’access point può classificare il traffico che passa in questo
tratto.
Radio Downstream
Ethernet Downstream
Network
Radio Upstream
Access Point
Ethernet Upstream
Utente
Router
o Switch
Figura 3.3: Definizione dei flussi Upstream e Downstream
Le funzionalità di QoS descritte di seguito in questo paragrafo si riferiscono al
tratto Radio Downstream. L’access point aggiunge al DCF, come previsto dal EDCF,
38
Capitolo 3. Qualità del servizio su reti wireless
la possibilità di variare i valori dei parametri CWmin e CWmax in funzione della
classe di traffico. In figura 3.4 è riportata la pagina di configurazione dell’access
point che consente di impostare i valori di CWmin e CWmax per le otto categorie
di traffico supportate. I valori indicati sono quelli di default impostati dal produttore.
Figura 3.4: Valori di default per CWmin e CWmax
È difficile mettere in evidenza l’impatto di valori differenti di CWmin e CWmax
in un diagramma temporale degli eventi, considerato che questi parametri influiscono solamente in modo statistico sulla durata del backoff. Bisogna fare attenzione
quando si fissano questi parametri. Ad esempio, se il valore CWmax di una classe è
minore di CWmin di un’altra classe, quest’ultima rischia di non accedere mai al canale. Nella documentazione disponibile non è indicato il numero di code utilizzate
39
Capitolo 3. Qualità del servizio su reti wireless
dall’access point e nemmeno il meccanismo di gestione dei conflitti virtuali fra le
varie code.
Per classificare i pacchetti in ingresso nelle varie classi di traffico sono disponibili diversi metodi [23] [24]. Questi metodi vengono applicati con un ordine ben
preciso: quelli che hanno meno priorità vengono presi in considerazione solamente
se i metodi che li precedono nella gerarchia non sono attivati. In ordine di priorità,
i metodi sono:
1. Class of Service (CoS): i pacchetti possono essere marcati prima di arrivare
all’access point nel campo CoS definito nello standard IEEE 802.1p;
2. in base al dispositivo: il dispositivo può identificarsi con uno specifico valore
CoS, ad esempio questo meccanismo è utilizzato dai dispositivi Symbol Voice
Over IP (VoIP);
3. filtri: possono essere utilizzati gruppi di filtri (di livello ISO/OSI 2, 3 e 4)
definiti per Virtual LAN (VLAN) o sulle interfacce in modo da assegnare i
pacchetti alle varie classi di servizio;
4. DSCP: se i pacchetti sono marcati attraverso il DSCP, possono essere classificati grazie ad una tabella di conversione DSCP-to-Cos;
5. classe di default per VLAN: può essere impostato un valore CoS di default
per ogni VLAN impostata nell’access point.
3.3
QoS end-to-end tra Diffserv e 802.11e WLAN
Se si vuole ottenere una architettura di QoS end-to-end tra rete fissa DiffServ e
rete wireless 802.11e è necessario coordinare la qualità del servizio dei due sistemi.
Per il traffico proveniente dal tratto Ethernet Downstream, è possibile associare
ad ogni classe di servizio Diffserv, indicata dal DSCP, una classe CoS utilizzata
dallo standard 802.11e. Questa funzione è svolta, nell’access point precedentemente
descritto, dalla funzione DSCP-to-CoS. In [9] vengono proposti due meccanismi
differenti per passare dal DSCP alla classe di traffico dell’access point:
40
Capitolo 3. Qualità del servizio su reti wireless
• Associazione diretta: semplice traduzione diretta tra DSCP e TCID (nel caso
specifico CoS). In questo schema ogni pacchetto IP è posto in una coda a livello MAC 802.11e senza preemption, visto che viene inviato al livello MAC
dell’access point in accordo con l’istante di arrivo, senza tener conto della
priorità. Dato che la dimensione del campo TCIP è di 3 bit mentre quella del
DSCP è di 6 bit, un singolo valore TCID può rappresentare molteplici valori DSCP; per questo motivo possono accedere ad una stessa coda pacchetti
con priorità differenti e in particolare può capitare che un pacchetto venga
accodato ad uno meno importante. A causa della dimensione differente della
dimensione del campo contentente la priorità, il controllo del traffico viene
effettuato con la granularità prevista dal livello MAC 802.11e.
• QoS gerarchica: questo meccanismo prevede di inserire un Traffic Conditioner (TC) equivalente ad un core router DiffServ nella procedura di elaborazione appena prima di incapsulare i pacchetti IP all’interno dei frame MAC
802.11e. In questo modo si ottiene un controllo del traffico la precisione DiffServ prima di inserire i pacchetti, convertiti in frame MAC 802.11e, nelle
code interne dell’access point. Questo permette di gestire la QoS in modo più
accurato e configurabile.
41
Capitolo 4
Realizzazione di una architettura
DiffServ
L’obiettivo finale del progetto di ricerca in cui si colloca questo lavoro è quello
di realizzare, all’interno del campus, una rete che garantisca una fruizione soddisfacente di servizi multimediali a studenti e docenti. Dopo aver analizzato i meccanismi di QoS descritti in letteratura ed aver individuato nell’architettura DiffServ lo strumento migliore per realizzare il sistema desiderato, è stato realizzato un
prototipo per la gestione di un dominio DiffServ.
Inizialmente è stato sperimentato il supporto ai Servizi Differenziati presente in
Linux, in modo da poter utilizzare come router DiffServ i computer a disposizione
in laboratorio. Sono state studiate e sperimentate le funzionalità necessarie a creare
sia i nodi ai margini del dominio (border router), sia i nodi centrali della rete (core
router).
Successivamente è stato realizzato un Bandwidth Broker per il controllo d’accesso e altri componenti software per l’allocazione dinamica delle risorse. È stato
inoltre ideato un meccanismo che, ponedosi come intermediario tra i due estremi di
una comunicazione multimediale, consente l’utilizzo delle risorse di rete da parte
dei software di trasmissione e ricezione più diffusi. Tra le varie categorie di traffico
multimediale è stato preso in esame in modo particolare il video streaming.
Infine è stato ideato e realizzato un sistema per fornire QoS nella rete wireless e
per includerla nell’architettura DiffServ realizzata.
42
Capitolo 4. Realizzazione di una architettura DiffServ
4.1
Supporto DiffServ in Linux
Il kernel Linux, se aggiornato e configurato opportunamente (paragrafo 4.1.3), prevede un insieme di funzioni per la gestione del traffico. Queste funzioni possono
operare utilizzando il campo DSCP dell’header IP per differenziare il trattamento dei dati. Queste proprietà consentono di realizzare un nodo DiffServ con un
computer Linux, utilizzando solamente software open source.
4.1.1
Traffic Control
Il Traffic Control (TC) nel kernel Linux offre un insieme di funzioni per classificare
ed elaborare il traffico di rete. In figura 4.1 sono specificati i punti in cui interviene
il TC nel percorso che i pacchetti attraversano all’interno del kernel.
...
Interface
Interface
Interface
Egress
Egress
Egress
Forwarding
Demultiplexing
Ingress
Ingress
Ingress
Interface
TCP/UDP
Traffic Control
Figura 4.1: Elaborazione dei pacchetti nel kernel Linux
Nell’ingress può essere effettuato un insieme limitato di funzioni (eliminare pacchetti indesiderati, classificazione preliminare, ecc.), mentre nell’egress vengono
svolte le principali funzioni di controllo. Le funzioni di ingress vengono applicate
ai pacchetti in ingresso dopo la catena di prerouting di iptables, prima che vengano
43
Capitolo 4. Realizzazione di una architettura DiffServ
distinti quelli destinati alla macchina stessa da quelli da inoltrare ad un’altra macchina. L’egress si pone dopo la catena iptables di postrouting, come ultimo passaggio
per i pacchetti prima di arrivare all’interfaccia di rete.
Il controllo del traffico effettuato sul flusso in ingresso è chiamato policing,
mentre quello sul traffico inoltrato è detto shaping. Generalmente con i terminini
policing e shaping si intende l’eliminazione o il rallentamento dei paccheti in modo
da limitare la banda utilizzata da un flusso di dati in ingresso ad un router. Nel
caso di router Linux non è prevista la possibilità di ritardare i pacchetti in ingresso,
quindi il policing sull’ingress è limitato all’eliminazione dei dati che eccedono il
limite fissato.
I moderni kernel Linux, oltre al TC, offrono molte funzioni avanzate per la gestione della rete (protezione mediante firewall, routing basato su vari attributi dei
pacchetti, load balancing tra diversi server, ecc.). Queste funzionalità, TC compreso, possono essere utilizzate mediante delle Application Programming Interface
(API). Tuttavia l’utilizzo di queste API risulta molto complicato, sia per il grande
numero di funzioni realizzate, sia perchè si tratta di funzioni di basso livello. La
descrizione della struttura a basso livello del TC si trova in [25] e [26].
Iproute2 è un pacchetto software che permette di accedere alle funzioni avanzate
di networking da linea di comando. Questi comandi permettono anche di creare
script di configurazione della rete con sintassi relativamente semplice. Maggiori
informazioni si possono trovare nel sito Linux Advanced Routing & Traffic Control
(LARTC) [27], che contiene in particolare il manuale Linux Advanced Routing &
Traffic Control HOWTO [28].
Tra i vari comandi disponibili in Iproute2, ha un particolare interesse per questa
tesi il comando tc, che permette di impostare le funzioni di Traffic Control. Per
configurare tc in modo che sia supportato il meccanismo di marcatura DiffServ dei
pacchetti si deve ricompilare il pacchetto dopo aver abilitato l’opzione nel file di
configurazione. I componenti principali del tc sono le code, le classi interne alle
code, i filtri e il policing.
44
Capitolo 4. Realizzazione di una architettura DiffServ
4.1.2
Code, classi, filtri e policing
Ad ogni interfaccia di rete è associata una coda. Le code possono essere di vari tipi,
in base alla politica di gestione che definisce il modo in cui i pacchetti sono inviati.
Gli algoritmi di gestione delle code sono detti Queuing Discipline (qdisc). Esistono
due categorie di qdisc: classless qdisc e classful qdisc. In questo paragrafo viene
brevemente descritto il funzionamento delle code, delle classi, e dei filtri disponibili in Linux. Per una descrizione più approfondita dei parametri utilizzati dai vari
componenti di controllo del traffico si rimanda all’HOWTO [28].
Classless qdisc
Le qdisc classless sono gli algoritmi più semplici, che non prevedono suddivisioni
interne configurabili delle code. Queste qdisc hanno il compito di riordinare, ritardare o eliminare i dati. Possono essere usate per modellare l’intero traffico di una
interfaccia, senza la possibilità di operare suddivisioni. Le code classless disponibili
sono:
• pfifo_fast: è una coda di tipo First-In-First-Out. È formata da tre “bande”,
ognuna delle quali dispone di una FIFO. Fino a quando sono presenti dati
nella banda 0 non viene servita la banda 1 e lo stesso vale per le bande 1 e
2. Il kernel supporta la piorità specificata dal flag Type of Service (ToS) dei
pacchetti, inserendo i dati minimum delay nella banda 0. Nonostante questa
differenziazione del traffico, la coda pfifo_fast non è da confondere con una
coda classful. In tabella 4.1 è indicata la banda associata ad ogni valore del
ToS.
• Token Bucket Filter (TBF): è una semplice qdisc che inoltra i pacchetti con
una frequenza che non supera un valore fissato, ad eccezione di burst limitati.
La descrizione dettagliata del funzionamento di un filtro TBF si trova al paragrafo 2.2.2. Il TBF è la scelta migliore se si vuole semplicemente rallentare il
traffico che attraversa una interfaccia. Un esempio di utilizzo di questo filtro
mediante il comando tc è il seguente:
# tc qdisc add dev ppp0 root tbf rate 220kbit\
latency 50ms burst 1540
45
Capitolo 4. Realizzazione di una architettura DiffServ
TOS
0x0
0x2
0x4
0x6
0x8
0xa
0xc
0xe
0x10
0x12
0x14
0x16
0x18
0x1a
0x1c
0x1e
Bits
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Significato
Normal Service
Minimize Monetary Cost
Maximize Reliability
mmc+mr
Maximize Throughput
mmc+mt
mr+mt
mmc+mr+mt
Minimize Delay
mmc+md
mr+md
mmc+mr+md
mt+md
mmc+mt+md
mr+mt+md
mmc+mr+mt+md
Priorità Linux
0 Best Effort
1 Filler
0 Best Effort
0 Best Effort
2 Bulk
2 Bulk
2 Bulk
2 Bulk
6 Interactive
6 Interactive
6 Interactive
6 Interactive
4 Int. Bulk
4 Int. Bulk
4 Int. Bulk
4 Int. Bulk
Banda
1
2
1
1
2
2
2
2
0
0
0
0
1
1
1
1
Tabella 4.1: Banda pfifo_fast associata ad ogni Type of Service
Questo comando associa all’interfaccia una coda TBF limitando la banda a
220kbit al secondo, con un tempo di attesa massimo di 50ms per ogni pacchetto e bucket che contiene 1540 byte. È inoltre possibile specificare altri
parametri, ad esempio il numero minimo di gettoni utilizzati da un pacchetto o il rate massimo ottenibile nel caso in cui sono presenti dei gettoni nel
bucket.
• Stochastic Fairness Queueing (SFQ): è la semplice realizzazione di un algoritmo della famiglia fair queuing. È meno accurata rispetto ad altri tipi di
code, ma ha il vantaggio di richiedere meno risorse computazionali pur realizzando una equità ottima tra i vari flussi. SFQ è definita Stochastic perchè
non viene realmente allocata una coda per ogni sessione, ma è presente un
algoritmo di hashing per dividere il traffico in un numero limitato di code
L’algoritmo di hashing viene modificato frequentemente (nell’ordine di pochi secondi) in modo che la contesa di piú sessioni su di una stessa coda non
generi un comportamento osservabile da parte dell’utente. Questa qdisc è utile solamente nel caso in cui l’interfaccia di output presenta una congestione,
46
Capitolo 4. Realizzazione di una architettura DiffServ
altrimenti non si nota alcun effetto. I parametri configurabili sono:
– perturb: indica ogni quanti secondi viene riconfigurato l’hashing; è consigliato il valore di 10 secondi.
– quantum: numero di byte che una coda può inviare prima di cedere
il turno alla successiva. Questo valore non deve essere minore della
dimensione dei pacchetti.
– limit: numero di pacchetti che possono essere accodati in questo SFQ,
superato il quale cominciano ad essere eliminati.
• Random Early Detection (RED): serve per evitare il formarsi di congestioni,
eliminando in modo casuale pacchetti prima di saturare le risorse disponibili.
Le code normali funzionano in modo tail-drop, accodando tutti i pacchetti
fino a raggiungere il limite massimo di capienza ed eliminando il traffico che
non riesce ad entrare. Il tail-drop non agisce in modo equo tra le varie sessioni, con il rischio di causare la perdita dei dati di sincronizzazione causandone la ritrasmissione, riempiendo nuovamente il router già sovraccaricato. Il
meccanismo RED è utile in particolare per i backbone, dove non è possibile gestire la complessità dell’elaborazione per sessione altrimenti necessaria
per offrire un coda equa. Per utilizzarla attraverso il comando tc è necessario
specificare, tra i vari parametri, la dimensione in byte della coda (limit), la soglia minima (min) superata la quale si inizia ad eliminare i pacchetti, la soglia
massima (max) e la probabilità per i pacchetti di essere scartati quando viene
raggiunto il limite (probability).
• Generic Random Early Detection (GRED): è una qdisc RED con l’aggiunta di
varie code interne scelte dai pacchetti in base al campo DiffServ tcindex. Per
realizzare il PHB Assured Forwarding, oltre alle quattro priorità di latenza che
possono essere ottenute con componenti già esistenti, serve un meccanismo
che consenta di mettere in pratica le tre precedenze di drop. Per questo motivo
è stata creata la qdisc GRED, che utilizza i bit meno significativi del DSCP,
memorizzato temporaneamente nel campo skb->tc_index, per selezionare la
classe di drop e quindi il corrispondente insieme di parametri RED [25].
47
Capitolo 4. Realizzazione di una architettura DiffServ
Classful qdisc
Le qdisc classful contengono varie classi, che a loro volta possono contenere qdisc
sia classless che classful. A differenza della classe pfifo_fast che contiene “bande”
non configurabili, le classi che appartengono ad una qdisc classful possono essere
configurate attraverso il comando tc. Le qdisc classful sono utili quando si hanno
diversi tipi di traffico che devono ricevere un trattamento diversificato. Ogni interfaccia ha una root qdisc di uscita (egress), di default è impostata una pfifo_fast. Ad
ogni qdisc e ad ogni classe è assegnato un identificatore detto handler. Oltre alla
egress qdisc può essere impostata anche una ingress qdisc per effettuare il policing
sul traffico in ingresso.
L’identificatore delle qdisc e delle classi è composto da due parti, uno principale
ed uno secondario, espressi nella forma: <principale>:<secondario>. Normalmente
la root qdisc viene chiamata “1:”, che equivale al valore “1:0” visto che l’identificatore secondario delle qdisc è sempre uguale a 0. Le classi hanno l’identificatore
principale uguale a quello della qdisc a cui appartengono (parent), mentre il secondario serve per distinguerle all’interno della qdisc. Per indirizzare i pacchetti nelle
classi opportune sono utilizzati dei filtri associati alle qdisc classful. I filtri possono
essere configurati per distinguere i pacchetti in base ai vari campi degli header di
livello 3 e 4.
Quando un pacchetto deve raggiungere una interfaccia di uscita, viene indirizzato dalla catena di filtri a partire dalla root qdisc verso la classe opportuna, nella
quale viene messo in coda. Quando il kernel decide di inviare un pacchetto ad una
interfaccia manda la richiesta alla root qdisc “1:”, la quale passa la richiesta di
prelevare il pacchetto alle classi derivate. Questo meccanismo continua finchè non
viene raggiunta una coda contenente il pacchetto. Ogni classe comunica le risposte
solamente alla propria parent qdisc. Le classi non possono ricevere le richieste di
prelevare pacchetti dalla coda ad una frequenza maggiore di quella prevista dalla
propria parent qdisc. È ad esempio possibile limitare il traffico su una qdisc ed utilizzare una classe interna per garantire un comportamento equo ai vari flussi. Le
classful qdisc in Linux sono:
• PRIO: questa qdisc permette semplicemente di suddividere il traffico in classi configurando opportunamente un filtro. L’elaborazione effettiva del flusso
48
Capitolo 4. Realizzazione di una architettura DiffServ
deve essere realizzata dalle classi e dalle qdisc che discendono da questa. I
parametri del comando tc che si possono configurare sono:
– bands: numero di classi da creare, se non specificato ne vengono create
tre di default;
– priomap: se non viene fornito un filtro per classificare il traffico viene
utilizzata la priorità TC_PRIO.
Un semplice esempio per creare una PRIO qdisc con tre sottoclassi è il seguente:
# tc qdisc add dev eth0 root handle 1: prio
# tc qdisc add dev eth0 parent 1:1 handle 10: sfq
# tc qdisc add dev eth0 parent 1:2 handle 20: \
tbf rate 20kbit buffer 1600 limit 3000
# tc qdisc add dev eth0 parent 1:3 handle 30: sfq
Il primo comando crea la qdisc root direttamente collegata con l’interfaccia
egress del device eth0. La qdisc creata è di tipo prio. I tre comandi seguenti
associano alle tre classi di default (1:1, 1:2 e 1:3) della qdisc prio altrettante
qdisc interne.
• Class Based Queueing (CBQ): è la qdisc più complessa e più importante.
Permette di creare diverse classi, che a loro volta possono essere suddivise
in ulteriori classi, a cui assegnare caratteristiche differenti (larghezza di banda, priorità, tipo di coda, ecc.). Queste classi possono essere isolate tra loro,
oppure possono prendere in prestito la banda non utilizzata dalle classi che
discendono dallo stesso parent (classi “gemelle”). L’utilizzo di questa coda è
molto complesso visto che presenta molti paramentri di configurazione e che
l’algoritmo non è molto preciso nel suddividere le risorse. Questa mancanza
di precisione nello shaping è dovuta alla difficoltà che ha l’algoritmo di approssimare la banda in funzione della percentuale di utilizzo dell’hardware di
rete. Molte variabili possono influenzare la precisione della stima della banda, come ad esempio il malfunzionamento di un driver che non permette al
49
Capitolo 4. Realizzazione di una architettura DiffServ
dispositivo di raggiungere le prestazioni nominali. I parametri da specificare
per configurare una qdisc CBQ possono essere suddivisi in tre categorie:
– parametri per lo la limitazione della banda: ad esempio la banda fisica del dispositivo (bandwidth), quella desiderata per la classe (rate), la dimensione dei burst tollerata (maxburst) e altri parametri per
la correzione dell’algoritmo di shaping.
– parametri per il comportamento differenziato delle classi: la qdisc CBQ
utilizza un meccanismo di tipo Weighted Round Robin per assegnare differenti priorità alle diverse classi. Le classi con valore prio minore ottengono una maggiore priorità. È possibile assegnare un peso alle classi
tramite i parametri weight e allot per impostare il numero di pacchetti
da inviare ad ogni turno.
– parametri per la condivisione del canale e del prestito di banda: isolated
o sharing specifica la disponibilità di una classe a cedere o meno ad altre
la propria capacità momentaneamente inutilizzata. bounded o borrow
specifica se la classe può tentare o meno di prendere in prestito le risorse
inutilizzate dalle classi “gemelle”.
– parametri per creare filtri: oltre all’utilizzo dei normali filtri per determinare in quale classe accodare i pacchetti è possibile, attraverso i parametri split e defmap, creare filtri veloci che operano tramite maschere
di bit da applicare al campo ToS dei pacchetti. Questi parametri devono
essere impostati nelle classi “figlie”. Se il campo ToS rimane invariato
dopo che gli è stato applicato un AND bit a bit con la maschera specificata da defmap, il pacchetto viene accodato alla classe che definisce la
maschera. Il valore assegnato a split indica in quale qdisc o classe deve
essere applicato il filtro.
• Hierarchical Token Bucket (HTB): questa qdisc è stata pensata per ovviare ai
problemi di complessità e scarsa precisione della CBQ. È ideale se si intende
suddividere la banda a disposizione in varie classi (link sharing), fornendo a
queste una banda garantita. È inoltre possibile specificare la quantità massima
di banda che una classe può prendere in prestito dalla classe parent se restano
50
Capitolo 4. Realizzazione di una architettura DiffServ
delle risorse inutilizzate. La configurazione della qdisc HTB è abbastanza
semplice anche per creare una struttura complessa. La qdisc HTB è presente
nel kernel Linux se si utilizza una delle ultime versioni rilasciate (a partire
dalla 2.4.20-pre1 e 2.5.31 in avanti), altrimenti è necessario applicare una
patch disponibile nel sito Internet di riferimento per l’HTB [29]. In ogni caso
è necessario avere una versione di tc modificata per gestire questa qdisc. Per
indicare la banda da riservare alla classe si utilizza il parametro rate, mentre
con il ceil si specifica la banda massima che può essere usata prendendone in
prestito. Per ogni classe deve essere indicato anche il burst consentito, mentre
è opzionale il paramentro prio che specifica la priorità della classe rispetto alle
“gemelle”. Nella root qdisc si può indicare, attraverso il parametro default, la
classe in cui accodare i pacchetti non classificati in altro modo.
• Diffserv field marker (dsmark): permette di realizzare i Differentiated Services con diversi PHB. I pacchetti sono distinti e accodati nelle sottoclassi
attraverso il campo DSCP presente nell’intestazione IP. Con il parametro indices si specifica la dimensione della tabella delle coppie (mask, value). Un
esempio tipico di creazione di una qdisc dsmark è il seguente:
#tc qdisc add dev eth0 handle 1:0 root dsmark \
indices 64 set_tc_index
La tabella viene utilizzata per modificare, in uscita dalla qdisc in base alla
classe di appartenenza, il DSCP dei pacchetti attraverso la funzione
New_Ds_field = ( Old_DS_field & mask ) | value
Per impostare con i valori desiderati una istanza nella tabella mask-value si
deve modificare una classe creata di default dalla qdisc:
#tc class change dev eth0 classid 1:1 dsmark \
mask 0x3 value 0xb8
Questo comando assegna ai pacchetti che transitano nella classe 1:1 il DSCP
corrispondente al PHB satndard EF. La maschera 0x3 azzera i bit del DSCP
51
Capitolo 4. Realizzazione di una architettura DiffServ
preesistente conservando i due meno significativi del ToS non utilizzati, mentre il “value” che viene applicato attraverso l’operazione di OR imposta il
DSCP con il valore 0xb8 che rappresenta il traffico EF.
skb−>iph−>tos
AND
classe
filtro
tc index
qdisc
interna
OR
mask value
...
...
qdisc dsmark (sch_dsmark)
skb−>tc_index
Figura 4.2: Schema di funzionamento della qdisc dsmark
Se nel comando di creazione di una qdisc dsmark si specifica “set_tc_index”,
viene copiato temporaneamente il valore DSCP nella variabile skb->tc_index.
Questo valore, che può mutare durante il percorso, viene utilizzato in uscita
dalla qdisc come indice all’interno della tabella mask-value per calcolare il
nuovo DSCP da assegnare al pacchetto.
Filtri
Ogni volta che deve essere presa la decisione per un pacchetto su quale sia la classe che lo deve elaborare viene interrogata la catena di classificatori. Questa catena è composta da filtri collegati alle qdisc classful o alle classi che necessitano di
prendere la decisione.
Quando viene accodato un pacchetto, ogni ramo della catena di filtri viene consultata per ottenere le istruzioni. La configurazione tipo nel caso in figura 4.3 prevede di avere un filtro in 1:1 per dirigere i pacchetti ad esempio verso 12: e un filtro
in 12: per mandare i pacchetti verso le foglie (es. 12:2). Il secondo filtro di questo
esempio può anche essere posto in 1:1, ma si ottiene una configurazione più effi52
Capitolo 4. Realizzazione di una architettura DiffServ
1:
Legenda:
1:1
qdisc
class
10:
10:1
11:
10:2
12:
12:1
filter
12:2
Figura 4.3: Esempio di utilizzo della catena di filtri
ciente posizionando i test specifici in fondo alla catena. Si possono usare diversi
filtri che si basano su differenti metodi di classificazione:
• route: si basa sull’identificatore dell’instradamento
• firewall (fw): marchio di Netfilter/iptables
• U32: header (IP, TCP, ecc.) dei pacchetti
• RSVP o RSVP IPv6
• policing filters: filtri che selezionano il flusso fino ad un certo limite di banda.
È di particolare interesse il filtro u32 che classifica in base ai valori presenti nelle
intestazioni dei pacchetti, ad esempio l’indirizzo source/destination, la porta source/destination, il protocollo IP, il marchio di ipchains o iptables (fwmark) o il ToS
(che include il DSCP). Oltre a questi è presente anche un filtro chiamato tcindex
apposito per l’architettura DiffServ che identifica i pacchetti in base al DSCP.
In figura 4.4 è rappresentato lo schema di funzionamento di un filtro tcindex.
La prima parte del filtro, creata con il comando riportato di seguito, si occupa di
prelevare il valore DSCP dal ToS del pacchetto.
53
Capitolo 4. Realizzazione di una architettura DiffServ
mask=0xfc
shift=2
classe
filtro
tcindex
filter
handle
0x2e
classful qdisc
dsmark 1:0
Figura 4.4: Schema del filtro tcindex
#tc filter add dev eth0 parent 1:0 protocol ip prio 1 \
tcindex mask 0xfc shift 2 pass_on
Questo filtro applica al ToS una maschera di valore 0xfc che filtra i due bit meno
significativi non utilizzati dal DSCP e successivamente esegue uno shift prelevando solamente i sei bit di interesse. A questo punto possono essere creati filtri che
indirizzano i pacchetti nelle classi interne a seconda del DSCP:
#tc filter add dev eth0 parent 2:0 protocol ip prio 1 \
handle 0x2e tcindex classid 2:1 pass_on
Il filtro creato con questo comando indirizza i pacchetti marcati con DSCP 0x2e,
corrispondente al PHB EF, nella classe 2:1.
Policing
L’obiettivo del policing è di accertarsi che il traffico non ecceda certi limiti, eliminando la parte in eccesso. Per semplicità si considera il policing come il meccanismo di controllo del volume di traffico. Esistono quattro differenti meccanismi di
policing [26]:
• decisioni prese dai filtri;
• rifiuto di accodare un pachetto;
• eliminazione di pacchetti da una qdisc interna;
• eliminazione di un pacchetto per fare posto ad uno nuovo che si accoda.
54
Capitolo 4. Realizzazione di una architettura DiffServ
4.1.3
Configurazione del kernel
Il materiale che riguarda il supporto al Diffserv in Linux si può trovare in una pagina
internet dedicata [30]. Il supporto per i servizi differenziati è gia integrato nei kernel
2.4 presenti nelle macchine a disposizione nel laboratorio ParMa2, ma per abilitarlo
è necessario ricompilare i kernel interessati configurandoli opportunamente. Accedendo al menù di configurazione del kernel, sotto la voce Networking options, si
devono attivare i seguenti valori:
• Kernel/User netlink socket (CONFIG_NETLINK)
• Network packet filtering (CONFIG_NETFILTER)
• QoS and/or fair queuing (CONFIG_NET_SCHED)
Nella sottosezione QoS and/or fair queuing:
• CBQ packet scheduler (CONFIG_NET_SCH_CBQ)
• HTB packet scheduler (CONFIG_NET_SCH_HTB)
• The simplest PRIO pseudoscheduler (CONFIG_NET_SCH_PRIO)
• SFQ queue (CONFIG_NET_SCH_SFQ)
• RED queue (CONFIG_NET_SCH_RED)
• GRED queue (CONFIG_NET_SCH_GRED)
• DiffServ field marker (CONFIG_NET_SCH_DSMARKER)
• Ingress Qdisc (CONFIG_NET_SCH_INGRESS)
• QoS support (CONFIG_NET_QOS)
• Packet classifier API (CONFIG_NET_CLS)
• TC index classifier (CONFIG_NET_CLS_TCINDEX)
• Firewall based classifier (CONFIG_NET_CLS_FW)
55
Capitolo 4. Realizzazione di una architettura DiffServ
• U32 classifier (CONFIG_NET_CLS_U32)
• Traffic policing (CONFIG_NET_CLS_POLICE)
Maggiori informazioni sul kernel di linux e su come compilarlo si trovano nel Linux
Kernel HOWTO [31].
4.2
Architettura per il controllo d’accesso
Dopo aver abilitato su alcuni computer le funzionalità che permettono di realizzare
nodi DiffServ è sorto il problema della gestione dinamica del sistema. Si è pensato
di realizzare un sistema con controllo d’accesso e allocazione dinamica delle risorse che permetta l’utilizzo delle risorse di rete a un vasto numero di persone, come
ad esempio gli studenti e i docenti dell’ateneo. La banda a disposizione, seppur abbondante, non può sostenere l’utilizzo contemporaneo di applicazioni multimediali
da parte di tutti gli utenti abilitati. Per questo è necessario limitare, a seconda della banda utilizzata, il numero di utenti che usufruiscono di un servizio di qualità.
Il controllo d’accesso permette, infatti, di evitare la congestione della porzione di
banda riservata al traffico prioritario limitando il numero e la dimensione dei flussi
accolti. In particolare il controllo d’accesso è importante per la gestione dei colli di
bottiglia della rete, come ad esempio le reti wireless.
Se si vuole fornire un servizio multimediale con QoS agli studenti e ai professori
all’interno della rete del campus ogni utente deve possedere un account. Presumibilmente gli account hanno caratteristiche differenti, ad esempio il servizio massimo a
cui si ha diritto, a seconda del gruppo di appartenenza.
Il controllo d’accesso non preclude comunque la possibilità di limitare gli account in modo che le risorse siano sempre disponibili per gli utenti autorizzati.
Questo caso può essere visto sia come spreco di risorse, visto che nella maggior
parte del tempo il sistema è sottoutilizzato, sia come servizio di ottima qualità verso i clienti che possono disporre in qualsiasi momento delle risorse contrattate. Il
controllo d’accesso implica la necessità di configurazione dinamica del sistema in
modo da permettere solo ai servizi autorizzati di accedere alle risorse condivise.
Lo studio dello stato dell’arte [7] ha evidenziato che il Bandwidth Broker sviluppato dall’Università del Kansas (KUBB) [32] poteva essere la base per lo sviluppo
56
Capitolo 4. Realizzazione di una architettura DiffServ
degli strumenti necessari a questo progetto. L’Università del Kansas ha realizzato,
oltre al BB, un pacchetto per la configurazione dinamica di router DiffServ basati
su Linux. Questi strumenti sono stati modificati e configurati opportunamente per
funzionare sui sistemi presenti in laboratorio. È stato necessario aggiornare il software che presentava errori sia di compilazione che di utilizzo errato delle funzioni
di controllo del traffico. Successivamente sono state aggiunte alcune parti mancanti,
come ad esempio la scelta automatica dell’edge router e della giusta interfaccia di
rete da configurare nel router stesso. Infine sono state apportate le modifiche necessarie per poter utilizzare il servizio nel modo voluto. In particolare è stato ripensato
il client che effettua la richiesta di allocazione delle risorse e i parametri contenuti
nella richiesta stessa, per poterlo utilizzare nei progetti in via di sviluppo presso il
dipartimento. Il BB realizzato non gestisce un protocollo interdominio.
4.2.1
Modelli di interazione con il BB
L’obiettivo del sistema è di consentire agli utenti autorizzati di un particolare servizio, ad esempio lo streaming di filmati, di usufruire della QoS nel tratto di rete
attraversato del flusso di dati. Sono stati analizzati differenti meccanismi per la configurazione della QoS. In particolare, il compito di contattare il BB tramite una
Resourse Allocation Request (RAR) può essere svolto da varie entità:
1. utente attraverso software dedicato
Ogni utente può utilizzare direttamente un software appositamente creato per
inviare le richieste RAR al BB. La richiesta di RAR deve essere formulata prima di utilizzare il servizio desiderato. Questo è il meccanismo più semplice
dal punto di vista dell’architettura visto che non comporta la realizzazione di
componenti aggiuntivi. È indispensabile, da parte degli utenti, la conoscenza
approfondita delle caratteristiche tecniche della sessione per cui si richiede
QoS ed il rigoroso rispetto delle politiche fissate dall’organizzazione che gestisce il sistema. Permette lo scambio di tutte le informazioni necessarie tra
utente e sistema. L’utente, infatti, può ricevere direttamente la risposta del BB
alla RAR ed è quindi in grado di decidere in modo autonomo cosa fare nel
caso di mancata allocazione.
57
Capitolo 4. Realizzazione di una architettura DiffServ
2. utente attraverso un client multimediale consapevole della QoS
L’utente utilizza un client appositamente realizzato o un client generico opportunamente modificato per gestire la comunicazione con il BB. I client possono essere dotati di interfaccia con il BB solamente se si possiede il codice sorgente o se è possibile aggiungere plug-in. Alcune delle informazioni
necessarie possono essere impostate autonomamente dal software in modo
trasparente all’utente, garantendo maggior sicurezza e semplicità di utilizzo.
Parte della complessità viene portata sul client, obbligando gli utenti a dotarsi
di un software apposito. Permette una comunicazione continua e completa tra
utente e sistema.
3. server consapevole della QoS
Il server, prima di svolgere i suoi normali compiti, configura la QoS per conto
dell’utente. Questo meccanismo è chiaramente utilizzabile solo nel caso di
servizio di tipo client/server. Permette l’utilizzo lato client di strumenti di uso
comune, non consentendo però di comunicare all’utente informazioni relative
alla QoS. Non è possibile modificare server commerciali distribuiti solamente
in forma binaria. I server che forniscono contenuti multimediali potrebbero
inoltre venire dotati di strumenti per classificare in modo differente le varie
tipologie di dati inviati; ad esempio uno streaming server potrebbe assegnare
una priorità maggiore ai frame che incidono maggiormente sulla qualità della
riproduzione.
4. intermediario che intercetta le richieste dei client
Un programma viene posto tra client e server (oppure tra due peer nel modello peer-to-peer) per configurare la QoS intercettando le richieste di setup del servizio. I client e i server possono essere inconsapevoli della QoS.
L’intermediario può essere ad esempio un proxy per il servizio richiesto. Le
informazioni necessarie per chiedere una RAR al BB devono essere ricavate dinamicamente dal proxy in base ad informazioni presenti nel protocollo
di comunicazione tra client e server, nel profilo utente precedentemente specificato ed eventualmente ottenute dialogando con altre entità presenti nel
sistema.
58
Capitolo 4. Realizzazione di una architettura DiffServ
5. servizio di allocazione delle risorse integrato nel sistema
Il servizio di allocazione delle risorse viene offerto in modo user friendly,
direttamente integrato con altri moduli del sistema come il servizio di autenticazione o di ricerca di contenuti. Questo modello può essere realizzato
attraverso un sistema basato su Web Services come ad esempio una architettura GRID. Questo servizio può essere offerto tramite pagine web in modo
da richiedere solamente la presenza di un browser sul dispositivo dell’utente. Grazie all’interazione con gli altri componenti del sistema è relativamente
semplice ricavare le informazioni necessarie per effettuare le RAR. Questo
meccanismo permette l’utilizzo di client e server commerciali, consente di
automatizzare la procedura di richiesta delle RAR e rende infine disponibile
un completo canale di comunicazione tra utente e sistema.
Nei modelli 3 e 4 l’utente non specifica nessun parametro di QoS durante la richiesta del servizio e non genera direttamente segnalazione out-of-band. Gli utenti
che hanno preventivamente contrattato un livello di servizio con il sistema vengono
serviti, compatibilmente con le risorse disponibili a tempo di esecuzione, secondo
gli accordi fissati. Non è possibile comunicare all’utente il livello di servizio assegnato, visto che le uniche informazioni significative per il client sono quelle previste
nel protocollo utilizzato che non prevede parametri di QoS. Per questo è importante la possibilità di specificare un profilo utente dove indicare il comportamento da
tenere in caso di mancata allocazione della banda richiesta. In alternativa, potrebbe
essere inviato all’utente, prima del contenuto richiesto, un messaggio preconfezionato (audio o video) contentente le informazioni sulla QoS disponibile, in modo che
l’utente possa agire di conseguenza. Senza questi meccanismi le uniche informazioni a disposizione dell’utente sono quelle qualitative legate al resa della riproduzione
multimediale.
Nei modelli 3 e 4 è inoltre possibile effettuare adattamento dei contenuti a seconda delle risorse di banda disponibili e delle caratteristiche del dispositivo utilizzato dall’utente, come ad esempio la risoluzione dello schermo (capabilities). Una
soluzione alternativa che può essere utilizzata in tutti i modelli proposti è quella di
codificare preventivamente uno stesso contenuto in più formati con differente risoluzione e livello di compressione. Questo sistema consente il risparmio delle risorse
computazionali necessarie ad effettuare la trancodifica on demand ma fornisce una
59
Capitolo 4. Realizzazione di una architettura DiffServ
minore personalizzazione. La minore personalizzazione garantisce d’altro canto una
maggiore probabilità di riutilizzo del medesimo file, migliorando le prestazioni di
un sistema dotato di caching proxy.
4.2.2
Prototipo realizzato
È stato realizzato un prototipo nel quale si è preferito non lasciare all’utente la
possibilità di richiedere direttamente la configurazione della QoS, per ragioni di sicurezza e di utilizzo corretto delle risorse. È stato sperimentato un sistema basato
sulla presenza di un intermediario tra client e server per un servizio di video streaming. Il sistema è in grado di ottenere autonomamente le informazioni necessarie
al setup della QoS, come ad esempio la banda e la durata del filmato e gli indirizzi
IP di sorgente e destinazione.
Nel prototipo messo a punto in questo lavoro è stato utilizzato un Caching Proxy
per il protocollo Real Time Streaming Protocol (RTSP). In particolare è stata usata
la versione 2.3 del RTSP proxy di RealNetworks, estesa da Matteo Merli che ha
introdotto la funzionalità di caching [33]. In questo schema il proxy ha il compito
di recuperare tutte le informazioni necessarie per formulare una richiesta di allocazione delle risorse, di contrattare con il BB la QoS in nome dell’utente ed infine di
fornire il filmato richiesto. Il proxy è stato dotato delle funzionalità necessarie ad
operare nel modo appena descritto.
Gli utenti, per poter usufruire di QoS, devono per prima cosa ottenere un SLA
dall’amministratore del dominio DiffServ che lo collega al server. Quando l’utente
desidera vedere un filmato con QoS deve configurare nel player l’utilizzo del proxy.
Lo schema di comunicazione tra i componenti del sistema è il seguente (figure 4.5
e 4.6 ):
1. l’utente richiede un filmato eseguendo una RTSP SETUP al server di streaming attraverso il proxy
2. il proxy ottiene l’identità dell’utente in base all’indirizzo IP da un apposito
servizio (ad esempio il servizio di autenticazione dei clienti wireless)
3. se l’utente è autorizzato il proxy manda una RAR al BB per garantire la QoS
nel tratto proxy-utente
60
Capitolo 4. Realizzazione di una architettura DiffServ
4. il BB risponde indicando se la RAR è stata accettata o meno e configura
opportunamente gli edge/leaf router
5. se la cache del proxy contiene il filmato richiesto si passa al punto 9, altrimenti
il proxy manda una RAR al BB per garantire la QoS nel tratto server-proxy
6. il BB risponde e configura gli edge/leaf router
7. il proxy inoltra il la richiesta RTSP SETUP al server
8. il server risponde OK al proxy
9. il proxy risponde OK all’utente
10. l’utente può mandare il comando PLAY al proxy
11. se il proxy possiede la copia del filmato si passa al punto 13, altrimenti inoltra
il comando PLAY al server
12. il server invia il flusso al player
13. il proxy invia il flusso all’utente
Il player non è in grado di interpretare comunicazioni che riguardano l’effettiva
configurazione della QoS. Non è possibile fare in modo che l’utente possa scegliere
a tempo di esecuzione il comportamento da tenere in caso di mancata configurazione della QoS, a meno di interrompere il playback. L’utente si potrebbe accorgere
della mancata QoS solamente attraverso la scarsa qualità dell’immagine ricevuta.
Rimangono aperti alcuni problemi di sicurezza, che non sono stati oggetto di
questa tesi. Ad esempio il servizio di autorizzazione e autenticazione è stato previsto, per completezza, ma non è stato realizzato.
4.2.3
Componenti del sistema
Strumenti di amministrazione
Gli SLA basati sulle richiestre dei clienti sono generalmete aggiunti al BB dall’amministratore del dominio attraverso la apposita pagina web (figura 4.7). Il cliente che
61
Capitolo 4. Realizzazione di una architettura DiffServ
EDGE
ROUTER
UTENTE
RTSP
PROXY
AAA
SERVER
BB
EDGE
ROUTER
STREAMING
SERVER
1. RTSP SETUP
2a. WHOIS(IP)?
2b. USERID
3. RAR(src PROXY, dst UTENTE)
4a. CONFIGURA
4b. RAR ACCETTATA
5. RAR(src SERVER, dst PROXY)
6a. CONFIGURA
6b. RAR ACCETTATA
7. RTSP SETUP
8. OK
9. OK
10. PLAY
11. PLAY
12. STREAMING
13. STREAMING
Figura 4.5: Schema di comunicazione tra i componenti del sistema
richiede un SLA all’amministratore può essere un singolo utente interno al dominio
o l’amministratore di un dominio vicino. Il BB effettua un controllo sulla banda
disponibile prima di ammettere un nuovo SLA. Se non può essere soddisfatto viene ritornata la banda disponibile in quell’intervallo di tempo invece di un semplice
messaggio di errore. La pagina web di amministrazione offre inoltre la possibilità
di vedere e modificare gli SLA già presenti e di osservare le Resource Allocation
Request attive. Questi servizi sono realizzati mediante programmi in linguaggio C
e script in Perl che si occupano comunicare sia con il processo principale del BB
sia con la base di dati ed infine formattano la risposta in linguaggio html, in modo
da poterla visualizzare attraverso il browser. Per utilizzare questi strumenti è necessario un web server (ad esempio Apache). Il web server, il processo principale del
BB ed il server SQL che gestisce la base di dati possono essere in esecuzione su
computer differenti.
Le informazioni contenute negli SLA sono:
62
Capitolo 4. Realizzazione di una architettura DiffServ
Proxy
Database
2. Controllo Utenti
3. e 5. RAR
BB
AAA
Server
6. config
4. config
Database
7. RTSP request
Edge Router
12. flusso dati
1. RTSP request
13. flusso dati
Edge Router
Core Router
Dominio DiffServ
Edge Router
Server Multimediale
Utente
Figura 4.6: Schema di collaborazione tra i componenti del sistema
• Customer ID: identificatore dell’utente (di tipo stringa)
• Type of Service: tipo di servizio richiesto (EF, AFxx)
• Maximum Rate: Banda massima allocabile per questo utente
• Burst Size: dimensione del busrt consentito
• Start Date of the SLA: data di inizio della validita dell’SLA
• Expiry Date of the SLA: data di scadenza dell’SLA
Bandwidth Broker
Il BB utilizza un database per tenere traccia delle RAR attive, degli SLA, del ruolo di ogni router nel dominio e dei codici DSCP asseganti ai PHB. È disponibile
uno script di configurazione per creare le tabelle necessarie in un database Mysql. Alcune tabelle relative alla topologia della rete devono essere riempite manual63
Capitolo 4. Realizzazione di una architettura DiffServ
Figura 4.7: Pagina web di amministrazione
mente dall’amministratore. Ad esempio la tabella RTINFO deve essere compilata
con le informazioni relative a tutti gli edge router del dominio (router Linux o Cisco, indirizzo di rete, indirizzo e interfaccia da utilizzare per la configurazione).
La tabella LEAFINFO serve individuare quale edge router deve essere configurato
per accogliere il traffico proveniente da un indirizzo IP. L’intervallo degli indirizzi
dei computer connessi tramite un edge router viene indicato dalla coppia di valori
indirizzo-netmask.
Tramite un file di configurazione è possibile specificare la quantità di banda
allocabile nel dominio per le classi EF, AF4, AF3, AF2 e AF1. Questi valori sono
utilizzati per valutare se ci sono sufficienti risorse per accogliere o meno un nuovo
SLA.
Il BB interagisce con gli altri componenti del sistema attraverso dei protocolli
binari non standard. Sono presenti tre tipi di interfacce:
64
Capitolo 4. Realizzazione di una architettura DiffServ
• Interfaccia con gli script di amministrazione della pagina web: serve per aggiungere e modificare gli SLA e per fornire l’elenco di SLA e RAR conservati
nel DB. Sulle richieste per aggiungere o modificare un SLA, il BB controlla che la quantità di risorse assegnate a tutti gli utenti non superi un limite
fissato.
• Interfaccia con il client che richiede le RAR: fornisce la possibilità di allocare
e disallocare la banda. In risposta alle richieste RAR accettate viene ritornato
il codice assegnato alla allocazione mentre a quelle negate viene risposto un
codice di errore.
• Interfaccia con i border router: il BB riceve dai router le informazioni di routing e invia i comandi di configurazione per classificare il traffico in ingresso
al dominio.
In seguito ad una richiesta di allocazione il BB effettua le seguenti operazioni:
1. controllo dell’identificativo dell’utente e dell’autorizzazione ad utilizzare la
banda richiesta nella classe di servizio specificata (verifica sugli SLA dell’utente e sulla banda residua di cui dispone);
2. verifica della disponibilità di banda nel periodo di tempo richiesto per poter
accettare o meno la RAR;
3. se la RAR è accettata, scelta del border router da configurare in base all’indirizzo del computer sorgente;
4. richiesta della tabella di routing per poter individuare l’interfaccia da configurare in base all’indirizzo IP di destinazione;
5. configurazione opportuna del router scelto;
6. invio al client RAR del codice di identificazione della RAR accettata oppure
di un codice di errore che indica il problema riscontrato.
È presente nel BB un sistema di controllo di SLA e RAR che provvede ad eliminare
le istanze scadute.
65
Capitolo 4. Realizzazione di una architettura DiffServ
Edge Router
Ogni border router viene configurato attraverso un demone che applica i comandi
ricevuti via socket dal BB. I dati che entrano nel dominio attraverso un edge router
devono essere marcati con il DSCP e regolati tramite le funzioni di policing. I flussi
vengono identificati tramite un filtro u32 utilizzando gli indirizzi IP di sorgente e
destinazione, le porte (almeno quella di destinazione) e il protocollo. Per ogni flusso
è specificata la categoria di traffico a cui deve essere aggregato, il limite massimo di
banda, il burst e il comportamento per i pacchetti fuori limite (drop o continue che
riclassifica a BE). Solitamente viene utilizzata la politica drop nel caso EF, mentre
per le classi AF effettua la riclassificazione del traffico in eccesso.
drop
meter
meter
u32
riclassificazione
class 1:1
class 1:2
class 1:3
class 1:14
FIFO
DSCP 0x2e (EF)
DSCP 0x26 (AF43)
DSCP 0x24 (AF42)
DSCP 0x00 (BE)
dsmark 1:0
Figura 4.8: Architettura dell’edge router
L’architettura del controllo del traffico nell’edge router è mostrata in figura 4.8.
La qdisc principale è una dsmark direttamente associata all’interfaccia di output.
Questa qdisc imposta il DSCP con il valore richiesto in base alla coda in cui sono
posti i pacchetti. Questa architettura, comprendente la root qdisc e le classi che
definiscono i DSCP, è creata per ogni interfaccia di uscita in fase di inizializzazione
del demone. I filtri sono creati ed eliminati dinamicamente secondo i comandi del
BB.
66
Capitolo 4. Realizzazione di una architettura DiffServ
Core Router
I core router non devono essere configurati dinamicamente ogni volta che viene ammesso un flusso. La configurazione deve essere fatta dall’amministratore solamente
quando cambia la struttura o le caratteristiche della rete. Per questo si è pensato di
configurare i core router attraverso script per shell che creano la struttura del traffic control associato alle interfacce di rete. Gli script utilizzano il comando tc per
creare gli elementi del traffic control.
skb−>iph−>tos
handle 5
rate 20Mb
ceil 20Mb
class 2:50
handle 4
rate 100Mb rate 15Mb
ceil 100Mb ceil 100Mb
class 2:1
class 2:40
handle 3
rate 15Mb
ceil 100Mb
class 2:30
handle 2
rate 15Mb
ceil 100Mb
class 2:20
handle 1
rate 15Mb
ceil 100Mb
class 2:10
handle 0
rate 20Mb
ceil 100Mb
class 2:5
0x28
mask 0xfc
shift 2
tcindex
handle 0
−> 0x001
handle 10
−> 0x111
mask 0xf0
shift 4
tcindex
handle 12
−> 0x112
handle 14
−> 0x113
pacchetto
marcato
AF11
handle 18
−> 0x121
0x111
handle 26
−> 0x131
handle 34
−> 0x141
handle 46
−> 0x160
0x28
SFQ
DP 1
DP 2
DP 3
GRED
DP 1
DP 2
DP 3
GRED
DP 1
DP 2
DP 3
GRED
DP 1
DP 2
DP 3
GRED
RED
htb 2:0
0x111
dsmark 1:0
0x28
0x111
skb−>tc_index
Figura 4.9: Architettura del core router
In figura 4.9 è rappresentata l’architettura proposta che permette la coesistenza
di traffico di tipo EF, AF e BE. Questa è la configurazione più completa e complessa
realizzata durante il lavoro di tesi; nella fase di realizzazione di una rete è necessario
tenere conto delle esigenze particolari del caso in esame, scegliendo solamente gli
strumenti adatti per ottentere una soluzione semplice ed efficente. In particolare, se
il dominio deve gestire pochi tipi differenti di applicazioni che necessitano di QoS,
è consigliato l’utilizzo di un insieme ridotto di classi di servizio rispetto a quello
proposto.
Il traffico EF riceve la massima priorità e viene filtrato in modo da non superare
67
Capitolo 4. Realizzazione di una architettura DiffServ
il limite di banda fissato dall’amministratore. Il traffico AF viene differenziato nelle
quattro classi con diversa priorità, su ogni delle quali è applicato un policer che
limita la banda ad un valore fissato. All’interno delle classi viene utilizzata la drop
precedence per discriminare i pacchetti in caso di congestione. Anche il traffico BE
viene limitato nella banda per proteggere le categorie di traffico più importanti. Al
traffico delle classi AF e BE è concesso di utilizzare la banda non utilizzata dalle
classi che ne hanno diritto fino al raggiungimento del limite di traffico specificato,
che deve coincidere con la capacità della rete in uscita. I limiti delle varie classi
possono essere specificati in modo semplice tramite le variabili dichiarate all’inizio
dello script di configurazione.
La coda principale è una qdisc dsmark direttamente associata all’interfaccia di
output. Questa qdisc estrae il byte ToS da pacchetti in arrivo e lo passa al classificatore tcindex. Viene successivamente applicato un filtro tcindex che estrae il DSCP
dal byte ToS mascherandolo con il valore 0xfc ed eseguendo successivamente uno
shift a destra di due posizioni. Ad esempio, se il pacchetto è marcato con valore ToS
0x28 (00101000) si ottengono le seguenti operazioni:
00101000 & 11111100 = 00101000
00101000 >> 2 = 00001010
Il valore DSCP 00001010 (0x0a in notazione esadecimale, 10 in decimale) corrisponde al codepoint standard del PHB AF11.
Il valore del DSCP estratto in questo modo viene utilizzato per selezionare il
PHB corretto per ogni pacchetto. Per questo sono presenti dei filtri, uno per ogni
PHB, che in base al valore del DSCP marcano un codice nel campo skb->tc_index
del pacchetto. Ad esempio i pacchetti della classe con DSCP uguale a 10 vengono
marcati con il valore 0x111 grazie al filtro:
tc filter add dev eth0 parent 1:0 protocol ip prio 1 \
handle 10 tcindex classid 1:111
In tabella 4.2 sono indicati i valori assegnati alle varie classi di servizio.
Alla root qdisc è attaccata la qdisc 2:0 di tipo HTB, che presenta al suo interno
la classe 2:1 utilizzata per limitare la banda totale in uscita verso il dispositivo (nel68
Capitolo 4. Realizzazione di una architettura DiffServ
dec
0
40
48
56
72
80
88
104
112
120
136
144
152
184
TOS
hex
bin
0x00 00000000
0x28 00101000
0x30 00110000
0x38 00111000
0x48 01001000
0x50 01010000
0x58 01011000
0x68 01101000
0x70 01110000
0x78 01111000
0x88 10001000
0x90 10010000
0x98 10011000
0xb8 10111000
dec
0
10
12
14
18
20
22
26
28
30
34
36
38
46
DSCP
hex
bin
0x00 00000000
0x0a 00001010
0x0c 00001100
0x0e 00001110
0x12 00010010
0x14 00010100
0x16 00010110
0x1a 00011010
0x1c 00011100
0x1e 00011110
0x22 00100010
0x24 00100100
0x26 00100110
0x2e 00101110
Classid
PHB
1:1
1:111
1:112
1:113
1:121
1:122
1:123
1:131
1:132
1:133
1:141
1:142
1:143
1:150
BE
AF11
AF12
AF13
AF21
AF22
AF23
AF31
AF32
AF33
AF41
AF42
AF43
EF
Tabella 4.2: Valori utilizzati per marcare i pacchetti
l’esempio 100Mbit al secondo). La classe 2:1 è a sua volta suddivisa, in ordine di
priorità, nelle classi:
2:50 È la classe dedicata al traffico EF. Questa classe ha 20 Mbit al secondo di banda garantita. Questo valore rappresenta anche la banda massima utilizzabile.
2:40 È la classe dedicata al traffico AF4x. Il traffico di questa classe ha 15 Mbit al
secondo di banda garantita, ma può ereditare fino a 100 Mbit al secondo dalla
classe parent 2:1.
2:30 È la classe dedicata al traffico AF3x. Come la 2:40 ha rate uguale a 15 Mbit e
ceil pari a 100Mbit.
2:20 È la classe dedicata al traffico AF2x. Ha la stessa disponibilità di banda delle
altre classi AF.
2:10 È la classe dedicata al traffico AF1x. Ha la stessa disponibilità di banda delle
altre classi AF.
69
Capitolo 4. Realizzazione di una architettura DiffServ
2:5 È la classe dedicata al traffico BE. Ha 20 Mbit di banda garantita e può arrivare
ad utilizzare fino a 100 Mbit.
I valori assegnati a rate e ceil nelle varie classi servono solamente come esempio;
devono essere scelti durante la realizzazione di una rete in base alle politica generale di amministrazione. Se si effettua un controllo d’accesso rigoroso sul traffico
AF che entra nel dominio non è necessario impostare il valore di ceil, visto che
questo traffico non potrà mai superare il limite impostato. Per il traffico BE, invece,
è sempre consigliato l’utilizzo del parametro ceil per evitare lo spreco delle risorse
inutilizzate dal traffico prioritario. Questo meccanismo si è rivelato molto preciso
nel garantire la banda riservata al traffico principale, al contrario dei neccanismi di
condivisione della banda offerti dalla qdisc CBQ.
Per inserire i pacchetti nella sottoclasse corretta viene usato un insieme di filtri.
Per prima cosa viene applicata al valore skb->tcindex la maschera 0xf0 e il risultato
viene fatto ruotare a destra di quattro bit. Questo meccanismo consente di estrarre la
penultima cifra del codice, utilizzata per distinguere la classe di servizio all’interno
del PHB AF. Ad esempio, applicando queste operazioni ad un pacchetto marcato
con il valore 0x132 si ottiene:
000100110010 & 000011110000 = 000000110000
000000110000 >> 4 = 000000000011 = 0x3
Il valore 3 ottenuto nell’esempio indica che il pacchetto appartiene alla classe AF3,
trascurando per il momento la drop precedence. I sei filtri successivi si occupano di
accodare i pacchetti in base al valore calcolato:
• 0: il pacchetto viene inserito nella classe 2:5 corrispondente al PHB BE.
Questa classe gestisce i pacchetti accodati con una qdisc di tipo RED.
• 1: il pacchetto viene inserito nella classe 2:10 corrispondente al PHB AF1.
Questo PHB è realizzato con una qdisc GRED, che utilizza gli ultimi tre bit
del campo skb->tc_index per suddividere il traffico nelle tre drop precedence.
• 2: il pacchetto viene inserito nella classe 2:20 corrispondente al PHB AF2.
Anche in questo caso viene utilizzata una qdisc GRED.
70
Capitolo 4. Realizzazione di una architettura DiffServ
• 3: il pacchetto viene inserito nella classe 2:30 corrispondente al PHB AF3.
Anche in questo caso viene utilizzata una qdisc GRED.
• 4: il pacchetto viene inserito nella classe 2:40 corrispondente al PHB AF4.
Anche in questo caso viene utilizzata una qdisc GRED.
• 5: il pacchetto viene inserito nella classe 2:50 corrispondente al PHB EF.
Questa classe è gestita internamente con una qdisc SFQ.
Per osservare la configurazione creata e per misurare il traffico che transita nelle
varie classi è stato utilizzato lo script in linguaggio Perl monitor_tc.pl, reperibile nel
sito Internet http://www.docum.org.
Client RAR
È stato realizzato un programma che si interfaccia con il BB per chiedere l’allocazione e la deallocazione delle risorse (RAR). Il programma, chiamato makerar,
riceve in ingresso i parametri da inviare al BB tramite un protocollo binario ad hoc.
I parametri da specificare nel caso di richiesta di allocazione sono i seguenti:
• indirizzo IP del BB;
• username;
• indirizzo IP dell’host sorgente;
• indirizzo IP dell’host destinazione;
• porta di destinazione;
• protocollo (tcp/udp);
• classe di servizio DiffServ;
• banda da allocare;
• durata prevista della comunicazione.
71
Capitolo 4. Realizzazione di una architettura DiffServ
Il primo valore serve per stabilire la connessione con il BB nella porta di default, i
seguenti valori sono invece utilizzati riempire la struttura della RAR. La coppia di
valori assegnati a “username” (di tipo stringa) ed a “classe di servizio” sono utilizzati per identificare in modo univoco l’SLA a cui la RAR fa riferimento. La somma
della banda allocata grazie ad un SLA non può mai superare il valore indicato nell’SLA stesso. La banda deve essere espressa in kbit al secondo, menter la durata
prevista deve essere espressa in secondi.
Se il BB riesce a soddisfare la richiesta di allocazione il makerar restituisce il
codice della nuova RAR, altrimenti il valore restituito indica il motivo del fallimento. Nel caso di richiesta di deallocazione si deve specificare l’indirizzo IP del BB e
il codice assegnato alla RAR da eliminare.
Proxy
Il proxy, oltre alle funzioni proprie che comprendono anche la possibilità di memorizzare i filmati e servire in modo autonomo i clienti, è stato dotato della capacità
di interagire con il BB attraverso il makerar. Il proxy è in grado di ottenere tutti i
parametri necessari per eseguire in modo corretto la richiesta di allocazione:
• indirizzo IP del BB: il BB (o i BB, se sono attraversati più domini, visto che
non è realizzato il protocollo di comunicazione interdominio) viene specificato nella fase di configurazione del proxy.
• username: viene ottenuto interrogando un apposito servizio che identifica l’utente in base all’indirizzo IP. Può causare problemi se più di un utente utilizzano lo stesso IP, ad esempio grazie ad un Network Address Translator
(NAT).
• indirizzio IP dell’host sorgente: nel caso del flusso server->proxy è l’indirizzo
IP dello streaming server specificato dall’utente nella richiesta di setup RTSP.
Per il flusso proxy->utente è l’indirizzo del proxy stesso.
• indirizzo IP dell’host destinazione: per il flusso server->proxy è l’indirizzo
del proxy. Per il flusso proxy->utente è l’indirizzo del cliente che ha effettuato
la richiesta di streaming.
72
Capitolo 4. Realizzazione di una architettura DiffServ
• porta di destinazione: è comunicata dal client durante il setup.
• protocollo (tcp/udp): i dati in streaming vengono trasmessi con il protocollo
RTP che si basa su UDP.
• classe di servizio DiffServ: per ogni tipo di comunicazione viene definito il
tipo di servizio da assegnare dall’aministratore di sistema. In letteratura [22]
è consigliato per applicazioni di streaming video la classe di servizio AF13.
• banda da allocare: la bitrate del filmato dovrebbe essere noto al proxy. Purtroppo non tutti gli streaming server comunicano il bitrate del filmato in quanto non è obbligatorio inserire questa informazione nell’header del protocollo
RTSP. Per questo prototipo è stato previsto un valore di default per il bitrate
da utilizzare nel caso in cui non sia noto quello reale.
• durata della comunicazione: la durata del filmato è nota al proxy. L’amministratore del sistema potrebbe voler concedere agli utenti una durata di allocazione delle banda superiore a quella strettamente necessari alla visione, per
consentire all’utente di utilizzare senza problemi le funzioni di pausa, seek,
eccetera. Per questo può essere utile sommare alla durata del filmato un tempo
bonus proporzionale alla durata stessa.
È da notare che per ogni filmato RTSP vengono creati due flussi RTP, uno per l’audio e uno per il video, su due porte diverse del ricevitore. Il proxy deve perciò mandare al BB due RAR differenti con parametri di bitrate e di porta di destinazione
diversi.
In questo prototipo viene ignorato l’eventuale fallimento dell’allocazione di
banda visto che non si è in grado di inoltrare questa informazione all’utente.
Player e Server
Tutto il sistema è pensato per funzionare in modo corretto con i player e i server di
uso comune. L’unica condizione è che il player RTSP supoprti l’uso di un proxy.
Il sistema è stato testato con i player RealOne, QuickTime, OpenRTSP e Mplayer
compilato con le librerie LIVE per lo streaming e modificato per utilizzare un proxy.
73
Capitolo 4. Realizzazione di una architettura DiffServ
Dal lato server è stato utilizzato il Darwin Streaming Server, che purtroppo non
riporta le informazioni relative al bitrate dei filmati inviati.
4.3
QoS tra rete Wired e rete Wireless
È stato studiato il modo di offrire QoS per gli utenti wireless di una rete WLAN che
opera in modalità infrastructure, ossia nel caso in cui le stazioni mobili comunicano
esclusivamente tramite un access point. Questa modalità si contrappone alla rete
ad hoc, nella quale le stazioni mobili comunicano direttamente tra loro. La rete
wireless utilizzata è composta da un access point Cisco Aironet 350 series e da
portatili Linux che utilizzano schede PCMCIA Cisco Aironet 350 series wireless
LAN adapter. Questi dispositivi comunicano tramite il protocollo IEEE 802.11b ad
una velocità nominale di 11 Mbps.
Il livello MAC dell’access point offre alcune funzionalità di QoS nel tratto Radio Downstream come descritto nel sottoparagrafo 3.2.3. Le prove effettuate hanno
dimostrato che è possibile differenziare il traffico nelle varie classi di servizio dell’access point attraverso filtri su VLAN, porte e protocolli. Questa sperimentazione
ha anche messo in evidenza che la conversione da DSCP a CoS, fondamentale per
utilizzare l’access point all’interno di una architettura DiffServ, non funziona. Infatti inviando dati marcati con valore DSCP diverso da 0, in quantità superiore alla
capacità di trasmissione dell’acces point, non è stato notato alcun incremento tra i
pacchetti scartati nelle categorie di traffico differenti dalla numero 0 (best effort). Il
numero dei pacchetti scartati per le varie classi di traffico è indicato nella pagina di
controllo della interfaccia radio dell’access point (figura 4.10). Queste prove sono
state ripetute utilizzando diverse configurazioni della tabella DSCP-to-CoS senza
dare esito positivo, mentre utilizzando gli altri meccanismi per impostare la CoS si
riscontrano pacchetti persi nella classe corretta.
4.3.1
Filtraggio del traffico destinato alla rete wireless
I meccanismi offerti dall’access point non consentono un gestione della QoS completamente configurabile secondo le esigenze del sistema. Per poter usufruire di un
insieme ampio e configurabile di meccanismi di QoS è possibile inserire tra la rete
74
Capitolo 4. Realizzazione di una architettura DiffServ
Figura 4.10: Statistiche della porta radio dell’access point
fissa e l’access point un core router con lo scopo di configurare opportunamente il
traffico destinato agli utenti wireless (figura 4.11). Le funzionalità del core router
si aggiungono a quelle eventualmente offerte dall’access point. Filtrando il flusso
sul core router si è in grado di garantire le risorse dedicate al traffico prioritario.
Al contrario, se un access point senza supporto per la QoS riceve una quantità di
dati superiore a quella che riesce a trasmettere, i pacchetti vengono scartati in modo indiscriminato. Questa soluzione riprende inoltre il concetto di QoS gerarchica
introdotto nel paragrafo 3.3.
75
Capitolo 4. Realizzazione di una architettura DiffServ
Filtro sull’AP
(senza QoS)
Filtro sul CR
(con QoS)
Edge Router (ER)
traffico
prioritario
100 Mbit/s
100 Mbit/s
Ethernet
traffico
best effort
Core Router (CR)
Ethernet
Access Point (AP)
~7.5 Mbit/s
~7.5 Mbit/s
Utente
Utente
Utente
Figura 4.11: Filtraggio effettuato dal Core Router a monte dell’Access Point
A questo punto si pone il problema di modellare il flusso in modo che sia compatibile con la capacità di trasmissione dell’access point. La banda disponibile nel
canale radio è molto variabile e le cause di tale variazione sono molteplici: numero
di stazioni connesse, condizioni ambientali, collisione con traffico di altri dispositivi, dimensione dei pacchetti trasmessi, eccetera. In letteratura si trovano diversi
studi che riguardano l’andamento del throughput su reti locali wireless (WLAN)
al variare delle condizioni [34] [35] [36]. È tuttavia difficile stimare il throughput
disponibile visto l’alto numero di paramentri che incidono sulla banda e la difficoltà
76
Capitolo 4. Realizzazione di una architettura DiffServ
nell’ottenere una funzione che modelli bene il sistema.
Sperimentalmente è stata rilevata una velocità massima di trasmissione effettiva
di circa 7.5 Mbit/s in presenza di una sola stazione mobile associata all’access point.
Se la stazione mobile effettua sia download che upload la somma del bitrate nelle
due direzioni risulta essere ancora di circa 7.5 Mbit/s. L’access point ha una priorità
di trasmissione nel canale maggiore rispetto alle stazioni mobili; questo perchè dall’access point passa tutto il traffico destinato alle varie stazioni associate e quindi
deve utilizzare normalmente più banda rispetto alla trasmissione in upstream delle
singole stazioni.
Le soluzioni di QoS da utilizzare dipendono anche dal pattern di traffico delle
applicazioni che generano il traffico da proteggere. Ad esempio il traffico generato
da uno straming multimediale è principalmente monodirezionale verso l’utente wireless, che corrisponde alla direzione su cui è possibile intervenire per offrire QoS.
Applicazioni che richiedono garanzie in entrambe le direzioni, come videoconferenza o VoIP, non possono essere soddisfatte dal sistema studiato. Se fosse nota la
banda disponibile nel canale wireless si potrebbe utilizzare un core router strutturato
in queso modo:
• banda garantita per il traffico prioritario;
• traffico BE limitato per occupare la parte di banda non utilizzata dal traffico
prioritario fino a raggiungere il limite fissato dall’access point.
Per configurare in modo dinamico il core router sono stati realizzati due script che
riceveno come parametri di ingresso l’interfaccia di rete da configurare, la banda
totale disponibile e la banda da garantire al traffico prioritario.
Il primo dei due script crea la struttura di controllo del traffico costituito da
una qdisc principale di tipo DSMARK seguita da una qdisc HTB suddivisa in due
classi, una per il traffico prioritario (EF) e l’altra per quello BE. La qdisc HTB limita
il traffico totale al valore impostato, che non deve superare il throughput dell’access
point.
La porzione di banda riservata al traffico prioritario viene fissata grazie alla prima delle due sottoclassi HTB. Per consentire l’utilizzo di un sistema di controllo
d’accesso e allocazione della banda, il valore massimo consentito di traffico prioritario non deve essere modificato dinamicamente. La quantità di banda garantita al
77
Capitolo 4. Realizzazione di una architettura DiffServ
traffico prioritario dovrebbe quindi essere fissata dall’amministratore del sistema in
modo che sia sempre supportata dalla capacità di trasmissione dei dispositivi. Dato
che non esiste un limite inferiore di throughput garantito dall’access point in downstream, deve essere deciso un valore basandosi sulle statistiche delle prestazioni
del sistema in questione. Se il valore fissato è grande, possono essere accolti nella
classe privilegiata un numero maggiore di flussi; in questo modo però aumenta la
probabilità che l’access point non riesca a soddisfare tutto il traffico prioritario.
La sottoclasse HTB che realizza il PHB BE limita il traffico in transito con rate
definito dal valore della banda totale meno quella riservata al traffico prioritario e
ceil uguale alla banda totale disponibile.
Il secondo script si occupa di aggiornare i parametri rate e ceil della qdisc HTB
e delle due sottoclassi precedentemente create. L’operazione di aggiornamento della
configurazione del traffic control non causa problemi al traffico in transito.
Il traffico proveniente dalla rete wireless e destinato alla rete wired che attraversa
il core router viene invece gestito una apposita qdisc per renderlo indipendente da
quello destinato agli utenti mobili. Questo accorgimento è dovuto al fatto che nel
testbed utilizzato (descritto nella sezione 5.1) tutti i dispositivi utilizzati, sia router
che access point, sono collegati tra loro attraverso uno switch; per questo ogni router
è dotato di un’unica interfaccia di rete che viene attraversata da tutto il traffico in
uscita, indipendentemente dalla destinazione.
Le soluzioni proposte per stimare il valore di banda da utilizzare nel core router
sono:
• Stimare le condizioni di traffico peggiori e dimensionare a questo valore la
banda in uscita dal core router. Finchè la capacità di trasmissione dell’access
point è maggiore del valore stimato è possibile garantire il traffico prioritario, provocando però spreco di banda in un punto già povero rispetto alla rete
“wired” ethernet. Per far questo si deve valutare il bitrate disponible con molti utenti associati e fissare la percentuale di banda utilizzabile in upload. Per
limitare il traffico in upload si può intervenire solamente nel core router, confidando nei meccanismi propri dei protocolli di trasporto (ad esempio il TCP)
per rallentare il traffico alla sorgente.
• Monitorare i parametri che più influenzano l’ampiezza del canale in down78
Capitolo 4. Realizzazione di una architettura DiffServ
stream e utilizzare una funzione empirica per stimare la banda disponibile e
configurare in modo dinamico i parametri del core router. Questa soluzione
sembra difficile da realizzare per la difficoltà sia nel reperire i parametri di
interesse, sia nel creare una funzione empirica che simuli con precisione il
comportamento del sistema.
• Analizzare periodicamente il throughput dell’access point e regolare di conseguenza il filtro del core router. Per poter realizzare un controllo corretto si
deve conoscere anche la quantità di traffico che arriva all’access point dalla
rete fissa per essere trasmesso. Deve essere infatti valutato se viene trasmesso
nel canale radio tutto il traffico ricevuto o solo una parte. Nel primo caso è
possibile aumentare la banda in uscita dal core router, altrimenti deve essere
diminuita al valore supportato dall’access point.
Quest’ultima soluzione è sembrata la più interessante ed è stata studiata in dettaglio. Per calcolare il throughput in ingresso (interfaccia ethernet) e in uscita (interfaccia radio) dall’access point è stato realizzato uno script per shell bash che
controlla periodicamente (ogni secondo) il numero di byte che attraversa le due
interfacce in questione.
Inizialmente questi valori venivano estratti attraverso l’interfaccia HTTP dell’access point, analizzando la pagina network ottenuta grazie al comando wget. Purtroppo l’interrogazione di questo servizio dell’access point comporta un rallentamento della trasmissione sul canale radio. Questo comportamento causa perdita di
pacchetti, in contrasto con gli obiettivi fissati.
È stata quindi utilizzata l’interfaccia SNMP disponibile nell’access point; non
sono stati riscontrati problemi sul traffico in transito dovuti all’utilizzo di questo
servizio. Il comando snmpget consente di comunicare con un dispositivo di rete
utilizzando una richiesta di tipo SNMP GET per ottenere informazioni relative ad
uno o più object identifier (OID) definiti nei Management Information Base (MIB)
gestiti dal dispositivo. L’access point supporta diversi MIB, tra cui il RFC1213-MIB
che contiente le informazioni ifTable.ifEntry.ifOutOctets e ifTable.ifEntry.ifInOctets
relative alle varie interfacce di rete. Il codice OID corrispondente al numero di byte
inviati dalla porta radio è “2.2.1.16.2”, mentre per quelli ricevuti dall’interfaccia
79
Capitolo 4. Realizzazione di una architettura DiffServ
ethernet è “2.2.1.10.1”. Analizzando questi valori ogni secondo è possibile ottenere
una stima dei throughput cercati.
I due valori così ottenuti vengono utilizzati per decidere il rate da impostare
nel core router attraverso lo script descritto in precedenza. Il rate deve essere sempre compreso tra il valore fissato per il traffico prioritario ed il calore massimo
sperimentato per il dispositivo (7.5 Mbit al secondo).
La qualità del servizio realizzata con il sistema descritto permette di garantire
l’invio ad un rate fissato dei pacchetti prioritari destinati alla rete wireless. Molte delle applicazioni multimediali che presentano un traffico prevalentemente monodirezionale inviano alcuni pacchetti anche nella direzione opposta. Ad esempio,
visualizzando con QuickTime un filmato codificato a circa 300kbit/s servito dal Darwin Streaming Server, è stato sperimentato un traffico in upstream nell’ordine di 3
kbit/s. Questo serve ad esempio per regolare il rate di invio dei pacchetti da parte
del server. In situazione di congestione del canale radio, le stazioni wireless possono
avere problemi ad inviare rapidamente questi pacchetti, in particolare se le stazioni
stesse che non utilizzano meccanismi di QoS stanno inviando altro traffico. Il ritardo o la perdita di questi pacchetti può causare problemi nella fruizione del servizio,
nonostante le garanzie per il traffico in downstream.
Per limitare i problemi dovuti alla variazione del throughput totale in downstream potrebbe essere utilizzato un meccanismo di controllo dei clienti associati;
in particolare, se il throughput scende sotto una soglia fissata, il sistema potrebbe dissociare alcuni utenti di servizi BE per rientrare nei limiti di funzionamento
previsti. In presenza di più access point le connessioni interrotte potrebbero essere
ripristinate grazie alla associazione ad un altro (Q)BSS meno carico, ottenendo un
meccanismo di load balancing.
Di seguito è riportato un esempio di utilizzo dei meccanismi proposti. Viene
fissato al valore di 4 Mbit/s la quantità massima di banda utilizzabile per il traffico
EF. Questo valore viene utilizzato dal BB per fissare il limite di risorse allocabili
e dall’amministrazione per fissare la banda massima che può essere assegnata ad
un singolo utente. I dati riportati in [34] indicano che il throughput scende sotto
i 4 Mbit/s in presenza di sette o più stazioni associte. In questo scenario possono essere assegnati ad esempio 500 Kbit/s di traffico prioritario a sette differenti
utenti, mentre non è possibile assegnare 250 Kbit/s a quattordici utenti. Probabil80
Capitolo 4. Realizzazione di una architettura DiffServ
mente i dati citati, acquisiti utilizzando traffico in upload verso l’access point, sono
peggiori rispetto al caso di utilizzo ipotizzato in questo lavoro di tesi che prevede
la prevalenza di traffico monodirezionale verso le stazioni mobili. Per questo sono
necessari esperimenti che verifichino il comportamento del sistema nello scenario
descritto. Non è stato possibile realizzare tali prove per mancanza di un numero significativo di dispositivi wireless. Questo sistema può consentire l’associazione di
un numero non predefinito di utenti, visto che alcuni potrebbero utilizzare solo una
piccola parte delle risorse disponibili. Il meccanismo di revoca della associazione
ad alcuni clienti deve essere utilizzato solamente quando il throughput segnalato
dall’access point non garantisce l’invio sul canale radio dei 4 Mbit/s garantiti al
traffico prioritario.
4.3.2
Domini DiffServ
In questa sezione viene proposto un metodo per inserire la rete wireless all’interno
della architettura DiffServ realizzata.
Un dominio DiffServ è un insieme di router che realizzano un’unica politica di
qualità del servizio e ogni nodo appartenente ad un dominio deve avere lo stesso
insieme di PHB. In un sistema eterogeneo, come ad esempio una rete mista wired
e wireless, diventa difficile gestire i nodi differenti come appartenenti ad un unico
dominio. Nella parte ”wired” i nodi sono collegati da rete ethernet a 100Mbit/s ed
il traffico è gestito da router linux, mentre i dispositivi wireless comunicano tramite
il protocollo 802.11b con banda nominale di 11Mbit/s (reale meno di 7.5Mbit/s)
e il nodo centrale è rappresentato dall’access point. Se si considera l’insieme delle due parti come un solo dominio e’ necessario elaborare i vari flussi in modo
differente a seconda dei percorsi che dovranno compiere, con il problema di memorizzare le caratteristiche delle varie tratte della rete. Questo implica un aumento
della complessità del BB. È più semplice modellare il sistema come composto da
due domini:
• un dominio per la parte wired, realizzando i PHB che servono al sistema e con
la possibilità di allocare la banda fino a saturare il canale ethernet (ad esempio
con la configurazione del core router proposta nel sottoparagrafo 4.2.3).
81
Capitolo 4. Realizzazione di una architettura DiffServ
• una dominio per la parte wireless, con QoS solo nella direzione downstream.
È possibile utilizzare un insieme di PHB differente rispetto al dominio wired.
La banda allocabile in questo dominio è sicuramente minore rispetto alla parte
wired. Come detto in precedenza può essere utile introdurre un core router a
monte dell’access point per garantire la QoS all’interno del dominio.
BB
RAR
Proxy
Core Router
Edge Router
Dominio Wired
RAR
Edge Router
Server Multimediale
BB
Core Router
Dominio Wireless
Access Point
Stazioni mobili
Figura 4.12: Configurazione del sistema con due domini
Ogni dominio necessita di un BB per le funzioni di allocazione delle risorse
e configurazione dinamica dei border router. Per ottentere un sistema completo in
ambiente multidominio è necessario un protocollo di comunicazione interdominio.
Il prototipo realizzato non dispone di questa funzionalità; per questo è stato affidato
al proxy il compito di comunicare con i BB dei due domini per allocare la banda
necessaria al traffico multimediale.
82
Capitolo 4. Realizzazione di una architettura DiffServ
In figura 4.12 è rappresentato lo schema proposto. Quando il proxy riceve la
richiesta di un filmato da un utente, dopo aver recuperato le informazioni necessarie
per compilare la RAR, contatta il BB del dominio wireless per allocare la banda
necessaria. Se possiede nella cache il filmato richiesto può servire subito l’utente,
mentre se deve ricevere i dati dal server deve chiedere la configurazione della QoS
anche al BB del dominio wired.
83
Capitolo 5
Risultati sperimentali
In questo capitolo sono presentati i risultati delle prove effetutate per sperimentare
il funzionamento del sistema di gestione della QoS realizzato per la rete wireless.
Questi esperimenti dimostrano inoltre il funzionamento dei meccanismi di QoS abilitati sui computer dotati di software GNU/Linux, utilizzati nel sistema proposto per
elaborare il traffico destinato alle stazioni mobili. Dopo una breve descrizione dei
metodi utilizzati per realizzare la configurazione di rete necessaria e per attivare su
computer portatili le schede wireless PCMCIA a disposizione, vengono illustrati i
test effettuati.
5.1
Configurazione della rete
I computer utilizzati come router DiffServ appartengono ad un’unica rete e sono
connessi fra loro tramite uno switch. Ogni computer dispone infatti di un’unica interfaccia di rete ethernet collegata direttamente allo switch. La comunicazione tra
qualsiasi computer avviene in modo diretto senza attraversare altri computer. Per
ottenere una configurazione di rete che comprende edge router e core router connessi in modo seriale tra loro sono state aggiunte su ogni macchina due interfacce
di rete virtuali (ad esempio eth0:1 e eth0:2). A queste interfacce virtuali sono stati
assegnati indirizzi privati nella classe di indirizzi riservata per le reti Internet private (ad esempio 192.168.0.0/24 [37]), in modo da ottenere sottoreti di classe C
composte da coppie di macchine. Ogni computer risulta in questo modo connesso
84
Capitolo 5. Risultati sperimentali
a due reti private distinte che gli permettono di comunicare direttamente con due
macchine. È stata successivamente modificata la tabella di routing per impostare le
macchine direttamente connesse come gateway per raggiungere le altre reti private.
Utilizzando questa configurazione, in ciascun router il controllo del traffico deve
essere impostato su di un’unica interfaccia di rete, qualunque sia la destinazione del
traffico elaborato.
5.2
Utilizzo di schede wireless su computer Linux
Nelle stazioni mobili sono state utilizzate schede wireless PCMCIA Cisco Aironet
350 Series dotate di firmware 4.25.30, mentre schede con versioni del firmware più
recenti sono state provate senza successo. Per poter utilizzare le schede wireless su
pc linux con kernel 2.4.x sono necessari i seguenti moduli:
• pcmcia_core e ds: servono per poter utilizzare schede PCMCIA;
• airo e airo_cs: driver per le schede Cisco Aironet 34X/35X/4500/4800.
Il caricamento di questi moduli permette il funzionamento corretto della scheda.
Per potersi associare ad un access point può essere necessario impostare la chiave
WEP. Per questo scopo sono disponibili vari strumenti di configurazione presenti
nelle distribuzioni Linux, oppure può essere utilizzato il software Aironet Client
Utility (ACU) reperibile nel sito Internet di Cisco Systems. Questi programmi si
occupano di scrivere il valore della chiave fisicamente nel firmware del dispositivo
che conserva i dati finchè non vengono sovrascritti. In questo modo è possibile
collegare la scheda a vari computer senza dover specificare nuovamente la chiave. Il
valore può essere anche impostato attraverso le interfacce disponibili nel filesystem
virtuale /proc nel seguente modo:
# echo 0 hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh:hh > \
/proc/driver/aironet/ethX/WepKey
Il primo numero (nell’esempio 0) indica quale delle cinque chiavi disponibili viene
scritta (numerate da 0 a 4). È successivamente necessario specificare quale delle
cinque chiavi memorizzate deve essere utilizzata (TxKey):
85
Capitolo 5. Risultati sperimentali
# echo 0 > /proc/driver/aironet/ethX/WepKey
Nell’esempio riportato viene scelta la chiave numero 0. Per specificare che si vuole
utilizzare la modalità criptata si utilizza questo comando:
# echo ‘‘WEP: encrypt’’ > \
/proc/driver/aironet/ethX/Config
Per potersi associare ad un access point non resta che attivare l’interfaccia di rete
assegnata alla scheda wireless ed eventualmente richiedere un indirizzo tramite un
client DHCP.
Un computer portatile è stato utilizzato anche per analizzare il traffico in transito sul canale wireless in modalità promiscua, ossia considerando tutti i pacchetti e
non solo quelli destinati al computer stesso. Lo scopo è quello di monitorare continuamente la quantità di dati che viene trasmessa attraverso il wireless per avere informazioni utili durante lo svolgimento dei test. Per abilitare la modalità promiscua
sulle schede PCMCIA utilizzate sono stati utilizzati i comandi seguenti:
# echo ’Mode: r’ > /proc/driver/aironet/ethX/Config
# echo ’Mode: y’ > /proc/driver/aironet/ethX/Config
Per tornare nella modalità normale di funzionamento è sufficiente riscrivere il medesimo file virtuale indicando “Mode: ESS”. Successivamente è necessario abilitare
l’interfaccia wifi (ad esempio “wifi0”) e analizzare il traffico in transito su tale interfacci con tcpdump. Per analizzare il traffico ottenuto in questo modo è consigliata
la versione 0.7.0 di libpcap o una successiva. Può inoltre essere utile l’utilizzo del
software Ethereal per l’analisi dei dati raccolti.
Per far comunicare il computer portatile con la rete wired configurata grazie
al sistema descritto nel paragrafo 5.1, è sufficiente assegnare all’interfaccia di rete
associata alla scheda wireless un indirizzo appartenente alla stessa sottorete del core router direttamente collegato all’access point. L’access point agisce infatti come
bridge, passando i pacchetti tra i segmenti di rete wired e wireless. Per poter comunicare con gli altri nodi della rete wired deve essere specificato nel portatile come
default gateway l’indirizzo del core router collegato all’access point.
86
Capitolo 5. Risultati sperimentali
5.3
Testbed
Il testbed utilizzato è schematizzato in figura 5.1.
Edge Router
Iperf Client port 5000
Iperf Client port 5001
Iperf Server port 5002
PP4
192.168.1.2
192.168.1.1
Core Router
SNMPget
P6
192.168.3.2
192.168.3.1
192.168.10.2
Parma01
Darwin Streaming Server
Access Point
Sniffer
SNMP
192.168.10.1
QuickTime Player
Iperf Server port 5000
Iperf Server port 5001
Iperf Client port 5002
Armada
Eleonora
Figura 5.1: Schema del testbed utilizzato
L’obiettivo dei test effettuati è stato quello di verificare la QoS sperimentata dal
traffico multimediale RTP per la visione in streaming di un filmato, in condizioni di
congestione della rete wireless. Per far questo sono stati utilizzati:
• un computer (Parma01) per svolgere il compito di Streaming Server;
• un computer (PP4) con funzione di edge router per marcare i pacchetti destinati alla rete mobile e per generare traffico sintetico grazie al software Iperf
[38];
• un computer (P6) utilizzato come core router DiffServ e dotato delle funzionalità descritte nella sezione 4.3.1;
• un access point Cisco Aironet 350 Series;
87
Capitolo 5. Risultati sperimentali
• un computer portatile (“Eleonora”) equipaggiato con una scheda wireless
PCMCIA Cisco Aironet 350 Series, dotato di sistema operativo MS Windows
2000, di un player RTSP QuickTime e del software Iperf ;
• un computer portatile (“Armada”) equipaggiato con una scheda wireless PCMCIA Cisco Aironet 350 Series, su cui è installata la distribuzione Linux Red
Hat 9.0, utilizzato per analizzare in modalità promiscua il traffico sul canale
wireless.
L’edge router marca il traffico RTP che trasporta i dati multimediali secondo il
codice del PHB EF, limitando il segnale video ad un rate di 400 Kbit/s ed il segnale
audio a 128 Kbit/s. Con il codice EF viene marcato anche il traffico generato dal
client Iperf in esecuzione su “PP4” e destinato al server Iperf in ascolto sulla porta
5000 del computer portatile “Eleonora”. A questo flusso viene concessa una banda
di 1 Mbit/s. Il resto del traffico viene marcato con il codice “0” che identifica traffico
best effort.
Il portatile “Armada” è stato utilizzato per ottenere l’andamento temporale dei
seguenti valori:
• throughput totale sul canale wireless;
• throughput del traffico video diretto ad “Eleonora”;
• throughput del traffico audio diretto ad “Eleonora”.
Per far questo è stato utilizzato uno script in linguaggio Perl che riceve in ingresso
l’output di tcpdump, calcola il throughput medio registrato nell’ultimo secondo.
Utilizzando i parametri di ingresso di tcpdump è possibile selezionare solamente i
pacchetti destinati ad una specifica porta, ottenendo il throughput desiderato.
Le prove effettuate sono state realizzate utilizzando un filmato codificato a circa
300 Kbit/s, di cui 128 Kbit/s per il segnale audio, che dura 66 secondi. Il traffico
Iperf diretto sulla porta 5000 di “Eleonora” è di tipo UDP ed ha rate uguale a 1
Mbit/s. Questo flusso serve per ottenere statistiche più accurate rispetto a quelle ottenibili grazie a player multimediali e può rappresentare il traffico di una applicazione multimediale con bitrate costante che non necessita di feedback di informazioni
verso il server. Per simulare la situazione di congestione della banda in downstream
88
Capitolo 5. Risultati sperimentali
verso le stazioni mobili è stato utilizzato traffico Iperf con rate di 8 Mbit/s destinato
alla porta 5001 di “Eleonora”.
I due computer “Armada” ed “Eleonora” sono stati gli unici due dispositivi portatili dotati di scheda wireless disponibili per l’esecuzione delle prove. Per simulare
la variabilità del throughput in downstream è stato utilizzato nell’ultima prova effettuata traffico sintetico in upstream generato da Iperf su “Eleonora” e destinato a
“PP4” (porta 5002).
Durante lo svolgimento delle prove non è stato registrata alcuna associazione di
dispositivi wireless oltre a quelli utilizzati.
5.4
Risultati
Per prima cosa è stato sperimentato il comportamento del sistema in condizioni
di basso carico, trasferendo solamente il traffico multimediale tra “Parma01” ed
“Eleonora”. Successivamente sono stati analizzati i dati relativi alla situazione di
traffico intenso in downstream in tre casi:
1. nessun meccanismo di QoS;
2. con filtraggio del traffico sul core router, basato sui valori di throughput dell’access point;
3. con filtraggio del traffico sul core router, basato sui valori di throughput dell’access point in condizioni di banda in downstream variabile.
In figura 5.2 sono riportate le statistiche fornite dal player QuickTime al termine
della visione del filmato trasmesso nelle condizioni ideali, senza altro traffico sul
canale wireless utilizzato.
Le statistiche riportate indicano che è stata persa una piccola percentuale dei
pacchetti inviati; questa perdita non ha comportato problemi alla riproduzione del
filmato e non ha compromesso il risultato finale. La perdita di pacchetti è dovuta al
filtro impostato sull’edge router, che limita la banda per il flusso video a 400Kbit/s
con burst di 40k e per il flusso audio a 128 Kbit/s con burst di 12k. Questi limiti
sono stati inseriti per evitare che, nella fase di riempimento del buffer, il traffico
utilizzato da una singola sessione possa aumentare a dismisura interferendo con il
89
Capitolo 5. Risultati sperimentali
Figura 5.2: Statistiche della ricezione del filmato in condizioni di basso carico della
rete
resto dei dati in transito. Il buffer è rimasto sempre pieno a parte gli istanti iniziali
e per questo il trasferimento dei dati è stato completato alcuni secondi prima della
fine della riproduzione audio/video.
5.4.1
Assenza di QoS
Durante questa prova non è stato applicata alcuna elaborazione sul core router. L’istante iniziale del test coincide con la richiesta PLAY effettuata dal player su “Eleonora”. Dopo 10 secondi è iniziato il trasferimento di pacchetti UDP, alla velocità
costante di 8 Mbit/s, da “PP4” a “Eleonora” utilizzando Iperf, per la durata di 60
secondi. Dopo altri 10 secondi (al ventesimo secondo dopo l’inizio del test) è iniziato il trasferimento, durato 50 secondi, di pacchetti UDP alla velocità costante di
1 Mbit/s da “PP4” a “Eleonora”, utilizzando ancora Iperf.
In figura 5.3 è riportata la finestra di QuickTime dedicata alle statistiche di riproduzione del filmato. In figura 5.4 sono riportati i valori relativi al throughput
totale sul wireless e al traffico audio/video, campionati grazie allo sniffer, e i valori di throughput, registrati grazie ai server Iperf, riguardanti i due flussi di traffico
sintetico.
90
Capitolo 5. Risultati sperimentali
Figura 5.3: Statistiche della ricezione del filmato in condizioni di congestione senza
QoS
La visione del filmato è risultata quasi totalmente compromessa non appena è
iniziato il traffico di disturbo a 8 Mbit/s. Le statistiche finali hanno infatti segnalato una perdita di pacchetti del 32.57 percento, sicuramente troppo elevata per una
corretta riproduzione. La presenza del traffico generato da Iperf non ha consentito
l’arrivo di dati alla velocità necessaria.
Si può notare che il throughput totale ottenuto sul canale wireless si è assestato intorno al valore di 7.5 Mbit/s non appena è iniziata la trasmissione di dati
da parte di iperf. L’inizio del secondo trasferimento di dati Iperf non ha modificato sostanzialmente la situazione, causando solamente la diminuzione della banda a
disposizione del primo flusso Iperf.
Alla fine della prova è stato registrato per il flusso Iperf trasmesso a 8 Mbit/s
una banda media in ricezione di 6.59 Mbits/s, con la perdita del 17% dei pacchetti
trasmessi. Il traffico trasmesso a 1 Mbit/s è stato ricevuto alla media di 817 Kbits/s,.perdendo il 18% dei pacchetti inviati. Si può quindi affermare che il trattamento
riservato a questi due flussi è stato equo; i pacchetti sono stati infatti scartati nelle
code FIFO interne dell’access point, il quale non ha effettuato distinzioni tra i dati
in transito. La causa della maggiore perdita di dati subita dal traffico multimediale
91
Capitolo 5. Risultati sperimentali
8000
7000
Throughput [kbit/s]
6000
5000
4000
iperf 1 Mbit/s
iperf 8 Mbit/s
traffico sul canale radio
traffico in streaming
3000
2000
1000
0
0
10
20
30
40
50
60
70
Istante di campionamento [s]
Figura 5.4: Throughput per i vari flussi in condizioni di congestione senza QoS
deve essere invece ricercata nel protocollo di comunicazione che risente dei errori
precedentemente riscontrati e necessita di feedback inviati in upstream. Il traffico
sintetico inviato tramite Iperf non risente, al contrario, delle condizioni di traffico sperimentate in precedenza, cercando di spedire in ogni istante la quantità di
dati prefissata. Probabilmente l’utilizzo di traffico di disturbo di tipo TCP, grazie
al meccanismo della contention window, ha un impatto meno dannoso sul traffico
multimediale concorrente.
5.4.2 Presenza di QoS
Questo test è stato realizzato utilizzando la stessa sequenza temporale e gli stessi
flussi della prova precedente, introducendo però le funzionalità di elaborazione del
traffico su core router. Il core router è stato configurato per riservare fino a 2 Mbit/s
di banda al traffico EF, mentre al traffico BE è stato riservato la porzione restante di
92
Capitolo 5. Risultati sperimentali
risorse fino saturare il limite fissato dal meccanismo di stima del throughput disponibile in downstream. Il core router si occupa di prelevare periodicamente tramite
il protocollo SNMP i valori istantanei di throughput “ETH” in ingresso all’access
point sul’interfaccia ethernet e “RADIO” in uscita dalla porta radio. Se “ETH” è
maggiore di oltre 200 Kbit/s rispetto a “RADIO”, si suppone che l’access point non
riesca ad inviare tutto il traffico che riceve attualmente; in questo caso il core router
limita al valore “RADIO” la banda totale del traffico destinato alla rete wireless.
In caso contrario, se l’access point riesce ad inviare tutto il traffico ricevuto, viene
aumentato il valore precedentemente impostato di 200 Kbit/s fino ad un massimo di
7.5 Mbit/s. In questo modo la banda concessa in uscita dal core router può diventare
maggiore di quella utilizzata, garantendo spazio per nuovi flussi e per aumentare la
banda utilizzata dal traffico TCP già attivo. In tabella 5.1 è riportato un esempio di
Ingresso
[Kbit/s]
482
532
3987
3000
2945
3095
3270
3424
3662
3811
3970
4138
4353
4492
4654
4904
5045
5282
5542
3647
Uscita
[Kbit/s]
416
651
3195
3580
2936
3095
3259
3480
3620
3807
3998
4179
4376
4495
4716
4856
5042
5254
4076
3563
Filtro
[Kbit/s]
7680
7680
3195
3395
3595
3795
3995
4195
4395
4595
4795
4995
5195
5395
5595
5795
5995
6195
4076
4276
Tabella 5.1: Esempio di calcolo del valore utilizzato per limitare il traffico in uscita
dal Core Router
93
Capitolo 5. Risultati sperimentali
funzionamento del sistema che calcola il valore utilizzato per limitare il traffico in
uscita dal core router. Nella prima colonna è indicato il throughput stimato in ingresso all’access point, nella seconda quello stimato in uscita e nella terza il valore
calcolato per il core router.
In figura 5.3 sono riportate le statistiche di riproduzione del filmato elaborate da
QuickTime. In figura 5.4 sono riportati i valori relativi al throughput totale sul wireless e al traffico audio/video, campionati grazie allo sniffer, e i valori di throughput,
registrati grazie ai server Iperf, riguardanti i due flussi di traffico sintetico. È inoltre
riportato l’andamento temporale del valore utilizzato per limitare il traffico in uscita
dal core router diretto alla rete wireless.
Figura 5.5: Statistiche della ricezione del filmato in condizioni di congestione con
QoS
Il risultato visivo ottenuto è decisamente migliore rispetto al caso precedente,
anche se alcuni frame risultano danneggiati. La perdita di pacchetti multimediali
registrata è del 4.40%, diminuendo notevolmente rispetto al 32.57% ottenuto senza
QoS. Questo valore non è però sufficiente per offrire un servizio totalmente soddisfacente agli utenti wireless. Come si vede dal grafico relativo al riempimento del
buffer, si sono verificati due brevi periodi di buffer underrun che hanno causato
problemi di riproduzione audio/video.
94
Capitolo 5. Risultati sperimentali
Il rate medio è stato lievemente inferiore a quello registrato senza traffico di
disturbo, ma rispetto a quel caso la trasmissione di dati si è protratta per più tempo,
fino alla fine della visualizzazione.
8000
filtro sul CR
iperf EF 1 Mbit/s
iperf BE 8 Mbit/s
traffico sul canale radio
traffico in streaming
7000
Throughput [kbit/s]
6000
5000
4000
3000
2000
1000
0
0
10
20
30
40
50
60
70
Istante di campionamento [s]
Figura 5.6: Throughput per i vari flussi in condizioni di congestione con QoS
Finchè è stato presente sul wireless solamente il traffico multimediale, l’access
point è riuscito ad inviare senza problemi tutti i dati ricevuti; per questo motivo
il valore di banda totale impostato sul core router si è mantenuto durante i 10 secondi iniziali al massimo previsto, ossia 7.5 Mbit/s. Dopo l’inizio del trasferimento
di dati Iperf marcati BE è stato registrata una differenza di throughput in ingresso e in uscita dall’access point maggiore di 200 Kbit/s, che ha causato un brusco
abbassamento del valore di banda impostato sul core router. Questo abbassamento
ha causato un netto rallentamento al traffico BE, preservando però il traffico multimediale marcato EF. Successivamente le condizioni di traffico hanno consentito il
graduale aumento del traffico inviato dal core router verso l’access point. Solamente
intorno al cinquantesimo secondo dall’inizio del test si è nuovamente verificata una
95
Capitolo 5. Risultati sperimentali
differenza di throughput tra ingresso e uscita dell’access point sufficiente per causare una diminuzione del valore di banda utilizzato nel filtro. Questa diminuzione
ha portato il filtro ad assumere temporaneamente il valore di circa 4 Mbit/s. L’inizio
della trasmissione di dati Iperf marcati EF alla velocità di 1 Mbit/s non ha inciso sul
traffico multimediale, causando invece la diminuzione della banda disponibile per
il traffico best effort. Il traffico Iperf marcato EF si è mantenuto per tutta la durata
della trasmissione intorno al valore nominale di 1 Mbit/s, facendo registrare alla fine
un valore medio pari a 983 Kbit/s con la perdita dell’1.7% dei pacchetti. La media
totale per quanto riguarda il traffico BE è stata di 3.71 Mbit/s. Il traffico totale sul
wireless ha seguito l’andamento del filtro applicato sul core router senza particolari
oscillazioni. Le oscillazioni del rate con cui sono stati inviati i dati multimediali
hanno invece causato l’oscillazione della velocità di trasferimento del traffico di
tipo BE, che si deve adattare alla banda lasciata libera dal traffico prioritario.
L’introduzione del core router ha migliorato notevolmente le prestazioni offerte
al traffico prioritario, con risultati lievemente migliori per il traffico generato da
Iperf rispetto a quello multimediale. La precisione del campionamento dei valori
di throughput dell’access point e del meccanismo di retroazione che consente di
regolare il core router può essere migliorata per diminuire la probabilità di riduzione
ingiustificata della banda concessa.
5.4.3 Presenza di QoS e banda in downstream variabile
Questa prova è stata condotta utilizzando lo stesso sistema di gestione della QoS del
test precedente. L’unica differenza rispetto all’esecuzione precedente consiste nell’aggiunta, tra il trentesimo ed il cinquantesimo secondo, di un flusso in upstream
generato con Iperf tra il laptop “Eleonora” ed il computer “PP4”. Il client Iperf in
esecuzione sul portatile è stato impostato per trasmettere traffico UDP alla velocità
di 5 Mbit/s. Questo traffico è stato utilizzato per alterare durante la prova la banda
disponibile in downstream verso gli utenti wireless, in modo da verificare il comportamento dinamico del sistema retroazionato che regola il traffico in uscita dal
core router. Questa condizione simula la variazione di troughput dovuta al traffico
generato da altre eventuali stazioni associate. Il traffico così generato compete per
l’invio attraverso la scheda wireless in dotazione ad “Eleonora” con i dati genera96
Capitolo 5. Risultati sperimentali
ti dal player QuickTime e destinati allo straming server. Su questo dispositivo non
è presente alcun meccanismo di differenziazione del traffico e quindi i pacchetti
vengono elaborati secondo lo schema FIFO.
In figura 5.7 sono riportate le statistiche di riproduzione del filmato elaborate da
QuickTime. In figura 5.8 sono riportati i valori relativi al throughput totale sul wireless e al traffico audio/video, campionati grazie allo sniffer, e i valori di throughput,
registrati grazie ai server Iperf, riguardanti i tre flussi di traffico sintetico. È inoltre
riportato l’andamento temporale del valore utilizzato per limitare il traffico in uscita
dal core router diretto alla rete wireless.
Figura 5.7: Statistiche della ricezione del filmato in condizioni di congestione e
variazione del throughput con QoS
Per quanto riguarda le statistiche del filmato multimediale restano valide le considerazioni fatte per il test precedente. La percentuale di pacchetti persi è pari a
4.70, lievemente superiore al 4.40% del caso precedente. Anche l’andamento nel
tempo del rate, della percentuale di pacchetti persi e del riempimento del buffer
non si discosta in modo rilevante rispetto alla prova effettuata senza traffico in upstream. Questo dimostra che la variazione improvvisa della banda disponibile in
downstream non ha inciso significativamente sulla trasmissione e sulla riproduzione
del filmato.
97
Capitolo 5. Risultati sperimentali
8000
filtro sul CR
iperf EF 1 Mbit/s
iperf BE 8Mbit/s
traffico sul canale radio
traffico in streaming
iperf upstream 5 Mbit/s
7000
Throughput [kbit/s]
6000
5000
4000
3000
2000
1000
0
0
10
20
30
40
50
60
70
Istante di campionamento [s]
Figura 5.8: Throughput per i vari flussi in condizioni di congestione e variazione
del throughput con QoS
La figura 5.8 mette in evidenza il brusco calo della banda utilizzata sul core
router in corrispondenza dell’istante in cui è iniziato il traffico in upstream. Per
tutta la durata di tale traffico, il valore di banda impostato sul core router è rimasto
intorno a 4 Mbit/s, che corrisponde all’incirca alla banda massima disponibile meno
il throughput realmente utilizzato in upstream. Il traffico in upstream si è infatti
mantenuto intorno ai 3 Mbit/s, facendo registrare un valore medio di 2.89 Mbit/s.
Durante questa prova il traffico Iperf prioritario, nonostante alcune oscillazioni
rispetto al valore nominale di 1 Mbit/s, non ha fatto registrare la perdita di alcun pacchetto. Queste oscillazioni sono potenzialmente dannose per un flusso multimediale
sprovvisto di un adeguato meccanismo di buffering.
98
Capitolo 6
Conclusioni
In questo lavoro di tesi è stato realizzato un prototipo di dominio DiffServ su rete
eterogenea wired e wireless che comprende un sistema software per garantire un
utilizzo semplice, equo e controllato delle risorse disponibili. Le funzionalità di base necessarie alla realizzazione dei nodi di rete DiffServ sono presenti nei computer
dotati di sistema operativo GNU/Linux. In particolare sono presenti discipline di
gestione delle code che offrono buone prestazioni per quanto riguarda il link sharing, cioè la suddivisione della banda disponibile, per garantire l’invio secondo un
rate fissato ai vari aggregati di traffico. Non sono invece disponibili meccanismi per
regolare in modo preciso i valori di ritardo e jitter sperimentati dai vari aggregati di
traffico.
Il bandwidth broker realizzato è dotato delle funzionalità previste per quanto
riguarda l’interfacciamento con l’utente, con l’amministrazione del dominio e con
gli edge router. Sono stati studiati differenti sistemi di interfacciamento tra utenti
e bandwidth broker per semplificare l’interazione e migliorare il controllo da parte
dell’ammistrazione. In particolare è stato realizzato un prototipo che comprende un
proxy che si occupa di richiedere l’allocazione delle risorse intercettando le semplici
richieste di servizio degli utenti (nel caso specifico richieste di video streaming
RTSP). Questa soluzione permette l’utilizzo sia dal lato client che dal lato server di
programmi che ignorano la qualità del servizio, consentendo di servirsi di qualsiasi
prodotto disponibile. Questo modello è applicabile anche in casi differenti dallo
streaming video.
99
Capitolo 6. Conclusioni
È stato studiato il modo per offrire QoS sulla rete wireless utilizzata in modalità
Infrastructure per il traffico proveniente dall’access point e destinato ai dispositivi
mobili. Non è stato possibile utilizzare i meccanismi di QoS descritti nella Deployment Guide [23] che descrive il funzionamento dell’access point utilizzato in questo
lavoro. La sperimentazione ha infatti dimostrato che la conversione tra DSCP e classe di servizio interna all’access point, necessaria per includere il dispositivo in una
architettura DiffServ, non funziona. Per migliorare le prestazioni non soddisfacenti ed offrire un sistema maggiormente configurabile è stato progettato e realizzato
un meccanismo che integra la parte wireless nell’architettura DiffServ predisposta
per la rete wired. In particolare è stato introdotto un core router tra il resto della
rete fissa e l’access point per adattare il traffico diretto ai dispositivi mobili secondo una politica di qualità del servizio. È stato realizzato un sistema in retroazione
che consente di regolare periodicamente i parametri che influenzano l’elaborazione effettuata dal core router in base ai valori di traffico registrati dall’access point.
Questo consente al sistema di adattarsi alla variazione del throughput disponibile
in uscita dall’access point. La sperimentazione effettuata ha dimostrato che questo
sistema riduce sensibilmente la perdita di pacchetti prioritari in caso di congestione, con risultati particolarmente apprezzabili per applicazioni che utilizzano traffico
prevalentemente monodirezionale.
6.1
Sviluppi futuri
Il bandwidth broker necessita di una interfaccia interdominio per poter gestire la
QoS in un ambiente complesso, come ad esempio l’intera rete del campus universitario. Resta inoltre ancora aperto il problema della autenticazione degli utenti,
particolarmente delicato per quelli collegati tramite wireless.
Per quanto riguarda l’interfacciamento tra utente, gestore dei servizi e gestore
della QoS, possono essere sviluppate in futuro le altre soluzioni proposte (modello
Grid-based, gestione della QoS da parte del server, ecc.). La soluzione realizzata
necessita invece di essere completata nella parte relativa alla autenticazione.
Un ulteriore sviluppo potrebbe essere l’introduzione di meccanismi di QoS Routing per impostare l’attraversamento di specifici domini che dispongono delle risorse necessarie per soddisfare le richieste degli utenti.
100
Capitolo 6. Conclusioni
Durante questo lavoro non è stato possibile testare il comportamento del canale di comunicazione wireless in presenza di molti dispositivi associati all’access
point. Sarebbe interessante verificare l’andamento del throughput in downstream
con l’aumentare degli utenti associati, in particolare nel caso di utilizzo di applicazioni multimediali come lo streaming video. In questo scenario potrebbe essere
studiato un meccanismo di controllo delle associazioni e di bilanciamento del carico di differenti access point. Altri elementi utili per questo scopo potrebbero essere
gli Information Element che gli enhanced access point inviano alle stazioni mobili in fase di associazione. Queste informazioni, previste nelle bozze del protocollo
802.11e e supportate dagli access point presenti in dipartimento, indicano lo stato
di carico del dispositivo, consentendo alle stazioni mobili di scegliere l’access point
migliore a cui associarsi.
Restano inoltre da studiare le problematiche relative alla mobilità degli utenti,
che implica la necessità di spostare la configurazione della QoS tra le varie celle
interessate.
101
Bibliografia
[1] J.S.B. Martins. Quality of Service in IP Networks. In Managing IP Networks, chapter 3. P.
Levine, J. Martins, B. Stiller, M.H. Sherif, A. Fumagalli, J. Aracil and L. Valcarenghi, 2003.
[2] Hui-Lan Lu and I. Faynberg. An architectural framework for support of quality of service in
packet networks. IEEE Communications Magazine, 2003.
[3] R. Braden, D. Clark, , and S. Shenker. Integrated Services in the Internet architecture: an
overview - RFC 1633, 1994.
[4] S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, and W. Weiss. An Architecture for
Differentiated Services - RFC 2475, 1998.
[5] B.E. Carpenter and K. Nichols. Differentiated services in the Internet. IEEE Proceedings,
90(9), 2002.
[6] Y. Bernet, S. Blake, D. Grossman, and A. Smith. Multiprotocol Label Switching Architecture
- RFC 3031, 2001.
[7] Shaleeza Sohail and Sanjay Jha. The Survey of Bandwidth Broker.
[8] Stefan Mangold, Sunghyun Choi, Peter May, Ole Klein, Guido Hiertz, and Lothar Stibor.
IEEE 802.11e Wireless LAN for Quality of Service.
[9] S. Park, D. Kim, K. Kim, S. Choi, and S. Hong. Collaborative QoS Architecture between
DiffServ and 802.11e Wireless LAN. In IEEE VTC’03-Spring, 2003.
[10] D. Gu and J. Zhang. QoS Enhancement in IEEE802.11 Wireless Local Area Networks. IEEE
Communications Magazine, 2003.
[11] K. Nichols and B. Carpenter. Definition of differentiated services per-domain behaviors and
rules for thek specification - RFC 3086, 2001.
[12] K. Nichols, S. Blake, D. Black, and S. Backer. Definition of the Differentiated Services Field
(DS Field) in the IPv4 and IPv6 Headers - RFC 2474, 1998.
[13] Y. Bernet, S. Blake, D. Grossman, and A. Smith. An Informal Management Model for
Diffserv Routers - RFC 3290, 2002.
[14] V. Jacobson, K. Nichols, and K. Poduri. An Expedited Forwarding PHB - RFC 2598, 1999.
[15] J. Heinanen, F. Baker, W. Weiss, and J. Wroclawski. Assured Forwarding PHB Group - RFC
2597, 1999.
[16] J. Heinanen and R. Guerin. A single rate three color marker - RFC 2697, 1999.
[17] J. Heinanen and R. Guerin. A two rate three color marker - RFC 2698, 1999.
102
BIBLIOGRAFIA
BIBLIOGRAFIA
[18] K. Chan, R. Sahita, S. Hahn, and K. McCloghrie. Differentiated Services Quality of service
policy information base - RFC 3317, 2003.
[19] D. Durham er al. The COPS (common open policy service) protocol - RFC 2748, 2000.
[20] J. Case, M. Fedor, M. Schoffstall, and J. Davin. A Simple Network Management Protocol
(SNMP) - RFC 2748, 1990.
[21] B. Teitelbaum and P. Chimento. QBone Bandwidth Broker Architecture. work in progress.
http://qbone.internet2.edu/bb/bboutline2.html.
[22] Cisco AVVID Network Infrastructure Enterprise Quality of Service Design. Cisco Systems,
2002.
[23] Cisco Systems. Wireless Quality-of-Service Deployment Guide.
http://www.cisco.com/en/US/products/hw/wireless/ps430/prod_
technical_reference09186a0080144498.html.
[24] Cisco Aironet Access Point Software Configuration Guide for VxWorks.
http://www.cisco.com/en/US/products/hw/wireless/ps458/
products_configuration_guide_book09186a0080104916.html.
[25] W. Almesberger, J. Salim, A. Kuznetsov, and D. Knuth. Differentiated Services on Linux,
1999.
[26] W. Almesberger. Linux network traffic control — implementation overview.
[27] Linux Advanced Routing & Traffic Control. http://lartc.org/.
[28] B. Hubert. Linux Advanced Routing & Traffic Control HOWTO.
http://lartc.org/howto/.
[29] Hierarchical Token Bucket queueing discipline.
http://luxik.cdi.cz/~devik/qos/htb/.
[30] Differentiated Services on Linux. http://diffserv.sourceforge.net/.
[31] The Linux Kernel HOWTO.
http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html.
[32] Kansas University Bandwidth Broker. http://www.ittc.ku.edu/~kdrao/BB/.
[33] Matteo Merli. RTSP Caching Proxy. http://www.ce.unipr.it/~mmerli/.
[34] Arunchandar Vasan and A. Udaya Shankar. An Empirical Characterization of Instantaneous
Throughput in 802.11b WLANs.
[35] A. Banchs and X. Perez. Providing throughput guarantees in IEEE 802.11 wireless LAN. In
WCNC2002, 2002.
[36] Jangeun Jun, Pushkin Peddabachagari, and Mihail L. Sichitiu. Theoretical Maximum
Throughput of IEEE 802.11 and its Applications.
[37] Y. Rekhter, R.G. Moskowitz, G.J. de Groot, D. Karrenberg, and E. Lear. Address allocation
for private internets - RFC 1918, 1996.
[38] A. Tirumala, F. Qin, J. Dugan, J. Ferguson, and K. Gibbs. Iperf home page.
http://dast.nlanr.net/Projects/Iperf/.
103
BIBLIOGRAFIA
BIBLIOGRAFIA
[39] A. Sundaresan and G. Dhandapani. Diffspec - A Differentiated Services tool. University of
Kansas, 12 1999.
[40] Imad Aad and Claude Castelluccia. Differentiation Mechanisms for IEEE 802.11. In
INFOCOM, pages 209–218, 2001.
[41] Indu Mahadevan and Krishna M. Sivalingam. Architecture and Experimental Framework for
Supporting QoS in Wireless Networks Using Differentiated services. Mobile Networks and
Applications, 6(4):385–395, 2001.
[42] J. Chen, A. Caro, A. McAuley, S. Baba, Y. Ohba, and P. Ramanathan. A QoS Architecture for
Future Wireless IP Networks.
[43] K. Nichols, V. Jacobson, and L. Zhang. A Two-bit Differentiated Services Architecture for
the Internet - RFC 2638, 1997.
[44] J.C. Oliveira, T. Anjali, B. King, and C. Scoglio. Building an IP Differentiated Services
Testbed. In ICT 2001, 2001.
[45] D. Black. Differentiated Services and Tunnels - RFC 2983, 2000.
[46] G. Apostolopoulos, R. Guerin, S. Kamat, A. Orda, T. Przygienda, and D. Williams. QoS
Routing Mechanisms and OSPF Extensions - RFC 2676, 1999.
[47] E. Crawley, R. Nair, B. Rajagopalan, and H. Sandick. A Framework for QoS-based Routing
in the Internet - RFC 2386, 1998.
[48] J. Drake. Linux Networking HOWTO.
http://www.linuxports.com/howto/networking/.
[49] N. Christin and J. Liebeherr. A QoS Architecture for Quantitative Service Differentiation.
IEEE Communications Magazine, 2003.
104