CSMA è un pro­ce­di­men­to basilare che regola la co­mu­ni­ca­zio­ne di più par­te­ci­pan­ti su un mezzo tra­smis­si­vo uti­liz­za­to in comune e or­ga­niz­za­to in modo de­cen­tra­liz­za­to. Ora è di­spo­ni­bi­le in tre diverse varianti in base al mezzo tra­smis­si­vo. Mentre il pro­to­col­lo CSMA/CA si utilizza so­prat­tut­to nelle reti Wi-Fi, il CSMA/CD è svi­lup­pa­to per l’Ethernet e il CSMA/CR viene usato nelle Con­trol­ler Area Networks (CAN), tipico so­prat­tut­to nelle auto e nelle macchine.

Per com­pren­de­re cosa esat­ta­men­te si nasconda dietro il Carrier Sense Multiple Access with Collision Avoidance è utile con­si­de­ra­re i singoli com­po­nen­ti di cui si compone:

  • Carrier Sense (CA): il pensiero alla base è che i par­te­ci­pan­ti possono inviare dati at­tra­ver­so la rete solo se il mezzo tra­smis­si­vo è libero. Il ri­co­no­sci­men­to dello stato da parte della portante verifica perciò sempre ogni canale. Solo se è libero vengono inviati i dati.
     
  • Multiple Access (MA): diverse stazioni si spar­ti­sco­no un mezzo tra­smis­si­vo. In questo caso è decisivo per una co­mu­ni­ca­zio­ne fun­zio­nan­te che tutti si attengano a un pro­to­col­lo vin­co­lan­te.
     
  • Collision Avoidance (CA): un processo complesso tenta di garantire che due o più membri non comincino con­tem­po­ra­nea­men­te una tra­smis­sio­ne per evitare col­li­sio­ni. Se tuttavia si dovessero ve­ri­fi­ca­re delle so­vrap­po­si­zio­ni, verrà rilevato e si tenterà di nuovo la tra­smis­sio­ne.

Che cos’è CSMA/CA e a che cosa serve?

In una Local Area Network (LAN) tutti i par­te­ci­pan­ti della rete si spar­ti­sco­no un mezzo tra­smis­si­vo, ovvero un cavo chiamato BUS. Le reti senza fili sono per loro natura senza cavi, ma anche in questo caso tutti i di­spo­si­ti­vi coinvolti inviano e ricevono solo tramite un mezzo tra­smis­si­vo, ovvero una precisa sezione radio. Per questo il Wi-Fi (IEEE 802.11) è com­pa­ra­bi­le con le reti pre­ce­den­ti Ethernet half-duplex. Così anche per una rete senza fili deve esserci un pro­to­col­lo che regola l’utilizzo del mezzo.

La regola più im­por­tan­te, che ricorre anche in altre si­tua­zio­ni co­mu­ni­ca­ti­ve con altri par­te­ci­pan­ti (ad esempio una con­ver­sa­zio­ne con i familiari a tavola), risulta essere: si devono sempre inviare i dati a una persona alla volta. Se tutti parlano con­tem­po­ra­nea­men­te nessuno riesce a capire cosa viene detto. Anche nelle reti si possono so­vrap­por­re gli input inviati, in questo caso sotto forma di pacchetti. Questo processo prende il nome di col­li­sio­ne: i pacchetti si scontrano e pre­sen­ta­no così in una maniera diversa i loro contenuti.

CSMA/CA tenta di diminuire la frequenza di queste col­li­sio­ni e propone allo stesso tempo un piano su come si debba procedere nel caso di una col­li­sio­ne. Il pro­to­col­lo è perciò im­por­tan­te perché nelle reti senza fili le tra­smis­sio­ni non si possono svolgere in modo ordinato, per via della tec­no­lo­gia uti­liz­za­ta, come succede, invece, nelle reti cablate. In una rete de­cen­tra­liz­za­ta è ne­ces­sa­rio che tutti i par­te­ci­pan­ti seguano una serie di regole e or­ga­niz­zi­no così la co­mu­ni­ca­zio­ne tra di loro.

Il problema del terminale nascosto

