27 | | * [http://hardware.slashdot.org/comments.pl?sid=89147&cid=7712841 Interessante articolo su SlashDot di un tizio che si e' interessato all'argomento] |
28 | | |
29 | | ---- |
30 | | = Studio di fattibilita': associazione multipla simultanea = |
31 | | == Introduzione == |
32 | | |
33 | | L'avvio e l'approccio di questo studio dipende in maniera forte dagli aspetti |
34 | | architetturali del protocollo 802.11. La questione non entra in gioco soltanto |
35 | | nel definire una bozza di implementazione, ma, ancor prima, nel comprendere |
36 | | quali siano le strade da intraprendere per una realizzazione a livello mentale. |
37 | | |
38 | | Dalle conoscenze iniziali dell'intero gruppo di lavoro e' risultato evidente |
39 | | che la ricerca non poteva perseguire una soluzione che lavorasse al di sopra di |
40 | | tutto lo stack IEEE 802.11. In questo tipo di scenario si renderebbe necessaria |
41 | | la ri-associazione ad ogni cambio di canale, una operazione che richiede tempi |
42 | | lunghi (o biblici, e' da considerare anche l'autenticazione), se comparati ai |
43 | | tempi di trasmissione dei dati. |
44 | | |
45 | | Se come riferimento si prende lo stack ISO/OSI, da quanto detto risulta |
46 | | evidente che la ricerca sara' orientata al di sotto del livello "network". |
47 | | |
48 | | Prima di poter proseguire in maniera sensata, si ritiene pertanto necessario |
49 | | approfondire la conoscenza dell'interfaccia offerta dal livello MAC e da quello |
50 | | PHY e come esse possano essere utilizzate. In aggiunta a questo e' da chiarire |
51 | | quanto forte sia la dipendenza fra il livello PHY e l'hardware del dispositivo |
52 | | sottostante. |
53 | | |
54 | | == Architettura dello standard IEEE 802.11 == |
55 | | I due livelli (data link e fisico) su cui lo standard e' definito possiedono |
56 | | un insieme di operazioni primitive proprie, ma le loro definizioni sono lungi |
57 | | dal poter essere considerate vere e proprie interfacce: si tratta delle "MAC |
58 | | layer management entities" (MLME) e delle "PHY layer management entities" |
59 | | (PLME). |
60 | | E' assai importante notare, specialmente ai fini dello studio in oggetto, che lo |
61 | | strato MAC non oscura il sottostante PHY, ma permette alla "station management |
62 | | entity" (SME) di interagire direttamente con esso. Le varie entita' hanno la |
63 | | possibilita' di comunicare fra loro secondo le specifiche dello standard, |
64 | | attraverso i SAP (service access point). Tale concetto intende aggregare |
65 | | l'insieme di chiamate che una determinata entita' espone alle altre per |
66 | | realizzare forme di comunicazione o invocazione. |
67 | | |
68 | | {{{ |
69 | | __||________________________ |
70 | | | | | | |
71 | | | MAC | MLME = | |
72 | | | | | | |
73 | | |--||--|--||--| Station | |
74 | | | | | Managemement | |
75 | | | PLPC | PLME | Entity | |
76 | | | | | | |
77 | | |--||--| = | |
78 | | | | | | |
79 | | | PMD | | | |
80 | | |______|______|______________| |
81 | | }}} |
82 | | |
83 | | |
84 | | In generale il livello MAC, come ovvio, deve essere il piu' possibile |
85 | | indipendente da quello fisico anche se a volte e' necessario che il livello MAC |
86 | | gestisca stati opportuni del livello fisico. |
87 | | |
88 | | Il livello PHY viene suddiviso nella seguente maniera: |
89 | | * PLCP (Physical Layer Convergence Procedure): funzioni di convergenza del |
90 | | livello fisico (adattamento del medium a PHY service), che realizzano una |
91 | | traduzione al fine di rendere l'interfaccia comune; |
92 | | * PMD (Physical Medium Dependent): insieme di funzioni fortemente dipendenti |
93 | | dallo specifico dispositivo wireless (ad esempio richieste di trasmissione o |
94 | | ricezione di dati). |
95 | | |
96 | | Anche in questo caso le relazioni con l'esterno sono gestite da appositi |
97 | | moduli SAP: uno specifico per la porzione PLCP (PMD-SAP) e un altro relativo al |
98 | | sottostrato PMD (PMD-SAP). |
99 | | |
100 | | === Primitive di gestione generica === |
101 | | Le informazioni specifiche per la gestione di ogni strato sono incapsulate |
102 | | all'interno di cio' che viene definita Management Information Base (MIB) che |
103 | | puo' essere visto come un componente di ogni livello. In accordo con questo, |
104 | | ogni Management Entity possiede specifiche primitive di GET e SET in |
105 | | grado di operare sugli attributi della relativa MIB. Informazioni dettagliate |
106 | | sugli attributi dei vari MIB sono presenti nel |
107 | | [http://www.xt3.it/reti0506/MIB-D6.2.txt documento ufficiale] |
108 | | |
109 | | === Interfaccia di MAC: MLME SAP === |
110 | | * POWERMGT: richieste al modulo che gestisce il risparmio energetico |
111 | | * SCAN: scansione della rete alla ricerca di BSS disponibili |
112 | | * JOIN: sincronizzazione con un BSS |
113 | | * AUTHENTICATE: autenticazione con un BSS |
114 | | * DEAUTHENTICATE: deautenticazione con un BSS |
115 | | * ASSOCIATE: associazione fra una STA e un AP |
116 | | * REASSOCIATE: associazione fra una STA e un altro AP |
117 | | * DEASSOCIATE: disassociazione fra una STA e un AP |
118 | | * RESET: azzeramento |
119 | | * START: creazione di un nuovo BSS (diventa AP) o IBSS (prima STA di una rete |
120 | | ad-hoc) |
121 | | |
122 | | === Interfaccia di PHY: PLME SAP === |
123 | | In generale si hanno disposizione tutti i getter e i setter necessari per |
124 | | manipolare tutti gli attributi del MIB (normati nell'aggiunta `Annex D`). |
125 | | Inoltre, si hanno a disposizione le seguenti primitive: |
126 | | * PLME-RESET.request: forza il reset del livello PHY, reinizializzandolo allo stato di |
127 | | ricezione; |
128 | | * PLME-CHARACTERISTICS.request: ritorna le caratteristiche operative della PHY |
129 | | entity; |
130 | | * PLME-CHARACTERISTICS.confirm: viene sollevata dalla PHY entity successivamente |
131 | | ad una PLME-CHARACTERISTICS.request. Fornisce le caratteristiche operative |
132 | | della PHY entity; |
133 | | * PLME-DSSSTESTMODE.request: utile per entrare in modalita' test in una PHY DSSS |
134 | | entity; |
135 | | * PLME-DSSSTESTOUTPUT.REQUEST: opzionale, testa i segnali di output di una PHY |
136 | | DSSS entity. |
137 | | |
138 | | |
139 | | === Interfaccia di PHY: PLCP e PMD === |
140 | | Come gia' accennato in precedenza, le funzioni proprie dello strato PHY sono |
141 | | separate nei due livelli distinti PMD e PLCP; quest'ultimo intende fornire il |
142 | | meccanismo per trasferire MPDU fra le STA, stando al di sopra del livello PMD. |
143 | | Anche in questa sezione, i servizi vengono definiti in maniera puramente |
144 | | astratta, in modo da non forzare a particolari implementazioni delle interfacce. |
145 | | |
146 | | Le primitive tra MAC e PHY si possono dividere in due categorie: |
147 | | * primitive per il supporto d'interazioni punto-a-punto a livello MAC |
148 | | (primitiva PHY-DATA.{request,confirm,receive,indication}). |
149 | | * primitive con significato locale per agevolare l'interazione tra sottolivelli |
150 | | (e.g. PHY-TXStart.{request,...}). |
151 | | |
152 | | === Specifiche della modulazione FHSS === |
153 | | Si tratta attualmente della tecnologia piu' diffusa nelle trasmissioni radio. |
154 | | Vengono in generale definite un sacco di primitive che vanno dal controllo |
155 | | del consumo energetico del medium, alla trasmissione, al CS/CCA. |
156 | | Frequency hopping: il salto delle frequenze (channel) e' fatto alfine di |
157 | | ottenere un maggior throughput della rete (non si impegna mai una stessa |
158 | | frequenza per "troppo" tempo). Questo hopping deve avvenire entro |
159 | | un tempo limite di 224us. |
160 | | |
161 | | == Appunti vari == |
162 | | ||20061014-1305||Roma|| |
163 | | Ho letto qualcosa su come si instaura una connessione tra una client e un AP: vi |
164 | | è praticamente una serie di richieste tra il client e l'AP affinchè la |
165 | | connessione venga instaurata; nota importante è che il client prima di |
166 | | collegarsi all'AP deve autenticarsi sull'AP stesso. Una volta fatto cio' AP |
167 | | manda un pacchetto che indica l'avvenuta autenticazione e l'inizio di una nuova |
168 | | connessione. Naturalmente vi sono già delle primitive implementate atte a |
169 | | svolgere questo tipo di compito (sia per quanto riguarda l'instaurazione che |
170 | | per le reinstaurazione). |
171 | | Inoltre i vari client devono essere tutti sincronizzati per paralare tra loro |
172 | | (es che fece anche il seminarista se non ricordo male) e per fare ciò si |
173 | | inviano delle simpatiche "pancette" con dentro il proprio timestamp; a monte |
174 | | comunque c'è l'AP che controlla tutta la sincronizzazione ed egli stesso manda |
175 | | pancette ai client conessi a lui; quindi vi è una doppia sincronizzazione: una |
176 | | tra AP e client e una tra client e client (cap 11 del documento ieee 802.11). |
177 | | |
178 | | = MadWifi e l'estensione per VAP = |
179 | | ,,20061011-1744: soujak,,[[BR]] |
180 | | I driver [http://madwifi.org MadWifi] per schede Atheros su piattaforme Linux |
181 | | implementano gia' la funzionalita' di associazione multipla simultanea grazie |
182 | | ad [http://madwifi.org/wiki/HAL HAL]. Per ulteriori informazioni si veda il |
183 | | relativo [http://madwifi.org/wiki/ngFeatures wiki]. Risulta, come e' chiaro, |
184 | | capire quanto l'implementazione della virtualizzazione delle interfacce di rete |
185 | | dipenda dal chip Atheros o dall'implementazione del driver e quanto invece la |
186 | | funzionalita' possa essere portata anche in scenari differenti. A tal fine si |
187 | | consiglia come riferimento gli stessi |
188 | | [http://madwifi.org/wiki/UserDocs/GettingMadwifi sorgenti]. |
189 | | |
190 | | ,,20061013: soujak,,[[BR]] |
191 | | Da una rapida occhiata ai driver e alla relativa documentazione (User's Guide e |
192 | | README) sono emersi una serie di dettagli rilevanti. |
193 | | Anzitutto parte dell'implementazione del driver e' distribuita in forma binaria |
194 | | dal produttore della scheda per ottemperare a specifici dettami dell FCC. Una |
195 | | scheda wireless e', di fatto, un rice-trasmettitore radio con capacita' |
196 | | tecniche (bande in cui poter operare) che possono infrangere quelle che sono le |
197 | | limitazioni imposte dalle legislazioni dei vari Paesi per l'utilizzo |
198 | | dell'etere. Conseguentemente un firmware (o software?) fornito in forma |
199 | | sorgente potrebbe consentire modifiche che potrebbero portare ad infrazioni |
200 | | legali, come l'ascolto su canali riservati. La funzionalita' di associazione |
201 | | multipla fornita come estensione al driver e' basata su porzioni binarie e |
202 | | quindi emergono dubbi sulla sua portabilita', benche' il driver sia basato su |
203 | | una implementazione di 802.11 (proveniente da BSD) indipendente dal hardware. |
204 | | |
205 | | In aggiunta a questo, l'implementazione espone un limite che poco si confa' alla |
206 | | genericita' che lo studio intende perseguire. Prima di tutto, l'estensione VAP |
207 | | permette soltanto la creazione di piu' AP o l'uso contemporaneo di modalita' |
208 | | STA e AP (associato ad un BSS e contemporaneamente Master). Cosi' facendo, si |
209 | | aggiungono effettivamente possibilita' interessanti (come eseguire sniffing su |
210 | | reti su cui si e' autenticati e addirittura associati), ma se ne precludono |
211 | | parecchie altre (si pensi alle reti ''ad-hoc''). |
212 | | Inoltre l'implementazione non fa uso di strategie di channel-hopping, pertanto i |
213 | | Virtual Access Point sono limitati a coesistere sullo stesso canale e ad |
214 | | utilizzare lo stesso livello fisico - un altra limitazione alla quale si spera |
215 | | di non dover sottostare. |
216 | | |
217 | | Altri aspetti del progetto MadWifi e dell'estensione in oggetto possono invece |
218 | | rivelarsi interessanti, ad esempio l'interfaccia verso l'alto. Gli sviluppatori |
219 | | hanno creato un tool (`wlanconfig`) per facilitare la creazione e la gestione |
220 | | di interfacce virtuali che presentano all'utente la molteplicita' di usi della |
221 | | medesima scheda fisica. |
| 29 | * [wiki:MadWifi I driver MadWifi e l'estensione VAP] |
| 30 | * [http://hardware.slashdot.org/comments.pl?sid=89147&cid=7712841 Interessante articolo su SlashDot] |