protocollo ieee 802 - fsartori.altervista.orgfsartori.altervista.org/capitolo_1.pdf · le...
TRANSCRIPT
Capitolo 1
Protocollo IEEE 802.11
Capitolo 1 - Protocollo IEEE 802.11 9
1.1 Descrizione generale
Uno standard per le comunicazioni di tipo wireless fa riferimento al protocollo di
comunicazione IEEE 802.11 [1]. Le reti wireless hanno caratteristiche che le rendono
significativamente diverse dalle tradizionali LAN di tipo wired. Nelle reti wired un
indirizzo è messo in relazione biunivoca con una postazione fissa e questo fatto è
implicitamente utilizzato nel progetto di tali reti. Nel IEEE 802.11, l’unità indirizzabile
è una stazione (STA); la STA è una destinazione per il messaggio ma non, in generale,
una locazione fissa.
Il livello fisico (PHY) usato nell’802.11 è differente da quello di tipo wired.
Le caratteristiche del livello PHY, usato nell’802.11, sono:
Il mezzo utilizzato non ha limiti visibili oltre i quali una STA non è più in grado
di comunicare e quindi di trasmettere e di ricevere i frames di rete;
Non è protetto da segnali esterni;
La comunicazione attraverso il mezzo è significativamente più difficoltosa
rispetto al caso wired;
Si hanno topologie di rete dinamiche;
Si hanno mancanze di connessione completa. La comunicazione diretta tra ogni
STA non è possibile in generale (una STA può essere “nascosta” ad altre);
Si hanno proprietà di propagazione nel mezzo asimmetriche e tempo-varianti.
A causa delle limitazioni sulle distanze raggiungibili dal PHY, le LAN di tipo wireless
sono costituite da più blocchi di copertura base che permettono di estendere la copertura
su aree geografiche di elevate estensioni.
Una delle caratteristiche fondamentali del protocollo 802.11 è l’estensione della
comunicazione da stazioni portatili a stazioni mobili. Una stazione che può spostarsi da
una posizione fisica ad un’altra ma che accede alla rete solo quando è ferma è detta
portatile. Le stazioni sono dette mobili se accedono alla rete anche quando sono in
movimento. Spesso anche stazioni ferme appaiono come stazioni mobili a causa degli
effetti di propagazione.
Un ulteriore aspetto delle stazioni mobili è dato dal fatto che sono alimentate in molti
casi a batteria. Quindi il power management non deve essere trascurato per aumentare
l’efficienza (per esempio non è assolutamente necessario che una stazione ricevente sia
sempre accesa).
Capitolo 1 - Protocollo IEEE 802.11 10
Lo scopo dei prossimi paragrafi è quindi quello di fornire una descrizione dello standard
802.11, consentendo di comprendere i concetti base, il principio di funzionamento e
molte delle ragioni che stanno dietro alle caratteristiche e ai componenti dello standard
[2]. Anche se la descrizione fornita non può essere esaustiva di tutti gli argomenti e
meccanismi compresi nello stamdard, si cercherà di dare una descrizione degli elementi
fondamentali in modo da comprendere le considerazioni che verranno sviluppate nei
successivi capitoli.
1.2 Componenti dell’architettura
Una LAN 802.11 è basata su una architettura cellulare dove l’area in cui deve essere
distribuito il servizio viene suddivisa in celle proprio come accade per i servizi di
telefonia mobile. Ciascuna cella (chiamata Basic Service Set, o BSS nella nomenclatura
del protocollo 802.11) è controllata da una stazione base denominata Access Point o più
semplicemente AP.
Sebbene una wireless LAN possa essere formata da una singola cella, con un singolo
Access Point (e come sarà descritto successivamente, esiste un modo di funzionamento
privo di Access Point), la maggior parte delle installazioni sarà formata da una
molteplicità di celle, dove ciascun Access Point di ogni cella sarà connesso agli altri
attraverso un qualche tipo di rete di distribuzione (definita Distribuition System o DS).
La rete di distribuzione è normalmente costituita da una dorsale Ethernet e, in alcuni
casi, può essere essa stessa di tipo wireless.
Il complesso delle diverse wireless LAN interconnesse, incluse le differenti celle, i loro
rispettivi Access Point ed il Distribuition System, viene visto come una singola rete 802
dai livelli superiori del modello OSI ed è noto standard come Extension Service Set
(ESS).
Il diagramma nella pagina seguente mostra una tipica LAN 802.11 comprendente tutti i
componenti descritti prima.
Lo standard definisce anche il concetto di Portal. Un Portal è un dispositivo che
permette l’interconnessione tra una rete LAN 802.11 ed un un’altra rete 802. Questo
concetto rappresenta una descrizione astratta di una parte delle funzionalità di un
Translation Bridge. Sebbene lo standard non necessariamente lo richieda, la maggior
parte delle installazioni hanno l’Access Point ed il Portal su un’unica unità fisica.
Capitolo 1 - Protocollo IEEE 802.11 11
Figura 1: Una tipica LAN 802.11
1.3 Descrizione dei livelli dell’IEEE 802.11
Come tutti gli altri protocolli 802.x, anche il protocollo 802.11 ricopre il livello MAC
ed il livello fisico (PHY) [1]. Lo standard attualmente definisce un singolo livello MAC
che interagisce con i seguenti tre livelli fisici, operanti a velocità variabili tra 1 e 2
Mbit/s:
Frequency Hopping Spread Spectrum (FHSS) nella banda ISM 2.4 GHz
Direct Sequence Spread Spectrum (DSSS) nella banda ISM 2.4 GHz, e
Trasmissione infrarossa
802.2 Livello OSI
Data Link 802.11 MAC
FH DS IR Livello OSI PHY
Figura 2: Stack IEEE 802.11
Oltre alle funzionalità standard usualmente fornite dai livelli di MAC dei protocolli
802.x, il MAC 802.11 supporta delle funzionalità aggiuntive, tipiche dei livelli
superiori, come la gestione della frammentazione delle Protocol Data Unit, la
ritrasmissione dei pacchetti, e la gestione dell’acknowledge (autenticazione).
Capitolo 1 - Protocollo IEEE 802.11 12
1.4 Il livello MAC dell’IEEE 802.11
Il livello di MAC definisce due differenti metodi di accesso che verranno descritti
singolarmente nei successivi paragrafi: Distributed Coordination Function e il Point
Coordination Function
1.4.1 Metodo di Accesso Base: CSMA/CA
Il meccanismo di accesso base, denominato Distributed Coordination Function [1], è
basato sul meccanismo di accesso multiplo con rilevamento della portante e
prevenzione delle collisioni (Carrier Sense Multiple Access con Collision Avoidance o
in forma più compatta CSMA/CA) [1]. I protocolli CSMA sono ben noti nell’industria
ed il più popolare è sicuramente l’Ethernet che però è basato su un meccanismo di
rilevamento delle situazioni di collisione sul canale di comunicazione (Collision
Detection o CD).
Un protocollo CSMA funziona nel seguente modo: una stazione che desidera
trasmettere ascolta il canale di comunicazione. Se il canale è occupato (una delle altre
stazioni connesse sul medesimo mezzo sta trasmettendo) la stazione rimanda la sua
trasmissione ad un istante successivo. Se invece il mezzo è libero allora la stazione ha il
permesso di trasmettere.
Questi tipi di protocolli sono molto efficienti se il mezzo di trasmissione non è
pesantemente caricato in quanto le stazioni possono trasmettere con il minimo ritardo.
Vi è però la possibilità che due stazioni ascoltino il mezzo simultaneamente e,
reputandolo libero, inizino a trasmettere simultaneamente; in questo caso, ovviamente,
di verifica una situazione di collisione sul mezzo radio.
Questa situazione di collisione deve essere rilevata in modo che i pacchetti possano
essere ritrasmessi direttamente dal livello di MAC senza interessare i livelli superiori
dello stack protocollare, cosa questa che produrrebbe significativi ritardi nella
ritrasmissione dei singoli pacchetti. Nel caso Ethernet questa situazione di collisione è
rilevata dalla stazione trasmittente la quale entra in una fase di ritrasmissione basata su
un algoritmo di posticipo della trasmissione denominato Exponential Random Backoff
Algorithm, il quale fissa arbitrariamente un tempo di ritrasmissione, al termine del quale
il canale viene nuovamente testato e se risulta ancora occupato il tempo di
ritrasmissione viene aumentato esponenzialmente.
Capitolo 1 - Protocollo IEEE 802.11 13
Mentre questo meccanismo di Collision Detection è ottimo per le LAN di tipo wired, è
assolutamente esclusa la sua adozione nel caso in cui il mezzo trasmissivo sia il canale
radio, per due principali motivi:
1. L’implementazione di un meccanismo di Collision Detection richiederebbe un
ricetrasmettitore di tipo Full Duplex capace allo stesso tempo di trasmettere e
ricevere, un approccio che aumenterebbe significativamente il prezzo degli
apparati.
2. In ambito wireless non possiamo assumere che tutte le stazioni si ascoltino a
vicenda (che è l’ipotesi base dello schema a Collision Detection). Quindi il fatto
che una stazione voglia trasmettere dopo aver testato il mezzo libero non
necessariamente significa che il canale sia libero attorno all’area di ricezione.
Allo scopo di superare questi problemi, lo standard 802.11 utilizza un meccanismo di
Collision Avoidance (CA) unito ad uno schema di Positive Acknowledge, il cui
funzionamento è il seguente:
1. Una stazione in attesa di trasmettere ascolta il mezzo. Se il mezzo è occupato
allora rinvia la trasmissione. Se il mezzo è libero per un specifico intervallo di
tempo (chiamato Distributed Inter Frame Space (DIFS) [1] nello standard),
allora la stazione ha il permesso di trasmettere.
2. La stazione ricevente controlla il CRC del pacchetto ricevuto e manda un
pacchetto di conferma o di acknowledgement (ACK). La ricezione della
conferma denota alla stazione trasmittente che non si è verificata alcuna
collisione. Se il trasmittente non riceve la conferma allora ritrasmette il
pacchetto. È comunque fissato un numero massimo di ritrasmissioni oltre il
quale il pacchetto viene eliminato.
1.4.2 Virtual Carrier Sense
Al fine di ridurre la probabilità che si verifichi una situazione di collisione tra due
stazioni trasmittenti a causa dell’impossibilità di ciascuna stazione di sentire tutte le
altre, lo standard definisce un meccanismo denominato Virtual Carrier Sense [1]:
Una stazione in attesa di trasmettere un pacchetto per prima cosa trasmette un pacchetto
di controllo breve chiamato RTS (Request To Send), che include la sorgente, il
destinatario, e la durata della successiva trasmissione (p.e. il frame e il corrispondente
ACK), la stazione di destinazione risponde (se il mezzo è libero) con un pacchetto di
Capitolo 1 - Protocollo IEEE 802.11 14
controllo di replica chiamato CTS (Clear To Send), che include le stesse informazioni di
durata. Tutte le stazioni riceventi il pacchetto RTS e/o il CTS, attivano il loro indicatore
di Virtual Carrier Sense (chiamato NAV, che sta per Network Allocation Vector), per un
periodo di tempo dato dalla durata della trasmissione in atto contenuta nei pacchetti
RTS e CTS. Inoltre le stazioni usano queste informazioni assieme al Physical Carrier
Sense quando ascoltano il canale. Questo meccanismo riduce la probabilità di una
collisione su un’area di ricezione che è nascosta all’interno dell’intervallo di tempo
necessario alla trasmissione del pacchetto RTS poiché la stazione ascolta il CTS e
“riserva” il mezzo occupato fino alla fine della trasmissione in atto. L’informazione
sulla durata della trasmissione contenuta nell’RTS protegge inoltre l’area del
trasmettitore dalle collisioni durante l’ACK da parte di stazioni che sono fuori dall’area
di visibilità della stazione che deve fornire la conferma.
Figura 3: Trasmissione fra le stazioni A e B
Bisogna inoltre osservare che, a causa delle ridotte dimensioni dei pacchetti RTS e CTS,
il meccanismo riduce anche l’overhead dovuto alla collisione, poiché questi pacchetti,
essendo più corti, vengono riconosciuti più velocemente. (Questo è vero se il pacchetto
è significativamente più grande rispetto al RTS, quindi lo standard permette ai pacchetti
brevi di essere trasmessi senza RTS e CTS. Ciò è controllato da ogni stazione tramite un
parametro chiamato RTS Threshold).
Il diagramma Figura 3 mostra una trasmissione fra le stazioni A e B oltre all’attivazione
del NAV delle stazioni vicine.
Lo stato del NAV è combinato con il Physical Carrier Sense per indicare lo stato
occupato del mezzo.
Capitolo 1 - Protocollo IEEE 802.11 15
1.4.3 Acknowledgment a livello di MAC
Come menzionato prima, il livello di MAC effettua un Collision Detection attendendo
la ricezione di una conferma per ogni pacchetto trasmesso. I pacchetti che hanno più di
una destinazione, come quelli di tipo multicast, non sono soggetti al meccanismo di
conferma.
1.4.4 Fragmentation e Reassembly
I protocolli tipici di una rete locale utilizzano pacchetti aventi dimensioni di diverse
centinaia di bytes (il pacchetto Ethernet più lungo è pari a 1518 bytes). Ci sono però
diversi motivi che spingono all’utilizzo di pacchetti di dimensioni minori in un contesto
di tipo wireless:
La Bit Error Rate per un collegamento radio è elevata e la probabilità che la
trasmissione di un pacchetto non vada a buon fine è proporzionale alla
lunghezza di quest’ultimo.
Nel caso di un pacchetto alterato (da una collisione o dal rumore), ho che
l’overhead dovuto alla ritrasmissione è più piccolo per pacchetti brevi.
In un sistema Frequency Hopping non è garantita la continuità del mezzo
trasmissivo a causa dei salti di frequenza (nel nostro caso questi salti avvengono
ogni 20 ms). Riducendo la dimensione del pacchetto diminuisce la probabilità
che la trasmissione sia posticipata dopo il periodo di pausa (dwell time).
Tuttavia, è improponibile introdurre un nuovo protocollo che non possa trattare
pacchetti di 1518 bytes come quelli usati nelle reti Ethernet, per cui l’organismo di
standardizzazione ha deciso di risolvere il problema aggiungendo un semplice
meccanismo di frammentazione e riassemblaggio al livello di MAC.
Il meccanismo è costituito da un semplice algoritmo Send-and-Wait, dove la stazione
trasmittente non ha il permesso di trasmettere un nuovo pacchetto fino a che non si
verifica uno dei seguenti eventi:
1. Ricezione di un ACK per il pacchetto precedentemente trasmesso, o
2. Decide che il pacchetto è stato ritrasmesso troppe volte ed elimina l’intero frame
Si può notare che lo standard permette alla stazione di trasmettere altri pacchetti
(contenenti un altro indirizzo) prima di eseguire una ritrasmissione. Questo è
particolarmente utile quando una AP possiede diversi pacchetti in uscita per differenti
destinazioni ed una queste stazioni riceventi non risponde.
Capitolo 1 - Protocollo IEEE 802.11 16
Il seguente diagramma mostra un frame (MSDU) che viene diviso in diversi pacchetti
(MPDU):
Figura 4: Frammentazione del frame
1.4.5 Inter Frame Spaces
Lo standard definisce quattro tipi di spazi fra i frames (Inter Frame Spaces) [1], che
sono usati per fornire diverse priorità:
SIFS – Short Inter Frame Space, è usato per separare trasmissioni appartenenti a
singoli dialoghi ( p.e. Pacchetto-ACK), ed è il minimo Inter Frame Space. C’è
sempre al massimo una singola stazione che trasmette in qualsiasi istante, perciò
si assegna ad essa una priorità sopra tutte le altre stazioni. Questo valore è fisso
per il livello PHY ed è calcolato in modo che la stazione trasmittente sia in
grado di commutare nella modalità di ricezione e sia capace di decodificare i
pacchetti in arrivo. Il livello PHY di una FH 802.11 ha questo valore fissato a 28
microsecondi.
PIFS – Point Coordination IFS, è usato dall’Access Point (o Point Coordinator,
come definito in questo caso), per guadagnarsi l’accesso al mezzo prima di ogni
altra stazione. Questo valore è il SIFS più uno Slot Time (definito più avanti),
p.e. 78 microsecondi.
DIFS – Distribuited IFS, è l’Inter Frame Space usato da una stazione che
desidera iniziare una nuova trasmissione, il quale è calcolato come un PIFS più
uno Slot Time, p.e. 128 microsecondi.
EIFS – Extended IFS, che è il più lungo IFS usato da una stazione che ha
ricevuto un pacchetto che non può comprendere.
Questo è necessario al fine di prevenire che la stazione (che non sarebbe a
conoscenza dell’informazione sulla durata per la Virtual Carrier Sense) vada in
futuro in collisione con pacchetti appartenenti all’attuale comunicazione.
Capitolo 1 - Protocollo IEEE 802.11 17
1.4.6 Exponential Backoff Algorithm
Il backoff è un metodo ben noto per risolvere conflitti fra differenti stazioni in attesa di
accedere al mezzo. Il metodo richiede che ogni stazione scelga un numero casuale (n)
tra 0 e un dato numero, e aspetti per questo numero di slot prima di accedere al canale,
effettuando comunque il controllo sulla portante per vedere se qualche altra stazione ha
acceduto al mezzo precedentemente. Lo Slot Time è definito in modo tale che una
stazione sia sempre in grado di determinare se un’altra stazione ha avuto accesso al
mezzo all’inizio dello slot precedente. Ciò dimezza la probabilità di collisione. Il
backoff esponenziale ha il seguente significato: ogni volta che la stazione sceglie uno
slot per la trasmissione e si verfica una collisione, sarà esponenzialmente incrementato
il massimo valore (n) per la selezione casuale dello slot di trasmissione. Lo standard
802.11 definisce che un algoritmo di backoff esponenziale [1] che deve essere eseguito
nei seguenti casi:
Quando la stazione ascolta il mezzo per la prima trasmissione di un pacchetto ed
il mezzo è occupato,
Dopo ogni ritrasmissione, e
Dopo una trasmissione portata a termine con successo
L’unico caso in cui questo meccanismo non è usato è quando la stazione decide di
trasmettere un nuovo pacchetto ed il mezzo è rimasto libero per più di un periodo DIFS.
La figura seguente mostra uno schema di un meccanismo di accesso:
Figura 5: Meccanismo di accesso
Capitolo 1 - Protocollo IEEE 802.11 18
1.5 Metodi di accesso ad una BSS
Quando una stazione vuole accedere ad una BSS esistente (sia dopo l’accensione, lo
sleep mode, o solo poiché entra nell’area di una BSS), la stazione necessita di acquisire
la sincronizzazione relativa alle informazioni dall’Access Point (o da un’altra stazione
nel “ad-hoc mode” discusso più avanti).
La stazione può ricevere questa informazione in due modi:
1. Passive Scanning: In questo caso la stazione aspetta di ricevere un Beacon
Frame dall’AP (il Beacon Frame è un frame spedito periodicamente dall’AP
contenete l’informazione relativa al sincronismo di trasmissione dei dati), o
2. Active Scanning: In questo caso la stazione tenta di localizzare un Access Point
trasmettendo un Probe Request Frame e attendendo il Probe Response Frame
dall’AP.
Entrambi i metodi sono validi. La scelta del metodo è presa in accordo al compromesso
tra prestazioni e consumo di potenza.
1.5.1 Il Processo di Autenticazione
Una volta che la stazione ha localizzato un Access Point, e decide di unirsi al suo BSS,
essa inizia il Processo di Autenticazione. In questa fase si ha uno scambio di
informazioni fra l’AP e la stazione interessata atta a verificare la relativa conoscenza di
una data Password.
1.5.2 Il Processo di Associazione
Una volta che la stazione è autenticata, inizia il processo di associazione. In questa fase
le informazioni scambiate hanno lo scopo di definire le caratteristiche della stazione e le
capacità offerte dalla BSS. Tutto ciò consente al DSS, ovvero l’insieme degli AP, di
ottenere informazioni circa l’attuale posizione della stazione espressa come
appartenenza ad una particolare BSS ovvero come associazione ad un determinato
Access Point. Una stazione è in grado di trasmettere e di ricevere frames di dati solo
quando il processo di associazione è terminato con successo.
Capitolo 1 - Protocollo IEEE 802.11 19
1.6 Roaming
Il roaming è il processo che consente lo spostamento di una stazione da una cella (o
BSS) ad un’altra senza perdita della connessione. Questa funzione è simile all’handover
dei telefonini cellulari, con due principali differenze:
1. In una rete LAN basata su un sistema di trasmissione a pacchetti, la transizione
da una cella ad un’altra deve avvenire tra la trasmissione di un pacchetto e
quella del successivo, contrariamente a quanto accade nella telefonia mobile
dove la transizione può avvenire durante una conversazione telefonica (che non
ha interruzioni), questo rende il roaming delle LAN di più semplice
realizzazione, ma
2. In un sistema telefonico, una disconnessione temporanea può non influire sulla
conversazione, mentre in un sistema a pacchetti questo riduce
significativamente le prestazioni perché la ritrasmissione è gestita dai livelli
superiori dello stack protocollare.
Lo standard 802.11 non definisce come il roaming deve essere realizzato, ma
caratterizza un modo di funzionamento di base: La stazione in movimento attraverso il
meccanismo di Passive Scanning o quello di Active Scanning rileva quali Access Point
sono disponibili per la connessione. In funzione del livello del segnale ricevuto dagli
AP decide a quale è più conveniente associarsi e attraverso un meccanismo di re-
associazione definito dallo standard, può eliminare l’associazione al vecchio AP e
associarsi a quello nuovo. Il processo di re-associazione consta di uno scambio di
informazioni tra i due AP interessati allo scambio di utente, attraverso il Distribution
System, quindi senza appesantire la comunicazione attraverso il canale radio.
Capitolo 1 - Protocollo IEEE 802.11 20
1.7 Il mantenimento della sincronizzazione
Le stazioni hanno inoltre la necessità di mantenere la sincronizzazione, utilizzata per
l’hopping (cioè nei salti di frequenza) ed per altre funzioni come il Power Saving o
risparmio energetico. In un sistema BSS, questo è ottenuto provvedendo
all’aggiornamento del clock delle singole stazioni in accordo con il seguente
meccanismo:
L’AP trasmette periodicamente un Beacon Frame [1]. Questo frame contiene il valore
del clock interno all’AP al momento della trasmissione. Osserviamo che questo
rappresenta il momento in cui la trasmissione realmente avviene e non il momento in
cui frame immesso nella coda di trasmissione. Poiché il Beacon Frame è trasmesso
usando le regole CSMA, la trasmissione in corso può essere significativamente
ritardata.
Le stazioni riceventi controllano il valore dei loro clock al momento del ricevimento del
frame e lo correggono per mantenere la sincronizzazione con il clock dell’AP. Questo
meccanismo è di fondamentale importanza perché previene lo slittamento del clock che
si può verificare dopo alcune ore di funzionamento del sistema.
1.8 Sicurezza in una rete IEEE 802.11
La sicurezza è uno delle prime preoccupazioni che si hanno quando si installa una LAN
di tipo wireless. Il comitato che ha sviluppato lo standard 802.11 ha risposto a questa
incessante domanda di sicurezza implementando un meccanismo denominato WEP
(Wired Equivalent Privacy) [1]. I due scopi fondamentali di questo meccanismo sono:
Prevenire l’accesso alle risorse di rete da parte di apparecchiature LAN wireless
simili.
Impedire l’appropriarsi del traffico della LAN wireless da parte di unità esterne
(eavesdropping) [1].
1.8.1 Prevenzione dall’accesso alle risorse di rete
Questo è possibile grazie all’uso di un meccanismo di autenticazione in base al quale
qualunque stazione che voglia comunicare deve dimostrare la conoscenza della chiave
di autenticazione correntemente in uso. Tale meccanismo è simile a quello adottato
Capitolo 1 - Protocollo IEEE 802.11 21
nelle reti LAN wired, nel senso che un intruso deve entrare nei locali (usando quindi
una chiave “fisica”) per connettere la propria workstation alla rete LAN wired.
1.8.2 Eavesdropping
L’Eavesdropping è prevenuto grazie all’utilizzo dell’algoritmo WEP costituito da un
generatore di numeri pseudo casuali inizializzato per mezzo di una chiave segreta
condivisa. Questo PRNG (Pseudo Random Number Generator) produce in uscita una
sequenza chiave di bits pseudo casuali di lunghezza pari al più grande pacchetto
consentito dal sistema; questa chiave viene combinata con il pacchetto in uscita o in
entrata producendo il pacchetto finale da trasmettere o decodificando quello in arrivo.
Il WEP è un semplice algoritmo basato su RC4 RSA che ha le seguenti proprietà:
Notevole robustezza: Un attacco brutale a questo algoritmo è difficile poiché
ciascun frame è spedito con un vettore di inizializzazione che riavvia il PRNG
per ciascun frame.
Mantenimento della sincronizzazione: L’algoritmo di ri-sincronizzazione è
eseguito ad ogni frame. Questo è necessario poiché si lavora in un sistema di
tipo wireless, dove i pacchetti potrebbero andare persi (questo è tipico di tutte le
LAN).
1.9 Power Saving
Le LAN di tipo wireless sono tipicamente riferite ad applicazioni di tipo mobile. In
questi tipi di applicazione, l’energia delle batteria è una risorsa importante e limitata.
Questo è il motivo poiché lo standard 802.11 gestisce direttamente il problema del
Power Saving e definisce un intero meccanismo che permette alle stazioni di andare in
un modo definito di sleep (a basso consumo di potenza) per lunghi periodi di tempo
senza perdite di informazioni.
La principale idea che sta dietro al meccanismo di Power Saving è che l’AP conservi
una lista continuamente aggiornata delle stazioni al momento lavoranti nel modo di
Power Saving, e mantenga nel buffer di uscita i pacchetti indirizzati a queste stazioni
fino a quando queste stazioni richiedono i pacchetti mandando una richiesta di polling,
o fino a quando cambiano il loro modo di funzionamento.
Capitolo 1 - Protocollo IEEE 802.11 22
Come parte del Beacon Frame, gli AP trasmettono periodicamente informazioni circa
quali stazioni nel modo Power Saving hanno frames nel buffer all’AP. Queste stazioni
escono dal modo Power Saving per ricevere il Beacon Frame: se c’è indicazione che dei
frames immagazzinati nell’AP sono in attesa di consegna, allora la stazione interessata
resta attiva e manda un messaggio di polling all’AP per ricevere questi frames.
Messaggi di tipo Multicasts e Broadcasts sono immagazzinati nell’AP e trasmessi ad
istanti pre definiti (ogni DTIM), quando tutte le stazioni in Power Saving che vogliono
ricevere questo tipo di frames sono attive.
1.10 Frames 802.11: Tipi e struttura
Ci sono tre tipi principali di frame:
Data Frames: sono utilizzati per la trasmissione di dati
Control Frames: sono usati per il controllare l’accesso al mezzo (p.e. RTS, CTS
e ACK), e
Management Frames: sono frames che vengono trasmessi nello stesso modo dei
data frames per scambiare informazioni di management, ma sono inoltrati dai
livelli superiori (p.e. beacon frames).
Ogni tipo di frame è suddiviso in due differenti sottotipi, in accordo con le loro
specifiche funzioni.
Tutti i frames dell’802.11 sono composti dalle seguenti parti:
Preambolo PLCP Header MAC Data CRC
Figura 6: Formato di un frame
Preambolo
Questa parte dipende dal PHY ed include:
Sincronismo: una sequenza di 80 bit di alternanze di zero e uno, usata dalla
circuiteria PHY per selezionare l’antenna appropriata (se ne ho più di una), e per
ottenere la correzione dell’offset della frequenza e la sincronizzazione con il
timing del pacchetto ricevuto.
SFD: Un delimitatore di inizio frame che consiste in un pattern binario di 16 bit
(0000 1100 1011 1101) che viene adoperato per definire il timing di frame.
Capitolo 1 - Protocollo IEEE 802.11 23
PLCP Header
Il PLCP Header è sempre trasmesso ad 1 Mbit/s e contiene informazioni logiche
utilizzate dallo livello PHY per la codifica del frame. Consiste di:
PLCP_PDU Lenght Word: rappresenta il numero di bytes contenuti in un
pacchetto. Questo è utile al PHY per trovare correttamente la fine del pacchetto.
PLCP Signaling Field: attualmente contiene solo le informazioni sulla velocità
codificate in incrementi di 0.5 MBps da 1 Mbit/s a 4.5 Mbit/s.
Header Error Check Field: è un campo a 16 bit contenete il CRC di rivelazione
di errore.
MAC Data
La figura seguente mostra un formato generale del frame MAC. Parte di questi campi
sono presenti solo in parte rispetto ai frames descritti più avanti.
Figura 7: Formato del frame MAC
1.10.1 Frame Control Field
Il campo Frame Control contiene le seguenti informazioni:
Figura 8: Campo "Frame Control"
Capitolo 1 - Protocollo IEEE 802.11 24
Versione del Protocollo
Questo campo consiste in 2 bits che sono invarianti come dimensione e utilizzati dalle
successive versioni dello standard 802.11, e sarà utilizzato per riconoscere possibili
versioni future. Nella versione attuale dello standard il valore è fissato a 0.
Tipo e Sottotipo
Questi 6 bits definiscono il tipo ed il sottotipo del frame come indicato nella tabella
seguente:
Type value b3 b2 Type description Subtype value
b7 b6 b5 b4 Subtype description
00 Management 0000 Association Request 00 Management 0001 Association Response 00 Management 0010 Association Request 00 Management 0011 Reassociation Response 00 Management 0100 Probe Request 00 Management 0101 Probe Response 00 Management 0110-0111 Reserved 00 Management 1000 Beacon 00 Management 1001 ATIM 00 Management 1010 Disassociation 00 Management 1011 Authentication 00 Management 1100 Deauthentication 00 Management 1101-1111 Reserved 01 Control 0000-0001 Reserved 01 Control 1010 PS-Poll 01 Control 1011 RTS 01 Control 1100 CTS 01 Control 1101 ACK 01 Control 1110 CF End 01 Control 1111 CF End + CF-ACK 10 Data 0000 Data 10 Data 0001 Data + CF-ACK 10 Data 0010 Data + CF-Poll 10 Data 0011 Data + CF-ACK + CF-Poll 10 Data 0100 Null Function (no data) 10 Data 0101 CF-ACK (no data) 10 Data 0110 CF-Poll (no data) 10 Data 0111 CF-ACK + CF-Poll (no data) 10 Data 1000-1111 Reserved 11 Reserved 0000-1111 Reserved
Tabella 1: Tipo e Sottotipo
Capitolo 1 - Protocollo IEEE 802.11 25
ToDS
Questo bit è imposto al valore alto quando il frame è indirizzato all’AP per l’inoltro al
Distribution System (incluso il caso che la stazione destinataria sia nella stessa BSS, e
l’AP stia ritrasmettendo il frame). Il bit è imposto a zero in tutti gli altri frames.
FromDS
Questo bit è imposto ad uno quando il frame è ricevuto dal Distribution System.
More Fragments
Questo bit è a valore alto quando ci sono più pacchetti appartenenti allo stesso frame
che seguiranno l’attuale pacchetto.
Retry
Questo bit indica che questo pacchetto è una ritrasmissione di pacchetto
precedentemente trasmesso. È usato dalla stazione ricevente per riconoscere la
trasmissione di frames duplicati che possono succedere quando il pacchetto di conferma
va perso.
Power Management
Indica lo stato di Power Management in cui la stazione andrà dopo la trasmissione di
questo frame. È usato dalle stazioni che stanno cambiando stato da Power Save a attivo
e viceversa.
More Data
Il bit è usato sia per il Power Management che dall’AP per indicare che ci sono altri
frames immagazzinati nel buffer per questa stazione. La stazione può decidere di
utilizzare questa informazione per continuare il polling o perfino cambiare stato in
modo attivo.
WEP
Indica che il corpo del frame è criptato in accordo all’algoritmo WEP.
Order
Il bit indica che il frame è stato spedito usando la classe di servizi Strictly-Ordered.
Capitolo 1 - Protocollo IEEE 802.11 26
1.10.2 Duration/ID
Questo campo ha due significati dipendenti dal tipo di frame:
Nei messaggi Power-Save Poll indica l’ID della stazione
In tutti gli altri frames il valore rappresenta il valore della durata della
trasmissione usata nel calcolo del NAV.
1.10.3 Address Fields
Un frame può contenere fino a 4 indirizzi, condizionatamente al valore dei bits ToDS e
FromDS definiti nel Control Field, come segue:
Address-1 è sempre il Recipient Address (p.e. la stazione BSS che è il diretto
destinatario del pacchetto). Se il ToDS è alto, corrisponde all’indirizzo AP, se il
ToDS è basso allora è l’indirizzo della stazione di arrivo.
Address-2 è sempre il Trasmitter Address (p.e. la stazione BSS che sta
fisicamente trasmettendo il pacchetto). Se il FromDS è alto, rappresenta
l’indirizzo dell’AP, se è basso allora è l’indirizzo della stazione.
Address-3 è in molti casi è il rimanente, mancante indirizzo. Nei frames con
FormDS a uno, Address-3 rappresenta l’indirizzo originale della sorgente,
mentre se il ToDS è a uno allora l’Address-3 indica l’indirizzo del destinatario.
Address-4 è usato in casi speciali dove è implementato un Wireless Distribution
System, e il frame è stato trasmesso da un Access Point ad un altro. In questi
casi sia il ToDS che il FromDS sono al valore alto, in modo che siano mancanti
sia l’indirizzo originale della destinazione che quello della sorgente.
La tabella seguente riassume l’uso dei indirizzi differenti in accordo con lo stato dei bits
ToDS e FromDS:
To DS From DS Address 1 Address 2 Address 3 Address 4
0 0 DA SA BSSID N/A
0 1 DA BSSID SA N/A
1 0 BSSID SA DA N/A
1 1 RA TA DA SA
Tabella 2: Address Fields
Capitolo 1 - Protocollo IEEE 802.11 27
1.10.4 Sequence Control
Il campo Sequenze Control è usato per definire l’ordine dei diversi pacchetti apparteneti
allo stesso frame, e per riconoscere possibili pacchetti duplicati. Consiste di due
sottocampi, Fragment Number e Sequence Number, che indicano il frame ed il numero
del pacchetto nel frame.
1.10.5 CRC
Il CRC è un campo contenente un codice di rivelazione di errore a 32 bits (Cyclic
Redundancy Check).
1.11 I formati dei Frames più comuni
1.11.1 Formato del Frame RTS
Il frame RTS è il seguente:
Figura 9: Formato del frame di tipo RTS
Il RA del frame RTS è l’indirizzo della STA direttamente destinataria del prossimo
frame di dati o di tipo management.
Il TA è l’indirizzo della STA trasmittente il frame RTS.
Il valore Duration è il periodo di tempo, in microsecondi, richiesto per la trasmissione
del prossimo frame di dati o di tipo management, più un frame CTS, più un frame ACK
e più tre intervalli SIFS.
Capitolo 1 - Protocollo IEEE 802.11 28
1.11.2 Formato del Frame CTS
Il frame CTS è il seguente:
Figura 10: Formato del frame di tipo CTS
Il Receiver Address (RA) del frame CTS è copiato del campo Trasmitter Address (TA)
del precedente frame RTS al quale il CTS è una risposta.
Il valore Duration è ottenuto dal campo Duration del precedente frame RTS, meno il
periodo, in microsecondi, richiesto per trasmettere il frame CTS ed il suo intervallo
SIFS.
1.11.3 Formato del Frame ACK
Il frame ACK è il seguente:
Figura 11: Formato del frame di tipo ACK
Il Receiver Address del frame ACK è copiato dal campo Address-2 del precedente
frame.
Se il bit More Fragment nel campo del Frame Control del frame precedente era basso, il
vaolr Duration è posto a zero, altrimenti il valore Duration è ottenuto dal campo
Duration del frame precedente, meno il periodo, in microsecondi, richiesto alla
trasmissione del frame ACK a del suo intervallo SIFS.
Capitolo 1 - Protocollo IEEE 802.11 29
1.12 Point Coordination Function (PCF)
Oltre ai Distributed Coordination Function di base, c’è un Point Coordination Function
[1] opzionale, che può essere utilizzato per implementare servizi time-bounded, come le
trasmissioni di voce o di video.
Questo Point Coordination Function fa uso di priorità alte che l’Access Point può
ottenere tramite l’uso di Inter Frame Space (PIFS) più piccoli.
Grazie all’utilizzo di questo accesso ad alta priorità, l’Access Point gestisce le richieste
di polling alle stazioni per trasmissioni di dati, controllando così l’accesso al mezzo. Al
fine di mantenere un regolare accesso al mezzo da parte di tutte le stazioni, c’è un
provvedimento da parte dell’AP che deve lasciare sufficiente intervallo di tempo per il
Distributed Access intermedio al PCF.
1.13 Reti Ad-hoc
In alcune circostanze gli utenti vorrebbero costruire reti LAN wireless senza una
infrastruttura ( più specificatamente senza un Access Point). Questo può includere il
trasferimento di file tra due utenti di computer notebook, una riunione esterna
all’ufficio, ecc.
Lo standard 802.11 gestisce questa problematica definendo un modo di funzionamento
“ad-hoc”. In questa situazione non si utilizzano Access Point e parte delle funzionalità
di un AP sono trasferite alle stazioni degli utenti (come la Beacon Generation, la
sincronizzazione, ecc.). Altre funzionalità dell’AP non sono implementate (come la
trasmissione fra due stazioni non nel campo utile, o il Power Saving).
Capitolo 1 - Protocollo IEEE 802.11 30
1.14 Il livello fisico (PHY)
Il livello fisico [3] è composto da due sottolivelli denominati il protocollo di
convergenza del livello fisico (PLCP) ed il sistema dipendente dal mezzo fisico (PMD)
[1]. La relazione tra questi sottolivelli con il livello MAC è mostrato nella figura
seguente.
Livello OSI
Data Link
Logical Link Control
Entità Sottolivello
MAC
Entità di management
del sottolivello MAC
Entità di
management
della stazione Livello OSI
Fisico
PLCP (PHY Layer
Convergence
Protocol) Entità di management
del sottolivello PHY PMD (Physical
Medium Dependent
Layer)
Figura 12: Modello di riferimento OSI e Struttura Livelli del Protocollo IEEE 802.11
Il livello PMD si interfaccia direttamente con il mezzo fisico, che in questo caso
consiste nella trasmissione di un segnale a Radio Frequenza o ad Infrarossi.
Il sottolivello PMD riceve in ingresso uno stream di dati dal PLCP e lo converte in un
formato che può essere trasmesso ad un’altra STA. Il sottolivello PLCP è progettato per
convertire i dati in uscita dal sottolivello MAC in un formato che possa essere trasmesso
dal sottolivello PMD. In generale, ogni configurazione del livello PMD richiede uno
specifico PLCP permettendo al livello MAC di mantenersi indipendente dal livello
PHY. Il PMD, nel protocollo 802.11, permette l’utilizzo di tre diversi progetti di
gestione del livello fisico, il Frequency Hopping Spread Spectrum (FHSS), il Direct
Sequence Spread Spectrum (DSSS) [3] e la trasmissione ad Infrarossi.
Capitolo 1 - Protocollo IEEE 802.11 31
1.14.1 Livello PLCP di tipo FHSS
Il PLCP FHSS [1] riceve i frames dati del livello MAC, chiamati MPDU, e li incapsula
nel payload dei frames PLCP per poi essere utilizzati dal sottolivello PMD. Il formato
del frame dell’unità dati del protocollo PLCP (PPDU) è descritto nella figura seguente. I
tre principali componenti del frame PLCP sono il Preambolo PLCP, l’Header PLCP ed
il frame MAC passato al PLCP, denominato MPDU o unità dati di servizio PLCP
(PSDU).
80 bits 16 bits 12 bits 4 bits 16 bits 1-4095 ottetti
SYNC SFD PLW PSF HEC MPDU (Whitened PSDU)
Preambolo PLCP Header PLCP
Figura 13: Formato del frame FHSS PLCP
Il preambolo PLCP è formato dai campi SYNC e Start Frame Delimiter (SFD). Il
campo SYNC è costituito da un pattern 0101… di 80 bits. Questo pattern di bits
consente all’apparato circuitale PHY (demudolatore) di sincronizzarsi con il frame dati
e di aiutare il livello PHY di rilevare l’inizio del frame trasmesso. Il campo SFD
contiene il pattern di bits 0000 1100 1011 1101 e permette di stabilire un punto di
riferimento per il timing del frame. Il primo bit del frame PPDU è quello che segue ai
bits dell’Header PLCP.
L’Header PLCP contiene tre campi, il PSDU Length Word (PLW), il PLCP Signaling
Field (PSF) e l’Header Error Check (HEC). Il campo PLW è di 12 bits e definisce il
numero di ottetti di dati contenuti nel PSDU. Il PLW identifica in modo preciso l’ultimo
bit del frame PPDU e quindi l’inizio del frame successivo. Il campo PSF è a 4 bits e
definisce il data rate alla quale avverrà la trasmissione del frame PSDU. Un bit di questo
campo è riservato ed i rimanenti tre bits definiscono il data rate da 1 Mbps (000) a 4.5
Mbps(111) con incrementi di 0.5 Mbps. Per finire, il campo HEC contiene un codice a
16 bits di rilevazione d’errore che è applicato a protezione dei soli campi PLW e PSF.
La rilevazione di errore dell’intero PSDU è fornita dal livello MAC.
Il frame MAC viene processato da uno scrambler “frame-sincrono” a 127 bits prima di
essere trasferito al PLCP. Questa operazione ha come risultato il “whitened PSDU”. Lo
scopo di questo processo di “whitening” è di rendere casuale il pattern dei bits da
trasmettere, riducendo qualsiasi bias DC che si manifesta nella trasmissione di lunghe
Capitolo 1 - Protocollo IEEE 802.11 32
stringhe di uno o di zero. Un ulteriore vantaggio sta nel fatto di rendere l’eavesdropping
(vedi Paragrafo 1.8.2) più difficoltoso poiché i dati, per ritornare utili, devono essere
estratti tramite un de-scrambler.
Il livello PHY Frequency Hopping Spread Spectrum opera nella banda ISM a 2.4 GHz
[4]. La banda usata ed il numero di canali permessi varia in relazione alle diverse
località nel mondo (nel nord america, per esempio, la porzione di banda permessa è
compresa tra i 2.402 e i 2.480 GHz).
Ci sono 79 canali definiti in un intervallo di frequenze di funzionamento permesse, con
la frequenza centrale di canale spaziata a intervalli di 1 MHz. Il concetto generale è che
il PMD trasmette i frames ad una frequenza per un tempo specifico, chiamato dwell, e
quindi “salta” (hops) ad un nuovo canale di trasmissione durante il successivo intervallo
dwell. Questo continuo cambiamento di canale (“hopping”) riduce gli effetti della
interferenza dei canali adiacenti (narrow band interference) poiché ogni ritrasmissione,
dovuta alla perdita di un frame per interferenza, avverrà verosimilmente ad una
frequenza diversa dalla prima trasmissione grazie alla sequenza di hopping. Le
trasmissioni a bande adiacenti usate nell’FHSS non evidenzia problemi dal rumore a
basso livello della broadband. L’hopping dei canali avviene in accordo ad una
predefinita sequenza di hops, con un minimo salto in frequenza di 6 MHz ed una
minima frequenza di salti di 1 hop ogni 2.5 secondi. Ci sono tre insiemi di sequenze,
ognuno dei quali è costituito da 26 sequenze [1]. Lo standard definisce la procedura
usata per calcolare il canale successivo, nella sequenza di hopping, con l’intento di
minimizzare l’interferenza tra le LAN wireless adiacenti.
L’FHSS supporta velocità di trasmissione sia di uno che di due Mbps. Il Preambolo
PLCP e l’Header PLCP sono sempre trasmessi alla velocità base di un Mbps per
assicurare che tutte le STA possano sincronizzarsi e leggere l’header. Se nell’header
viene indicato che i dati verranno trasmessi ad una velocità (data rate) non supportata
dalla STA ricevente, la STA scarterà il PPDU e riportarà un messaggio d’errore “data
rate non supportata” (unsupported data rate). L’FHSS usa una modulazione di tipo
Gaussian Frequency Shift Key a due livelli (2GFSK) per la trasmissione ad un Mbps.
Questa tecnica adotta lo spostamento della frequenza di portante, dalla specifica
frequenza centrale del canale in uso, di una deviazione di frequenza minima Fd. Fd è
determinato dalle misurazioni prese durante gli ultimi otto bits del campo SYNC del
Preambolo. Un “1” è codificato da uno spostamento positivo dalla frequenza centrale
Capitolo 1 - Protocollo IEEE 802.11 33
del canale di Fd (minimo di 110 kHz), e uno “0” è codificato, viceversa, da uno
spostamento negativo.
L’implementazione della velocità opzionale di due Mbps richiede l’utilizzo schema a
modulazione di tipo Gaussian frequency shift keying (4GFSK). Il PMD riceve dati alla
velocità di 2 Mbps invece che a 1 Mbps come nello schema a bassa velocità. I dati in
arrivo sono convertiti in simboli, ognuno dei quali rappresenta 2 bits di dati. Il risultato
è che la velocità di trasmissione dei simboli rimane ad un Mbps, ma il data rate alla
decodifica è incrementato a due Mbps. Questi simboli sono codificati grazie alla
definizione di quattro possibili spostamenti in frequenza rispetto alla frequenza centrale
di canale a differenza dei due livelli usati nello schema 2GFSK analizzato in
precedenza. I simboli sono codificati nel modo seguente:
Simbolo Deviazione dalla frequenza centrale
10 +3/2 * Fd
11 +1/2 * Fd
01 -1/2 * Fd
00 -3/2 * Fd
Tabella 3: Codifica dei simboli della FHSS 4GFSK
Fd è una funzione della differenza tra le frequenze a “10” e “00”.