Le dif­fe­ren­ze tecniche tra le reti senza fili e quelle cablate portano anche al problema del terminale nascosto. Le stazioni in una rete Wi-Fi hanno un’esten­sio­ne limitata. Così può succedere che i par­te­ci­pan­ti di una rete non si ri­co­no­sca­no.

È ipo­tiz­za­bi­le (e affatto im­pro­ba­bi­le) che due stazioni che non si ri­co­no­sco­no vogliano rag­giun­ge­re con­tem­po­ra­nea­men­te una stazione che si trova sul tragitto in comune. Le tra­smis­sio­ni si possono so­vrap­por­re nei nodi dei de­sti­na­ta­ri e i dati vanno così persi. Entrambi i tra­smit­ten­ti non ri­co­no­sco­no la col­li­sio­ne e non in­tra­pren­do­no perciò un nuovo tentativo di invio. Il pro­to­col­lo CSMA/CA non può risolvere da solo questo problema, perciò è stata creata un’esten­sio­ne opzionale: RTS/CTS (“Request to Send“ e “Clear to Send“).

CSMA/CA vs CSMA/CD

CSMA/CA adatta il pro­ce­di­men­to per trattare le col­li­sio­ni (CSMA/CD) che avvengono nelle reti Ethernet half-duplex alle sfide poste alle reti wireless. Il fine di CSMA/CD non è quindi quello di evitare le col­li­sio­ni, al contrario il pro­to­col­lo le considera scontate e sta­bi­li­sce un mec­ca­ni­smo su come devono procedere i par­te­ci­pan­ti della rete nel caso in cui si ve­ri­fi­cas­se una col­li­sio­ne, per evitare che avvengano di nuovo anche nel secondo tentativo. A metterlo in atto è un in­ter­val­lo di tempo casuale (backoff) che le stazioni devono attendere dopo una tra­smis­sio­ne non andata a buon fine, di modo che i par­te­ci­pan­ti coinvolti non inizino di nuovo a inviare dati nello stesso momento.

Una rete senza fili non si può con­trol­la­re in modo così sicuro come una rete cablata. Le col­li­sio­ni possono essere causate da un secondo tra­smit­ten­te che si trova oltre l’esten­sio­ne del primo. Nessuno dei due ha la pos­si­bi­li­tà di rilevare il tentativo di invio dell’altro. Perciò ci si deve con­cen­tra­re nel ridurre la pro­ba­bi­li­tà delle col­li­sio­ni. CSMA/CA procede con l’ese­cu­zio­ne del backoff e lo utilizza già pre­ce­den­te­men­te al primo invio. Ciò assicura che sia più im­pro­ba­bi­le che i par­te­ci­pan­ti in una rete inizino una tra­smis­sio­ne con­tem­po­ra­nea­men­te e quindi causino delle col­li­sio­ni.

Il fun­zio­na­men­to di CSMA/CA

L’idea di base dietro il pro­to­col­lo CSMA/CA è il principio “Listen before Talk“, ciò vuol dire che deve prima di tutto essere ve­ri­fi­ca­to se la linea sia libera (“idle”), prima che la stazione possa iniziare una tra­smis­sio­ne. Ma questo è solo il primo passo: vi sono anche altre funzioni all’interno del processo che con­sen­to­no di evitare la maggior parte delle col­li­sio­ni.

Di­stri­bu­ted Coor­di­na­tion Function (DCF)

