12-appunti 1_3.pdf

32
Appunti dalle lezioni di Protocolli per Reti Mobili a cura di Rosario Mattera

Upload: truongthuan

Post on 16-Jan-2017

241 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 12-appunti 1_3.pdf

Appunti dalle lezioni diProtocolli per Reti Mobili

a cura di Rosario Mattera

Page 2: 12-appunti 1_3.pdf

Introduzione alle reti wirelessIl vantaggio principale nell'utilizzo di trasmissioni wireless è la mobilità concessa agli utenti. Da

non trascurare è poi la flessibilità, intesa come capacità di sviluppo rapido della rete. Per aggiungere un utente in una rete wireless basta modificare qualche file di configurazione mentre per aggiungere un utente ad una rete fissa occorre stendere cavi: muovere bit è più semplice che muovere atomi. Inoltre la flessibilità può essere vista come possibilità di connettività all'interno di vecchi palazzi o palazzi storici.

Il mezzo utilizzato per trasmettere dati in una rete wireless è l'onda radio, radiazioni elettromagnetiche che si propagano nello spazio libero. Queste onde sono trasmesse in specifiche bande frequenziali, il cui utilizzo è licenziato da enti della particolare nazione. Di particolare interesse sono le bande ISM, riservate all'utilizzo di apparecchiature industriali, scientifiche e mediche. In tali bande sono consentite operazioni prive di licenza, e per questo vengono utilizzate per le reti wireless. Esistono comunque limiti sulla potenza irradiata e, per definizione, i dispositivi operanti in questa banda devono tollerare l'interferenza prodotta da altri dispositivi. L'intervallo di frequenze va da 2,4 a 5,8 GHz.

Le reti wireless possono essere viste come le complementari delle reti fisse, così come i cellulari sono i complementari dei telefoni fissi. La differenza principale tra le reti cablate e quelle wireless è la mancanza di un confine ben determinato della rete. Mentre l'estensione di una rete wired è determinata dai collegamenti realizzati tramite la stesura di cavi, nelle reti wireless non esiste un limite fisso alla copertura della rete, poiché le onde radio possono essere ricevute e trasmesse con distanze diverse, a seconda della dimensione delle antenne, delle condizioni meteorologiche, etc.

Un'altra differenza consiste nel fatto che le reti wired funzionano esattamente nel modo in cui era previsto che funzionassero in fase di progettazione, poiché il mezzo di trasmissione assicura specifiche garanzie sull'invio e la ricezione dei dati. Per le reti wireless questo non vale, perché spesso il comportamento della rete può essere impredicibile. Inoltre le onde radio possono soffrire di diversi problemi di propagazione che possono interrompere il collegamento radio, come le interferenze multipath. Mentre per aumentare la capacità di una rete wired basta sostituire apparecchiature come gli switch, per una rete wireless il processo si complica. In generale, è possibile passare per due vie: aumentare la larghezza di banda, utilizzare codifiche che trasportino più dati per frame trasmesse nell'unità di tempo. Poiché la prima via è dispendiosa, spesso si ricorre alla seconda.

Un problema fondamentale, a cui tuttavia non si era dato molto importanza nei primi lavori, è la sicurezza. A causa della natura del mezzo, chiunque sia in possesso di un'apparecchiatura radio può ascoltare le comunicazioni che si propagano intorno ad esso. Negli standard sono stati quindi inserite tecniche per l'autenticazione e l'autorizzazione degli utenti e la crittazione dei dati.

Il nome più comune per riferirsi alle reti 802.11 è Wi-Fi, a causa dell'esistenza della Wi-Fi Alliance, una associazione no-profit che certifica la conformità delle apparecchiature presenti sul mercato allo standard 802.11.

L'IEEE 802 è un progetto dell'IEEE per lo sviluppo di standard per le reti LAN. All'interno del progetto esistono diversi gruppi di lavoro (working group), che si occupano di specifi aspetti del problema e ad ognuno dei quali è assegnato un identificativo numerico. La tecnologia Ethernet fu standardizzata dal terzo gruppo e per questo è denominata 802.3. All'interno dei working group esistono diversi gruppi ad obiettivo (task group), che si occupano di specifici aspetti dello standard, e ai quali è assegnata una lettera. Quindi i documenti prodotti dal task group sono etichettati dalla sequenza nome_progetto.working_group.task_group. Inoltre, gli standard che sono in stretto contatto con i precedenti e non possono essere considerati singolarmente vengono etichettati con lettere minuscole. Ad esempio, 802.11.b o 802.11.g; mentre gli standard autonomi, come 802.1Q e 802.1X, sono etichettati con lettere maiuscole e contenuti in un unico documento.

Page 3: 12-appunti 1_3.pdf

Panoramica delle reti 802.11802.11 fa parte della famiglia IEEE 802. In figura è mostrata l'intera famiglia e le relazioni con il

modello OSI.

Ogni rete 802 ha un componente MAC e uno PHY. Il MAC è l'insieme di regole per determinare come accedere al mezzo ed inviare dati, mentre i dettagli della trasmissione e ricezione dei dati è lasciata al PHY. Lo strato data link è composto dal sottostrato LLC e dal sottostrato MAC. LLC nasconde le differenze tra i vari tipi di reti 802 offrendo un'interfaccia e un formato unico allo strato di rete. LLC comunica quindi con lo strato MAC che avrà funzioni specifiche rispetto alle tecniche di trasmissione e ricezione che saranno usate. Le diverse versioni dello standard 802.11 forniscono diversi livelli PHY.

L'utilizzo di onde radio rende complesso il livello fisico, che è costituito da due sottolivelli: • PLCP (Physical Layer Convergence Procedure), che si

occupa di mappare le frame MAC sul mezzo trasmissivo;• PMD (Physical Medium Dependent), che si occupa di

trasmettere tali frame.I componenti principali di una rete 802.11 sono:

• Stazioni: dispositivi con un'interfaccia di rete wireless;• Access Point (AP) : dispositivi che si comportano come stazioni e realizzano principalmente la funzione di bridging wireless-to-wired;• Distribution System (DS) : componente logico che mette in comunicazione tra loro diversi AP in modo che questi possano tenere traccia dei movimenti delle stazioni mobili

L'unità elementare di una rete 802.11 è la BSS (Basic Service Set), un insieme di stazioni che possono comunicare tra loro. L'area all'interno della quale le stazioni di una BSS riescono a comunicare è detta BSA (Basic Service Area). Esistono due tipologie di BSS: indipendenti e infrastruttura. Le BSS indipendenti sono dette IBSS e le stazioni al suo interno comunicano direttamente tra loro. Di solito questo tipo di reti vengono creati con specifici scopi e per questo vengono dette reti ad hoc. Le BSS infrastruttura sono invece dotate di un AP. In questo caso la comunicazione tra due stazioni all'interno della BSS avviene in due fasi: la stazione trasmittente invia la frame all'AP, il quale la ritrasmetterà alla stazione destinataria. In questo caso la BSA è determinata dall'area in cui le trasmissioni dell'AP possono essere ricevute. L'utilizzo di un AP comporta due grossi vantaggi:

• la distanza tra due stazioni che vogliono comunicare può essere arbitraria a patto che si trovino all'interno della BSA (ossia il raggio d'azione dell'AP);

• l'AP può gestire le modalità power-safe delle stazioni, bufferizzando le frame destinate a stazioni entrate in tale modalità, minimizzando l'utilizzo di energia.

In reti infrastruttura le stazioni devono essere associate all'AP per poter usufruire dei servizi di rete. L'associazione è l'operazione attraverso cui una stazione si unisce ad una rete 802.11. Ogni stazione può essere al più associata con un unico AP.

Page 4: 12-appunti 1_3.pdf

Più BSS possono essere connesse tra loro per fornire una copertura di rete maggiormente estesa. Più BSS collegate tra loro prendono il nome di ESS (Extended Service Set). Una ESS è realizzabile collegando tra loro gli AP delle diverse BSS attraverso un DS. A tutti gli AP è dato lo stesso SSID (Service Set Identifier), che rappresenta il nome della rete per gli utenti. Lo standard non definisce in che modo debba essere realizzato il DS ma solo i servizi che deve offrire. Solitamente è una rete Ethernet. Per le stazioni all'interno di un ESS il passaggio da una BSS ad un'altra deve essere trasparente come anche la comunicazione con stazioni di altre BSS dell'ESS. Le comunicazioni tra le stazioni all'interno dell'ESS restano confinate al livello MAC. Ogni AP mantiene una lista delle stazioni ad esso associate e le comunica agli altri AP in modo da gestire i movimenti delle stazioni. Un protocollo standard per lo scambio di queste informazioni è IAPP (Interaccess point protocol). Quando arriva una frame destinata ad una stazione, il DS la inoltra all'AP a cui quest'ultima è associata. C'è da dire che una parte del DS si trova proprio all'interno degli AP. Infatti il DS è composto dall'unione della dorsale cablata (che collega fisicamente gli AP) e dal bridging engine all'interno degli AP, che collega l'interfaccia Ethernet con quella wireless. Il vantaggio principale nell'utilizzare una ESS è quello di avere un unico indirizzamento IP perchè tutti i BSS collegati fanno parte della stessa sottorete. Negli ultimi anni anche la dorsale del DS viene realizzata con il mezzo wireless e si parla di WDS (Wireless Distribution System).

Solitamente le BSA delle BSS di una ESS sono in qualche modo sovrapposte. Questo per consentire alle stazioni di muoversi tra le BSS continuando ad usufruire dei servizi e per rendere la ESS più robusta alle cadute dei singoli AP. Infatti, se le BSA sono sovrapposte quando un AP fallisce le stazioni ad esso associate possono comunicare con l'AP di un'altra BSS. Inoltre è possibile che diversi tipi di reti 802.11 possano essere sovrapposte. Ad esempio, è possibile avere la sovrapposizione tra una BSS infrastruttura e una IBSS.

Le interfacce di rete 802.11 così come le 802.3 sono identificate da un indirizzo MAC a 48 bit. Per le interfacce wireless sono disponibili servizi diversi da quelli delle interfacce wired, a causa della minore affidabilità delle onde radio rispetto ai cavi. I servizi sono:

• Distribution: in modalità infrastruttura ogni frame viene inoltrata verso la destinazione attraverso questo servizio, che determina l'indirizzo destinazione della frame. • Integration: servizio fornito dal DS per connettere il DS stesso con reti non 802.11.• Association: servizio con cui una stazione si registra presso un AP; tale informazioni viene

utilizzata dal DS per inviare le frame all'AP a cui è associata la stazione destinataria della frame. • Reassociation: è un servizio che consente ad una stazione di associarsi ad un altro AP della

ESS; la corrispondenza STA-AP viene spostata da un AP all'altro. Anche questa informazione è notificata al DS. • Diassociation: servizio che consente di terminare un'associazione. É un servizio che può

essere invocato sia dalla stazione che dall'AP e consiste essenzialmente in una notifica; l'entità che riceve questo messaggio non può rifiutarlo.• Authentication: servizio che consente ad una stazione di identificarsi presso un AP, in

modo che questo possa consentire l'accesso alla rete solo a chi ne possiede i diritti. È il passo che precede l'associazione. Esistono due tipi di autenticazione

- Open System: non esistono credenziali di accesso e ad ogni stazione viene consentito di associarsi all'AP; meccanismo utilizzato nelle reti aperte- Shared Key: solo le stazioni che conoscono una chiave comune (WEP) possono associarsi all'AP.

In entrambi i casi è possibile gestire una lista di MAC delle stazioni autorizzate: questo serve a poco perchè è possibile cambiare via software l'indirizzo MAC.Nell'802.11.i sono stati inseriti criteri di sicurezza più robusti che vanno sotto il nome di RSNA. Questi comprendono EAP e PSK. A differenza dell'associazione, una stazione può autenticarsi con più AP per ridurre la latenza di reassociazione tra un AP ed un altro.

Page 5: 12-appunti 1_3.pdf

• Deauthentication: termina una autenticazione e la corrispondente associazione. Anch'essa, al pari della diassociation può essere richiesta sia dall'AP che dalla stazione e rappresenta un atto di notifica.• Confidentiality: in una rete cablata solo le stazioni fisicamente collegate possono inviare e

