Changes between Version 20 and Version 21 of Studio


Ignore:
Timestamp:
Nov 4, 2006, 3:43:28 PM (18 years ago)
Author:
gnappo
Comment:

Resa a se stante la pagina di analisi di 802.11.

Legend:

Unmodified
Added
Removed
Modified
  • Studio

    v20 v21  
    5050analisi dello standard, ha permesso la divisione degli argomenti e facilitato lo
    5151studio stesso e la successiva condivisione delle conoscenze.
    52 
    53 ----
    54 
    55 = Analisi dello standard IEEE 802.11 =
    56 
    57 == Descrizione funzionale del sottolivello MAC ==
    58 Sommario degli argomenti presenti:
    59  * DCF
    60  * PCF
    61  * Frammentazione
    62  * Deframmentazione
    63  * Supporto ad ampiezze di banda multiple
    64  * Sequenze consentite per lo scambio di frame
    65  * Restrizioni aggiuntive per limitare il riordino o lo scarto di MSDU
    66 
    67 === Coordinamento per la trasmissione ===
    68 ,,20061018-1512 SoujaK,,[[BR]]
    69 L'accesso al mezzo di trasmissione comune e' regolato da una strategia che e'
    70 detta CSMA/CA (i.e. ''carrier sense multiple access with collision avoidance'')
    71 che intende minimizzare le probabilita' di collisione.
    72 
    73 La funzionalita' di coordinamento distribuito (Distributed Coordination Function
    74 o, piu' brevemente, DCF) che si fa carico della cosa e' pertanto componente
    75 necessario di ogni stazione, sia che essa operi all'interno di reti configurate
    76 in modalita' ''infrastracture'' che ''ad-hoc''. E' inoltre presente un metodo di
    77 accesso opzionale che si basa su un coordinatore centrale detto PC (i.e. ''Point
    78 Coordinator'') che risiede nell'AP del BSS. Poiche' DCF e PCF devono poter
    79 coesistere ed operare in maniera concorrente all'interno di una BSS, i due
    80 metodi di accesso si alterneranno, con un periodo in cui l'accesso e'
    81 prestabilito e il mezzo libero dalla contesa (Contention-Free Period o CFP)
    82 seguito da un periodo di contesa (Contention Period o CP).
    83 
    84 ==== DCF ====
    85 ===== CSMA/CA e il meccanismo RTS/CTS =====
    86 ,,20061018-2031 SoujaK,,[[BR]]
    87 Il concetto chiave su cui si basa il protocollo di comunicazione CSMA/CA e' la
    88 distribuzione di informazioni di prenotazione del mezzo trasmissivo. I noti
    89 frame RTS e CTS contengono infatti un campo (Duration/ID) che contiene il tempo
    90 durante il quale il mezzo e' riservato per l'invio del frame (o del frammento) e
    91 per la ricezione dell'ACK. Le STA esterne alla comunicazione imparano, tramite
    92 questo meccanismo, che il canale e' occupato per tale lasso di tempo evitando le
    93 collisioni, anche le STA sono all'interno del raggio d'azione del ricevente, ma
    94 non del trasmittente (problema del nodo esposto). E' importante precisare che il
    95 meccanismo RTS/CTS non e' obbligatorio: deve essere evitato per trasmissioni
    96 multicast o broadcast (chi risponderebbe con il CTS?). Inoltre puo' essere
    97 evitato nel caso di frame piccoli (al fine di limitare l'overhead che si
    98 introduce): la soglia e' definita nell'attributo dot11RTSThreshold.
    99 
    100 ===== ''Carrier-sense'' virtuale e il NAV =====
    101 ,,20061027-0416 SoujaK,,[[BR]]
    102 La funzionalita' permette di capire lo stato del mezzo trasmissivo (occupato o
    103 libero) ed e' presente non solo nel sottostrato PHY, come e' ovvio, ma anche in
    104 MAC. Qui in MAC il meccanismo e' da considerarsi virtuale, nel senso che
    105 interroga il Network Allocation Vector. Ogni STA ha il compito di tenere traccia
    106 nel NAV delle "prenotazioni" effettuate da altri che indicano la futura
    107 indisponibilita' del canale e, se necessario, rimandare i tentativi di
    108 trasmissione. Il calcolo di questa durata non e' altro che la somma dei tempi
    109 necessari alle fasi della comunicazione: la trasmissione dei vari frame di dati,
    110 degli [wiki:Studio#Acknoledgment acknoledgment] e l'attesa dei vari
    111 [wiki:Studio#InterframespaceIFSspaceIFS IFS].
    112 Le citate informazioni necessarie alle stazioni estranee alla comunicazione sono
    113 o prefissate dallo standard (la durata di invio di un ACK o i tempi inter-frame)
    114 oppure sono comunicate dalle stazioni interne alla comunicazione. Il campo
    115 Duration/ID e' quindi presente sia nella coppia iniziale < RTS e CTS > che nelle
    116 successive coppie < PDU e ACK > diverse dalla prima; esso contiene la distanza
    117 temporale al termine della comunicazione, i.e. il primo acknoledgment.
    118 
    119 ===== Acknoledgment =====
    120 ,,20061027-0445 SoujaK,,[[BR]]
    121 La strategia usata e' l'acknoledgment positivo, il che significa che la STA
    122 ricevente ha il compito di confermare alla STA trasmittente la corretta
    123 ricezione del frame (solo in caso di frame unicast, come e' facile intuire). Il
    124 trasmittente attende il frame ACK per un periodo di tempo fissato da
    125 ACKTimeout e poi conclude che la trasmissione e' fallita. Lo stesso succede
    126 qualora esso riceva altro che non sia un ACK. Si noti che la mancata ricezione
    127 dell'ACK puo' indistinguibilmente indicare anche un errore durante la
    128 trasmissione dello stesso acknoledgment.
    129 
    130 ===== Interframe space (IFS) =====
    131 ,,20061019-0849 SoujaK,,[[BR]]
    132 Lo standard stabilisce la lunghezza di tempo che deve intercorrere fra le
    133 trasmissioni dei vari frame; lo scopo e' quello di fornire informazioni precise
    134 alle stazioni. Queste ultime, attraverso il meccanismo ''carrier-sense'',
    135 attendono infatti di poter considerare libero il mezzo trasmissivo a seconda
    136 dei periodi di inattivita' rilevati.
    137 
    138 A seconda della situazione viene usato uno dei seguenti 4 periodi:
    139  1. SIFS (short interframe space):
    140     usato per frame ACK, CTS, per frame (eccetto il primo) di una
    141     trasmissione frammentata, per le risposte al polling del PCF;
    142  2. PIFS (PCF interframe space):
    143     usato solo dalle STA che, sotto un PCF, tentano di avere accesso al mezzo
    144     trasmissivo all'inizio del CFP;
    145  3. DIFS (DCF interframe space):
    146     usato sotto DCF dalle STA per i frame dati (MPDU) o per i frame di gestione
    147     (MMPDU);
    148  4. EIFS (extented interframe space):
    149     usato quando il PHY indica al MAC che l'ultimo frame MAC non e' stato
    150     ricevuto corettamente e che il campo FCS non e' utilizzabile;
    151 
    152 ===== Random backoff time =====
    153 ,,20061025-1233 SoujaK,,[[BR]]
    154 In seguito al rilevamento di inattivita' del mezzo trasmissivo (secondo le
    155 politiche appena descritte), ogni STA e' tenuta a ritardare ulteriormente la
    156 propria trasmissione per un periodo di backoff di durata casuale, a meno che non
    157 sia gia' stato impostato il relativo timer. L'intento e' quello di evitare che
    158 tutte le STA in attesa collidano nel momento in cui contemporaneamente
    159 effettuino tentativi di trasmissione.[[BR]]
    160 Il periodo di backoff e' espresso come quantita' casuale di quanti di tempo (dal
    161 valore `aSlotTime` presente in PHY). Questa quantita' di slot e' mantenuta in un
    162 intero pseudocasuale le cui variazioni devono osclillare in maniera
    163 uniforme fra 0 e CW, un altro parametro definito come intero compreso
    164 nell'intervallo di estremi `aCWmin` e `aCWmax`(definiti in PHY). Ogni STA
    165 mantiene inoltre una coppia di contatori dei tentativi di trasmissione (SSRC e
    166 SLRC) non andati a buon fine: questi vengono inizializzati a 0 e vengono
    167 incrementati con l'andamento andamento esponenziale del 2 ogni volta che la
    168 comunicazione fallisce. Supponendo CWmin e CWmax settati rispettivamente a 7 e a
    169 255, un esempio di incremento esponenziale e' dato dalla sequenza 7, 15, 31, 63,
    170 127, 255, 255. Un cosi' alto andamento di crescita del periodo di backoff rende
    171 piu' stabile il protocollo, aumentando la sua capacita' di adeguarsi
    172 repentinamente a condizioni di alto carico per poi saperle sopportare con
    173 maggiore facilita'.[[BR]]
    174 I contatori prima citati vengono poi resettati (azzerati) al verificarsi di
    175 determinati eventi interpretabili come comunicazione ben riuscita (e.g la
    176 ricezione di un ACK): i due contatori si differenziano proprio su questo
    177 particolare, ma non e' il caso di approfondire ulteriormente.
    178 
    179 ===== Frame duplicati =====
    180 ,,20061027-0536 SoujaK,,[[BR]]
    181 Dal momento che le procedure di conferma di trasmissione e di ritrasmissione
    182 sono incorporati all'interno del protocollo, esiste la possibilita' che un
    183 determinato frame venga ricevuto piu' di una volta. La stazione ricevente deve
    184 rendersi conto della duplicazione e scartare i doppioni. E' stato pertanto
    185 inserito un campo di controllo di sequenza all'interno nei frame dati e in
    186 quelli di gestione, contentente il numero della sequenza e quello del frammento.
    187 Ogni STA mantiene dunque una cache delle tuple <indirizzo, numero
    188 di sequenza, numero di frammento> che permette di identificare agilmente i
    189 frame duplicati. Il numero di sequenza e' un intero progressivo che __tende__ ad
    190 essere unico fra i vari frame: qualora (sfortunatamente) capitasse il contrario,
    191 il frame valido erroneamente scartato verrebbe presto ritrasmesso dalla
    192 sorgente.
    193 
    194 ==== PCF ====
    195 ,,SoujaK: da fare :(,,
    196 
    197 == Gestione degli strati ==
    198 I due livelli (data link e fisico) su cui lo standard e' definito possiedono
    199 un insieme di operazioni primitive proprie, ma le loro definizioni sono lungi
    200 dal poter essere considerate vere e proprie interfacce: si tratta delle "MAC
    201 layer management entities" (MLME) e delle "PHY layer management entities"
    202 (PLME).
    203 E' assai importante notare, specialmente ai fini dello studio in oggetto, che lo
    204 strato MAC non oscura il sottostante PHY, ma permette alla "station management
    205 entity" (SME) di interagire direttamente con esso. Le varie entita' hanno la
    206 possibilita' di comunicare fra loro secondo le specifiche dello standard,
    207 attraverso i SAP (service access point). Tale concetto intende aggregare
    208 l'insieme di chiamate che una determinata entita' espone alle altre per
    209 realizzare forme di comunicazione o invocazione. Il periodo di inattivita' che
    210 le STA si autoimpongono e' detto CW (contention window) e viene ripetuto
    211 ogni volta che si presenti una collisione. Viene inoltre incrementato a fronte
    212 di ogni collisione con andamento esponenziale (per scongiurare il pericolo
    213 di fino al raggiungimento di un valore massimo prestabilito.
    214 
    215 {{{
    216   __||________________________
    217  |      |      |              |
    218  | MAC  | MLME =              |
    219  |      |      |              |
    220  |--||--|--||--| Station      |
    221  |      |      | Managemement |
    222  | PLPC | PLME | Entity       |
    223  |      |      |              |
    224  |--||--|      =              |
    225  |      |      |              |
    226  | PMD  |      |              |
    227  |______|______|______________|
    228 }}}
    229 
    230 
    231 In generale il livello MAC, come ovvio, deve essere il piu' possibile
    232 indipendente da quello fisico anche se a volte e' necessario che il livello MAC
    233 gestisca stati opportuni del livello fisico.
    234 
    235 Il livello PHY viene suddiviso nella seguente maniera:
    236  * PLCP (Physical Layer Convergence Procedure): funzioni di convergenza del
    237    livello fisico (adattamento del medium a PHY service), che realizzano una
    238    traduzione al fine di rendere l'interfaccia comune;
    239  * PMD (Physical Medium Dependent): insieme di funzioni fortemente dipendenti
    240    dallo specifico dispositivo wireless (ad esempio richieste di trasmissione o
    241    ricezione di dati).
    242 
    243 Anche in questo caso le relazioni con l'esterno sono gestite da appositi
    244 moduli SAP: uno specifico per la porzione PLCP (PLCP-SAP) e un altro relativo al
    245 sottostrato PMD (PMD-SAP).
    246 
    247 === Primitive di gestione generica ===
    248 Le informazioni specifiche per la gestione di ogni strato sono incapsulate
    249 all'interno di cio' che viene definita Management Information Base (MIB) che
    250 puo' essere visto come un componente di ogni livello. In accordo con questo,
    251 ogni Management Entity possiede specifiche primitive di GET e SET in
    252 grado di operare sugli attributi della relativa MIB. Informazioni dettagliate
    253 sugli attributi dei vari MIB sono presenti nel
    254 [http://www.xt3.it/reti0506/MIB-D6.2.txt documento ufficiale]
    255 
    256 === Interfaccia di MAC: MLME SAP ===
    257  * POWERMGT: richieste al modulo che gestisce il risparmio energetico
    258  * SCAN: scansione della rete alla ricerca di BSS disponibili
    259  * JOIN: sincronizzazione con un BSS
    260  * AUTHENTICATE: autenticazione con un BSS
    261  * DEAUTHENTICATE: deautenticazione con un BSS
    262  * ASSOCIATE: associazione fra una STA e un AP
    263  * REASSOCIATE: associazione fra una STA e un altro AP
    264  * DEASSOCIATE: disassociazione fra una STA e un AP
    265  * RESET: azzeramento
    266  * START: creazione di un nuovo BSS (diventa AP) o IBSS (prima STA di una rete
    267    ad-hoc)
    268 
    269   ,,20061019-0920 SoujaK:,,
    270   ''La revisione g del documento non introduce nessun cambiamento alle
    271   interfacce del SAP legato al livello MAC. Viene piuttosto esteso il livello
    272   PHY al fine di supportare larghezze di banda maggiori e differenti modulazioni
    273   del segnale.''
    274 
    275 === Interfaccia di PHY: PLME SAP ===
    276 In generale si hanno disposizione tutti i getter e i setter necessari per
    277 manipolare tutti gli attributi del MIB (normati nell'aggiunta `Annex D`).
    278 Inoltre, si hanno a disposizione le seguenti primitive:
    279  * RESET.request: forza il reset del livello PHY, reinizializzandolo allo stato
    280    di ricezione;
    281  * CHARACTERISTICS.request: ritorna le caratteristiche operative della PHY
    282    entity;
    283  * CHARACTERISTICS.confirm: viene sollevata dalla PHY entity successivamente
    284    ad una CHARACTERISTICS.request. Fornisce le caratteristiche operative
    285    della PHY entity;
    286  * DSSSTESTMODE.request: utile per entrare in modalita' test in una PHY DSSS
    287    entity;
    288  * DSSSTESTOUTPUT.request: opzionale, testa i segnali di output di una PHY
    289    DSSS entity.
    290 
    291 
    292 === Interfaccia di PHY: PHY SAP ===
    293 Come gia' accennato in precedenza, le funzioni proprie dello strato PHY sono
    294 separate nei due livelli distinti PMD e PLCP; quest'ultimo intende fornire un
    295 meccanismo indipendente dalla PHY entity per trasferire MPDU fra le STA.
    296 Anche in questa sezione, i servizi vengono definiti in maniera puramente
    297 astratta, in modo da non forzare a particolari implementazioni delle interfacce.
    298 
    299 Le primitive tra MAC e PHY si possono dividere in due categorie:
    300  * primitive per il supporto d'interazioni punto-a-punto a livello MAC
    301    (primitiva PHY-DATA.{request, confirm, receive, indication}).
    302  * primitive con significato locale per agevolare l'interazione tra sottolivelli
    303    (e.g. PHY-TXStart.{request,...}).
    304 
    305 gnappo:,,chiarire meglio tutte le primitive con il loro significato. Sara' utile
    306 nella comprensione delle specifiche del livello PHY (ad esempio DSSS). ,,
    307 
    308 === FHSS (Frequency Hopping Spread Spectrum) ===
    309 Si tratta di una specifica del livello PHY.
    310 Vengono in generale definite un sacco di primitive che vanno dal controllo
    311 del consumo energetico del medium, alla trasmissione, al CS/CCA.
    312 Frequency hopping: il salto delle frequenze (channel) e' fatto alfine di
    313 ottenere un maggior throughput della rete (non si impegna mai una stessa
    314 frequenza per "troppo" tempo). Questo hopping deve avvenire entro
    315 un tempo limite di 224us.
    316 
    317 gnappo:,,fa schifo! pensero' io stesso a migliorare,,
    318 
    319 === DSSS ===
    320 20061021-???? gnappo [[BR]]
    321 DSSS (Direct Sequence Spread Spectrum) e' un'altra specifica del livello fisico
    322 che permette di raggiungere in linea teorica un capacita' trasmissiva pari a
    323 11Mbit/s (802.11b). Attraverso opportune tecniche e' possibile fornire bitrate
    324 inferiori (in tal modo si ottiene compatibilita' all'indietro).
    325 Come descritto precedentemente, anche in questa occasione avremo opportune
    326 funzioni di convergenza atte a garantire l'indipendenza di MAC rispetto alla
    327 specifica implementazione di PHY. [[BR]]
    328 Il PPDU e', naturalmente, differente rispetto a quello definito per FHSS (nel
    329 seguito troverete qualche dettaglio). Interessante osservare che il preambolo e
    330 l'header del frame sono trasmessi, diversamente dal resto, ad un 1Mbit/s per
    331 assicurarsi che l'interlocutore capisca effettivamente questa parte essenziale
    332 della comunicazione. L'effettivo invio del payload (MPDU) potra' essere
    333 compiuto con modulazioni diverse opportunamente specificate nell'header (campo
    334 SIGNAL).
    335 
    336 
    337 ==== Algoritmo di trasmissione ====
    338 20061021-???? gnappo [[BR]]
    339 Per trasmettere i dati, PHY-TXSTART.request dev'essere abilitata per portare PHY
    340 nello stato di trasmettitore (precedentemente su ricevitore). Il canale su cui
    341 trasmettere e' regolato via PLME. Se il canale risulta libero (PHY-CCA.indicate)
    342 allora MAC puo' procedere all'effettivo invio invocando la primitiva
    343 PHY-TXSTART.request (PHY-SAP) passando i parametri necessari (DATARATE,
    344 TX_ANTENNA, TXPWR_LEVEL). Una volta terminato l'invio del preambolo, attraverso
    345 una serie di chiamate PHY-DATA.request(DATA) verrano scambiati i dati tra MAC e
    346 PHY. Al termine della trasmissione l'entita' fisica ritornera' allo stato di
    347 ricevitore.
    348 
    349 ==== Algoritmo di ricezione ====
    350 20061021-???? gnappo [[BR]]
    351 Per quanto riguarda la ricezione e' necessario che l'entita' fisica sia nello
    352 stato di ricevitore (quindi PHY-TXSTART disabilitato). Attraverso la PLME e'
    353 possibile scegliere il canale su cui ascoltare ed il metodo di CCA (Clear
    354 Channel Assessment). Altri parametri (come per la trasmissione) sono passati
    355 attraverso PHY-SAP.
    356 Non appena il dispositivo ha rilevato attivita' sul canale sul quale e' in
    357 ascolto, PHY invoca la primitiva PHY-CCA.indicate con la quale informa MAC che
    358 il canale e' BUSY. Dopodiche' PHY va alla ricerca di un delimitatore di inizio
    359 frame e procede alla lettura dell'header. Se la lettura va a buon fine (i.e.
    360 formato riconosciuto, niente errori su CRC) allora viene chiamata la primitiva
    361 PHY-RXSTART.indicate per mettere a conoscenza di MAC di informazioni contenute
    362 nell'header (i.e. campo SIGNAL, lunghezza del MPDU, RX_ANTENNA, RSSI, SQ,
    363 campo SERVICE). I dati successivamente ricevuti saranno assemblati e
    364 presentati a MAC attraverso la primitiva PHY-DATA.indicate(DATA). Al termine
    365 dell'intera ricezione lo stato del ricevitore ritornera' IDLE e la primitiva
    366 PHY-RXEND.indicate(NoError) sara' sollevata.
    367 Se la ricezione non andasse a buon fine, PHY informerebbe MAC attraverso la
    368 primitiva PHY-RXEND.indicate della causa dell'errore (e.g. !CarrierLost).
    369 
    370 ==== Note ====
    371 Per quanto riguarda questioni di tempistiche ed altre informazioni dettagliate
    372 (MIB attributes) rimando alle specifiche ieee, capitolo 15.
    373 
    374 === Specifiche della modulazione HR/DSSS (802.11b/802.11g) ===
    375 20061022-2130 Zeratul [[BR]]
    376 High Rate Direct Sequence Spread Spectrum (HR/DSSS) e' l'evoluzione della
    377 "semplice" DSSS che consente di portare la bandwith massima a 5.5
    378 o 11 Mbps (nell'802.11g si arrivera' anche a ~ 54 Mbps).
    379 Gli header e preamboli PLCP sono gli stessi della DSSS, in questo modo
    380 e' possibile la coesistenza di entrambe le modulazioni in una stessa
    381 connessione. [[BR]]
    382 
    383 Le sostanziali differenze con il suo predecessore sono molteplici:
    384  1. si sono riuniti i [http://en.wikipedia.org/wiki/Chip_rate "chips"]
    385     in gruppi da 8 formando cosi chiavi a codice complementario
    386     (8-chip complementary code keying, aka CCK) che vengono spediti alla stessa
    387     frequenza del DSSS (11 MHz), ottimizzando cosi l'uso della banda del canale.
    388  2. sono state aggiunte delle funzionalita' opzionali per aumentare il bandwith,
    389     che sono utilizzabili solo se l'hardware e' abbastanza recente da supportarle. [[BR]]
    390     Le funzionalità sono le seguenti:
    391     * sostituzione del CCK con il packet binary convolutional coding (HR/DSSS/PBCC);
    392     * HR/DSSS/short, ovvero possibilita' di ridurre il preambolo PLCP
    393       per aumentare significantemente il transfer data rate, limitando cosi pero' la
    394       possibilita' di coesistenza con il DSSS a sole alcune particolari circostanze;
    395     * inserimento del Channel Agility, ovvero una particolare implementazione
    396       che consente di superare diversi problemi dovuti all'assegnamento di un canale statico,
    397       senza dover aggiungere alla totale implementazione il costo di questa funzionalita'.[[BR]]
    398 
    399 Purtroppo l'IEEE non ha concesso le specifiche inerenti all'evoluzione della modulazione nella versione
    400 802.11g, quindi non ci e' concesso sapere i miglioramenti che hanno portato poi il protocollo a
    401 supportare velocita' di circa 54 Mbps.[[BR]]
    402 Parlandone con il Dott. Bononi, si e' arrivati ad ipotizzare che lo sviluppo sempre + veloce della
    403 tecnologia abbia portato ad un'alta precisione e sensibilita' di ricezione/trasmissione che quindi,
    404 ha portato ad un'aumento dei simboli (in modulazione un simbolo e' un particolare segnale che identifica
    405 una serie di bit) e ad una diminuzione dei bit adibiti al controllo di errori, cosi aumentandone di molto
    406 il bit rate potenziale.[[BR]]
    407 Rimaniamo comunque nella ricerca di specifiche piu' recentemente rilasciate, lasciando quest'ultima parte
    408 di paragrafo come "prossima ad essere aggiornata".
    409 
    410 == Management del sottolivello MAC ==
    411 
    412 Uno degli aspetti più importanti, per quanto riguarda la connessione di più
    413 hosts ad una rete wireless, è sicuramente il meccanismo di sincronizzazione, il
    414 quale deve esistere per permettere la comunicazione all'interno della rete.
    415 Per permettere ciò ogni nodo ha al suo interno un TSF (Timing Synchronization
    416 Function) che funge da orologio per tutti i nodi.
    417 La sincronizzazione è presente sia nei BSS che nei IBSS e avviene in maniere
    418 differenti.
    419 
    420 In un BSS la sincronizzazione viene mantenuta dall'AP, che inizializza il
    421 suo TSF interno e invia beacons a tutti i nodi della rete con all'interno il
    422 proprio timer. Ogni nodo che riceve il beacon deve sincronizzare il proprio
    423 timer con il valore del timestamp ricevuto.
    424 
    425 In un IBSS invece ogni nodo partecipa allla sincronizzazione mediante
    426 l'utilizzo di un algoritmo distribuito; in pratica ogni nodo invia dei beacon
    427 ad ogni nodo della rete e riceve beacons da tutti gli altri.
    428 Decide poi autonomamente se settare il proprio timer col valore ricevuto o se
    429 scartare il beacon perchè il valore del timetamp all'interno è più vecchio del
    430 valore del proprio timer.
    431 
    432 Il mantenimento della sincronizzazione è dato da un algoritmo:
    433 ogni nodo mantiene un timer TSF in modulo 2^64^ microsecondi e si aspetta di
    434 ricevere un beacon ad intervalli regolari (definiti come ''aBeaconPeriod'', che è
    435 un parametro del nodo).
    436 Un nodo che vuole inviare un beacon deve settare il valore del timestamp, che
    437 è dato dalla somma tra il valore del TSF al tempo della trasmissione del primo
    438 bit del timestamp su PHY e dal tempo di ritardo per la trasmissione (passaggio
    439 dall'interfaccia MAC-PHY a PHY).
    440 
    441 === Acquisizione della sincronizzazione mediante scansione ===
    442 
    443 Ogni stazione (o nodo) può operare attraverso due modalità di scansione:
    444 la modalità passiva o la modalità attiva.
    445 In modalità di scansione passiva la stazione sta in ascolto su tutti i canali
    446 e aspetta di ricevere dei beacon in cui il valore SSID sia uguale al valore
    447 SSID dell'ESS di cui la stazione vuole entrare a fare parte. Una volta ritornati
    448 questi frames, la stazione (attraverso opportune funzioni) entra a far parte di
    449 un BSS, acquisendo tutti i parametri del BSS (timer di sincronizzazione,
    450 parametri di PHY, BSSID, parametri di trasmissione dei beacon...).
    451 La modalità di scansione attiva invece si basa sul concetto di Probe Request e
    452 Probe Response: praticamente una stazione invia un Probe Request e si mette in
    453 ascolto di un Probe Response; quando il Probe Response conterrà il SSID cercato
    454 dalla stazione allora avrà inizio la sincronizzazione e la stazione entrerà a
    455 far parte di un BSS. L'algoritmo di scansione è al cap 11.1.3.2.2 (pag 127 di
    456 ieee 802.11-1999).
    457 
    458 === Associazione e riassociazione di una stazione con un AP ===
    459 
    460 L'associazione tra una stazione e un AP avviene in due fasi:
    461  * autenticazione
    462  * associazione
    463 Una volta effettuata l'autenticazione su un AP, la stazione invia una richiesta
    464 di associazione all'AP e attende la risposta;in caso di risposta affermativa
    465 la stazione sarà fisicamente associata all'AP e potrà avviare la comunicazione,
    466 in caso contrario la stazione non si potrà associare.
    467 Analogamente quando una stazione vorrà riassociarsi ad un AP invierà allo stesso
    468 una richiesta di riassociazione e attederà la risposta dall'AP.
    469 Naturalmente quado un AP riceve una richiesta di associazione controlla che la
    470 stazione che ha inviato tale richiesta sia autenticata su sè stesso; in caso
    471 affermativo l'AP invierà una risposta (positiva o negativa) alla stazione.
    472 
    473 == Appunti vari ==
    474 ,,20061014-1305 Roma,,[[BR]]
    475 Ho letto qualcosa su come si instaura una connessione tra una client e un AP: vi
    476 è praticamente una serie di richieste tra il client e l'AP affinchè la
    477 connessione venga instaurata; nota importante è che il client prima di
    478 collegarsi all'AP deve autenticarsi sull'AP stesso. Una volta fatto cio' AP
    479 manda un pacchetto che indica l'avvenuta autenticazione e l'inizio di una nuova
    480 connessione. Naturalmente vi sono già delle primitive implementate atte a
    481 svolgere questo tipo di compito (sia per quanto riguarda l'instaurazione che
    482 per le reinstaurazione).
    483 Inoltre i vari client devono essere tutti sincronizzati per paralare tra loro
    484 (es che fece anche il seminarista se non ricordo male) e per fare ciò si
    485 inviano delle simpatiche "pancette" con dentro il proprio timestamp; a monte
    486 comunque c'è l'AP che controlla tutta la sincronizzazione ed egli stesso manda
    487 pancette ai client conessi a lui; quindi vi è una doppia sincronizzazione: una
    488 tra AP e client e una tra client e client (cap 11 del documento ieee 802.11).
    489