La Di­stri­bu­ted Coor­di­na­tion Function (DCF) regola l’in­ter­val­lo che attende una stazione prima che venga iniziata la tra­smis­sio­ne in un mezzo libero all’interno del pro­to­col­lo CSMA/CA. Anche per altre ope­ra­zio­ni DCF assegna a ciascuno dei par­te­ci­pan­ti della rete un time slot preciso e crea così una divisione a tempo vin­co­lan­te. Questo pro­ce­di­men­to è il focus della Collision Avoidance. Tramite una struttura temporale complessa è possibile in­nan­zi­tut­to evitare le col­li­sio­ni, di modo che la DCF consideri diversi in­ter­val­li.

  • DCF In­ter­fra­me Space (DIFS): nel primo passaggio i par­te­ci­pan­ti devono con­trol­la­re la rete per la durata del DIFS per stabilire se al momento è libera. Per CSMA/CA ciò significa che al momento dell’invio non ci sono altri invii da parte di altre stazioni nello stesso raggio di azione. Il DIFS deriva dal SIFS e da un time slot doppio con una lunghezza dai 28 ai 50 µs.
     
  • Con­ten­tion Window: se i par­te­ci­pan­ti sta­bi­li­sco­no che il canale è libero, aspettano ancora per un in­ter­val­lo di tempo casuale prima di co­min­cia­re con l’invio. Questa durata cor­ri­spon­de al co­sid­det­to Con­ten­tion Window e raddoppia a ogni col­li­sio­ne che si verifica; cor­ri­spon­de al Binary Ex­po­nen­tial Backoff (BEB) che si conosce da CSMA/CD.
     
  • Short In­ter­fra­me Space (SIFS): dopo l’invio dei pacchetti il nodo del de­sti­na­ta­rio invia una notifica, nel caso in cui venga uti­liz­za­to in aggiunta il pro­ce­di­men­to RTS/CTS. Tuttavia prima dell’invio anche questa stazione aspetta un in­ter­val­lo di tempo pre­de­fi­ni­to. SIFS è il tempo che serve per elaborare un pacchetto. La durata dipende dallo standard IEEE-802.11 uti­liz­za­to e si attesta tra 10 µs e 16 µs.
Fatto

Il time slot indica il tempo di cui i dati hanno bisogno per at­tra­ver­sa­re la lunghezza massima della rete. Nelle reti senza fili varia a seconda dello standard uti­liz­za­to e si attesta tra i 9 µs e i 20 µs.

Request to Send e Clear to Send (RTS/CTS)

I frame Request to Send (RTS) e Clear to Send (CTS) sono parte dell’esten­sio­ne opzionale CSMA/CA RTS/CTS. Questo pro­ce­di­men­to precede la vera e propria tra­smis­sio­ne dei dati. Se un par­te­ci­pan­te sta­bi­li­sce che il mezzo tra­smis­si­vo è libero, il di­spo­si­ti­vo invia prima di tutto un frame RTS al par­te­ci­pan­te che dovrebbe essere il de­sti­na­ta­rio dei dati. In questo caso il computer di partenza rende chiaro che vorrebbe iniziare una tra­smis­sio­ne e occupare così il mezzo tra­smis­si­vo per un certo periodo.

Il de­sti­na­ta­rio invia a sua volta un frame CTS al tra­smit­ten­te ori­gi­na­rio. In questo modo da una parte vengono informati tutti gli altri par­te­ci­pan­ti che si trovano nella stessa esten­sio­ne, com’è il caso con il frame RTS, e dall’altra il tra­smit­ten­te riceve il via libera per la tra­smis­sio­ne. Solo allora il di­spo­si­ti­vo ori­gi­na­rio comincia la tra­smis­sio­ne dei dati. Ora non è possibile per i par­te­ci­pan­ti in una rete senza fili stabilire l’in­sor­gen­za di col­li­sio­ni o altri disturbi nella tra­smis­sio­ne. Per questo motivo è ne­ces­sa­rio che la stazione di de­sti­na­zio­ne invii una conferma (ACK), non appena il pacchetto sarà arrivato cor­ret­ta­men­te.