ricevere traffico. Nelle reti wireless il mezzo è condiviso e anche stazioni esterne alla WLAN possono ricevere e inviare traffico. Si è pensato quindi alla possibilità di cifrare i dati. La prima soluzione al problema della riservatezza è stata WEP, che aveva l'obiettivo di fornire lo stesso livello di riservatezza delle reti wired. Utilizzare la chiave WEP per cifrare i dati non è molto utile in quanto, una volta ottenuta (cosa facile da fare), è possibile sia autenticarsi che decifrare i dati. Allora sono state presentate due soluzioni TKIP e CCMP, solo la prima retrocompatibile con le schede wireless pensate per WEP. Questi ultimi due protocolli consentono, oltre a cifrare i dati, di verificare l'identità del mittente evitando che una stazione possa mascherarsi sotto le spoglie di un'altra, e di rilevare replay attack (invio di informazioni di autenticazione intercettate da terzi per godere dei diritti di una delle entità coinvolte nella comunicazione) utilizzando un numero di sequenza che rileva frame vecchie rispedite in un tempo successivo.

Operazioni di gestioneAll'interno di una BSS tutte le stazioni devono essere sincronizzate con un orologio comune:

questo può essere utile nella trasmissione Frequency Hopping e per gestire le modalità powersafe delle stazioni. In una BSS infrastruttura il timer comune viene inizializzato dall'AP e inviato periodicamente nelle beacon frame. In una IBSS invece tutte le stazioni partecipano alla generazione di beacon secondo un algoritmo distribuito. Le beacon frame, in linea generale, annunciano l'esistenza di una rete e sono trasmesse ad intervalli regolari per consentire alle stazioni mobili di trovare e identificare una rete, oltre che a comunicare parametri utili alle stazioni per unirsi alla rete. Infatti, oltre al timer, che compare come timestamp modulo 264, viene specificato l'intervallo con cui sono trasmesse tali frame, l'SSID della rete, i rate di trasmissione supportati, etc.

