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