Se il frame ACK non arriva, il tra­smit­ten­te dei dati presume che sia so­prag­giun­ta una com­pli­ca­zio­ne e invia di nuovo il pacchetto. La stazione ha in questo caso il diritto di priorità sull’utilizzo del mezzo, non deve quindi di nuovo aspettare finché il canale sarà libero. I tre tipi di frame sono composti ciascuno da più campi.

  • Frame Control: il campo FC compreso in ogni frame 802.11 è di 2 byte (16 bit) e a sua volta suddiviso in più elementi:
    • Protocol Version (versione del pro­to­col­lo): indica la versione del pro­to­col­lo uti­liz­za­to.
    • Type (tipo): indica se si tratta di un Control Frame (come per RTS/CTS e ACK), di un Data Frame o di un Ma­na­ge­ment Frame.
    • Sub-Type (sottotipo): specifica il tipo di frame indicando una delle 25 sot­to­ca­te­go­rie.
    • To Di­stri­bu­tion System (sistema di di­stri­bu­zio­ne di de­sti­na­zio­ne): impostato se il frame va a un sistema di di­stri­bu­zio­ne.
    • From Di­stri­bu­tion System (sistema di di­stri­bu­zio­ne di partenza): impostato se il frame arriva da un sistema di di­stri­bu­zio­ne.
    • More Fragments (più frammenti): campo presente solo se seguono più frame (rilevante solo nei Data Frames e nei Ma­na­ge­ment Frames).
    • Retry (nuovo tentativo): indica se e con quale frequenza è già avvenuto l’invio dei frame.
    • Power Ma­na­ge­ment (gestione dell’ali­men­ta­zio­ne): indica la modalità risparmio.
    • More Data (più dati): indica che devono essere inviati più dati.
    • WEP: indica se i dati sono crit­to­gra­fa­ti con WEP.
    • Order (ordine): comunica al de­sti­na­ta­rio se i dati vengono inviati nella giusta sequenza.
       
  • Duration: indica il tempo ne­ces­sa­rio al tra­smit­ten­te per la tra­smis­sio­ne dei dati. L’in­for­ma­zio­ne è decisiva per il Network Al­lo­ca­tion Vector. Anche questo campo è di 2 byte.
  • Receiver Address: comprende l’indirizzo MAC del de­sti­na­ta­rio (6 byte).
  • Tran­smit­ter Address: comprende l’indirizzo MAC del mittente (6 byte); è ne­ces­sa­rio solo per RTS, non per CTS e ACK.
  • Frame Check Sequence: la sequenza di verifica dei blocchi di 4 byte consiste in una checksum. In questo modo la stazione ricevente può stabilire se il Data Frame è arrivato cor­ret­ta­men­te, come pia­ni­fi­ca­to. Il tra­smit­ten­te calcola così le checksum dai dati del frame. Lo stesso pro­ce­di­men­to si trova anche dalla parte del de­sti­na­ta­rio, se il frame è giunto a de­sti­na­zio­ne. Se il risultato del de­sti­na­ta­rio coincide con quello che il mittente ha allegato al frame come FCS, la tra­smis­sio­ne è andata a buon fine.

Fino al campo che indica il Tran­smit­ter Address sono compresi es­sen­zial­men­te tutti quelli in RTS, CTS e ACK. Il campo del mittente è però in­te­res­san­te solo per il primo contatto, per fare in modo che il de­sti­na­ta­rio sappia con quali nodi comunica.

Tramite l’esten­sio­ne del pro­to­col­lo CSMA/CA con RTS/CTS è possibile ridurre le col­li­sio­ni al frame RTS iniziale. Così è no­no­stan­te tutto possibile che i due par­te­ci­pan­ti inviino con­tem­po­ra­nea­men­te una Request to Send alla stessa stazione. In un caso simile il de­sti­na­ta­rio non invia però nessun frame CTS, visto che i frame RTS non sono arrivati cor­ret­ta­men­te. In questo modo RTS/CTS può risolvere il problema del terminale nascosto: anche se i due tra­smit­ten­ti non si ri­co­no­sco­no per via dell’esten­sio­ne limitata, sono solo i frame RTS a essere a rischio e non i dati veri e propri. Infine si ricorre a CSMA/CA e la tra­smis­sio­ne può avvenire in modo ordinato.

Con lo scambio RTS/CTS viene risolto il problema del terminale nascosto, ma l’esten­sio­ne è re­spon­sa­bi­le di un’altra dif­fi­col­tà: il problema della stazione esposta. La si­tua­zio­ne è la stessa del problema del terminale nascosto: una stazione si trova in mezzo ad altre due stazioni che non si possono rag­giun­ge­re. Uno dei due di­spo­si­ti­vi vorrebbe inviare i dati alla stazione nel mezzo. Tutti i nodi rag­giun­gi­bi­li ricevono il frame CTS che evita di iniziare un invio di dati. Ciò permette di superare il problema del terminale nascosto, ma ne crea uno nuovo.