Come si individuano gli AP presenti nel raggio d'azione della stazione? La stazione intraprende un'operazione di scanning, un servizio offerto dal livello MAC ma richiesto dai livelli superiori. La richiesta di scansione può prevedere diversi parametri, come il tipo di BSS (infrastruttura, indipendente, qualsiasi), il tipo di scansione (attiva, passiva), ricercare una rete avente un particolare BSSID (indirizzo MAC dell'AP) o SSID, su quali frequenze cercare (ChannelList), ogni quanto cercare una rete (ProbeDelay), il tempo di ricerca per canale (Min/MaxChannelTime).

La scansione di tipo passivo è utilizzata per risparmiare energia poiché la stazione resta semplicemente in ascolto delle beacon frame su ciascun canale, per un tempo pari a MaxChannelTime. La scansione restituisce le beacon frame che soddisfano i parametri della richiesta.

Nella scansione attiva la stazione si adopera per trovare la rete, seguendo questa procedura:• Si pone in ascolto sul canale in attesa di frame beacon o che scada il timer ProbeDelay. If arriva una frame il canale è utilizzato e può essere sondato. Il timer previene che un canale non usato possa bloccare la procedura.• La stazione accede al mezzo usando la procedura DCF e invia la frame ProbeRequest.• La stazione attende per un tempo pari a MinChannelTime:

- se il mezzo non è mai occupato non esistono reti, e si pone in ascolto su un altro canale.- se il mezzo è occupato durante il MinChannelTime attende fino al MaxChannelTime ed elabora ogni ProbeResponse. Dopodichè passa al canale successivo.

Una Probe Request presenta due campi: SSID e i rate supportati dalla stazione mobile. Il campo SSID può essere quello di una particolare rete oppure l'SSID di broadcast.

La fase di scansione restituisce un elenco di BSS accessibili e conformi con i parametri di ricerca. A questo punto la stazione può selezionare la BSS a cui unirsi (joining). Solitamente tale operazione è

Page 6: 12-appunti 1_3.pdf

pilotata dall'utente. Le fasi successive sono l'autenticazione e l'associazione.

Livello FisicoPoiché i dispositivi wireless operano in bande non licensiate, sono state ideate tecniche che

consentono in qualche modo di attenuare le interferenze generate da altri dispositivi. Una tecnica utilizzata a tale scopo è la spread spectrum, a spettro esteso. Mentre nelle tradizionali tecniche di trasmissione radio si cerca di ottenere segnali con la minore occupazione di banda possibile, la tecnica di spread spectrum consiste nello spalmare il segnale, che tradizionalmente è a banda stretta, su un range di frequenze molto più ampio di quello necessario. Questo perchè il rumore è anch'esso un segnale a banda stretta. In fase di ricezione il segnale originario è ricostruito come segnale a banda stretta mentre il rumore viene spalmato su un ampio range di frequenze, così da migliorare il rapporto segnale rumore. Questa tecnica viene anche utilizzata per rendere più difficilmente intercettabili le comunicazioni, perchè spalmando il segnale viene distribuita anche la sua energia che va a confondersi con il rumore radio di fondo.

I dispositivi conformi allo standard 802.11 utilizzando tre differenti tecniche spread spectrum: Frequency Hopping (FH o FHSS), Direct Sequence (DS o DSSS) e Orthogonal Frequency Division Multiplexing (OFDM). Quindi ci troviamo al livello PHY.

Il Frequence Hopping consiste nel saltare da una frequenza ad un'altra, secondo uno schema predeterminato e pseudocasuale, trasmettendo una parte del segnale in ogni sottocanale. La trasmissione su un sottocanale dura per un tempo detto dwell time. La sequenza di frequenze prende il nome di sequenza di hop. Il vantaggio principale è che nello stesso spazio possono coesistere reti che hanno sequenze differenti, anche se i bassi tassi di trasmissione, 1 e 2 Mb/s, anche causato l'abbandono di questa tecnica. In USA, Cina, Europa, escluse Francia e Spagna, sono definiti 79 canali numerati da 2 a 80. Ogni canale ha un'ampiezza di 1 MHz e con una frequenza centrale per il canale 2 pari a 2402 Ghz. I successivi canali hanno una frequenza centrale aumenta di 1 e il dwell time è pari a circa 0.4 sec. Una sequenza di hop è una permutazione dei 79 canali e per questi stati sono state standardizzate 78 sequenze. Inoltre le 78 sequenze sono state divise in 3 insiemi tali che due sequenze dello stesso insieme sono ortogonali tra loro. Ogni sequenza ha il vincolo che la distanza minima tra due frequenze consecutive sia pari a 6MHz. Sono supportati 2 tecniche di trasmissione che consentono di avere due tassi di trasmissione differenti: con la modulazione 2-level GFSK (si trasmette aggiungendo o sottraendo una certa deviazione alla frequenza centrale per inviare uno 0 o un 1) si arriva a 1 Mb/s mentre con la 4-level GFSK (4 diverse deviazioni aggiunte o sottratte per inviare uno tra 00, 01, 10, 11) si ottengono 2 Mb/s. All'interno della beacon frame sono inserite informazioni come il numero di sequenza di hop usata e l'indice della frequenza correntemente usata all'interno della frequenza.

Una XSDU è l'unità passata dal livello superiore a quello inferiore. Ad esempio, MSDU è ciò che viene passato da IP a MAC, mentre la MPDU è l'unità scambiata tra i livelli MAC. Quindi MPDU = Header + MSDU. Inoltre la MSDU può essere frammentata. MPDU è la SDU del livello fisico.

Un'altra tecnica spread spectrum è Direct Sequence la quale, a parità di bit rate richiede una potenza maggiore rispetto a FH, ma rispetto a quest'ultima consente di raggiungere bit rate più elevati. La DS opera applicando una sequenza di chipping allo stream di dati. Una sequenza di chipping è una sequenza di bit utilizzati per la fase di

Page 7: 12-appunti 1_3.pdf

codifica e che quindi non trasportano alcuna informazione. Il vincolo fondamentale è che lo stream di chipping deve avere una rate superiore rispetto ai dati. In 802.11 la sequenza di chipping utilizzata è una Barker word da 11 bit (10110111000). Ogni bit è codificato utilizzando l'intera parola. Il codificatore lavora come un addizionatore modulo 2. Il ricevitore decodificherà uno 0 o un 1 a seconda del matching con la sequenza di chipping. Codificare un segnale a basso bit-rate ad un chip rate più elevato ha l'effetto di spalmare la potenza del segnale su una banda più larga. Un parametro importante è lo spreading ratio, ossia il numero di bit usati per costituire la sequenza di chipping. Un maggiore

spreading ratio migliora la capacità di ricevere un segnale correttamente su un canale sporco ma richiede un maggiore chipping rate (velocità con

cui viene generato il segnale corrispondente alla sequenza di chipping) e una maggiore occupazione di banda. Raddoppiare lo spreading ratio significa raddoppiare sia il chipping rate che l'occupazione di banda. In generale, lo spettro usato con la tecnica DS è superiore a quello per FH. I canali per il livello fisico DS sono riassunti in tabella. In tutti i casi ogni canale ha una larghezza di 5 MHz eccetto per il 14-esimo canale del Giappone che ha una larghezza di 12 MHz. Il canale 10 è disponibile sia in Europa che in America.

Utilizzando la tecnica DS l'energia di un segnale è spalmata su una banda di 22MHz. Poiché i canali hanno una larghezza di 5MHz, non tutti sono ortogonali tra loro. Per evitare interferenze, le frequenze centrali devono distare almeno 30 MHz tra loro. Quindi canali ortogonali sono 1, 6, 11. Per trasmettere il segnale possono essere utilizzate due modulazioni: DBPSK che consente 1 Mb/s e DQPSK che arriva a 2 Mb/s. Queste due tecniche trasportano l'informazione nella differenza di fase tra due o più segnali. Il tempo è diviso in intervalli detti periodi di simbolo. Nel caso del DBPSK, vengono utilizzate due onde: quando occorre trasmettere uno zero non viene effettuato nessun cambio alla fase del segnale, mentre se occorre trasmette un 1 si sfasa il segnale di mezzo ciclo. La DQPSK invece di sfasare di mezzo ciclo sfasa di un ¼ di ciclo, in modo da poter distinguere i segnali corrispondenti alle coppie di bit 00, 01, 10, 11.

Una estensione di DS è HR/DS (High Rate), che consente di ottenere tassi trasmissivi superiori sostituendo la sequenza di Barker con la codifica Complementary Code Keying (CCK), e mantenendo la compatibilità con DS base. Il chipphing rate rimane 11MHz. La codifica CCK, anziché dividere la sequenza di chipping in Barker word da 11 bit, lo divide in simboli da 8 bit. In questo modo, poiché il chipping rate rimane invariato, anziché trasmettere 1 milione di Barker word al secondo trasmette 1.375 milioni di simboli al secondo. Inoltre, mentre una Barker word codifica un unico bit, la trasformazione matematica su cui si basa CCK consente di codificare 4 o 8 bit, in modo da ottenere un throughput rispettivamente di 5,5 e 11 Mbps.

Lo standard 802.11a introduce un nuovo livello fisico basato su OFDM che lavora attorno ai 5GHz. Questa banda è meno affollata poiché lavorando a frequenze più alte si va incontro ad una maggiore attenuazione del segnale in trasmissione. Il principio base di OFDM è quello di dividere un canale a larga banda in più

Page 8: 12-appunti 1_3.pdf

sottocanali ortogonali, ognuno utile per trasmettere dati. In particolare, 802.11a prevede di utilizzare canali di 20 MHz suddivisi in 52 sottocanali, di cui 4 sono usati per operazioni di controllo e i restanti per trasmettere dati. La frequenza centrale di ciascun canale è determinata dalla formula in figura. In Europa la frequenza centrale f0 = 5 MHz.Per trasmettere i dati sui canali possono essere utilizzate diverse modulazioni e diverse tecniche di controllo dell'errore FEC (forward error correction). Indipendentemente dalla tecnica di modulazione e da quella di controllo, il livello fisico usa un symbol rate di 250.000 simboli/sec e ogni simbolo usa tutti i 48 sottocanali. Le varie combinazioni sono riassunte in tabella. Il primo parametro è il coding rate, il quale esprime il rapporto tra il numero di bit di dati sul totale di bit codificati. A seconda della tecnica FEC utilizzata è possibile aggiungere più o meno bit di controllo. 802.11a specifica tre coding rate: 1/2, 2/3 , 3/4. Il numero di bit codifica per sottocanale dipende dalla tecnica di modulazione.

Poiché su ogni sottocanale riusciamo a trasmettere un certo numero di bit, ogni simbolo sarà costituito da un numero di bit pari al prodotto del numero di bit trasmessi su ogni sottocanale per il numero di sottocanali. Moltiplicando tale quantità per il coding rate si ottiene il numero di bit di dati per simbolo. Infine, moltiplicando questo valore per 250.000 si ottiene il data rate raggiungibile. Chi implementa questo tipo di soluzione deve garantire il supporto ai data rate 6, 12, 24 (gli altri sono opzionali).

Nel 2003 è stato introdotto ERP (Extended Rate PHY) 802.11g, che estende DS e HR/DS introducendo OFDM nella banda intorno ai 2,4 GHz. Poiché deve mantenere la compatibilità con DS e HR/DS, i rate obbligatori diventano 1, 2, 5.5, 6, 11, 12, 24 Mb/s. Per garantire la compatibilità con 802.11b, le stazioni 802.11g devono essere in grado di lavorare con quelle 802.11b adattandosi ai loro data rate.

Riepilogando abbiamo la situazione in tabella. Quanto più è alto il tasso trasmissivo, tanto più dovrà essere elevato il rapporto segnale/rumore. Poiché all'aumentare della distanza diminuisce l'SNR, occorre trovare il giusto compromesso tra capacità trasmissiva e SNR. Quindi se il ricevitore è vicino posso trasmettere a tassi più elevati rispetto al caso in cui il ricevitore è più lontano.

Da alcuni esperimenti si è

Page 9: 12-appunti 1_3.pdf

notato che, all'aumentare del tasso trasmissivo diminuisce la distanza minima a cui può trovarsi un ricevitore per decodificare correttamente la frame. Le attenuazioni inferiori del segnale nella banda intorno ai 2.4 GHz consentono di avere ricevitori più lontani utilizzando 802.11g rispetto a 802.11a.

Per trasmettere una frame, fissato lo standard di riferimento, occorre scegliere il data rate più appropriato. Poiché il ricevitore deve essere in grado di decodificare correttamente la frame occorre che conosca il tasso trasmissivo utilizzato. Tale informazione, insieme ad altre informazioni di controllo (CRC,ecc.), viene aggiunta dal sottolivello PLCP in un header che precede la MPDU: il preambolo PLCP viene trasmesso ad uno dei tassi trasmissione base in modo che sia correttamente decodificabile da tutte le stazioni. Lo standard non specifica l'algoritmo con cui determinare il tasso trasmissivo da utilizzare. Di fatto si utilizza l'algoritmo Auto-Rate Fallback. L'idea di base è che il fallimento di una trasmissione può essere causato da un rate trasmissivo troppo elevato. Quindi si parte da un tasso trasmissivo elevato che viene decrementato ad ogni insuccesso, fino a che non si ottiene una trasmissione corretta. Il rate trovato sarà utilizzato per l'invio dei successivi pacchetti. In linea generale,

dopo α trasmissioni consecutive con successo si incrementa il rate, se possibile; dopo un incremento c'è un periodo di prova di β pacchetti; se non tutti sono trasmessi con successo si torna al rate precedente; dopo γ trasmissioni consecutive fallite si decrementa il rate.

Sottolivello MACIl sottolivello MAC (Media Access Control) si occupa dell'accesso al mezzo trasmissivo di una

stazione all'interno di una rete e stabilisce la struttura di una frame scambiata tra due stazioni. Rispetto alle reti wired, le reti wireless introducono diverse problematiche legate alla qualità del collegamento radio, le interferenze dovute all'utilizzo di bande non licensiate, collisioni causate da nodi nascosti Quest'ultime sono difficilmente rilevabili a causa del fatto che i dispositivi wireless sono half-duplex – non trasmettono e ricevono allo stesso tempo – e quindi si ricorre all'utilizzo di frame RTS/CTS. Poiché inviare frame RTS/CTS consuma banda utile, questa soluzione è adottata solo in ambienti ad alta capacità e per frame di grosse dimensioni. Le frame RTS/CTS risolvono il problema dei nodi nascosti perchè chiunque le riceva, sia nelle vicinanze del trasmettitore che del ricevitore, viene “zittito”.

Lo standard 802.11 definisce tre metodi di accesso al mezzo wireless:DCF (Distributed Coordination Function) per l'accesso al mezzo con contesa e deve essere implementato da tutti i tipi di stazioni.PCF (Point Coordination Function) per l'accesso al mezzo privo di contesa, costruito al di sopra di DCF e la cui implementazione è opzionale. Esiste un'entità, tipicamente l'AP, che indica chi può

trasmettere. HCF (Hybrid Coordination Function) una via di mezzo tra le due soluzioni precedenti, presente in 802.11e e anch'esso costruito sulla base dei servizi DCF.

L'ascolto della portante è una tecnica utilizzata per determinare se il mezzo è disponibile. CSMA (Carrier Sense Multiple Access - accesso multiplo tramite rilevamento della portante), è un protocollo usato nelle reti con mezzo condiviso con contesa per verificare la disponibilità del mezzo ed evitare la trasmissione contemporanea di due host. Due host prima di iniziare la trasmissione di dati, devono verificare che sul mezzo non vi sia la presenza della portante (Carrier Sense) e che quindi non vi siano già trasmissioni in corso. Nel caso in cui il canale sia libero la trasmissione puo' iniziare altrimenti si aspetterà un tempo arbitrario. CSMA non è comunque in grado di evitare conflitti. Può accadere infatti che due host trovino la rete libera proprio nello stesso tempo e che quindi inizino entrambi la trasmissione, generando una collisione. Per questo motivo, al protocollo CSMA, è stato affiancato CD

Page 10: 12-appunti 1_3.pdf

(Collision Detection). In una rete quindi che utilizza questo protocollo (CSMA/CD, IEEE 802.3), ogni host che deve mandare dei dati controlla preventivamente che non ci siano trasferimenti in corso. Dopo di che prova a trasmettere. Se rileva delle collisioni interrompe subito la trasmissione, manda un segnale di disturbo a tutti in modo da segnalare la presenza di una avvenuta collisione e riprova dopo un tempo arbitrario. In caso contrario la trasmissione continua. Nelle reti wireless non è possibile trasmettere e ricevere nello stesso tempo, la ricezione corretta di una frame viene notificata dal ricevitore al trasmettitore mediante l'invio di un acknowledgement (ACK). L'introduzione dell'invio dell'ACK introduce un ritardo rispetto alla reti Ethernet poiché il trasmettitore comprende che si è verificata una collisione quando scade il timer impostato per ricevere l'ACK. Per consentire al ricevente di trasmettere in tempo l'ACK, sono stati definiti due tempi:

DIFS (Distributed Inter Frame Space), una stazione può trasmettere una frame solo se il canale resta libero per un tempo DIFS SIFS (Short Inter Frame Space), una stazione può trasmettere l'ACK se il canale è libero per un tempo SIFS

Poiché il tempo SIFS è più breve rispetto al DIFS, la stazione che deve trasmettere l'ACK è privilegiata rispetto a quelle che devono inviare una nuova frame. Un problema che può sorgere è il seguente. Durante la trasmissione in corso possono esistere più stazioni che intendono trasmettere una frame. Quando il ricevitore ha terminato di inviare l'ACK, queste stazioni attenderanno un tempo DIFS e cominceranno a inviare contemporaneamente, generando una collisione. Una soluzione è il Random Backoff. Viene definito un periodo detto finestra di contesa diviso in slot. La lunghezza dello slot dipende dal livello fisico. Quando più stazioni sono in attesa di trasmettere, anziché aspettare solo un tempo DIFS, aggiungono a questo un numero aleatorio di slot temporali. Ovviamente, se viene scelto lo stesso numero di slot da più stazioni avvengono collisioni. Un ulteriore miglioramento è il Backoff Freezing. Poiché sarà una sola stazione a vincere la contesa, le stazioni perdenti nelle successive contese anziché scegliere nuovamente il numero di slot da aggiungere al tempo DIFS, aspetteranno un tempo DIFS più il numero di slot rimanenti della precedente contesa, in modo avvantaggiare le stazioni che aspettano da più tempo. Questo meccanismo prende il nome di CSMA/CA (Collision Avoidance).

Il valore della finestra di contesa è determinato dal prodotto Random() x SlotTime, dove Random() è un intero pseudo-casuale tra 0 e CW e SlotTime è la durata di uno slot. Il valore CW è scelto tra una sequenza crescente di potenze della forma 2i-1 comprese tra CWmin e CWmax. Il primo valore di CW è CWmin . Quindi, se la trasmissione fallisce CW assume il prossimo valore nella sequenza e non decresce fino a che non viene resettato a CWmin ,cosa che avviene in seguito ad un tentativo riuscito di trasmissione.

Oltre al Carrier Sense fisico le stazioni wireless adottano anche un Carrier Sense virtuale: le stazioni non ascoltano effettivamente il canale ma sanno che per un certo intervallo di tempo il canale stesso sarà occupato, anche se non riescono ad ascoltare la stazione che lo sta utilizzando. Ciò avviene mediante l'utilizzo del NAV (Network Allocation Vector). Ogni frame inviata da una qualsiasi stazione contiene un campo Duration/ID di 16 bit. Quando il bit più significativo è zero, il suo contenuto è

Page 11: 12-appunti 1_3.pdf

interpretato come valore NAV, ossia il tempo necessario a quella stazione per completare la trasmissione del messaggio, compreso il tempo SIFS e il tempo per inviare l'ACK. Finchè il NAV non scade la stazione rimarrà tranquilla senza ulteriormente ascoltare il canale. L'utilizzo del NAV risolve il problema dell'ACK nascosto. Supponiamo di avere la situazione in figura. La stazione TX invia una frame a RX. Questa dopo un tempo SIFS invia l'ACK a TX. Poiché STA e RX non riescono ad ascoltarsi la stazione STA può trasmettere frame verso TX mentre RX sta inviando l'ACK. Utilizzando il NAV invece, quando TX invia la frame a RX, questa sarà ascoltata anche da STA, la quale setterà il proprio NAV, in maniera tale da cominciare a trasmettere la propria frame successivamente alla trasmissione dell'ACK da parte di RX.

Un'altra situazione può essere la seguente. La stazione STA riesce a rilevare le trasmissioni di TX ma non riesce a decodificarle poiché il rapporto segnale/rumore è troppo basso. In questo caso la lettura del campo Duration/ID è impossibile. In questa situazione la stazione STA, poiché riesce comunque a capire che lo spazio è occupato, aspetta un tempo EIFS (Extended Inter Frame Space) tale da consentire alla stazione con cui sta dialogando TX di trasmettere l'ACK.

Un altro problema è quello del terminale nascosto. Rispetto al caso precedente la stazione STA non riesce ad ascoltare la stazione trasmittente anziché quella ricevente. La soluzione a questo problema è lo scambio di frame RTS/CTS, rispettivamente Request To Send e Clear To Send. La trasmissione di queste due frame consentono sia alle stazioni nelle vicinanze del trasmettitore che a quelle nelle vicinanze del ricevitore di capire che si sta riservando il canale per una trasmissione. Queste stazioni possono quindi impostare il timer NAV con i valori del campo Duration presenti nelle frame RTS/CTS.

In particolare, nella frame RTS il valore sarà DATA+CTS+ACK+3SIFS, mentre in quella CTS sarà lo stesso valore presente in RTS meno CTS e un SIFS.

I vantaggi nell'utilizzo delle frame RTS/CTS sono la rilevazione quasi immediata delle collisioni a causa delle loro dimensioni limitate e la possibilità di riservare il canale anche nel caso in cui più BSS sono sovrapposte. Gli svantaggi principali sono legati all'overhead aggiunto nella trasmissione di frame di controllo e al fatto che anche le stazioni che non utilizzano RTS/CTS devono rispondere con una CTS se ricevono una RTS. Inoltre questo meccanismo non può essere utilizzato per l'invio di frame multicast o broadcast. Un meccanismo che può intervenire nello scambio di frame RTS/CTS è il NAV resetting: una stazione che ha ascoltato una frame RTS e ha settato il NAV di conseguenza, può resettare il NAV se il livello PHY non segnala l'inizio della ricezione di una frame entro un tempo pari a 2SIFS + CTS + 2SlotTime, ossia se non vede né CTS ne l'inizio della frame dati. Una tale situazione si presenta se si è verificata

Page 12: 12-appunti 1_3.pdf

una collisione sulla frame RTS presso il ricevente (a causa di un nodo nascosto), oppure il NAV del ricevente indicava il mezzo

occupato e quindi la stazione ricevente non era in ascolto. Un ultimo problema è quello del terminale esposto. Se la stazione TX2 ascolta l'RTS inviato da

TX1 a RX1 ma non il corrispondente CTS, TX2 non può resettare il proprio NAV e trasmettere una frame a RX2 altrimenti impedirebbe a TX1 di ricevere l'ACK da RX1. Quindi TX2 non può trasmettere a RX2 anche se RX2 non è occupata. Questo problema non ha soluzione nello standard.

Come vengono impostati i valori IFS? Il SIFS è dipendente dal livello fisico. Il DIFS = SIFS + 2SlotTime mentre l'EIFS = SIFS + DIFS + ACKTxTime, dove ACKTxTime è il tempo necessario per trasmettere l'ACK al più basso rate disponibile per il livello fisico utilizzato.

Lo standard prevede la possibilità di frammentare una MSDU all'interno di molteplici MPDU. Questo avviene quando la dimensione della MSDU eccede la dimensione massima prevista dal livello fisico oppure la soglia di frammentazione configurata dall'amministratore di rete. I frammenti hanno tutti la stessa dimensione (tranne l'ultimo) e lo stesso frame sequence number ma hanno una numerazione crescente del numero di frammento. Solitamente le soglie di frammentazione e l'utilizzo delle frame RTS/CTS hanno lo stesso valore. I frammenti e gli ACK sono separati da un tempo SIFS. Ogni frame, a partire dalle RTS/CTS, imposta il NAV in modo da prenotare il canale fino all'ACK del

frammento successivo. Se l'invio di un frammento fallisce il mittente rilascia il canale ed inizia la procedura di backoff, riprendendo dall'ultimo frammento non riscontrato. Se

l'ACK viene inviato ma non ricevuto dalla stazione trasmittente, data l'impostazione del NAV, la stazione trasmittente sarà avvantaggiata sulle altre stazioni poiché il suo timer DIFS + Contention window partirà prima delle altre, in quanto le stazioni che ascoltano solo la ricevente imposteranno comunque il NAV. Se invece l'ACK non viene proprio inviato allora la stazione trasmittente non avrà il vantaggio di riprendere il controllo del canale, perchè le stazioni che ascoltano solo la ricevente non imposteranno il NAV.

Il meccanismo del NAV viene utilizzato per ridurre le probabilità di collisione. Poiché all'interno di una BSS è possibile che siano presenti stazioni conformi a versioni diverse dello standard, il campo Duration/ID deve essere decodificabile da tutte le stazioni appartenenti alla BSS. Per quanto riguarda le frame di controllo come RTS/CTS/ACK, essendo trasmesse ad uno dei basic rate, il campo Duration/ID sarà decodificato correttamente da tutte le stazioni. Invece, le frame dati possono essere trasmesse a rate non decodificabili da tutte le stazioni, e quindi torna ad essere possibile il problema dell'ACK nascosto. Poiché le stazioni conformi a versioni precedenti dello standard, come 802.11b, non devono interferire con quelle di versioni successive, come 802.11g, le prime devono essere consapevoli delle trasmissioni effettuate dalle seconde. Esistono dunque due meccanismi di protezione: RTS/CTS e CTS-to-self. Nelle frame beacon, trasmesse a rate base, l'AP informa le stazioni ERP di utilizzare meccanismi di protezione. In generale, saranno utilizzati rate differenti per trasmettere bit di controllo e bit dati. Il meccanismo CTS-to-self consiste nell'invio, da parte della stazione trasmittente, di una frame CTS indirizzata a se stessa, con un campo Duration/ID tale da coprire l'invio della frame dati e del corrispondente ACK. In questo modo tutte le stazioni che ascoltano la trasmittente impostano il NAV. È

Page 13: 12-appunti 1_3.pdf

un meccanismo che implica meno overhead dello scambio RTS/CTS ma è meno robusto contro nodi nascosti e collisioni. Se si verifica una collisione usando CTS-to-self una stazione dovrebbe passare ad usare RTS/CTS.

Analizziamo il formato della generica frame MAC 802.11. Il campo Frame Control sono 16 bit organizzati in questo modo:

Protocol Version: 2 bit che indicano la versione del protocollo MAC, attualmente 0;

Type and Subtype: sono 2 più 4 bit identificano il tipo di frame. Il tipo è riferito a frame di gestione (00), contollo (01), dati (10); invece i sottotipi assumono numerosi valori.

More Fragment: è alto se ci sono altri frammenti della stessa frame. Retry: è alto se è una ritrasmissione di una frame. Power Management: è alto se la stazione trasmittente vuole informare che al termine della

trasmissione entrerà in Power safe mode; solo l'AP può svegliare la stazione. More Data: è settato alto dall'AP per indicare alla stazione che presso di esso sono state

bufferizzate altre frame destinate a quella stazione; quindi informa la stazione di non entrare in power safe perchè deve ricevere altre frame. Protected Frame: è alto se il Frame Body è crittografato. Order: 1 se la classe di servizio è StrictlyOrdered.

Il campo Duration/ID è costituito da 16 bit di cui il più significativo è quello più a destra, e ha tre usi diversi:

quando il bit più significativo è basso il campo è utilizzato per settare il NAV: il valore rappresenta il numero di microsecondi in cui il mezzo sarà occupato. durante i periodi privi di contesa i bit 14-15 assumono il valore 01. I restanti bit sono bassi

in modo che il valore finale sia 32768 che è interpretato come NAV. In questo modo anche le stazioni che non ricevono la frame beacon che annuncia un periodo privo di contesa di settare appropriatamente il proprio NAV in modo da non creare interferenze. se i bit 14-15 sono settati entrambi a 1 si parla di frame PS-Poll. Poiché le stazioni mobili

possono entrare in Power safe mode, quando si risvegliano, per assicurarsi di non aver perso alcuna frame, inviano una frame PS-Poll per ricevere dall'AP qualsiasi frame sia stata bufferizzata per essa. I restanti 14 bit (da 0 a 13) contengono l'AID – association ID – che indica a quale BSS appartiene la stazione.

Una frame MAC contiene 4 campi indirizzo, ognuno lungo 6 byte (48 bit). Il primo bit dell'indirizzo trasmesso sul mezzo rappresenta l'Individual/Group bit, che distingue un indirizzo

Page 14: 12-appunti 1_3.pdf

individuale (0) da un indirizzo di gruppo (1). Il bit successivo a quello Individual/Gruop è il bit Universally/Locally che indica se l'indirizzo MAC è stato assegnato universalmente(0) o localmente(1). A seconda della frame questi campi possono indicare:

Destination Address (DA): stazione finale a cui è indirizzata la frame. Source Address (SA): stazione iniziale che trasmette la frame. Receiver Address (RA): stazione che riceve fisicamente la frame. Transmitter Address (TA): stazione che trasmette fisicamente la frame. Basic Service Set ID (BSSID): l'ID che identifica la BSS. In una BSS infrastruttura è

l'indirizzo MAC dell'AP, mentre in una IBSS vengono generati 46 bit in maniera casuale e il bit Individual/Group è impostato a 0 mentre l'Universal/Local è impostato a 1.

Il campo Sequence Control è costituito da 16 bit divisi in due parti: la prima da 4 bit detta Fragment Number e la seconda da 12 bit detta Sequence Number. Ogni MSDU, ossia ogni frame passata dai livelli superiori al livello MAC possiede un proprio numero di sequenza. Il Sequence Number opera come un contatore modulo 4096, partendo da 0. Se il pacchetto non necessita di frammentazione il Fragment Number è 0 altrimenti viene incrementato per ogni pacchetto: tutti i pacchetti frammentati avranno lo stesso Sequence Number. Al massimo è possibile frammentare in 16 unità. Nelle ritrasmissioni il Sequence Control non subisce incrementi.

In coda alla frame è presente il Frame Check Sequence (FCS) che consente alle stazioni di verificare l'integrità delle frame ricevute. L'FCS è calcolato sull'header e sul body MAC e inserito in coda alla frame. Il ricevitore calcola il proprio FCS sulla frame ricevuta e la compara con la FCS ricevuta. Se le due combaciano si ha un'alta probabilità che la frame non sia stata danneggiata durante la trasmissione. Mentre il campo FCS controlla se ci sono state delle alterazioni della frame dovute al canale, l'ICV WEP è un controllo contro manipolazioni di terzi.

Frame notevoli sono quelle di controllo, riassunte in figura.

Page 15: 12-appunti 1_3.pdf

Un'altra tecnica per la gestione dell'accesso al mezzo è la PCF, utilizzata nei casi in cui è richiesto un accesso al mezzo privo di contesa. PCF sfrutta i servizi forniti da DCF e, al contrario di quest'ultima, la sua implementazione non è obbligatoria. Questa tecnica gestisce finestre temporali che si ripetono periodicamente, costituite da periodi senza contesa a periodi con contesa, questi ultimi

gestiti con DCF. Nei periodi privi di contesa esiste un PC (Point Coordinator), solitamente l'AP, che concede il diritto ad una stazione di trasmettere una MPDU. Poiché non c'è bisogno di riservare il mezzo, non occorrono meccanismi di backoff e RTS/CTS. All'inizio del periodo privo di contesa CFP (Contention Free Period) l'AP trasmette una frame beacon che contiene la durata massima del CFP, CFPMaxDuration. Tutte le stazioni che ricevono la frame beacon settano il NAV alla durata CFPMaxDuration. In questo modo le stazioni DCF non possono accedere al mezzo. Un ulteriore accorgimento è quello di aspettare esclusivamente un tempo SIFS per le trasmissioni prive di contesa. Quindi l'AP crea la polling list, la lista di tutte le stazioni ad esso associate e che possono essere sollecitate per trasmettere frame durante il CFP. Una stazione è inserita in questa lista se nella frame di richiesta di associazione specifica di voler essere inserita nella polling list. Durante il CFP l'AP chiede alle singole stazioni se hanno frame da trasmettere, inviando una frame particolare che prende il nome di CF-Poll. Se la stazione ha qualcosa da trasmettere aspetta un tempo SIFS e trasmette altrimenti l'AP, dopo aver aspettato un tempo PIFS, invia la CF-Poll ad un'altra stazione, che può essere unita ad ACK, dati o ad entrambi. Trascorso un tempo CFPMaxDuration o in assenza di altre frame da trasmettere, il PC invia una frame CF-End per segnalare la fine del CFP. A questo punto le stazioni resettano il proprio NAV.

SicurezzaL'utilizzo del mezzo wireless consente a chiunque si trovi in un certo raggio di ascoltare i dati in

transito in quell'area. La protezione dei dati è quindi una priorità. Fondamentalmente devono essere garantite la confidentialità dei dati, ossia soggetti non autorizzati non possono avere accesso ai dati, e l'integrità dei dati, ossia i dati trasmessi non devono poter essere modificati durante il cammino verso il destinatario. La prima risposta a queste due esigenze presentata nello standard fu WEP (Wired Equivalent Privacy), chiamata così perchè si proponeva di fornire un livello di privacy equivalente a quello delle reti cablate. WEP utilizza l'algoritmo RC4 per garantire la confidentialità e il CRC-32 per garantire la integrità dei dati. L'algoritmo RC4 è uno stream cipher ossia un cifratore di stream. In generale, a partire da una chiave lo stream cipher genera una Keystream della stessa lunghezza dei dati da trasmettere. La Keystream viene combinata con il testo in chiaro mediante una operazione di XOR per ottenere la sequenza cifrata. Il ricevitore, conoscendo la chiave di partenza, determina anch'esso la keystream e, applicando nuovamente la XOR tra la propria keystream e la sequenza cifrata riottiene la

Page 16: 12-appunti 1_3.pdf

sequenza originale. In questo caso si parla di chiava simmetrica poiché la stessa chiave è utilizzata sia nella fase di cifratura che in quella di decifratura. La sicurezza di questa procedura dipende esclusivamente dal grado di casualità per la generazione del keystream a partire dalla chiave. L'unico schema di crittografia che è stato dimostrato essere impossibile da violare se usato correttamente è il one-time pad (blocco monouso), che genera ogni volta una keystream totalmente casuale. Difficoltà di realizzazione pratica però hanno portato ad esplorare altre via. In particolare, si è scelto di usare un PRNG, generatore di numeri pseudocasuali, che espande la key nella keystream.

La procedura di crittografia WEP richiede tre elementi: il payload da proteggere, la chiave segreta (che può essere espressa sia come stringa di bit che come un numero di chiave che indicizza una tra le possibili 4 chiavi che è possibile memorizzare), un IV (vettore d'inizializzazione).

Il primo passo che si compie è eseguire un algoritmo CRC sulla frame da inviare, che genera un ICV (Integrity Check Value) da 32 bit, posto successivamente in coda al payload. Nello stesso tempo, la chiave WEP viene combinata con un IV (Initialization Vector) costituito da 3 byte, per creare il seme WEP, ossia la chiave RC4.. Questo IV è utilizzato per aumentare la casualità nella generazione del keystream. Lo standard non specifica in che modo creare l'IV ma impone che l'IV cambi per ogni MPDU e che lo stesso IV venga comunicato al ricevente. La chiave RC4 viene quindi utilizzata per crittografare il payload e l'ICV,

che saranno inseriti in coda all'Header, IV e Key number trasmessi invece in chiaro. L'header IV è costituito da 4 byte, dove i primi 3 sono effettivamente l'IV mentre l'ultimo è costituito da 6 bit di padding posti a 0 e due bit che specificano il Key ID. Esistono due tipi di chiavi WEP: Mapped Key e Default Key. Una MK protegge il traffico tra due particolari stazioni e il Key ID associato è 0. Le DK invece sono utilizzate quando non esistono particolari relazioni tra due stazioni e quindi ogni stazione possiede le DK della BSS, che possono essere al massimo 4, con Key ID da 0 a 3.

La procedura di de-incapsulamento è l'inversa della procedura di incapsulamento.Il sistema WEP presenta numerosi problemi derivanti da diversi aspetti. Uno tipico può essere una

cattiva implementazione. Ci fu un caso di un'azienda che produceva AP che gestivano la chiave WEP tramite il protocollo SNMP: un attaccante poteva ottenere la chiave semplicemente chiedendola all'AP. Esistono comunque problemi che vanno oltre gli errori di implementazione, che sono difficilmente correggibili. Il primo è legato alla gestione manuale della chiave WEP. Infatti, poiché la chiave viene passata di persona in persona, se non viene cambiata di frequente diviene presto di dominio pubblico. La dimensione inizialmente fissata per la chiave è di soli 40 bit; successivamente si è pensato di aumentarla a 104, aumento tuttavia insufficiente. Il riuso della chiave è il problema principale. Inoltre possiamo identificare due problemi principali. Il primo è legato al fatto che l'alterazione da parte di un

Page 17: 12-appunti 1_3.pdf

attaccante di un bit del testo cifrato comporta l'alterazione del bit nel testo in chiaro. Il secondo invece è che è possibile intercettare due frame cifrate con la stessa chiave. La XOR tra queste due frame è equivalente alla XOR tra le due frame in chiaro. Operando un attacco statistico è possibile risalire al testo in chiaro e quindi alla chiave WEP. Per risolvere questi due problemi WEP inserisce un ICV per evitare che la frame possa essere modificata durante la trasmissione senza accorgersene e un IV per produrre una chiave diversa per ogni frame. Queste due soluzioni si dimostrano inefficaci. L'ICV è il risultato di un algoritmo CRC-32, che è lineare. Ciò significa che cambiando un bit nel messaggio cifrato è predicibile la modifica da applicare sull'ICV in modo da rendere valido il messaggio. Inoltre l'IV non garantisce chiavi distinte per ogni frame. Infatti, dato lo spazio limitato dell'IV, in un tempo di 5 ore circa è possibile ottenere due frame cifrate con la stessa chiave e quindi operare un attacco statistico per risalire prima al testo in chiaro e poi alla chiave.

Altri problemi solo legati al fatto che l'header delle frame è trasmesso in chiaro, quindi è possibile modificarne i campi, ad esempio gli Address. Infine non esiste protezione contro i replay attack: un attaccante può ascoltare una frame cifrata e ritrasmetterla più volte; l'attaccante potrà ascoltare tutte le risposte dell'AP con IV diversi. Più risposte riceverà, più facilmente riuscirà a decifrare la chiave WEP. Per i replay attack le frame RTS/CTS non vanno bene perchè non contengono dati cifrati.

L'autenticazione è un'altra garanzia di sicurezza che un sistema deve considerare. Essa consiste nel verificare l'identità della stazione. In una ESS l'autenticazione è una fase obbligatoria prima dell'associazione, mentre in una IBSS l'autenticazione è opzionale. Esistono due tipi di autenticazione: Open System e Shared Key. Le autenticazioni Open System assomigliano più a delle notifiche piuttosto che ad autenticazioni. Infatti tutte le richieste vengono sempre accettate e bastano 2 messaggi, uno di richiesta e l'altro di risposta. In questi casi l'AP possiede una lista di indirizzi MAC legali. Le autenticazioni Shared Key invece autentica solo le stazioni che conoscono una chiave WEP condivisa. Questo sistema viene usato solo insieme alla cifrature WEP ed è stato comunque deprecato in 802.11-2007. Consiste nello scambio di 4 frame:

(1) la stazione richiede di autenticarsi tramite Shared Key(2) l'AP invia un testo di prova di 128 byte generato usando il generatore della keystream(3) la stazione risponde con una frame crittografata usando la chiave WEP e contentente il

testo di prova(4) l'AP conferma il successo dell'autenticazione se l'ICV ricevuto è corretto e il testo di prova

ricevuto coincide con quello inviato.Nel 2004 lo standard 802.11i ha introdotto due nuovi algoritmi per la confidenzialità e l'integrità

dei dati: CCMP e TKIP. Il primo è di obbligatoria implementazione mentre il secondo è opzionale, meno robusto di CCMP e ideato per essere installato su hardware che supporta solo WEP, mediante un upgrade del firmware. TKIP non è completamente sicuro ma è il risultato migliore ottenibile per mantenere la compatibilità con le stazioni che supportano solo WEP.

TKIP presenta delle differenze rispetto a WEP. Innanzitutto presenta una procedura di Key Mixing per generare una chiave diversa per ogni frame da crittografare. Questo avviene utilizzando sia un IV a dimensione raddoppiata (48 bit) e utilizzando anche l'indirizzo MAC della stazione trasmittente. L'IV, è utilizzato anche come sequence counter, per numerare le frame contro i replay attack; per questo viene detto TSC (TKIP sequence counter). Ogni stazione mantiene l'ultimo valore TSC ricevuto da ogni altra stazione, in modo da riconoscere le frame intercettate da un attaccante e re-inviate successivamente. Quando una stazione ha la necessità di ritrasmettere una frame il TSC viene comunque aumentato mentre il sequence number resta lo stesso. Rimpiazza l'ICV con il MIC (message integrity check) calcolato tramite l'algoritmo Michael, che protegge non solo il payload della MSDU ma anche il DA, l'SA e il campo Priority. Il MIC (64 bit – MIC KEY & MIC) è inserito in coda alla MSDU prima della eventuale frammentazione della MPDU.

Page 18: 12-appunti 1_3.pdf

Analizziamo in dettaglio l'algoritmo di incapsulamento TKIP. Questo algoritmo è seguito da quello WEP, quindi il suo risultato deve essere costituito da 3 elementi: l'IV, la chiave WEP e la frame da

crittografare. Gli elementi necessari sono la frame in chiaro, una Temporal Key (TK) e una MIC Key settate durante la fase di autenticazione, l'indirizzo MAC e il TSC. Come WEP anche TKIP svolge le fasi di integrità e confidenzialità nello stesso processo. Il calcolo del WEP IV e della chiave WEP avviene in due fasi:

(1) l'indirizzo MAC della stazione trasmittente, i primi 32 bit del TSC e la TK a 128 bit vengono combinati in modo da ottenere un valore a 80 bit detto TTAK.(2) Il TTAK (TKIP-mixed Transmit And Key) con gli ultimi 16 bit del TSC e la TK vengono

utilizzati per generare la chiave RC4. I primi 24 bit di tale chiave sono il WEP IV generato in questo modo: il primo e l'ultimo byte sono i rimanenti 16 bit del TSC mentre il byte centrale è costituito da una sequenza di bit fissata tale da evitare la generazione di chiavi deboli.

Quindi la chiave WEP non è più unica per tutte le stazioni poiché dipende non sola dalla TK ma anche da TA e TSC.Nell'altra parte del processo la MIC Key e la MSDU in chiaro insieme al DA, SA, il campo Priority(1 byte posto a zero e riservato per usi futuri) e tre byte riservati per usi futuri sono posti in ingresso al blocco Michael che restituisce la MSDU in chiaro più il MIC. MSDU+ MIC rappresenta la frame che

sarà eventualmente frammentata in più MPDU e incapsulata con WEP. Ovviamente tutti gli MPDU di una MSDU devono essere cifrati usando la stessa TK. Il MIC viene quindi anch'esso protetto dall'ICV WEP:

senza ICV un controllo MIC sull'MSDU fallito potrebbe essere attribuito sia ad errori sul canale che ad attacchi;

con ICV se il controllo ICV ha successo possiamo escludere errori del canale e quindi se invece il controllo MIC su MSDU fallisce, con buona probabilità l'errore è dovuto ad un attacco. In particolare, se durante 60 secondi si verificano due MIC falliti, la stazione scarta tutte le frame ricevute per 60 secondi.

Quindi l'incapsulamento TKIP inserisce in chiaro dopo l'header MAC un campo IV/KeyID e un

Extended IV. I primi 3 byte dell'IV/KeyID sono i primi 3 byte restituiti dal key mixing mentre l'ultimo byte è strutturato in questo modo: i primi 4 bit sono riservati per usi futuri, il bit ExtIV è alto per

Page 19: 12-appunti 1_3.pdf

indicare la presenza del campo ExtendedIV e gli ultimi 2 bit sono il valore della KeyID. Il campo ExtendedIV invece contiene gli altri 4 byte del TSC, dove TSC5 è il byte più significativo.

Il de-incapsulamento TKIP si articola in diverse fasi. Il Primo passo è quello di verificare il FCS per verificare che la frame non sia corrotta. Il passo

successivo è quello di verificare il sequence number per rilevare replay attacchi. A questo punto la stazione ricevente, a partire dal TA, TK e TSC ricalcola la chiave RC4 e quindi viene effettuato il de-incapsulamento WEP, controllando l'ICV. Se la frame è stata frammentata si attende che tutte le MPDU necessarie siano arrivate per poi applicare Michael e calcolare il MIC sulla frame ricevuta. Se questo corrisponde con quello inviato la frame

viene passata ai livelli superiori altrimenti scartata. In conclusione occorre che ogni coppia di stazioni possieda chiavi TK e MIC diverse per comunicare.

CCMP è un protocollo che garantisce confidenzialità e integrità dei dati e di parte dell'header, autenticazione e protezione dai replay attack utilizzando un packet number di 48 bit. Si basa sull'algoritmo di crittografia AES(Advanced Encryption Standard)che, a differenza di RC4, è un block cipher e lo standard ne definisce l'uso a 128 bit. Gli elementi necessari per costruire la frame crittografata sono ovviamente la frame in chiaro, una TK per ogni sessione, un identificativo di chiave KeyID (anche se di solito è usata un'unica chiave), un Packet Number (PN) usato per identificare univocamente la frame da trasmettere: il PN è incrementato all'invio di ogni frame ma non nelle ritrasmissioni. A differenza di TKIP, CCMP opera sulle singole MPDU. Il primo passo che viene fatto è quello di incrementare il PN, in modo tale che ogni MPDU abbia un PN diverso, ottenendo che un PN

non si ripeta mai con la stessa TK. A questo punto viene costruito l'AAD (Additional Authentication Data) costruito con i campi dell'intestazione della MPDU, considerando i campi che possono cambiare durante le ritrasmissioni settati a

Page 20: 12-appunti 1_3.pdf

0; in questo modo si fornisce integrità anche sui campi dell'header. Quindi viene costruito il blocco nonce, parola generata per l'occasione combinando l'indirizzo MAC del trasmittente, il PN e il campo Priority usato in QoS. Successivamente viene creato l'header CCMP composto da PN e KeyID come in figura, che saranno inviati in chiaro. Ovviamente l'ExtIV è sempre settato a 1.

Creato l'header, si passa alla cifratura utilizzando l'AAD, la nonce, il body della MPDU e la TK, per generare il MIC che sarà cifrato insieme ai dati. A differenza di TKIP, CCMP non usa l'ICV WEP.

Per quanto riguarda il de-incapsulamento, poiché non interviene più WEP, il processo è la semplice inversione di quello di incapsulamento. Dagli header MAC e CCMP, si costruiscono l'AAD, la nonce. Questi, insieme ai dati e al MIC cifrati e alla TK vengono passati al blocco di decifratura che recupera il testo in chiaro e verifica l'integrità di AAD e della MPDU. Inoltre viene effettuato un controllo sul PN verificando che quello ricevuto sia maggiore o uguale dell'ultimo PN della sessione.

TKIP e CCMP sono tecniche di cifratura dei dati che garantiscono un certo livello di integrità e confidenzialità dei dati. In che modo invece avviene l'autenticazione delle stazioni. Esiste una procedura riassunta in figura. Il primo passo da compiere è un'autenticazione Open System, che rappresenta un'autenticazione di basso livello. Superato questo passo si giunge alla fase di associazione,

al cui interno avverrà la fase di autenticazione vera e propria. Nelle frame beacon e Probe Response, l'AP specifica tutti i metodi di cifratura e di autenticazione che supporta. Quindi, dopo la fase di autenticazione Open System, la STA include nel messaggio di richiesta di autenticazione il metodo di cifratura e di autenticazione che intende utilizzare. L'AP rifiuta la richiesta di associazione se i metodi proposti non sono tra quelli supportati.

Page 21: 12-appunti 1_3.pdf

Due metodi di autenticazione sono 802.1X basato su EAP, e PSK. L'autenticazione 802.1X è antecedente lo standard 802.11 ed è stato progettato in senso generico, in modo da essere implementabile anche per le reti cablate. Lo scenario da considerare è quello in figura. Si riconoscono 3 elementi:

supplicant, l'host che cerca di accedere alla rete;

authenticator, controlla l'accesso alla rete, agendo da bridge non memorizzando alcuna informazione sull'utente;

authentication server, processa le richieste di autenticazione.

Sia il supplicant che l'authenticator sono riferiti nello standard come Port Authentication Entities (PAEs). La comunicazione tra queste due entità avviene trame EAP over LANs (EAPOL). Questi messaggi vengono quindi trasportati all'interno di pacchetti RADIUS quando devono transitare dall'authenticator all'authentication server. L'authenticator è solitamente l'AP e la sua presenza è necessaria poiché il supplicant non è ancora associato e non può inviare messaggi all'AS se questo si trova sulla WLAN. EAP invece è un framework molto generico, basato su messaggi di richiesta/risposta, e che supporta diversi metodi di autenticazione; i più comuni sono EAP-MD-5 Challenge e EAP-TLS. La fase di scambio principale è

quella generata a partire dal primo messaggio Response/Identity, in cui il supplicant invia il tipo di autenticazione che intende utilizzare. A questo punto inizia la vera e propria fase di autenticazione in cui il RADIUS server invia un challenge (testo di prova) e riceve una risposta dal supplicant, in base alla quale verifica l'identità dello stesso. Lo scambio di questi 2 messaggi può ripetersi diverse volte. Infine il server RADIUS concede l'accesso alla rete inviando un messaggio Access-Accept che giunge come EAP-Success al supplicant. A questo punto viene generata una PMK (Pairwise Master Key) riferita alla coppia Supplicant-Authenticator. Questa PMK viene passata all'authenticator che la invia anche al supplicant mediante il messaggio EAPOL-Key. Spesso a questo punto incomincia lo scambio di messaggi DHCP. Le porte per la comunicazione EAPOL possono essere in uno stato autorizzato e non autorizzato. Il messaggio EAPOL-

Logoff inviato dal supplicant imposta la porta allo stato non autorizzato. È possibile che l'authenticator effettui un'operazione di refresh dell'autenticazione in corrispondenza dello scadere di un timeout.La PMK è molto importante perchè utilizzata per generare le chiavi usate da TKIP e CCMP.

Page 22: 12-appunti 1_3.pdf

Il metodo di autenticazione PSK invece utilizza una chiave statica (o passphrase) nota sia all'AP che alle stazioni che viene utilizzata come PMK. Il metodo di distribuzione della chiave agli elementi della rete non è specificato dallo standard.

A questo punto della fase di associazione l'AP e la stazione condividono una PMK. Il protocollo di cifratura TKIP richiede due chiavi: la TK e la MIC Key; mentre CCMP richiede la TK. Queste chiavi possono essere di due tipi: pairwise, per cifrare le frame unicast (ossia dirette all'AP), e group, per cifrare le frame broadcast e multicast. Consideriamo il traffico unicast. A partire dalla PMK (256bit) dobbiamo generare la TK e, nel caso TKIP la MIC Key. Questo avviene in seguito ad una procedura detta four-way-handshake. Sia la stazione che l'AP posseggono la PMK. L'autenticator prende l'iniziativa e genera una Anonce, un valore casuale utilizzato per prevenire replay attack, e lo invia al supplicant. Questo genera anch'esso una nonce, detta Snonce. In tale situazione il supplicant è in grado di calcolare la PTK (Pairwise Transient Key), che è funzione della PMK, gli indirizzi MAC della stazione e dell'AP, le due nonce. Dopodichè la stazione invia all'AP la Snonce, in modo che anch'esso possa calcolare la PTK. Arrivati a questo punto occorrono due messaggi di conferma. L'authenticator invia un messaggio di conferma alla stazione contenente anche la GTK (Group Transient Key). Questa GTK viene calcolata come funzione di una GMK (Group Master Key) mantenuta dall'authenticator, l'indirizzo MAC dell'authenticator e una Gnonce creata per l'occasione. Infine la stazione invia un messaggio di conferma. Al termine dell'handshake l'AP e la stazione hanno la PTK e la GTK. La prima contiene: nel caso TKIP la TK da usare per il key mixing e le due chiavi MIC utilizzate rispettivamente dall'AP e dalla STA per comunicare con la STA e l'AP; nel caso CCMP fornisce la TK. La seconda contiene le chiavi per la comunicazione multicast/broadcast.

Poiché le stazioni possono entrare ed uscire arbitrariamente dalla rete, è prevista una procedura di aggiornamento della GTK (Group key handshake), che ovviamente può avvenire solo in seguito ad un four-way-handshake. L'AP semplicemente genera una nuova Gnonce e la corrispondente GTK che viene comunicata alle stazioni le quali rispondono con un messaggio di acknowledgement. Le stazioni possono richiedere l'update della chiave di gruppo inviando, senza essere sollecitate, un messaggio di conferma di avvenuta ricezione della chiave GTK.

L'acronimo WPA è una certificazione della Wi-Fi Alliance antecedente la pubblicazione dello standard 802.11i, che certifica grosso modo la conformità alla cifratura TKIP. WPA2, invece, certifica

Page 23: 12-appunti 1_3.pdf

la piena conformità allo standard 802.11i (ossia TKIP e CCMP).

Quality of ServiceLa locuzione Quality of Service è riferita ad un insieme di tecniche che garantiscono a determinati

flussi di traffico specifiche prestazioni in termini di uno o più parametri, quali Throughput, Delay, Jitter o Packet Loss. Questo tipo di esigenza è nata non appena si è incominciato ad usare Internet per applicazioni diverse dal semplice trasferimento di file, come ad esempio applicazioni multimediali non real-time (streaming, che ha bisogno di un determinato throughput e jitter), applicazioni multimediali real-time (VoIP, che oltre al throughput e allo jitter necessita di un delay sotto una certa soglia).

I due strumenti fondamentali per garantire una certa QoS a specifici flussi di traffico sono: lo scheduling, che riconosce i pacchetti in transito come appartenenti a determinati flussi, garantendo un accesso al mezzo differente a seconda del flusso di appartenenza; l'admission control, che consente l'utilizzo della rete solo a determinati flussi, poiché la rete ha una capacità limitata.

Nel novembre 2005 è stata introdotta una nuova funzione di accesso al mezzo, HCF (Hybrid Coordination Function) che essenzialmente consente alle stazioni di mantere più code di servizio e bilanciare l'accesso al mezzo wireless in favore delle applicazioni che richiedono un servizio di qualità migliore. In particolare, HCF prevede due meccanismi distinti, uno distribuito e l'altro centralizzato, che sono rispettivamente EDCA (Enhanced Distributed Controlled Access, basato su contesa) e HCCA (HCF Controlled Channel Access, privo di contesa). Con HCF viene definito il TXOP (Transmission Opportunity) un intervallo temporale durante il quale una Qos STA (ossia una stazione che implementa le strutture QoS) ha il diritto di intraprendere lo scambio di frame sul mezzo wireless. Viene definito da un istante iniziale e da un valore di durata massima. Se TXOP=0 allora è consentito l'invio di un'unica MSDU (in aggiunta ad un possibile scambio RTS/CTS o CTS-to-self). Durante il TXOP una stazione può trasmettere più di una frame, e contempla il tempo necessario alla stazione ricevente per trasmettere l'acknowledgment. Una stazione può ottenere il TXOP in seguito ad una contesa, nel caso EDCA, oppure in seguito all'assegnazione da parte dell'HC (Hybrid Coordinator), l'entità centrale prevista da HCCA. Il nome del TXOP diventa, rispettivamente, EDCA TXOP e HCCA TXOP.

L'EDCA fornisce ad ogni stazione un accesso differenziato e distribuito al mezzo wireless usando 8 livelli di priorita (UP – User Priority). Inoltre definisce 4 categorie di accesso (AC – Access Category) che forniscono il supporto per la distribuzione del traffico avente un certo valore di priorità UP. Quando a livello MAC viene passata una MSDU, ad essa è associato un valore di priorità UP. A seconda di tale valore, l'MSDU è inserita nella coda AC appropriata. Quindi ogni coda

possiede una EDCAF (EDCA Function) che si contende l'accesso al mezzo con le EDCAF della stessa AC presenti sulle altre stazioni. All'interno di ogni stazione le EDCAF operano in maniera indipendente, e la

differenziazione tra le varie tipologie di traffico avviene mediante l'utilizzo di diversi valori dei parametri di accesso al mezzo distribuiti dall'AP nel EDCA Parameter Set. L'EDCA Parameter Set è inviato nelle frame Beacon, Probe Response e (Re)-Association Response. Se questo set di parametri non viene distribuito dall'AP ci si riferisce ad

Page 24: 12-appunti 1_3.pdf

una tabella con valori di default. Ovviamente l'EDCA Parameter Set vale per tutta la BSS. I parametri che assumono diverso valore a seconda dell'AC sono: AIFS (Arbitration IFS), intervallo temporale in cui una stazione deve percepire il canale libero prima di poter trasmettere (se il canale era inizialmente libero) o prima di iniziare la procedura di backoff; la dimensione della CW per la procedura di backoff; il TXOP. Ovviamente, i valori dei parametri sono impostati in maniera da favorire il traffico con priorità maggiore. L'AP invia particolari valori nell'EDCA Parameter Set. Ad esempio, affinchè ogni stazione possa calcolare l'AIFS per ciascun AC, l'AP invia per ogni AC un valore AIFSN (AIFS Number). Quindi l'AIFSAC = SIFS + AIFSNAC x SlotTime. L' AIFSNAC≥2 in modo che AIFSAC≥DIFS (essendo DIFS = SIFS+2SlotTime). Per poter agevolare le classi a maggiore priorità l'AIFSN è minore per tali classi, come anche i valori CWmin e CWmax. Se due EDCAF all'interno di una stazione collidono, la contesa è risolta internamente alla stazione. Ovviamente, l'EDCAF relativo all'AC con priorità maggiore acquisisce la TXOP mentre quella con priorità minore si comporta come se fosse avvenuta una collisione esterna, invocando la procedura di backoff. La EDCAF che ha acquisito la TXOP può trasmettere più frame di fila, assicurandosi preventivamente che la trasmissione non ecceda il TXOP. Le frame trasmesse in successione sono distanziate di un tempo SIFS a partire dall'ACK della frame precedente. L'innovazione importante di EDCA è che non si prioritizza una stazione piuttosto che un'altra, ma una tipologia di traffico piuttosto che un'altra in tutte le stazioni. Poiché comunque l'accesso è basato su contesa, una stazione non ha garanzie sulla possibilità di trasmettere i dati.

Vista la parte di scheduling di EDCA analizziamo ora quella di Admission Control. All'interno della BSS può essere imposto un limite sulla quantità di traffico che possono generare per le categorie voice e video (lo standard raccomanda di non rendere obbligatorio l'admission control per le categorie Background e Best Effort). L'AP usa il sottocampo ACM (Admission Control Mandatory) all'interno dell'EDCA Parameter Set per indicare per quale AC è obbligatorio l'admission control. Mentre i parametri CWmin, CWmax, AIFS e TXOP possono essere modificati nel corso del tempo, l'ACM è fissato per tutta la durata della BSS. Prima di poter trasmettere traffico in qualsiasi direzione, appartenente ad un AC per il quale è richiesto l'admission control, la stazione deve inviare all'AP una frame ADDTS (ADD Traffic Stream) Request per richiedere del “tempo sul mezzo condiviso” (medium time). All'interno della ADDTS Request è presente l'elemento TSPEC che indica Nominal MSDU size (byte), Mean data rate(bit/s – è la quantità media di dati che la stazione vuole trasmettere e non il tasso dipeso dalla modulazione specifica del livello fisico sottostante), Minimum PHY rate(bit/s) e Surplus Bandwidth Allowance(SBA). Quest'ultimo è un coefficiente con valore maggiore o uguale a 1 che tiene conto di possibili ritrasmissioni. Se una stazione desidera inviare dati di una particolare AC per la quale è richiesta l'admission control, senza però usare l'admission control, la stazione può decidere di utilizzare i parametri EDCA relativi ad una AC per la quale non è obbligatorio l'utilizzo dell'admission control. L'AP ricevuta la ADDTS Request decide se accettare o meno la richiesta. Se la richiesta viene accettata l'AP calcola il Medium Time = SBA x pps x MPDUExchangeTime,dovepps = Mean data rate / (8 x Nominal MSDU size) eMPDUExchangeTime = (Nominal MSDU size /Minimum PHY rate) + SIFS + ACK duration. Il Medium Time viene quindi inserito in una ADDTS Response e inviato alla stazione. Il medium time è una sorta di percentuale di tempo che è riservato alla stazione in ogni intervallo. Come fa la stazione a rispettare il limite di tempo, medium time, concessole? Ogni EDCAF gestisce due variabili: admitted_time e used_time. Alla ricezione di una ADDTS Response che accetta la precedente richiesta, i valori di queste due variabili vengono aggiornati: admitted_time += Averaging Period x Medium Time, prodotto tra la durata media di un periodo e la percentuale di tempo in tale periodo. Ovviamente, used_time rappresenta il tempo utilizzato in ogni periodo. Quindi ogni volta che effettua una trasmissione, indipendentemente dal fatto che abbia successo o meno, incrementa la variabile del tempo MPDUExchangeTime. Quando una stazione deve trasmettere controlla se used_time raggiunge o supera admitted_time: in tal caso la stazione non può più trasmettere traffico della corrispondente

