Index: doc/AssociazioneMultipla.tex
===================================================================
--- doc/AssociazioneMultipla.tex	(revision 4)
+++ doc/AssociazioneMultipla.tex	(revision 5)
@@ -4,5 +4,6 @@
 \usepackage[T1]{fontenc}
 \usepackage[utf8]{inputenc}
-\usepackage[pdftex,bookmarks,colorlinks,linkcolor=red,urlcolor=blue]{hyperref}
+\usepackage[pdftex,bookmarks,colorlinks,citecolor=green, linkcolor=red,
+urlcolor=blue]{hyperref}
 
 % testo colorato
@@ -24,20 +25,19 @@
 
 \begin{abstract}
-La diffusione di reti wireless è in forte crescita a causa della sua comodità e
-della diffusa 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} e incrementandone l'affidabilità.
+La diffusione di reti \textit{wireless} è in forte crescita a causa della sua
+comodità e della diffusa 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} e incrementandone l'affidabilità.
 
 Lo studio intende quindi analizzare 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 wireless.
+simultanea a differenti reti \textit{wireless}.
 \end{abstract}
 
 % \newpage
 \section{Introduzione}
-\label{sec:intro}
+\label{sec:introduzione}
 
 \subsection{Oggetto}
@@ -45,6 +45,5 @@
 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 wireless).
+più BSS (cioè l'insieme di nodi costituenti una rete \textit{wireless}).
 
 Nel presente documento si intende dapprima introdurre il lettore allo scenario
@@ -59,11 +58,11 @@
 \textit{client},
 permettendogli connessioni simultanee a reti altrimenti isolate ed eventualmente
-consentendo al \textit{client} di agire in qualità di ponte. 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 sfruttare
-multi-connettività in oggetto come punto di partenza per la realizzazione di
-politiche di gestione al fine di massimizzare il \textit{throughput} aggregato.
+consentendo al \textit{client} di agire in qualità di ponte.
+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 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}
@@ -96,7 +95,7 @@
 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 wireless
-distinte in aree limitrofe o addirittura sovrapposte grazie all'uso di canali
-differenti.
+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}
@@ -109,9 +108,10 @@
 \subsubsection{Accesso alla rete}
 \label{sec:accessoallarete}
