Corso di Protocolli per Reti Mobili

Transcript

Corso di Protocolli per Reti Mobili
Università di Napoli Federico II – Facoltà di Ingegneria – Corso di Laurea in Ingegneria Informatica
Corso di Protocolli per Reti Mobili
Lo standard IEEE 802.11:
Quality of Service (QoS)
Quality of Service (QoS)
●
L'espressione Quality of Service fa riferimento ad
un insieme di tecniche volte a garantire a
determinati flussi di traffico certe prestazioni in
termini di uno o più parametri quali:
–
–
–
–
Throughput (o banda)
Delay
Jitter
Packet loss
Quality of Service (QoS)
●
●
Il concetto di QoS è nato non appena si è
cominciato ad usare Internet per applicazioni
diverse dal semplice trasferimento dati
Applicazioni diverse hanno requisiti diversi:
–
Applicazioni multimediali non real-time (e.g.,
streaming)
●
–
Applicazioni multimediali real-time (e.g., VoIP,
conferencing)
●
–
Throughput, jitter
Throughput, delay, jitter
Applicazioni web-banking
●
Throughput, packet loss
QoS in reti WLAN
●
Gli strumenti chiave per garantire QoS sono:
–
–
Scheduling: viene concesso ai vari flussi di traffico un
accesso differente alle risorse di rete
Admission control: il traffico in ingresso alla rete
viene limitato per evitare di sovraccaricare la rete e
conseguentemente diminuire le prestazioni
QoS in reti WLAN
●
●
Nel novembre 2005, lo standard IEEE 802.11e ha
introdotto l' Hybrid Coordination Function (HCF) per
il supporto della QoS in reti WLAN
HCF consiste di due meccanismi :
–
EDCA (Enhanced Distributed Controlled Access)
●
–
HCCA (HCF Controlled Channel Access)
●
●
Contention-based
Contention-free
Il supporto alla QoS è realizzato tramite funzionalità
aggiuntive di cui sono dotate QoS STA e QoS AP
QoS in reti WLAN
●
Con HCF, l'unità base di allocazione del diritto di
trasmettere sul mezzo wireless è chiamato TXOP
(Transmission Opportunity)
–
●
Definito da tempo d'inizio e durata massima
Le stazioni possono ottenere TXOP usando sia
EDCA che HCCA
–
A seconda del meccanismo usato per ottenere il
TXOP, si parla di EDCA TXOP oppure HCCA TXOP
HCF EDCA
●
Sono definiti 8 livelli di priorità (UP – user priority)
che vengono mappati su 4 classi di servizio (AC –
access category)
Priority
UP
Lowest
1
AC_BK (background)
2
AC_BK (background)
0
AC_BE (best effort)
3
AC_BE (best effort)
4
AC_VI (video)
5
AC_VI (video)
6
AC_VO (voice)
7
AC_VO (voice)
Highest
AC
HCF EDCA
MSDU, UP
●
Mapping to ACs
AC_BK
EDCAF
AC_BE
EDCAF
AC_VI
EDCAF
AC_VO
EDCAF
Internal collision resolution
MAC
●
Le 4 classi di servizio
sono gestite da 4
EDCAF (EDCA
function) che si
contendono l'accesso
al canale in maniera
indipendente
Per differenziare il
traffico, le 4 EDCAF
usano parametri
d'accesso differenti
HCF EDCA
●
Le 4 EDCAF si differenziano per:
–
–
–
Il tempo AIFS (Arbitration IFS) che una stazione
deve percepire il canale libero prima di trasmettere
(se il canale era inizialmente libero) o prima di
iniziare il backoff
La dimensione della Contention Window (CW) in
caso di backoff
Il tempo che una stazione può trasmettere dal
momento in cui acquisisce il canale
HCF EDCA
●
●
●
●
●
AIFSAC = SIFS + AIFSNAC x SlotTime
AIFSNAC è inviato dall'AP nelle frame beacon o di
probe response
AIFSNAC >= 2, DIFS = SIFS + 2 x SlotTime ⇒
AIFSAC >= DIFS
AIFSNAC è minore per le classi a priorità maggiore
Analogamente, CWminAC e CWmaxAC sono inviati
dall'AP nelle frame beacon o di probe response e
sono minori per le classi a priorità maggiore
HCF EDCA
●
Collisioni tra EDCAF nella stessa STA sono risolte
internamente
–
–
L'AC a priorità maggiore acquisisce la TXOP
L'EDCAF delle AC a priorità minore si comportano
come se fosse avvenuta una collisione esterna
●
Invoca la procedura di backoff
HCF EDCA
●
La EDCAF che ha acquisito la TXOP può
trasmettere più frame di fila
–
–
●
●
aspettando un tempo SIFS dalla ricezione dell'ACK
della frame precedente
non deve però eccedere la durata massima di TXOP
I valori di TXOP per ogni AC sono inviati dall'AP
nelle frame beacon o di probe response
In un TXOP si possono trasmettere solo frame della
AC che ha acquisito la TXOP
HCF EDCA – considerazioni
●
●
●
I valori di AIFSNAC, CWminAC, CWmaxAC e TXOPAC
sono inviati in broadcast e per questo uguali per
tutte le stazioni
Non si prioritizza una stazione piuttosto che
un'altra, ma un tipo di traffico su un altro all'interno
di una singola stazione
L'accesso al mezzo è basato su contesa, quindi
una stazione non ha garanzie sulla sua possibilità
di trasmettere dati
Contention-based Admission Control
●
Per concedere un uso equo del mezzo wireless,
l'AP può richiedere obbligatoriamente l'admission
control per determinate Access Categories (AC)
–
●
Lo standard raccomanda di non rendere obbligatorio
l'admission control per AC_BK e AC_BE
L'admission control ha l'obiettivo di imporre un
limite, per ciascuna stazione, sul tasso con cui può
trasmettere i dati di una AC sottoposta ad
admission control
Contention-based Admission Control
●
●
Prima di trasmettere traffico di una AC per la quale
è richiesto l'admission control, una STA deve
richiedere all'AP del “tempo sul mezzo condiviso”
(medium time)
La STA invia all'AP una frame ADDTS (ADD Traffic
Stream) Request contenente un elemento TSPEC
che indica:
–
–
–
–
Nominal MSDU size (Byte)
Mean data rate (bit/s)
Minimum PHY rate (bit/s)
Surplus Bandwidth Allowance (SBA)
●
Coeff. (>= 1) per tener conto di possibili ritrasmissioni
Contention-based Admission Control
●
L'AP calcola il medium time:
–
–
–
Medium time = SBA * pps * MPDUExchangeTime
pps = (Mean data rate / 8) / Nominal MSDU size
MPDUExchangeTime = tempo per trasmettere una
MSDU di Nominal MSDU size al tasso Minimum PHY
rate + SIFS + Ack duration
●
Medium time è una “frazione” di tempo
●
L'AP determina se accettare o meno la richiesta
●
Se l'AP accetta la richiesta, invia una frame ADDTS
Response alla STA in cui indica il medium time
calcolato
Contention-based Admission Control
●
Ogni EDCAF mantiene due variabili
–
●
Alla ricezione di una frame ADDTS Response che
accetta la precedente richiesta della STA:
–
●
admitted_time e used_time
admitted_time += AveragePeriod * Medium time
used_time rappresenta il tempo usato in ciascun
periodo di durata AveragePeriod
–
Allo scadere di un periodo:
used_time = max(used_time – admitted_time, 0)
●
–
Il tempo in eccesso usato in un periodo viene considerato
nel successivo
Ad ogni trasmissione (con o senza successo)
used_time = used_time + MPDUExchangeTime
Contention-based Admission Control
●
●
●
Quando used_time raggiunge (o supera)
admitted_time, la EDCAF non può trasmettere
traffico della corrispondente AC
In tal caso, la stazione può decidere di sostituire
temporaneamente i parametri EDCA per tale
EDCAF con quelli specificati per una AC a minore
priorità per la quale non è richiesto l'admission
control
Se le condizioni di canale peggiorano, per cui le
trasmissioni richiedono tempo maggiore, la stazione
può chiedere all'AP di ottenere ulteriore
admitted_time
HCF HCCA
●
È basata su concetti analoghi alla PCF
–
In ogni BSS c'è un Hybrid Coordinator (HC)
●
–
–
Si alternano periodicamente CP e CFP
L'HC ha maggiore priorità di accesso al mezzo di
normali stazioni
●
●
ruolo svolto dall'AP
aspetta un tempo PIFS < DIFS
anche se ci sono importanti differenze
–
–
L'HC può dare ad una stazione il diritto di trasmettere
sia in CFP ma anche in CP
Tale diritto può consentire la trasmissione di
molteplici frame, sempre nel limite di una TXOP
HCF HCCA
●
L'HC invia una frame QoS-poll (sia in CFP che in
CP) per garantire il diritto a trasmettere, che include
–
–
–
●
●
TXOP limit (presente nel campo QoS Control)
Un valore nel campo Duration per proteggere col
meccanismo del NAV l'intera TXOP
Un identificativo del flusso TS (Traffic Stream) a cui
la frame si riferisce
La stazione che la riceve può trasmettere più frame
separate da un intervallo SIFS, se la loro
trasmissione si conclude in una TXOP
La stazione può inviare qualunque frame,
indipendentemente dal TS
HCF HCCA
●
●
Nel tempo di un CP non impegnato da una HCCA
TXOP, si contendono l'accesso al canale le stazioni
che usano DCF ed HCF EDCA
Il motivo per cui l'HC può garantire TXOP anche in
CP è il tentativo di fornire un accesso al canale
garantito alle stazioni
–
Indispensabile per applicazioni voce e video che
richiedono un servizio periodico garantito
Controlled-access Admission Control
●
●
Le stazioni devono inviare le caratteristiche del
proprio traffico (sotto forma di TSPEC) all'HC
L'HC verifica se è in grado di schedulare la nuova
richiesta
–
●
nel rispetto del valore di un parametro configurabile
che indica il rapporto tra il tempo in cui il canale è
controllato dall'HC ed il tempo gestito a contesa
Questo meccanismo di admission control è in
grado, in un ambiente controllato (senza
“interferenza”), di garantire la QoS richiesta ai flussi
di traffico ammessi
Un occhio alle prestazioni
TX
DIFS
DATA
SIFS ACK
RX
Tutto questo tempo per trasmettere solo DATA !
●
L'overhead rappresentato da DIFS, backoff, SIFS e
ACK (ed eventualmente RTS/CTS) è notevole
–
E peggiora all'aumentare del rate di trasmissione
Un occhio alle prestazioni
TX
SIFS
DATA
SIFS ACK
RX
DATA
SIFS ACK
TXOP
●
Il meccanismo delle TXOP consente di aumentare
l'efficienza
–
●
In una TXOP, aspetto solo SIFS e non c'è backoff
Si può aumentare ancora?
Block Ack
●
Lo standard IEEE 802.11e ha anche introdotto un
meccanismo per riscontrare con una sola frame un
blocco di frame inviate da un originator ad un
recipient
Block Ack
●
L'originator invia un blocco di QoS frame separate
da un tempo SIFS
–
–
●
Durante lo scambio ADDBA Request/Response
viene concordato il numero max di MPDU (< 1024)
che il recipient deve bufferizzare
Il valore Ack Policy nel campo QoS control indica
l'uso del meccanismo Block Ack
L'originator può separare la trasmissione delle
frame di un blocco (o delle frame dati e
BlockAckReq) in diversi TXOP
Block Ack
●
L'originator invia una frame BlockAckRequest per
richiedere un riscontro di tutti gli MPDU inviati, a partire
da un determinato valore iniziale di Sequence Control
(SC0)
–
●
●
Seq.Control = Seq.Number * 24 + Fragment Number
Il recipient invia una frame BlockAck contenente una
bitmap di 1024 bit
Il bit n della bitmap riscontra l'MPDU avente Sequence
Control pari a SC0 + n
–
–
pari ad 1 se l'MPDU è stato ricevuto correttamente
pari a 0 se l'MPDU non è stato ricevuto o fa riferimento ad
un frammento non esistente
Block Ack
Fragment 0
Fragment 1
Fragment 2
Fragment 3
non ricevuto
Fragment 5
Fragment 6
MPDU ricevuti della
MSDU avente SN=x
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
(x*24 - SC0) + 0
(x*24 - SC0) + 1
(x*24 - SC0) + 2
(x*24 - SC0) + 3
(x*24 - SC0) + 4
(x*24 - SC0) + 5
(x*24 - SC0) + 6
(x*24 - SC0) + 7
(x*24 - SC0) + 8
(x*24 - SC0) + 9
(x*24 - SC0) + 10
(x*24 - SC0) + 11
(x*24 - SC0) + 12
(x*24 - SC0) + 13
(x*24 - SC0) + 14
(x*24 - SC0) + 15
Valori ed indici degli
elementi della bitmap
relativi alla MSDU
avente SN=x
Un BlockAck può
riscontrare al più
1024/16 = 64 MSDU
Block Ack
●
●
Ricevuto il BlockAck, l'originator ritrasmette gli
MPDU che non sono stati riscontrati
Il recipient svuota il proprio buffer in questo modo:
–
Alla ricezione di una frame BlockAckRequest,
vengono passate al livello superiore:
●
●
–
Tutte le MSDU complete con Sequence Number < SC0
A partire dalla MSDU con Sequence Number pari a
SC0, tutte le MSDU complete successive fino alla prima
MSDU incompleta (esclusa)
Se, dopo la ricezione di un MPDU, il buffer è pieno,
viene passata la MSDU completa con il Sequence
Number più basso
Block Ack
●
Due modalità di Block Ack:
–
Immediate Block Ack
Block Ack
●
Delayed Block Ack
–
–
Compatibile con piccoli cambiamenti hardware
Non adatto per traffico a bassa latenza
No Ack
●
●
●
Lo standard IEEE 802.11e ha anche introdotto una
modalità per le stazioni a QoS che non prevede
alcun riscontro
Non viene fornito un trasferimento affidabile!
I livelli superiori, se occorre, devono occuparsi di
garantire la consegna affidabile dei dati
WMM
●
Wi-Fi MultiMedia è una certificazione prodotta dalla
Wi-Fi Alliance per garantire l'interoperabilità tra
dispositivi che implementano EDCA
–
Lanciata a settembre 2004 (ancora una volta prima
della pubblicazione definitiva di 802.11e)
DSL
(Direct Link Setup)
Direct Link Setup
●
●
●
Lo scambio di dati tra due stazioni di un BSS
raddoppia il consumo di banda
Lo standard IEEE 802.11e ha anche introdotto una
modalità di comunicazione diretta tra le stazioni
Il link diretto viene stabilito con l'ausilio dell'AP
–
●
La STA destinazione potrebbe essere in PowerSave
mode e solo l'AP può svegliarla
Lo scambio di messaggi per il setup del link diretto
serve anche a scambiare informazioni (es., il rate)
tra sender e receiver
Direct Link Setup
1a
2b
STA1
AP
2a
1b
STA2
●
1: DLS Request (rate, STA1 capabilities, MAC di STA1 e STA2)
●
2: DLS Response (rate, STA2 capabilities, MAC di STA1 e STA2)
Direct Link Setup
●
●
Una stazione invia una frame DLS request a
seguito di una richiesta dei livelli superiori
Il setup del link può fallire per diversi motivi:
–
–
–
–
●
Il BSS non permette l'uso di direct link
STA2 rifiuta di stabilire un link diretto
STA2 non è una QoS STA
STA2 non è presente nel BSS
Una volta stabilito il link diretto, sia STA1 che STA2
possono usarlo
–
con una qualunque tecnica di accesso al mezzo
Direct Link Setup
●
●
●
Prima di de-associarsi/de-autenticarsi da un AP,
una STA deve “chiudere” tutti i link diretti attivi
Per chiudere un link diretto, una stazione può
inviare una frame DLS Teardown
Se una stazione lascia un BSS senza chiudere i link
diretti, l'AP può iniziare una procedura di DLS
Teardown
Riferimenti
●
IEEE Std 802.11-2007
–
●
Capp. 5, 7, 9, 11
Wi-Fi Alliance white paper
–
http://www.wi-fi.org/files/wp_1_WMM QoS In WiFi_9-1-04.pdf