Page 25: 12-appunti 1_3.pdf

AC. Comunque la stazione può decidere di sostituire temporaneamente i parametri EDCA per la EDCAF associata a tale AC con quelli specificati per di un'altra AC a minore priorità, per la quale non è richiesto l'admission control. Il valore di used_time può superare admitted_time, ossia una stazione può utilizzare più tempo di quanto le sia stato concesso all'interno di un periodo, ma sarà recuperato nel periodo successivo. Per questo, allo scadere di un periodo il valore used_time = max (used_time – admitted_time,0). Se le condizioni del canale peggiorano, e quindi le stazioni impiegano più tempo per effettuare una trasmissione, la stazione può chiedere all'AP di ottenere ulteriore admitted_time.

Le frame QoS hanno nell'header MAC un ulteriore campo detto QoS Control costituito da 2 byte divisi in 5 sottocampi. Il significato di questi sottocampi dipende dal particolare tipo di frame QoS. Per quanto riguarda il primo tipo, i primi 4 bit indicano ID del TC (Traffic Category) o TS (Traffic Stream) a cui fa riferimento la MSDU. EOSP sta ad indicare la fine o meno del periodo di servizio (ha significato solo in HCCA). I due bit Ack Policy stanno ad indicare quale politica di ACK devono adottare le stazioni.