A una terza stazione viene infatti impedito di iniziare un invio, anche se l’obiettivo sarebbe una quarta stazione. Questa tra­smis­sio­ne non ge­ne­re­reb­be nessuna col­li­sio­ne, ma viene comunque in­ter­rot­ta, cosa che comporta un ral­len­ta­men­to dell’intera rete.

Network Al­lo­ca­tion Vector (NAV)

Prima che un di­spo­si­ti­vo nella rete cominci con una tra­smis­sio­ne, invia prima di tutto un’in­for­ma­zio­ne (nel campo Duration del frame RTS) a tutti gli altri par­te­ci­pan­ti. Così la stazione comunica per quanto tempo la rete debba rimanere riservata per la tra­smis­sio­ne. Ogni altro di­spo­si­ti­vo inserisce questa in­for­ma­zio­ne nel suo personale Network Al­lo­ca­tion Vector (anche se da un punto di vista ma­te­ma­ti­co non si tratta davvero di un vettore). Questo viene gestito in­ter­na­men­te e indica quando è di nuovo possibile un tentativo di invio. Il Network Al­lo­ca­tion Vector (NAV) conta pro­gres­si­va­men­te e viene aggiunto di nuovo dalle altre stazioni solo in presenza di nuove in­for­ma­zio­ni.

Un NAV può aumentare il timer fino a un massimo di 33 ms (32.767 µs). Questa è la durata massima per la quale un mittente può bloccare il mezzo. I di­spo­si­ti­vi nella rete sono inattivi, mentre il Network Al­lo­ca­tion Vector non è ancora scaduto, sprecando così meno energia. Solo quando il contatore è su 0, il par­te­ci­pan­te è di nuovo attivo e verifica la rete. Il NAV non solo si adatta tramite RTS, ma è con­di­zio­na­to anche da CTS e ACK. Quest’ultimo è il segnale dato a tutti i par­te­ci­pan­ti per reim­po­sta­re il campo di nuovo su 0: il mezzo è ora libero.

Lo svol­gi­men­to del processo CSMA/CA in sintesi

Se i par­te­ci­pan­ti in una rete senza fili seguono le direttive del Carrier Sense Multiple Access with Collision Avoidance devono ri­spet­ta­re dei precisi passaggi: prima di tutto le stazioni con­trol­la­no il mezzo tra­smis­si­vo. Ciò significa nel caso del Wi-Fi che il Carrier Sense controlla il canale radio e verifica così se gli altri par­te­ci­pan­ti della rete (per quanto visibile per il ri­spet­ti­vo di­spo­si­ti­vo) stanno inviando dei dati.

Se risulta che il mezzo tra­smis­si­vo è al momento riservato, viene avviato un backoff casuale: la stazione attende un in­ter­val­lo di tempo casuale fino a quando non viene ef­fet­tua­ta di nuovo una verifica. Succede lo stesso in tutte le altre stazioni che non sono al momento occupate con l’invio e la ricezione. Il tempo di attesa stabilito ca­sual­men­te ga­ran­ti­sce che i par­te­ci­pan­ti non comincino a ve­ri­fi­ca­re la rete con­tem­po­ra­nea­men­te e quindi non possono neanche iniziare con­tem­po­ra­nea­men­te la tra­smis­sio­ne dei dati. Ciò succede però solo se, per via del Network Al­lo­ca­tion Vector (NAV), alla stazione non è chiaro che il mezzo è occupato.

Se la rete dovesse essere libera, la stazione avvia la modalità DCF: prima di tutto viene ve­ri­fi­ca­to nuo­va­men­te il canale per la durata del DIFS. Nel caso in cui dovesse rimanere libero per questo in­ter­val­lo di tempo, inizia un backoff casuale e solo dopo comincia lo scambio RTS/CTS, qualora venga uti­liz­za­to questo mec­ca­ni­smo ag­giun­ti­vo. Se la Request to Send è arrivata cor­ret­ta­men­te al de­sti­na­ta­rio e quindi non si verifica nessuna col­li­sio­ne, il mittente riceve tramite il frame CTS l’au­to­riz­za­zio­ne a riservare il mezzo tra­smis­si­vo.

