# Architettura wireless L'architettura wireless è dominata dallo standard `IEEE 802.11`, che consente la comunicazione senza fili tra dispositivi. In un contesto di rete locale (LAN), è comune che una componente cablata venga estesa attraverso l'uso di `Access Point` (AP), permettendo così ai dispositivi di connettersi in modalità wireless. Le informazioni vengono trasmesse tramite onde radio, consentendo una maggiore flessibilità e mobilità. Esistono due principali tipologie di infrastruttura wireless: - `Ad Hoc (IBSS - Independent Basic Service Set)`: questa configurazione consiste in un insieme di dispositivi opportunamente configurati per comunicare direttamente tra loro tramite le loro schede wireless. Si tratta di una rete peer-to-peer, in cui ogni nodo funge sia da server che da client, permettendo una comunicazione diretta senza la necessità di un punto di accesso centrale. - `Wireless LAN con Infrastruttura`: in questo modello, l'Access Point funge da punto di coordinamento centrale. L'AP consente la comunicazione tra più dispositivi wireless, noti anche come stazioni o terminali wireless. ![Architettura Wireless](/asset/img/wireless%20architecture.png) ## Concetti chiave - Il `BSS` (Basic Service Set) rappresenta il gruppo di dispositivi che comunicano tra loro all'interno di una rete wireless.Ogni BSS è identificato da un `BSSID` (Basic Service Set Identifier), che è l'indirizzo MAC dell'Access Point nel caso di un BSS con infrastruttura, o l'indirizzo MAC di uno dei dispositivi nel caso di un BSS Ad Hoc. - `SSID` (Service Set Identifier): è un identificativo logico della rete, facile da ricordare, che consente agli utenti di riconoscere e connettersi alla rete wireless desiderata. - `ESSID` (Extended Service Set Identifier) è un'estensione del SSID, utilizzata per identificare reti wireless più ampie che possono includere più Access Point, garantendo una connessione continua e senza interruzioni per gli utenti in movimento. - `Roaming`: è una funzionalità fondamentale delle reti wireless che consente ai dispositivi di spostarsi automaticamente da un Access Point (AP) a un altro senza interruzioni nella connessione. Quando un dispositivo wireless si allontana dall'AP a cui è attualmente connesso e entra nella copertura di un altro AP, il processo di roaming avviene in modo fluido e automatico. Questo implica la deautenticazione dal primo AP e l'autenticazione sul secondo AP, garantendo così una continuità del servizio. - `DS` (Distributed System): consente la comunicazione tra dispositivi, sia wireless che cablati, al di fuori del singolo Basic Service Set (BSS). In un sistema distribuito, gli Access Point possono comunicare tra loro e con altri dispositivi (anche non wireless), consentendo una rete più ampia e complessa. Gli *Access Point* svolgono un ruolo cruciale nella traduzione dei frame di rete. Sono in grado di convertire gli header degli ethernet frame in wireless frame e viceversa. Questo processo di traduzione è fondamentale per garantire che i dati possano essere trasmessi correttamente tra dispositivi cablati e wireless. ## Anatomia del Wireless Frame ![Wireless Frame](/asset/img/wireless-frame.png) É composto da diversi campi, ognuno con funzioni specifiche. Di seguito sono descritti i principali componenti di un wireless frame: ### Frame Control Il campo `Frame Control` occupa due byte e contiene numerosi sottocampi, tra cui: - **Version**: indica la versione dello standard IEEE 802.11 utilizzato per il frame - **Type e Subtype**: questi campi specificano il tipo e il sottotipo del frame. Esistono tre categorie principali di frame: - **Gestione** (Type 00): Utilizzato per le comunicazioni iniziali tra l'Access Point (AP) e i dispositivi wireless - **Controllo** (Type 01): Questo tipo si suddivide ulteriormente in: - **Frame RTS** (Request to Send): Sottotipo 1011 - **Frame CTS** (Clear to Send): Sottotipo 1100 - **Frame ACK** (Acknowledgment): Sottotipo 1101 - **Dati** (Type 02): Questo tipo di frame trasporta i dati effettivi ### Sequence Control Contiene due sottocampi: - `Fragment Number`: indica il numero di frammento del frame corrente. Quando un pacchetto di dati è troppo grande per essere trasmesso in un'unica volta, viene frammentato, e ogni frammento è identificato dal suo numero. Questo è essenziale per il destinatario, che utilizza il fragment number per ricostruire il pacchetto originale. - `Sequence Number`: indica il numero di sequenza del frame corrente. Questo campo è fondamentale per garantire che i frame vengano trasmessi e ricevuti nell'ordine corretto. ### Data Il campo **Data** rappresenta il payload incapsulato dal livello di rete. ### Trailer **FCS** (Frame Check Sequence): il trailer termina il frame con un campo di 4 byte, il cui scopo è la verifica dell’integrità dei dati trasmessi.