Bit 5 Bit 6 Significato

0 0 Normal Ack. Il ricevente invia un Ack o una Qos + CF-Ack, dopo un periodo SIFS.

0 1 No Ack. Il ricevente non intraprende alcuna azione in seguito alla ricezione di una frame.

1 0 No explicit acknowledgement. Il ricevente può inviare una frame in risposta a quella ricevuta ma non di tipo ACK.

1 1 Block Ack. Il ricevente non intraprende alcuna azione in seguito alla ricezione di una frame, eccetto quella di registrarla. Il ricevente può attendere la ricezione di una frame BlockAckReq alla quale risponderà secondo una particolare procedura.

Il sottocampo TXOP limit è il valore TXOP che viene concesso ad una stazione dall'HC. Tale valore è espresso in unità di 32 μs.

Il meccanismo HCCA utilizza una stazione coordinatrice (consapevole dei servizi QoS) chiamata hybrid coordinator, ruolo svolto dall'AP, che opera con regole differenti dal PC della PCF anche se opzionalmente può implementare anche le regole di quest'ultimo. L'HC ha una maggiore priorità di accesso al mezzo rispetto alle stazioni non-AP della BSS; infatti utilizza il tempo PIFS anziché DIFS. Come nella PCF, anche HCCA prevede periodi privi di contesa CFP e periodi con contesa CP. La differenza più importante è che l'HC può dare il diritto di trasmettere ad una stazione sia in un CFP che in CP. Il diritto di trasmissione consiste di un tempo TXOP, all'interno del quale la stazione può trasmettere più frame, senza comunque eccedere il TXOP.