Con­tem­po­ra­nea­men­te tutti gli altri par­te­ci­pan­ti vengono informati che la rete è occupata. In questo modo fissano di nuovo i loro Network Al­lo­ca­tion Vector e aspettano fino a quando la verifica non segnalerà che il canale è di nuovo libero. Ora la stazione comincia la tra­smis­sio­ne. Una volta terminata, il de­sti­na­ta­rio aspetta per la durata di un SIFS e risponde poi con un frame ACK per con­fer­ma­re al mittente la ricezione completa e impostare il Network Al­lo­ca­tion Vector su 0; la rete è quindi libera per una nuova tra­smis­sio­ne.

I vantaggi e gli svantaggi del pro­to­col­lo CSMA/CA

CSMA/CA risolve alcuni problemi che si ve­ri­fi­ca­no nelle reti senza fili e che non possono essere risolti tramite CSMA/CD. Tuttavia il pro­ce­di­men­to presenta anche degli svantaggi: da una parte alcuni casi non possono essere risolti in­te­ra­men­te e dall’altra il pro­to­col­lo CSMA/CA porta con sé delle nuove dif­fi­col­tà.

Vantaggi Svantaggi
Protegge ef­fi­ca­ce­men­te dalle col­li­sio­ni di dati Fissa dei tempi di attesa
Grazie a verifiche i dati non vengono persi senza ac­cor­ger­se­ne Provoca un traffico dati ag­giun­ti­vo
Evita con l’esten­sio­ne RTS/CTS un traffico dati inutile Risolve il problema del terminale nascosto solo tramite l’esten­sio­ne RTS/CTS
  Crea il problema della stazione esposta tramite RTS/CTS

Che cosa sono gli accessi multipli in modo coor­di­na­to?

Visto che il pro­ce­di­men­to CSMA/CA è ben lontano dall’essere perfetto, si pensa di ampliarlo in modo da riuscire a eliminare i punti deboli. I due pro­ce­di­men­ti che seguono l’approccio di accessi multipli in modo coor­di­na­to sono stati ampliati, ma per diversi motivi sono uti­liz­za­ti solo di rado. Gli accessi multipli in modo coor­di­na­to sta­bi­li­sco­no un’or­ga­niz­za­zio­ne cen­tra­liz­za­ta: i permessi di accesso delle singole stazioni sul mezzo tra­smis­si­vo non devono essere coor­di­na­ti solo tra di loro; infatti le richieste avvengono tramite l’Access Point (ad esempio tramite il router del Wi-Fi).

Point Coor­di­na­tion Function

Il Point Coor­di­na­tion Function (PCF) viene inserito in aggiunta nel pro­ce­di­men­to CSMA/CA e so­sti­tui­sce o aggiunge la Di­stri­bu­ted Coor­di­na­tion Function (DCF). L’Access Point funge da coor­di­na­to­re (Point Coor­di­na­tor) e si rivolge in modo mirato alle stazioni presenti nella rete. Prima che questo accada, nessuno può occupare il mezzo tra­smis­si­vo. Per la clas­si­fi­ca­zio­ne delle singole stazioni il coor­di­na­to­re possiede una co­sid­det­ta lista di polling.

In base a questa lista a ogni par­te­ci­pan­te della rete viene richiesto di disporsi in ordine se­quen­zia­le o per priorità, nel caso in cui voglia avviare una co­mu­ni­ca­zio­ne. Tuttavia prima che l’Access Point cominci la richiesta, come per la DCF deve tra­scor­re­re un in­ter­val­lo di tempo ma solo per la lunghezza di un PIFS. Il PCF In­ter­fra­me Space è un time slot più breve rispetto al DIFS e ha così una priorità maggiore. PCF ha la pre­ce­den­za su DCF.

