Changes between Initial Version and Version 1 of IEEE802.11/DefinizioneDeiServiziMAC


Ignore:
Timestamp:
Feb 17, 2007, 5:40:07 PM (18 years ago)
Author:
soujak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • IEEE802.11/DefinizioneDeiServiziMAC

    v1 v1  
     1[[PageOutline(1-6)]]
     2= IEEE 802.11 - Definizione dei servizi MAC =
     3
     4,,20061201-0930 SoujaK,,[[BR]]
     5Il livello MAC comunica con l'hardware utilizzando il livello PHY in qualita'
     6di tramite, che puo' pertanto essere visto come a lui sottostante. Il trasporto
     7delle MSDU viene effettuato con trasmissioni ''connectionless'' di tipo
     8''best-effort'', non ci sono quindi garanzie ne' sulla effettiva consegna dei
     9frame, ne', tantomeno, sull'ordine di arrivo degli stessi. Comunicazioni ad
     10indirizzamento di tipo ''broadcast'' o ''multicast'' possono quindi, a causa
     11della loro natura, essere soggette a diverse prestazioni e qualita' di servizio.
     12
     13== Coordinamento per la trasmissione ==
     14,,20061207-1902 SoujaK,,[[BR]]
     15L'accesso al mezzo di trasmissione comune deve essere regolato, poiche', per
     16sua intrinseca natura non puo` essere utilizzato per trasmissioni simultanee
     17sulle stesse frequenze. Per questo motivo il livello MAC comprende funzionalita'
     18in grado di farsi carico della coordinazione delle varie stazioni che operano
     19sul medesimo canale trasmissivo. Si tratta della funzione di
     20[wiki:IEEE802.11/DefinizioneDeiServiziMAC#CoordinamentodistribuitoDCF coordinamento distribuito]
     21(piu' brevemente DCF), un componente evidentemente necessario ad ogni stazione,
     22in qualsiasi modalita' essa operi, ''infrastracture'' come ''ad-hoc''.
     23[[BR]]
     24E' inoltre presente un metodo di accesso opzionale, basato sulla funzione di
     25[wiki:IEEE802.11/DefinizioneDeiServiziMAC#CoordinamentocentralizzatoPCF coordinamento centralizzato]
     26(detto anche PCF) che fa uso di un coordinatore centrale detto PC (i.e. ''Point
     27Coordinator'') che risiede nell'AP del BSS.
     28
     29DCF e PCF devono poter coesistere ed operare in maniera concorrente all'interno
     30di una BSS, quindi i due metodi di accesso al mezzo si alterneranno, con un
     31periodo in cui l'accesso e' prestabilito e il mezzo libero dalla contesa
     32(''Contention-Free Period'' o CFP) in cui il coordinamento e' centralizzato,
     33seguito da un periodo di contesa (''Contention Period'' o CP), in cui il
     34coordinamento e' distribuito.
     35
     36=== Coordinamento distribuito (DCF) ===
     37
     38==== CSMA/CA e il meccanismo RTS/CTS ====
     39
     40,,20061027-1950 SoujaK,,[[BR]]
     41Il concetto chiave attraverso il quale il protocollo interpreta il meccanismo di
     42comunicazione CSMA/CA e' la distribuzione di informazioni di prenotazione del
     43mezzo trasmissivo. Ogni comunicazione fra un nodo sorgente e un nodo
     44destinazione deve cominciare con lo scambio di due frame RTS (''request to
     45send'') e CTS (''clear to send'') dalla seguente semantica: "richiesta di invio"
     46e "pronto alla ricezione". Tali frame RTS e CTS contengono un campo
     47(Duration/ID) che contiene il tempo durante il quale il mezzo e' riservato per
     48l'invio del frame (o del frammento) e per la ricezione dell'ACK. Le STA esterne
     49alla comunicazione imparano, tramite questo meccanismo, che il canale e'
     50occupato per tale lasso di
     51tempo evitando le collisioni. La doppia presenza delle informazioni in questione
     52nei due versi della comunicazione (sia nei frame RTS che in CTS, ad esempio)
     53permette di raggiungere tutte le STA interessate, scongiurando alcuni problemi,
     54come quello del nodo esposto). E' importante precisare che il meccanismo RTS/CTS
     55non e' obbligatorio: deve essere evitato per trasmissioni multicast o broadcast
     56(chi risponderebbe con il CTS?). Inoltre puo' essere evitato nel caso di frame
     57piccoli (al fine di limitare l'overhead che si introduce): la soglia e' definita
     58nell'attributo MAC denominato `dot11RTSThreshold`.
     59
     60==== ''Carrier-sense'' virtuale e il NAV ====
     61
     62,,20061027-0416 SoujaK,,[[BR]]
     63La funzionalita'  permette di capire lo stato del mezzo trasmissivo (occupato o
     64libero) ed e' presente non solo nel sottostrato PHY, come e' ovvio, ma anche in
     65MAC. Qui in MAC il meccanismo e' da considerarsi virtuale, nel senso che
     66interroga il ''Network Allocation Vector''. Ogni STA ha il compito di tenere
     67traccia nel NAV delle "prenotazioni" effettuate da altri che indicano la futura
     68indisponibilita'  del canale e, se necessario, rimandare i tentativi di
     69trasmissione. Il calcolo di questa durata non e' altro che la somma dei tempi
     70necessari alle fasi della comunicazione: la trasmissione dei vari frame di dati,
     71degli ''[IEEE802.11/DefinizioneDeiServiziMAC#Acknowledgment acknowledgment]'' e
     72l'attesa dei vari
     73[wiki:IEEE802.11/DefinizioneDeiServiziMAC#InterframespaceIFSspaceIFS IFS]. Le
     74citate informazioni necessarie alle stazioni estranee alla comunicazione sono o
     75prefissate dallo standard (la durata di invio di un ACK o i tempi
     76''inter-frame'') oppure sono comunicate dalle stazioni interne alla
     77comunicazione. Il campo `Duration/ID` e' quindi presente sia nella coppia
     78iniziale < RTS , CTS > che nelle successive coppie < PDU , ACK > diverse dalla
     79prima; esso contiene la distanza temporale al termine della comunicazione, i.e.
     80il primo ''acknowledgment''.
     81
     82==== ''Acknowledgment'' ====
     83
     84,,20061027-0445 SoujaK,,[[BR]]
     85La strategia usata e' l'acknowledgment positivo, il che significa che la STA
     86ricevente ha il compito di confermare alla STA trasmittente la corretta
     87ricezione del frame (solo in caso di frame unicast, come e' facile intuire). Il
     88trasmittente attende il frame ACK per un periodo di tempo fissato da
     89`ACKTimeout` e poi conclude che la trasmissione e' fallita. Lo stesso succede
     90qualora esso riceva altro che non sia un ACK. Si noti che la mancata ricezione
     91dell'ACK puo' indistinguibilmente indicare anche un errore durante la
     92trasmissione dello stesso ''acknowledgment''.
     93
     94==== ''Interframe space'' (IFS) ====
     95
     96,,20061019-0849 SoujaK,,[[BR]]
     97Lo standard stabilisce la lunghezza di tempo che deve intercorrere fra le
     98trasmissioni dei vari frame; lo scopo e' quello di fornire informazioni precise
     99alle stazioni. Queste ultime, attraverso il meccanismo ''carrier-sense'',
     100attendono infatti di poter considerare libero il mezzo trasmissivo a seconda
     101dei periodi di inattivita'  rilevati.
     102
     103A seconda della situazione viene usato uno dei seguenti 4 periodi:
     104 1. SIFS (''short interframe space''):
     105    usato per frame ACK, CTS, per frame (eccetto il primo) di una
     106    trasmissione frammentata, per le risposte al ''polling'' del PCF;
     107 2. PIFS (PCF ''interframe space''):
     108    usato solo dalle STA che, sotto un PCF, tentano di avere accesso al mezzo
     109    trasmissivo all'inizio del CFP;
     110 3. DIFS (DCF ''interframe space''):
     111    usato sotto DCF dalle STA per i frame dati (MPDU) o per i ''frame'' di
     112    gestione (MMPDU);
     113 4. EIFS (''extented interframe space''):
     114    usato quando il PHY indica al MAC che l'ultimo ''frame'' MAC non e' stato
     115    ricevuto correttamente e che il campo FCS non e' utilizzabile;
     116
     117==== Random backoff time ====
     118
     119,,20061209-1941 SoujaK,,[[BR]]
     120In seguito al rilevamento di inattivita'  del mezzo trasmissivo (secondo le
     121politiche appena descritte), ogni STA e' tenuta a ritardare ulteriormente la
     122propria trasmissione per un periodo di ''backoff'' di durata casuale, a meno che
     123non sia gia' stato impostato il relativo timer. L'intento e' quello di evitare
     124che tutte le STA in attesa collidano nel momento in cui contemporaneamente
     125effettuino tentativi di trasmissione.[[BR]]
     126Il periodo di inattivita' che le STA si auto-impongono e' detto CW (''contention
     127window'') e viene ripetuto ogni volta che si presenti una collisione. Viene
     128inoltre incrementato a fronte di ogni collisione con andamento esponenziale (per
     129scongiurare il pericolo di fino al raggiungimento di un valore massimo
     130prestabilito.
     131
     132Il periodo di ''backoff'' e' espresso come quantita'  casuale di quanti di tempo
     133(dal valore `aSlotTime` presente in PHY). Questa quantita'  di slot e' mantenuta
     134in un intero pseudo-casuale le cui variazioni devono oscillare in maniera
     135uniforme fra 0 e CW, un altro parametro definito come intero compreso
     136nell'intervallo di estremi `aCWmin` e `aCWmax`(definiti in PHY). Ogni STA
     137mantiene inoltre una coppia di contatori dei tentativi di trasmissione (SSRC e
     138SLRC) non andati a buon fine: questi vengono inizializzati a 0 e vengono
     139incrementati con l'andamento andamento esponenziale del 2 ogni volta che la
     140comunicazione fallisce. Supponendo `CWmin` e `CWmax` settati rispettivamente a 7
     141e a 255, un esempio di incremento esponenziale e' dato dalla sequenza 7, 15, 31,
     14263, 127, 255, 255. Un cosi' alto andamento di crescita del periodo di backoff
     143rende piu' stabile il protocollo, aumentando la sua capacita'  di adeguarsi
     144repentinamente a condizioni di alto carico per poi saperle sopportare con
     145maggiore facilita' .
     146
     147I contatori prima citati vengono poi resettati (azzerati) al verificarsi di
     148determinati eventi interpretabili come comunicazione ben riuscita (e.g la
     149ricezione di un ACK): i due contatori si differenziano proprio su questo
     150particolare, ma non e' il caso di approfondire ulteriormente.
     151
     152==== Frame duplicati ====
     153
     154,,20061027-0536 SoujaK,,[[BR]]
     155Dal momento che le procedure di conferma di trasmissione e di ritrasmissione
     156sono incorporati all'interno del protocollo, esiste la possibilita'  che un
     157determinato frame venga ricevuto piu' di una volta. La stazione ricevente deve
     158rendersi conto della duplicazione e scartare i doppioni. E' stato pertanto
     159inserito un campo di controllo di sequenza all'interno nei frame dati e in
     160quelli di gestione, contenente il numero della sequenza e quello del frammento.
     161Ogni STA mantiene dunque una cache delle triple <indirizzo , numero di sequenza
     162, numero di frammento> che permette di identificare agilmente i frame duplicati.
     163Il numero di sequenza e' un intero progressivo che __tende__ ad essere unico fra
     164i vari frame: qualora (sfortunatamente) capitasse il contrario, il frame valido
     165erroneamente scartato verrebbe presto ritrasmesso dalla sorgente.
     166
     167=== Coordinamento centralizzato (PCF) ===
     168
     169,,20061210-1651 SoujaK,,[[BR]]
     170La PCF fornisce un metodo di trasmissione dei ''frame'' che e' libero dalla
     171contesa (e quindi anche dagli sprechi di tempo che essa comporta), grazie alle
     172regole imposte dal PC residente nell' ''access-point''. Ogni stazione deve
     173sottostare obbligatoriamente ai dettami del coordinatore impostando
     174adeguatamente il proprio [wiki:CollegamentoMancante NAV] all'inizio di ogni CFP.
     175Durante questi periodi, essendo la comunicazione strettamente regolata dal PC,
     176le comunicazioni non necessitano dello scambio iniziale dei ''frame'' RTS/CTS.
     177Questa e' una possibilita' offerta soltanto alle stazioni che implementano PCF,
     178una funzionalita', ricordiamolo, opzionale.
     179
     180Affinche' il coordinatore possa conoscere quali stazioni sono accessibili in
     181maniera ottimale durante i CFP, invia un apposito ''poll'', a cui risponderanno
     182soltanto le stazioni dotate di tale caratteristica. Questo ''CF-poll'' e'
     183inoltre la chiave di volta su cui questa modalita' di coordinamento si fonda;
     184infatti le stazioni ''CF-pollable'' hanno occasione di spedire secondo una
     185strategia di ''piggyback'', una (e una sola) MPDU assieme all'
     186''acknowledgment''.[[BR]]
     187Se tale invio fallisce il ''frame'' non potra' essere ritrasmesso subito, ma la
     188stazione interessata dovra' attendere il prossimo segnale di ''poll'' dal
     189coordinatore, o il prossimo periodo di contesa. Il PC, invece ha la
     190possibilita' di operare ritrasmissioni di frame non confermati (di cui, cioe',
     191non ha ricevuto l'ACK) dopo un periodo di ''backoff'' di lunghezza temporale
     192pari a [wiki:CollegamentoMancante PIFS].
     193
     194==== Struttura e tempistiche con PCF ====
     195
     196,,20061210-1817 SoujaK,,[[BR]]
     197Come gia' anticipato i periodi liberi dalla contesa (CFP), in cui la
     198trasmissione e' coordinata da PCF, si alternano temporalmente a periodi di
     199contesa (CP) in cui il coordinamento e' gestito secondo DCF. I CFP hanno inizio
     200dopo un ''frame Beacon'' contenente un apposito DTIM (Delivery Traffic
     201Indication Message, messaggio di indicazione sul traffico della consegna) e
     202avranno luogo con frequenze ben definite. Queste frequenze sono espresse come
     203quantita' di intervalli DTIM, e sono comunicate dal PC alle altre stazioni
     204tramite un campo appartenente ai ''frame Beacon'', nel set dei parametri
     205dedicati a CF.
     206
     207La durata dei CFP e' invece di appannaggio del coordinatore che ha liberta' di
     208scelta, purche' essa sia dichiarata preventivamente nel parametro
     209''CFP-MaxDuration'', appartenente al set precedentemente citato. Non e' inoltre
     210necessario che la durata del CFP sia multipla dell'intervallo di trasmissione
     211dei Beacon, dal momento che essi contengono anche un campo "''CFPDurRemaining''"
     212che (come il nome suggerisce) indica il tempo rimanente alla fine del periodo
     213libero dalla contesa, espresso in [wiki:CollegamentoMancante TU]. In ogni caso
     214la durata del CFP e' al piu' pari al valore inizialmente dichiarato dal PC,
     215quindi va precisato che, qualora la trasmissione dei ''frame Beacon'' iniziale
     216venga ritardata (rispetto al [wiki:CollegamentoMancante TBTT]) a causa dell'alto
     217carico del mezzo trasmissivo, il CFP puo' essere terminato anticipatamente di
     218una quantita' di tempo pari al ritardo.
     219
     220==== Procedura di accesso del PCF ====
     221
     222,,20061210-1931 SoujaK,,[[BR]]
     223Il protocollo di trasmissione libero da contesa e' basato su uno schema di
     224''polling'' attuato dal coordinatore che opera nel' ''access-point'' del BSS.
     225Durante questo lasso di tempo il PC prima prende il controllo del canale, e poi
     226si assicura di mantenerlo. Prima  di ogni sua trasmissione, infatti, attende
     227per intervalli di tempo minori rispetto a quelli di ogni stazione operante
     228tramite DCF. In generale tutte le stazioni diverse dal PC che sono presenti nel
     229BSS setteranno il loro NAV in accordo con il valore del parametro
     230''CFPMaxDuration'' comunicato dal coordinatore. Per minimizzare il numero di
     231trasmissioni sono definite dallo standard precisi sequenze con cui concatenare
     232le informazioni aggregate tramite la pratica del ''piggyback''.
     233
     234===== Accesso di base al mezzo =====
     235
     236,,20061211-1508 SoujaK,,[[BR]]
     237All'inizio nominale di ogni CFP il PC controlla che il mezzo trasmissivo sia
     238inutilizzato per un periodo lungo PIFS. Dopodiche' puo' trasmettere un ''frame
     239Beacon'' contenente il set di parametri dedicati al CF settati in maniera
     240opportuna unitamente ad un elemento DTIM.
     241
     242Dopo la trasmissione iniziale il coordinatore e' tenuto ad attendere almeno per
     243un periodo SIFS, poi puo' cominciare a tramettere un ''frame'' di dati, un
     244''frame'' di tipo ''CF-Poll'', un ''frame'' contenente dati assieme al
     245''CF-Poll'' oppure un ''frame CF-End''. Nel caso in cui il CFP sia di durata
     246nulla, perche' il PC non ha accumulato ne' traffico ne' ''poll'', esso inviera'
     247subito dopo il ''beacon'' il ''frame CF-End''.
     248
     249Le stazioni che ricevono ''frame'' senza errori sono tenute a rispondere dopo un
     250periodo SIFS, in accordo con le procedure che descriveremo piu' avanti
     251[###todolink]. Le STA riceventi che non siano di tipo ''CF-Pollable'',
     252segnaleranno il successo della ricezione con un classico ''frame'' ACK.
     253
     254===== Uso del NAV =====
     255
     256,,20061218-1449 SoujaK,,[[BR]]
     257Le modalita' di gestione del NAV durante i periodi liberi da contesa sono state
     258pensate per consentire la sovrapposizione di piu' BSS di tipo infrastruttura.
     259Ogni stazione (fatta eccezione per il PC) e' tenuto a preimpostare il proprio
     260NAV con frequenza dettata dal TBTT (''target beacon trasmission time'') e con il
     261valore del parametro `CFPMaxDuration` contenuto nei ''frame beacon''. Le varie
     262STA potranno settare in maniera piu' accurata il NAV soltanto in seguito,
     263utilizzando il parametro CFPDurRemaining presente nei ''frame beacon''. E'
     264fondamentale notare che, al fine di gestire la sovrapposizione delle BSS le
     265stazioni diverse dal PC prenderanno in considerazione anche i ''beacon''
     266provenienti da BSS diverse dalla propria.
     267
     268==== Procedura di trasferimento ====
     269__DA FARE__