\documentclass[a4paper,10pt]{article} \usepackage[italian]{babel} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[pdftex,bookmarks,colorlinks]{hyperref} % SoujaK %\usepackage[pdftex,pdftitle={},pdfauthor={},pdfpagemode=FullScreen, %plainpages=false,pdfpagelabels,urlcolor=blue,linkcolor=red,citecolor=green, %bookmarks=false]{hyperref} \title{Associazione multipla simultanea di~un~\textit{client}~802.11} \author{Andrea~Rappini, Alessio~Romagnoli,\\Marco~Solieri, Andrea Simeone} \makeindex \begin{document} \maketitle \begin{abstract} La diffusione di reti \textit{wireless} è in forte crescita a causa della sua comodità e della larga disponibilità di connessioni ad Internet con ampie larghezze di banda. Sfruttare contemporaneamente la connessione alla molteplicità di reti spesso presente permetterebbe un utilizzo migliore di tali risorse, migliorando il \textit{throughput} aggregato e incrementandone l'affidabilità. Si intende dapprima introdurre il lettore allo scenario nel quale è stato condotto lo studio, evidenziandone gli aspetti salienti che riguardano lo standard IEEE 802.11 e le sue interpretazioni. In un secondo momento si presenteranno non solo le proposte risolutive individuate, ma anche spunti per ulteriori ottimizzazioni. \end{abstract} \clearpage \tableofcontents \clearpage \section{Introduzione} \label{sec:introduzione} \subsection{Oggetto} \label{sec:oggetto} Lo studio di fattibilità si interroga sulle possibilità realizzative di connessione di un singolo \textit{client} 802.11 a diverse reti, partecipando a più BSS (cioè l'insieme di nodi costituenti una rete \textit{wireless}). Si analizzano le effettive possibilità di realizzazione di un'estensione delle comuni implementazioni dello standard IEEE 802.11 che permetta al singolo \textit{client} in ambiente GNU/Linux l'associazione simultanea a differenti reti \textit{wireless}. \subsection{Scopi} \label{sec:scopi} L'intento più evidente è quello di aumentare la connettività del \textit{client}, permettendogli connessioni simultanee a reti altrimenti isolate ed eventualmente consentendogli di agire in qualità di ponte fra di esse. Qualora i punti di accesso resi contemporaneamente utilizzabili riferiscano (più o meno direttamente) alla medesima rete, allora la molteplicità si traduce in ridondanza e, conseguentemente, in affidabilità. I più coraggiosi potranno infine sfruttare le multi-connettività in oggetto come punto di partenza per la realizzazione di politiche di gestione al fine di massimizzare il \textit{throughput} aggregato. \subsection{Obiettivi supplementari} \label{sec:obiettivi} I criteri con i quali si sono prese le svariate decisioni che hanno caratterizzato lo studio e che si concretizzano nelle soluzioni proposte sono stati influenzati dai seguenti obiettivi supplementari: \begin{description} \item [\textit{overhead} minimo] abbattere i costi introdotti dalla gestione simultanea delle connessioni multiple; \item [perdite minime] ridurre o eliminare ogni possibile perdita di dati in ricezione causata dalla temporanea assenza su un BSS (cfr. sezione \ref{sec:mezzotrasmissivo}); \item [portabilità] essere quanto più indipendente dalle specifiche piattaforme \textit{hardware}/\textit{firmware}, pur rimanendo legata all'ambiente GNU/Linux; \item [facilità implementativa] ridurre gli sforzi per l'effettiva messa in opera; \item [trasparenza] virtualizzare le interfacce di rete associate ad ogni connessione per minimizzare l'impatto per l'utente come per il sistema. \end{description} \section{Scenario} \label{sec:scenario} \subsection{Caratteristiche del mezzo trasmissivo} \label{sec:mezzotrasmissivo} Il mezzo trasmissivo utilizzato nelle comunicazioni di reti senza fili è, per sua natura, disponibile e condiviso da ogni utilizzatore, pertanto lo standard IEEE 802.11 ne sancisce il partizionamento in diversi spettri di frequenza denominati canali. In tal modo si permette la coesistenza di reti \textit{wireless} distinte in aree limitrofe o addirittura sovrapposte grazie all'uso di canali differenti. \label{salti} Lo studio ha pertanto tenuto presente la necessità da parte del \textit{client} di effettuare salti periodici di canale per poter raggiungere ogni BSS a cui desideri partecipare. \subsection{Standard IEEE 802.11} \label{sec:80211} \subsubsection{Accesso alla rete} \label{sec:accessoallarete} \paragraph{Associazione} Affinché una stazione mobile possa partecipare ad una rete \textit{wireless}, le è fatto obbligo di annunciare la sua presenza attraverso una procedura detta di associazione. Questo legame unisce una stazione ad uno ed un solo BSS e garantisce che la stazione possa effettuare trasmissioni dirette ad ognuno dei nodi appartenente all'intera rete e viceversa. Lo studio intende proprio scardinare l'univocità del rapporto fra stazione e BSS che lo standard impone esplicitamente. \paragraph{Autenticazione} A causa della natura condivisa del mezzo trasmissivo, l'accesso alla rete sarebbe aperto a qualunque stazione richieda di associarsi. IEEE ha quindi elaborato una strategia di regolazione dell'accesso richiedendo la mutua identificazione di entrambi gli estremi di ogni comunicazione. Tale procedura, definita autenticazione, risulta pertanto essere un prerequisito della stessa associazione.\\ Il processo può diventare oneroso in termini di tempo a causa dei \textit{frame} da scambiare e dell'elaborazione necessaria (si pensi ai calcoli crittografici coinvolti), quindi ne viene permessa l'invocazione anche in maniera indipendente dal servizio di associazione. Così facendo lo standard permette di mantenere questo carico lontano dai momenti in cui il tempo è un fattore critico\footnotemark, sfruttando la \textbf{preautenticazione}. \footnotetext{Infatti, se la STA è in movimento fra due BSS e se l'autenticazione cade prima che la stessa STA possa riassociarsi con il successivo AP, la procedura potrebbe richiedere tempi considerevoli che andrebbero a degradare pesantemente le prestazioni.} Da quanto detto risulta quindi evidente che, a differenza dell'associazione, una stazione può essere autenticata presso molteplici altre stazioni. \paragraph{802.11i} \label{80211i} L'estensione 802.11i \cite{80211i} dello standard intende migliorare il livello di sicurezza e confidenzialità introducendo nuovi protocolli e meccanismi. Tutti i suoi metodi di autenticazione basati su autenticatori esterni (\textit{server} RADIUS) provengono dallo standard 802.1x, che riguarda proprio il controllo d'accesso a reti dell'insieme 802 (Ethernet, Token-ring \ldots). Questo genere di comunicazioni viene quindi effettuato a strati di rete superiori coinvolgendo marginalmente il livello 802.11 in oggetto. È per questa ragione che i dettagli inerenti l'autenticazione ad alto livello (pertanto scorrelata da quella di 802.11 da poco descritta) sono sostanzialmente irrilevanti per gli scopi del presente studio. \subsubsection{Risparmio energetico} \label{sec:risparmioenergetico} Lo standard prevede la possibilità di utilizzare l'\textit{hardware} in maniera efficiente rispetto ai consumi energetici, dal momento che i dispositivi portatili alimentati a batteria sono tutt'altro che rari. Le stazioni che supportano tale funzionalità hanno infatti la facoltà di ``addormentarsi'' durante i periodi di inattività. In questi momenti, gli eventuali dati ad esse destinati vengono conservati dal BSS\footnotemark per un invio successivo, essendo esso stato precedentemente avvisato dello stato delle stazioni in questione. I BSS, quindi, annunciano periodicamente la presenza delle trasmissioni in attesa, indicandone i destinatari con un messaggio chiamato TIM che è presente all'interno di alcuni dei \textit{beacon} (cfr. \ref{sec:vincolitemporali}. Conseguentemente le stazioni in risparmio energetico sono tenute a risvegliarsi in corrispondenza di questi intervalli regolari, per poi richiedere l'invio tramite un apposito tipo di \textit{frame} (il \texttt{PS-Poll}). \footnotetext{In realtà sarebbe doveroso fare una distinzione fra le reti infrastrutturate e quelle indipendenti (o \textit{ad hoc}), nelle quali la conservazione dei dati è appannaggio, rispettivamente, dell'\textit{access point} e del nodo trasmittente.} \subsubsection{Vincoli temporali} \label{sec:vincolitemporali} Come già anticipato (sezione \ref{salti}), il \textit{client} avrà l'illusione di essere contemporaneamente associato ai BSS di interesse tramite continui salti fra di essi; per questo motivo risulta importante chiarire quali siano i vincoli temporali che lo standard gli impone. La padronanza di queste informazioni è di grande rilevanza, sia perché dovranno essere rispettate dal \textit{client} anche in seguito alle modifiche che verranno proposte nel presente studio, sia perché potranno essere tenute presenti per raffinamenti volti a migliorare l'efficienza delle soluzioni (si veda, più avanti, la sezione \ref{sec:ottimizzazioni}. L'accesso al mezzo trasmissivo, a causa della sua stessa natura condivisa, è regolato da convenzioni stabilite dallo standard che consentono una ripartizione equa di questa risorsa. Tali regolamentazioni di natura temporale si fondano sulla reciproca sincronizzazione delle stazioni che condividono il mezzo fisico, raggiunta tramite il mantenimento di un \textbf{orologio} comune al BSS\footnotemark di appartenenza. Il valore su cui accordarsi viene distribuito all'interno di un \textit{frame} di gestione, il \textit{\textbf{beacon}}, inviato ad intervalli regolari e prefissati. Se già ora si intuisce che l'eventuale perdita di questi messaggi periodici durante i salti va minimizzata, ancor di più se ne comprende l'importanza a fronte della presenza di ulteriori informazioni di grande interesse per i fini preposti. \footnotetext{Ancora una volta sarebbe necessaria una distinzione fra le reti infrastrutturate e le reti \textit{ad hoc}: il valore comune su cui accordarsi è dettato rispettivamente dall'\textit{access point} e dall'intero BSS in maniera distribuita.} Trattasi non solo dei \textbf{TIM} (cfr. \ref{sec:risparmioenergetico}), ma anche degli annunci d'inizio dei periodi liberi da contesa presenti nelle reti infrastrutturate, lassi di tempo durante i quali l'accesso al mezzo è coordinato da un gestore centrale. Esso risiede tipicamente nell'\textit{access point} e provvede a coordinare le comunicazioni in maniera spesso più efficiente rispetto a quando il coordinamento è distribuito. In aggiunta a quanto detto, il \textit{client} non potrà trascurare le \textbf{scadenze} temporali oltre le quali i rapporti di autenticazione e associazione con i BSS vengono a cadere. \subsection{\textit{Wireless Extensions}} \label{sec:wext} La portabilità in ambienti GNU/Linux è stata ricercata usando come punto di riferimento le Linux Wireless Extensions (per brevità \textsc{wext}). Il progetto intende mettere ordine in uno scenario spesso dominato dall'eterogeneità, proponendo delle interfacce unificate per i driver di sistema delle varie soluzioni \textit{hardware} disponibili. Nel momento in cui si scrive non tutti i \textit{driver} che si sono completamente uniformati a questo insieme di interfacce, ma la speranza che esse diventino presto lo standard \textit{de facto}. Accanto alle API di programmazione sono stati sviluppati anche gli \textit{Wireless Tools}, comodi strumenti per l'utente che intendono offrire le medesime possibilità attraverso un'interfaccia a riga di comando. \subsection{Implementazioni} \label{sec:implementazioni} \subsubsection{Architettura} \label{sec:architettura} Lo standard IEEE 802.11 definisce due strati di rete che sono riconducibili, facendo riferimento al modello ISO/OSI, al livello fisico e a quello MAC (\textit{Medium Access Control}), implementati dai produttori tramite l'accoppiata \textit{hardware}/\textit{firmware}. MAC viene solitamente realizzato così a basso livello per rispondere alle esigenze di velocità e accuratezza temporale di cui si accennava in \ref{sec:vincolitemporali}. È importante sottolineare, quindi, che qualunque idea risolutiva dello studio in questione non potrà prescindere dalle modalità di interazione (interfacce e regolazioni) consentite dalla specifica implementazione di MAC. Questa dipendenza diventa tanto più rilevante quanto la soluzione perseguita si discosta dalla rigidità dello standard. La revisione 802.11i (introdotta in \ref{80211i}, che estende lo standard migliorando la sicurezza da esso offerta, definisce nuove funzionalità per il livello MAC che possono invece essere tranquillamente implementate all'esterno del \textit{firmware}. \subsubsection{Libertà d'azione} \label{sec:libertàdazione} Le più diffuse implementazioni di 802.11 sono quantomai lontane dalle libertà di azione sperabili poiché il \textit{firmware} risulta essere scarsamente programmabile, consentendo poco più delle interazioni necessarie al normale funzionamento. Esempi di soluzioni \textit{chipset} che siano contrarie a questa tendenza, e pertanto interessanti, vengono riportati da \cite{defguide}: Atheros e Broadcom; il primo dei due, provato direttamente dagli autori, sarà oggetto della sezione \ref{sec:casoreale}. A complicare ulteriormente la situazione intervengono le limitazioni imposte dalle autorità delle comunicazioni di molti Paesi (si pensi all'FCC statunitense\footnotemark), che richiedono la distribuzione dei trasmettitori radio con \textit{firmware} in forma necessariamente binaria per scongiurare violazioni dei limiti di utilizzo delle frequenze. \footnotetext{Per maggiori informazioni si veda:\\ \url{http://ftp.fcc.gov/Bureaus/Engineering_Technology/Orders/2001/fcc01264.pdf }} \subsubsection{Interpretazione dello standard} \label{sec:interpretazionedellostandard} Nemmeno le più fedeli realizzazioni di 802.11 (come segnala \cite{defguide}) supportano la preautenticazione , quindi i servizi di autenticazione e associazione risultano indissolubilmente legati, vanificando ogni possibilità di realizzare nativamente autenticazioni multiple. Di conseguenza, il superamento di questo limite, vincolante per realizzare associazioni multiple simultanee, sarà, in tutta la sua complessità, compito dell'implementatore della soluzione proposta in \ref{sec:soprailfirmware}. Un'altra eventuale (e poco probabile) limitazione dovuta all'interpretazione dello standard può derivare dalla libertà concessa riguardo la stessa implementazione del supporto alla gestione energetica. \subsection{Caso reale} \label{sec:casoreale} Le schede Atheros costituiscono una realtà attraente per i fini dello studio, in particolare per ciò che concerne le libertà d'azione concesse di cui al \ref{sec:libertàdazione}. Il driver MADWiFi è in grado sfruttare in maniera interessante le potenzialità fornite da questo \textit{chipset}, offrendo funzionalità non troppo distanti dagli scopi del presente. \subsubsection{Il \textit{chipset} Atheros} \label{sec:atheros} I \textit{chipset} Atheros equipaggiano i dispositivi 802.11 di alcuni fra i maggiori produttori di \textit{hardware} per la connettività, come Linksys, NETGEAR, D-Link, Orinoco, Proxim o 3Com. Il suo \textit{firmware} consente un grado di interazione dall'estensione incomparabile, esponendo un'interfaccia in grado di offrire controllo anche su dettagli generalmente offuscati. Proprio per questa ragione la sua distribuzione è vincolata alla presenza di un sovrastrato (reso disponibile in sola forma binaria) atto a limitare l'interfaccia al fine di impedire utilizzi non conformi alle vigenti regolamentazioni sugli apparecchi radio. Tale componente, denominato HAL (\textit{Hardware Abstraction Layer}), interviene limitando le radiofrequenze operative del dispositivo, continuando comunque a concedere le libertà auspicate. \subsubsection{Il \textit{driver} MADWiFi} \label{sec:madwifi} A partire dallo scorso anno la spinta innovatrice di Atheros ha avuto riscontro anche nel progetto MADWiFi, i driver liberi per piattaforme Linux sviluppati inizialmente da Sam Leffler. Infatti le novità introdotte dal nuovo HAL sono state sfruttate aggiungendo una serie di funzionalità di grande rilevanza. Il carattere rivoluzionario rende il progetto, come spesso capita, piuttosto instabile ma assai vitale. L'aspetto indubbiamente più interessante è l'introduzione della modalità \textbf{VAP} (\textit{Virtual Access Point}), grazie alla quale è possibile virtualizzare il dispositivo creando molteplici interfacce di rete operanti concorrentemente. Questa funzionalità è implementata facendo uso del medesimo livello fisico, vincolando così l'operatività dei VAP sullo stesso canale trasmissivo. Ciononostante, la rosa delle possibilità rimane ben assortita, permettendo la creazione di molteplici \textit{access point} e/o una (e al più una) stazione in modalità \textit{managed} o \textit{ad-hoc}. La nota modalità \textit{monitor} viene inoltre resa inseribile in una qualsiasi delle configurazioni appena descritte, con la semplice aggiunta di un VAP di questo tipo. I vari VAP creati possono poi essere eventualmente interconnessi tramite il WDS, un'altra delle caratteristiche salienti del driver, che realizza un sistema di distribuzione basato su connessioni 802.11 fra i BSS d'interesse, siano essi locali (e virtualizzati) o esterni. Le interfacce virtuali create possono essere utilizzate comodamente in piena trasparenza, essendo aderenti alle \textit{Wireless Extensions}. L'alto grado di controllo permesso dal \textit{firmware} Atheros si propaga fino all'utente attraverso il \textit{driver} grazie ai suoi numerosi parametri specifici, che si ricordano essere gestibili tramite il comando \texttt{iwpriv} degli \textit{Wireless Tools}. Un ulteriore strumento a riga di comando, \texttt{wlanconfig}, completa le necessità di amministrazione proprie di questo \textit{driver}, permettendo creazione, distruzione e cambio di modalità dei VAP. \section{Soluzioni} \label{sec:soluzioni} Lo studio di fattibilità in oggetto non può che aver prodotto degli schemi di soluzione che coniugano le idee emerse durante la fase di analisi del problema, ma che si precisano essere ancora distanti dall'esaustività. Tali proposte di soluzione si differenziano per il livello implementativo di riferimento, poiché esso comporta un importante \textit{trade-off} fra portabilità ed efficienza. Quanto più basso, infatti, è il livello al quale si opera, tanto più alta è la possibilità di sfruttare appieno le potenzialità del dispositivo, a scapito della compatibilità offerta e della facilità implementativa. Punto fermo di ogni soluzione proponibile è l'effettuazione di salti periodici fra i BSS ai quali il \textit{client} desideri essere ``contemporaneamente'' associato. Le differenze di prestazioni fra le due soluzioni che si proporranno di seguito sono dovute proprio ai diversi tempi che i salti periodici richiedono, che costituiscono quasi interamente l'\textit{overhead} introdotto. Si procederà quindi ad illustrare due soluzioni attraverso un'attenta analisi che entrerà nei dettagli, dimostrando quanto appena affermato e calcolando il rapporto fra vantaggi e svantaggi che esse comportano. \subsection{Sopra il \textit{firmware}} \label{sec:soprailfirmware} \subsubsection{Descrizione} \paragraph{Idea} Questa soluzione nasce dal desiderio di realizzare associazioni multiple effettive, per mezzo delle quali, cioé, in un dato istante ogni BSS di interesse per il \textit{client} lo consideri regolarmente associato. Ciò che si propone consiste sostanzialmente di modifiche al \textit{driver} per implementare i salti fra i BSS in maniera tale da evitare la perdita di associazione presso ognuno di essi. \paragraph{Come} Per far ciò si deve interagire direttamente (ed eventualmente in maniera poco corretta) con l'entità di gestione di 802.11, che si è già chiarito risiedere all'interno del \textit{firmware} della scheda \textit{wireless}. Soltanto il \textit{driver} sovrastante ha infatti la possibilità di alterare determinati stati interni al \textit{firmware} per modificare il comportamento di MAC. I parametri a cui si sta facendo riferimento sono quelli che regolano i rapporti di associazione e necessaria autenticazione della stazione: caratteristiche del BSS, caratteristiche della crittografia e dell'autenticazione in uso, eventuali chiavi temporanee \ldots \paragraph{Gabola} \label{gabola} Uno degli aspetti più convincenti di questa soluzione è la possibilità di utilizzare la modalità di risparmio energetica (introdotta nella sezione \ref{sec:risparmioenergetico}). I ripetuti salti costringono il \textit{client} ad assenze dal canale che possono infatti essere spacciate senza troppa difficoltà per riposi preannunciati, costringendo con l'inganno i BSS a conservare i dati a lui diretti. Per completare questa strategia, la stazione simula al suo ritorno un risveglio per ricevere l'intera mole di informazioni in attesa di consegna. \paragraph{Architettura} Il \textit{design} della soluzione intende rispondere alle esigenze di trasparenza per il sistema operativo e, di conseguenza, per l'utente. Le interfacce virtuali, della cui presenza il \textit{driver} è tenuto a notificare il SO, aderiscono alle \textit{Wireless Extensions} e si differenziano attraverso diversi indirizzi MAC (verosimilmente fittizi). Questa forma di \textit{spoofing} è necessaria sia per lo smistamento dei flussi in entrata alla stazione e provenienti dai BSS, sia per il convogliamento di quelli in uscita dalla stazione e diretti ai vari BSS. % TODO % Grafico della faccenda % OS [] [] [] % \ | / % DRI \|/ % FW [ ] % ANTENNA Y % .' `. % BSS1 .' B1 % BSS2 B2 Così facendo si renderà peraltro possibile l'utilizzo di associazioni multiple all'interno del medesimo ESS per ridondare la partecipazione. La residenza del componente di gestione dei flussi multipli di comunicazione all'interno del \textit{driver} lascia chiaramente spazio all'aggiunta di politiche per pianificazioni ottimali delle trasmissioni (se ne parlerà più approfonditamente in \ref{sec:ottimizzazioni}. \subsubsection{Vantaggi} \begin{description} \item [Perdita di dati nulla] :\\ \begin{math} \Leftarrow \end{math} i dati in arrivo vengono conservati dai BSS grazie allo sfruttamento della modalità di risparmio energetico (cfr. \ref{sec:risparmioenergetico} e \ref{gabola}). \item [Prestazioni massime] :\\ \begin{math} \Leftarrow \end{math} l'effettiva associazione multipla minimizza il costo dei salti evitando riautenticazioni e riassociazioni (cfr. \ref{sec:accessoallarete}). \item [Trasparenza totale] :\\ \begin{math} \Leftarrow \end{math} le interfacce aderenti alle \texttt{wext} nascondono completamente la realtà dei fatti (cfr. \ref{sec:wext}). \item [Punto di partenza già disponibile] :\\ \begin{math} \Leftarrow \end{math} \texttt{MADWiFi} implementa un sottoinsieme delle funzionalità in oggetto (cfr. \ref{sec:madwifi}). \end{description} \subsubsection{Svantaggi} \begin{description} \item [Sforzo implementativo considerevole] : \\ \begin{math} \Leftarrow \end{math} aggiunta delle nuove funzionalità, mantentendo le informazioni relative agli stati di autenticazione associazione ed eventualmente sincronizzando la presenza su un BSS ad infrastruttura con i periodi liberi da contesa (cfr. \ref{sec:vincolitemporali} o \ref{sec:ottimizzazioni});\\ \begin{math} \Leftarrow \end{math} parziale reimplementazione di MAC, evitando la perdita dei \texttt{beacon}, indispensabili per il rispetto dei vincoli temporali (cfr. \ref{sec:vincolitemporali});\\ \begin{math} \Leftarrow \end{math} complessità intrinseca dovuta al basso livello a cui si è costretti ad agire; \\ \begin{math} \Leftarrow \end{math} forma binaria nella quale i \textit{firmware} sono sovente distribuiti che può costringere a noiose operazioni di ingegneria inversa. \item [Limitazioni prestazionali] :\\ \begin{math} \Leftarrow \end{math} i vincoli temporali dovuti ad esigenze ordinarie (mantenimento dell'associazione) e aggiuntive (ritiro dei dati conservati dai BSS) costringono a salti indesiderati (cfr. \ref{sec:vincolitemporali}). \item [Specificità] :\\ \begin{math} \Leftarrow \end{math} portabilità minima a causa della dipendenza dalla piattaforma \textit{hardware} sottostante;\\ \begin{math} \Leftarrow \end{math} scarsezza di \textit{firmware} sufficientemente controllabili sui quali è possibile lo sviluppo (cfr. \ref{sec:libertàdazione} e \ref{sec:atheros});\\ \begin{math} \Leftarrow \end{math} dipendenza dalla funzionalità di risparmio energetico, dal lato \textit{client} come da quello BSS (cfr. \ref{sec:risparmioenergetico} e \ref{gabola}). \end{description} \subsection{Sopra il \textit{driver}} \label{sec:sopraildriver} \subsubsection{Descrizione} \label{sec:descrizione2} \paragraph{Idea} Lo spirito con il quale questa soluzione viene concepita è quello di lavorare ad alto livello in piena aderenza allo standard, favorendo la portabilità e minimizzando, peraltro, gli sforzi implementativi. La scelta di interazione con un generico \textit{driver} di sistema per ambienti GNU/Linux risponde a queste esigenze obbligando alla rinuncia dell'effettività dell'associazione multipla e al pagamento degli esigui costi di riassociazione. \paragraph{Come} Come accennato in \ref{sec:interpretazionedellostandard} ogni implementazione lega indissolubilmente i concetti di autenticazione e riassociazione, vanificando la speranza di mantenere autenticazioni multiple ed obbligando a rincarare (spesso non di poco) i costi dei salti fra i BSS. Un salto dal BSS1 al BSS2 consta quindi di questa sequenza di operazioni: . Si tenga a mente che la persistenza delle autenticazioni a livelli superiori (si veda \ref{80211i}) non dovrebbe essere compromessa a causa di questa pratica. \paragraph{Interfacce} La portabilità perseguita trova espressione nell'uso delle \textit{Wireless Extensions}, in qualità di interfacce unificate dei driver per la piattaforma di riferimento. Ancor di più, si propone di rendere conformi a queste API le stesse interfacce virtuali, create per rappresentare ognuna delle partecipazioni ai BSS nella maniera quanto più comoda e trasparente. \subsubsection{Vantaggi} \label{vantaggi2} \begin{description} \item[Facilità implementativa]:\\ \begin{math} \Leftarrow \end{math} Il livello implementativo è alto e si interagisce in maniera onesta con il \textit{driver}. \item[Trasparenza]:\\ \begin{math} \Leftarrow \end{math} La presentazione di interfacce aderenti alle \texttt{wext} oscura la presenza dell'implementazione ai livelli superiori (permettendo compatibilità, ad esempio, con \texttt{wpa\_supplicant}) e ne semplifica la gestione. \item[Portabilità]:\\ \begin{math} \Leftarrow \end{math} Si fa uso di interfacce disponibili su ogni piattaforma GNU/Linux (i.e. \texttt{wext}) per dialogare con il \textit{driver} sottostante. \end{description} \subsubsection{Svantaggi} \label{svantaggi2} \begin{description} \item [Perdita di dati in arrivo]:\\ \begin{math} \Leftarrow \end{math} La perdita di autenticazione e associazione fra un salto e l'altro comporta reali assenze dai BSS che non possono essere evitate; il problema potrebbe essere invero gestito da strati di rete superiori ed affidabili (e.g. TCP). \item [Prestazioni mediocri]:\\ \begin{math} \Leftarrow \end{math} I salti e le conseguenti operazioni di riautenticazione, riassociazione e risincronizzazione richiedono tempi nell'ordine dei centesimi di secondi. per avere un'idea dell'entità di questo \textit{overhead} si pensi che lo stesso lasso di tempo potrebbe essere impiegato per la trasmissione di un centinaio di KB. \end{description} \section{Ottimizzazioni} \label{sec:ottimizzazioni} Si propone infine una breve trattazione dei fattori che possono essere tenuti in considerazione per pianificare oculatamente le trasmissioni al fine di ridurre i costi di gestione relativi alle soluzioni descritte in \ref{sec:soluzioni}. È però compito del lettore valutare a seconda della soluzione scelta la rilevanza specifica che ognuno di essi riveste. \begin{description} \item [Scadenze temporali] Come già esplicitato in \ref{sec:vincolitemporali} sussistono scadenze temporali la cui osservanza risulta essere necessaria (\textit{timeout} di autenticazione e associazione) o semplicemente conveniente (periodi di sincronizzazione dei BSS o di inizio del CFP). \item [Impatto dei salti] Il costo dei salti può essere calcolato per regolare la frequenza minima con la quale essi sono effettuati. \item [Caratteristiche delle comunicazioni] Date le alte latenze che possono essere prodotte dai salti di BSS, una politica di pianificazione delle comunicazioni basata su priorità\footnotemark può migliorare la qualità della schedulazione. \footnotetext{La qualità di servizio (QoS) suggerita è peraltro oggetto dei miglioramenti presenti in 802.11e (si veda 80211e).} \item [Qualità dei BSS] Qualora le destinazioni di interesse siano raggiungibili tramite più di uno dei BSS di appartenenza, la scelta potrebbe essere banalmente influenzata dalla qualità che essi offrono (qualità del segnale, carico di lavoro \ldots). \end{description} \clearpage \section{Ringraziamenti} \label{sec:ringraziamenti} Vittorio Ghini, docente del corso di ``Laboratorio di programmazione di rete'', per averci proposto l'occasione di condurre questo studio e per l'entusiasmo che ha saputo trasmetterci.\\ Luciano Bononi, docente del corso di ``Sistemi di reti \textit{wireless}'', per gli indirizzamenti offerti.\\ Sam Leffler, autore di MADWiFi, per le conferme a proposito della soluzione sopra il \textit{firmware} con schede Atheros.\\ Jouni Malinen, autore di \texttt{wpa\_supplicant}, per i chiarimenti riguardo alcuni aspetti dell'autenticazione di 802.11i. \bibliography{Bibliografia} \bibliographystyle{alpha} \nocite{*} \end{document}