Il livello Collegamento di dati della norma 802.11 è composto da due substrati: il livello di controllo del collegamento logico (Logical Link Control, sigla LLC) e il livello di controllo di accesso al supporto (Media Access Control o MAC).
Il livello MAC definisce due metodi di accesso diversi: il metodo CSMA/CA che utilizza la Distributed Coordination Function (DCF) e il Point Coordination Function (PCF).
In una rete locale Ethernet classica, il metodo di accesso utilizzato per i terminali è il CSMA/CD (Carrier Sense Multiple Access with Collision Detect), per cui ogni terminale è libero di comunicare in qualsiasi momento. Ogni terminale che invia un messaggio verifica che nessun altro messaggio sia stato inviato allo stesso momento da un altro terminale. Se è questo il caso, i due terminali aspettano per un tempo aleatorio prima di ricominciare ad emettere.
In un ambiente senza fili questa procedura non è possibile dato che le due stazioni comunicanti con un ricettore non si sentono reciprocamente per forza in ragione del loro raggio di portata. Così la norma 802.11 propone un protocollo simile detto CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance).
Il protocollo CSMA/CA usa un meccanismo per evitare le collisioni basato sul principio di ricevuta di ritorno reciproca tra l'emittente e il ricevente:
La stazione che vuole emettere ascolta la rete. Se la rete è occupata, la trasmissione sarà differita. In caso contrario, se il media è libero per un tempo dato (detto DIFS per Distributed Inter Frame Space), allora la stazione può emettere. La stazione trasmette un messaggio detto Ready to Send (sigla RTS che significa pronto ad emettere) che contiene delle informazioni sul volume dei dati che vuole emettere e sulla velocità di trasmissione. Il ricevente (generalmente un punto di accesso) risponde un Clear To Send (CTS, che significa Il campo è libero per emettere), poi la stazione comincia l'emissione dei dati.
Alla ricezione di tutti i dati emessi dalla stazione, il ricevente invia una ricevuta di ritorno (ACK). Tutte le stazioni vicine aspettano allora per un periodo di tempo che considera essere necessario alla trasmissione del volume di informazioni da emettere alla velocità annunciata.
Il livello MAC del protocollo 802.11 offre un meccanismo di controllo di errore che permette di verificare l'integrità del frame. Si tratta di una differenza fondamentale con lo standard Ethernet. In effetti Ethernet non propone nessun sistema di rilevamento o di correzione degli errori, dato che questo compito è lasciato ai protocolli di trasporto del livello superiore (TCP).
In una rete senza fili il tasso di errore è più elevato, ragione per cui un controllo di errore è stato integrato a livello del livello collegamento di dati. Il controllo di errore è basato sul polinomio di grado 32 che segue:
x32+x26+x23+x22+x16+x12+x10+x8+x7+x5+x4+x2+x+1
D'altra parte il tasso di errore di trasmissione sulle reti senza fili aumenta generalmente con dei pacchetti di dimensione importante, ragione per cui la norma 802.11 offre un meccanismo di frammentazione, che permette di scomporre un frame in più pezzi (frammenti).
Lo standard 802.11 definisce il formato dei frame scambiate. Ciascun frame è costituito da un'intestazione (detta MAC header, lunga 30 byte), da un corpo e da un FCS (Frame Sequence Check) che permette la correzione di errore:
FC (2) |
D/ID (2) |
Indirizzo 1 (4 byte) |
Indirizzo 2 (4 byte) |
Indirizzo 3 (4 byte) |
SC (2) |
Indirizzo 4 (4 byte) |
|
Corpo della frama (da 0 a 2312 byte)
|
Secondo la descrizione dei campi, FC (Frame Control, in italiano controllo di frame). Questo campo di due byte è costituito dalle seguenti informazioni:
Versione del protocollo (2 bits) |
Tipo (2 bits) |
Sotto tipo (4 bits) |
|||||
To DS (1 bit) |
From DS (1 bit) |
More Frag (1 bit) |
Retry (1 bit) |
Power Mgt (1 bit) |
More Data (1 bit) |
WEP (1 bit) |
Order (1 bit) |
Versione del protocollo, questo campo di 2 bit permetterà di considerare le evoluzioni della versione dello standard 802.11. Il valore è pari a zero per la prima versione;
Tipo e Sotto tipo, questi campi, rispettivamente di 2 e 4 bit, definiscono il tipo e il sotto tipo dei frame esplicitati nella tabella sottostante. Il tipo gestione corrisponde alle richieste di associazione nonché ai messaggi di annuncio dei punti di accesso. Il tipo controllo è usato per l'accesso al media per richiedere le autorizzazioni per emettere. Infine il tipo dati riguarda gli invii di dati (la maggior parte del traffico);
To DS, questo bit vale 1 quando il frame è destinato al sistema di distribuzione (DS), vale zero negli altri casi. Ogni frame inviato da una stazione a destinazione di un punto d'accesso ha quindi un campo To DS posizionato a 1;
From DS, questo bit vale 1 quando il frame proviene dal sistema di distribuzione (DS), vale zero negli casi. Quindi, quando i due campi To e From sono posizionati a zero si tratta di una comunicazione diretta tra due stazioni (modalità ad hoc);
More Fragments (frammenti supplementari), permette di indicare (quando vale 1) che restano dei frammenti da trasmettere;
Retry, questo bit specifica che il frammento in corso è una ritrasmissione di un frammento precedentemente inviato (e sicuramente perso);
Power Management (gestione d'energia), indica, quando è a 1, che la stazione che ha inviato questo frammento entra in modalità di gestione dell'energia;
More Data (gestione d'energia), questo bit, usato per la modalità di gestione dell'energia, è usato dal punto di accesso per specificare ad una stazione che dei frame supplementari sono memorizzati in attesa;
WEP, questo bit indica che l'algoritmo di codifica WEP è stato usato per cifrare il corpo della frama;
Order (ordine), indica che la frama è stata inviata usando la classe di servizio strettamente ordinata (Strictly-Ordered service class).
Durata/ID, questo campo indica la durata d'utilizzo del canale di trasmissione;
Campi indirizzi, un frame può contenere fino a 3 indirizzi oltre all'indirizzo di 48 bit;
Controllo di sequenza, questo campo permette di distinguere i diversi frammenti di uno stesso frame. È composto da due sotto campi che permettono di riordinare i frammenti:
Il numero di frammento;
Il numero di sequenza.
CRC, una somma di controllo che serve a verificare l'integrità del frame;
La tabella sottostante riassume i tipi e i sotto tipi di frame incapsulati nel campo di controllo del frame dell'intestazione MAC:
Tipo | Descrizione del tipo | Sotto tipo | Descrizione del sotto tipo |
---|---|---|---|
00 |
Management (gestione) |
0000 |
Association request (richiesta di associazione) |
00 |
Management (gestione) |
0001 |
Association response (risposta d'associazione) |
00 |
Management (gestione) |
0010 |
Reassociation request (richiesta ri-associazione) |
00 |
Management (gestione) |
0011 |
Reassociation response (risposta di ri-associazione) |
00 |
Management (gestione) |
0100 |
Probe request (richiesta di inchiesta) |
00 |
Management (gestione) |
0101 |
Probe response (risposta di inchiesta) |
00 |
Management (gestione) |
0110-0111 |
Reserved (riservato) |
00 |
Management (gestione) |
1000 |
Beacon (tag) |
00 |
Management (gestione) |
1001 |
Annoucement traffic indication message (ATIM) |
00 |
Management (gestione) |
1010 |
Disassociation (dissociazione) |
00 |
Management (gestione) |
1011 |
Authentication (autenticazione) |
00 |
Management (gestione) |
1100 |
Deauthentication (disautenticazione) |
00 |
Management (gestione) |
1101-1111 |
Reserved (riservato) |
01 |
Control (controllo) |
0000-1001 |
Reserved (riservato) |
01 |
Control (controllo) |
1010 |
Power Save (PS)-Poll (economia d'energia) |
01 |
Control (controllo) |
1011 |
Request To Send (RTS) |
01 |
Control (controllo) |
1100 |
Clear To Send (CTS) |
01 |
Control (controllo) |
1101 |
ACK |
01 |
Control (controllo) |
1110 |
Contention Free (CF)-end |
01 |
Control (controllo) |
1111 |
CF-end + CF-ACK |
10 |
Data (dati) |
0000 |
Data (dati) |
10 |
Data (dati) |
0001 |
Data (dati) + CF-Ack |
10 |
Data (dati) |
0010 |
Data (dati) + CF-Poll |
10 |
Data (dati) |
0011 |
Data (dati) + CF-Ack+CF-Poll |
10 |
Data (dati) |
0100 |
Null function (no Data (dati)) |
10 |
Data (dati) |
0101 |
CF-Ack |
10 |
Data (dati) |
0110 |
CF-Poll |
10 |
Data (dati) |
0111 |
CF-Ack + CF-Poll |
10 |
Data (dati) |
1000-1111 |
Reserved (riservato) |
11 |
Data (dati) |
0000-1111 |
Reserved (riservato) |
La Point Coordination Function (PCF) detta modalità di accesso controllato. Essa è fondata sull'interrogazione a turno delle stazioni, o polling, controllate dal punto di accesso. Una stazione non può emettere se non è autorizzata e non può ricevere se non è selezionata. Questo metodo è concepito per le applicazioni in tempo reale (video, voce) che necessitano di una gestione dei tempi delle trasmissioni di dati.
Foto: © Pixabay.