[meglio degli appunti di Mattera, credimi.] a cura di Nicola Auricchio
by user
Comments
Transcript
[meglio degli appunti di Mattera, credimi.] a cura di Nicola Auricchio
[meglio degli appunti di Mattera, credimi.] a cura di Nicola Auricchio Lezione 01 Introduzione alle reti wireless I vantaggi delle reti wireless rispetto alle reti cablate: • Il vantaggio più evidente nell'utilizzo delle trasmissioni wireless è la mobilità concessa agli utenti. • La semplicità di installazione: non bisogna stendere cavi, ma il mezzo fisico di comunicazione è rappresentato dallo spazio libero. Questo vantaggio è particolarmente importante in alcuni contesti dove stendere cavi sarebbe praticamente impossibile (vecchi edifici di cui si sono persi i progetti degli impianti, edifici storici in cui non è proprio concesso rompere i muri, ecc). • Una maggiore flessibilità, sia in termini di accesso alla rete da parte degli utenti (non si ha bisogno di nulla per connettersi, a differenza delle reti cablate in cui bisogna avere, ad esempio, un cavo ethernet e una porta libera nello switch), sia in termini di capacità di sviluppo della rete (fare un upgrade della tecnologia è meno complicato). • Un costo inferiore, il che permette di offrire connettività, ad esempio, anche in paesi in via di sviluppo. Le trasmissioni wireless utilizzano la propagazione di onde elettromagnetiche nello spazio libero. Sono disponibili diverse bande di frequenza (radiofrequenze, microonde, infrarossi, ecc), questi intervalli di frequenza sono gestiti in maniera diversa e hanno caratteristiche differenti. Esistono alcune bande di frequenza che sono utilizzabili solo dietro licenza, ovvero esistono autorità garanti per le comunicazioni, che concedono il diritto di utilizzare determinate frequenze a chi ha pagato per poterle utilizzare, altre bande, al contrario, sono libere, ovvero vi si può trasmettere senza alcuna autorizzazione. Gli svantaggi delle trasmissioni wireless, rispetto a quelle wired: • Il mezzo trasmissivo, ovvero lo spazio libero, è rumoroso e tempo-variante: Se utilizziamo bande non licenziate, la nostra trasmissione può essere soggetta a interferenze causate da dispositivi che utilizzano anche tecnologie differenti. Le caratteristiche di propagazione del canale wireless non sono costanti nel tempo, ma possono variare anche fortemente in diversi istanti di tempo. Questa caratteristica non è presente nel caso wired poiché i cavi sono schermati, il che rende il mezzo stazionario e meno soggetto a interferenze. • Le trasmissioni sono ascoltabili da chiunque si trovi in prossimità della sorgente. Nel caso di trasmissione wired questo problema non esiste perchè bisognerebbe essere fisicamente connessi alla sorgente. L'IEEE 802 è un progetto dell'IEEE per lo sviluppo di standard per le reti LAN. All'interno del progetto esistono diversi gruppi di lavoro (working group) che si occupano di specifici aspetti del problema e ad ognuno dei quali e assegnato un identificativo numerico. La tecnologia Ethernet fu standardizzata dal terzo gruppo e per questo e denominata 802.3. Il gruppo di lavoro 802.11 si è formato nel 1990 con l'obiettivo di specificare livello PHY (fisico) e MAC (datalink) di reti WLAN. Il primo standard definito da questo gruppo venne rilasciato nel giugno del '97. Dopo di allora il gruppo ha continuato a lavorare, e tutt'oggi è ancora attivo, introducendo novità allo standard mediante i cosiddetti emendamenti. Quindi c'è un documento principale, che è proprio lo standard, ad esempio 802.11 del '97, poi tutti i lavori successivi vengono pubblicati sotto forma di emendamenti, “sono proprio dei documenti, se li andate a vedere, che dicono - eliminare questo paragrafo -, oppure - aggiungere questo paragrafo -, - in questo punto inserire una figura -, o cose del genere”. Ad esempio con 802.11a , b e g sono state introdotte nuove tecniche di modulazione. In seguito, a un certo punto, tutti gli emendamenti vengono raccolti in una nuova edizione dello standard. Nel 2007, ad esempio, viene approvato 802.11-2007 che raccoglie, appunto, tutti gli emendamenti allo standard pubblicati fino a quel momento. Dopo di allora sono stati pubblicati ancora emendamenti come 802.11n e, ancora, nel febbraio del 2012 è stato aggiornato l'intero standard col nome di 802.11-2012. Vediamo quali sono gli obiettivi dello standard 802.11. Come abbiamo detto, l'obiettivo è quello di descrivere le funzioni e i servizi richiesti per operare all'interno di una rete locale che utilizza il mezzo wireless per la comunicazione tra le varie stazioni. In particolare, lo standard 802.11 definisce: • A livello fisico, le tecniche di modulazione adottate dai diversi dispositivi. • A livello MAC, politiche di accesso al mezzo (essendo il mezzo fisico condiviso, c'è bisogno di sincronizzare gli accessi al mezzo). • Tecniche, sempre a livello MAC, che servono a garantire la sicurezza della rete, in particolare: confidenzialità e integrità dei dati che vengono trasmessi. La confidenzialità è quella proprietà secondo la quale l'informazione tra mittente e destinatario resti segreta a terze parti. • Meccanismi di autenticazione, di modo che gli access point possano fornire connettività solo alle stazioni che possiedono le opportune credenziali. Quindi, questi sono i principali obiettivi dello standard. Come vedremo, tra gli altri obiettivi, c'è quello di definire delle procedure, sempre a livello MAC che siano in grado di supportare applicazioni con particolare requisti di qualità del servizio (ad es. applicazioni real time). Torniamo sulle proprietà del livello fisico, per vedere ancora meglio come queste poi vanno a influenzare il disegno dei protocolli a livello MAC. C'è tutta una serie di caratteristiche del mezzo wireless che sono importanti per quando si va a progettare il protocollo di accesso al mezzo. • Tra le varie caratteristiche del mezzo wireless è che non ha confini facilmente osservabili, nel senso che non possiamo dire che, ad esempio, tutte le stazioni nel raggio di 50 m sono in grado di partecipare alla rete wireless locale, questo perchè nelle trasmissioni di tipo wireless è fondamentale il rapporto segnale/rumore del segnale che viene ricevuto dalla stazione ricevente. Perchè voi sapete che più alto è il rapporto segnale/rumore, più è alta la probabilità che i simboli ricevuti, quindi i bit ricevuti, vengano codificati correttamente. A causa di ciò, non possiamo sapere a priori che una data trasmissione, ad una certa distanza, sarà ricevuta correttamente. Con il mezzo cablato, questo è più semplice: ad es, nelle reti ethernet se una stazione è collegato col cavo ad un'altra stazione o a un dispositivo che realizza la rete locale, noi siamo abbastanza certi che il messaggio trasmesso arrivi a destinazione, con le reti wireless questa garanzia non cel'abbiamo e quindi devono essere presi degli opportuni accorgimenti. • Interferenze dovute ad altri segnali che condividono lo stesso mezzo: noi abbiamo detto che nelle bande non licenziate chiunque può trasmettere, quindi anche dispositivi che utilizzano tecnologie differenti possono creare interferenze (persino dispositivi che non hanno nulla a che vedere con le telecomunicazioni, ad es: microonde). • • • Il mezzo fisico è significativamente meno affidabile del mezzo utilizzato nelle reti cablate, quindi mentre in una rete cablata, se una stazione invia un messaggio, con buna probabilità questo viene consegnato correttamente al destinatario, nelle reti wireless questo non è garantito, quindi è necessario prendere degli opportuni accorgimenti per fare in modo che la trasmissione venga resa affidabile anche a livello MAC. In Ethernet, se vi ricordate, non utilizza un riscontro utilizzando delle frame di tipo ACK, perchè si assume che il mezzo utilizzato da Ethernet sia abbastanza affidabile, quindi in realtà il vantaggio di utilizzare una frame di riscontro non è tale da compensare l'overhead che questo introdurrebbe. Come vedremo, in 802.11 non è stata fatta una scelta analoga, perchè il mezzo è significativamente meno affidabile rispetto alle reti cablate, e quindi è stato necessario introdurre un meccanismo di riscontro delle frame inviate. Manca una connettività full mesh: noi sappiamo che la rete Ethernet è organizzata logicamente come un bus condiviso da tutte le stazione, fisicamente è realizzato con una topologia a stella, con uno switch o hub a cui sono collegate punto-punto le stazioni. Quando una staizone trasmette, lo switch riceve la frame e la inoltra a tutte le altre stazioni, percui noi siamo abbastanza certi che quando una stazione trasmette, tutte le altre stazioni della rete locale ricevono la frame trasmessa dalla stazione. In una rete wireless, lo vedremo, questo non è garantito, cioè non è garantito che se una stazione trasmette, tutte le altre stazioni ricevono la frame. E anche questo sarà motivo per cui viene presa una particolare scelta all'interno delle reti 802.11. Le proprietà di propagazione sono asimmetriche e tempovarianti. Nel senso che le caratteristiche di propagazione da A verso B non sono le stesse di quelle da B verso A. Quand'è che può succedere? Ci può essere una fonte di rumore generica vicino alla stazione A, ma sufficientemente lontana dalla stazione B. Quindi se A trasmette, B riceve la frame perchè il rumore è lontano, ma se B trasmette, A non riceve la frame perchè è vicina a una fonte di rumore. Queste situazioni sono abbastanza comuni, e quindi anche il fatto che il canale può avere caratteristiche asimmetriche deve essere tenuto in considerazione. E poi ovviamente la tempo-varianza già l'abbiamo... Lezione 02 Panoramica sullo standard 802.11 Si dice stazione (STA), un qualsiasi dispositivo dotato di un'interfaccia di rete wireless. Sappiamo da RC che una rete locale è una rete in cui tutte gli host sono collegati mediante un mezzo condiviso. Nell'ambito di 802.11, invece di “rete locale”, utilizzeremo il termine BSS (Basic Service Set). Quindi un BSS è un insieme di stazioni che possono comunicare tra di loro. Si denota con BSA (Basic Service Area) l'area all'interno della quale le stazioni membro del BSS possono comunicare. I BSS si dividono in due tipi: indipendenti e infrastruttura. I BSS indipendenti sono detti anche IBSS (independent BSS) e le stazioni al suo interno comunicano direttamente tra di loro. Di solito queste reti vengono create con scopi specifici, per questo vengono dette reti ad hoc. I BSS infrastruttura, chiamati semplicemente “BSS”, sono invece dotati di un access point (AP), dispositivo che ha la funzionalità di una stazione, il quale fa da tramite nella comunicazione tra una stazione e un'altra, all'interno dello stesso BSS, e tra una stazione e il Distribution System (DS), che è il componente logico che connette i vari BSS. “Ad esempio in un edificio qua dell'università su ogni piano abbiamo uno switch, tutti gli access point del piano (più le prese ethernet a muro) sono collegati attraverso cavi ethernet allo switch del piano, i vari switch sono collegati fra di loro, e poi magari a piano terra c'è il gateway che offre connettività verso Internet” (credo che il DS sia proprio tutto sto sistema di cavi ethernet e switch) Sottolineiamo che la connessione dei vari BSS avviene a livello MAC e non a livello IP: tutti i BSS interconnessi vengono visti come un'unica rete fisica, percui gli access point NON sono dei gateway di default. Una stazione in un BSS che vuole comunicare con una stazione in un altro BSS lo fa a livello MAC! Il vantaggio di vedere come un'unica rete locale l'insieme dei BSS interconnessi è che se una stazione si muove da un BSS a un altro, non ha necessità di interrompere e ristabilire la connessione con un nuovo indirizzo IP. Come vedremo dovrà solo cambiare associazione, dal vecchio AP al nuovo AP. Perchè si abbia questo vantaggio, però i BSS devono avere una zona di sovrapposizione, all'interno della quale la stazione può avere il tempo di associarsi a un nuovo AP. Lo standard 802.11 non stabilisce il mezzo con cui è realizzato il DS, prima abbiamo fatto l'esempio in cui è realizzato in maniera cablata, ma è anche possibile interconnettere i vari AP in modalità wireless. In questo caso di parla di rete wireless mesh (altro argomento oggetto di questo corso). Se non si fosse capito, ma credo di si, una stazione, per comunicare con un'altra stazione posta in un altro BSS deve inoltrare la propria frame, prima all'AP cui è associato, il quale, attraverso la tecnologia offerta dal DS la inoltra verso l'AP cui è associato il destinatario, il quale, infine lo consegna al destinatario (sono 3 step). L'unione dei BSS connessi da un DS (DS escluso) prende il nome di Extended Service Set (ESS) Consideriamo il caso di BSS infrastruttura, quindi BSS forniti di AP. La procedura per fare in modo che una stazione appartenga a un BSS è detta di Associazione con l'AP. Questa operazione è sempre iniziata dalla stazione e consiste nell'inviare un messaggio di richiesta di associazione all'AP, alla quale quest'ultimo dovrà rispondere. L'AP ha una lista di tutte le stazioni ad esso associate, e che quindi appartengono al BSS che fa capo ad esso. In un dato istante una stazione può essere associata ad un solo AP. Quando una stazione si sposta da un BSS cui è associata, ad un altro, viene eseguita una procedura di Riassociazione, che è sempre iniziata dalla stazione e che è un po' più veloce rispetto all'esecuzione di Deassociazione + Associazione al nuovo AP (questo, come vederemo, grazie alla pre-autenticazione). La Deassociazione è la procedura che viene invocata quando un'associazione esistente deve essere terminata. Essa può essere invocata sia dalla stazione che dall'AP. Lo standard garantisce che l'associazione all'AP, e quindi la fruizione dei servizi che questa offre, venga consentita unicamente alle stazioni che siano in possesso di opportune credenziali. Per verificare se una stazione che ha effettuato una richiesta di associazione possiede le credenziali necessarie, c'è una fase che, ovviamente, si dice di Autenticazione. Nella versione iniziale di 802.11 del '97 erano presenti due diversi tipi di autenticazione: • Open System (ogni stazione è ammessa). • Shared Key, ovvero la tecnica basata sulla conoscenza della chiave WEP. (“WEP è stato deprecato e quindi se oggi trovate delle reti che utilizzano WEP, vuol dire che sono state configurate malissimo”). Da allora sono state definite nuove tecniche di autenticazione (e di cifratura) più robuste di WEP. Ad esempio quando vediamo gli acronimi WPA-PSK, WPA2-PSK, WPA-EAP, essi si riferiscono rispettivamente al metodo di cifratura (WPA, WPA2), e alla tecnica di autenticazione (PSK, EAP). A differenza dell'associazione, che può essere effettuata solo con un AP alla volta, una stazione può essere autenticata anche con più AP contemporaneamente. Il che è sostanzialmente quello che fa della riassociazione una tecnica più veloce di deassociazione + associazione, in quanto una stazione che si sposta da un BSS a un altro può pre-autenticarsi con il nuovo AP, anche mentre è associato al vecchio AP. E' ovviamente prevista anche la Deautenticazione, che viene invocata quando un'autenticazione esistente deve essere terminata. Essa comporta anche la deassociazione. Per garantire Confidenzialità e Integrità dei dati, lo standard 802.11 prevede tecniche di cifratura dei dati. Anche in questo caso lo standard ha previsto diverse opzioni: nella versione iniziale l'unica possibilità di cifratura era sempre WEP. Negli anni successivi sono state definite altre tecniche di cifratura, perchè WEP si dimostrata non essere sicura, in particolare sono state introdotte TKIP e CCMP, conosciute commercialmente con gli acronimi di WPA e WPA2. Quindi abbiamo detto che le stazioni devono associarsi ad un AP per poter entrare a far parte di un BSS. Quindi c'è la necessità di un meccanismo per fare in modo che gli AP possano annunciare la propria presenza, in maniera tale che le stazioni possano sapere quali AP sono nelle loro vicinanze. Oltre ad annunciare la loro presenza, gli AP devono fornire una serie di informazioni utili alla gestione del BSS. Una delle cose che deve essere note alle stazioni che partecipano ad un BSS è una sorta di orario del BSS, di modo che tutte le stazioni che partecipano a un BSS possano essere sincronizzate su un orario comune. Questo può essere utile per diverse funzioni (magari vedremo in seguito qualcuno dei casi in cui è utile che tutte le stazioni siano tutte sincronizzate tra di loro). La soluzione adottata è quella di stabilire una stringa di 64 bit che rappresenta il tempo. Ogni microsecondo questa stringa viene incrementata di un'unità. Un'altra informazione è rappresentata dai tassi di trasmissione che sono supportati dall' AP, perchè come vedremo tra poco, c'è un'ampia gamma di tassi di trasmissione che non è detto siano tutti supportati da tutte le stazioni. In più, tutta una serie di informazioni che vedremo man mano che andremo avanti nei diversi argomenti. Perchè queste informazioni pervengano alle stazioni, l'AP invia loro periodicamente delle frame dette Frame Beacon. La frame Beacon contiene le informazioni identificative del BSS più i parametri utili alle stazioni che si vogliono associare al BSS. Ovviamente, all'interno della frame beacon ci dovrà essere un identificativo del BSS, in particolare... L'SSID è una stringa di massimo 32 caratteri che identifica l'ESS cui il BSS appartiene, se appunto il BSS fa parte di un ESS (e in questo caso sarebbe più corretto parlare di ESSID), oppure il singolo BSS se esso non fa parte di nessun ESS. Per identificare univocamente il BSS, soprattutto se fa parte di un ESS, c'è bisongno di un altro identificativo: il BSSID, che è l'indirizzo MAC dell'AP del BSS. “Quando noi, col nostro SO , facciamo una ricerca delle reti wireless disponibili, esso ci presenta una parte delle informazioni ottenute dalle frame di beacon”. Comando su Linux per vedere le informazioni delle reti wireless nelle vicinanze: sudo iw wlan0 scan L'operazione che noi adesso abbiamo fatto, è un'operazione di Scansione. La Scansione è un servizio che il livello MAC offre ai livelli superiori dietro loro richiesta. Nell'effettuare una scansione possiamo specificare una serie di filtri, ad es potremmo chiedere al livello MAC di effettuare una scansione che scopra quali sono gli AP settati su un determinato canale di frequenza, oppure quali sono gli AP che hanno un determinato SSID. Ci sono due tipi di scansione: • la Scansione Passiva è quella in cui la stazione si mette unicamente in ascolto sui vari canali di frequenza in attesa di ricevere le frame di beacon dai vari AP (che, ricordo, sono tenuti a inviare periodicamente); • in una Scansione Attiva, la stazione, su ogni canale, aspetta prima un determinato intervallo di tempo (Probe Delay), se durante questo intervallo non vengono inviate frame di beacon, allora invia una Probe Request, dopodichè attende un piccolo intervallo di tempo detto MinChannelTime, se durante questo intervallo il canale non è occupato, allora conclude che su quel canale nessun AP è attivo, e si mette in ascolto su un altro canale. Se durante il MinChannelTime il mezzo è occupato, allora attende le risposte, dette Probe Response, per un intervallo un po' più lungo detto MaxChannelTime. Dopodichè ascolta il canale successivo, e così via. La scansione restituisce un elenco di BSS. A questo punto la stazione può sfruttare la funzionalità del livello MAC detta Joining, per richiedere l'associazione all'AP selezionato. Livello Fisico 802.11 Il livello fisico, in 802.11, è suddiviso in due diversi sottolivelli: • PMD (Physical Medium Dependent) è il sottolivello più basso e si occupa dell'effettiva trasmissione dei bit, in particolare riceve dal superiore le sequenze di bit e le converte in forme d'onda da trasmettere sul mezzo. • PLCP (Physical Layer Convergence Procedure) è un livello intermedio tra il sottolivello PMD e il livello MAC. Questo livello aggiunge delle informazioni ai bit che costituiscono la frame prima che questi vengano trasmessi. Ad esempio, bit di ridondanza (per l'integrità), bit iniziali (per la sincronizzazione del ricevitore), ecc. L'utilizzo delle bande di frequenza è regolato da alcuni organismi preposti, in particolare l'FCC negli Stati Uniti e l'ETSI in Europa. In generale, un ente deve avere una licenza per poter trasmettere ad una data frequenza, e può farlo con una certa potenza massima e in una certa area. Se nella banda di cui si possiede licenza si riscontrano delle interferenze, si può richiedere l'intervento dell'authority. Alcune bande sono prive di licenza. Tra queste ci sono le cosiddette ISM (industrial, scientific and medical), centrate sulle frequenze 2,4 GHz e 5,8 GHz. Le tecniche adottate a livello fisico, a seconda che si tratti di bande licenziate o meno, è diverso. Nel caso di bande licenziate, avendo pagato, ci preoccupiamo di massimizzare l'efficienza in termini di bitrate. Quando invece trasmettiamo in bande prive di licenza, la principale preoccupazione è la robustezza alle interferenze. Quando si trasmette in bande prive di licenza, tipicamente si utilizzano delle tecniche di trasmissione di tipo Spread Spectrum, che consistono, in parole povere nello spalmare la potenza del segnale su un'ampia banda di frequenze. In ricezione il segnale utile viene “ricompattato”, mentre il rumore viene spalmato. [?] Per quanto riguarda le reti wireless LAN, la trasmissione è senza licenza, percui vengono adottate delle tecniche di tipo spread spectrum. Queste tecniche non risolvono completamente il problema, perchè comunque i segnali spread spectrum possono interferire tra di loro. Nella versione iniziale di 802.11 del '97 sono state proposte due diverse tecniche: Frequency Hopping (FH) e Direct Sequence (DS). Frequency Hopping In FH (“lo dice la parola stessa: saltando da una frequenza all'altra”) si hanno a disposizione (per Cina, USA e parte dell'Europa) 79 diversi canali di frequenza, ognuno con la propria frequenza centrale e di ampiezza 1 MHz. Questi canali sono numerati da 2 a 80. Il canale #2 ha come frequenza centrale 2.402 GHz, il canale #3, 2.403 GHz, e così via. Si dice sequenza di hopping una permutazione dei 79 canali. (Per Cina, India e parte dell'Europa) Sono state standardizzate 78 diverse sequenze di hopping: Sequenza 0: <2, 25, 64, 10, 45, 18, 73, 49, 21> Sequenza 1: <3, 26, 65, 11, 46, 19, 74, 40, 22> ...eccetera... La distanza minima tra gli hop deve essere di 6 MHz. Le 78 sequenze sono suddivise in 3 insiemi di 26, tali che due sequenze dello stesso insieme sono ortogonali tra di loro . Cioè la trasmissione contemporanea nelle due sequenze dello stesso insieme non interferiscono tra di loro. (tipo un gruppo potrebbe essere costituito dalle sequenze 1, 4, 7, ecc perchè magari le sequenze 1 e 2 e 1 e 3 interferiscono tra di loro). Il fatto di essere spread spectrum si vede dal fatto che questi salti da una frequenza all'altra danno l'impressione di avere un segnale spalmato su una banda abbastanza ampia. Il vantaggio di FH è la robustezza alle interferenze dovuta all'ortogonalità delle sequenze. Lo svantaggio di FH è il basso tasso di trasmissione, che arriva fino a 2 Mb/s Ogni BSS utilizza una sequenza di hopping. L'AP dovrà comunicare, attraverso la frame di beacon il numero di sequenza utilizzato, il canale corrente all'interno della sequenza (e ovviamente il timer per stabilire la sincronizzazione). La MSDU (MAC Service Data Unit) è l'unità di servizio per il livello MAC, ovvero è il blocco di dati che viene passato dai livelli superiori al livello MAC. Si dice MPDU (MAC Protocol Data Unit) il blocco di dati che il livello MAC passa al livello fisico. MPDU = MSDU + header (ed eventualmente, trailer) aggiunto dal livello MAC. Una MSDU può venire frammentata prima di essere incapsulata in MPDU, quindi può dare luogo a più MPDU. La tecnica del FH supporta una dimensione massima della MPDU di 4 kB. (Questo limite è anche piuttosto elevato, da RC ci ricordiamo che “in Ethernet il limite è 1500 byte”, comunque credo che parlare di “limite in Ethernet” abbia più che vedere con un limite della MSDU). C'è un'altra serie di parametri che mostrano le caratteristiche di FH che analizzeremo nel seguito.