source: doc/AssociazioneMultipla.tex

Last change on this file was 10, checked in by soujak, 18 years ago

Revisione ultimata.

File size: 29.7 KB
Line 
1\documentclass[a4paper,10pt]{article}
2
3\usepackage[italian]{babel}
4\usepackage[T1]{fontenc}
5\usepackage[utf8]{inputenc}
6\usepackage[pdftex,bookmarks,colorlinks]{hyperref}
7
8% SoujaK
9 %\usepackage[pdftex,pdftitle={},pdfauthor={},pdfpagemode=FullScreen,
10 %plainpages=false,pdfpagelabels,urlcolor=blue,linkcolor=red,citecolor=green,
11 %bookmarks=false]{hyperref}
12
13\title{Associazione multipla simultanea di~un~\textit{client}~802.11}
14\author{Andrea~Rappini, Alessio~Romagnoli,\\Marco~Solieri, Andrea Simeone}
15
16\makeindex
17
18
19\begin{document}
20
21\maketitle
22
23\begin{abstract}
24La diffusione di reti \textit{wireless} è in forte crescita a causa della sua
25comodità e della larga disponibilità di connessioni ad Internet con ampie
26larghezze di banda.
27Sfruttare contemporaneamente la connessione alla molteplicità di reti spesso
28presente permetterebbe un utilizzo migliore di tali risorse, migliorando il
29\textit{throughput} aggregato e incrementandone l'affidabilità.
30
31Si intende dapprima introdurre il lettore allo scenario nel quale è stato
32condotto lo studio, evidenziandone gli aspetti salienti che riguardano lo
33standard IEEE 802.11 e le sue interpretazioni.
34In un secondo momento si presenteranno non solo le proposte risolutive
35individuate, ma anche spunti per ulteriori ottimizzazioni.
36\end{abstract}
37
38\clearpage
39\tableofcontents
40
41\clearpage
42\section{Introduzione}
43\label{sec:introduzione}
44
45\subsection{Oggetto}
46\label{sec:oggetto}
47Lo studio di fattibilità si interroga sulle possibilità realizzative di
48connessione di un singolo \textit{client} 802.11 a diverse reti, partecipando a
49più BSS (cioè l'insieme di nodi costituenti una rete \textit{wireless}).
50
51Si analizzano le effettive possibilità di realizzazione di un'estensione delle
52comuni implementazioni dello standard IEEE 802.11 che permetta al singolo
53\textit{client} in ambiente GNU/Linux l'associazione simultanea a differenti
54reti \textit{wireless}.
55
56\subsection{Scopi}
57\label{sec:scopi}
58L'intento più evidente è quello di aumentare la connettività del
59\textit{client}, permettendogli connessioni simultanee a reti altrimenti isolate
60ed eventualmente consentendogli di agire in qualità di ponte fra di esse.
61Qualora i punti di accesso resi contemporaneamente utilizzabili riferiscano (più
62o meno direttamente) alla medesima rete, allora la molteplicità si traduce in
63ridondanza e, conseguentemente, in affidabilità.
64I più coraggiosi potranno infine sfruttare le multi-connettività in oggetto come
65punto di partenza per la realizzazione di politiche di gestione al fine di
66massimizzare il \textit{throughput} aggregato.
67
68\subsection{Obiettivi supplementari}
69\label{sec:obiettivi}
70I criteri con i quali si sono prese le svariate decisioni che hanno
71caratterizzato lo studio e che si concretizzano nelle soluzioni proposte sono
72stati influenzati dai seguenti obiettivi supplementari:
73\begin{description}
74 \item [\textit{overhead} minimo]
75 abbattere i costi introdotti dalla gestione simultanea delle connessioni
76 multiple;
77 \item [perdite minime]
78 ridurre o eliminare ogni possibile perdita di dati in ricezione causata dalla
79 temporanea assenza su un BSS (cfr. sezione \ref{sec:mezzotrasmissivo});
80 \item [portabilità]
81 essere quanto più indipendente dalle specifiche piattaforme
82 \textit{hardware}/\textit{firmware}, pur rimanendo legata all'ambiente
83 GNU/Linux;
84 \item [facilità implementativa]
85 ridurre gli sforzi per l'effettiva messa in opera;
86 \item [trasparenza]
87 virtualizzare le interfacce di rete associate ad ogni connessione per
88 minimizzare l'impatto per l'utente come per il sistema.
89\end{description}
90
91\section{Scenario}
92\label{sec:scenario}
93
94\subsection{Caratteristiche del mezzo trasmissivo}
95\label{sec:mezzotrasmissivo}
96Il mezzo trasmissivo utilizzato nelle comunicazioni di reti senza fili è, per
97sua natura, disponibile e condiviso da ogni utilizzatore, pertanto lo standard
98IEEE 802.11 ne sancisce il partizionamento in diversi spettri di frequenza
99denominati canali. In tal modo si permette la coesistenza di reti
100\textit{wireless} distinte in aree limitrofe o addirittura sovrapposte grazie
101all'uso di canali differenti.
102
103\label{salti}
104Lo studio ha pertanto tenuto presente la necessità da parte del \textit{client}
105di effettuare salti periodici di canale per poter raggiungere ogni BSS a cui
106desideri partecipare.
107
108\subsection{Standard IEEE 802.11}
109\label{sec:80211}
110\subsubsection{Accesso alla rete}
111\label{sec:accessoallarete}
112\paragraph{Associazione}
113Affinché una stazione mobile possa partecipare ad una rete \textit{wireless}, le
114è fatto obbligo di annunciare la sua presenza attraverso una procedura detta di
115associazione.
116Questo legame unisce una stazione ad uno ed un solo BSS e garantisce che la
117stazione possa effettuare trasmissioni dirette ad ognuno dei nodi appartenente
118all'intera rete e viceversa.
119Lo studio intende proprio scardinare l'univocità del rapporto fra stazione
120e BSS che lo standard impone esplicitamente.
121
122\paragraph{Autenticazione}
123A causa della natura condivisa del mezzo trasmissivo, l'accesso alla rete
124sarebbe aperto a qualunque stazione richieda di associarsi.
125IEEE ha quindi elaborato una strategia di regolazione dell'accesso  richiedendo
126la mutua identificazione di entrambi gli estremi di ogni comunicazione.
127Tale procedura, definita autenticazione, risulta pertanto essere un prerequisito
128della stessa associazione.\\
129Il processo può diventare oneroso in termini di tempo a causa dei \textit{frame}
130da scambiare e dell'elaborazione necessaria (si pensi ai calcoli crittografici
131coinvolti), quindi ne viene permessa l'invocazione anche in maniera indipendente
132dal servizio di associazione. Così facendo lo standard permette di mantenere
133questo carico lontano dai momenti in cui il tempo è un fattore
134critico\footnotemark, sfruttando la \textbf{preautenticazione}.
135\footnotetext{Infatti, se la STA è in movimento fra due BSS e se
136l'autenticazione cade prima che la stessa STA possa riassociarsi con il
137successivo AP, la procedura potrebbe richiedere tempi considerevoli che
138andrebbero a degradare pesantemente le prestazioni.}
139Da quanto detto risulta quindi evidente che, a differenza dell'associazione,
140una stazione può essere autenticata presso molteplici altre stazioni.
141
142\paragraph{802.11i}
143\label{80211i}
144L'estensione 802.11i \cite{80211i} dello standard intende migliorare
145il livello di sicurezza e confidenzialità introducendo nuovi protocolli e
146meccanismi.
147Tutti i suoi metodi di autenticazione basati su autenticatori esterni
148(\textit{server} RADIUS) provengono dallo standard 802.1x, che riguarda proprio
149il controllo d'accesso a reti dell'insieme 802 (Ethernet, Token-ring \ldots).
150Questo genere di comunicazioni viene quindi effettuato a strati di rete
151superiori coinvolgendo marginalmente il livello 802.11 in oggetto.
152È per questa ragione che i dettagli inerenti l'autenticazione ad alto livello
153(pertanto scorrelata da quella di 802.11 da poco descritta) sono sostanzialmente
154irrilevanti per gli scopi del presente studio.
155
156\subsubsection{Risparmio energetico}
157\label{sec:risparmioenergetico}
158Lo standard prevede la possibilità di utilizzare l'\textit{hardware} in maniera
159efficiente rispetto ai consumi energetici, dal momento che i dispositivi
160portatili alimentati a batteria sono tutt'altro che rari.
161Le stazioni che supportano tale funzionalità hanno infatti la facoltà di
162``addormentarsi'' durante i periodi di inattività.
163In questi momenti, gli eventuali dati ad esse destinati vengono conservati dal
164BSS\footnotemark per un invio successivo, essendo esso stato precedentemente
165avvisato dello stato delle stazioni in questione.
166I BSS, quindi, annunciano periodicamente la presenza delle trasmissioni in
167attesa, indicandone i destinatari con un messaggio chiamato TIM che è presente
168all'interno di alcuni dei \textit{beacon} (cfr. \ref{sec:vincolitemporali}.
169Conseguentemente le stazioni in risparmio energetico sono tenute a risvegliarsi
170in corrispondenza di questi intervalli regolari, per poi richiedere l'invio
171tramite un apposito tipo di \textit{frame} (il \texttt{PS-Poll}).
172\footnotetext{In realtà sarebbe doveroso fare una distinzione fra le reti
173infrastrutturate e quelle indipendenti (o \textit{ad hoc}), nelle quali la
174conservazione dei dati è appannaggio, rispettivamente, dell'\textit{access
175point} e del nodo trasmittente.}
176
177\subsubsection{Vincoli temporali}
178\label{sec:vincolitemporali}
179Come già anticipato (sezione \ref{salti}), il \textit{client} avrà l'illusione
180di essere contemporaneamente associato ai BSS di interesse tramite continui
181salti fra di essi; per questo motivo risulta importante chiarire quali siano i
182vincoli temporali che lo standard gli impone.
183La padronanza di queste informazioni è di grande rilevanza, sia perché dovranno
184essere rispettate dal \textit{client} anche in seguito alle modifiche che
185verranno proposte nel presente studio, sia perché potranno essere tenute
186presenti per raffinamenti volti a migliorare l'efficienza delle soluzioni (si
187veda, più avanti, la sezione \ref{sec:ottimizzazioni}.
188
189L'accesso al mezzo trasmissivo, a causa della sua stessa natura condivisa, è
190regolato da convenzioni stabilite dallo standard che consentono una
191ripartizione equa di questa risorsa.
192Tali regolamentazioni di natura temporale si fondano sulla reciproca
193sincronizzazione delle stazioni che condividono il mezzo fisico, raggiunta
194tramite il mantenimento di un \textbf{orologio} comune al BSS\footnotemark di
195appartenenza.
196Il valore su cui accordarsi viene distribuito all'interno di un \textit{frame}
197di gestione, il \textit{\textbf{beacon}}, inviato ad intervalli regolari e
198prefissati.
199Se già ora si intuisce che l'eventuale perdita di questi messaggi periodici
200durante i salti va minimizzata, ancor di più se ne comprende l'importanza a
201fronte della presenza di ulteriori informazioni di grande interesse per i fini
202preposti.
203\footnotetext{Ancora una volta sarebbe necessaria una distinzione fra le reti
204infrastrutturate e le reti \textit{ad hoc}: il valore comune su cui accordarsi è
205dettato rispettivamente dall'\textit{access point} e dall'intero BSS in maniera
206distribuita.}
207
208Trattasi non solo dei \textbf{TIM} (cfr. \ref{sec:risparmioenergetico}), ma
209anche degli annunci d'inizio dei periodi liberi da contesa presenti nelle reti
210infrastrutturate, lassi di tempo durante i quali l'accesso al mezzo è
211coordinato da un gestore centrale.
212Esso risiede tipicamente nell'\textit{access point} e provvede a coordinare le
213comunicazioni in maniera spesso più efficiente rispetto a quando il
214coordinamento è distribuito.
215
216In aggiunta a quanto detto, il \textit{client} non potrà trascurare le
217\textbf{scadenze} temporali oltre le quali i rapporti di autenticazione e
218associazione con i BSS vengono a cadere.
219
220\subsection{\textit{Wireless Extensions}}
221\label{sec:wext}
222La portabilità in ambienti GNU/Linux è stata ricercata usando come punto di
223riferimento le Linux Wireless Extensions (per brevità \textsc{wext}).
224Il progetto intende mettere ordine in uno scenario spesso dominato
225dall'eterogeneità, proponendo delle interfacce unificate per i driver di sistema
226delle varie soluzioni \textit{hardware} disponibili.
227Nel momento in cui si scrive non tutti i \textit{driver} che si sono
228completamente uniformati a questo insieme di interfacce, ma la speranza che esse
229diventino presto lo standard \textit{de facto}.
230
231Accanto alle API di programmazione sono stati sviluppati anche gli
232\textit{Wireless Tools}, comodi strumenti per l'utente che intendono
233offrire le medesime possibilità attraverso un'interfaccia a riga di comando.
234
235\subsection{Implementazioni}
236\label{sec:implementazioni}
237
238\subsubsection{Architettura}
239\label{sec:architettura}
240Lo standard IEEE 802.11 definisce due strati di rete che sono riconducibili,
241facendo riferimento al modello ISO/OSI, al livello fisico e a quello MAC
242(\textit{Medium Access Control}), implementati dai produttori tramite
243l'accoppiata \textit{hardware}/\textit{firmware}.
244MAC viene solitamente realizzato così a basso livello per rispondere alle
245esigenze di velocità e accuratezza temporale di cui si accennava in
246\ref{sec:vincolitemporali}.
247È importante sottolineare, quindi, che qualunque idea risolutiva dello studio in
248questione non potrà prescindere dalle modalità di interazione (interfacce e
249regolazioni) consentite dalla specifica implementazione di MAC.
250Questa dipendenza diventa tanto più rilevante quanto la soluzione perseguita si
251discosta dalla rigidità dello standard.
252
253La revisione 802.11i (introdotta in \ref{80211i}, che estende lo standard
254migliorando la sicurezza da esso offerta, definisce nuove funzionalità per il
255livello MAC che possono invece essere tranquillamente implementate all'esterno
256del \textit{firmware}.
257
258\subsubsection{Libertà d'azione}
259\label{sec:libertàdazione}
260Le più diffuse implementazioni di 802.11 sono quantomai lontane dalle
261libertà di azione sperabili poiché il \textit{firmware} risulta essere
262scarsamente programmabile, consentendo poco più delle interazioni necessarie al
263normale funzionamento.
264Esempi di soluzioni \textit{chipset} che siano contrarie a questa tendenza, e
265pertanto interessanti, vengono riportati da \cite{defguide}: Atheros e Broadcom;
266il primo dei due, provato direttamente dagli autori, sarà oggetto della sezione
267\ref{sec:casoreale}.
268
269A complicare ulteriormente la situazione intervengono le limitazioni imposte
270dalle autorità delle comunicazioni di molti Paesi (si pensi all'FCC
271statunitense\footnotemark), che richiedono la distribuzione dei trasmettitori
272radio con \textit{firmware} in forma necessariamente binaria per scongiurare
273violazioni dei limiti di utilizzo delle frequenze.
274\footnotetext{Per maggiori informazioni si veda:\\
275\url{http://ftp.fcc.gov/Bureaus/Engineering_Technology/Orders/2001/fcc01264.pdf
276}}
277
278\subsubsection{Interpretazione dello standard}
279\label{sec:interpretazionedellostandard}
280
281Nemmeno le più fedeli realizzazioni di 802.11 (come segnala \cite{defguide})
282supportano la preautenticazione , quindi i servizi di autenticazione e
283associazione risultano indissolubilmente legati, vanificando ogni possibilità di
284realizzare nativamente autenticazioni multiple.
285Di conseguenza, il superamento di questo limite, vincolante per realizzare
286associazioni multiple simultanee, sarà, in tutta la sua complessità, compito
287dell'implementatore della soluzione proposta in \ref{sec:soprailfirmware}.
288
289Un'altra eventuale (e poco probabile) limitazione dovuta all'interpretazione
290dello standard può derivare dalla libertà concessa riguardo la stessa
291implementazione del supporto alla gestione energetica.
292
293\subsection{Caso reale}
294\label{sec:casoreale}
295
296Le schede Atheros costituiscono una realtà attraente per i fini dello studio, in
297particolare per ciò che concerne le libertà d'azione concesse di cui al
298\ref{sec:libertàdazione}.
299Il driver MADWiFi è in grado sfruttare in maniera interessante le
300potenzialità fornite da questo \textit{chipset}, offrendo funzionalità non
301troppo distanti dagli scopi del presente.
302
303\subsubsection{Il \textit{chipset} Atheros}
304\label{sec:atheros}
305
306I \textit{chipset} Atheros equipaggiano i dispositivi 802.11 di alcuni
307fra i maggiori produttori di \textit{hardware} per la connettività, come
308Linksys, NETGEAR, D-Link, Orinoco, Proxim o 3Com.
309Il suo \textit{firmware} consente un grado di interazione dall'estensione
310incomparabile, esponendo un'interfaccia in grado di offrire controllo anche su
311dettagli generalmente offuscati.
312
313Proprio per questa ragione la sua distribuzione è vincolata alla presenza di un
314sovrastrato (reso disponibile in sola forma binaria) atto a limitare
315l'interfaccia al fine di impedire utilizzi non conformi alle vigenti
316regolamentazioni sugli apparecchi radio.
317Tale componente, denominato HAL (\textit{Hardware Abstraction Layer}),
318interviene limitando le radiofrequenze operative del dispositivo, continuando
319comunque a concedere le libertà auspicate.
320
321\subsubsection{Il \textit{driver} MADWiFi}
322\label{sec:madwifi}
323A partire dallo scorso anno la spinta innovatrice di Atheros ha avuto riscontro
324nel progetto MADWiFi, i \textit{driver} liberi per piattaforme Linux sviluppati
325inizialmente da Sam Leffler.
326Infatti i miglioramenti introdotti dal nuovo HAL sono stati sfruttati
327per l'introduzione di una serie di funzionalità di grande rilevanza.
328Il carattere rivoluzionario rende il progetto, come spesso capita, piuttosto
329instabile ma assai vitale.
330
331\paragraph{VAP}
332L'aspetto indubbiamente più interessante è l'introduzione della modalità
333VAP (\textit{Virtual Access Point}), grazie alla quale è possibile
334virtualizzare il dispositivo creando molteplici interfacce di rete operanti
335concorrentemente.
336Questa funzionalità è implementata facendo uso del medesimo livello fisico,
337vincolando così l'operatività dei VAP sullo stesso canale trasmissivo.
338Ciononostante, la rosa delle possibilità rimane ben assortita, permettendo la
339creazione di molteplici \textit{access point} e/o una (e al più una) stazione in
340modalità \textit{managed} o \textit{ad-hoc}.
341La nota modalità \textit{monitor} viene inoltre resa inseribile in una qualsiasi
342delle configurazioni appena descritte, con la semplice aggiunta di un VAP di
343questo tipo.
344Le interfacce virtuali create possono essere utilizzate comodamente in piena
345trasparenza, essendo aderenti alle \textit{Wireless Extensions}.
346\paragraph{WDS}
347I vari VAP creati possono poi essere eventualmente interconnessi tramite il WDS,
348un'altra delle caratteristiche salienti del driver, che realizza un sistema di
349distribuzione basato su connessioni 802.11 fra i BSS d'interesse, siano
350essi locali (e virtualizzati) o esterni.
351Questa caratteristica risponde agilmente all'esigenza di creazione di
352interconnessioni di differenti reti senza fili.
353\paragraph{Gestione}
354L'alto grado di controllo permesso dal \textit{firmware} Atheros si propaga fino
355all'utente attraverso il \textit{driver} grazie ai suoi numerosi parametri
356specifici, che si ricordano essere gestibili tramite il comando \texttt{iwpriv}
357degli \textit{Wireless Tools}.
358Un ulteriore strumento a riga di comando, \texttt{wlanconfig}, completa le
359necessità di amministrazione proprie di questo \textit{driver}, permettendo
360creazione, distruzione e cambio di modalità dei VAP.
361
362\section{Soluzioni}
363\label{sec:soluzioni}
364Lo studio di fattibilità in oggetto non può che aver prodotto degli schemi di
365soluzione che coniugano le idee emerse durante la fase di analisi del problema.
366Queste proposte si differenziano per il livello implementativo di riferimento,
367poiché esso comporta un importante \textit{trade-off} fra portabilità ed
368efficienza.
369Quanto più basso, infatti, è il livello al quale si opera, tanto più alta è la
370possibilità di sfruttare appieno le potenzialità del dispositivo, a scapito
371della compatibilità offerta e della facilità implementativa.
372Punto fermo di ogni soluzione proponibile è l'effettuazione di salti periodici
373fra i BSS ai quali il \textit{client} desideri essere ``contemporaneamente''
374associato.
375Le differenze di prestazioni fra le due soluzioni che si proporranno di
376seguito sono dovute proprio ai diversi tempi che i salti periodici
377richiedono, che costituiscono quasi interamente l'\textit{overhead} introdotto.
378
379Si procederà quindi ad illustrare due soluzioni, dimostrando quanto appena
380affermato e calcolando il rapporto fra vantaggi e svantaggi che esse comportano.
381
382\subsection{Sopra il \textit{firmware}}
383\label{sec:soprailfirmware}
384
385\subsubsection{Descrizione}
386Questa soluzione nasce dal desiderio di realizzare associazioni multiple
387effettive per mezzo delle quali, cioé, in ogni istante ciascun BSS consideri il
388\textit{client} regolarmente associato.
389Ciò che si propone consiste sostanzialmente di modifiche al \textit{driver} per
390implementare i salti fra i BSS in maniera tale da evitare la perdita di
391associazione presso ognuno di essi.
392
393\paragraph{Come}
394Per far ciò si deve interagire direttamente (ed eventualmente in maniera
395poco corretta) con l'entità di gestione di 802.11, che si è già chiarito
396risiedere all'interno del \textit{firmware} della scheda \textit{wireless}.
397Soltanto il \textit{driver} sovrastante ha infatti la possibilità di alterare
398determinati stati interni al \textit{firmware} per modificare il comportamento
399di MAC.
400I parametri a cui ci si riferisce sono quelli che regolano i rapporti di
401associazione e autenticazione della stazione: caratteristiche del
402BSS, caratteristiche della crittografia e dell'autenticazione in uso, eventuali
403chiavi temporanee \ldots
404
405\paragraph{Gabola}
406\label{gabola}
407Uno degli aspetti più convincenti di questa soluzione è la possibilità di
408utilizzare la modalità di risparmio energetico (introdotta nella sezione
409\ref{sec:risparmioenergetico}), grazie all'effettività dell'associazione.
410I ripetuti salti costringono il \textit{client} ad assenze dal canale che
411possono infatti essere spacciate senza troppa difficoltà per riposi
412preannunciati, costringendo con l'inganno i BSS a conservare i dati a lui
413diretti. Per completare questa strategia, la stazione simula al suo ritorno un
414risveglio per ricevere l'intera mole di informazioni in attesa di consegna.
415
416\paragraph{Architettura}
417Il \textit{design} della soluzione intende rispondere alle esigenze di
418trasparenza per il sistema operativo e, di conseguenza, per l'utente.
419Le interfacce virtuali, della cui presenza il \textit{driver} è tenuto a
420notificare il SO, aderiscono alle \textit{Wireless Extensions} e si
421differenziano attraverso diversi indirizzi MAC (verosimilmente fittizi).
422Questa forma di \textit{spoofing} è necessaria sia per lo smistamento dei flussi
423in entrata alla stazione e provenienti dai BSS, sia per il convogliamento di
424quelli in uscita dalla stazione e diretti ai vari BSS.
425%
426%       Grafico della faccenda
427%       OS   [] [] []
428%              \ | /
429%       DRI     \|/
430%       FW      [ ]
431%     ANTENNA    Y
432%              .'  `.
433% BSS1       .'      B1
434% BSS2     B2
435%
436Così facendo si rende peraltro possibile l'utilizzo di associazioni multiple
437all'interno del medesimo ESS per ridondare la partecipazione.
438La residenza del componente di gestione dei flussi multipli di comunicazione
439all'interno del \textit{driver} lascia chiaramente spazio all'aggiunta di
440politiche per pianificazioni ottimali delle trasmissioni (se ne parlerà più
441approfonditamente in \ref{sec:ottimizzazioni}.
442
443\subsubsection{Vantaggi}
444\begin{description}
445 \item [Perdita di dati nulla]:\\
446  \begin{math} \Leftarrow \end{math}
447  i dati in arrivo vengono conservati dai BSS grazie allo sfruttamento della
448  modalità di risparmio energetico (cfr. \ref{sec:risparmioenergetico} e
449  \ref{gabola}).
450 \item [Prestazioni massime]:\\
451  \begin{math} \Leftarrow \end{math}
452  l'effettiva associazione multipla minimizza il costo dei salti evitando
453  riautenticazioni e riassociazioni (cfr. \ref{sec:accessoallarete}).
454 \item [Trasparenza totale]:\\
455  \begin{math} \Leftarrow \end{math}
456  le interfacce aderenti alle \texttt{wext} nascondono completamente la realtà
457  dei fatti (cfr. \ref{sec:wext}).
458 \item [Punto di partenza già disponibile]:\\
459  \begin{math} \Leftarrow \end{math}
460  \texttt{MADWiFi} implementa un sottoinsieme delle funzionalità in oggetto
461  (cfr. \ref{sec:madwifi}).
462\end{description}
463
464\subsubsection{Svantaggi}
465\begin{description}
466 \item [Sforzo implementativo considerevole]:\\
467  \begin{math} \Leftarrow \end{math}
468  le nuove funzionalità hanno un prezzo alto, dovendo mantentere le informazioni
469  relative agli stati di autenticazione associazione ed eventualmente
470  sincronizzare la presenza su un BSS ad infrastruttura con i suoi periodi
471  liberi da  contesa (cfr. \ref{sec:vincolitemporali} o
472  \ref{sec:ottimizzazioni});\\
473  \begin{math} \Leftarrow \end{math}
474  per evitare la perdita dei \texttt{beacon}, indispensabili per il rispetto
475  dei vincoli temporali, si è costretti ad una parziale reimplementazione di
476  MAC (cfr. \ref{sec:vincolitemporali});\\
477  \begin{math} \Leftarrow \end{math}
478  il basso livello a cui si è costretti ad agire implica un'intrinseca
479  complessità;\\
480  \begin{math} \Leftarrow \end{math}
481  la forma binaria nella quale i \textit{firmware} sono sovente distribuiti
482  può costringere a noiose operazioni di ingegneria inversa.
483 \item [Limitazioni prestazionali]:\\
484  \begin{math} \Leftarrow \end{math}
485  i vincoli temporali dovuti ad esigenze ordinarie (mantenimento
486  dell'associazione) e aggiuntive (ritiro dei dati conservati dai BSS)
487  costringono a salti indesiderati (cfr. \ref{sec:vincolitemporali}).
488 \item [Specificità]:\\
489  \begin{math} \Leftarrow \end{math}
490  la dipendenza dalla piattaforma \textit{hardware} sottostante azzera la
491  portabilità;\\
492  \begin{math} \Leftarrow \end{math}
493  lo sviluppo è possibile solo sui rari \textit{firmware} sufficientemente
494  controllabili (cfr. \ref{sec:libertàdazione} e \ref{sec:atheros});\\
495  \begin{math} \Leftarrow \end{math}
496  il supporto alla funzionalità di risparmio energetico dal  lato
497  \textit{client} come da quello BSS è indispensabile per  l'efficienza, (cfr.
498  \ref{sec:risparmioenergetico} e \ref{gabola}).
499\end{description}
500
501\subsection{Sopra il \textit{driver}}
502\label{sec:sopraildriver}
503
504\subsubsection{Descrizione}
505\label{sec:descrizione2}
506Lo spirito con il quale questa soluzione viene concepita è quello di lavorare ad
507alto livello in piena aderenza allo standard, favorendo la portabilità e
508minimizzando, peraltro, gli sforzi implementativi.
509La scelta di interazione con un generico \textit{driver} di sistema per ambienti
510GNU/Linux risponde a queste esigenze obbligando alla rinuncia dell'effettività
511dell'associazione multipla e al pagamento degli esigui costi di riassociazione.
512
513
514\paragraph{Come}
515Come accennato in \ref{sec:interpretazionedellostandard} ogni implementazione
516lega indissolubilmente i concetti di autenticazione e riassociazione,
517vanificando la speranza di mantenere autenticazioni multiple ed obbligando a
518rincarare (spesso non di poco) i costi dei salti fra i BSS.
519Un salto dal BSS1 al BSS2 consta quindi di questa sequenza di operazioni:
520<dissociazione da BSS1, deautenticazione da BSS1, autenticazione con BSS2,
521associazione con BSS2>.
522Si tenga a mente che la persistenza delle autenticazioni a livelli
523superiori (si veda \ref{80211i}) non dovrebbe essere compromessa a causa di
524questa pratica.
525
526\paragraph{Interfacce}
527La portabilità perseguita trova espressione nell'uso delle \textit{Wireless
528Extensions}, in qualità di interfacce unificate dei driver per la piattaforma
529di riferimento.
530Ancor di più, si propone di rendere conformi a queste API le stesse interfacce
531virtuali, create per rappresentare ognuna delle partecipazioni ai BSS nella
532maniera quanto più comoda e trasparente.
533
534\subsubsection{Vantaggi}
535\label{vantaggi2}
536\begin{description}
537 \item[Facilità implementativa]:\\
538  \begin{math} \Leftarrow \end{math}
539  il livello implementativo è alto e si interagisce in maniera onesta con il
540  \textit{driver}.
541 \item[Trasparenza]:\\
542  \begin{math} \Leftarrow \end{math}
543  la presentazione di interfacce aderenti alle \textsc{wext} oscura la presenza
544  dell'implementazione ai livelli superiori (permettendo compatibilità, ad
545  esempio, con \texttt{wpa\_supplicant}) e ne semplifica la gestione.
546 \item[Portabilità]:\\
547  \begin{math} \Leftarrow \end{math}
548  per dialogare con il \textit{driver} sottostante si fa uso delle interfacce
549  \textsc{wext}, disponibili su ogni piattaforma GNU/Linux.
550\end{description}
551
552\subsubsection{Svantaggi}
553\label{svantaggi2}
554
555\begin{description}
556 \item [Perdita di dati in arrivo]:\\
557  \begin{math} \Leftarrow \end{math}
558  la perdita di autenticazione e associazione fra un salto e l'altro comporta
559  reali assenze dai BSS che non possono essere evitate; il problema potrebbe
560  essere invero gestito da strati di rete superiori ed affidabili (e.g. TCP).
561 \item [Prestazioni mediocri]:\\
562  \begin{math} \Leftarrow \end{math}
563  i salti e le conseguenti operazioni di riautenticazione, riassociazione e
564  risincronizzazione richiedono tempi nell'ordine dei centesimi di secondi. Per
565  avere un'idea dell'entità di questo \textit{overhead} si pensi che lo
566  stesso lasso di tempo potrebbe essere impiegato per la trasmissione di un
567  centinaio di KB.
568
569\end{description}
570\section{Ottimizzazioni}
571\label{sec:ottimizzazioni}
572Si propone infine una breve trattazione dei fattori che possono essere
573tenuti in considerazione per pianificare oculatamente le trasmissioni al fine
574di ridurre i costi di gestione relativi alle soluzioni descritte in
575\ref{sec:soluzioni}.
576È però compito del lettore valutare, a seconda della soluzione scelta, la
577rilevanza specifica che ognuno di essi riveste.
578
579\begin{description}
580 \item [Scadenze temporali]
581 Come già esplicitato in \ref{sec:vincolitemporali} sussistono scadenze
582 temporali la cui osservanza risulta essere necessaria (\textit{timeout} di
583 autenticazione e associazione) o semplicemente conveniente (periodi di
584 sincronizzazione dei BSS o di inizio del CFP).
585 \item [Impatto dei salti]
586 Il costo dei salti può essere calcolato per regolare la frequenza minima con la
587 quale essi sono effettuati.
588 \item [Caratteristiche delle comunicazioni]
589 Date le alte latenze che possono essere prodotte dai salti di BSS, una
590 politica di pianificazione delle comunicazioni basata su priorità\footnotemark
591 può migliorare la qualità della schedulazione.
592 \footnotetext{La qualità di servizio (QoS) suggerita è peraltro oggetto dei
593 miglioramenti presenti in \cite{80211e}.}
594 \item [Qualità dei BSS]
595 Qualora le destinazioni di interesse siano raggiungibili tramite più di uno
596 dei BSS di appartenenza, la scelta potrebbe essere banalmente influenzata
597 dalla qualità che essi offrono (qualità del segnale, carico di lavoro
598 \ldots~).
599
600\end{description}
601
602\clearpage
603
604\section{Ringraziamenti}
605\label{sec:ringraziamenti}
606Vittorio Ghini, docente del corso di ``Laboratorio di programmazione di rete'',
607per averci proposto l'occasione di condurre questo studio e per l'entusiasmo
608che ha saputo trasmetterci.\\
609Luciano Bononi, docente del corso di ``Sistemi di reti \textit{wireless}'', per
610gli indirizzamenti offerti.\\
611Sam Leffler, autore di MADWiFi, per le conferme a proposito della soluzione
612sopra il \textit{firmware} con schede Atheros.\\
613Jouni Malinen, autore di \texttt{wpa\_supplicant}, per i chiarimenti riguardo
614alcuni aspetti dell'autenticazione di 802.11i.
615
616\bibliography{Bibliografia}
617\bibliographystyle{alpha}
618\nocite{*}
619
620\end{document}
Note: See TracBrowser for help on using the repository browser.