PROTOCOLLO CSMA (Carrie Sense Multiple Access) Supponiamo che più stazioni si trovino nella condizione di dover condividere uno stesso canale trasmissivo. Ad esempio più terminali connessi su una stessa LAN. Sappiamo che in questa situazione, se più stazioni accedono contemporaneamente al canale effettuando una trasmissione, generano una collisione di dati con la conseguente perdita dell'informazione. Appare quindi necessario un'insieme di regole che disciplinino l'accesso al canale. L'insieme di tali regole va sotto il nome di protocollo.Il CSMA è un protocollo a contesa. Con questo s'intende l'assenza di un'entità centralizzata che decide chi deve trasmettere e chi meno. Le stazioni si contendono quindi l'accesso al canale. Nella versione base si ha che la stazione, prima di effettuare la trasmissione, ascolta il canale per capire se ne è presente una in corso. L'ascolto del canale continua anche durante la trasmissione. In tal modo la stazione in esame, potrà rendersi conto di un'eventuale collisione e interrompere la trasmissione. In una sua variante, ovvero la CSMA/CA, s'impone che le stazioni che hanno generato la collisione, attendano un tempo ramdom prima di riprovare a trasmettere. La variante che interessa il nostro studio è la CSMA/CD. Questa è anche la più diffusa. Nel caso la trasmissione avvenga via etere, la rilevazione di una portante definisce l'occupazione del canale. Se invece la trasmissione è effettuata via cavo, si effettua una lettura della potenza. Si ha quindi che una stazione inizia la propria trasmissione solo se rileva il canale libero. Ora questo modo di procedere non salvaguarda da collisioni. Supponiamo infatti di trovarci nella situazione in cui ci siano due stazioni molto lontane tra loro. Il segnale trasmesso dalla prima impiegherà un po' di tempo per giungere alla seconda. Supponendo che la trasmissione avvenga in t 0 e che il segnale giunga alla seconda in un tempo T, avremo la presenza di una finestra temporale all'interno della quale la seconda stazione non rileva presenza di segnale sul canale. In tale situazione si sentirà pertanto autorizzata ad accedere al canale, causando una collisione di dati. Tale finestra va infatti sotto il nome di finestra di collisione ed aumenta in modo direttamente proporzionale alla grandezza della LAN. Vi sono inoltre casi in cui la seconda stazione non è in grado neanche di rilevare l'avvenuta collisione. In tal caso potrebbe pensare che la trasmissione ha avuto buon fine e di conseguenza non effettua la ritrasmissione del pacchetto informativo. Questo avviene quando la durata della trasmissione della seconda stazione avviene in un tempo inferiore della durata della finestra temporale. Questo è un grosso limite che porta alla drastica riduzione dell'estensione di una rete i cui terminali presentano un'elevata velocità di trasmissione. Le WLAN Le reti locali wireless, o LAN wireless, stanno modificando il mondo delle reti di computer. Le aziende di tutto il mondo stanno implementando reti wireless indipendenti o in aggiunta a quelle cablate per aumentare la produttività dei dipendenti, ridurre i costi e superare gli ostacoli delle connessioni tradizionali. Giunte sul mercato nei primissimi anni novanta, esse hanno avuto la definitiva svolta con l'approvazione dello standard IEEE 802.11 (1997) evolutosi in seguito nello 811.2a e 811.2b. Quest'ultimo definisce oggi lo standard definitivo per il WLAN anche se si lavora ancora al fine di ottenere un miglioramento ed un adattamento dello stesso alle esigenze quotidiane. Infatti parallelamente sono nati altri standard meno conosciuti. Citiamo ad onor di cronaca l'HIPERLAN definito dall'European Telecomunications Standards InstituteBroadband Radio Access Network, l'HomeRF SWAP e il Bluetooth. Quali sono i vantaggi che rendono così appetibile questa tecnologia? Beh, indubbiamente la flessibilità. Infatti abbiamo un'enorme aumento d'efficienza rispetto ad una rete cablata. Si scavalcano in questo modo tutti quei problemi riscontrati nella stesura della stessa. Pensate ad esempio la realizzazione di una LAN che colleghi due edifici separati da grossi ostacoli o la stesura della stessa all'interno di una struttura storica. Non ci sarebbe più bisogno di stendere cavi antiestetici. Abbiamo inoltre la possibilità di rendere mobile l'utente collegato. Pertanto se parliamo di computer portatili le potenzialità aumentano. Immaginatene l'uso che se ne potrebbe fare all'interno di una struttura sanitaria quale un ospedale oppure all'interno di un aeroporto, un magazzino. A tutto questo aggiungiamo che i costi di realizzazione sono relativamente bassi. Ovviamente c'è il risvolto della medaglia e quindi gli svantaggi. Essendo una trasmissione radio fatta ad alta frequenza, ne presenta tutte le pecche. Abbiamo da considerare fenomeni di attenuazione, interferenza, riflessioni, e sicurezza. A ciò va aggiunto problemi energetici legati al fatto che usiamo dispositivi a batteria e compatibilità. Per i primi tre, i problemi sono identici a quelli riscontrati in una qualsiasi altra trasmissione radio. Ipotizzando un trasmettitore isotopico (che trasmette nello stesso modo in tutte le direzioni) abbiamo che il segnale si propaga e la potenza si spalma istante per istante su sfere concentriche. Questo porta ad un'attenuazione che è inversamente proporzionale alla distanza percorsa dal segnale. Quindi se trasmettiamo una potenza effimera, non arriva nulla. Se trasmettiamo una potenza superiore al necessario, inficiamo sulla durata della batteria. Ancora, il segnale in presenza di ostacoli rimbalza e genera un'onda riflessa. Questa giunge sul ricevitore contemporaneamente al segnale diretto ed a un'infinità di segnali riflessi (fenomeno delle riflessioni multiple). Specie negli ambienti chiusi. Il risultato è una distorsione del segnale e nella peggiore delle situazioni, il fenomeno dell'affievolimento profondo. Poi c'è l'interferenza verso altri dispositivi e la suscettanza nei confronti di disturbi radio. Parlando invece di compatibilità, il problema nasce dalla presenza di diversi standard. E' ovviamente preferibile l'uso di access point e schede identiche per poter sfruttare al massimo la rete. Infine, ma non per ultimo per importanza, il problema della sicurezza. L'informazione trasmessa diviene alla portata di tutti, pertanto occorre effettuare un criptaggio del segnale. Le applicazioni della WLAN sono in parte stati elencati prima quando ho trattato i vantaggi. A questi vanno aggiunti il prossimo lancio dell'home networking (dispositivi che colloquiano tra loro all'interno di un'appartamento) o ai cellulari di prossima generazione. Facciamo ora una breve panoramica sugli standard. In questa sede tratto solo gli standard citati sopra a eccezione dello standard 802.11. Per questo dedicherò un paragrafo molto completo, cercando di venire incontro a tutti gli interessati, dato che in giro si trova solo materiale in inglese. Il primo standard citato, ovvero l'HIPERLAN definito nel 1996 dallo ETSI-BRAN. Esso lavora su una banda centrata sui 5Ghz raggiungendo un throughput di 24 Mbps. E' garantito il supporto Quality of Service (QoS) per voce dati immagini e video. Da poco ne è stata sviluppata una seconda versione che si pone in diretta concorrenza con lo standard americano 802.11. In questa il throughput si porta a 54 Mbps. Di seguito si riporta una tabella riassuntiva circa le caratteristiche della famiglia HIPERLAN. La tecnologia bluetooth è stata approvata nel 1998 dalla Bluetooth SIG. Nata per ovviare ai problemi di mancanza di compatibilità fra periferiche digitali, usa potenze più basse rispetto agli altri standard, definendo in realtà una PAM (personal area network) ovvero un sottoinsieme di una WLAN più grande. Esso è utilizzato per far comunicare dispositivi situati a pochi metri di distanza l'uno dall'altro (computer con periferiche) In questa si ha che i dati vendono trasmessi con Modulazione FHSS (frequency hopping spread spectrum) con GFSK (Gaussian Frequency Shift Keying) su una frequenza di 2.4 Ghz con velocità di 1 Mbps. Di questi giorni la notizia secondo la quale la Bluetooth SIG ha rilasciato un aggiornamento alle proprie specifiche che promette di risolvere alcune delle lacune tecniche rimaste aperte nelle specifiche 1.1 E' inoltre disponibile ondine un'analisi Sui problemi di sicurezza di Bluetooth consultabile qui in formato PDF, gli esperti di @stake. Infine lo SWAP (Shared Wireless Application Protocol) creato dall'HomeRF Working Group prevede una modulazione FHSS a 2.4Ghz con velocità variabile tra 1 e 2 Mbps. STANDARD IEEE 802.11 Il gruppo 802.11 può essere visto come una famiglia di standard comprendenti un'insieme di standard quali: - 802.2: Logical Link Control 802.3: Carrier Sense Multiple Access with Collision Avoidance 802.4: Token bus 802.5: Token Ring 802.6: Distributed Queuing Dual Bus (DQDB) 802.9: Unified Integrated Services su Backbone 802.11: WLAN 802.12: Demand Priority Access Method 802.14: Cable TV - 802.15: Wireless Personal Area Networks - 802.16: Broadband Wireless Access Methods che riguardano il livello MAC e il livello fisico della pila ISO-OSI. Riportata in figura. Lo standard 802.11 si riferisce alle reti wireless. Nello standard originale si focalizza l'attenzione su tre distinti livelli fisici (Infrarosso Trasmissione radio con modulazione FHSS - Trasmissione radio con modulazione DSSS) e il livello MAC. In seguito si sono avute due estensioni quali 802.11a e 802.11b. La versione base propone l'uso della banda di frequenze dei 2.4GHz, la cosiddetta ISM (Industrial, Scientific and Medical band) che è disponibile a libero uso dei privati, senza la necessità di ottenere concessioni da parte degli enti pubblici. Nella prima estensione si ottiene un throughput massimo di 54 Mbps ad una frequenza di lavoro di 5,2 GHz. A causa dell'elevata frequenza usata, vengono richiesti un maggior numero di AP rispetto allo standard 802.11b. Questo non è autorizzato in Europa ed è il diretto concorrente dello standard Europeo Hyperlan/2. I prodotti sono marcati con la sigla "Wi-Fi5". Un problema riscontrato è il seguente: la frequenza utilizzata è la stessa con cui operano i satelliti, perciò l'utilizzo è permesso soltanto per gli ambienti chiusi. In questo standard viene utilizzata la tecnologia di modulazione OFDM con tecniche di modulazione BPSK/QPSK/16 QAM/64 QAM, 8 canali disponibili non overlapping. Nella seconda estensione, la 802.11b, abbiamo invece un throughput massimo di 11 Mbps, 100 metri di distanza , utilizzo della banda ISM a 2.4 GHz, tecnica di modulazione DSSS con tecniche di modulazione quali: - DBPSK (Differential Binary Phase Shift Keying) per velocità da 1 Mbps - DQPSK (Differential Quaternary Phase Shift Keying) per velocità da 2 Mbps - QPSK/CCK (Quaternary Phase Shift Keying with Complementary Code Keying) per velocità comprese tra 5,5 e 11 Mbps. Il livello fisico di questi standard viene comunque approfondito nell'omonimo paragrafo. Attualmente lo standard 802.11 è in continua evoluzione, grazie alle estensioni che i vari gruppi di lavoro stanno studiando e proponendo. Da poco si è infatti approvato lo standard 802.11g che presenta un throughput di 54 Mbps ad una frequenza di 2.4 GHz. La tecnica di modulazione usata è la OFDM (tre canali disponibili non overlapping). Si riporta di seguito un elenco dei vari gruppi di lavoro dell'IEEE 802.11 per capire in quali campi di ricerca essi lavorano. Topologie di rete contemplate dallo standard 802.11 In una WLAN il blocco elementare è dato da una BSS (Basic Service Ser) ovvero un gruppo di stazioni situate nella stessa area e coordinate dalla stessa funzione di coordinazione (DCF o PCF. Avrò modo in seguito di parlare di queste.) Solitamente abbiamo che in questi blocchi una stazione può colloquiare direttamente con un'altra che si trovi all'interno della stessa BSS. Tale area prende il nome di BSA (Basic Service Area). Sostanzialmente abbiamo una serie di NIC (Network Interface Card) wireless, dette anche semplicemente stazioni (STA), inserite in apparati di diversa natura (PC, portatili, palmari,ecc.) e da un bridge wireless, definito AP (Access Point), come mostrato in figura. L'Access Point interfaccia la WLAN con la rete cablata (quindi anche con altre WLAN eventualmente) . Per la maggior parte delle WLAN presenti sul mercato il range spaziale all'interno del quale le stazioni riescono a trasmettere dati con l'AP è di circa 300m all'aperto. Nello standard in questione sono definite due tipologie: • Reti IBSS (Indipendent BSS) dette anche ad hoc network. • Reti ESS (Extended Service set) Nel primo caso siamo in assenza di un'AP. La comunicazione tra due distinte stazioni può avvenire direttamente se queste sono in visibilità radio, come riportato in figura. Oppure attraverso l'ausilio di stazioni intermedie il cui compito è quello di propagare l'informazione fino al destinatario. In quest'ultimo caso la rete necessita di un protocollo di routing per l'instradamento dei dati. Nel secondo caso siamo invece in presenza di un'AP. La comunicazione tra due distinte stazioni avviene sempre mediante l'appoggio intermedio sull'AP che quindi deve essere necessariamente in visibilità radio con le altre stazioni. Più BSS formano in tal modo una rete wireless di più vasta copertura geografica. Tutto sta nel posizionare opportunamente gli AP. E' ovvio che ogni stazione sarà in comunicazione con un solo AP ovvero quello che presenta migliore visibilità radio. Compito degli AP sarà quindi anche quello di comunicare tra loro o con reti esterne. Quindi oltre alle funzioni di coordinazione abbiamo anche quella di bridge verso l'esterno mediante l'uso di DS (Distribution Service) ovvero una dorsale wireless o wired che connette tra loro gli AP e l'interfaccia con l'esterno. Qualora una stazione sia mobile è possibile mediante l'uso di protocolli di roaming di dissociarsi da una BSS per entrare a far parte di una nuova. Tenendo conto ovviamente della visibilità radio offerta dal corrispondente AP e dal traffico gestito dallo stesso. Il livello MAC nello standard IEEE 802.11 L'architettura logica di una WLAN che definisce l'attività di rete, comprende gli ultimi due livelli della pila ISO-OSI, come riportato nella figura seguente. In una Wireless LAN abbiamo che le stazioni sono obbligate a condividere lo stesso canale trasmissivo. Questo implica il problema delle collisioni nel caso avvenga la trasmissione contemporanea da parte di due o più stazioni. Per evitare questo problema, il standard in questione utilizza il protocollo CSMA/CA con acknowledgment (ACK) definendo così il DCF (Distribuited Coordination Function ). Perché viene utilizzato quest'ultimo? Perché nelle strutture wireless, a causa della bassa potenza trasmessa dai nodi, non si rende possibile la rilevazione di una collisione. Una stazione che trasmette il pacchetto informativo, è in grado di rilevare la collisione solo a fine trasmissione. In tal caso infatti, non riceverà il pacchetto ACK valido come riscontro. Ovviamente il segnale di ACK viene generato dalla stazione ricevente che ha ricevuto correttamente il dato trasmesso. Parliamo di ricezione corretta in quanto alla perdita d'informazione non concorre solo il fenomeno della collisione, ma anche il rumore presente sul canale ed altri fenomeni di disturbo. In Tali situazioni si sfrutta il Bit Error Rate e il Packet Error Rate per quantificare l'entità del disturbo. Abbiamo quindi introdotto il concetto di DCF. Questo è il modo fondamentale di coordinamento di traffico in una WLAN. Esso infatti è sempre presente. Stessa cosa non va invece detta per il PCF che è una funzione di coordinamento opinabile. Questi modi posso coesistere in una WLAN. Considerando infatti il CFP riportato in figura, abbiamo che il DCF lavora nel CP (Contention Period), mentre il PCF nel CFP (Contention Free Period). Nei prossimi capitoli avrò modo di approfondire l'analisi di queste due funzioni di coordinazione. Prima di andare ad analizzare il frame soffermiamoci un momento sul funzionamento della pila ISO-OSI al fine di capire come viene costruito il frame. Sappiamo che questa è una struttura gerarchica il cui funzionamento può essere riassunto per grandi linee nel seguente modo: il programma applicativo dell' host 1 deve mandare un messaggio alla sua peer entity dell' host 2 ; il livello applicativo consegna quindi il messaggio in oggetto al livello sottostante per la trasmissione; questo aggiunge un suo header ( testata ) in testa al messaggio. Quest'ultimo contiene informazioni di controllo, tra le quali il numero di sequenza del messaggio, la dimensione del messaggio e altro. L'informazione così elaborata viene passata al livello sottostante che può trovarsi nella necessità di frammentare i dati da trasmettere in unità più piccole, (i cosiddetti pacchetti ) a ciascuna delle quali aggiunge il suo header. Il messaggio è quindi passato al livello sottostante ovvero il livello MAC. Questo blocco di dati costituisce il frame body del pacchetto a livello MAC, indicato anche come MSDU (MAC Service Data Unit) ; proprio il livello MAC vi aggiunge ulteriori dati in testa (MAC header) ed in coda (il campo FCS), a formare il MPDU (MAC Protocol Data Unit) , che `e il payload di un pacchetto a livello fisico e quindi viene anche indicato come PSDU (Physical Service Data Unit) ; infine il livello fisico vi aggiunge in testa i campi di preambolo ed intestazione, traduce in segnale elettrico il pacchetto così ottenuto e lo trasmette sul canale fisico tramite una opportuna modulazione. In caso di pacchetto ricevuto il percorso da seguire `e invertito. Vi sono inoltre dei frame che non contengono dati ma sono comunque essenziali per la rete; questi sono generati interamente dal livello MAC e quindi il relativo eventuale MSDU non proviene dai livelli superiori. Passiamo ora a descrivere come è organizzato il frame nello standard 802.11. Ricordiamo anzitutto che il frame è un'insieme di oggetti dalla struttura ben definita e nota sia a chi trasmette sia a chi riceve. Il formato generale presenta un'insieme di campi che si presentano in un fissato ordine. In figura si riporta tale modello generale. Vediamo quindi come sono organizzati i vari campi. Il frame di controllo consiste in un insieme di sottocampi quali: Protocol Version, Type, Subtype, To DS, From DS, More Fragments, Retry, Power Management, More Data, Wired Equivalent Privacy (WEP), e Order. Questi vengono riportati nella figura seguente. Protocol Version : è un campo di lunghezza pari a due bit contiene informazioni circa le revisioni dello standard in uso. Nello standard 802.11 tale valore è settato a 0. Questa quantità viene incrementata di una unità quando si presenta un'incompatibilità tra la versione in uso e la precedente. Type and subtype : presentano una lunghezza rispettiva di due e quattro bit. La loro funzione è quella di identificare il tipo di frame in oggetto. Abbiamo infatti tre tipi di frame supportati dallo standard 802.11: - Frame di gestione: comprendono frame usati per l'associazione e la separazione da una BSS, per l'autenticazione e la deautenticazione, per la temporizzazione e la sincronizzazione. - Frame di controllo: comprendono frame usati per l'handshake durante il CP, per l'ACK positivi durante il CP e per la terminazione dle CFP. - Frame dati: contengono i dati trasmessi durante il CP e il CFP. Si riporta di seguito una tabella relativa alle combinazioni di bit valide. To DS : settando tale campo a 1 o 0 si definisce se il frame è destinato al Distribution System o meno. From DS : se posto a 1 indica che il frame proviene dal Distribution System. In caso contrario è settato a 0. More Fragment: questo campo, di lunghezza pari a 1 bit, viene settato a 1 nei frame di dati o di gestione che hanno subito la frammentazione, dando così l'indicazione della presenza di altri pacchetti del corrente MSDU (MAC Service Data Unit) o MMPDU (MAC Management Protocol Data Unit). Retry Field: questo campo, di lunghezza pari a 1 bit, è settato a 1 nei frame dati e di gestione che hanno subito la ritrasmissione. Serve a dare informazione alla stazione ricevente circa l'eliminazione dei frame doppioni. Power Management Field: questo campo, di lunghezza pari a 1 bit, definisce lo stato energetico di una stazione (active / power save mode). Questo valore è indicativo dello stato di una stazione al termine di uno scambio di dati. Il livello logico 1 è indicativo dello stato power save mode. Il campo è settato sempre a 0 nei frame trasmessi da un Access Point. More Data Field: questo campo, di lunghezza pari a 1 bit, se settato a 1 da indicazione ad una stazione in power save mode che altri MSDU o MMPDU stanno per essergli inviati da un AP. WEP Field: questo campo, di lunghezza pari a 1 bit, se settato a 1 indica che il corpo del frame ha subito un criptaggio con algoritmo WEP. Tale campo può essere settato a 1 solo nei frame dati e di autenticazione. Order Field: questo campo, di lunghezza pari a 1 bit, è settato a 1 solo nei framme di dati che contengono MSDU o frammenti dello stesso. Ritorniamo quindi alla descrizione dei campi presenti nel frame generico. Duration/ID Field: questo campo presenta una lunghezza di 16 bit ed il contenuto può assumere i seguenti significati: Nei frame di controllo con subtype power save-poll, viene memorizzato nei 14 bit meno significativi l'AID (Association Identity) della stazione trasmittente. I due bit più significativi vengono settati a 1. In ogni altro tipo di frame definisce un valore indicativo della durata del frame stesso. Tale valore va ad aggiornare il contenuto del NAV (Network Allocation Vector) di cui parlerò in seguito. I frames trasmessi durante il CFP presentano questo campo settato al valore di 32768. Address Field: All'interno del frame ci sono ben 4 campi contenenti informazioni circa indirizzi. Senza dilungarmi troppo nella descrizione di questi (per maggior informazioni fate riferimento allo standard 802.11) mi limito a dire che vengono trasmesse informazioni circa il BSSID (Basic Service Set Identifier) , DA (Destination Address), SA (Source Address), RA (Recevier Address) e TA (Trasmitter Address). Sequence Control Field: è un campo lungo 16 bit all'interno del quale è possibile individuare due sottocampi. I primi 4 bit identificano il numero del pacchetto qualora ci sia stata una frammentazione (Fragment Sequence), mentre i rimanenti 12 definiscono il numero del MSDU o MMPDU all'interno della sequenza generale (Sequenze Number). Frame Body Field: è il corpo del frame, contenente l'informazione che si vuol trasmettere. La sua dimensione varia tra 0 e 2312 byte. FCS Field: è un campo di controllo dell'errore ( frame check sequence, FCS ), che contiene un valore a 32 bit calcolato in funzione di tutti i precedenti byte presenti nel frame, indicato come CRC (cyclic redundancy code). Prima di inviare un qualsiasi frame, il nodo deve in generale verificare che il canale sia libero (assenza di portanti) per un certo intervallo di tempo, chiamato IFS (Interframe Space). Questa quantità può assume quattro valori distinti e definiti come segue: - SIFS (Short IFS) : è il più breve intervallo di tempo definito. E' usato per i frame di ACK o CTS (Clear to Send), tra due MPDU all'interno di un burst, da una stazione che risponde al polling; - PIFS (PCF IFS)= SIFS + aSlotTime . Usato esclusivamente nella modalità PCF per avere priorità nell'accesso al canale, è definito in funzione di aSlotTime , l'unità temporale dipendente dal livello fisico usato; - DIFS (DCF IFS) = PIFS + aSlotTime. U sato esclusivamente nella modalità DCF in generale prima di iniziare una contesa; - EIFS (Extended IFS) = DIFS + 8 * ( durata di unACK ) + ( durata di un preambolo ed una intestazione PLCP ). E' usato nella modalità DCF quando vengono rilevati degli errori nel canale al livello fisico, tramite il controllo dei CRC; Il DCF (Distribuited Coordination Function) Come detto in precedenza, il DCf rappresenta all'interno dello standard IEEE 802.11 il metodo fondamentale di funzionamento della rete e pertanto è obbligatoriamente presente in tutte le sue implementazioni. Esso sfrutta il protocollo CSMA/CA che ricordiamo essere di tipo a contesa. Questo è opportunamente modificato al fine di ottenere un riduzione delle collisioni. Passiamo ad analizzare l'insieme di regole che una stazione deve rispettare per poter trasmettere all'interno di una BSS. Ogni stazione che presenta del traffico in coda è una stazione che partecipa alla contesa del canale. Questa si pone in ascolto del canale attendendo che lo stesso risulti libero. Appena ciò avviene si attende un DIFS quindi, se ci sono concorrenti, si partecipa alla contesa. In caso contrario la trasmissione avviene subito al termine del DIFS. L'ascolto del canale, al fine di determinare se lo stesso è occupato o meno, avviene facendo uso di due tecniche. La prima agisce a livello fisico e consiste nel effettuare un'analisi della potenza presente sul canale stesso al fine d'individuare la presenza o meno di una trasmissione. A questa viene affiancata una tecnica chiamata Virtual Carrie Sensing. Nell'analisi del frame abbiamo individuato un campo denominato Duration/ID. in questo viene inserito un valore che definisce la durata, espressa in microsecondi, della corrente sequenza di scambio di dati. Tale quantità viene calcolata a partire dal termine della ricezione del frame contenente l'informazione stessa. Questa viene inserita nel NAV di tutte le stazioni facenti parte della BSS. Pertanto, ricevuto questo frame di controllo, tutte le stazioni aggiorneranno il proprio NAV ed incominceranno a decrementarlo. Il canale risulterà occupato per tutte le stazioni che presentano un NAV diverso da zero. Una stazione il cui NAV è uguale a zero, attende un DIFS, quindi inizia la contesa. Ovviamente il canale risulterà occupato se almeno uno dei due meccanismi da esito negativo. Vediamo cosa accade più nel dettaglio. Una stazione che vince la contesa trasmette il proprio pacchetto. Chi riceve questo attende un SIFS quindi risponde con un ACK. Tale segnale indica che la trasmissione ha avuto esito positivo. Pertanto lo stesso viene generato solo se non ci sono state collisioni o se il controllo degli errori ha dato esito negativo. Si potrebbe infatti avere che dopo la procedura di contesa del canale, due o più stazioni inizino la trasmissione. In tale situazione solo l'assenza di riscontro positivo sarà indice di un errore nella trasmissione stessa. In tal caso si attenderà che il canale si liberi più un DIFS per poter partecipare nuovamente alla contesa. Vediamo quindi come avviene la contesa del canale. Ogni stazione genera un valore intero in modo casuale mediante l'uso di una distribuzione uniforme all'interno di un intervallo [0, CW] La grandezza di quest'intervallo è definita dallo standard. Il valore estratto è un multiplo intero del aSlot-Time. Dopo che il DIFS è trascorso, si dovrà attendere che passi un tempo pari a questo appena definito prima di poter trasmettere. Sostanzialmente abbiamo quindi che una stazione genera tale valore e comincia a decrementarlo di un aSlot-Time. Vede quindi cosa accade sul canale e decrementa di un altro aSlot-Time. Quando il valore ottenuto diviene pari a zero, la contesa risulta riuscita e si inizia la trasmissione. Questa procedura prende il nome di Backoff Time. Qualora durante questa operazione il canale dovesse risultare occupato, allora si congela il valore. La procedura viene quindi riavviata nell'istante in cui il canale risulta libero per un DIFS. Una volta vinta la contesa e trasmesso il frame, la procedura si ripete estraendo un nuovo valore dalla finestra [0, CW] La differenza sta che in questo caso, il limite superiore della finestra è settato a CW min nel caso in cui la trasmissione abbia avuto esito positivo (ACK), mentre viene assegnato valore pari a : CW = 2CW + 1 < CW max in caso di esito negativo. Il numero massimo di ritrasmissioni di uno stesso frame è definito da due parametri quali Short Retry Limit e Long Retry Limit. Il primo è usato qualora stiamo trasmettendo un MSDU o un MMPDU di lunghezza inferiore ad un certo parametro. Il secondo negli altri casi. Esiste un'altra modalità di trasmissione nella quale si ha lo scambio di due frame di controllo prima della trasmissione effettiva. Vediamo come avviene e in quali casi è utilizzata. Il primo frame trasmesso dalla stazione sorgente è un RTS (Request to Send). Questo specifica la durata della trasmissione del presente frame di dati e del seguente frame di ACK. La stazione destinatario, dopo un intervallo di tempo di un SIFS dalla ricezione del RTS, invia un frame CTS (Clear to Send) in cui sono contenute ancora informazioni sulla durata dell'attuale trasmissione. Tutte le stazioni all'interno del BSS, che riescono a “sentire” i frame RTS e CTS, aggiornano il valore del loro NAV grazie alle informazioni contenute in questi. Lo scambio dei frame di RTS e CTS viene indicato dallo standard come facoltativo, in quanto, soprattutto in presenza di frame di dati molto piccoli, potrebbe rendere inefficiente il protocollo. Esso si rende comunque necessario in presenza delle hidden stations : potrebbero esserci nella stessa BSS due stazioni non in visibilità radio fra loro (ma che comunque vedono l'AP); se una delle due inizia la trasmissione di un frame di dati diretto all'AP, l'altra non riuscirà in alcun modo ad accorgersi dello stato occupato del canale e potrebbe quindi iniziare una propria trasmissione, dando dunque origine ad una collisione e alla perdita di entrambi i frame. In questa procedura invece, supponendo che la stazione remota non riesca a ricevere l'informazione contenuta nell'RTS, sfrutterà quella contenuta nel CTS per aggiornare il proprio NAV.Discutiamo infine la presenza di un meccanismo di frammentazione usato qualora il canale non permetta la trasmissione di frame troppo lunghi. Il frame originario viene spezzettato ed inviato sottoforma di frame più piccoli. La stazione ricevente invierà un segnale di ACK ad ogni ricezione corretta. Sarà impegno della stazione ricevente ricostruire il frame originario. PCF (Point Coordination Function) Come accennato in precedenza questa funzione di coordinazione va implementata opinabilmente. In ogni caso sarà sempre presente il DCF che è la funzione di coordinazione fondamentale all'interno di una rete wireless. Entrambe queste possono coesistere in quanto vengono ad essere implementate in istanti di tempo distinti. Se consideriamo il CFP Repetition Interval, il PCF viene implementato nel CFP (Contention Free Period) mentre il DCF nel CP (Contention Period). Vado a commentare la seguente figura tratta direttamente dallo standard IEEE 802.11 L'inizio del CFP è determinato dal PC (Point Coordinator) che solitamente coincide con l'AP della BSS. Questo invia un pacchetto, detto Beacon Frame, la cui utilità è quella di sincronizzare la BSS. Tale frame viene inviato solo dopo che il PC ha constatato che il canale è rimasto libero per un PIFS. Ricordo che tale valore è numericamente inferiore al DIFS, tempo che deve invece attendere una generica stazione prima di poter accedere al canale. Di conseguenza viene garantita la priorità del PC nell'accesso al canale rispetto ad una generica stazione. Trasmesso quindi il Beacon Frame, si ha che tutti i NAV vengono aggiornati ad un valore tale da impedire l'accesso al canale per tutta la durata del CFP. In tal modo si sfrutta il Virtual Sensing per proteggere il PCF. La durata del CFP è inizialmente settata al valore massimo ovvero il CFP Max Duration. In realtà tale periodo può essere terminato anticipatamente dal PC mediante l'invio di un frame detto CF-END. Nel CFP abbiamo quindi che il PC accede per primo al canale. Quindi interroga le stazioni e concede alle stesse il permesso di trasmettere. La procedura seguita è la seguente. Trasmesso il Beacon, il PC attende un SIFS. Quindi trasmette il CF-Poll ovvero un frame che autorizza la stazione che lo riceve a trasmettere. Quest'ultima risponde quindi con un frame di dati (nel caso generale) al quale segue un segnale di CF-ACK da parte del PC in caso di corretta ricezione. Qualora sia invece il PC a dover trasmettere dei dati ad una stazione, si ha la trasmissione di questi al posto del CF-Poll e la conseguente risposta da parte della stazione ricevente con un CF-ACK in caso di corretta ricezione. Nel PCF i frame vengono spessi accorpati al fine di migliorarne l'efficienza. Pertanto avremo che i PC possono trasmettere frame del tipo CF-Poll, CF-ACK + CF-Poll, Data + CF-ACK + CF-Poll. La stazione che ha ricevuto il CF-Poll può rispondere dopo un SIFS con un CF-ACK o con un Data + CF-ACK. Se la stazione non ha nulla da trasmettere, allora invia un frame detto CF-Null. Il PC sceglie le stazioni a cui inviare il CF-Poll da una lista detta polling list. Questa contiene l'elenco di tutte le stazioni che, in fase d'associazione alla BSS, ne hanno esplicitamente richiesto l'inserimento. Quando una stazione si associa a una BSS riceve un numero identificativo detto AID (Association ID). La polling list viene interrogata in ordine crescente di AID. Quando la lista termina la si inizia nuovamente a leggere dall'inizio. Anche per il PCF è previsto un processo di frammentazione e deframmentazione di dati simile al DCF. In figura si riporta un'esempio di scambio di frame nel PCF. Il QoS nelle Wireless LAN Gli standard presentati in precedenza, sono stati pensati per un traffico di tipo generico detto best-effort. Con tale termine individuiamo una certa tipologia di traffico caratterizzata dal non presentare particolari esigenze in termini di risorse assegnategli. Esempi di traffico identificabili in tale categoria sono i traffici di trasferimento file (FTP, File Transfer Protocol), quelli per lo scambio di posta elettronica (SMTP, Simple Mail Transfer Protocol, POP3, Post Office Protocol), o per la consultazione di pagine web (HTTP, Hyper Text Transfer Protocol). E' anche vero però che negli ultimi anni si presenta sempre più l'esigenza di far uso di particolari tipi di traffici che presentano esigenze nettamente diverse. Sto parlando di traffici di informazioni di tipo audio o video, interattive o non. Questo comporta il soddisfacimento da parte della rete, di particolari specifiche in termini di prestazioni, al fine di garantire la qualità dell'informazione trasmessa. Si introduce quindi il concetto di QoS (Quality of Service) definito come proprietà della rete di garantire una certa qualità nel servizio offerto. Il gruppo IEEE 802.11 ha costituito pertanto un gruppo di lavoro il cui scopo sia la realizzazione di uno standard che garantisca il soddisfacimento di questa specifica. Tale gruppo e il 802.11e. Allo stato dell'arte non è ancora stato definisto uno standard, ma sono stati proposti diversi Draft . Il compito che mi pongo in questa sede è quello di definire meglio il concetto di QoS andando ad analizzare le varie proposte fatte per garantire tale servizio nello standard 802.11. Partiamo quindi dall'analizzare il traffico multimediale, cercando di capire quali esigenze esso presenta e perché non si possa sfruttare una rete pensata per il traffico best-effort. Con traffico multimediale si identifica solitamente un tipo di trasmissione che presenti informazioni di tipo audio o video al proprio interno. Allo stato attuale, abbiamo che le applicazioni più diffuse sono: audio streaming, video streaming, video conference e VoIP (Voice over IP). Queste quattro applicazioni prevedono la trasmissione di tipo interactive detto anche two-way (VoIP e video conference) nelle quali in traffico è bidirezionale, o di tipo non-interactive detto anche one way (streaming audio e video) nelle quali abbiamo invece un traffico di tipo unidirezionale. Appare evidente come queste applicazioni richiedano particolari specifiche alla rete al fine di garantire una ricezione accettabile verso l'utente destinatario. Le specifiche di cui occorre tener conto sono sostanzialmente quattro: Banda allocata. Occorre fare una differenziazione in termini di traffico trasmesso. Infatti passiamo da un banda di pochi Kbit/sec per il VoIP fino a Mbit/sec nel caso di streaming video. Non può pertanto essere pensato una gestione paritaria delle risorse disponibili pena uno spreco delle stesse. Delay. Esso sostanzialmente è il tempo che trascorra tra l'istante in cui il pacchetto è generato all'istante in cui esso è ricevuto dal destinatario. Appare evidente come ad esso concorrano una serie di fattori quali il ritardo di elaborazione (piccolissimo ma comunque non nullo), il ritardo di accodamento (i pacchetti vengono conservati in una coda in attesa di esser trasmessi, usualmente serviti secondo una politica FIFO - First In First Out), il ritardo di trasmissione (dipendente direttamente dalla velocit`a di trasmissione), ed il ritardo di propagazione fisica del segnale trasmesso (anch'esso piccolissimo). Diventa un fattore a cui occorre fornire una particolare attenzione nel caso di traffico interattivo pena il rischio di rendere la conversazione incomprensibile. Jitter. Questa quantità esprime la varianza del ritardo di cui prima. Un jitter nullo è sinonimo di un ugual ritardo da parte dei pacchetti. Jitter elevati significa un traffico poco fluido. Packet loss. Da informazioni circa la quantità di pacchetti persi (oppure corrotti) durante la trasmissione. I traffici multimediali presentano specifiche abbastanza stringenti verso questo indice. Potenzialmente si potrebbe affermare che, in assenza di traffico sul canale trasmissivo, il DCF potrebbe tranquillamente garantire questo il QoS verso questi tipi di traffico. In realtà sappiamo bene come la qualità di un protocollo il cui fine ultimo sia garantire una specifica, vada saggiato in presenza di condizioni di lavoro sfavorevoli. Riporto di seguito una tabella in cui si definiscono, degli indici appena elencati, i valori massimi tollerati in funzione dell'applicazione. Il gruppo di lavoro 802.11e, istituito per opportare modifiche allo standard originale al fine di garantire il QoS verso tali applicazioni, ha proposto due nuove modalità di trasmissione. Una è l'EDCF (Enhanced DCF) basata sul DCF, l'altra è l'HCF (Hybrid Coordination Function) Basata sul PCF. Il livello fisico Questo livello occupa il posto più basso nella gerarchia individuata all'interno della pila ISO-OSI. E' situato al di sotto del livello MAC ed il suo compito è quello di ricevere da quest'ultimo i frame da trasmettere sul canale e viceversa di passare i frame presi dal canale stesso. Si occupa inoltre di determinare lo stato del canale stesso (Carrier Sense). All'interno del livello fisico è possibile individuare i seguenti componenti: - Physical Layer Management. Questo s'interfaccia con il livello superiore e gestisce i seguenti sottolivelli. - PLCP (Physical Layer Convergence Procedure). Esso provvede a convertire i frame provenienti da livello MAC o dal canale aggiungendo o eliminando un PLCP preamble e un PLCP header. - PMD ( Physical Medium Dependent). Governa direttamente l'hardware in uso. Nella prima versione dello standard IEEE 802.11 sono stati incluse tre differenti implementazioni per il livello fisico: DSSS, FHSS, IR. Le successive estensioni dello standard hanno introdotto l' OFDM e una versione più veloce del DSSS, denominata HR-DSSS (High Rate Direct Sequence Spread Spectrum). Esse rappresentano fondamentalmente diversi tipi di modulazione del segnale, che permettono diverse frequenze di trasmissione. Analizziamo quindi ciascuna di queste, partendo da quelle di tipo Spread Spectrum. - Modulazione Spread Spectrum - Rappresenta il comune denominatore della DSSS (e della FHSS. Questa tecnica di modulazione permette sostanzialmente di spalmare la potenza del segnale in una banda più ampia al fine di garantire una maggiore immunità all'interferenza ed un aumento del rapporto segnale rumore. Ovviamente si ha come risvolto uno spreco di banda. - DSSS (Direct Sequence Spread Spectrum) - Lo standard IEEE 802.11 implementa la tecnica DSSS per trasmettere dati sul canale. La trasmissione garantisce in tal modo un througput di 1 Mbps o 2 Mbps in una banda a cavallo dei 2.4 Ghz. Mediante questa tecnica si suddivide la banda disponibile in 11 canali da 22 Mhz l'uno. Quindi mediante l'uso della sequenza di Barker come chipping code si codifica ogni simbolo con chipping sequenze da 11 bit. Il differente througput dipende dal tipo di codifica implementato. Sfruttando il Differential Birany Phase Shift keying si raggiunge la velocità di 1 Mbps. Per poter raggiungere i 2 Mbps occorre far uso della Differential Quadrature Phase Shift Keying. - FHSS (Frequency Hopping Spread Spectrum) - Anche in questo caso si fa uso di una banda allocata nell'intorno di 2.4 GHz. Questa viene divisa in più canali la cui ampiezza è di 1 Mhz e il cui numero varia da paese a paese. L'allargamento dello spettro (Spread Spectrum) avviene mediante modulazione con una portante che salta (Frequence Hopping) da una frequenza ad un'altra mediante una sequenza pseudo-casuale. Lo standard impone che vi sia una distanza minima tra le frequenze di due salti contigui. Tale valore è pari a 6 MHz nel Nord America mentre è di 5 Mhz in europa e nel Giappone. Facendo uso di una codifica GFSK (Gaussian Frequency Shift Keying) si raggiunge un througput di 1 Mbps, mentre con GFSK e quattro livelli si ottiene un througput di 2 Mbps. - HR-DSSS (Standard 802.11b) - Lo standard 802.11b introduce un nuovo tipo di modulazione al fine d'ottenere un througput maggiore di quello ottenuto dallo standard 802.11. E' da sottolineare che esso è un complemento allo standard originale e non una sostituzione. Anche in questo caso si opera nella frequenza dei 2.4 GHz. Per i througput più bassi si fa sempre uso della DBPSK (1 Mbps) e DQPSK (2 Mbps). Per valori superiori si fa uso del DS-SS/CCK(Complementary Code Keying) + DQPSK per Data rates a 5.5 e 11 Mbit. Il DS-SS code è di 11 chip per bit mentre il CCK code è di 8 chip per bit. Pmax= 1 W (USA), 100 mW (EU) - OFDM (Standard 802.11a) - All'interno dello standard 802.11a si utilizza la OFDM come tecnica di modulazione. In queto modo la trasmissione avviene in una banda allocata nell'intorno dei 5 Ghz con througput massimo di 54 Mbps (6 Mbps, 9 Mbps, 12 Mbps, 18 Mbps, 24 Mbps,36 Mbps, 48 Mbps, 54 Mbps). Sostanzialmente tale tecnica consiste nel suddividere un segnale dall'elevato bit rate in un insieme di sottosegnali dal bit rate inferiore. Questi vengono trasmessi in simultanea mediante sottoportanti generate sfruttando la Inverse Fast Fourier Transform. Per evitare errori introdotti da interferenza d'intersimbolo si mantiene una differenza di un numero intero di periodi all'interno del periodo d'integrazione della FFt. In tal modo è assicurata l'ortogonalità e quindi l'annullamento dell'interferenza. La frequenza operativa è di 5.15-5.35 GHz e 5.725-5.825 Ghz in US, UNII - Unlicensed National Information Infrastructure band mentre in Europa 5.15-5.35, ma esistono ancora notevoli limitazioni all'utilizzo. Il througput è fortemente dipendente dalla potenza trasmessa e dal numero di AP. Riporto di seguito una tabella riassuntiva circa il througput nello standard 802.11a. - Infrared - L' IrDA (Infrared Device Application), è lo standard di interconnessione dati tramite infrarossi bidirezionale point-to-point tra dispositivi posizionati in visibilità reciproca ( LoS, line of sight) Tali dispositivi sono indicati per le comunicazioni e non per le reti vere e proprie. Questa modalità di trasmissione è stata inclusa nello standard 802.11 nell'eventualità di utilizzo di una rete in ambienti chiusi e piccolo. Il througput raggiunto è di 1 o 2 Mbps sfruttando codifiche del tipo 16-PPM e 4-PPM. ELENCO DEGLI ACRONIMI ACKACKnowledgement AIFS Arbitration Interframe Space AID Association ID AP Access Point AITM Announcement traffic indication message BRAN Broadband Radio Access Network BSA Basic Service Area BSS Basic Service Set CBR Constant Bit RateCCI Controlled Contention Interval CCK Complementary Code Keying CFP Contention Free Period CP Contention Period CSMA/CA Carrier Sense Multiple Access/Collision Avoidance CTS Clear To Send CW Contention Window DBPSK Differential Binary Phase Shift Keying DCF Distributed Coordination Function DIFS DCF Interframe Space DQPSK Differential Quadrature Phase Shift Keying DSSS Direct Sequence Spread Spectrum EDCF Enhanced Distributed Coordination Function EIFS Extended Interframe Space ESS Extended Service Set ESTA Enhanced STAtion ETSI European Telecommunications Standards Institute FFT Fast Fourier Transform FHSS Frequency Hopping Spread Spectrum GFSK Gaussian Frequency Shift Key HC Hybrid Coordinator HCF Hybrid Coordination Function IBSS Independent Basic Service Set IEEE Institute for Electrical and Electronic Engineers IFFT Inverse Fast Fourier Transform IFS Interframe Space IR InfraRed LAN Local Area Network LLC Logical Link Control MAC Medium Access Control MMPDU MAC Management Protocol Data Unit MPDU MAC Protocol Data Unit MSDU MAC Service Data Unit NAV Network Allocation Vector NIC Network Interface Card OFDM Orthogonal Frequency Division Multiplexing PC Point Controller PCF Point Coordination Function PF Persistence Factor PHY PHYsical PIFS PCF Interframe Space PLCP Physical Layer Convergence Procedure PMD Physical Medium Dependent PPDU PLCP Protocol Data Unit PPM Pulse Position Modulation QoS Quality of Service RR Reservation Request RTS Request To Send SIFS Short InterFrame Space SNR Signal to Noise Ratio STA STAtion TC Traffic Class TCID Traffic Class IDentifier TXOP Transmission Opportunity TSPEC Traffic Specification UMTS Universal Mobile Telecommunication System VBR Variable Bit Rate VoIP Voice over IP WLAN Wireless Local Area Network