Changes between Initial Version and Version 1 of Protocollo


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

Resa a se stante la pagina di analisi di 802.11.

Legend:

Unmodified
Added
Removed
Modified
  • Protocollo

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