-Affinché una stazione mobile possa partecipare ad una rete wireless, le è fatto
-obbligo di annunciare la sua presenza attraverso una procedura detta di
-\textbf{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.\\
+Affinché una stazione mobile possa partecipare ad una rete \textit{wireless}, le
+è fatto obbligo di annunciare la sua presenza attraverso una procedura detta di
+\textbf{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.
@@ -282,5 +282,5 @@
 troppo distanti dagli scopi del presente.
 
-\subsubsection{Il chipset Atheros}
+\subsubsection{Il \textit{chipset} \texttt{Atheros}}
 \label{sec:atheros}
 
@@ -302,24 +302,25 @@
 libertà auspicate.
 
-\subsubsection{Il driver MADWifi}
+\subsubsection{Il \textit{driver} \texttt{MADWiFi}}
 \label{sec:madwifi}
 A partire dallo scorso anno la spinta innovatrice di \texttt{Atheros} ha avuto
 riscontro anche nel progetto \texttt{MADWiFi}, i driver liberi per piattaforme
-Linux sviluppati inizialmente da Sam Leffler. Le novità dal nuovo HAL sono state
-sfruttate introducendo una serie di funzionalità di grande rilevanza. Il
-carattere rivoluzionario rende il progetto, come spesso capita, piuttosto
-instabile ma assai vitale.
+Linux sviluppati inizialmente da Sam Leffler. Le novità introdotte dal nuovo
+\texttt{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 in maniera indipendente. 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à \texttt{managed} o \texttt{ad-hoc}. La
-nota modalità \texttt{monitor} viene inoltre resa inseribile in una qualsiasi
-delle configurazioni appena destritte, con la semplice aggiunta di un VAP di
-questo tipo.\\
+concorrentemente in maniera indipendente.
+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à \texttt{managed} o \texttt{ad-hoc}.
+La nota modalità \texttt{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
@@ -327,22 +328,147 @@
 essi locali (e virtualizzati) o esterni.
 % TODO
-% Chiarire il concetto di DS?
-
-Le interfacce virtuali create saranno esposte ed utilizzate in piena
+% Chiarire il concetto di DS e di BSS
+
+Le interfacce virtuali create saranno esposte ed utilizzate comodamente in piena
 trasparenza, essendo presentate come ordinarie interfacce di rete aderenti alle
 \textit{Wireless Extensions}.
-% TODO
-% Comodità?
 
 L'alto grado di controllo permesso dal \textit{firmware} \texttt{Atheros} si
-propaga fino all'utente attraverso il \textit{driver} e i suoi numerosi
-parametri specifici, che ricordiamo essere gestibili tramite il comando
-\texttt{iwpriv} degli \textit{Wireless Tools}.
-
-%   * interfaccia verso l'alto con wlanconfig
-
+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}
+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.
+
+% :   * il driver sara' in grado di gestire in un unico punto d'entrata le
+% :     interfacce multiple offerte dal SO
+%       TODO
+%       Grafico della faccenda
+%       OS   [] [] []
+%              \ | /
+%       DRI     \|/
+%       FW      [ ]
+Si consiglia inoltre che il \textit{client} si presenti ai differenti BSS con
+indirizzi MAC diversi fra loro, in modo tale da evitare partecipazione
+ridondante al medesimo ESS.
+
+% .   * componente scheduler (-> interfacce virtuali wext compliant) che
+% .     pianifica le trasmissioni
+
+
+
+\subsubsection{Vantaggi}
+% :   * nessuna perdita di dati
+% .     * power-saving e bufferizzazione dei dati da parte degli AP
+%     * buone prestazioni
+% .     * reale associazione multipla -> nessun overhead per 
+% .       riautenticazione/riassociazione
+% .   * totale trasparenza grazie alle interfacce wext compliant
+% .   * si puo' non partire da zero (-> madwifi)
+
+\subsubsection{Svantaggi}
+%     * grosso sforzo per l'implementazione
+% .     * parziale reimplementazione di MAC per occuparsi di beghe causate
+%         dalla molteplicita' dei BSS:
+% .       * tempistiche: sincronizzazione, rilevamento beacon persi ed eventuale
+% .         sfruttamento dei CFP. (beacon interval noti e mantenimento di
+% .         informazioni necessarie per ogni BSS)
+% .       * sottotipi di autenticazione/crittografia: mantenimento chiavi
+% .         (|di sessione), stato della crittografia e dell'autenticazione.
+% .         (getter e setter sugli attributi MIB relativi)
+% .     * complessita' intrinseca dovuta al livello implementativo
+% .     * firmware spesso solo binari, quindi probabile reverse engineering
+% .   * prestazioni non eccellenti, perche` limitate da power-saving e relativi
+% .     obblighi temporali (TIM...) {non posso proprio fare i miei comodi al
+% .     100% }
+%     * troppo specifico
+%       * dipendenza dalla piattaforma fw -> portabilita' minima
+% .     * necessita' di power saving
+% .     * la soluzione dipende fortemente dal firmware di riferimento, scarsa
+% .       programmabilita' di parecchie implementazioni
+
+\subsection{Sopra il \textit{driver}}
+\label{sec:sopraildriver}
+
+\subsubsection{Descrizione}
+% :   * idea: cheppalle riscriversi un driver, chissenefrega degli overhead,
+% :           lavoriamo pure a livello alto
+% .   * riassociazione ad ogni cambio di BSS
+% .   * GNU/Linux e Wireless Extensions come riferimento
+% :   * forse autenticazione multipla
+% .   * interfacce virtuali wext compliant (->)
+% .   * autenticazioni multiple a livelli superiori 802.1x (con wpa_supplicant)
+
+\subsubsection{Vantaggi}
+% .   * facilita` implementativa
+% .   * totale trasparenza grazie alle interfacce wext compliant (in questo
+% .     la cosa e` non banale, per il livello implementativo e permette il
+% .     comodo uso di wpa_supplicant)
+% .   * portabilita' dovuta alle interfacce unificate
+
+\subsubsection{Svantaggi}
+%     * dataloss [ma si puo` risolvere a livelli superiori (TCP, ATM)]
+% :   * latenze (|assai) ingenti (con|senza) autenticazione multipla
+%       * analisi costi vago in termini di ordini di grandezza:
+%         * associazione
+%         * sincronizzazione ~ 100 ms
+%         * autenticazione (PSK)
 
 \section{Ottimizzazioni ulteriori per le scelte di swinging}