L'HC concede il diritto di trasmissione ad una stazione inviandole una frame QoS-poll, contenente il TXOP concesso (nel sottocampo TXOP limit), e il TSID del TS per il quale è concesso il TXOP. Un TS è un insieme di MSDU che avranno una trasmissione soggetta ai parametri di QoS forniti in un

Page 26: 12-appunti 1_3.pdf

particolare TSPEC. Inoltre, l'impostazione del campo Duration/ID di questa frame consente l'impostazione di un NAV che protegge l'intera TXOP. Una stazione che riceve una QoS-poll

può trasmettere più frame intervallate da un tempo SIFS, senza eccedere il TXOP. Inoltre le frame inviate possono appartenere a qualunque TS, indipendentemente da quello specificato nella QoS-poll. Il TXOP assegnato dall'HC può coprire anche periodi CP. Questo avviene per poter fornire un accesso

garantito al canale alle stazioni: ciò è indispensabile per applicazioni voce e video che richiedono un servizio periodico garantito. Nei periodi CP non coperti da HCCA TXOP, le stazioni

DCF e HCF EDCA si contendono l'accesso al canale. Per poter ricevere una Qos-poll le stazioni devono inviare le caratteristiche del proprio traffico

all'HC sotto forma di TSPEC. L'HC accetta o meno la nuova richiesta valutando il valore, di un parametro configurabile, che indica il rapporto tra il tempo CFP e CP, realizzando così l'admission control.