Il pro­ce­di­men­to fornisce un approccio per risolvere il problema del terminale nascosto: grazie a un buon po­si­zio­na­men­to dell’Access Point il ne­ces­sa­rio raggio di azione può essere dimezzato. Tramite il PCF non è più ne­ces­sa­rio che i par­te­ci­pan­ti si rilevino. Basta che l’Access Point sia po­si­zio­na­to cen­tral­men­te e possa rag­giun­ge­re così tutte le stazioni, creando una struttura a forma di stella.

Dalla funzione Point Coor­di­na­tion deriva però un altro punto debole: per poter uti­liz­za­re la tec­no­lo­gia, tutti i par­te­ci­pan­ti della rete devono poter usufruire del PCF. Non è però sempre così: se i di­spo­si­ti­vi non par­te­ci­pa­no al pro­ce­di­men­to PCF, vengono sem­pli­ce­men­te ignorati insieme ai loro desideri di tra­smis­sio­ne. Così è stato svi­lup­pa­to un sistema al­ter­nan­te: qui si possono alternare PCF e DCF per dare a tutti i di­spo­si­ti­vi nella rete la pos­si­bi­li­tà di tra­smis­sio­ne.  

Perciò l’Access Point mette a di­spo­si­zio­ne due in­ter­val­li di tempo: da una parte c’è il Con­ten­tion Free Period (CFP), in cui il PCF ga­ran­ti­sce l’accesso multiplo in modo coor­di­na­to, e dall’altra il Con­ten­tion Period (CP), in cui è in uso la DCF, che evita le col­li­sio­ni tramite CSMA/CA, come descritto sopra.  Questa al­ter­nan­za viene avviata da un beacon frame, che il coor­di­na­to­re invia a tutte le stazioni.

Hybrid Coor­di­na­tion Function Con­trol­led Channel Access (HCCA)

L’altro pro­ce­di­men­to con gli accessi multipli in modo coor­di­na­to, l’HCF Con­trol­led Channel Access, si orienta molto al pro­ce­di­men­to PCF. Tuttavia HCCA regola di­ver­sa­men­te il cambio tra il Con­ten­tion Period e il Con­ten­tion Free Period. Al posto di un sistema alternato, HCCA sta­bi­li­sce la pos­si­bi­li­tà che l’Access Point possa essere sempre con­ver­ti­to da CP a CFP, che nell’HCCA si chiama però Con­trol­led Access Phase (CAP). In questo periodo l’Hybrid Coor­di­na­tor coordina (anche qui l’Access Point), chi può inviare i dati e quando, in base alla priorità. Il coor­di­na­to­re lo comunica tramite Traffic Classes (TC), che indicano pure le stazioni. Così a diverse classi possono essere assegnate diverse priorità.

Inoltre è da con­si­de­ra­re il fatto che nell’HCCA l’in­ter­val­lo di tra­smis­sio­ne diventa una Transmit Op­por­tu­ni­ty (TXOP), che descrive un in­ter­val­lo di tempo in cui il mittente può inviare non uno solo ma tanti frame di dati, come è possibile all’interno della fase TXOP. Se un frame dovesse essere troppo grande per un in­ter­val­lo di tempo, deve essere diviso e inviato in più parti. Così si evita che le stazioni più lente ral­len­ti­no quelle più veloci.

Durante il Con­ten­tion Period vale invece l’Enhanced Di­stri­bu­ted Channel Access (EDCA), che segue a sua volta una clas­si­fi­ca­zio­ne per priorità. Questo ordine non viene però or­ga­niz­za­to in modo cen­tra­liz­za­to, ma le stazioni par­te­ci­pan­ti si strut­tu­ra­no tra di loro, in maniera analoga a quanto avviene nella DCF. I nodi che hanno l’incarico di tra­smet­te­re un traffico im­por­tan­te non hanno bisogno di dover aspettare un DIFS pieno, ma basterà mettere in pausa stazioni simili solo per la lunghezza dell’Ar­bi­tra­tion In­ter­fra­me Space (AIFS). Per essere precisi ci sono diversi AIFS che sono numerati in base alla priorità. Qui AIFS1 ha il livello di priorità più alto ed è perciò più piccolo del DIFS ma più lungo di un SIFS. Anche nell’EDCA è in uso il TXOP.

Vai al menu prin­ci­pa­le