Il livello MAC per le reti IEEE 802.11 ha due modalità operative:
-
DCF (Distributed Coordination Function), che tutti devono supportare, basato sulle collisioni;
-
PCF (Point Coordination Function), opzionale, in cui il controllo delle trasmissioni è affidato all’access point (non avvengono collisioni).
PCF e DCF possono coesistere nella stessa cella.
DCF
La modalità DCF (Distributed Coordination Function) non usa alcun tipo di controllo centrale.
Il metodo di accesso usato si chiama CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance).
Non si può usare CSMA/CD perchè non può trasmettere e contemporaneamente ascoltare su una singola frequenza.
Per evitare le collisioni (interferenze) il mittente ascolta il canale prima di trasmettere; in realtà bisogna individuare le interferenze sul ricevente e non sul mittente: due stazioni lontane, che non interferiscono tra loro, potrebbero trasmettere contemporaneamente verso la stessa stazione, causando una collisione (problema della stazione nascosta), oppure una stazione potrebbe aspettare a trasmettere perché rileva una trasmissione in corso, ma in realtà potrebbe trasmettere perché la stazione ricevente è libera e la trasmissione verso questa non creerebbe collisioni (problema della stazione esposta).
In pratica, quando una stazione deve trasmettere un frame verso una certa destinazione, fa in modo che la destinazione emetta un piccolo frame, in modo che le stazioni vicine possano rilevare la trasmissione ed astenersi dal trasmettere per evitare collisioni.
La stazione mittente sollecita la stazione di destinazione mandandole un frame che la avverte dell’imminente spedizione di dati e della lunghezza del frame da spedire. La destinazione invia un piccolo frame di risposta in cui ricopia la lunghezza del frame che sta aspettando. Quando questo frame torna al mittente ha inizio la trasmissione del frame di dati.
Le stazioni vicino al mittente sentono il primo frame di avvertimento e sanno che devono aspettare fino alla conclusione della trasmissione; le stazioni vicino alla destinazione sentono il frame di risposta e anch’esse sanno che devono aspettare fino alla conclusione della trasmissione.
Comunque possono verificarsi delle collisioni, per esempio perché due stazioni spediscono insieme un messaggio di avvertimento; in questo caso le stazioni aspettano prima di riprovare usando l’algoritmo di regressione binaria esponenziale (backoff).
Per velocizzare le trasmissioni i frame di dati vengono confermati con un ack. Il mittente quando invia un frame fa partire un timer e, se allo scadere del timer non ha ancora ricevuto l’ack, rispedisce il frame.
Il protocollo che introduce gli ack, insieme ad altri miglioramenti, è chiamato MACAW (Multiple Acces with Collision Avoidance for Wireless.)
Per risolvere il problema dei canali rumorosi (molte interferenze) i frame possono essere frammentati in parti più piccole ognuna con checksum di controllo; i frammenti sono numerati e ricevono l’ack individualmente con un protocollo stop and wait, così si possono ritrasmettere solo i frammenti danneggiati invece dell’intero frame.
PCF
La modalità PCF (Point Coordination Function) usa l’access point per controllare tutta l’attività della cella.
L’access point interroga le stazioni chiedendo se hanno frame da trasmettere (lo standard però non definisce la frequenza delle interrogazioni, né l’ordine o l’eventuale gestione di priorità).
L’access point invia periodicamente un frame di segnalazione con i parametri di sistema che permette alle nuove stazioni di registrarsi al servizio di interrogazione; quando una stazione si registra riceve una frazione di banda che permette di garantire la qualità del servizio.
Per migliorare la gestione dell’energia (e quindi la durata delle batterie dei portatili collegati alla rete) l’access point può obbligare una stazione mobile ad attivare la modalità di sospensione fino a quando non interviene l’utente o lo stesso access point; l’access point deve memorizzare in un buffer i dati diretti alle stazioni che sono state disattivate; i frame memorizzati vengono inviati alle stazioni al loro risveglio.
Ci sono tre diversi tipi di frame: dati, controllo e gestione.
Formato del frame di dati:
-
2 byte Frame control;
-
2 byte Durata: indica per quanto tempo il frame e il suo ack occuperanno il canale;
-
6 byte Indirizzo 1: sorgente;
-
6 byte Indirizzo 2: destinazione;
-
6 byte Indirizzo 3: access point che gestisce il traffico tra celle (i frame possono entrare e uscire dalla cella attraverso un access point);
-
2 byte Sequenza: numerazione dei frammenti; 12 bit identificano il frame e 4 il frammento;
-
6 byte Indirizzo 4: access point di arrivo del traffico tra celle;
-
0-2312 byte Dati;
-
4 byte Checksum.
Bit del frame control:
-
2 bit Versione del protocollo;
-
2 bit Tipo (dati, controllo o gestione);
-
4 bit Sottotipo (subtype), per esempio RTS, CTS o ACK;
-
1 bit To DS: frame che va verso il sistema di distribuzione tra celle (es. Ethernet);
-
1 bit From DS: frame che proviene dal sistema di distribuzione tra celle (es. Ethernet);
-
1 bit MF: indica se seguiranno altri frammenti;
-
1 bit Retry: contrassegna la ritrasmissione di un frame trasmesso precedentemente;
-
1 bit Pwr: (power management) usato dall’access point per attivare e disattivare la modalità di sospensione della stazione mobile;
-
1 bit More: indica che il mittente ha altri frame per il ricevente;
-
1 bit W: indica che il corpo del frame è cifrato con WEP;
-
1 bit O: indica che la sequenza di frame con questo bit attivo va elaborata rispettando l’ordine.
I frame di gestione sono simili, ma non hanno gli indirizzi relativi agli access point perché sono limitati a una singola cella.
I frame di controllo sono più corti, hanno solo uno o due indirizzi e non hanno né dati né numeri di sequenza; l’informazione chiave è in subtype e di solito è RTS, CTS o ACK.