Diamo una breve occhiata alle prestazioni delle reti viste finora. Consideriamo la tecnica DCF. Per trasmettere la porzione di dati DATA impieghiamo un tempo molto lungo dovuto dall'overhead dei tempi di controllo DIFS, backoff,SIFS e dalla trasmissione dell'ACK. All'aumentare del rate di trasmissione la prestazione della rete diminuisce perchè la quantità di tempo per trasmettere i dati è ancora più breve mentre i tempi di controllo restano invariati. Utilizzando invece HCF si concede un tempo TXOP per la trasmissione dei dati e notiamo il tempo dedicato alla trasmissione dei dati aumenta sulla quantità di tempo totale in cui la stazione ha accesso al canale. Questo perchè non si aspetta un tempo DIFS ma SIFS e non si utilizza la procedura di backoff. Queste prestazioni possono essere ulteriormente migliorate mediante l'utilizzo delle diverse ACK Policy introdotte da 802.11e. Una di queste è il Block Ack. Questa tecnica consente di riscontrare più frame con un unico ACK. Per fare ciò occorre una fase di setup in cui la stazione trasmittente e quella ricevente si scambiano messaggi ADDBA Request/Response per concordare la dimensione del buffer che il ricevente allocherà per registrare i messaggi provenienti dalla stazione trasmittente e associati al particolare TS per cui si richiede il Block Ack. Una volta terminato il setup, la stazione trasmittente invia un blocco di frame separate da un tempo SIFS. Le frame appartenenti ad un blocco possono essere trasmesse in TXOP differenti. Quando la stazione trasmittente ha bisogno di un riscontro invia a quella ricevente un messaggio BlockAckReq in cui richiede il riscontro delle MPDU a partire da un certo valore iniziale di Sequence Control (SC0). Poiché nel campo Sequence Control del MAC header i primi 4 bit sono il Fragment Number e i restanti 12 il Sequence Number, la stazione ricevente costruisce il Sequence Control traslando il Sequence Number di 4 bit a sinistra, ponendo in coda il Fragment Number. Ciò corrisponde all'operazione Sequence Control = Sequence Number x 24 + Fragment Number. Il

Page 27: 12-appunti 1_3.pdf

messaggio di risposta al BlockAckReq è un BlockAck contenente una bitmap di 1024 bit. Il bit n-esimo della bitmap riscontra l'MPDU avente SC pari a SC0 + n: se tale bit è alto l'MPDU è stata riscontrata correttamente; se il bit è basso l'MPDU corrispondente non è stata ricevuta oppure non esiste. Supponiamo di voler riscontrare l'MSDU avente Sequence Number x e costituito da 16 frammenti, avremo una bitmap come in figura. Nel caso estremo ogni MSDU inviata dalla stazione trasmittente è stata frammentata effettivamente in 16 MPDU e quindi ogni valore della bitmap ha significato, altrimenti esisteranno bit non riferiti ad alcun frammento. Considerato ciò, un Block Ack può riscontrare al più 1024/16 = 64 MSDU. Il riscontro è quindi selettivo e la stazione trasmittente può ritrasmettere le MPDU che non sono state riscontrate. In che modo la stazione ricevente svuota il buffer? Alla ricezione di una BlockAckReq il ricevente passa ai livelli superiori tutte le MSDU complete con SequenceControl<SC0 e, a partire da quella con SequenceControl pari a SC0, tutte le MSDU complete fino alla prima MSDU incompleta. Se dopo la ricezione di una MPDU il buffer è pieno, viene passata ai livelli superiori la MSDU completa con il Sequence Control più basso. Notiamo differenze con l'ACK TCP. Questo perchè a livello TCP non sappiamo quanti hop intermedi ci sono mentre nelle reti 802.11 le stazioni parlano direttamente tra loro.

Esistono due modalità di BlockAck: immediato e ritardato. Nella modalità immediata la stazione ricevente il BlockAckReq invia immediatamente la risposta BlockAck, all'interno dello stesso TXOP in cui è stato inviato il BlockAckReq. Nella modalità ritardata la stazione ricevente risponde alla BlockAckReq con un semplice ACK. Il messaggio BlockAck verrà inviato come messaggio a priorità massima nel successivo TXOP acquisito dalla stazione ricevente; tale ricezione di tale messaggio sarà confermata con l'ACK. Questa tecnica viene utilizzata per garantire compatibilità con vecchi hardware ma non è adatta per quei tipi di traffici che richiedono un basso valore di latenza.

Un altro politica di ACK è il NoAck, che non prevede messaggi di riscontro e quindi non fornisce un trasferimento affidabile. Per i traffici che adottano questa politica dovranno essere i livelli superiori, se occorre, a garantire la consegna affidabile dei dati.

La Wi-Fi MultiMedia (WMM) è una certificazione rilasciata dalla Wi-Fi Alliance per garantire l'interoperabilità tra dispositivi che implementano EDCA. Questa certificazione è stata lanciata prima che avvenisse la pubblicazione definitiva dello standard 802.11e.

Lo standard 802.11e consente l'instaurazione di un link diretto tra due stazioni QoS all'interno di una stessa Qos BSS, pur lasciando che queste stazioni restino associate all'AP. L'instaurazione di questo collegamento avviene per mezzo dell'AP. L'utilizzo dell'AP è necessario poiché in alcuni casi una delle

