[[PageOutline(1-6)]] = IEEE 802.11 - Formato dei ''frame'' MAC = ,,20061111-1735 gnappo,, [[BR]] Ciascun MAC ''frame'' e' composto dalle seguenti parti: 1. un ''header'' che comprende informazioni sul controllo (del ''frame'' stesso), la durata, l'indirizzo e il controllo di sequenza del ''frame''; 2. il ''frame body'' contenente informazioni dipendenti dal tipo di ''frame'' in oggetto e di lunghezza variabile; 3. un ''Frame Check Sequence'', cioe' un codice di rilevazione d'errore. ,,gnappo: ''inserire qua "screenshot" formato frame. I paragrafi sottostanti ne illustrano i campi.'',, == ''Frame Control'' == ,,20061111-1735 gnappo,, [[BR]] A seguire una disamina dei campi contenuti nel cosiddetto ''Frame Control'': * campo di versione del protocollo (i.e. 802.11{a,b,g,...}): una stazione che riceve un frame di una versione di protocollo non supportata lo potra' scartare senza informare la stazione mittente o LLC; * campi di tipo e sottotipo: identificano il tipo di frame (controllo, dato o ''management''). I sottotipi chiariscono nello specifico la funzionalita' del ''frame'' (e.g. un ''frame'' di ''management'' potrebbe essere un ''frame'' contente una richiesta di autenticazione oppure di associazione). Si rimanda alla tabella 1 per tutte le possibili combinazioni per i due campi. * Campo ''To DS'': indica se il ''frame'' e' destinato al ''Distribution System'' (e.g. tutti i ''frame'' inviati dalle STA verso gli AP hanno questo flag asserito); * campo ''from DS'': indica se il ''frame'' proviene dal ''Distribution System''; * campo ''More Fragments'': indica se il ''frame'' corrente ha altri frammenti a seguire; * campo ''Retry'': e' asserito se il ''frame'' corrente e' una ritrasmissione di uno precedente aiutando cosi' il ricevitore nel processo di eliminazione di ''frame'' duplicati; * campo ''Power Management'': indica se la stazione opera in ''active'' oppure ''power-save mode''; * campo ''More Data'': si tratta di un bit che se asserito, indica alla stazione in ''power-save'' che l'AP ha MSDU o MMPDU bufferizzati a lei diretti pronti per l'invio. Inoltre il bit puo' essere valido in una trasmissione tra STA ''CF-pollable'' e AP come risposta ad un ''CF-poll'' per indicare che la STA ha almeno un MSDU "bufferizzato" pronto per l'invio. Vale ancora 1 anche per le trasmissioni in ''broadcast'' dell'AP qualora abbia altri MSDU o MMPDU da inviare entro l'invio del prossimo ''beacon''. * Campo WEP: indica se il ''frame body'' e' stato crittografato utilizzando WEP. Il campo e' significativo solo nei ''frame'' di tipo ''Management'' sottotipo ''Authentication'' e nei ''frame'' di tipo ''Data''. * Campo ''Order'': indica se il frame e' stato spedito utilizzando la classe di servizio ''StrictlyOrder'' ,,gnappo: ''che cos'e' la classe di servizio !StrictlyOrder?'',, == ''Duration/ID'' == ,,20061111-1735 gnappo,, [[BR]] Il campo ''Duration/ID'' ha due interpretazioni a seconda della situazione: 1. in ''frame Power Save (PS)-Poll'' contiene l' ''association id'' (AID) della stazione trasmittente; 2. per tutti gli altri frame contiene un valore di durata di impiego del mezzo trasmissivo. Ad esempio in un ''frame'' RTS il valore del campo ''Duration'' e' dato dalla somma del tempo di trasmissione dei dati pendenti, di un CTS, di un frame ACK e di tre SIFS. Per frame inviati durante il CFP il valore e' fissato a 32768. Ogni volta che il contenuto del campo ''Duration/ID'' e' minore di 32768 ogni STA aggiorna il proprio NAV (Network Allocation Vector). == ''Address'' == ,,20061111-1735 gnappo,, [[BR]] Ci sono 4 campi ''address'' in un frame MAC utilizzati per identificare il BSSID, gli indirizzi della stazione sorgente, destinazione, trasmittente e ricevente. Alcuni ''frame'' potrebbero non contenere alcuni di questi sottocampi. [[BR]] Gli indirizzi si suddividono in: * indirizzi individuali; * indirizzi di gruppo: ''multicast'' oppure ''broadcast''. Il BSSID denota univocamente ogni BSS. Per quanto riguarda le IBSS questo valore e' determinato da un algoritmo che genera numeri "random" con un'elevata probabilita' di esser unici. == ''Sequence number'' == ,,20061111-1735 gnappo,, [[BR]] Questo campo e' suddiviso in due sottocampi: un campo contenente il numero di sequenza di MSDU/MMPDU (modulo 4096) ed un altro per il conteggio dei frammenti di ciascun MSDU/MMPDU (eventualmente zero). == ''Frame Body'' == ,,20061111-1735 gnappo,, [[BR]] Come gia' affermato in precedenza, questo campo contiene l'effettivo ''data-load''. == FCS == ,,20061111-1735 gnappo,, [[BR]] Campo contentente il codice di ridondanza ciclica (CRC) a 32 bit calcolato su tutti i campi del ''MAC header'' e sul ''frame body''. == Alcune note sui frame di controllo == ,,20061111-1735 gnappo,, [[BR]] A differenziare il formato dei diversi ''frame'' di ''management'' e' solo il loro rispettivo corpo, diversamente fissato sul numero e tipo dei campi in esso contenuti. [[BR]] A seguire un elenco dei ''frame'' di ''management'' e una sintetica descrizione del loro contenuto: * ''beacon'': timestamp, ''beacon interval'' (rappresenta il numero di TU che intercorrono tra le trasmissioni dei ''beacon''), informazioni sulle capacita' del nodo, parametri della rete (fisica) e dei servizi (se l'AP supporta PCF allora nei ''beacon'' saranno contenuti i parametri necessari alle STA); * ''disassociation'': ragione della richiesta di dissociazione; * ''association request'': informazioni sulle capacita' della STA, intervallo di ascolto (i.e. ogni quanto tempo la STA si "risveglia" per ascoltare i ''beacon'' dell'AP), SSID, ''rate'' supportati; * ''association response'': informazioni sulle capacita' dell'AP, stato dell'associazione (valida oppure errore), identificativo dell'associazione, ''rate'' supportati; * ''reassociation response'': come sopra; * ''probe request'': SSID, ''rate'' supportati; * ''probe response'': analogo al ''beacon''; * ''authentication'': numero identificante l'algoritmo di autenticazione, numero identificante lo ''step'' del processo di autenticazione, stato, ''challenge text'' (presente solo in particolari ''frame'' di autenticazione);[[BR]] ,,gnappo: ''dove e quando e' utilizzato?'',, * ''deauthentication'': ragione della richiesta di disautenticazione.