due stazioni potrebbe trovarsi in PowerSafe mode e, in tale caso, solo l'AP può risvegliarla. L'instaurazione del link diretto proibisce alle due stazioni coinvolte di entrare in PowerSafe mode. L'instaurazione del link diretto richiede lo scambio di 4 messaggi:

(1a) la STA-1, che intende instaurare un link diretto, invia una frame DLS Request all'AP,

inserendo l'insieme di rate supportati, le proprie capabilities, il proprio indirizzo MAC e quello di STA-2.

(1b) se i link diretti sono ammessi nella BSS e STA-2 è una QoS STA, allora l'AP invia la DLS Request alla STA-2.

(2a) se STA-2 accetta il link diretto invia una DLS Response all'AP, contenente l'insieme di rate supportati, le proprie capabilities, il proprio indirizzo MAC e quello di STA-1.

(2b) l'AP invia la DLS Response a STA-1; in seguito alla ricezione il canale diventa attivo e possono essere inviate frame direttamente tra le due stazioni. L'utilizzo del link da parte delle due stazioni può avvenire con una qualsiasi tra le tecniche di accesso al mezzo.

L'instaurazione di un link diretto rappresenta una primitiva del livello MAC è può essere

Page 28: 12-appunti 1_3.pdf

richiamata dai livelli superiori dello stack. La fase di setup può comunque fallire per diversi motivi: all'interno della BSS non sono ammessi link diretti, la STA-2 rifiuta il link, la STA-2 non è una QoS STA, STA-2 non si trova all'interno della BSS.

Prima di de-associarsi o de-autenticarsi da un AP, una stazione deve chiudere tutti i link diretti in cui partecipa. Per poterlo fare deve inviare una frame DLS Teardown all'AP il quale la inoltrerà a sua volta all'altra stazione coinvolta nel link. Se una stazione lascia la BSS senza chiudere i link diretti l'AP può prendere l'iniziativa e inviare un DLS Teardown a tutte le stazioni che hanno ancora attivo un canale diretto con tale stazione.

Performance EvalutationPer valutare le prestazioni della rete quello che ci interessa è calcolare il throughput massimo,

ossia il numero di bit del payload trasmessi al secondo in media. Consideriamo il caso banale di una stazione trasmittente e una ricevente che accedono al mezzo tramite DCF, in assenza di contesa da parte di altre stazioni e in assenza di errori introdotti dal canale. Quindi, il throughput si può calcolare come

il rapporto tra la dimensione media del payload di una MPDU e il tempo impiegato per inviarla.

Al denominatore è determinato da tre contributi. Partendo dal secondo abbiamo il tempo DIFS e successivamente abbiamo un prodotto che rappresenta il tempo medio della durata del backoff. Quest'ultimo, poiché non ci sono collisioni viene sceltro sempre tra 0 e CWmin. Il primo contributo invece è il tempo medio che si utilizza per inviare la MPDU e ricevere l'ACK dopo un tempo SIFS, con l'aggiunta eventuale del tempo per scambiare le frame RTS/CTS. Poiché in Tframe l'unico contributo non costante è il tempo impiegato per l'invio della MPDU, l'operatore di media viene applicato solo TMPDU. I tempi (Ti) impiegati per inviare la MPDU, l'ACK e le frame RTS/CTS vengono calcolati come la

somma del tempo per l'invio dell'header PLCP, e il tempo impiegato per inviare la frame MAC. Quest'ultimo contributo è calcolato come il rapporto tra la lunghezza della frame MAC e il rate utilizzato per inviarla. Poiché vogliamo un risultato in bit abbiamo moltiplicato per 8. Le dimensioni delle frame MAC sono note, a meno di considerare la dimensione del payload della MPDU come valore noto (28 byte sono la

dimensione dell'header MAC senza Address4). Considerando gli emendamenti 802.11a/b i dati relativi al livello fisico sono riassunti in tabella. Soffermiamoci su 802.11b. Fissando la

Page 29: 12-appunti 1_3.pdf

dimensione del payload a 1500byte, e sapendo che il RACK = 1Mb/s, escludendo l'uso delle frame RTS/CTS si ha che il throughput massimo che si ottiene è solo una percentuale di quello nominale. La prima cosa che si nota è che, aumentando il tasso di trasmissione si ha un utilizzo percentuale inferiore della capacità nominale rispetto al caso con tasso trasmissivo inferiore. Questo accade perchè aumentando il tasso nominale il tempo per trasmettere i dati diminuisce e quindi sarà una porzione minore del tempo complessivo di scambio. Dunque, una stazione che trasmette ad 11 Mb/s ottiene un throughput di circa 6 Mb/s. Cosa succede se invece di avere una stazione trasmittente ne abbiamo due?Ipotizzando che non ci siano collisioni tra le due stazioni e che l'accesso al mezzo sia equo, se la dimensione della frame da trasmettere è la stessa per entrambe le stazioni il throughput è lo stesso; poiché quest'ultimo è dato dal rapporto tra la dimensione del payload e il tempo impiegato per inviarlo. In questo caso il tempo comprende l'invio di entrambe le stazioni, ossia i due tempi di invio delle MPDU, due SIFS, il tempo per inviare due ACK, due DIFS ma un solo tempo di backoff: questo perchè quando STA-2 comincia a trasmettere il tempo di backoff di STA-1 viene congelato. Appurato che il throughput è lo stesso se le due stazioni trasmettono frame di eguale dimensione, notiamo che il throughput per stazione sarà pari a circa la metà del throughput nel caso di singola stazione trasmittente, e pari a 3,3 Mb/s utilizzando un rate nominale di 11 Mb/s. In realtà il throughput per stazione è leggermente superiore alla metà del throughput nel caso della singola stazione trasmittente perchè si riduce uno dei tempi fissi, utilizzando un unico tempo di backoff per entrambe le stazioni.

Rimanendo in questo scenario, cosa succede se le due stazioni continuano a trasmettere frame della stessa dimensione ma utilizzando rate differenti, ad esempio 11 e 2 Mb/s? Poiché trasmettono frame di

Page 30: 12-appunti 1_3.pdf

eguale dimensione il throughput sarà lo stesso per entrambe le stazioni. In questo caso però, la stazione che trasmette al rate superiore viene penalizzata da quella che trasmette al rate inferiore. Ciò avviene perchè DCF determina un accesso al mezzo equo in termini di opportunità di trasmissione, indipendentemente dal rate utilizzato dalle stazioni. Questo fenomeno è noto come Performance Anomaly: le stazioni con rate trasmissivo elevato vengono penalizzate nel throughput da quello con rate trasmissivi più bassi.

Consideriamo ora una generica BSS costituita da più stazioni. All'aumentare del traffico generato dalle diverse stazioni il throughput della rete, ossia la quantità di dati trasportata dalla rete nell'unità di tempo, aumenta fino a raggiungere un valore stabile detto Saturation Throughput. Per calcolare questo valore eliminiamo le ipotesi semplificative di mancanza di collisioni, affidandoci ad un modello probabilistico. Supponiamo di trovarci in condizioni di saturazione ossia una condizione in cui tutte le stazioni hanno frame da trasmettere e supponiamo che le stazioni siano n. Come percepiscono il tempo le stazioni? Supponiamo che le stazioni abbiano una concezione del tempo diviso in slot. Uno slot è il

tempo che intercorre tra due decrementi consecutivi del timer di backoff. Esistono tre tipi di slot: idle, con trasmissione, con collisione (canale occupato); pertanto gli slot non hanno la stessa durata. Detto ciò, un ciclo di trasmissione per una stazione è definito, in termini di slot, dal valore generato dal timer di backoff più uno, relativo alla propria trasmissione. Definiamo

il Backoff Stage s come il numero di ritrasmissioni di un pacchetto. Questo valore varia tra 0 e R, che rappresenta il numero massimo di tentativi dopo il quale la frame viene scartata. Sia b i una variabile aleatoria uniforme nell'intervallo [0, CWi], con i = 0, ..., R utilizzata nella scelta del tempo di backoff. Supponiamo di avere una stazione che vuole trasmettere un pacchetto con s=0, ossia un nuovo pacchetto. Tale stazione pescherà il valore di backoff dalla variabile aleatoria b0. Se la trasmissione collide il prossimo valore di backoff sarà sorteggiato dalla variabile aleatoria b1 e così via. Denotiamo quindi con TX l'evento “una stazione decide di trasmettere in un time slot” e denotiamo con (s=i) l'evento “la stazione si trova nel backoff stage i”. Dunque denotiamo con =P(TX) la probabilità che una stazione trasmetta in un time slot scelto casualmente. Per il teorema di Bayes otteniamo

Sommando su tutti i valori di i otteniamo

Quindi Per poter calcolare questa quantità occorrono le due probabilità condizionate che compaiono nella sommatoria al denominatore. La probabilità condizionata P(s=i|TX)

rappresenta la probabilità che una stazioni che decide di trasmettere si trovi nella condizione di backoff stage pari a i. Questa probabilità assume i valori di una distribuzione a regime di una

catena di Markov discreta, che può essere espressa come una distribuzione geometrica

Page 31: 12-appunti 1_3.pdf

in cui p rappresenta la probabilità che un pacchetto trasmesso collida. Consideriamo ora P(TX|s=i) che rappresenta la probabilità che una stazione trasmetta una frame essendo nella fase di backoff stage i. Poiché la durata di un ciclo di trasmissione è, in termini di slot, pari al valore generato del backoff timer più uno,si ha che dove E[bi] è il valore medio del timer di backoff generato da una stazione nella backoff stage i, che praticamente corrisponde a CWi/2. Calcolate le due probabilità condizionate, si ha che la probabilità che una stazione trasmetta in uno slot scelto casualmente è

Notiamo la dipendenza da due soli parametri: E[bi] e p. La probabilità di collisione p è data dalla probabilità che almeno una delle rimanenti n-1 stazioni stia trasmettendo, ossia

Possiamo quindi dire che all'aumentare della probabilità di collisione decresce la probabilità che una stazione trasmetta in un determinato slot; inoltre, a parità di probabilità di trasmission all'aumentare del numero di stazioni aumenta la probabilità di collisione.Giunti a questo punto notiamo che abbiamo costruito un sistema di due equazioni in due incognite (p e ) che può essere risolto numericamente. Il saturation throughput, noto il valore , può essere calcolato come il rapporto tra la quantità di dati trasmessi in uno slot moltiplicato per la probabilità con la quale riesco effettivamente a trasmettere e la durata di un ciclo di trasmissione,

dove:al numeratore

Ptr = 1 – (1 - ) n è la probabilità che ci sia almeno una trasmissione nello slot;

Ps = n(1-)n-1/Ptr è la probabilità che una trasmissione sul canale abbia successo (quindi il prodotto PtrPs è la probabilità di avere una trasmissione nello slot con successo);

E[P]' è la dimensione media in bit del payload trasmesso in uno slot time;al denominatore

è il TimeSlot DCF; (1-Ptr) = (1-)n è la probabilità di avere uno slot idle (moltiplicando per si ottiene il

contributo totale degli slot idle); T's è la durata media di uno slot con trasmissione con successo (moltiplicando per il prodotto

PtrPs si ottiene il contributo temporale degli slot con trasmissione) T'c è la durata media di uno slot con collisione (poiché il prodotto Ptr(1-Ps) rappresenta la

probabilità che una stazione trasmetta senza successo, moltiplicando per tale quantità si ottiene il contributo degli slot con collisione).

Applicando le formule del modello ed effettuando delle simulazioni si è visto che i dati forniti dal modello approssimano molto bene quelli delle simulazioni. Nel grafico, le linee rappresentano i risultati del modello, ogni simbolo rappresenta una simulazione, il bit rate utilizzato in questo scenario è 1 Mb/s, mentre il parametro W = CWmin e quello m = R. Dal grafico notiamo che, con un numero limitato di stazioni il throughput che si ottiene con i diversi valori di W e m, sia utilizzando le frame

Page 32: 12-appunti 1_3.pdf

RTS/CTS che non utilizzandole, è molto simile. Invece, aumentando il numero di stazioni notiamo come il throughput decresca nella versione base di DCF, mentre utilizzando le frame RTS/CTS si ottiene un saturation throughput molto più elevato. Ciò è una diretta conseguenza dell'aumentare del numero di collisioni. Poiché utilizzando le frame RTS/CTS in caso di collisione si evita di

trasmettere la MPDU, si ottiene un miglioramento delle prestazioni.