CAPITOLO 1 - INTRODUZIONE

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "CAPITOLO 1 - INTRODUZIONE"

Transcript

1 RETI DI CALCOLATORI 2 Capitolo 1 CAPITOLO 1 - INTRODUZIONE INTRODUZIONE ALLE RETI WIRELESS Questo corso di studio ha essenzialmente un filo conduttore: le reti wireless presentano delle peculiarità rispetto alla reti fisse. Il principio di astrazione si trova in tante realtà e ci insegna che nei layer superiori, alcuni problemi non si devono risolvere. Sarà spiegato come una rete wireless può essere paragonata ad una rete dati. Una rete wireless è nata per il bisogno di comunicare e per avere la disponibilità di nuove tecnologie nei paesi industrializzati. Comunicare tramite reti senza fili è preferibile per gli utenti, tant è vero che quasi la metà utilizzano una tecnologia wireless. La telefonia cellulare nei paesi industrializzati ha saturato il mercato, ma c'è la necessità di avere sempre nuovi servizi e nuove tecnologie. In alcuni paesi in via di sviluppo è stata un opportunità, in quanto ha evitato il passaggio per la telefonia via cavo che avrebbe comportato un elevata spesa per le infrastrutture. La crescita del wi-fi rappresenta un altra realtà che è dovuta essenzialmente alla facilità di uso e all estrema economicità. Una rete di computer è una collezione interconnessa di computer indipendenti che comunicano in numerosi modi. Al giorno d oggi la rete di calcolatori consiste di due grandi componenti, che sono le applicazioni distribuite e le infrastrutture di rete. Le applicazioni distribuite forniscono servizi agli utenti/applicazioni situate su altri computer nella rete. Un esempio di applicazione distribuita è Internet. Caratteristiche delle reti wireless È una tecnologia di recente sviluppo, costituita da periferiche mobili che usano l etere per le trasmissioni e che hanno le seguenti caratteristiche peculiari: economiche; piccole; portatili; rimpiazzabili. La tecnologia diventa intelligente e pervasiva (tecnologia che non è di supporto ad un obiettivo) ovvero diventa parte di noi e si innesta nella nostra vita quotidiana. I servizi non vengono forniti ad un utente statico e localizzato ma ad un utente in movimento e con l'assenza di un punto di amministrazione centrale. Le reti wireless sono di facile ed immediata realizzazione. Le applicazioni tipiche sono state inizialmente militari e per sistemi di emergenza. Si sono poi diffuse in ambito civile, come ad esempio per l accesso alle reti aziendali indipendentemente dalla posizione della persona, servizi location-dependent (servizi legati alla locazione) ovvero pubblicità ed informazioni turistiche. Siccome per le reti wireless la locazione è molto più importante rispetto a quelle wired, questi servizi sono molto più pervasivi. Ci sono molte più informazioni in gioco, che i gestori dei sistemi possono sfruttare per effettuare pubblicità mirata o offrire determinati servizi. Fornire supporto alla mobilità di applicazioni standard comporta una serie di problematiche: 1

2 RETI DI CALCOLATORI 2 Capitolo 1 caching: assicurare il buon funzionamento tramite il caching è fondamentale per cercare di ridurre i tempi di attesa; prefetching: cercare di anticipare l elaborazione in modo da farla già trovare in cache; personalizzazione: favorire la personalizzazione di un servizio attraverso la gestione del profilo dell utente. Usabilità delle periferiche mobili È un aspetto molto importante. L interfaccia utente è peculiare per le limitate dimensioni di memoria, usabilità e tempo di utilizzo. Le periferiche mobili sono soggetti a urti e usura, furti e hanno un problema dovuto alla limitata energia immagazzinabile nella batteria. Breve storia delle reti wireless e contestualizzazione Gli albori della comunicazione wireless si sono avuti con i segnali di fumo e poi con gli eliografi, che erano reti di comunicazione tra castelli/conventi. Nel 1794 Claude Chappe inventò il telegrafo ottico. Guglielmo Marconi nel 1897 realizzò la prima comunicazione radio transoceanica tramite la riflessione di onde della ionosfera che giungevano a destinazione senza ostacoli. Nel 1933 fu sfruttata la modulazione di frequenza e dopo la Seconda Guerra Mondiale, si raggiunse il culmine dell evoluzione, con l invenzione della comunicazione via satellite e successivamente via rete cellulare. Le comunicazioni wireless influenzano le reti (protocolli, servizi, scenari di utilizzo) anche agli strati superiori. Ci sono 4 ambiti di utilizzo: WIRELESS PERSONAL AREA NETWORK: rete tra i dispositivi intorno ad un singolo utente tramite, ad esempio, i servizi offerti dalla tecnologia Bluetooth. WIRELESS LOCAL AREA NETWORK: alternativa economica ed efficace rispetto alla reti via cavo; la connessione wireless però condiziona lo strato applicativo (IEEE , HIPERLAN). WIRELESS METROPOLITAN AREA NETWORK: con lo scopo di coprire in modo stabile un area di una certa dimensione ma comunque limitata nell ordine delle decine di chilometri (Wi-Max). WIRELESS WIDE AREA NETWORK: essenzialmente le reti cellulari. Fondamenti di comunicazione wireless Le reti, come piattaforma per lo sviluppo di applicazioni, sono emerse alla fine degli anni '70. Progettare un applicazione che dovrà funzionare su reti wireless è totalmente diverso rispetto ad altre tecnologie. I vantaggi, oltre la capacità di comunicare, sono la condivisione di risorse, l affidabilità, il cost-effective (miglior rapporto prestazioni/prezzo con nodi di calcolo di basse capacità). Le reti sono basate su principi di astrazione che permettono alla comunicazione di usare uno strato di comunicazione fisica non predeterminato. LO SPETTRO ELETTROMAGNETICO La comunicazione wireless si basa sul principio del broadcast e sull'invio e ricezione di onde elettromagnetiche. Queste onde possono essere definite dalla frequenza o dalla loro lunghezza d onda. 2

3 RETI DI CALCOLATORI 2 Capitolo 1 La frequenza f è il numero di cicli (oscillazioni) al secondo di un onda ed è misurata in Hertz. La lunghezza d onda λ è la distanza tra due consecutivi massimi o minimi di un onda. La velocità di propagazione c di queste onde varia da mezzo trasmissivo a mezzo trasmissivo, tranne nel vuoto dove tutte le onde elettromagnetiche viaggiano alla velocità della luce. La relazione che calcola la velocità di propagazione dell onda è: c= f dove: c è la velocità di propagazione in m/s; λ è la lunghezza d onda in m; f è la frequenza in Hz. Lo spettro elettromagnetico è stato diviso in bande standardizzate dall International Telecommunication Union (ITU). Possiamo suddividerlo il base alla frequenza e vi sono le onde radio, microonde, infrarossi, ultravioletti, raggi Gamma. Quanto più alta è la frequenza di un onda potenzialmente più alta è la banda di dati che possiamo trasmettere. Il problema è che determinate bande non possono essere usate perché dannose agli esseri umani, come le onde Gamma e i raggi X. Le basse frequenze, che comprendono onde radio, microonde, infrarossi e luce visibile, possono essere usate per trasmettere informazioni modulando l ampiezza, la frequenza o la fase dell onda. La frequenza varia da 30 Hz a 900 Thz. Più bassa è la frequenza delle onde, meglio queste attraversano gli ostacoli, ma l energia decresce velocemente (con il quadrato della distanza). Le onde ad alta frequenza, che comprendono i raggi X e i raggi Gamma, anche se teoricamente migliori per la propagazione dell informazione, non vengono usate a causa di vari problemi pratici come la difficoltà nella generazione e modulazione. Inoltre, risentono molto degli ostacoli perché la lunghezza d onda è più piccola ma hanno altri meccanismi per poter coprire gli spazi. Queste onde sono più propense ad essere assorbite, per esempio dalle gocce di pioggia, e ad essere riflesse dagli ostacoli. L ammontare di informazioni che possono essere trasportate da un onda elettromagnetica è determinato dalla larghezza della lunghezza d onda e dalla tecnica di encoding usata. Le onde radio sono facili da generare ed ampiamente usate in ogni tipo di trasmissione in quanto passano attraverso ostacoli solidi, viaggiano per lunghe distanze, non richiedono allineamento di trasmittente/ricevente e possono essere emesse in tutte le direzioni. A causa delle lunghe distanze a cui possono arrivare, le trasmissioni su onde radio possono essere soggette ad interferenze. 3

4 RETI DI CALCOLATORI 2 Capitolo 1 Nelle bande VLF, LF e MF la propagazione delle onde, chiamata ground waves, segue la curvatura della terra. Il massimo range di trasmissione di queste onde è nell ordine di poche centinaia di chilometri. Sono usate per trasmissioni che richiedono poca ampiezza di banda come il broadcasting AM. Le bande HF e VHF sono assorbite dall atmosfera vicino alla superficie terrestre. Comunque una porzione di queste radiazioni, chiamate sky wave, rimbalzano tra la ionosfera e la terra. Una potente sky wave può essere riflessa svariate volte e raggiungere lunghe distanze. Le trasmissioni a microonde SHF tendono a viaggiare in modo rettilineo e perciò possono essere intercettate con difficoltà. Sono largamente usate per telefonia fissa e mobile a lunga distanza e per le trasmissioni televisive. Poiché l energia è concentrata in un raggio piccolo, queste trasmissioni hanno un alto rapporto SNR. Le onde ad infrarossi EHF sono usate per comunicazioni a piccola distanza. Non possono attraversare gli ostacoli e quindi hanno proprietà più vicine alla luce che alle onde radio. 4

5 RETI DI CALCOLATORI 2 Capitolo 1 Recentemente le onde infrarossi sono state utilizzate per connettere in LAN due palazzi adiacenti tra loro installando apposite antenne in cima. Ciò comporta però difficoltà nel calibrare le due antenne e c è l inconveniente della pioggia e della nebbia che influisce sulle onde ad alta frequenza. Le bande di frequenza variano sia rispetto alla lunghezza d onda che in base alle applicazioni. Si passa dalla comunicazione tra sottomarini all uso di telecomandi. Un segnale, che viene irradiato da un antenna, viaggia nei seguenti modi: a) propagazione terrestre, fino a 2 Mhz, si riescono a raggiungere distanze notevoli seguendo il contorno terrestre. Sono utilizzate per le comunicazioni come la radio a modulazione di ampiezza; b) propagazione aerea, da 2 a 30 Mhz, si riscontra una riflessione della ionosfera ottenendo nella stessa maniera grande distanze poiché il messaggio continua a rimbalzare; c) propagazione line-of-sight, ossia che la comunicazione avviene essenzialmente in modo rettilineo tra antenne allineate tra loro. Allocazione dello spettro Lo spettro viene allocato attraverso una procedura standardizzata, mediante la quale alcuni enti danno il permesso di accedere in esclusiva ad una determinata banda. Alcuni metodi utilizzati sono: a) Comparative bidding: ogni pretendente sottopone la proposta all ente che ne valuta l utilità (facilmente soggetta ad abusi e corruzione); b) Lottery system: si presentano i progetti e il vincitore viene sorteggiato; esiste il problema che compagnie che non hanno un reale interesse nell utilizzare lo spettro possono partecipare e vincere; c) Auctioning (asta): la banda viene messa all asta e concessa al miglior offerente. L ITU ha previsto alcune bande di frequenza per utilizzo illimitato (attorno ai 2,4 Ghz). PROPAGAZIONE DELLE ONDE RADIO La propagazione delle onde avviene tramite 3 meccanismi: 1. Riflessione: quando un'onda urta un oggetto la cui dimensione è grande rispetto alla lunghezza d onda, l onda viene riflessa (questo è il motivo alla base della capacità di superare ostacoli da parte delle onde a bassissima frequenza). Causa uno shift della fase di Diffrazione: quando una onda urta un oggetto impenetrabile, si piega attorno ad esso; permette di raggiungere posizioni nascoste alla trasmittente. La dimensione dell oggetto che causa la diffrazione è paragonabile alla lunghezza dell onda che viene riflessa e più è bassa la frequenza, più si ha diffrazione. 3. Scattering: quando una onda incontra molti piccoli oggetti (rispetto alla lunghezza d onda) viene dispersa in varie direzioni ottenendo una copertura radio capillare in tanti ambienti. 5

6 RETI DI CALCOLATORI 2 Capitolo 1 CARATTERISTICA DEL CANALE WIRELESS Un canale wireless è soggetto a path loss, interferenze o blocchi che causano errori di trasmissione limitando estensibilità, velocità e affidabilità. Questi fattori restringono il range, il data rate e l affidabilità. Il canale wireless inoltre è soggetto alle condizioni ambientali e alla mobilità del trasmittente e ricevente. Tipicamente il segnale raggiunge il destinatario attraverso non solo un percorso diretto ma anche tramite altri percorsi (multipath) dovuti alla riflessione, diffrazione e scattering. Le componenti multipath arrivano quindi shiftate in ampiezza, frequenza e fase rispetto alla componente diretta. Path loss Il path loss consiste nel rapporto tra energia del segnale trasmesso e energia del segnale ricevuto. Stimarlo è molto importante per designare e sviluppare reti di comunicazione wireless, sono quindi necessari diversi modelli per descrivere le differenti varietà di ambienti di trasmissione. o Free-space model: questo modello suppone che la trasmissione sia diretta, senza attenuazione atmosferica o componenti multipath. La relazione fra potenza trasmessa Pt e potenza ricevuta Pr è determinata da: 2 P r =P t G t G r 4 d Dove: G è il gain della antenna (rapporto tra la potenza necessaria in input ad una antenna rispetto ad una antenna di riferimento per ottenere la stessa energia alla stessa distanza); c = è la lunghezza d onda; f d è la distanza tra trasmettitore T e ricevitore R (per coprire il doppio della distanza abbiamo bisogno di 4 volte la potenza di segnale). o Two path model: il modello free-space assume un solo path tra T ed R ma in realtà il segnale raggiunge R con path multipli. Questo modello assume che il segnale arrivi con 2 path, uno diretto e un altro che viene riflesso, diffratto o è soggetto a scattering: 2 hh P r =P t Gt G r t 2 r d Dove: 6

7 RETI DI CALCOLATORI 2 Capitolo 1 G è il gain della antenna; h è la altezza dell'antenna rispetto alla terra; influenza l'efficacia con cui il segnale emesso da una antenna si somma (cioè ha la stessa fase) al segnale riflesso dalla terra. È un valore critico per poter considerare l attenuazione. Quanto più è alta l antenna, tanto più è alta la potenza ricevuta. Serve per combattere la dispersione; d è la distanza tra trasmettitore T e ricevitore R. Fading Il fading è la fluttuazione della potenza del segnale così come è avvertita dal ricevitore. Ci sono due categorie: fast fading: rapida fluttuazione dell ampiezza, della fase oppure il ritardo multipath del segnale ricevuto dovuto alle interferenze tra più copie dello stesso segnale trasmesso, che arrivano al ricevitore in tempi leggermente diversi. Il tempo tra la ricezione del primo segnale e dal segnale ripetuto è chiamato delay spread. slow fading: il segnale viene parzialmente assorbito da oggetti tra T e R; può durare anche secondi o minuti (ad esempio un oggetto grande che si frappone fra T ed R che rallenta o che impedisce la comunicazione). Esistono tecniche che consentono di contenere gli effetti del fading: diversity: è basato sul fatto che path indipendenti tra T ed R subiscono effetti di fading indipendenti. Fornendo canali logici multipli tra T ed R ed inviando parti del segnale su ogni canale è possibile compensare gli effetti degli errori. I path indipendenti possono essere distinti in: spazio, tempo, frequenza, polarizzazione; adaptive modulation: le caratteristiche del canale sono stimate da R, che invia un feedback sulla qualità del segnale al fine di evitare che la comunicazione venga disturbata. Interferenze Le trasmissioni wireless devono contrastare le interferenze da un ampia varietà di sorgenti. Le interferenze sono di 2 categorie: interferenza da canali adiacenti: i segnali in frequenze prossime, hanno componenti che vanno oltre i limiti allocati al range della frequenza; una soluzione tipica è quella di allocare una banda di frequenza (guard band) per separare le due bande di frequenza adiacenti; interferenza da co-canale: è dovuta a sistemi vicini che usano la stessa banda; una soluzione consiste nell'adottare tecniche di riconoscimento di trasmissione contemporanea sulla stessa frequenza e l'allocazione dinamica del segnale. Doppler Shift Il doppler shift è definito come il cambiamento o lo shift della frequenza del segnale ricevuto quando T ed R si muovono. Se si avvicinano, la frequenza del segnale ricevuto sarà più alta del segnale trasmesso, mentre se si allontanano, la frequenza del segnale arrivata al ricevitore sarà più bassa. v f d= dove v è la velocità relativa tra il trasmettitore e il ricevitore. 7

8 RETI DI CALCOLATORI 2 Capitolo 1 TEOREMA DI NYQUIST. Il signaling speed di un segnale trasmesso denota il numero di volte per secondo che il segnale cambia il suo valore o voltaggio. Il numero di cambiamenti per secondo è misurato in baud. Il baud rate non è la stessa cosa del bit rate in quanto ogni segnale può essere usato per codificare più bit. Il teorema di Nyquist da il massimo data rate possibile di un canale. Se B è la larghezza di banda del canale, espressa il Hz, ed L è il numero di livelli usati dai segnali (potenze di 2), la capacità massima del canale C è data da: C=2 B log 2 L bits/ sec Questa condizione è valida solo per canali senza rumore. TEOREMA DI SHANNON. Il livello di rumore di un canale è rappresentato dal SNR che è il rapporto tra la potenza del segnale S e la potenza del rumore N specificata in decibel tale che S SNR=10 log 10 db N In accordo al teorema di Shannon, la capacità del canale C è data da: S C=B log 2 1 bit / sec N TECNICHE DI MODULAZIONE I dati che siano in formato digitale o analogico, per essere trasmessi su un canale wireless devono essere convertiti in onde elettromagnetiche. Modulazione analogica Amplitude Modulation: T sovrappone il segnale dell informazione x(t) sul segnale della portante c(t). Si può vedere che la frequenza dell onda modulata rimane costante mentre la sua ampiezza varia in base al segnale dell informazione. L onda AM può essere rappresentata matematicamente come: s t = 1 n a x t cos 2 f c t dove: na chiamato indice di modulazione è il rapporto tra l ampiezza del segnale dell informazione e il segnale portante; fc è la frequenza della portante; c t =cos 2 f c t è la portante. Questa modulazione crea segnali addizionali sulle frequenze di entrambi i lati della portante. Questi segnali, chiamati sidebands, diminuiscono l utilizzo dello spettro e consumano potenza addizionale. Angle Modulation: il questa categoria ricadono le modulazione di frequenza e fase. La modulazione di angolo può essere matematicamente rappresentata come: s t = Ac [cos 2 f c t t ] Dove: Ac è l ampiezza della portante; fc è la frequenza della portante. 8

9 RETI DI CALCOLATORI 2 Capitolo 1 Nella modulazione di frequenza l ampiezza del segnale modulato è mantenuta costante mentre la frequenza istantanea è alterata per rappresentare l informazione che si vuole trasmettere. La modulazione di frequenza segue l equazione della modulazione ad angolo con la condizione che la derivata della fase Φ (t) ' t =n f x t ovvero è proporzionale al segnale di informazione x(t). nf è una costante chiamata indice di modulazione di frequenza. Φ (t) rappresenta la deviazione della frequenza istantanea del segnale modulato dalla frequenza della portante. Nella modulazione di fase, la fase del segnale modulato è t =n p x t dove np è una costante chiamata indice di modulazione di fase. Φ(t) rappresenta la deviazione della frequenza istantanea del segnale modulato dalla fase della portante. Modulazione digitale Nella modulazione ASK, quando uno stream di bit è trasmesso, un bit 1 è rappresentato dalla presenza del segnale di portante per uno specifico intervallo di tempo; un bit 0 è rappresentato dall assenza del segnale di portante per lo stesso intervallo di tempo. Matematicamente: s t = { Ac cos 2 f c t 0 per 1 per 0 Nella modulazione FSK se fc è la frequenza della portante e k è un piccolo offset di frequenza, la trasmissione del bit 1 è rappresentata dalla presenza della portante con frequenza fc + k per un specifico intervallo di tempo. Per creare gli elementi del segnale, viene modificata la frequenza. La trasmissione del bit 0 è rappresentato dalla presenza della portante con frequenza fc k per lo stesso intervallo di tempo. Siccome vengono usati 2 livelli di frequenza, questa tecnica è chiamata Binary FSK e può essere rappresentata matematicamente come: s t = { Ac cos 2 f c k t Ac cos 2 f c k t per 1 per 0 Usando livelli di frequenza multipli, un singolo livello può essere usato per codificare più bit; per esempio four-level FSK può essere usata per trasmettere 2 bit per ogni shift di frequenza: { Ac cos 2 f c 3k t A cos 2 f c k t s t = c Ac cos 2 f c k t Ac cos 2 f c 3k t per per per per

10 RETI DI CALCOLATORI 2 Capitolo 1 1 T dove T è la durata di ogni bit, 2 trasmesso è chiamata Minimum Shift Keying (MSK). Ci sono dei filtri Gaussiani che riducono la banda occupata dal segnale (Gaussian MSK). Nella modulazione PSK viene modificata la fase del segnale. Sia l ampiezza che la frequenza rimangono invariate durante i cambiamenti della fase. La modulazione PSK, è più utilizzata delle modulazioni ASK e FSK. La forma più semplice di modulazione PSK è quella binaria (BPSK), in cui si hanno solo due tipi di segnali, uno con una fase di 0 e l altro con una fase di 180. La modulazione PSK binaria è semplice come la modulazione ASK binaria, ma ha un grande vantaggio: è più resistente al rumore. Il rumore può cambiare più facilmente l ampiezza e meno facilmente la fase. La modulazione PSK ha un vantaggio anche rispetto a quella FSK in quanto non necessita di due segnali portanti. La modulazione FSK con una distanza di toni minima di s t = { Ac cos 2 f c t per 1 Ac cos 2 f c t per 0 { 4 3 Ac cos 2 f c t 4 s t = 5 Ac cos 2 f c t 4 7 Ac cos 2 f c t 4 Ac cos 2 f c t per 10 per 11 per 01 per 00 Differenzial PSK (DPSK) è una variazione del meccanismo PSK di base. Qui il bit 1 è rappresentato dalla presenza della portante la cui fase è stata cambiata relativamente alla fase della portante usata per rappresentare il bit precedente. Il bit 0 è rappresentato dalla presenza della portante la cui fase è la stessa della portante usata per trasmettere il bit precedente. Siccome le differenze di fase capitano continuamente con stringhe composte da molte sequenze di 1, queste possono essere usate come clock. La π/4 DQPSK prevede un ulteriore shift della fase di 45 perché nel DQPSK standard la trasmissione di lunghe sequenze di zero, senza shift di fase, può essere difficile da riconoscere. La Quadrature Amplitude Modulation (QAM) prevede la modifica dell ampiezza e della fase per rappresentare i bit. Nel QPSK ogni shift di fase è usato per codificare 2 bit ma se vengono usati 2 valori di ampiezza con il QPSK standard, è possibile ottenere 8 possibili combinazioni e quindi è possibile codificare 3 bit per ognuno di questi. Lo svantaggio maggiore di questo sistema si presenta quando il numero di cambiamenti di fase e ampiezza crescono, in quanto il sistema diventa più complesso e soggetto ad errori dovuti al rumore e alle distorsioni. TECNICHE DI ACCESSO MULTIPLO (MULTIPLEX) I canali che possono essere utilizzati hanno una larghezza di banda limitata, quindi la principale sfida della comunicazione elettronica è cercare di utilizzare in modo oculato tale canale. L obiettivo del multiplexing, quindi, è l efficienza mentre gli obiettivi della diffusione sono evitare le interferenze e le intercettazioni. Quando la larghezza di banda di un canale è superiore alla larghezza di banda effettivamente necessaria, il canale può essere condiviso da più trasmissioni simultanee in modo da ottimizzarne 10

11 RETI DI CALCOLATORI 2 Capitolo 1 l'utilizzo. Per fare ciò però abbiamo bisogno del multiplexing, che permette la trasmissione simultanea di più segnali su un singolo canale di comunicazione. In un sistema che usa multiplexing ci sono n linee di input (trasmissioni) e un solo collegamento fisico (canale). Esistono diverse tecniche generali per implementare il multiplexing: 1. Accesso multiplo a divisione della frequenza (FDMA): permette di spedire vari canali logici su un singolo collegamento fisico con sufficiente ampiezza di banda. Una coppia di trasmettitore ricevitore usa un canale singolo dedicato di frequenza per la comunicazione. Lo spettro delle frequenze è quindi praticamente diviso in varie sottobande. Le frequenze di banda non possono essere vicine, infatti sono separate le une dalle altre da bande intermedie per eliminare le interferenze interchannel. Queste bande di separazione non consentono di utilizzare lo spettro delle frequenze in pieno e questo è il maggiore svantaggio del FDMA. Il multiplexing a divisione ortogonale di frequenza (OFDM) è basato sulla diffusione dei dati da trasmettere su diverse portanti, ognuna delle quali viene modulata ad un rate basso. Il segnale dei dati è diviso in più piccoli sottosegnali che sono quindi trasmessi al ricevitore simultaneamente a differenti portanti (sub-portanti). Dividere la portante in più piccole sottoportanti e quindi fare il broadcast di queste simultaneamente riduce la distorsione del segnale al ricevitore causato dalla propagazione multipath. 2. Accesso multiplo a divisione del tempo (TDMA): il multiplexing TDM, anziché condividere una porzione della larghezza di banda, come accade nel multiplexing FDM, condivide il tempo di utilizzo del collegamento. Ogni canale logico occupa un intervallo di tempo. Il collegamento fisico è uguale a quello del multiplexing FDM ma, anziché essere suddiviso in frequenze (fasce orizzontali), viene diviso in intervalli temporali (fasce verticali). 11

12 RETI DI CALCOLATORI 2 Capitolo 1 Per la comunicazione full-duplex gli slot di tempo per l uplink e il down link possono essere sulla stessa banda di frequenza o su differenti frequenze. Nel primo caso si ha il time division duplex (TDD-TDMA) dove lo slot di tempo viene ulteriormente suddiviso mentre nel secondo caso frequency divion duplex (FDD-TDMA) la trasmissione avviene per l intero slot su frequenze diverse. 3. Accesso multiplo a code division (CDMA): con questa tecnica ogni canale usa l intero spettro. Le varie comunicazioni sono codificate con una sequenza pseudo-random. Le trasmissioni sono differenziate attraverso un codice univoco che è indipendente dai dati trasmessi ed è assegnato ad ogni utente. Esistono 2 tipi: a. Frequency hopping spread spectrum (FHSS): le trasmissioni eseguono lo switch su varie frequenze ristrette in maniera pseudorandom. La sequenza delle frequenze di trasmissione è conosciuta sia dal trasmettitore che dal ricevitore ma appare casuale agli altri nodi della rete (usata durante la Seconda Guerra Mondiale). b. Direct sequence spread spectrum (DSSS): con questa tecnica ogni nodo ha associato uno specifico codice di n bit chiamato chipping code dove n è il chipping rate del sistema. Questi codici assegnati ai nodi sono ortogonali tra di loro in quanto il 12

13 RETI DI CALCOLATORI 2 Capitolo 1 prodotto interno normalizzato della loro rappresentazione in vettori, di due codici è ZERO. Ogni nodo trasmette usando il suo codice. Il ricevitore estrae le informazioni usando il codice del trasmettitore. Quindi per trasmettere il bit 1 il trasmettitore invia il suo codice, per trasmettere il bit 0 invia il complemento del codice. 4. Accesso multiplo a divisione di spazio (SDMA): invece di usare trasmissioni omnidirezionali, con questa tecnica si usano antenne direzionate. Le differenti regioni possono essere servite usando la stessa frequenza. CONTROLLO DEGLI ERRORI Codice di parità In questo codice parole sorgenti di k bit vengono trasformate in parole codice di n = k + 1 bit. Il bit addizionale viene chiamato bit di parità, ed è selezionato in modo tale da far si che il numero totale di 1 nella parola codice sia sempre pari. Codice di Hamming Si aggiungono alcuni bit di controllo, tanti quanti ne sono necessari per la codifica della posizione del bit errato. Esempio: data una stringa di 8 bit, si aggiungono 4 bit di controllo, per un totale di 12 bit. 4 bit di posizione bastano a codificare le 12 posizioni (24=16). a) Ciascun bit di controllo viene inserito in una posizione potenza di 2 (i bit di controllo occupano la posizione 1,2,4,8,16, ); b) ogni bit di controllo è un bit di parità che esprime la parità di un sottoinsieme opportuno dei bit della stringa. 13

14 RETI DI CALCOLATORI 2 Capitolo 1 Architettura ISO OSI L ISO (International Standard Organization) ha proposto lo standard OSI (Open System Interconnection) con lo scopo di dare delle regole che facilitassero la comunicazione fra sistemi differenti senza richiedere cambiamenti di hardware o software. Il modello OSI è un modello a strati per la progettazione di reti che permette la comunicazione fra tutti i tipi di rete. È composto da sette strati: Ogni strato definisce un insieme di funzioni che si occupano di aspetti diversi della trasmissione. Ogni strato utilizza le funzionalità offerte dallo strato sottostante. Fra due nodi della rete, lo strato n di un nodo comunica con il corrispondente strato n dell altro nodo. Questa comunicazione è gestita grazie ad un protocollo. I processi su due nodi che comunicano a un dato strato sono detti peer. La comunicazione tra due peer è detta peer to peer. Nel mittente, in ogni passaggio da uno strato all altro, dall alto verso il basso, ogni strato aggiunge delle informazioni. Nello strato fisico i dati vengono convertiti in una forma adatta al mezzo trasmissivo. Nel destinatario, i dati passano dal basso verso l alto e ogni strato rimuove l informazione aggiuntiva. Gli strati interagiscono tra di loro utilizzando un interfaccia. Ogni interfaccia definisce i servizi che uno strato deve fornire allo strato superiore. Modifiche all implementazione non creano nessun problema. I sette strati possono essere pensati come appartenenti a tre gruppi: gli strati 1,2,3 sono strati per il supporto di rete; gli strati 5,6,7 sono strati per il supporto all utente; lo strato 4 collega i due gruppi. 14

15 RETI DI CALCOLATORI 2 Capitolo 1 In questa figura, D7 indica il pacchetto di dati del livello 7, D6 indica il pacchetto dati del livello 6 e così via. D7 quindi è la sequenza di byte che si vuole spedire. Nel passaggio da uno strato a quello sottostante viene aggiunta un intestazione (header) o anche un trailer. Normalmente solo il livello 2 utilizza una coda. Lo strato fisico si occupa di trasformare la sequenza di bit in segnali elettromagnetici che viaggeranno sul mezzo trasmissivo per arrivare al destinatario. Qui il pacchetto subirà il processo inverso passando da uno strato a quello superiore dove verranno eliminate le intestazioni (e le code) e alla fine il blocco D7 arriverà all applicazione destinataria dei dati. Da questo deriva quindi il concetto di incapsulamento, cioè la porzione di dati del livello n-1 contiene sia i dati che l intestazione del livello n, ma considera tutto il blocco come singola unità dati. Strati del Modello OSI: 1. Strato 1: Fisico Lo strato fisico si preoccupa di trasmettere i singoli bit sul mezzo trasmissivo da un nodo a quello successivo: Caratteristiche fisiche del mezzo: definisce il tipo di mezzo trasmissivo; Rappresentazione dei bit: definisce come il valore 0 e 1 sono codificati; Velocità di spedizione: definisce la velocità con cui si possono spedire i bit; Sincronizzazione dei bit: definisce il modo di sincronizzare il clock del mittente e del destinatario; Configurazione del collegamento: definisce come gestire la connessione del nodo al mezzo trasmissivo; Topologia: definisce come gestire la comunicazione in funzione della topologia della rete; Flusso di dati: definisce il tipo di comunicazione (simplex, half duplex, full duplex). 2. Strato 2: Collegamento Lo strato di collegamento si occupa della trasmissione affidabile di pacchetti di dati fra un nodo ed il successivo: Framing: divide il flusso di bit che arriva dallo strato di rete e che deve essere spedito in blocchi, detti frame; Indirizzi fisici: aggiunge un intestazione che specifica l indirizzo fisico del destinatario; 15

16 RETI DI CALCOLATORI 2 Capitolo 1 Controllo di flusso: usa dei meccanismi per il controllo di flusso dei bit al fine di non sovraccaricare il destinatario; Controllo degli errori: implementa meccanismi che permettono di rilevare la presenza di errori e di ritrasmettere i frame danneggiati; Controllo per l accesso: quando il mezzo trasmissivo è multipunto lo strato di collegamento ha il compito di controllare qual nodo ha accesso al mezzo. Strato 3: Rete Lo strato di rete si occupa della consegna di pacchetti di dati da un nodo mittente a un nodo destinatario: Indirizzamento logico: lo strato di collegamento utilizza indirizzi fisici per far comunicare due nodi sulla stessa rete. Questo tipo di indirizzamento è locale alla singola rete. Per specificare tutti i nodi di una interrete non si utilizzano, quindi, indirizzi fisici, ma si utilizzano indirizzi logici; Routing: fornisce il meccanismo di routing che permette di interconnettere più reti per creare un interrete. Strato 4: Trasporto Lo strato di trasporto si occupa della consegna di un messaggio da un processo mittente ad un processo destinatario: Indirizzamento dei processi: Lo strato di rete utilizza un indirizzamento logico che permette di indirizzare ogni singolo nodo e visto che all interno di ogni singolo nodo occorre poter distinguere i processi lo strato di trasporto deve includere un meccanismo per questo tipo di indirizzamento, quindi si utilizza un numero di porta; Segmentazione e riassemblaggio: i messaggi spediti possono essere più grandi del grandezza consentita, quindi, lo strato di trasporto prevede un meccanismo di segmentazione dei messaggi e ad ogni pezzo viene aggiunto un numero di sequenza che permetterà di riassemblare il messaggio; Controllo della connessione; Controllo del flusso: è eseguito fra i processi destinatari piuttosto che sul canale di comunicazione; Controllo degli errori. Si occupa di far arrivare l intero messaggio del processo mittente al processo destinatario senza errori. Strato 5: Sessione Lo strato di sessione si occupa del controllo del dialogo e della sincronizzazione: Controllo del dialogo: permette a sistemi diversi di comunicare tra di loro; Sincronizzazione: permette di inserire punti di controllo, ad esempio se si deve spedire un file di 2000 pagine ognuna di 1 KB è opportuno inserire un controllo ogni 100 pagine per essere sicuri che il trasferimento avvenga con successo. Strato 6: Presentazione Lo strato di presentazione si occupa della sintassi e della semantica dell informazione trasmessa: Traduzione: effettua la traduzione di dati in forma di stringhe, numeri, o altro, in sequenze di bit da trasmettere;

17 RETI DI CALCOLATORI 2 Capitolo 1 Cifratura: protegge la comunicazione grazie all uso di strumenti crittografici: Mittente Cifratura; Destinatario Decifratura. 7. Strato 7: Applicazioni Lo strato delle applicazioni si occupa di fornire i servizi di rete all utente finale. Alcuni servizi tipici sono: terminale virtuale; accesso remoto ai file; posta elettronica; World Wide Web; chat. La suite di protocolli TCP/IP La suite TCP/IP è stata sviluppata quando il modello OSI non era ancora diventato uno standard. Per questo motivo gli strati del modello TCP/IP non coincidono con quelli del modello OSI. Nel modello originale TCP/IP sono stati definiti cinque strati anziché sette: 1. fisico; 2. di collegamento; 3. di rete; 4. di trasporto; 5. delle applicazioni. Una differenza sostanziale tra i due modelli è dovuta al fatto che la suite TCP/IP è costituita da vari protocolli strutturati gerarchicamente, ma non così rigidamente come previsto dal modello OSI. In TCP/IP i protocolli sono abbastanza indipendenti e possono essere usati a seconda delle necessità specifiche. 1. Strato 1: Fisico Per questo strato il modello TCP/IP non definisce nessun protocollo. Quindi si utilizzano quelli previsti dall hardware della rete. 2. Strato 2: Collegamento Per questo strato il modello TCP/IP non definisce nessun protocollo. Quindi si utilizzano quelli definiti dalla rete fisica. 17

18 RETI DI CALCOLATORI 2 Capitolo 1 3. Strato 3: Rete In questo strato TCP/IP definisce il protocollo IP (Internet Protocol). Il protocollo IP fa uso di quattro protocolli di servizio: ARP, RARP, ICMP, IGMP. Protocollo IP fornisce il servizio di consegna dei pacchetti da un nodo ad un altro dell interrete. Il servizio offerto è senza connessione e inaffidabile, detto in gergo besteffort. Ciò significa che IP non fornisce né controllo di errore né meccanismi per il controllo della consegna. IP cerca di fare quanto è possibile per consegnare i pacchetti al destinatario senza però offrire nessuna garanzia. ARP (Address Resolution Protocol) permette di tradurre gli indirizzi logici usati dal protocollo IP in indirizzi fisici. RARP (Reverse Address Resolution Protocol) permette di effettuare l operazione inverse: risalire all indirizzo IP tramite un indirizzo fisico. ICMP (Internet Control Message Protocol) viene usato per il controllo della rete. IGMP (Internet Group Message Protocol) offre delle funzionalità per la trasmissione simultanea di un messaggio a un gruppo di destinatari. 4. Strato 4: Trasporto I protocolli di Trasporto nella suite TCP/IP sono TCP e UDP. IP permette di trasportare pacchetti da un computer mittente ad un computer destinatario, invece TCP e UDP permettono di trasportare i dati da un processo mittente ad un processo destinatario. Un nuovo protocollo, SCTP, è stato aggiunto alla suite TCP/IP per supportare alcune applicazioni recenti. TCP (Trasmission Control Protocol) nel mittente TCP divide il flusso di byte da spedire in pezzi detti segmenti. Ogni segmento ha un numero di sequenza che serve per riordinare i byte all arrivo alla destinazione. Nel destinatario TCP riceve i datagram contenenti i segmenti e li riordina prima di passarli all applicazione. Trasmissione affidabile. UDP (User Datagram Protocol) UDP è un protocollo che rispetto al protocollo IP aggiunge semplicemente l uso delle porte per l identificazione dei processi. Senza garanzia di consegna. SCTP (Strema Control Trasmission Protocol) fornisce supporto per applicazioni recenti come la trasmissione di dati audio. 5. Strato 5: Applicazioni Questo strato è equivalente alla combinazione degli strati di sessione, presentazione e applicazioni del modello OSI. STANDARD IEEE 802 Lo standard IEEE 802 si occupa di definire il datalink layer ed il physical layer descritti nel modello ISO OSI. Il ruolo del layer fisico è di trasmettere e ricevere i dati sotto forma di bit. È responsabile della codifica dei bit, di determinare il voltaggio da usare e la durata del segnale di ogni bit. Il data link layer esegue varie importanti funzioni come: controllo dell errore, controllo del flusso, indirizzamento, framing e controllo dell accesso al mezzo. Consiste in 2 sub-layer: 18

19 RETI DI CALCOLATORI 2 Capitolo 1 il Logical Link Control sub-layer (LLC): fornisce i servizi del data link layer indipendenti dal mezzo fisico al network layer. I servizi più importanti offerti dall LLC sono: il controllo degli errori e il controllo del flusso. LLC fornisce 3 tipi di servizi: o unacknowledged connectionless service: non richiede di stabilire una connessione end-to-end. Ogni pacchetto è smistato indipendentemente dalla destinazione. o connection-oriented service: garantisce l arrivo dei dati usando numeri di sequenza dei pacchetti ed ACK. Richiede di stabilire un percorso tra la sorgente e la destinazione prima di iniziare il trasferimento dei dati. o acknowledged connectionless service: consiste nel trasferimento di pacchetti singoli con ACK. Medium Access Control sublayer (MAC): si interfaccia direttamente con il layer fisico; fornisce servizi di indirizzamento, framing e controllo dell accesso al mezzo. Al contrario dell LLC questi servizi cambiano a seconda del mezzo fisico in uso. ALOHA I metodi di accesso al mezzo ad accesso casuale derivano tutti da un protocollo conosciuto come ALOHA, al quale sono state apportate varie modifiche. ALOHA puro: il protocollo originale viene chiamato ALOHA puro. L idea è che ogni stazione spedisca un frame ogni qualvolta ha un frame da spedire. Ovviamente essendoci un canale condiviso c è la possibilità di collisioni. Tale protocollo fa affidamento sui riscontri spediti dal destinatario. Quando una stazione spedisce un frame si aspetta di ricevere un riscontro da parte del destinatario, se tale riscontro non arriva dopo un certo periodo, il mittente assume che il riscontro sia stato distrutto da una collisione e rispedisce i dati. Il tempo di attesa che ogni stazione deve aspettare è casuale e viene chiamato tempo di backoff (TB). Il protocollo ALOHA puro ha anche un metodo per evitare la congestione del canale dovuta alla ritrasmissione di un frame. Infatti dopo un numero massimo di tentativi di ritrasmissione, Kmax, la stazione deve abbandonare la spedizione del frame per riprovare in un secondo momento. Il throughput ottenibile con questo metodo è intorno al 18% della banda. Il tempo di vulnerabilità del protocollo ALOHA puro è 2 volte il tempo di trasmissione di un frame. ALOHA a intervalli (slotted): in questo protocollo il tempo viene diviso in intervalli di ampiezza Tfr. Una stazione può spedire solo all inizio di un intervallo, non come nell'aloha puro dove poteva trasmettere non appena il pacchetto era pronto. Quindi il tempo di vulnerabilità di questo protocollo è pari al tempo di trasmissione di un frame. Se si verifica 19

20 RETI DI CALCOLATORI 2 Capitolo 1 una collisione, uno nodo aspetta un tempo casuale e ritrasmette il frame all inizio del nuovo intervallo. Il throughput ottenibile con questo metodo è intorno al 37%. CSMA (Carrier Sense Multiple Access) Questo metodo permette di ridurre le collisioni ma non eliminarle. La probabilità di collisione può essere ridotta se una stazione controlla lo stato del mezzo trasmissivo prima di spedire; se c è già una trasmissione in corso allora è inutile spedire. La possibilità di collisione può esistere ancora a causa del ritardo di propagazione del segnale. In pratica quando una stazione controlla il mezzo trasmissivo e lo trova libero, esso in realtà potrebbe non essere libero perché i bit trasmessi da qualche altra stazione non hanno ancora raggiunto la stazione che sta controllando il mezzo trasmissivo. Il tempo di vulnerabilità per il CSMA è pari al tempo di propagazione Tp che è il tempo necessario ad un segnale per propagarsi da un estremo all altro del mezzo trasmissivo. Quando una stazione spedisce un frame, se un altra stazione spedisce un altro frame prima che scada il tempo di vulnerabilità, i due frame possono collidere. Che cosa deve fare una stazione se il mezzo trasmissivo è occupato? Che cosa deve fare una stazione se il mezzo trasmissivo è libero? Vengono utilizzati tre metodi per rispondere a queste domande: Metodo 1 persistent: se il mezzo è occupato la stazione non trasmette e continua a controllare lo stato del mezzo trasmissivo; appena il canale diventa libero la stazione spedisce immediatamente il frame. Probabilità di collisione massima. Metodo non persistent: una stazione che vuole spedire un frame controlla prima se il mezzo trasmissivo è libero, se lo è spedisce il frame immediatamente, altrimenti aspetta un tempo casuale prima di ripetere la stessa operazione (controllo, spedizione). Probabilità di collisione minima, ma riduce l efficienza della rete; Metodo p persistent: combina i vantaggi dei due metodi precedenti riducendo la probabilità di collisione e migliorando l efficienza. Una stazione che vuole spedire controlla continuamente il mezzo trasmissivo fino a che non lo trova libero. Quando ciò accade la stazione esegue i seguenti passi: con la probabilità p la stazione spedisce il frame; se il frame non viene spedito (quindi con probabilità q=1-p) la stazione aspetta l inizio del prossimo intervallo e controlla di nuovo lo stato del mezzo trasmissivo: se il mezzo trasmissivo è libero riprende dal passo 1; 20

21 RETI DI CALCOLATORI 2 Capitolo 1 se è occupato si comporta come se ci fosse stata una collisione utilizzando una procedura di backoff. CSMA/CD (Collision Detection) CSMA non specifica cosa fare quando c è una collisione. Questo metodo, invece, aggiunge al metodo CSMA un algoritmo per gestire le collisioni: una stazione controlla lo stato del mezzo trasmissivo dopo che ha spedito un frame, per vedere se la trasmissione è avvenuta con successo. Se non si sono verificate collisioni allora la trasmissione è finita; se però c è stata una collisione il nodo che ha spedito il frame interrompe la trasmissione ed invia un segnale JAMMING per informare tutti i nodi della rete che c è stata una collisione. Se un qualsiasi altro nodo ascolta questo segnale, interrompe le sue trasmissioni, aspetta un periodo random e successivamente rispedisce il frame. Dimensione minima del frame: affinché il metodo CSMA/CD funzioni, occorre imporre delle restrizioni sulle dimensioni del frame. È necessario che prima della spedizione dell ultimo bit di un frame, la stazione che spedisce il frame sia in grado di rilevare la collisione, se ce n è stata una, e interrompere la trasmissione. Quindi la dimensione minima è di 512 bit ovvero 64 byte. Livello di energia del segnale: il livello dell energia del segnale che viaggia sul mezzo trasmissivo può avere tre valori: 0, normale e anormale. Quando il livello è 0 vuol dire che il mezzo trasmissivo è libero; quando il livello è normale il mezzo trasmissivo sta trasportando il segnale spedito da una stazione; quando il segnale è anormale vuol dire che si è presentata una collisione. CSMA/CA (Collision Avoidance) L idea di base del CSMA/CD è quella che una stazione deve essere capace di ricevere mentre trasmette per poter rilevare la collisione. Quando non c'è collisione la stazione riceve un solo segnale, altrimenti riceve due segnali, cioè il proprio segnale e quello trasmesso da un altra stazione. Quindi, per distinguere questi due casi, i due segnali devono avere un significato diverso. In altre parole il segnale della seconda stazione deve aggiungere una quantità di energia al segnale creato dalla prima stazione in modo da evidenziare l interferenza. In una rete cablata, il segnale ricevuto ha quasi sempre la stessa energia del segnale spedito; in una rete senza fili, invece, il segnale spedito perde energia durante la trasmissione e l energia del segnale ricevuto è molto bassa. Pertanto una collisione può aggiungere solo il 5 10% di energia al segnale. Ciò non basta per poter rilevare una collisione. Il protocollo CSMA/CA è stato progettato per questa necessità. Le collisioni vengono evitate attraverso l uso di tre strategie: Spaziatura tra i frame: anche se il mezzo trasmissivo è libero la trasmissione di un frame viene ritardata, cioè la stazione aspetta un certo tempo chiamato tempo di spaziatura tra i frame (IFS). 21

22 RETI DI CALCOLATORI 2 Capitolo 1 Finestra di contesa: la finestra di contesa è un tempo diviso in intervalli. Una stazione che ha già aspettato un tempo IFS, sceglie un numero casuale e aspetterà quel numero di intervalli prima di spedire. Riscontri: anche utilizzando le precauzioni precedenti è possibile che si verifichino delle collisioni. L uso di timeout e riscontri aiuta a garantire che il destinatario abbia ricevuto correttamente il frame. STANDARD IEEE IEEE è uno standard per reti CSMA/CD; è comunemente riferito allo standard Ethernet. Le reti Ethernet sono state create nel 1976 nel centro di ricerca della Xerox di Palo Alto in California. Da allora le reti Ethernet si sono evolute attraverso quattro generazioni: Ethernet Standard (10 Mbps), Ethernet veloce (100 Mbps), Ethernet gigabit(1 Gbps), Ethernet 10 Gigabit (10 Gbps). È stato adottato dall ANSI e, nel 1987, anche l ISO lo ha approvato chiamandolo ISO Le relazioni tra lo standard IEEE 802 e il modello OSI è mostrata nella figura seguente: Nello standard IEEE 802 lo strato di collegamento è stato diviso in due sottostrati: sottostrato LLC sottostrato MAC MAC layer Nelle reti Ethernet standard, il sottostrato MAC è responsabile della creazione dei frame e gestisce il metodo di accesso al mezzo trasmissivo. Formato del frame: PREAMBOLO (lunghezza 7 byte, è usato per la sincronizzazione. Ogni byte contiene il pattern Siccome lo standard utilizza una tecnica di codifica chiamata Manchester, il preambolo produce un onda pari a 10 Mhz per la durata di 5,6 micro secondi. Questo permette alla sincronizzazione dei clock di T ed R). DELIMITATORE INDIRIZZO DESTINAZIONE INDIRIZZO MITTENTE LUNGHEZZA (O TIPO) DATI CRC 22

23 RETI DI CALCOLATORI 2 Capitolo 1 Lunghezza del frame: La restrizione sulla lunghezza minima è necessaria per permettere il corretto funzionamento del metodo CSMA/CD. Un frame Ethernet deve avere una lunghezza minima di 512 bit(64 byte) per permettere la rivelazione delle collisioni in quanto se il frame fosse troppo corto, T completerebbe la trasmissione del frame prima che R ne riceva il 1 bit. Nel caso in cui si verifichi una collisione, siccome T ha già terminato la trasmissione, non è rimasto in ascolto sul canale per accorgersi del problema e quindi per evitare queste situazioni, la durata di una trasmissione di un frame deve essere almeno uguale al doppio del Round Trip Time RTT. Lo standard definisce anche una lunghezza massima di un frame (senza il PREAMBOLO e il DELIMITATORE) di 1528 Byte. Ogni nodo in un rete Ethernet ha un interfaccia di rete grazie alla quale si collega al mezzo trasmissivo condiviso. L interfaccia di rete Ethernet si trova fisicamente all interno del nodo e viene identificata da un indirizzo fisico di 6 byte(48 bit); tale indirizzo è codificato nell hardware dell interfaccia. Il bit meno significativo del primo byte di un indirizzo Ethernet definisce il tipo di indirizzo. Se il bit vale 0, l indirizzo è singolo, altrimenti è di gruppo. Metodo di accesso: CSMA/CD Le reti Ethernet standard utilizzano il protocollo CSMA/CD e il metodo di 1-insistenza per l accesso al mezzo trasmissivo. Intervalli di tempo: l intervallo di tempo d utilizzare con il metodo CSMA/CD è dato da due volte il tempo di propagazione massimo(tempo di andata e ritorno) più il tempo necessario per spedire un segnale di disturbo. Per una Ethernet standard a 10Mbps tale tempo è pari a 51.2 µs ed equivale al tempo necessario a un nodo per spedire 512 bit. Lunghezza della rete: la lunghezza massima della rete dipende dalla velocità di propagazione del segnale e quindi legata agli intervalli di tempo utilizzati nel metodo CSMA/CD. La massima lunghezza della rete Internet a 2500 m, cioè il 48% del limite teorico. La lunghezza massima di una rete Ethernet è di 2500 m. 23

24 RETI DI CALCOLATORI 2 Capitolo 1 Physical layer Nell implementazione chiamata 10base5 o anche Ethernet a cavo coassiale grosso(tick Ethernet o anche Thicknet), il mezzo trasmissivo utilizzato è un cavo coassiale il cui spessore è più o meno quello dei tubi dell acqua che si usano per i giardini ed è sufficientemente rigido da non poter essere piegato con le mani. Nell implementazione chiamata 10base2 o anche Ethernet a cavo coassiale sottile(thin Ethernet o anche Cheapernet), il mezzo trasmissivo è un cavo coassiale molto più sottile e flessibile. Nell implementazione chiamata 10base-T o anche Ethernet a doppino, il mezzo trasmissivo utilizzato è un doppino (cavo UTP). Nell implementazione chiamata 10base-F o anche Ethernet in fibra ottica, il mezzo trasmissivo utilizzato è la fibra ottica. 24

25 RETI DI CALCOLATORI 2 Capitolo 1 MODIFICHE DELLO STANDARD Ethernet con bridge: Il primo passo dell evoluzione di Ethernet è stato quello della divisione di una rete LAN in vari pezzi collegati tra di loro da nodi di commutazione chiamati bridge. L uso di bridge nelle reti Ethernet ha avuto due effetti collegati: aumentare la larghezza di banda e separare le collisioni. 25

26 RETI DI CALCOLATORI 2 Capitolo 2 CAPITOLO 2 - WIRELESS LAN E PAN INTRODUZIONE La distinzione tra LAN e PAN è abbastanza recente. Il percorso che si è seguiti per arrivare alle WPAN, è lo stesso seguito per le tecnologie di reti WLAN. Lo stesso protocollo TCP/IP usato per le reti wired, è stato integrato nelle WLAN. In un certo senso il fatto che la tecnologia si sia trasformata in wireless è stato semplificato dall utilizzo dello stesso protocollo. Le prime conseguenze del passaggio dalla LAN alla WLAN sono: 1. si evita il costo del cablaggio e costi di manutenzione (di solito molto elevati); 2. c'è la possibilità di offrire servizi di tipo diverso (mobilità, localizzazione). Dietro al wireless si nascondono una serie di tematiche non banali, molto importanti. Nel wireless ci sono problemi ed opportunità diverse, si deve prestare maggiore attenzione alla sicurezza, ecc.; una WLAN è una rete diversa da una LAN. In aggiunta a questo, una rete WLAN si può trasformare anche in una rete personale WPAN (che permette il collegamento di apparecchiature personali: palmari, cellulari, PC) in maniera da costruire intorno all utente una bolla (ecosistema) che lo avvolge, offrendogli specifici servizi. Caratteristiche tecniche delle WLAN Le differenze tra wired e wireless LAN sono: a) la prima cosa che cambia è il concetto di indirizzo di rete. Di solito si asserisce che un indirizzo di rete è la posizione fisica a cui si è collegati; questo porta ad avere una precisa conoscenza dell indirizzo di rete collegato al routing. Un indirizzo di rete è fisicamente collegato ad una rete geografica. Tutto questo non c è nelle reti wireless. b) Una rete wired è abbastanza statica, mentre una rete wireless è dinamica: le macchine cambiano posizione, rete, ecc.; è facile da saturare. Ad esempio non è impossibile che in una sala vi siano varie persone che si collegano alla rete, saturando gli indirizzi IP assegnabili tramite DHCP. c) Una rete wireless di solito non è sempre raggiungibile ed a volte fornisce una connessione limitata. Ogni volta che si perde la rete e la si riacquisisce, le nostre applicazioni che si basano su rete wired, avvertono il cambiamento di stato. L astrazione a livelli, non riesce completamente a nascondere i dettagli fisici, come ad esempio le disconnessioni, non nascondibili soprattutto in applicazioni di streaming. d) I confini della rete non sono certi. La rete LAN ha dei confini molto ben definiti; nel campo wireless il confine non è ben definito e può causare problemi di sicurezza. e) Le reti wireless hanno un elevato error rate. Gli obiettivi progettuali delle reti WLAN sono: semplice modalità operativa: non si vuole una complicata operazione per accedere alla rete; l efficienza dal punto di vista energetico: uno dei trend che si sta seguendo è l'efficienza energetica dei sistemi di calcolo (il livello di consumi energetici dei grandi sistemi di calcolo 26

27 RETI DI CALCOLATORI 2 Capitolo 2 sono estremamente elevati). Nelle apparecchiature mobili il concetto è legato all uso di energia ricavato da batterie; uso di banda disponibile gratuitamente; tolleranza alle interferenze; usabilità globale; sicurezza; safety (la sicurezza riguardante gli esseri umani); Quality of Service; compatibilità con altri protocolli (es.tcp/ip). Architettura Le WLAN possono essere classificate in due tipi: quelle con architetture basate su infrastrutture e reti ad hoc. Le architetture basate su infrastrutture contengono nodi speciali chiamati Access Point (AP) che sono connessi tra loro tramite reti già esistenti. Gli AP possono interagire con i nodi wireless così come con reti wired già esistenti. Un altro tipo di nodi wireless, chiamati mobile station (STA), comunicano tramite gli AP. Le reti ad hoc non necessitano di una infrastruttura fissa. I nodi comunicano direttamente gli uni con gli altri, oppure smistano messaggi agli altri nodi della rete che non sono direttamente accessibili. IEEE IEEE 802 è uno standard su PAN/LAN/MAN. È costituito da una serie di regole relative alle reti che usano packet switching con pacchetti di dimensione variabile. La famiglia di protocolli si occupa dei layer ISO/OSI: data link: suddividendo il protocollo in LLC e MAC. physical. Le stazioni portabili sono stazioni usate in diverse condizioni ma non in movimento. Una stazione mobile può essere utilizzata anche in movimento. In effetti IEEE non tratta diversamente le stazioni dei due tipi: gli effetti di propagazione e di fading fanno apparire stazioni portabili come se fossero mobili. Il Basic Service Set (BSS) è l'insieme dei nodi associati con un Access Point. L'area sotto la copertura dell'ap, nella quale le stazioni possono rimanere in comunicazione, è chiamata Basic Service Area (BSA). 27

28 RETI DI CALCOLATORI 2 Capitolo 2 Le stazioni che fanno parte di un BSS hanno bisogno di essere localizzate all'interno della BSA dal corrispondente AP. I BSS sono connessi per mezzo di un distribution system (DS) per formare una rete estesa. Un DS è costituito da un'infrastruttura di rete già esistente. I BSS, il sistema di distribuzione ed i portali di accesso alla rete wired compongono Extended Service Set (ESS). Il concetto chiave è che una rete ESS appare identica ad un Logical Link Control sublayer. La copertura wireless è fortemente influenzata dalla conformazione del luogo in cui l'utente si trova. Sorgono quindi dei problemi nel definire l'appartenenza sulla base dell'area. Infine nella copertura è importante considerare l'area/volume: i meccanismi di propagazione fanno si che le onde si propaghino anche in verticale e la BSS di un access point non deve essere considerata come un area ma come un volume (es. piani superiori ed inferiori). 28

29 RETI DI CALCOLATORI 2 Capitolo 2 Servizi I servizi offerti da una tipica rete IEEE possono essere divisi in due categorie: 1. i servizi forniti dagli access point: servizi di supporto alla mobilità (associazione, riassociazione, dissociazione) e la distribuzione all interno di un sistema di distribuzione wired; 2. i servizi forniti dalle STA. Il significato dei servizi di supporto alla mobilità è legato a tre concetti: No-transition. BSS-transition: movimento da una BSS in una ESS ad una altra BSS nella stessa ESS. ESS-transition: movimento a diverse ESS. I servizi degli AP forniti dal DS sono: associazione: possibilità di trasmettere un frame ad un STA (sapere a quale AP la data STA è associata). Ad ogni passo una STA non può associare più AP; riassociazione: permette ad una stazione una mobilità da un AP ad un altro; dissociazione: notifica di quando una stazione ha terminato la propria connessione; distribuzione: è il servizio principale delle STA. Viene invocato per ogni frame inviato: se destinato nello stesso BSS allora viene trasmesso direttamente alla destinazione, altrimenti si usa il DS; integrazione: necessario per inviare un frame a reti che non sono appartenenti allo standard IEEE 802. I servizi delle STA, che sono forniti da ogni STA inclusi gli AP, sono: autenticazione: necessaria a livello di link. Questo non pregiudica l uso di autenticazione di protocolli dello stato superiore (end-to-end o user-to-user); deautenticazione: invocata per terminare un'autenticazione esistente; privacy: particolarmente necessaria per facilitare i confini di uno spazio; data delivery: naturalmente IEEE fornisce un modo per trasmettere e ricevere dati. 29

30 RETI DI CALCOLATORI 2 Capitolo 2 Lo stato di un nodo può essere rappresentato con due variabili: associato/autenticato. Si limitano i tipi di frame che possono essere inviati a seconda dello stato in cui il nodo si trova, si possono utilizzare determinati frame per muoversi in vari stati. Le evoluzioni (varianti) del protocollo IEEE sono definite tramite modifiche all interno dello standard: IEEE /a: 54 Mbs a 5Ghz; IEEE /b: 11 Mbs a 2,4 Ghz; IEEE /g: 54 Mbs; IEEE /n: 540 Mbs (in fase di definizione). Layer fisico Il layer fisico prevede 3 diversi mezzi usati: frequency hopping spread spectrum (FHSS) a 2,4 Ghz, con data rate di 1 Mbps usando la modulazione Gaussian frequency shift keying (GFSK) a due livelli, e 2 Mbps usando la GFSK a quattro livelli; 30

31 RETI DI CALCOLATORI 2 Capitolo 2 direct sequence spread spectrum (DSSS) a 2,4 Ghz, con data rate di 1 Mbps usando la modulazione differential binary phase shift keying (DBPSK), e 2 Mbps usando la differential quadrature phase shift keying (DQPSK); infrarossi con lunghezza d onda tra 850 e 950 nm. Il Carrier Sensing è la potenza del segnale rispetto ad una soglia. La decodifica di bit è lenta ma più affidabile. Sorgono diversi problemi quali le interferenze: la banda riservata da IEEE è tipicamente divisa in canali, a seconda delle tecniche di modulazione usate; in FHSS, ad esempio, si usano diversi insiemi di sequenze di hop. Gli AP i cui BSS si sovrappongono devono scegliere canali diversi altrimenti le mutue interferenze peggiorano la qualità del segnale fino ad annullare la copertura; troppi AP creano problemi. Layer MAC È responsabile del multiplexing del canale, particolarmente importante vista la sua natura wireless. Infatti in una rete wireless tutte le comunicazioni vengono fatte in broadcast e la contesa del canale condiviso ha bisogno di essere disciplinato per evitare collisioni. Vi sono 2 tipi di servizio: asincrono e real time. A seconda del tipo di servizio, il coordinamento è compiuto da Distribution Coordination Function (DCF) oppure da un Point Coordination Function (PCF). La DCF si basa su CSMA/CA: random back off time dopo che si trova il canale occupato. Non basta usare la Collision Detection poiché il canale wireless rende difficile il riconoscimento di collisioni dal rumore. Il protocollo ha come obiettivo quello di evitare collisioni appena si libera il canale. La trasmissione avviene ad intervalli dettati da Inter-Frame Spacing (separatori di frame) IFS di quattro tipi (SIFS, FIFS, DIFS, EIFS). Dopo aver sentito libero il canale per DIFS, il nodo inizia a trasmettere (con informazioni sulla durata). Dopo un SIFS, il ricevente manda un ACK. Gli altri nodi aggiornano il loro Network Allocation Vector (NAV) compreso dell ACK+SIFS. Nel momento in cui il canale non è libero, il nodo fa back-off scegliendo un numero a caso tra una finestra che è sempre più ampia (Content Window). Quando il contatore raggiunge zero (si usano valori interi multipli dei tempi di slot di 31

32 RETI DI CALCOLATORI 2 Capitolo 2 trasmissione) allora si può riprovare a trasmettere. Se durante il back off si avverte che il canale è occupato si interrompe il back off e si riprende a contare quando il canale si libera per un DIFS. Con questo accorgimento si permette un uso corretto delle risorse. La dimensione della Contention Window è un parametro molto importante in quanto se è troppo piccola ci sarà un'alta probabilità di collisioni, se è troppo grande è possibile che si creino ritardi inutili nella trasmissione a causa dei tempi di back-off troppo dilatati. Quindi la sua dimensione si raddoppia ad ogni passo (in caso di collisione) e all interno di ogni finestra si sceglie un numero a caso. RTS-CTS Un problema che bisogna trattare con i protocolli wireless è il problema del terminale nascosto (hidden terminal): è possibile che ci siano alcuni nodi che non possono ascoltare altri nodi che fanno parte della rete perché il segnale è al di sotto del valore del rumore e non riescono a comunicare direttamente. In questo caso un nodo può non avvertire che un altro nodo (a lui nascosto) sta trasmettendo, creando così una collisione. Il tutto è risolto attraverso il protocollo RTS-CTS (Request To Send). Supponiamo ci siano tre nodi (A, B, C): A vede B ma non C, B vede sia A che C, C vede solo B. Nel caso A vuole iniziare una comunicazione con B, invia a B un pacchetto RTS (Request To Send) che è una richiesta per inviare una comunicazione successiva. Se non vi è collisione, B risponde con un pacchetto CTS (Clear To Send) che viene ascoltato anche da C. In questo modo anche C, che non aveva ascoltato la RTS di A capisce che il canale è occupato. A aspetta un SIFS ed inizia a trasmettere. Alla fine della comunicazione, B aspetta un altro SIFS ed invia un ACK. I nodi che ricevono il CTS possono essere diversi da quelli che ricevono RTS. Tutti ricevono le informazioni che T/R stanno inviando. Le trasmissioni con RTS-CTS soffrono di un overhead non trascurabile in quanto si deve inviare un RTS, aspettare il CTS per poter inviare i dati. La scelta è quella di non settare RTS-CTS per frame di piccole dimensioni. Viene quindi usata una soglia RTS, sulla dimensione dei frame da inviare, per determinare se il meccanismo RTS-CTS deve partire o meno. Quindi se la dimensione del frame è: 1. sotto la soglia di RTS allora si usa 2 - way handshake (dati + ACK); 2. sopra la soglia di RTS allora si usa 4 way handshake (RTS-CTS-DATA-ACK). 32

33 RETI DI CALCOLATORI 2 Capitolo 2 Macchina degli stati di MAC layer Se un nodo ha un pacchetto da inviare e si trova nello stato iniziale IDLE (INITIAL STATE), allora passa allo stato WAIT_FOR_NAV e controlla il NAV. Se il NAV permette l accesso al canale, passa nello stato WAIT_FOR_DIFS e aspetta un intervallo DIFS. Se dopo il DIFS il canale continua ad essere libero, il nodo passa allo stato BACKING_OFF, altrimenti setta il contatore di back-off, se il suo valore è zero, o lo salva e ritorna allo stato IDLE. Nello stato BACKING_OFF, durante il decremento del back-off, se il nodo si accorge che il canale è occupato, salva il valore di back-off e torna allo stato IDLE. Altrimenti, quando il valore di back-off raggiunge lo zero, si possono verificare tre casi: se il pacchetto è di broadcast, andiamo nello stato TRANSMITTING_BCAST; se la dimensione del frame da inviare è più piccola della soglia RTS, passiamo direttamente allo stato TRANSMITTING_UNICAST; se la dimensione del frame da inviare è più grande della soglia RTS, passiamo allo stato TRANSMITTING_RTS. Una volta giunti nello stato TRANSMITTING_RTS, terminata la trasmissione dell RTS, passiamo nello stato WAITING_FOR_CTS. Giunti in questo stato, se il pacchetto CTS non viene ricevuto entro 33

34 RETI DI CALCOLATORI 2 Capitolo 2 uno specifico intervallo di tempo, si incrementa la Contention Window esponenzialmente fino al massimo valore di CW_MAX, e si ritorna allo stato IDLE; altrimenti si passa allo stato TRANSMITTING_UNICAST. Se il nodo si trova nello stato TRANSMITTING_UNICAST, trasmessi i frame di dati, passa allo stato WAITING_FOR_ACK; se l ACK viene ricevuto, setta la CW a CW_MIN e ritorna nello stato IDLE, altrimenti ritorna direttamente nello stato IDLE. Nel caso in cui si trova nello stato IDLE, riceve un RTS e il NAV consente l accesso al canale, passa allo stato TRANSMITTING_CTS nel quale trasmette il CTS e passa allo stato WAITING_FOR_DATA. Se i dati vengono ricevuti, il nodo passa nello stato TRANSMITTING_ACK ed una volta finita la trasmissione dell ACK, ritorna nello stato IDLE. Se invece i dati non vengono ricevuti, torna direttamente nello stato IDLE. Point Coordination Function (PCF) L obiettivo del PCF è di fornire garanzie sul ritardo massimo dell accesso ed una minima banda di trasmissione. Al contrario di DCF, dove la contesa del mezzo è risolto in una maniera distribuita, PCF lavora eseguendo uno schema centralizzato di risoluzione della contesa ed è applicabile solo in reti dove un AP interroga i nodi nella sua Basic Service Set. Un Point Coordinator (PC) divide il tempo di accesso sull AP in superframe periods (SP). Il SP consiste nell alternanza di Contention Free Periods (CFP) e Contention Period (CP). L IFS usato dal PCF è più piccolo di quello usato dalla DCF. Questo assicura la coesistenza di entrambi i sistemi in una singola rete, in quanto i nodi che fanno parte della DCF, avendo un IFS più grande, vedranno semplicemente il canale occupato durante l esecuzione della PCF. La divisione del tempo di accesso in SP assicura l alternanza di esecuzione dei due meccanismi. Utilizzando un periodo PIFS sarà in grado di utilizzare il mezzo sistematicamente senza che coloro che utilizzano DCF sappiano perché il canale è occupato. Il PC determina quale stazione ha il diritto di trasmette durante i CFP. Un nodo che richiede PCF manda un messaggio di associazione al PC per registrarsi nella sua lista durante il periodo con Contention ed ottiene un Association Identifier (AID). Durante il CFP lavora il PCF, mentre durante il CP lavora la DCF. Il Point Coordinator fa il polling dei nodi in ordine crescente di AID per offrire loro accesso contention free. 34

35 RETI DI CALCOLATORI 2 Capitolo 2 All interno del Basic Service Set (BSS), l AP trasmette un beacon a intervalli quasi regolari. Un beacon è inviato ogni Target Beacon Transmission Time (TBTT) e la sua trasmissione è rimandata se il canale è occupato. Contiene un timestamp usato dal nodo per aggiustare il suo clock e altre informazioni per l ottimizzazione dei consumi ed il roaming. Il PC invia un pacchetto di CF-Poll per chiedere una alla volta alle stazioni in lista di trasmettere, dopo un PIFS in cui la stazione non risponde, passa alla prossima. Se un nodo decide di spedire un MSDU (MAC Service Data Units) ad un nodo e l indirizzo di R non è registrato presso il PC, gli ACK verranno spediti nel CP. Alla fine il PC termina il CFP inviando un pacchetto di CF-End. Se alla scadenza del CP, il canale è occupato, l inizio del CFP viene ritardato. La lunghezza del CFP è indicata nel beacon. Le limitazioni di PCF per il real-time Le trasmissioni real-time hanno una precisa scadenza entro la quale deve essere terminata la comunicazione. La PCF non riesce ad assicurare il tempo reale per l' impredicibilità del ritardo: se il medium è busy a TBTT allora attende; i tempi di uso delle stazioni in CFP non sono noti; in caso di frammentazione, questa ha priorità nel DCF facendo slittare l inizio del successivo PCF. Ci sono altri meccanismi di real-time per garantire la QoS. Frammentazione Poiché il tasso di errore su wireless è maggiore su wired, per decrementarlo viene diminuita la dimensione dei frame. È strategia tipica di dividere il MAC Service Data Units (MSDU) in frammenti di dimensioni più piccole portando una minore probabilità di errore e minore tempo per la ritrasmissione. Per assicurare la priorità della trasmissione di frammenti dello stesso MSDU, tra la ricezione dell ACK e l invio del frammento successivo, si aspetta un SIFS. Nel caso in cui il frammento trasmesso è l ultimo dell MSDU, per inviare un frammento di una successiva MSDU, il nodo deve rieseguire la procedura di back-off. 35

36 RETI DI CALCOLATORI 2 Capitolo 2 A causa del fragment burst (processo di invio di frammenti multipli dopo la contesa del canale) il DCF può ridurre più di quanto preventivato l inizio del CF Period del superframe successivo. Gestione energia La gestione dell'energia è una delle problematiche più importanti da gestire in campo wireless. Quando non è necessario restare in ascolto sul canale deve essere possibile spegnere il dispositivo, in maniera trasparente ai protocolli esistenti. È possibile avere nodi in stati di sleep/awake. Periodi lunghi di sleep rendono basso il throughput: il trasmittente attende che si svegli il ricevente prima di iniziare a trasmettere e quindi si ha la necessità di buffering. Periodi di sleep brevi richiedono molta energia. Roaming Quando un nodo si trova coperto da più BSS contemporaneamente, si cerca di fornire roaming per permettere di continuare la trasmissione senza interruzioni. Quando il link attuale degrada di prestazioni, il nodo cerca un altro AP (scanning). Lo scanning può essere fatto il 2 modi: attivo: si effettua un probe su ogni canale ed aspetta una risposta; passivo: si resta in stato di ascolto allo scopo di individuare nuove reti. Sicurezza La sicurezza in ambito wireless è uno dei problemi fondamentali di cui bisogna tener conto. Gli obiettivi fondamentali sono: Riservatezza: è necessario impedire che si possano intercettare i dati trasmessi attraverso il canale. Controllo degli accessi: l accesso alla rete deve essere consentito solamente agli host autorizzati. Integrità dei dati: si deve evitare che si possano manomettere i dati. Wired-Equivalent Privacy (WEP) è un protocollo descritto direttamente nello standard che prometteva di rendere il wireless sicuro come il wired: la promessa non è stata del tutto mantenuta. Assume l'esistenza di un gestore di chiavi esterno che si occupa di distribuire la sequenza di chiavi usata da chi trasmette. La chiave segreta viene concatenata con un vettore di inizializzazione (IV) ed il risultato dato in input ad un generatore di numeri pseudocasuali, basato su RC4. Viene poi calcolato lo XOR tra il testo in chiaro, accompagnato da un valore per il controllo dell'integrità 36

37 RETI DI CALCOLATORI 2 Capitolo 2 (ICV), e il numero pseudocasuale generato prima. Il risultato di questa operazione, insieme al vettore di inizializzazione forma il ciphertext. Gli obiettivi dovevano essere garantiti dall'uso di RC4 e di una chiave segreta, ma il protocollo fu subito rotto. La debolezza era nell uso dello stesso keystream: la codifica di due messaggi con la stessa chiave (IV + chiave segreta) rivela informazioni riguardo entrambi i messaggi. Inoltre vi erano dei problemi implementativi dovuti alla mancanza di regole precise per la creazione del IV; infine con un IV a 24 bit, un access point esaurisce tutti i possibili valori velocemente. Altre proposte sono: TKIP: modifica del controllo di integrità con Message Integrity Code (usa una chiave a 64 bit, indirizzo fisico della scheda, indirizzo destinatario, ecc). È stato creato per supplire al WEP e renderlo più sicuro; WPA: si affida a TKIP per la codifica dei messaggi, per l autenticazione a EAP (autenticazione a strati superiori). PAN Le PAN principalmente non sono basate su infrastrutture e permettono la comunicazione diretta, all interno dello spazio di interesse per il singolo utente (personal). Alcuni requisiti di una soluzione tecnologica per WPAN sono: basso consumo; range limitato; modalità inclusa nel modello. Gli obiettivi di una PAN sono: sostituzione dei cavi utilizzati per connettere periferiche, quindi tecnologia low-cost, universale, user-friendly; interfaccia uniforme per accedere ai sevizi sia per i dati che per voice. Il personal gateway funge, appunto, da gateway per servizi particolarmente evoluti; ad-hoc networking che consiste nella connettività per lo scambio di dati senza l utilizzo di infrastrutture (connettività inferita dalla prossimità). Le differenze tra PAN e WAN/LAN sono: WAN/LAN offrono connettività basata su una infrastruttura per offrire servizi di qualità, complessità che richiede molta banda; PAN non richiedono alcuna infrastruttura. Si ha la necessità di un diverso approccio verso l utente con la facilità di uso di fondamentale importanza. Bluetooth Il progetto iniziò nel 1994 da Ericsson; successivamente venne creato un consorzio di aziende con IBM, Intel, Nokia, Motorola ecc. Nel , IEEE accettò Bluetooth come specifica per IEEE Specifiche di Bluetooth Bluetooth si divide in due livelli: Core: Data link e physical layer. 37

38 RETI DI CALCOLATORI 2 Capitolo 2 Profiles: Applicazioni Bluetooth in 13 profili diversi. Transport Protocol Group Costituisce l insieme dei protocolli che permettono la localizzazione, l'identificazione di periferiche Bluetooth, la creazione, configurazione e gestione delle connessioni. Nel Radio Layer si stabilisce la banda di utilizzo: ISM 2,4 Ghz con Gaussian Frequency Shift Keying e con multiplex Frequency Hopping su m canali di 1 Mhz. Per limitare il consumo di energia ci sono dei limiti sulla potenza dell'antenna: classe 1: 100 mw (>100 m); classe 2: 2,5 mw (~10 m); classe 3: 1 mw (~1 m). Il Frequency Hopping è costituito da 79 canali da 2,4 Ghz a 2,480 Ghz. Il Baseband Layer si occupa della selezione della frequenza, della connessione e del MAC. Le comunicazioni Bluetooth avvengono in una Piconet. Viene utilizzato un indirizzo di 48 bit (lower part dell'indirizzo interno) ed ogni periferica Bluetooth ha un clock a 28 bit, ossia 3200 tick al secondo, quindi ogni 2 tick c è uno slot di FH. Una Piconet è organizzata su una struttura master/slave; l iniziatore è il master e può essere composta da al più 7 membri. Altri elementi possono far parte di una Piconet ma in stato Parked (non attivo) e i nodi possono partecipare a diverse Piconet con diversi ruoli. La costruzione della rete avviene tramite un automa. Varie Piconet possono essere interconnesse tra loro formando una Scatternet, ma a livello del protocollo non viene fornito il routing che deve essere gestito dall'applicazione. Possono sorgere problemi di temporizzazione in quanto un nodo master in una Piconet, viene distratto dal dover compiere compiti da slave su un altra. Gli stati di un nodo possono essere divisi in 4 categorie: non connesso; in stato di connessione; attivi; stati per basso consumo di energia. Per canale di comunicazione, ogni nodo usa un modulo di selezione di frequenza che sceglie la serie di frequenze da utilizzare. Il canale viene suddiviso in slot da 625 microsecondi; per la 38

39 RETI DI CALCOLATORI 2 Capitolo 2 comunicazione master/slave viene utilizzata una Time Division Duplex: il master trasmette negli slot pari, lo slave invece quelli dispari; la parità di slot è determinata dall ultimo bit del suo clock. Uno slave trasmette solo se interrogato. In ogni slot è possibile trasmettere un solo pacchetto, identificato dall'identità del master della Piconet e permette una semplice risoluzione dei conflitti. Ogni pacchetto è composto da un header (3 bit dell'indirizzo dello slave più un bit di ACK/NACK), 4 bit per stabilire il tipo di payload, 8 bit per il controllo dell'errore nell'header, payload (1,3,5 slot). Il tipo di link è Asynchronous Connection Link. La fase di inquiry serve per scoprire periferiche Bluetooth nelle vicinanze. Lo stato inquiry si suddivide in: inquiry: si invia un pacchetto su frequenze note; inquiry scan: si verificano se sono arrivati inquiry da parte di qualche altra device; inquiry response: risposta allo scan con l indirizzo del nodo che risponde (random delay per la gestione delle collisioni). Nella fase di page si trasmette l invito a partecipare alla Piconet; sono inviabili a nodi noti. Lo stato page si suddivide in: page: il master stima il clock dello slave per sapere la sua frequenza di hopping (+/- 1); page scan: un potenziale slave attende informazioni; page response: uno slave contattato risponde; il master informa lo slave del suo indirizzo e clock. Il link manager protocol ha la funzione di gestire l'energia e la sicurezza. La gestione del risparmio energetico è un concetto fondamentale. Durante la connessione si cambia stato per risparmiare energia (o slot piconet). Dallo stato Active può passare nello stato di Sniff dove il link manager protocol del master invia allo slave la richiesta di dormire per un certo tempo e risvegliarsi. Nello stato di Hold lo slave non supporta Asynch e nello stato Parked il master assegna un codice a 8 bit di park. Per risvegliare un nodo Parked i messaggi vanno in broadcast (address a 0). L'host controller interface è opzionale. È usato per l'accesso all'hardware 39

40 RETI DI CALCOLATORI 2 Capitolo 2 Nel logical link control and adaptation si effettua il multiplexing per applicazioni diverse, ognuna pensa di essere la sola ad usare la device Bluetooth. Segmenta i pacchetti provenienti dal livello superiore per il Baseband layer gestendo le caratteristiche di ciascuna delle applicazioni e fornendo QoS (banda, latenza, ritardo). Middleware Offre interfacce standard alle applicazioni. RFCOMM: porta seriale virtuale; Service Discovery Protocol: scopre i servizi offerti da altre periferiche; IrDA interoperability protocol; telephony control specification; audio. Profili I profili di Bluetooth specificano le categorie di applicazioni che possono usare questa tecnologia; è una specifica inusuale per un protocollo standard. Vi sono 13 profili e 4 categorie: Generic Access Profile usa SDF per scoprire i servizi offerti; Telephony Profiles: profili per telefonini; Networking Profiles; Serial e Object Excange Profiles. Conclusioni Bluetooth è una tecnologia di successo notevole ma senza ubiquità. Alcuni problemi che l'affliggono sono: 1. niente supporto per il routing; 2. niente supporto per handoff; 3. collo di bottiglia sul master; 4. condivisione frequenze con IEEE b e forni microonde; 5. specifiche non formali (definite all'inizio come consorzio): problemi di compatibilità. Sono state apportate delle modifiche (Bluetooth 2.0) e si sta effettuando uno studio per l uso di UltraWideBand per ampliare la copertura e il data rate. Con antenne, si raggiungono anche 1,78 Km. È utilizzato anche da ladri che usano telefoni bluetooth per scoprire oggetti presenti nelle automobili, ecc. HomeRF Ha come obiettivo quello di integrare sistemi Home e sistemi di telefonia. Lavora su ISM band da 1,6 Mhz e fornisce servizi di QoS per servizi locali e la consegna best effort per il traffico dati. Una tipica rete HomeRF consiste di Resource Provider e periferiche a loro connesse. Usa Shared Wireless Access Protocol derivato da IEEE Ha uno schema per il controllo dell accesso TDMA/CSMA e può supportare fino a 127 periferiche, ognuna identificata da una sequenza di 48 bit. Per quanto riguarda la sicurezza, usa l algoritmo Bluefish per cifrare la comunicazione. 40

41 RETI DI CALCOLATORI 2 Capitolo 2 IrDA (infrarossi) Usa la regione infrarossi dello spettro visibile, è sensibile agli ostacoli, ha un range limitato ad 1 metro e ha un basso consumo di energia. Ha un data rate alto ossia 4,8 Mbit ed un basso costo di produzione. Abbastanza diffuso. 41

42 RETI DI CALCOLATORI 2 Capitolo 3 CAPITOLO 3 - RETI CELLULARI Introduzione I protocolli wireless sono stati presentati in modo semplicistico, estendendo il discorso wireless su WAN e MAN verrà presentato tutto ciò che riguarda il Wireless in Local Loop (WLL) e le reti cellulari. Nel 1910, Ericsson realizzò il primo telefono mobile non wireless. Successivamente vi furono le prime forme di comunicazione con onde radio, ma la vera nascita del telefono cellulare fu il 3 aprile 1973 da parte di Motorola. L'inventore fece la prima chiamata al suo rivale. L apparecchio si presentava con un autonomia bassa (35 min), dal peso di 1 Kg, costo elevato (3500$) e tempo di ricarica molto elevato (10 h). Strutture delle celle Concetto inventato da AT&T negli anni 50 con l obiettivo di un uso ottimizzato delle frequenze a disposizione tramite la condivisione della banda tra più utenti possibili, senza che nessuno potesse ledere gli altri. La tecnica consiste nel suddividere l'area da ricoprire con celle di forma esagonale. Questa forma ricopre il piano, come quadrati e triangoli, ma con maggiore approssimazione della forma circolare della copertura del segnale. L'antenna Base Station (BS) è localizzata al centro della area esagonale. Le frequenze disponibili sono usate per l uplink, comunicazione dal Mobile Terminal (MT) alla BS, e il downlink per la comunicazione dalla BS ai MT. Il concetto fondamentale è il riuso delle frequenze. Questo è possibile in quanto la potenza dell onda elettromagnetica è attenuata con la distanza e ogni BS viene tarata in maniera che i propri segnali non siano percepibili ad altre BS e non creino interferenze. Un cluster è un insieme di celle che usa l intero spettro a disposizione, le celle nello stesso cluster usano le frequenze a disposizione in modo tale da non creare interferenza. Aumentando il numero di celle, è possibile permettere la connessione contemporanea di un numero maggiore di utenti. Naturalmente aumentare questo numero comporta un incremento dei costi. Quindi il problema è quello di cercare di comprendere fino a quando si può aumentare il numero di celle mantenendo i costi ragionevoli. Il numero n di utenti contemporanei si basa su: S: spettro totale a disposizione (Es. 25 Mhz); W: banda necessaria per ogni utente (Es. 30 Khz); 42

43 RETI DI CALCOLATORI 2 Capitolo 3 N: dimensione cluster (Es. 7 celle); k: numero delle celle necessarie per ricoprire un area (Es. 20); Analizzando l esempio, ogni cella può supportare (25000 Khz / 30 Khz) = 833 utenti. Se la città è divisa in celle esagonali con 7 celle per ogni cluster, solo 1/7 dello spettro è disponibile in ogni cella, che perciò può supportare 119 utenti. Quindi se ci sono 20 celle nella città, il sistema può supportare 2380 utenti contemporaneamente. In generale le frequenze a disposizione per cella sono e il numero di utenti massimo per cella è In totale se k sono le celle, il numero di utenti è Per aumentare il numero di utenti, si può cercare di aumentare il numero di celle o ampliare lo spettro, oppure dall altra parte diminuire la banda necessaria per ogni utente o la dimensione delle celle. Ciò che realmente accade, è che viene variato il valore di k, ossia il numero di celle. Il numero di celle per cluster è dato dalla relazione : Dove i e j sono interi non negativi. Il cluster più piccolo si ottiene con i=j=1 Fattore di riuso: d (distanza) su R (raggio celle): frequenze. ci dice quanto si è efficienti nel riutilizzare le Aumento della capacità Per aumentare la capacità di utenza, bisogna attuare la tecnica cell splitting. In certe aree (hotspots) la capacità deve essere aumentata poiché vi è un'alta richiesta di accesso al servizio di comunicazione. Al fine di assicurare vincoli di QoS, la probabilità di intasamento in un hotspot deve essere molto basso. L idea è di avere celle di dimensioni diverse: macrocelle (intorno alle decina di Km), microcelle (meno di 1 Km), picocelle (pochi metri); posso avere dei layer di celle ossia avere delle macrocelle al cui interno ci sono delle microcelle ognuna delle quali all interno ha delle picocelle. Ogni cella gestisce una particolare frequenza. La suddivisione in layer è necessaria per assicurare la mobilità: 43

44 RETI DI CALCOLATORI 2 Capitolo 3 utenti lenti vengono gestiti da microcelle mentre utenti veloci vengono gestiti da macrocelle in modo tale da diminuire gli handoff (trasferimenti da una cella ad un'altra). L introduzione di micro o pico celle aumenta il numero di canali negli hotspot e permette quindi una migliore gestione delle frequenze. Questa flessibilità nella gestione delle frequenze permette l incremento delle capacità. Settorizzazione e Gestione della potenza Le tecniche per l ottimizzazione sono due: 1. la settorizzazione: ossia l uso di Space Division Multiple Access. Le antenne settorizzano il segnale che inviano dividendo la cella coperta in settori che possono comunicare con la stessa frequenza senza interferenze. Una cella è partizionata normalmente in 3 settori da 120 oppure 6 da 60. Questo riduce le interferenze e favorisce un maggiore riuso delle frequenze e una maggiore capacità delle reti, ovvero aumenta il numero di utenti contemporanei possibili; 2. gestione della potenza: per evitare interferenze dovute a segnali eccessivamente potenti che invadono settori adiacenti, ogni BS informa il MT di usare solo la potenza necessaria per poterlo raggiungere risparmiando le batterie. Allocazione dei canali L'allocazione efficiente dei canali alle varie celle può migliorare in modo considerevole il throughput della rete, in termini di numero di chiamate gestibili con successo. Per poter gestire i canali da allocare all interno delle BS ci sono 3 strategie: Statica: allocazione a priori dei canali per cella. È previsto un meccanismo di prestito di frequenze tra celle adiacenti per risolvere picchi di carico; si può però creare il fenomeno del channel docking che consiste nell'impossibilità a prestare frequenze. È necessaria un analisi/previsione dell uso ragionevole dei MT in ogni area (a volte non possibili a causa di eventi straordinari). Dinamica: l'allocazione dei canali viene effettuata in modo dinamico da un sistema centralizzato. Questa strategia consente una estrema flessibilità, ma presenta un collo di bottiglia nell'entità centrale. Ibrida: esistono due insiemi di canali per ogni cella: canali fissi e un set di canali prestabili. 44

45 RETI DI CALCOLATORI 2 Capitolo 3 Handoff La rete deve essere progettata per trattare la mobilità di un utente; quando si muove da un'area coperta da una BS ad una adiacente coperta da un'altra BS è necessario eseguire la procedura di handoff (handover). Deve essere fatto velocemente senza che l utente se ne accorga, per fare ciò si deve minimizzare il numero degli handoff. Alcune problematiche nell handoff: selezione della BS ottimale : poiché vicino non significa che la BS offre la migliore potenza del segnale; effetto ping-pong : fenomeno che si verifica ai bordi delle aree in cui ci possono essere più BS raggiungibili; il MT a causa di interferenze può collegarsi in modo alternato alle due BS causando continui handoff; ad esempio, un utente si ritrova a fare continuo handoff tra due BS perché ogni volta c è una BS che viene considerata migliore, questo avviene per effetto del fading (fluttuazione del segnale). perdita di dati nell handoff, che può essere anche accettata durante una conversazione vocale ma può causare seri problemi per la trasmissione dati; politica di gestione dell handoff : da parte della BS, del MT oppure da entrambi (mobileassisted). In quest'ultimo caso, l handoff viene gestito dalla BS tenendo conto della valutazione del segnale fatta dal MT che ha l informazione precisa della situazione delle altre celle. Misure di qualità dell handoff: ritardo dell handoff : la segnalazione di handoff causa un ritardo nel trasferimento di una chiamata dalla cella corrente ad una nuova cella. Se il ritardo è eccessivo la chiamata si può interrompere; durata delle interruzioni: in caso di hard handoff, dove il collegamento con la vecchia BS viene cancellato e per continuare la chiamata viene usato il collegamento con la nuova BS, si può avvertire una breve interruzione che si deve rendere più breve possibile; rate di successo dell handoff : le strategie di handoff devono massimizzare il numero di handoff che vanno a buon fine, allo scopo di fornire il miglior servizio possibile; probabilità di handoff non necessario : si deve minimizzare il numero di questi handoff, che possono creare l'effetto ping-pong; Strategie di miglioramento dell handoff: priorità : viene data una priorità maggiore, nell'assegnazione delle frequenze, agli handoff in arrivo a scapito delle richieste di nuove chiamate; calcolo della potenza del segnale relativa : necessario un ritardo (isteresi) nel riconoscimento di una BS con maggiore potenza (per evitare il ping-pong) ed è necessaria una inerzia (dwell-time) prima di riconosce un utente nella cella e affidargli una coppia di frequenze. Questa tecnica prevede che l handoff inizi quando si è ragionevolmente sicuri della direzione del MT e dalla stabilità della BS, aspettando un po' di tempo da quando si inizia ad ascoltare la nuova BS ; uso di soft handoff, che è una sorta di periodo di prova in cui due BS servono il MT ed è necessario che il MT sia capace di gestire contemporaneamente più frequenze. Si attende 45

46 RETI DI CALCOLATORI 2 Capitolo 3 che il MT (mobile terminal) si liberi dall handoff sul nuovo canale prima di chiudere il canale vecchio. La comunicazione viene passata sul nuovo canale quando questo è stabile e solo a questo punto si chiude il canale vecchio. Nell hard handoff fa partire prima la comunicazione nuova e appena la si apre si chiude la vecchia; handoff predittivi : è una tecnica di predizione sul movimento del MT (strade, montagne, aerei, ecc.); handoff adattivi : prevede lo shift di livello delle celle a seconda del tipo di mobilità. Architettura L architettura di una rete cellulare si compone dalla seguenti entità: a) Mobile Switching Center (MSC): interfaccia fra rete mobile e rete telefonica fissa; b) Authentication Center (AuC); c) Equipment Identity Register (EIR): associa utente a SIM; d) Home Location Register (HLR): profilo utente (sms, ecc), credito, etc; e) Visitor Locator Register (VLR): gestisce i dati in roaming (utenti in visita). Ogni cella ha una BS alla quale tutti i MT nella cella trasmettono. Le celle sono connesse ad un mobile switching center (MSC) che coordina una certa quantità di celle. Il MSC fa da interfaccia tra cellular radio system e il Public Switched Telephone Network (PSTN). I MSC interagiscono con 4 entità (come sopra elencate): Authentication Center (AUC): verifica l identità dei MT mediante un Equipment Identity Register (EIR); ogni utente ha associato un Home Locator Register (HLR) che contiene i profili utente (sms, ecc), credito, etc; il Visitor Locator Register (VLR): contiene informazioni riguardo al roaming degli utenti nelle celle. La registrazione di un MT ad una nuova cella comporta l aggiornamento del suo HLR e dei VLR della cella vecchia e della cella nuova. Illustrazione 1: Grande Umberto! 46

47 RETI DI CALCOLATORI 2 Capitolo 3 MOBILITÀ Due sono i tipi di mobilità nei sistemi cellulari: mobilità a piccolo raggio: necessaria per passare da BS a BS (handoff) mobilità in larga scala: roaming. Handoff Ci sono diversi tipi di handoff: 1. Mobile controlled (es. DECT): il MT controlla il segnale ed inizia l handoff quando i criteri sono verificati. 2. Network controlled (es. AMPS): le BS intorno al MT misurano il suo segnale e l handoff inizia quando le infrastrutture verificano i criteri. 3. Mobile assisted (es GSM): il controllo dell'handoff è nella mani della BS, ma il MT fornisce valutazioni del segnale. Inter-BS handoff: quando le BS sono all interno dello stesso MSC. I passi da seguire sono: 1. il MT si accorge della necessità di effettuare un handoff, sospende temporaneamente la conversazione e segnala su un canale idle ad una nuova BS tale necessità; 2. alla ricezione del segnale, il MSC trasferisce le informazioni sul collegamento alla nuova BS; inoltre gestisce il passaggio dal vecchio al nuovo canale informando il MT quando dovrà trasferirsi ; 3. una volta che il MT è passato alla nuova BS, segnala il trasferimento alla rete e riprende la conversazione sul nuovo canale; 4. alla ricezione del segnale di completamento dell'handoff, l'msc rimuove il ponte tra il nuovo ed il vecchio canale e rilascia le risorse allocate sulla vecchia BS. Intersystem handoff: quando la nuova BS e la vecchia BS sono collegate attraverso diversi MSC (MSC1, MSC2); i passi sono: 1. MSC1 richiede a MSC2 di iniziare l'handoff; MSC2 trova una BS con canali liberi e potenza sufficiente a raggiungere il MT e restituisce le valutazioni della qualità del segnale a MSC1; 2. MSC1 controlla se il MT ha effettuato troppi handoff e se il trasferimento intersystem è disponibile; MSC1 chiede a MSC2 di settare un nuovo canale; trovata la BS, MSC2 chiede a MSC1 di iniziare il trasferimento; 3. MSC1 manda al MT un segnale di handoff; il MT cerca di sincronizzarsi con la nuova BS individuata da MSC2; dopo che il collegamento è avvenuto, MSC2 informa MSC1 che l'handoff è andato a buon fine; MSC1 memorizza che il MT è passato a MSC2 e termina l'handoff. Il routing delle chiamate prevede che il primo MSC visitato da un MT è detto àncora : qualsiasi chiamata in arrivo al MT passerà attraverso l àncora. Il MSC àncora conosce l'attuale MSC del MT a cui passerà la gestione della chiamata. Ogni cambiamento di MSC da parte del MT dovrà essere comunicata al MSC àncora. Roaming Il roaming ha come obiettivo quello di assicurare la mobilità a lungo raggio. È costituito da 2 operazioni di base: 1. Registrazione: il MT informa il sistema della sua posizione; 47

48 RETI DI CALCOLATORI 2 Capitolo 3 2. Location tracking: il sistema localizza il MT. È una strategia a 2 livelli, comune a standard quali GSM e IS-41. I due livelli di base sono: 1. Home Location Register (HLR): registra la presenza di un MT e conserva informazioni del tipo: numero, profilo, posizione corrente, periodo di validità. 2. Visitor Location Register (VLR): registra le informazioni di MT ospiti, provenienti da altre reti; informa il HLR della nuova posizione del MT. Quando un utente si muove da un sistema visitato ad un altro, viene registrato sul VLR del nuovo sistema. Il nuovo VLR informa HLR della nuova posizione dell utente; HLR invia un ACK di conferma ed aggiorna le informazioni del MT. Il nuovo VLR invia al MT una conferma della registrazione. HLR informa il vecchio VLR che il MT non è più sotto la sua copertura; il VLR invia un ACK di conferma dell'avvenuta deregistrazione. Per chiamare dal MT un telefono fisso: Il MT contatta il MSC nella rete; MSC contatta ed ottiene l autorizzazione da VLR e poi setta la chiamata verso PSTN. Per chiamare da un fisso un MT: La chiamata viene inoltrata ad uno switch del PSTN......che contatta l HLR del MT per ottenere il VLR corrente; il VLR restituisce un indirizzo raggiungibile allo switch originario attraverso l'hlr; basandosi su quest'indirizzo, viene settata una connessione tra lo switch ed il MT attraverso il MSC della rete visitata. ESEMPI DI SISTEMI CELLULARI Prima Generazione La prima implementazione del concetto di cellulare costituisce i sistemi di prima generazione (1G). Questi sistemi, come l'advanced Mobile Phone System (AMPS) negli USA e il Nordic Mobile Telephony (NMT) in Europa, sono analogici. 48

49 RETI DI CALCOLATORI 2 Capitolo 3 AMPS AMPS divide la parte a 800Mhz dello spettro delle frequenze in numerosi canali, ognuno di 30 KHz. La struttura usa un cluster di dimensione 7 ed ogni cella copre un raggio di Km. Usa 832 canali full duplex con FDM per separare i canali di downlink dall'uplink. Esistono categorie particolari di canali, come canali di controllo, di paging, accesso e trasferimento dati. Il MT aggiorna la BS della sua posizione ogni 15 minuti. Al fine di conservare la batteria, il MT entra in un periodo di sleep quando non è impegnato per 46.3 ms. Le comunicazioni tra BS e MT (accensione, registrazione, cambiamento di posizione) avvengono in broadcast. Questo sistema ha una bassa qualità del servizio, in un momento di picco di traffico il numero di chiamate bloccate è dell'ordine del 2%. Seconda Generazione I problemi dei sistemi di prima generazione sono i seguenti: 1. sistemi analogici: nessuna crittografia possibile sulla trasmissione analogica; 2. qualità bassa: nessun codice per la correzione di errore veniva applicato; 3. uso inefficiente della banda: non è possibile la condivisione in multiplexing (time o frequency), non è possibile la compressione. Basandosi su questi limiti e difetti evidenti dei sistemi di prima generazione, sono stati progettati i sistemi di seconda generazione, il cui esempio più diffuso è senza dubbio la rete GSM. Costituisce il vero salto di qualità nell'ambito della comunicazione cellulare in quanto si passa dall analogico al digitale. È il primo standard (de-facto) che si impone in maniera netta sulle altre tecnologie ma soprattutto è in vita ancora oggi (alcuni paesi in via di sviluppo passano direttamente alla rete GSM senza passare per il telefono wired risparmiando molti soldi). Altri esempio di sistemi di seconda generazione sono: digital-amps negli USA; Personal Digital Cellular (PDC) in Giappone. GSM (Global System for Mobile communication) È uno standard aperto ed interoperabile che usa 4 varianti di frequenze di utilizzo: 900MHz (riusa lo spettro dedicato alle trasmissioni analogiche in Europa per il Total Access Communication System (TACS)); 1800MHz (specifico del GSM in Europa); 1900MHz (usata negli USA per numerose reti digitali); 450MHz (ultima variante per rimpiazzare vecchie reti analogiche). Lo schema di modulazione usato è il GMSK (Gaussian Minimum Shift Keying) con FDM per il duplexing. I canali duplex sono separati da 45 MHz. Ogni canale è di 200 KHz. Tra i frame inviati e quelli ricevuti c'è un shift di 3 time slot (il ricevitore non deve inviare e ricevere nello stesso tempo). Usa l adaptive frame alignment per la sincronizzazione tra BS e MT che si basa sul ritardo riscontrato dalla BS nelle comunicazioni verso il MT. Se la BS si accorge che il MT è molto lontano, la trasmissione inizia in anticipo per far si che i frame arrivino nel momento in cui il MT se li aspetta. Ogni canale fisico è diviso in 8 time slot, condivisi tra 8 utenti (canali logici) con TDMA. Ogni slot include: header e footer (spazio libero all'inizio ed alla fine dello slot per separare uno 49

50 RETI DI CALCOLATORI 2 Capitolo 3 slot dai vicini ed evitare gli effetti del ritardo di propagazione per una distanza fino a 35 km dalla BS), training sequence (per aiutare un ricevitore bloccato sullo slot), stealing bit (per identificare la portante), payload (traffico voce/dati). Ogni 24 frame uno è riservato per segnali ed uno per altro tipo di traffico (SMS, identificazione chiamate); 8 slot compongono un frame TDM, 26 frame TDM compongono un multiframe. I canali di controllo sono classificati in tre categorie: Broadcast Control Channel: canale di downlink che contiene l'id della BS e lo stato del canale. Usato dai MT per controllare se sono entrati in una nuova cella. Dedicated Control Channel: usato per il call setup, aggiornamenti della posizione, gestione della chiamata; usata dalla BS per riconoscere i MT che sono coperti. Common Control Channel: paging downlink (chiamate in arrivo), random access channel (chiamate in uscita), access grant channel (allocazione del canale per la chiamata). Ad ogni MT viene assegnato uno slot in ogni frame (34 Kbps). Con il GSM è stato introdotto il concetto di SIM (Subscriber Identity Module). I sistemi cellulari furono progettati principalmente per supportare solo chiamate vocali. L'utilizzo di questi sistemi per la trasmissione dati deve quindi affrontare diverse problematiche: distorsione del segnale: i compressori del segnale audio del parlato funzionano male con dati (nessuna ridondanza); ritardi ed errori dovuti all'handoff; interfaccia con la rete telefonica tradizionale: necessario differenziare chiamate dati da voce per i modem. Da GSM ci si sposta verso la generazione 2,5 con un evoluzione di servizi per trasmissione dati quali: HSCSD, che è un upgrade di GSM con 8 slot TDMA allocati per un utente, GPRS: 8 slot TDMA allocati per un utente e basato su packet switching (non circuit come HSCSD). EDGE: differente modulazione del segnale, invece di 2-GSMK usa 8 PSK e differenti schemi di modulazione. Terza Generazione Con la terza generazione (3G) ci si pone l obiettivo di: servizi ubiqui, accessibili con QoS, forniti da un network intelligente. Fornisce una velocità elevata (2 Mbps e oltre) permettendo l'accesso a dati multimediali. Sono stati introdotti alcuni standard quali: W-CDMA (UMTS) in Europa; W-CDMA (DoCoMo) in Giappone; cdma2000 e UWC-136 negli USA. La progettazione di questi sistemi iniziò nel 1992 con la previsione che tutto dovesse essere completo per il Il data rate previsto era di 2000 Kbps a 2000MHz, ma il tutto non è stato rispettato. UMTS si basa su Wideband CDMA, con una portante a 5 Mhz, interoperabile con GSM. Consente un handoff trasparente da UMTS e GSM, non il contrario, mentre il roaming è trasparente nei 2 sensi. Usa due canali a 5 Mhz, uno per la trasmissione (1000 Mhz) e uno per la ricezione (

51 RETI DI CALCOLATORI 2 Capitolo 3 Mhz). È stata parzialmente ritardata nel deployment a causa dei costi per le licenze, problemi su allocazione di banda, promesse di prestazioni del W-CDMA non mantenute facilmente. WIRELESS IN LOCAL LOOP (WLL) Nei sistemi cellulari, la mobilità è il fattore più importante che influenza la progettazione delle reti. WLL, invece, è riferito allo scenario della mobilità limitata. La capacità che ci permette di effettuare una chiamata iniziandola a Roma e terminandola a Napoli, è di elevata complessità. Local Loop è il circuito dell ultimo miglio che connette l utente finale e Public Switch Telephone Network. Comunemente usata la connessione in rame essendo le fibre ottiche ancora una tecnologia troppo costosa. È utile in vari contesti: Extraurbani: come raggiungere in maniera economica aree rurali, disperse che non giustificano investimenti di reti wired Aree urbane: aggiungere banda in modo semplice e veloce. WLL ha molti vantaggi sia per i subscribers che per i service provider. La progettazione di WLL è molto semplice e può essere estesa per soddisfare la crescente domanda dei clienti. WLL offre un ampia gamma di servizi che vanno dalla telefonia di base alla navigazione su Internet. Deve soddisfare i requisiti di QoS per competere con le tecnologie di trasmissione più efficienti che viaggiano sul doppino telefonico come gli ISDN ed DSL. Il consumo di potenza dei terminali deve essere bassa poiché sono alimentati da batterie. Deve supportare autenticazione e crittografia per assicurare sicurezza e privacy. L architettura di WLL L architettura di un sistema WLL è più o meno simile a quella di un sistema cellulare; è costituita da: BS implementata da in Base Transceiver Station System (BTS) e Base Station Controller (BSC). La BTS esegue codifica del canale, modulazione, demodulazione e implementa l interfaccia radio per trasmettere e ricevere segnali radio. La BSC controlla una o più BTS e fornisce ad esse un interfaccia per il Local Exchange. Fixed Subscriber Unit (FSU): fornisce interfaccia tra la rete locale wired dell utente in rete WLL. Esegue tutte le funzioni del physical e data link layer dalla parte del subscriber. 51

52 RETI DI CALCOLATORI 2 Capitolo 3 Le tecnologie WLL La tecnologia WLL è alla intersezione tra cellulari e cordless. I sistemi WLL basati su Cordless hanno uno short range (100 metri) ed inoltre sono economici affidabili e con un basso ritardo. Il range può essere anche aumentato usando dei point to point a microonde dove i segnali radio sono convertiti in microonde e riconvertiti prima di giungere al terminale. Le tecnologie usate sono : DECT: supporta la mobilità a piedi 10 Km/h e allocazione dinamica del canale e 120 canali in duplex. PACS: Personal Access Communication System PHS: Personal Handyphone System Un altro sistema che ha avuto molto successo è il sistema WLL basato su satellite con un uso delle bande intorno ai 500 Mhz. Vengono usati i satelliti geostazionari, con la stessa velocità angolare terrestre, e presenta dei problemi di ritardo dovuti alle distanze di ca Km. Inoltre tale distanza non consente di riconoscere le collisioni; è quindi necessario usare tecnologie di collision avoidance piuttosto che collision detection. Un altro uso dei satelliti nel recente passato è stato Global Posiotioning System (GPS). Il programma GPS è controllato dal Dipartimento della Difesa degli Stati Uniti. IEEE WIMAX È la risposta alla necessità di copertura wireless nelle Metropolitan Area Network. Queste reti sono molto più grandi in dimensioni delle LAN e le loro funzionalità si differenziano considerevolmente da quelle delle LAN. MAN spesso collegano grossi edifici ognuno dei quali può contenere numerosi PC. Usando la fibra ottica, cavi coassiali o doppini telefonici, l interconnessione è molto costosa in questi scenari. L uso di comunicazioni wireless per questi scopi è un alternativa economica che è stata esplorata dai ricercatori così come dall industria. IEEE che è ufficialmente chiamato Air Interface for Fixed Broadband Wireless Access System è il risultato della standardizzazione di questa ricerca. Questo standard si basa su modello OSI e definisce Physical Layer e Data Link Layer. È una rete composta da BS (connesse alle reti pubbliche, servono numerose SS) e Subscriber Station (SS) che connettono gli edifici. Vi sono importanti differenze con le LAN: 1. SS sono fisse non mobili; 2. IEEE permette la mobilità con schemi di trasmissione adattiva; 3. numero di utenti e banda molto maggiore; 4. supporto alla QoS (in IEEE solo con PCF). 52

53 RETI DI CALCOLATORI 2 Capitolo 3 Architettura di WiMax Si occupa degli ultimi 2 livelli ISO OSI: Physical layer: la banda da 10 a 66 Ghz. Per combattere il forte decadimento del segnale di questa tecnologia, a seconda della distanza del terminale, vengono usate diverse tecniche di modulazione: 1. QAM-64: 6 bit/baud 180 Mbs con 30 Mhz di spettro; 2. QAM-16: 4 bit/baud 120 Mbs; 3. QPSK: 2 bit/baud 60 Mbs. Adaptive burst traffic: server per adattare picchi di traffico in una direzione piuttosto che in un altra. Basata su Frequency Division Duplexing e Time Division Duplexing gestiti in maniera dinamica. Il layer physical cerca di ottimizzare l overhead sul payload inglobando diversi pacchetti MAC nello stesso pacchetto fisico. Data link layer: il DLL è stato progettato in modo tale da avere un uso efficiente dello spettro. Può essere suddiviso in 3 sottolivelli. 1. Security sublayer : questo è sottolivello di livello più basso che assicura privacy e sicurezza, aspetti cruciali in MAN. Questo layer gestisce crittografia, decrittografia e gestione delle chiavi. Si deve notare che soltanto il payload viene crittografato mentre gli header rimangono intatti. Questo significa che uno sniffer può identificare i partecipanti alla trasmissione ma non può leggere i dati trasmessi. 2. MAC sublayer common part : questa parte è indipendente dal protocollo e fornisce gestione del canale e allocazione degli slot alle stazioni. Un frame è composto da physical slot (PS). Vi sono 2 varianti: Time Division Duplex: uplink sub frame segue il down link sub frame Frequency Division Duplex dove uplink sub frame trasmesso contemporaneamente al down link su frequenze diverse. I servizi di IEEE sono connection oriented e ci sono 4 classi di servizi di uplink: 1. Costant bit rate service (voce non compressa e slot allocati in maniera fissa e mobili automaticamente); 2. Realtime variable bit rate service (compressed multimedia e soft real-time dove la BS chiede alla SS la banda richiesta per il prossimo periodo); 53

54 RETI DI CALCOLATORI 2 Capitolo 3 3. Non realtime variable bit rate service (trasferimento di file e trasmissioni pesanti ma non realtime con polling non frequente della BS verso la SS). 4. Best effort (niente polling e le SS inviano dati negli slot disponibili). 3. Service specific convergence sublayer : è il più alto livello dei sottolivelli e la sua funzione è quella di interfacciarsi con il network layer dello standard OSI ed è simile al logical link sublayer definito negli altri protocolli della famiglia 802. QUARTA GENERAZIONE INTEROPERABILITÀ La notevole diffusione di reti WiFi e reti cellulari offre la possibilità di progettare sistemi di interazione tra le due reti. Entrambe hanno i loro pro ed i loro contro, ma tramite l'interoperabilità è possibile sfruttare i vantaggi di queste tecnologie per formare un sistema unificato. Consideriamo il seguente scenario. Mentre si sta dirigendo al suo ufficio, un utente scarica le proprie ed accede ad Internet tramite una CDMA PCMCIA card dal suo laptop. Quando arriva in ufficio, mentre è in corso il download di un grosso file, il sistema in modo totalmente trasparente effettua lo switch alla rete wireless ad alta velocità disponibile all'interno della sua azienda. Successivamente, nell'arco della giornata, la WLAN diventa molto affollata e non riesce a garantire un'ampiezza di banda sufficientemente ampia. In queste condizioni il sistema può pensare di ritornare ad usare il collegamento tramite la rete CDMA per ottenere migliori prestazioni, se il profilo associato all'utente lo richiede. L'interoperabilità consente ad una periferica mobile di usare dinamicamente più reti al fine di massimizzare la soddisfazione dell'utente e le performance. Problematiche Ottenere l'interoperabilità tra reti cellulari e WLAN è molto difficile. I problemi fondamentali possono essere riassunti nei seguenti punti: quando fare switch? Necessario progettare degli user profile che definiscono le priorità dell utente; smooth handoff (handoff verticali): mantenere connessioni esistenti durante il passaggio da una rete ad un'altra è difficoltoso in quanto coinvolge problemi per l'indirizzamento, il formato dei pacchetti, etc.; problemi di fatturazione del traffico dovuto ai continui cambi di rete; sicurezza e autenticazione: una periferica mobile può collegarsi a più reti contemporaneamente, quindi l'autenticazione dell'utente e la sicurezza dei dati trasmessi non sono facilmente ottenibili; bilanciamento del carico: necessario definire nuove metriche per valutare se un utente si deve spostare su un altra rete, se necessario; implementazione: ottenere l'interoperabilità richiede cambiamenti in entrambi i protocolli di rete così come nello stack delle periferiche, quindi è fondamentale mantenere la compatibilità con i sistemi ed i protocolli già esistenti; quality of service: è necessario che tutte le reti supportino le politiche di gestione del servizio dell'utente; 54

55 RETI DI CALCOLATORI 2 Capitolo 3 accordi tra i fornitori dei servizi: la cooperazione tra i differenti service provider è una componente fondamentale. Architettura Il sistema che andremo a considerare è composto da un insieme di Base Station facenti parte di una Packet Cellular Network, che fornisce copertura per un'ampia area a delle Mobile Station, e da un insieme di Access Point WiFi che forniscono connettività ad alta velocità alle MS. Si assume che gli AP WiFi siano interconnessi tra loro e con le BS, così da formare una dorsale wired. Le BS sono collocate in modo che l'intera area di interesse sia coperta, mentre si assume che gli AP siano casualmente distribuiti nell'area. Comportamento dell'utente Una MS spesso risulta nella copertura di più reti contemporaneamente, per esempio in una rete cellulare ed in hotspot WiFi. La MS può scegliere di collegarsi ad una rete qualsiasi, la decisione è guidata dalle risorse disponibili e dagli interessi dell'utente. Per esempio una MS impegnata in una trasmissione di dati multimediali può avere requisiti differenti da un'altra che sta semplicemente scaricando delle da un server. È quindi necessario associare ogni MS ad un profilo utente che tiene conto di questi requisiti. Questi profili devono determinare come la MS sceglie di collegarsi all'uno o all'altra rete. Ci sono tre profili utente di base che una MS può possedere: Bandwidth Conscious User Profile: la MS si collegherà alla rete che offre la banda massima, indipendentemente se si tratta di AP o BS. È necessario che la MS possa ottenere una stima della banda a disposizione. Cost Conscious User Profile: la MS sceglierà la rete con minor costo. Naturalmente anche in questo caso è necessario che la MS abbia la possibilità di ottenere informazioni circa le caratteristiche delle reti dalle quali è coperta, in questo caso fondamentale è sapere il costo per byte. 55

56 RETI DI CALCOLATORI 2 Capitolo 3 Glitch Conscious User Profile: la priorità di una MS con questo profilo è quella di avere il minimo numero di handoff in modo da minimizzare i rischi di interruzione della connettività. Sceglierà quindi la rete che assicura una copertura maggiore in modo da avere libertà di movimento senza la necessità di switchare continuamente da una rete ad un'altra. In tutti e tre i profili, assumiamo che mantenere la connessione alla rete è di massima importanza per la MS. A tal fine può collegarsi ad una rete i cui parametri sono in contrasto con il profilo. Per esempio una Cost Conscious MS può connettersi ad una rete più costosa quando esce dalla copertura della rete a basso costo a cui era collegata. Tali profili determinano il comportamento della MS, il consumo delle risorse della rete ed i modelli di traffico. Questo comportamento è illustrato nella prossima figura in cui una MS si sposta dal punto A al punto E attraverso il percorso mostrato. La banda totale disponibile nella BS1 è di 1 Mbps mentre nei due access point AP1 e AP2 è di 11 Mbps. Inoltre assumiamo che la banda disponibile nell'ap1 è minore di quella della BS1 e dell'ap2, questo dovuto all'eccessivo numero di MS connesse all'ap1. La banda disponibile nell'ap2 è più grande di quella della BS1, ed il costo per byte della rete della BS1 è quattro volte superiore rispetto agli AP WiFi. Bandwidth conscious profile: la MS si registra all'ap1 nel punto A, unico accesso disponibile. Al punto B si connette a BS1 in quanto AP1, essendo molto affollato, non le garantisce ampiezza di banda a sufficienza. Nel punto D si collega all'ap2 che fornisce più ampiezza di banda. Cost conscious profile: la MS si registra con AP1 al punto A unico accesso disponibile. Al punto B, rimane connesso a AP1, anche se BS1 ha maggiore banda disponibile ma costa di più. Nel punto C, uscendo dalla copertura dell'ap1 è costretta a collegarsi alla BS1 per mantenere la connettività. Al punto D si collega all'ap2 che le garantisce costi notevolmente minori. Glitch conscious profile: la MS si registra con AP1 al punto A unico accesso disponibile. Al punto B fa switch alla BS1 in quanto una BS ha copertura maggiore di un AP e questo le consente di minimizzare gli handoff. Rimane collegata a BS1 fino al punto E. 56

57 RETI DI CALCOLATORI 2 Capitolo 3 Problematiche implementative Implementare una interoperabilità trasparente tra reti cellulari e WLAN richiede modifiche nello stack di rete dei sistemi operativi delle periferiche mobili così come caratteristiche addizionali nei protocolli delle reti coinvolte. L'applicazione che gira su un nodo mobile può o non può essere consapevole dei cambiamenti dinamici tra le varie reti che avvengono nei layer più bassi dello stack. La decisione di cambiare rete è basata sui profili utente e sulle condizioni della rete corrente; è quindi necessario avere metodi per ottenere le caratteristiche delle reti dalle quali si è coperti e metodi per misurarne condizioni. L'implementazione dell'interoperabilità può avvenire a più livelli dello stack (application, tansport, network). Ogni layer ha dei vantaggi e degli svantaggi in termini di facilità di implementazione, velocità, efficienza, personalizzazione ed espandibilità. 57

58 RETI DI CALCOLATORI 2 Capitolo 4 CAPITOLO 4 - MOBILE IP INTRODUZIONE Alcuni concetti di base riguardanti Internet ed alcune questioni fondamentali sono in contrasto con la transizione da connessioni wired a connessioni wireless. WIRELESS INTERNET ED I PROBLEMI COLLEGATI Wireless Internet si riferisce all estensione dei servizi offerti dalla rete agli utenti mobili, abilitandoli ad accedere alle informazioni indipendentemente dalla loro posizione. Le questioni fondamentali che devono essere considerate per il Wireless Internet sono: Mobilità dell indirizzo (network layer): il protocollo del network layer usato in Internet è l IP che è stato progettato per reti wired e nodi fissi. L indirizzo IP ha due parti: network e host dove il network specifica l indirizzo della subnet alla quale l host è connesso. Questo schema di indirizzamento non può lavorare direttamente nell estensione wireless di internet. Il problema riguarda al fatto che se il nodo X di una rete old si sposta in un altra new, se X mantiene il suo indirizzo, nella rete i pacchetti indirizzati a X, verranno smistati verso la rete old mentre X si trova nella rete new. Inefficienza nel trasporto (transport layer): problemi che sorgono dalla inaffidabilità del mezzo. I protocolli di trasporto (es. TCP) assumono che la perdita di pacchetti sia dovuta alla congestione della rete. Su una rete wireless la perdita dei pacchetti può essere dovuta a interferenze, disconnessioni, etc. Quindi il rallentamento dell invio dei pacchetti, che adottano questi protocolli, non consente di ottimizzare l utilizzo del canale wireless ottenendo quindi un throughput molto basso. Inefficienza delle applicazioni (application layer): i protocolli più usati sono stati progettati per una rete wired (HTTP, Telnet, SMTP, etc.). Questi tipicamente sono stateless, ridondanti, usano connessioni multiple, ecc., caratteristiche che non creano problemi su wired, ma sul wireless si. 58

59 RETI DI CALCOLATORI 2 Capitolo 4 MOBILE IP Perché è difficile ottenere la mobilità Attualmente gli indirizzi IP vengono utilizzati principalmente per identificare un particolare nodo sulla rete. In questo ambito sono spesso equivalenti ai Fully Qualified Domain Names (FQDN) dei sistemi DNS. Vengono anche utilizzati per individuare una rotta tra endpoints, che non necessariamente è la stessa in entrambe le direzioni; tipicamente viene scelta effettuando delle valutazioni solo sull'indirizzo di destinazione e non su quello sorgente. L'unico fattore che influenza le decisioni degli instradatori è lo stato corrente della rete. Portando questi concetti nel campo mobile si vengono a creare delle contraddizioni. Infatti se da un lato un nodo mobile ha bisogno di un indirizzo IP stabile per poter essere identificato dagli altri nodi sulla rete, dall'altro la stabilità dell indirizzo porta anche alla stabilità delle rotte che contrasta con il concetto di mobilità il quale, per forza di cose, deve prevedere che il nodo si possa spostare. Per implementare il concetto di mobilità sul protocollo IPv4, le prime soluzioni non-soluzioni che sarebbe possibile adottare sono le seguenti: sfruttare la tecnologia DHCP per permettere ad un nodo mobile di collegarsi a varie reti, anche se questo comporta il cambiamento dell indirizzo IP; propagare delle rotte specifiche per ogni host, al fine di raggiungere un nodo mobile dovunque esso si trovi. Il primo approccio porta con se il problema che, al cambiamento dell'indirizzo, tutte le connessioni in piedi al momento potrebbero cadere. Questo comporterebbe dover riavviare tutte le sessioni stabilite ad ogni cambiamento di indirizzo. Il secondo approccio, considerate le dimensioni attuali della rete Internet e del numero di nodi, si presenta molto poco scalabile. Un nodo mobile deve essere in grado di comunicare con gli altri nodi dopo il cambiamento del punto di ingresso alla rete, senza modificare il suo indirizzo IP. Inoltre il nodo mobile deve essere in grado di poter interloquire con gli altri nodi che non implementano queste funzioni per la mobilità. Altri aspetti di cui è importante tenere conto sono: il consumo di energia, particolarmente critico nei dispositivi mobili; il numero e la dimensione dei messaggi inviati sulla rete, in quanto una rete wireless è soggetta ad un alto error-rate; compatibilità: l'infrastruttura di rete wired esistente deve rimanere inalterata; scalabilità: le comunicazioni wireless sono la tecnologia del futuro, quindi devono essere in grado di supportare un grosso numero di utenti; trasparenza: l'utente non deve poter avvertire differenze lavorando in un ambiente wireless o wired. La soluzione: Mobile IP La tecnologia Mobile IP è stata proposta con la RFC 3344 dell'agosto 2002, da parte di Charles E. Perkins. L obiettivo è quello di permettere l'utilizzo di un vecchio indirizzo IP ma con pochi meccanismi addizionali per fornire il supporto alla mobilità. Si può pensare a Mobile IP come soluzione per la macro mobilità; è meno adatto per la gestione della micro mobilità, come ad esempio handoff tra ricevitori wireless, ognuno dei quali copre una piccola area geografica. 59

60 RETI DI CALCOLATORI 2 Capitolo 4 Un nodo mobile (MN) è un sistema mobile nella mani di un utente finale, o un router mobile; è l'host per cui il supporto alla mobilità è fornito. L'host con cui MN comunica viene indicato come nodo corrispondente (CN), che può essere a sua volta un nodo mobile o un nodo fisso. Il nodo o router a cui il MN è connesso viene chiamato foreign agent (FA). La subnet a cui si riferisce l'indirizzo IP del MN (permanent address, PHA) è la home network, il router o il nodo che la gestisce viene chiamato home agent (HA) il quale permette la connessione del MT quando è remoto. Immaginiamo di contattare un nodo che si sposta molto spesso. Bisogna cercare una soluzione ottimale che ci permetta di contattarlo senza spendere molte risorse. Al MN viene assegnato un secondo indirizzo IP, il care of address (COA), che può essere di due tipi: 1. foreign agent-based COA: l'indirizzo del FA a cui il MN è connesso può essere usato per localizzare il MN. In questo caso il COA del MN è l'indirizzo del suo FA corrente; 2. colocated COA: il MN acquisisce un indirizzo IP topologicamente corretto. In effetti gli viene assegnato un nuovo indirizzo IP. Il CN continuerà ad inviare i suoi pacchetti al vecchio indirizzo del MN. Lo HA riceverà questi pacchetti e li inoltrerà al MN, di cui conosce il nuovo indirizzo, con la tecnica del tunneling. Nel caso di FA-based COA, il FA eseguirà il decapsulamento del pacchetto e lo invierà al MN. Nel caso del colocated COA, il pacchetto verrà decapsulato dal MN. La registrazione Entrando in una nuova subnet, il MN si registra al FA che chiede conferma/informa lo HA. Tale fase di registrazione coinvolge fasi di autenticazione ed autorizzazione del MN da parte del HA. Nel caso di colocated COA non è necessaria l'intermediazione del FA. Esempio di comunicazione Il nodo mobile (MH nella figura 1), ha un indirizzo permanente appartenente alla rete del HA. Si è spostato in una nuova rete, ottenendo un COA. Il corrispondente (CH nella figura 1) continua ad inviare pacchetti al vecchio indirizzo, i quali vengono gestiti dal HA che provvede ad inviarli al MH. I messaggi di risposta possono essere inviati direttamente dal MH al CH, senza passare di nuovo per lo HA ed ottenendo un incremento delle prestazioni rispetto ad un routing triangolare, soprattutto se consideriamo il caso in cui MH (MN) e CH (CN) si trovano nella stessa subnet. 60

61 RETI DI CALCOLATORI 2 Capitolo 4 Nella pratica però, la comunicazione diretta tra MN e CN senza passare per lo HA spesso non è possibile: ingress filtering: ci sono alcuni router che filtrano i pacchetti in uscita che hanno un indirizzo sorgente che non appartiene alla sua subnet; firewall: come misura di sicurezza, molti firewall filtrano e respingono pacchetti provenienti dall'esterno della rete locale ma che hanno come indirizzo sorgente uno appartenente a tale rete; time to live: il MN deve essere in grado di comunicare con il CN in modo trasparente. In caso di routing triangolare il TTL dei pacchetti deve essere ridotto solo di uno fino al punto di ingresso del tunnel. Quindi, quando il MN tenta di comunicare direttamente con il CN, i suoi pacchetti sono soggetti a ingress filtering; se usa il suo indirizzo home ed i pacchetti sono inviati alla home network, vengono bloccati dal firewall. Per risolvere questi problemi di carattere pratico viene usato il concetto di reverse tunneling, ovvero il MN incapsula i suoi pacchetti in altri aventi come indirizzo sorgente il COA e come destinatario lo HA. Il routing dei pacchetti tra MN e CN avviene tramite il routing triangolare, che non è efficiente ma funziona in pratica. Ottimizzazione di Mobile IP Se assumiamo che il CN possa essere consapevole della mobilità del MN, è possibile attuare alcune ottimizzazioni per rendere il routing dei pacchetti più efficiente (direct routing). Il CN può avere la capacità di decapsulare i pacchetti ricevuti dal MN ed inviargli pacchetti senza passare per lo HA. Binding cache: il CN può mantenere un mapping degli IP e COA del MN in cache. Binding request and binding update: il CN può fare binding tramite un messaggio di richiesta, a cui lo HA risponde con un messaggio di binding update. Binding warning: in alcuni casi può essere necessario fare un handoff. Il vecchio FA invia un messaggio di binding warning allo HA, che informa il CN circa il cambiamento usando un messaggio di binding update. Approccio 4x4 Mobile IP, utilizzando la tecnica di incapsulamento, introduce un grande overhead (approssimativamente 20 Byte per pacchetto). Il MN è dipendente dal FA che fornisce il COA. La presenza del FA in tutte le transazioni impedisce al MN di eseguire qualsiasi tipo di ottimizzazione, e non è capace di rinunciare al supporto del Mobile IP quando non è più necessario. L'approccio 4x4 fornisce 4 opzioni per i pacchetti diretti dal MN al CN (OUT strategies) e 4 opzioni per i pacchetti diretti dal CN al MN (IN strategies). La trasmissione indiretta si riferisce al routing dei pacchetti tra CN e MN passando per lo HA, mentre si ha la trasmissione diretta quando si 61

62 RETI DI CALCOLATORI 2 Capitolo 4 bypassa lo HA. La scelta di strategie particolari può essere fatta per sessione o per pacchetto. Analizziamo ora, una ad una, le possibili scelte che è possibile effettuare. Pacchetti in uscita Al fine di ottenere la trasparenza della mobilità e la consegna dei pacchetti in una rete in cui sono attive impostazioni di sicurezza, è necessario usare l'incapsulamento anche se questo comporta un incremento della dimensione dei pacchetti. Questa tecnica, infatti, permette di usare differenti indirizzi IP come indirizzi sorgente per il pacchetto incapsulato e per l'incapsulante. Usiamo l'indirizzo IP home (PHA) come indirizzo sorgente del pacchetto interno per preservare la trasparenza della locazione; e il COA come indirizzo sorgente del pacchetto esterno per evitare i problemi di sicurezza. Se si usa l'incapsulamento, dobbiamo scegliere anche chi eseguirà il decapsulamento. La scelta più conservativa consiste nell'inviare i pacchetti facendoli passare di nuovo tramite lo HA, che li estrae e li invia al CN. Se il CN è in grado di decapsulare i pacchetti inviati dal MN, si può evitare l'indirect routing tramite lo HA. Per i pacchetti inviati senza incapsulamento, c'è la scelta di due possibili indirizzi sorgenti: il permanent address o il COA. Per quelli con incapsulamento si deve decidere dove inviarli, se allo HA o direttamente al CN. L'insieme delle opzioni può essere schematizzata in una matrice 4x4, fornita agli host che possono decidere la combinazione appropriata in base alla situazione. s e d rappresentano la sorgente e la destinazione dei pacchetti che incapsulano quelli contenenti il vero payload, mentre S e D rappresentano la vera sorgente e destinazione. Nome Descrizione s d S D Out-IE Outgoing, Indirect, Encapsulated (Conservative mode) From COA To HA From PHA To CN Out-DE Outgoing, Direct, Encapsulated From COA (Decapsulation-capable correspondent host) To CN From PHA To CN Out-DH Outgoing, Direct, Home Address (No source address filtering) From PHA To CN Out-DT Outgoing, Direct, Temporary Address (No Mobile IP) From COA To CN 62

63 RETI DI CALCOLATORI 2 Capitolo 4 Out-IE: Vantaggi: evita il rischio dell'intervento dei router che rigettano pacchetti con un indirizzo sorgente non valido; il CN non è consapevole che il pacchetto è stato originato da un MN. Svantaggi: consegna indiretta; overhead per l'incapsulamento. Motivazioni: tutti i MN devono supportare il tunneling tramite lo HA, quindi è l'unica strategia applicabile in tutte le situazioni. Inoltre il tunneling tramite lo HA consente al MN di mantenere la privacy sulla sua posizione. Out-DE: Vantaggi: consegna diretta; evita il rischio dell'intervento dei router che rigettano pacchetti con un indirizzo sorgente non valido. Svantaggi: overhead per l'incapsulamento; il CN deve avere la capacità di decapsulare i pacchetti inviati dal MN. Motivazioni: questa è la miglior scelta per un MN che si trova in una rete con filtering sull'indirizzo sorgente. Out-DH: Vantaggi: consegna diretta; assenza dell'overhead di incapsulamento; CN non è consapevole che i pacchetti sono stati originati da un MN. Svantaggi: un router può bloccare i pacchetti in quanto hanno un indirizzo sorgente che potrebbe apparire non valido. Motivazioni: è la scelta migliore quando non ci sono router sul path tra MN e CN che eseguono filtering sull'indirizzo sorgente. Out-DT: Vantaggi: consegna diretta; assenza dell'overhead di incapsulamento; evita il rischio dell'intervento dei router che rigettano pacchetti con un indirizzo sorgente non valido. Svantaggi: il permanent home address non è usato, quindi si perdono i benefici offerti da Mobile IP. 63

64 RETI DI CALCOLATORI 2 Capitolo 4 Motivazioni: è la scelta migliore quando non è richiesta trasparenza della mobilità. Ha senso in certi contesti, per non incorrere nell overhead di tempo (ritardi per routing triangolare) e di spazio (incapsulamento), come ad esempio durante la navigazione nel WWW: le connessioni HTTP sono tipicamente di breve durata e possono essere interrotte e riprese facilmente. Pacchetti in entrata Per ottenere trasparenza alla mobilità e consegna efficiente, è necessario usare l'incapsulamento. Quando sia il MN che il CN sono collegati fisicamente alla stessa rete, i pacchetti non hanno bisogno di passare attraverso nessun router in Internet e possono essere consegnati direttamente al MN. Nome Descrizione In-IE Incoming, Indirect, Encapsulated (Correspondent unaware that host is mobile) s d S D From CN To PHA At the Home Agent: From HA To COA From CN To PHA In-DE Incoming, Direct, Encapsulated (Mobile-aware correspondent host) From CN To COA From CN To PHA In-DH Incoming, Direct, Home Address (Same physical network segment) From CN To PHA In-DT Incoming, Direct, Temporary Address (No Mobile IP) From CN To COA In-IE: Vantaggi: il CN non è consapevole che il pacchetto sarà inviato ad un MN. Svantaggi: consegna indiretta; overhead per l'incapsulamento. Motivazioni: tutti i MN devono supportare il tunneling tramite lo HA, quindi è l'unica strategia applicabile in tutte le situazioni. 64

65 RETI DI CALCOLATORI 2 Capitolo 4 In-DE: Vantaggi: consegna diretta; Svantaggi: overhead per l'incapsulamento; il CN deve avere la consapevolezza del fatto che il nodo è mobile. Motivazioni: nei casi in cui il CN è mobile-aware, inviare i pacchetti direttamente al COA del MN è preferibile che farli passare per lo HA. In-DH: Vantaggi: consegna diretta; assenza dell'overhead di incapsulamento. Svantaggi: applicabile solo se il CN ed il MN sono sulla stessa rete. Motivazioni: è la scelta migliore quando il MN visita un'altra rete e si collega ai servizi offerti da questa. In-DT: Vantaggi: consegna diretta; assenza dell'overhead di incapsulamento; Svantaggi: il permanent home address non è usato, quindi si perdono i benefici offerti da Mobile IP. Motivazioni: è la scelta migliore quando non è richiesta trasparenza della mobilità. 65

66 RETI DI CALCOLATORI 2 Capitolo 4 La prima riga mostra le combinazioni che sono utili quando il MN sta comunicando con un host convenzionale su Internet, e questo host non è consapevole della mobilità del suo corrispondente. Il MN può effettuare delle scelte su come mandare i pacchetti al CN. Se il CN è mobile-aware e conosce il COA del MN diventano disponibili anche le scelte della seconda riga. Se il CN e il MN sono connessi alla stessa rete, quando il MN riceve i pacchetti in In-DH, usa la stessa tecnica per rispondere (terza riga). L'ultima riga della tabella corrisponde alla situazione in cui si vuole rinunciare alle caratteristiche di Mobile IP. Handoff Un handoff è necessario quando il MN si sposta dal FA a cui è connesso, con il risultato che il segnale trasmesso da e per il FA diventa debole. Se il MN può ricevere il segnale da un altro FA, rompe la connessione con il vecchio e ne stabilisce un'altra con il nuovo. Possono essere classificati in 4 modi, basandosi sulle funzionalità delle entità coinvolte: mobile initiated handoff: gestito dal MN che misura la forza del segnale, decide la base station obiettivo e da l'avvio alla procedura; mobile evaluated handoff: è simile al caso precedente eccetto per il fatto che la decisione è presa all'interno della rete, per esempio dalla base station; network initiated handoff: la rete (BS) decide quando il MN deve fare handoff; solo la rete misura la forza del segnale in uplink e il MN ha un ruolo molto marginale, mobile assisted handoff: il MN assiste la rete nello scenario network initiated, misurando la forza del segnale in downlink. Il secondo tipo di classificazione è fatto sul numero di connessioni attive: 1. hard handoff: è attiva solo una connessione, al nuovo o al vecchio FA; 2. soft handoff: durante la procedura sono attive le due connessioni al nuovo ed al vecchio FA. Inoltre: forward handoff: MN decide la BS obiettivo e richiede a questa di contattare la BS corrente per iniziare l'handoff; backward handoff: MN decide la BS obiettivo e richiede a quella corrente di contattarla. Un tipico handoff richiede pochi secondi per essere completato. Questo ritardo può essere diminuito parallelizzando alcune operazioni coinvolte nella procedura (fast handoff). 66

67 RETI DI CALCOLATORI 2 Capitolo 4 IPv6 La nuova versione del protocollo IP, IPv6, ha già integrato il supporto per la mobilità. Le nuove feature sono le seguenti: ottimizzazione delle rotte integrata nel protocollo; campo specifico per il COA e per l'home IP address, così da evitare il reverse tunneling; fornisce uno spazio degli indirizzi dell'ordine di 2128; feature avanzate di QoS; crittografia per fornire autenticazione ed integrità. IP PER WIRELESS DOMAINS TIMIP Mobile IP è solo una soluzione al problema della mobilità di un indirizzo IP, non è una soluzione specifica per il wireless. Un approccio indipendente dal terminale è quello che punta a dare un servizio uniforme sia agli host che hanno le capacità di mobile IP sia ai legacy host. Esistono protocolli basati su IP specifici per wireless. Il Terminal Indipendent Mobility for IP (TIMIP) è una strategia basata su due protocolli principali: HAWAII e Cellular IP (gerarchia di router). L AP è un router che è al primo livello della gerarchia ed è in comunicazione diretta con il mobile node (MN) su un interfaccia wireless. Gli Access Router (AR) sono router interni all albero. L Access Network Gateway (ANG) è il router alla radice dell albero che agisce come interfaccia tra il wireless e la rete wired. HAWAII Handoff Aware Wireless Access Internet Infrastructure. L infrastruttura identifica due categorie di mobilità: micromobilità (intradomain) o macromobilità (interdomain) fornendo QoS e efficienza che non sono forniti dal Mobile IP. CELLULAR IP Offre un alternativa al problema di rilevare gli handoff usando le informazioni del MAC layer basate sulla forza del segnale ricevuto invece di usare le informazioni del network layer. I domini wireless sono inerentemente insicuri. Ogni dato viene trasmesso in broadcast ed ognuno può ascoltare tutto il traffico. I problemi di sicurezza sono: 67

68 RETI DI CALCOLATORI 2 Capitolo 4 registrazione di un nodo malizioso come MN; replay: anche se i pacchetti di registrazione MN-FA sono crittografati, possono essere riusati da un nodo malizioso successivamente (risolto con numeri random ripetuti molto raramente); tunnel hijacking si usa il tunnel per arrivare dietro i firewall; la FA può essere maliziosa. TCP IN WIRELESS DOMAIN Il wireless non deve affrontare solo il problema della mobilità ma anche quello dell alto tasso di errore e della bassa larghezza di banda. Il TCP tradizionale che garantisce consegna in ordine e certa è un classico protocollo di trasmissione per reti wired. Siccome la trasmissione nel wireless dovrebbe essere compatibile con le infrastrutture esistenti, c è la necessità di modificare i protocolli esistenti. Questo è l approccio corretto piuttosto che riscrivere completamente l intero set di protocolli. TCP: le caratteristiche Fornisce un servizio connection-oriented, byte stream, affidabile. Include un controllo del flusso per ogni stream di byte che permette al ricevitore di limitare la quantità di dati che il mittente può inviare (se mancano ACK si riduce la congestion window). Implementa inoltre un meccanismo di controllo della congestione. Siccome la causa maggiore di perdita di pacchetti nel wired è la congestione, TCP assume che ogni perdita di pacchetti è dovuto a questo fenomeno. TCP assume che la latenza sia poco variabile, mentre nel wireless può accadere che gli ACK impieghino molto tempo per arrivare. La perdita su wireless può essere dovuta ad errori di trasmissione. Tale casistica non è contemplata da TCP il quale, come risposta, abbassa il rate di trasmissione riducendo così il throughput. Per migliorare le performance di TCP su reti wireless, una delle prime alternative proposte fu quella di garantire che il link layer correggesse tutti gli errori su un interfaccia wireless eliminando quindi il bisogno del trattamento degli errori al layer TCP. Per nascondere gli errori a TCP, si incrementa l overhead dovuto alle tecniche di correzione e controllo dell errore. L alternativa è di usare schemi adattivi dinamici che riescono ad accorgersi di quando il tasso di errore è più alto del solito. Inoltre il link layer deve gestire le ritrasmissioni ed è possibile che avvenga il fenomeno della starvation di altre comunicazioni se una assorbe tutta la banda per le ritrasmissioni. 68

69 RETI DI CALCOLATORI 2 Capitolo 4 Le soluzioni per risolvere i problemi di efficienza nel wireless sono divise in 3 categorie: 1. Soluzioni sul link layer: Snoop TCP: l idea di base è quella che la BS bufferizzi i dati trasmessi e gli ACK. In caso di DUPACK (DUPlicate ACK) o di no ACK, la BS interviene ritrasmettendo i pacchetti dal proprio buffer. Questa soluzione risulta essere trasparente al CN, ma richiede che la BS abbia accesso ai pacchetti che vengono inviati, quindi non può intervenire su traffico crittografato. TCP unaware link layer: simula il comportamento di Snoop TCP senza richiedere che il link layer della BS sia TCP-aware. Invece di usare il DUPACK di TCP, le ritrasmissioni vengono originate dalla mancanza di pacchetti ACK sul link layer in modo da non coinvolgere il livello di trasporto TCP. I vantaggi derivano dal fatto che può essere usato anche su TCP crittografato. 2. Soluzioni con suddivisione della connessione: Indirect TCP: si suddivide la connessione in due connessioni TCP distinte: una tra MN e BS e una tra BS e CN (la base station funge da proxy del nodo mobile). La BS manda gli ACK al CN per i dati che bufferizza: si occuperà di ritrasmetterli a MN con un protocollo TCP ottimizzato per il wireless. I vantaggi sono: nessuna modifica alla rete fissa; gli errori di trasmissione sul link wireless non hanno impatto sulla rete fissa. Uno svantaggio è che si perde la semantica end-to-end: un pacchetto di cui il CN ha ricevuto l ACK non è detto che sia stato effettivamente recapitato al MN in quanto ad esempio la BS, che rappresenta un collo di bottiglia del sistema, può andare in crash. Altri problemi sono dovuti alla possibile latenza dovuta al buffering e ritrasmissione. Infine durante la procedura di handoff di un MN, il buffer della BS può andare in overflow in quanto si trova costretto ad immagazzinare tutti i pacchetti dal CN. Mobile TCP: il problema più comune associato al wireless è che spesso la connessione tra MN e BS è persa per piccoli intervalli di tempo tipicamente dovuti a grossi edifici, ostacoli improvvisi, etc. In queste situazioni il mittente ha bisogno di essere informato. La soluzione di Mobile TCP è: il nodo host supervisore (che controlla diversi AP) può dare informazioni al CN che la window size deve essere ridotta. L host supervisore manda gli ACK al CN solo quando ha ricevuto l ACK dal MN (si mantiene la semantica end-to-end TCP). 3. Soluzioni end-to-end: Explicit Loss Notification (ELN): il problema di TCP è che non sa che l errore di trasmissione non è dovuto alla congestione. Se il MAC layer riconosce l errore di 69

70 RETI DI CALCOLATORI 2 Capitolo 4 trasmissione dovuto al wireless (handoff, disturbi atmosferici, etc.) allora informa TCP di un errore non dovuto a congestione. In questo modo la window size non viene ridotta. È necessario modificare il livello MAC. Wireless TCP (WTCP): l unica caratteristica di WTCP è che cerca di separare il controllo di congestione dal meccanismo di consegna affidabile. Usa due sequence numbers per distinguere i due meccanismi: uno per la congestione e l altro per l affidabilità del wireless. Selected acknowledgements: TCP usa l ACK cumulativo che permette di risparmiare overhead di memoria nei due endpoint (necessario mantenere i dati sull ACK di ogni singolo pacchetto). Ma l overhead in memoria e sul controllo necessario, può essere accettabile se limita l overhead della comunicazione (cruciale sulle ritrasmissioni su wireless). In questa maniera la ritrasmissione avviene per singolo pacchetto e non per intere sequenze (strategie go-back-n). Transaction-oriented TCP: per stabilire una connessione TCP è necessario connection setup, data transmission, connection release con il 3 way-handshake (servono 3 pacchetti per il setup). Anche messaggi brevi hanno bisogno di 7 pacchetti. La mobilità su TCP Se il link layer assicura consegna affidabile e garantisce perdita di pacchetti zero durante un handoff, allora TCP ne può essere totalmente inconsapevole e non c è bisogno di effettuare misurazioni al livello trasporto. Per ottenere la mobilità su TCP, si possono utilizzare le seguenti tecniche: Fast retransmit: durante l handoff si possono perdere molti pacchetti e quando la connessione riprende, il trasmittente, assumendo che la perdita sia dovuta a congestione, va in slow- start. La soluzione consiste nel forzare il mittente ad andare in modalità fast retransmission inviando DUPACK invece di andare in slow start. Il vantaggio di questa strategia è che è molto semplice, in quanto richiede cambiamenti minimi alla struttura TCP esistente; gli svantaggi si basano sul fatto che non considera che ci possono essere perdite sul link wireless. Multicast: l idea si basa sulla creazione di un gruppo multicast di cui fanno parte la BS attuale del MN e le BS che probabilmente saranno visitate in futuro. I pacchetti destinati al 70

71 RETI DI CALCOLATORI 2 Capitolo 4 Mobile Node dovranno quindi essere reindirizzati al gruppo multicast. Se il resto delle BS è capace di bufferizzare i pacchetti indirizzati al gruppo, la perdita di pacchetti durante l handoff può essere significativamente minimizzata. In pratica il numero di buffer allocati può essere minimizzato bufferizzando solo quando è molto probabile che si verifichi l handoff. APPLICATION LAYER WAP WAP è una suite di protocolli per fornire servizi dati/fonia su wireless. Gli obiettivi primari del WAP sono: l indipendenza tra gli standard di reti wireless, l interoperabilità tra i service provider, superamento dei difetti del mezzo wireless, aumentare l efficienza e l affidabilità, fornire sicurezza, scalabilità e estensibilità. Gestito da WAPForum (inizialmente fondato da Ericsson, Motorola, Nokia), WAP adotta un approccio client-server, specifica un server proxy che agisce come interfaccia tra il dominio wireless e la rete wired. Questo server proxy è chiamato WAP gateway. Un sistema WAP enabled, comunica con un server Web tramite il WAP gateway, che riceve la richiesta wap e la converte in richieste HTTP da inviare al server. Se tale server non è in grado di fornire le informazioni richieste nel formato Wireless Markup Language (WML), il gateway si occuperà anche di convertire i contenuti HTML in contenuti compatibili con il WAP. Lo stack di protocolli WAP è stato progettato per rimpiazzare lo stack di protocolli su rete wired. Questa però è stata una grossa limitazione allo sviluppo ed alla diffusione della tecnologia. Inoltre lo sviluppo dei terminali che si è avuto negli ultimi anni, consente di utilizzare lo stack di protocolli della rete wired, senza grosse limitazioni. 71

72 RETI DI CALCOLATORI 2 Capitolo 4 Alcuni problemi: 1. rimpiazzare l intero stack è costoso e troppo dipendente dalle evoluzioni tecnologiche (infatti ora WAP è molto meno usato); 2. sicurezza: possibile l'attacco man in the middle con trasmissioni in chiaro; 3. alta variabilità delle periferiche usate. W4: Wireless World Wide Web Il protocollo più importante del web è l HTTP che è ottimizzato prevalentemente per le reti wired. Ha un sacco di overhead che è accettabile solo se la larghezza di banda è una risorsa poco costosa. I problemi di HTTP su wireless: pensato su wired, non sul wireless; apertura di molte connessioni per ogni richiesta; trasmissioni ridondanti (connectionless); dati non compressi/codificati. La soluzione è WebExpress, che prevede l'utilizzo di due proxy: Client side e Server side. Alcune ottimizzazioni possono essere: caching; differencing; streams, ossia solo le differenze dei flussi vengono trasmessi tra CSI e SSI, utile per le form; riduzioni del protocollo e riduzione dell header. 72

73 RETI DI CALCOLATORI 2 Capitolo 5 CAPITOLO 5 - AD HOC WIRELESS NETWORK INTRODUZIONE Nei capitoli precedenti abbiamo enfatizzato il ruolo delle architetture centralizzate. Ora passiamo a considerare alcuni altri argomenti che possono interessarci maggiormente, ovvero le reti wireless ad hoc. Il principio su cui si basa una rete wireless ad hoc è quello del trasmissione multihop, le cui origini risalgono al 500 a.c. Infatti Dario I, re di Persia, escogitò un sistema di comunicazione innovativo costituito da una serie di uomini posizionati ad una certa distanza che ascoltavano la comunicazione e la ripetevano verso l'uomo successivo. Era un sistema di comunicazione basato su una rete di trasmissione vocale (chiamato telegrafo acustico). Quindi una rete wireless ad hoc è una rete di terminali mobili, con capacità di fare routing, che si organizzano in maniera autonoma (non centralizzata) per assicurare la connessione sfruttando il multi-hop relaying (infrastructureless networks). Negli anni 70, Norman Abramson ed i suoi ricercatori all'università delle Hawaii inventarono ALOHANet, una rete che utilizzava un sistema di smistamento dei pacchetti single-hop ed una soluzione basata sull'accesso multiplo per la condivisione del canale. Il successo e la novità di ALOHANet innescò un forte interesse in differenti direzioni nella comunicazione tra calcolatori, che incluse il lavoro diretto allo sviluppo di Ethernet di Rober Metcalfe e PRNET (Packet Radio NETwork) sponsorizzato da DARPA (Defence Advanced Research Projects Agency). Quest'ultima rete usava una combinazione di ALOHA e CSMA per l'accesso al canale condiviso, e directsequence spread spectrum scheme (DSSS) per la comunicazione radio. DARPA estese il lavoro su reti wireless multi-hop attraverso il progetto SURAN (SUrvivable Radio Networks), mirato alla fornitura di networking ad hoc con periferiche piccole, economiche e con bassi consumi con protocolli efficienti, scalabilità e fault tolerance. Realizzando la necessità di avere uno standard aperto, un gruppo interno all'ietf definito Mobile Ad Hoc Networks (MANET), fu formato per standardizzare i protocolli e le specifiche funzionali di una rete wireless ad hoc. Le caratteristiche delle MANET (Mobile Ad hoc NETwork) sono: configurazione minima; adattabilità a modifiche strutturali; economicità: il programma 100$ for laptop : One laptop per child; connessione assicurata via MANET. Alcuni utilizzi classici sono: reporting geografico; situazioni di emergenza (conflitti: disastri naturali, emergenze sanitarie). Nel 1994 Ericsson propose Bluetooth per le trasmissione di piccolo raggio, poco costose in termini di potenza e complessità tra dispositivi eterogenei; le piconet però offrono solamente single-hop, i protocolli di routing non sono standardizzati e vanno implementati on top. Bluetooth è stata una delle prime realizzazioni commerciali di ad hoc wireless networking. IEEE nel funzionamento senza AP (la DCF assicura ai MT l accesso al mezzo ma non il routing) rappresenta 73

74 RETI DI CALCOLATORI 2 Capitolo 5 un altro esempio di questo tipo di reti. Di recente sviluppo vi sono le reti ibride, che combinano i benefici di reti ad hoc e cellulari per migliorare le performance e le capacità del sistema. Applicazioni Ad hoc wireless network sono definite come la categoria di reti wireless che utilizzano il multihop radio relaying e sono capaci di operare senza il supporto di una infrastruttura fissa. L'assenza di un coordinamento centrale rende il routing più complesso rispetto ad una rete cellulare che può contare sull'apporto della Base Station. Il setup di un path tra due nodi è completato attraverso un nodo intermedio. Specifici esempi di ad hoc wireless network sono le wireless mesh network e le wireless sensor network. 74

75 RETI DI CALCOLATORI 2 Capitolo 5 Le maggiori differenze tra reti cellulari e ad hoc wireless network sono: banda garantita vs. best effort; bassa probabilità di call drop vs. alta probabilità; alto costo di sviluppo e realizzazione vs. basso costo; riuso di frequenze geografiche vs. carrier sense; possibile la prenotazione di banda vs. non possibile; host mobili di bassa complessità vs. alta complessità; goal: massima call acceptance ratio e minimo call drop ratio vs. minimo overhead e riconfigurazione veloce; diffusione vs. non diffuse (per ora). In una rete ad hoc il routing e la gestione delle risorse sono fatti in maniera distribuita ovvero tutti i nodi si coordinano per permettere la comunicazione tra di loro. Questo richiede una maggiore intelligenza da parte dei nodi, in quanto devono funzionare sia da host per trasmettere e ricevere dati, che da router per instradare pacchetti agli altri nodi. Le reti wireless ad hoc, grazie alla loro economicità e facilità, trovano applicazioni in numerosi campi: Applicazioni militari: invece di stabilire una infrastruttura, che a volte può rivelarsi impossibile, si usano meccanismi di comunicazione di veloce installazione. Alcune caratteristiche importanti in questo campo sono la sicurezza ed il multicasting efficiente e affidabile. Si può integrare questo tipo di reti con informazioni sul posizionamento (uso e integrazione di GPS). Calcolo collaborativo e distribuito: il bisogno di una infrastruttura di comunicazione temporanea per una veloce comunicazione con configurazione minima tra un gruppo di persone, necessita la formazione di una ad hoc wireless network. Per esempio, si consideri un gruppo di ricercatori che vuole condividere il proprio materiale durante una conferenza in modo on the fly. La caratteristica fondamentale in questo campo è il multicasting affidabile per: 1. file server distribuito; 2. streaming in tempo reale. Operazioni di emergenza: questo tipo di reti è molto utile in situazioni di emergenza, grazie alla loro capacità di autoconfigurarsi con un minimo overhead, indipendentemente dalle condizioni ambientali e di rete. Richiedono enorme flessibilità per adattarsi agli scenari più disparati. Anche in questo campo la sicurezza assume un valore non trascurabile. Wireless Mesh Networks sono reti stabili ma ad hoc create per fornire una infrastruttura alternativa di comunicazione per nodi fissi o mobili, senza i vincoli del riuso dello spettro e di pianificazione della rete che richiede una rete cellulare. La topologia mesh (a maglia, rete) fornisce più path alternativi tra sorgente e destinazione, consentendo una riconfigurazione veloce del path quando uno esistente cade a causa di fallimenti di nodi intermedi. L'investimento richiesto da una rete mesh è molto minore di quello necessario per una rete cellulare. Alcune caratteristiche importanti sono la capacità di auto- 75

76 RETI DI CALCOLATORI 2 Capitolo 5 configurazione e manutenzione. Il tempo di deployment è anch'esso molto minore rispetto alla controparte con infrastruttura. Queste reti scalano bene per fornire supporto ad un alto numero di nodi. Infatti maggiore è la densità dei nodi, maggiore è il throughput ed il supporto che può essere ottenuto. Un esempio: ROOFNET. Intorno al MIT è stata creata una rete di APs (Netgear): volontaristica; i gateway DSL guadagnano con la pubblicità; i repeater guadagnano con l accesso; routing opportunistico. Wireless Sensor Network sono una categoria speciale di reti per fornire connessione ad una serie di sensori utilizzati per un'applicazione specifica. Sono periferiche minuscole (smart dust) usate per raccogliere dati e monitoraggio. Le caratteristiche peculiari della rete sono: notevole dimensione della rete; densità del deployment (ridondanza necessaria); fortissimi vincoli su alimentazione e consumo di energia (possibili o no il rifornimento, fonti alternative); aggregazione di dati necessaria per la banda limitata. Vengono utilizzate per monitoraggio di: 76

77 RETI DI CALCOLATORI 2 Capitolo 5 malfunzionamenti su petroliere (vibrazioni anomale); informazioni climatiche; strutture (edifici, laboratori, etc.). Reti wireless ibride: combinazioni di reti cellulari (con infrastruttura) ed ad-hoc, con più utenti e più banda. PRINCIPALI PROBLEMATICHE IN MANET Medium access scheme La maggiore responsabilità di un protocollo MAC in una rete ad hoc è la gestione distribuita del canale condiviso. I problemi maggiori da considerare nella progettazione di un protocollo MAC sono: operazioni distribuite: il coordinamento centrale non è possibile; sincronizzazione: necessaria per TDMA; problema del terminale nascosto; terminali esposti: nodi che sono nel range di trasmissione del mittente sono ostacolati nel creare una connessione; banda totale del sistema (throughput); ritardo dell'accesso; equità; supporto al traffico realtime; gestione della QoS; misura delle risorse disponibili e loro allocazione; gestione della energia (evitare collisioni e interferenze); controllo del bit rate adattivo rispetto al movimento relativo dei nodi; l uso di antenne direzionali/non direzionali. Routing La responsabilità di un protocollo di routing include lo scambio di informazioni sulle rotte per trovare un path attuabile in grado di raggiungere la destinazione, basandosi su alcuni criteri come: il numero di hop; potenza richiesta; tempo di vita del collegamento wireless; informazioni su path non più percorribili; minimo utilizzo della banda. Questa è una caratteristica critica per il multi-hop relay. Infatti i problemi maggiori da affrontare sono: 1. supporto alla mobilità; 2. vincoli sull'utilizzo della banda: una trasmissione influenza tutti i nodi che sono a distanza tale da sentire la trasmissione; 3. canale condiviso ed error-prone; 77

78 RETI DI CALCOLATORI 2 Capitolo 5 4. bilanciamento del carico che non tenga presente la disposizione geografica (un unico canale a disposizione). Le caratteristiche fondamentali che un algoritmo di routing deve avere sono: minimo ritardo nell'acquisizione delle informazioni di routing; riconfigurabilità; loop free (senza cicli); scalabilità; supporto al traffico realtime; approccio al routing distribuito; fornitura di QoS; sicurezza e privacy. Multicasting È una caratteristica importante per le applicazioni di una rete wireless ad hoc (operazioni di salvataggio, militari). Il movimento arbitrario dei nodi cambia la topologia dinamicamente in maniera non predicibile. La mobilità dei nodi, con i vincoli di potenza e banda, rende il routing multicast difficile da implementare. Gli algoritmi su reti wired (basati su alberi) non funzionano bene su wireless (gli alberi sono soggetti a malfunzionamenti e sono difficili e costosi da riparare). L'uso di un singolo link tra i nodi di un gruppo multicast, che può essere rappresentato con un albero, fornisce un multicast efficiente. Fornire più link tra i nodi in una rete wireless ad hoc ha come risultato una struttura a maglia. Il multicast basato su questa struttura può lavorare meglio in un ambiente con alta mobilità. Il multicasting deve assicurare: 1. robustezza; 2. efficienza; 3. controllo dell'overhead; 4. QoS; 5. gestione dei gruppi efficiente; 6. scalabilità; 7. sicurezza. Transport layer L'obiettivo principale del layer di trasporto include la messa a punto e la gestione di connessioni end-to-end, consegna dei pacchetti, controllo del flusso e della congestione. Il più semplice protocollo connectionless (UDP) non esegue controllo del flusso e della congestione e non fornisce consegna affidabile dei pacchetti. Quindi non tiene conto delle condizioni attuali della rete, non considerando vari fattori come il grado di congestione, il tasso di collisione, etc. Questo comportamento incrementa la contesa in un collegamento già intasato. In una rete ad hoc, che implementa una contention basata sul protocollo MAC, i nodi in una regione con elevata contesa è soggetta a numerosi stati di back off, con un conseguente incremento del numero di collisioni ed una elevata latenza. Quindi i protocolli connectionless non sono consapevoli della situazione della rete e quindi, con il loro comportamento, degradano le prestazioni generali della rete. 78

79 RETI DI CALCOLATORI 2 Capitolo 5 I problemi dello strato di trasporto con protocolli connection oriented (TCP) riguardano i path break, ossia frequenti riconfigurazioni del path a causa della estrema dinamicità della rete con la conseguenza di frequenti partizionamenti. La latenza associata alla riconfigurazione di un path non più disponibile e dell'uso di caching per le informazioni delle rotte, comporta la presenza di informazioni di stato delle rotte nei nodi. Quindi i pacchetti saranno inviati attraverso path multipli alla destinazione, causando un incremento del numero di pacchetti out-of-order. Quality of Service Può essere fornita per flow, per link o per nodi. In una rete ad hoc wireless, il confine non chiaro tra service provider e client richiede maggiore coordinamento, che è difficile da ottenere in un ambiente distribuito con poche risorse disponibili (che sono anche poco stabili). I parametri QoS sono dipendenti dalle applicazioni (banda, ritardo, sicurezza, disponibilità, consumo di energia). Self organisation Una delle capacità più importanti di una rete ad hoc wireless è quella di autoconfigurarsi e manutenersi (gestione della rete da parte della rete stessa). Ogni nodo scopre e mantiene informazioni sui propri vicini (snooping sulla rete). Questo richiede una trasmissione periodica di piccoli pacchetti chiamati beacon. Le problematiche che si devono affrontare per gestire questa caratteristica delle reti wireless ad hoc sono l'organizzazione/riorganizzazione della rete, che può essere periodica/aperiodica indotta da eventi oppure adattiva rispetto ai cambiamenti topologici occorsi nella rete. Similmente il partizionamento della rete e la fusione di due partizioni esistenti richiede maggiore riorganizzazione topologica. Sicurezza La gestione della sicurezza è un punto cruciale, soprattutto in ambito militare. I pericoli maggiori in una rete wireless ad hoc sono: denial of service: tenere occupato un nodo consumando la banda attraverso pacchetti non necessari; consumo di risorse: far consumare l'energia del dispositivo mobile, sovraccaricandolo di lavoro; impersonare un host; scoperta di informazioni (pattern di comunicazione tra nodi); interferenze. Indirizzamento e discovery L'indirizzamento ed il discovery sono problemi che nascono a causa dell'assenza di un coordinamento centralizzato. L'autoconfigurazione degli indirizzi è richiesto per allocare indirizzi non duplicati dei nodi. I nodi della rete devono essere in grado di localizzare i servizi offerti da un altro nodo. Quindi è necessario un meccanismo di advertising efficiente. 79

80 RETI DI CALCOLATORI 2 Capitolo 5 Gestione della energia Uno dei punti deboli della mobilità è la gestione dell'energia. Infatti la durata delle batterie rappresenta un elemento cruciale per la completa fruizione dei servizi che una rete ad hoc wireless può offrire. La gestione della energia usata è utilizzata in vari contesti: gestione della energia usata per trasmettere: uso di sleep mode, integrazione con strati MAC, trasport e application; gestione delle batterie: pattern per l'uso delle batterie (ad esempio meglio scaricare a intermittenza una batteria che continuamente); gestione del processore (power saving model della CPU); gestione della periferica. Scalabilità Il punto di forza delle MANET risiede nella economicità dei nodi che ne consente quindi l'utilizzo di un alto numero. I protocolli distribuiti, usati per routing etc., sono spesso inefficienti e poco scalabili, in quanto al crescere del numero di nodi possono richiedere un tempo di attesa non accettabile. La scalabilità quindi è un fattore critico per le prestazioni al crescere del numero dei nodi. Alcune problematiche sono l'eterogeneità e l'integrazione con sistemi con infrastruttura ibrida. Deployment Rispetto ad una rete wired, il deployment in ambito wireless ad hoc è facilitato dalla mancanza di infrastrutture: ha un basso costo; è possibile effettuare un deployment incrementale; riconfigurabile; richiede poco tempo per essere messa in funzione. Le problematiche da affrontare sono: scenari diversi: militare: data centric (rete sensori) o user centric (soldato) emergenza: velocità nel deplyment critica, anche al prezzo di minore dinamicità e dimensione limitata commerciale: wireless mesh home network: limitata dimensione longevità: un meeting (short live) o mesh (long life); copertura; disponibilità del servizio (se critica oppure no); integrazione con altre infrastrutture (GPS, reti ibride, etc.); scelta dei protocolli: sicurezza dei protocolli MAC utilizzati; routing: se basato su informazioni geografiche, potrebbe non esserci adeguata copertura GPS; 80

81 RETI DI CALCOLATORI 2 Capitolo 5 se le batterie non sono rimpiazzabili, evitare attività periodiche come i messaggi di beacon; transport layer. AD HOC WIRELESS INTERNET Estensione dei servizi di Internet in uno scenario Ad Hoc (senza infrastrutture). Un diagramma: Le problematiche sono: gateway: gestione delle risorse verso la rete fissa; mobilità degli indirizzi: simile a Mobile IP; routing: da usare protocolli differenti a causa della presenza di gateway e di multi hop; layer di trasporto: protocolli diversi per la parte ad hoc wireless network; bilanciamento del carico: scelta dei gateway accurata e distribuita; pricing/billing: fatto tipicamente a gateway side; sicurezza: end-to-end (non ci si può basare su protocolli di livello bassi, ma deve essere assicurata dalla applicazione) quality of service: per realtime communication; gestione degli indirizzi, discovery. 81

82 RETI DI CALCOLATORI 2 Capitolo 6 CAPITOLO 6 - MAC PROTOCOLS PER AD-HOC WIRELESS NETWORKS INTRODUZIONE I nodi di una rete ad hoc wireless condividono un canale radio broadcast, questo fa si che lo spettro e la larghezza di banda disponibile siano risorse limitate. Serve un metodo per l accesso al mezzo (Medium Access Control) che tenga presente delle peculiarità della rete per fare in modo che tutti i nodi ricevano un trattamento equo e che la banda disponibile sia utilizzata efficientemente. I PRINCIPALI PROBLEMI DI MAC SU MANET I problemi principali da tenere in considerazione nel progettare un protocollo MAC per reti wireless ad hoc sono i seguenti: Massimizzare l'efficienza dell uso della banda: efficienza significa massimizzare il rapporto tra banda per i dati trasmessi e banda totale, ovvero è necessario minimizzare l overhead per la trasmissione di informazioni di controllo. Supporto per la QoS: a causa della natura delle reti wireless ad hoc, fornire QoS è molto difficile. Il protocollo MAC deve avere dei meccanismi di prenotazione delle risorse che prendano in considerazione l'inaffidabilità dei link ad hoc e la mobilità dei nodi. Sincronizzazione: necessaria per le tecniche di prenotazione di risorse come i sistemi Time Division Multiple Access. Terminale nascosto (hidden) o esposto (exposed). Canale con errori: quando un nodo sta ricevendo dati, nessun altro nodo vicino, a parte il trasmittente, può trasmettere. Un nodo dovrebbe avere accesso solo quando la sua trasmissione non danneggia trasmissioni già in corso. Un protocollo MAC dovrebbe garantire accesso ai nodi in maniera tale che le collisioni vengano minimizzate. Inoltre il protocollo deve assicurare che tutti i nodi vengano trattati equamente rispetto all'allocazione della banda. Assenza di coordinamento centralizzato: i nodi devono essere schedulati in maniera distribuita per guadagnare l'accesso al canale. Questo richiede scambio di informazioni di controllo. Il protocollo MAC deve limitare questo overhead. Mobilità dei nodi: i nodi in una rete wireless ad hoc sono mobili per la maggior parte del tempo. Il protocollo MAC deve tenere conto di questo fattore per fare in modo che le performance del sistema non vengano eccessivamente degradate, in quando la mobilità induce errori, disconnessioni e limita l'efficacia di prenotazione di banda. Terminale nascosto Il problema del terminale nascosto si riferisce alla collisione di pacchetti al nodo ricevente dovuta alla trasmissione simultanea di quei nodi che non sono all'interno del range di trasmissione diretta del trasmittente ma sono all'interno di quello del ricevente. La collisione avviene quando 82

83 RETI DI CALCOLATORI 2 Capitolo 6 entrambi i nodi trasmettono pacchetti nello stesso istante di tempo, senza accorgersi della trasmissione dell'altro. Se entrambi i nodi S1 e S2 trasmettono al nodo R1 allo stesso tempo, i loro pacchetti collidono a R1. Questo accade perché sia S1 che S2 sono nascosti l'uno all'altro e quindi le trasmissioni di uno non sono avvertite dall'altro. Terminale esposto Il problema del terminale esposto si riferisce alla impossibilità di un nodo, che è bloccato dalla trasmissione di un nodo vicino, di trasmettere ad un altro nodo. Se la trasmissione dal nodo S1 al nodo R1 è già in corso, il nodo S3 non può trasmettere al nodo R2 anche se R2 è fuori portata da S1 e non sarebbe disturbato dalla comunicazione già in corso. OBIETTIVI DI UN PROTOCOLLO MAC PER MANET Gli obiettivi seguenti sono quelli più importanti di cui un protocollo MAC deve tenere conto: le operazioni del protocollo devono essere distribuite; il protocollo deve fornire supporto alla QoS per il traffico in tempo reale; il ritardo dell'accesso avvertito da ogni pacchetto va minimizzato; utilizzo efficiente della banda; il protocollo deve assicurare un'allocazione equa delle risorse; minimizzare l'overhead dovuto allo scambio di informazioni di controllo; contenere gli effetti dovuti ai fenomeni del terminale nascosto/esposto; il protocollo deve essere scalabile; deve avere meccanismi per il controllo dell'energia utilizzata; e per l'adaptive data rate control; uso di antenne direzionali, se possibile; sincronizzazione tra i diversi nodi per la prenotazione della banda. CLASSIFICAZIONE DEI PROTOCOLLI MAC I protocolli MAC per reti wireless ad hoc possono essere classificati in numerose categorie, basandosi su vari criteri, ma i tre tipi di base sono i seguenti: 83

84 RETI DI CALCOLATORI 2 Capitolo 6 Protocolli Contention-Based: la contesa avviene senza alcuna prenotazione; nessuna garanzia di QoS; iniziati dal mittente oppure dal ricevitore (quelli iniziati dal mittente possono essere su canale singolo oppure su canali multipli). Protolli Contention-Based con prenotazione: per il traffico real time, si prenota la banda a priori; sincroni, necessitano di un clock globale (difficile e costoso da ottenere); asincroni, usano il tempo relativo. Protocolli Contention-Based con scheduling: i pacchetti vengono schedulati sui nodi stessi; tutti i nodi sono trattati equamente (nessuna starvation); lo scheduling può essere usato per forzare la priorità (vincoli real-time); nello scheduling vengono presi in considerazione anche altri parametri (gestione della energia). MACAW: PROTOCOLLI CONTENTION-BASED Questo protocollo è basato su Multiple Access Collision Avoidance (MACA) proposto come alternativa a CSMA che soffre dei problemi del terminale nascosto (molte collisioni) ed esposto (scarso utilizzo della banda a disposizione). Inoltre è basato su RTS/CTS, usato in IEEE con variante ACK. 84

85 RETI DI CALCOLATORI 2 Capitolo 6 La Collision Detection non è sempre possibile (ad esempio: radio half-duplex). Usa Exponential backoff (IEEE DCF): quando si trasmette un pacchetto si sceglie un backoff a caso in [0,CW] dove CW è la contention window compresa tra CW min e CW max ; quando il medium è libero si decrementa il contatore (BO), sospendendo quando il medium è occupato da trasmissioni; quando il contatore è zero, si trasmette RTS. Se settiamo un CW ampio, gli intervalli di backoff sono più lunghi e quindi andiamo incontro a maggiori ritardi, mentre con CW piccolo sono possibili maggiori collisioni. Da CSMA a MACA Il protocollo MACA fu proposto come alternativa al tradizionale protocollo Carrier Sense Multiple Access (CSMA) usato nelle reti wired. Nel protocollo CSMA, il trasmittente prima sente il canale per cercare la portante. Se questa è presente riprova dopo un periodo di tempo casuale. Altrimenti trasmette il pacchetto. CSMA controlla lo stato del canale solo al trasmittente, non risolvendo il problema del terminale nascosto. Inoltre l'utilizzo della banda è poco efficiente a causa del problema del terminale esposto. MACA non fa uso del carrier-sensing multiple access, usa due pacchetti addizionali: request-tosend (RTS) e clear-to-send (CTS). Quando un nodo vuole trasmettere un pacchetto dati, prima trasmette un pacchetto RTS. Il nodo ricevitore, alla ricezione del RTS, se è pronto a ricevere dati trasmette un pacchetto CTS. Una volta che il trasmittente riceve il CTS senza errori, inizia la trasmissione dei dati. Se il pacchetto trasmesso viene perso, il nodo usa l'algoritmo di binary exponential backoff (BEB) per fare backoff per un periodo di tempo random prima di riprovare. Nel meccanismo BEB, ogni volta che si verifica una collisione il nodo raddoppia il massimo nella sua finestra di backoff (CW max ). I nodi vicini, che sentono il trasmittente inviare il pacchetto RTS, non trasmettono per un periodo abbastanza lungo per permettere che possa ricevere il CTS. I pacchetti RTS e CTS contengono informazioni sulla durata della trasmissione. Un nodo vicino al ricevente, dopo aver ascoltato il CTS, rinvia (nel tempo) le proprie trasmissioni fino a quando il ricevente riceve dati. Quindi MACA risolve il problema del terminale nascosto. Analogamente, un nodo che riceve un RTS, rinvia le proprie trasmissioni solo per un piccolo periodo di tempo, affinché il trasmittente possa ricevere il CTS. Se non viene ascoltato nessun CTS durante il periodo di attesa, il nodo è libero di trasmettere. Un nodo che ascolta solo un pacchetto RTS è libero di trasmettere simultaneamente a chi ha trasmesso il RTS. Quindi in MACA viene risolto anche il problema del terminale esposto. 85

86 RETI DI CALCOLATORI 2 Capitolo 6 Da MACA a MACAW MACA nonostante risolva i problemi del terminale nascosto ed esposto, ne presenta ancora altri, che sono il motivo dello sviluppo del protocollo MACAW. Starvation (di un solo nodo) La strategia di exponential backoff può portare a starvation. Se S1 e S2 hanno molto traffico e S1 prende il canale, i pacchetti di S2 collidono e S2 aumenta la CW. La probabilità che S2 prenda il canale diminuisce di molto. Se vi sono pochi nodi che contendono il canale, non ha senso selezionare valori di backoff molto diversi tra loro. Nel momento in cui un nodo si accorge che il suo backoff è molto ampio rispetto agli altri, può prendere il valore di backoff di un altro nodo, che intanto è già stato decrementato. La soluzione consiste nell'inserire nell'header dei pacchetti il valore corrente del backoff del nodo che li trasmette. Un nodo che lo riceve ne copia il valore permettendo così una certa equità nella distribuzione delle risorse, in quanto i valori di backoff tendono ad essere molto vicini tra di loro. Se vi sono più nodi che copiano il valore di backoff si presenta comunque una situazione critica. Variazione contatore Il contatore di backoff viene aggiornato troppo velocemente, sia in caso di successo che in caso di collisione. Il fatto che il valore viene portato al minimo dopo ogni successo aumenta la probabilità delle collisioni prima che il contatore aumenti. La soluzione di MACAW è il Multiplicative Increase and Linear Decrease (MILD). Con questo meccanismo il contatore viene moltiplicato per 1,5 in caso di collisione e decrementato di 1 in caso di successo. Priorità dei flussi In MACA il meccanismo BEB viene eseguito per nodo, non permettendo quindi di considerare flussi diversi con diverse priorità. La soluzione di MACAW consiste nella gestione separata di ogni flusso; il nodo esegue l'algoritmo BEB in modo indipendente per ogni coda. Lentezza del recupero degli errori In aggiunta ai pacchetti RTS e CTS usati in MACA, MACAW usa un altro pacchetto di controllo chiamato acknowledgment (ACK). In MACA la responsabilità di recuperare gli errori di trasmissione è affidata al transport layer. La maggior parte delle implementazioni di TCP hanno un timeout minimo di circa 0,5 secondi. Quindi il ritardo con cui ci si accorge di un errore è significativo. In MACAW tale responsabilità è affidata al data link layer, che può eseguire il compito in maniera più veloce. Dopo la ricezione di ogni pacchetto, il nodo ricevente invia un pacchetto ACK di avvenuta ricezione. Se il trasmittente non riceve l'ack, incrementa il contatore di backoff per provare ad inviare di nuovo i dati. Se l ACK viene perso durante la trasmissione, il mittente assume che i dati non siano arrivati e quindi 86

87 RETI DI CALCOLATORI 2 Capitolo 6 riprova la trasmissione inviando un RTS. Il destinatario invece di rispondere con il CTS, si accorge che il RTS è per lo stesso pacchetto dati e rimanda l ACK. A questo punto il mittente capisce che i dati sono arrivati ed il primo ACK è stato perso. Problemi di nodo esposto (nodi sorgente vicini) In MACA un nodo esposto, che riceve solo RTS ma non il CTS, può trasmettere insieme al mittente. Quando è già esistente una trasmissione tra il nodo S1 e R1, il nodo S2 è libero di trasmettere. Il pacchetto RTS di S2 arriva a R2, ma il CTS da R2 collide a S2 con i dati trasmessi dal nodo S1. Come risultato il contatore di backoff di S2 cresce più del necessario. Un nodo esposto, che può sentire solo il RTS e non il CTS, non sa se lo scambio RTS-CTS è andato a buon fine. La soluzione di MACAW è quella di introdurre un altro pacchetto chiamato DS (data sending) inviato prima di trasmettere i dati, al cui interno è indicata anche la durata della trasmissione. Un nodo esposto ascolta DS, capisce che il RTS- CTS era andato a buon fine anche se non aveva ascoltato il CTS, e aspetta fino a quando la trasmissione non è terminata. In questa maniera si evita che il nodo S2 ritrasmetta dopo un tempo casuale, magari durante la trasmissione tra S1 e R1 con conseguenti ulteriori collisioni e incremento del contatore di backoff. Ricevitori vicini Supponiamo che ci sia una trasmissione in corso tra S1 e R1. S2 vuole trasmettere a R2 ed invia un RTS, ma R2 non può rispondere in quanto vicino di R1. S2 non è a conoscenza di questa situazione, quindi incrementa il proprio contatore di backoff dopo ogni RTS senza risposta. La soluzione adottata da MACAW consiste in un ulteriore pacchetto: request-forrequest-to-send (RRTS). R2 ricevendo gli RTS di S2, capisce che c'è un nodo che ha dei dati da trasmettergli. Potendo ascoltare la trasmissione tra S1 e R1 può capire quando il canale è libero. Quindi, quando si accorge che la trasmissione tra S1 e R1 è terminata invia un RRTS a S2, che è in pratica un invito a S2 a inviargli un RTS. I nodi vicini a R2 ascoltano RRTS e rimangono in silenzio per due slot, quelli necessari allo scambio RTS-CTS tra S2 e R2. S2, ricevendo RRTS da R2, capisce che ora R2 è disposto a ricevere i suoi dati ed invia RTS. In questa situazione R2 agisce da procuratore di S2 in quanto contende per lui il canale. Le 4 osservazioni base per MACAW La congestione che importa è lato ricevitore e non mittente. Questa considerazione rende CSMA inadatto per reti wireless ad hoc, quindi il meccanismo RTS-CTS-DATA di MACA diventa necessario. La congestione dipende dalla posizione del ricevitore, quindi invece di considerare un unico contatore di backoff, si usano contatori separati per ogni flusso. Il riconoscimento della congestione non è un problema locale ma globale, bisogna quindi copiare i valori di backoff nei 87

88 RETI DI CALCOLATORI 2 Capitolo 6 pacchetti inviati. Per la contesa del canale, le informazioni devono essere propagate a tutti i nodi potenzialmente coinvolti: DS e RRTS. PROTOCOLLI CONTENTION BASED CON PRENOTAZIONE (D-PRMA) I protocolli contention based con meccanismi di prenotazione, consentono ai nodi di prenotare la banda di cui hanno bisogno. È quindi possibile fornire servizi di QoS per il traffico real time. D-PRMA Distributed Packet Reservation Multiple Access (D-PRMA) è un protocollo basato sullo schema Time Division Multiple Access (TDMA) in cui il canale viene suddiviso in frame di uguale e fissata lunghezza lungo l asse del tempo. Ogni frame è diviso in s slot, ed ogni slot è suddiviso in m minislot. Ogni minislot può essere ulteriormente diviso in 2 campi: RTS-BI e CTS-BI, dove BI sta per Busy Indication. Questi campi di controllo sono usati per la prenotazione degli slot e per risolvere il problema del terminale nascosto. Tutti i nodi che hanno pacchetti da inviare contendono sul primo minislot di ogni slot. I restanti m-1 minislot sono garantiti al vincitore della contesa. Inoltre lo stesso slot in tutti i frame seguenti possono essere garantiti al vincitore fino a quando non termina la sua trasmissione. Se nessun nodo vince la contesa al primo minislot, i successivi minislot saranno usati per continuare la contesa fino a quando un nodo non la vincerà. All interno di uno slot prenotato la comunicazione tra il nodo sorgente e il nodo destinazione viene effettuata tramite il time division duplexing (TDD) o il frequency division duplexing (FDD). Un certo periodo all inizio di ogni minislot è riservato per il carrier sensing. Se un nodo si accorge che il canale è idle al minislot 1, trasmette l RTS (slot reservation request) alla destinazione che intende raggiungere tramite la parte RTS/BI del minislot corrente. Se il pacchetto RTS viene ricevuto con successo, il ricevente risponde inviando un pacchetto CTS nel campo CTS/BI dello stesso minislot. Se il mittente riceve il CTS correttamente, allora può usare i rimanenti minislot (dal 2 al minislot m). Al fine di priorizzare i nodi che trasmettono traffico realtime (voce) rispetto ai nodi che trasmettono normale traffico di dati, in D-PRMA vengono seguite 2 regole: 88

89 RETI DI CALCOLATORI 2 Capitolo 6 Regola 1: i nodi che hanno traffico realtime contendono con probabilità p=1 per i minislot 1. I nodi che hanno traffico dati cioè non realtime, contendono invece con probabilità p<1. Per i rimanenti m-1 minislot, tutti i nodi contendono il canale con probabilità p<1. Regola 2: solo i nodi con traffico realtime possono usare lo slot vinto per tutti i frame successivi (finché ha dati da trasmettere) mentre i nodi con traffico dati devono vincerlo ad ogni frame. Soluzioni a terminali nascosti ed esposti Quando un nodo vince la contesa in minislot 1, gli altri terminali non devono usare i rimanenti m-1 minislot per la contesa (regola 1). Inoltre quando uno slot è riservato nei frame successivi, altri nodi non devono contenderlo (regola 2). Il meccanismo RTS-CTS a inizio minislot cerca di garantire la regola 1: il vincente trasmette dal minislot 2, avendo ricevuto il CTS nel minislot 1. Tutti i nodi che ascoltano il CTS non sono autorizzati a trasmettere; se un nodo nascosto ascolta solo il CTS non trasmette; se un nodo esposto ascolta solo il RTS può trasmettere ma solo se è half duplex, altrimenti attende; se c è collisione su RTS o CTS al minislot 1, gli altri minislot vengono comunque usati per la contesa. Il meccanismo RTS-CTS a inizio minislot garantisce la regola 2: quando uno slot è riservato nei frame successivi, gli altri nodi non devono contenderlo; il ricevitore di uno slot riservato trasmette un segnale di busy indication (BI) attraverso la parte RTS-BI del minislot 1 dello stesso slot in ogni frame seguente, senza eseguire carrier sense. Anche il mittente esegue una funzione simile trasmettendo il segnale BI attraverso la parte CTS-BI del minislot 1 dello stesso slot in ogni frame seguente; qualsiasi nodo che ascolta il segnale BI, sa che lo slot è occupato; inoltre, il fatto che il ricevitore trasmette BI elimina il problema del terminale nascosto, siccome tutti i vicini del ricevitore possono ascoltare il segnale BI dal mittente. Quando non c è più necessità di uso, non viene più occupato da BI la parte RTS-BI o CTS-BI del minislot. CONTENTION BASED CON SCHEDULING I protocolli che ricadono sotto questa categoria sono focalizzati sull invio dello scheduling di pacchetti e la trasmissione programmata dei nodi. 89

90 RETI DI CALCOLATORI 2 Capitolo 6 Distributed Priority Scheduling and Medium Access (DPS) Ci sono due meccanismi per fornire QoS alle connessioni wireless ad hoc. La prima tecnica chiamata Distributed Priority Scheduling (DPS) aggiunge etichette di priorità ai nodi e pacchetti head of line ai pacchetti di controllo e di dati. Ottenendo informazioni sui pacchetti trasmessi ai nodi vicini, un nodo costruisce una tabella di schedule tramite la quale determina il suo rango rispetto ai nodi vicini. Questo rango è incorporato nel meccanismo di calcolo di backoff per fornire una schedulazione approssimata basata sul rango dei nodi. Il secondo schema basato Multihop Coordination estende il DPS per fornire scheduling su path multihop. I nodi downstream nel path di destinazione incrementano la priorità del pacchetto al fine di compensare l eccessivo ritardo occorso nei pacchetti upstream. DPS DPS usa il meccanismo RTS-CTS-DATA-ACK per lo scambio di pacchetti. Il pacchetto RTS trasmesso da un nodo trasporta l indice di priorità del pacchetto data da trasmettere. La priorità può essere il ritardo massimo del pacchetto data. Il nodo ricevente copia la priorità dal pacchetto RTS e lo trasporta (piggy-back) insieme all ID del nodo sorgente nel pacchetto CTS. I nodi vicini che ricevono il pacchetto RTS o il CTS, inclusi i nodi nascosti, prendono l informazione sulla priorità ed aggiungono una riga nella loro tabella di scheduling per il pacchetto da trasmettere. Quando il nodo sorgente trasmette il pacchetto DATA, le informazioni del pacchetto head of line, che consistono nell ID della destinazione e della sorgente insieme alle informazioni sulla priorità, sono trasportate all'interno del pacchetto DATA (i pacchetti head of line di un nodo si riferiscono al prossimo pacchetto da trasmettere). Queste informazioni sono copiate dal ricevitore nel pacchetto ACK. I nodi vicini, che ricevono i pacchetti DATA o ACK, ricavano le informazioni trasportate ed aggiornano le loro tabelle di scheduling. Quando un nodo ascolta un pacchetto ACK, rimuove dalla sua tabella ogni entry creata per il corrispondente pacchetto data. La figura illustra il piggy-backing e il meccanismo di aggiornamento delle tabelle di scheduling. Il nodo 1 ha bisogno di trasmettere il pacchetto 1 con indice di priorità 9 al nodo 2. Prima trasmette un pacchetto RTS, che trasporta informazioni circa il suo pacchetto DATA. Lo stato iniziale della ST 90

91 RETI DI CALCOLATORI 2 Capitolo 6 (tabella di scheduling) del nodo 4 che è vicino al nodo 1 e 2, è mostrata nella figura ST (a). Il nodo 4, ascoltando questo pacchetto RTS, ricava le informazioni sulla priorità trasportata e crea una entry corrispondente nella sua tabella di scheduling come mostrato in ST (b). Il nodo di destinazione che è il 2, invia un pacchetto di CTS. Il pacchetto data reale è inviato dal nodo sorgente nel momento in cui riceve il pacchetto CTS. Questo pacchetto DATA trasporta le informazioni della priorità riguardanti il pacchetto head of line del nodo 1. Ascoltando questo pacchetto data, i vicini del nodo 4 creano una entry corrispondente per il pacchetto head of line del nodo 1 nella loro tabella di scheduling. ST (c) mostra lo stato aggiornato della ST del nodo 4. Infine il nodo ricevente invia un pacchetto ACK al nodo 1 quando questo pacchetto è ascoltato dal nodo 4, esso rimuove la entry creata per il corrispondente pacchetto DATA dalla sua ST. Lo stato nella tabella di scheduling, alla fine di questa sessione di trasferimenti dati è descritta in ST (d). Multihop Coordination Quando il nodo riceve un pacchetto, dovrebbe aver già ricevuto l indice di priorità del pacchetto trasportato nel precedente pacchetto RTS. Nel caso in cui il nodo è un nodo intermediario che deve inoltrare il pacchetto, calcola un nuovo indice di priorità del pacchetto DATA in maniera ricorsiva, basandosi sui valori di priorità dei pacchetti ricevuti. 91

92 RETI DI CALCOLATORI 2 Capitolo 7 CAPITOLO 7 ROUTING PROTOCOLS PER AD-HOC WIRELESS NETWORKS INTRODUZIONE La topologia in una rete wireless ad hoc può cambiare in modo casuale. I protocolli di routing, che trovano un percorso che i dati devono seguire dal nodo sorgente al nodo destinazione in ambiente wired, non possono essere direttamente applicati nell ambiente wireless a causa della dinamicità della topologia, assenza di una infrastruttura stabile per l amministrazione centralizzata, poca banda a disposizione e vincoli sulle risorse (energia) dei nodi. PROBLEMI DEI PROTOCOLLI DI ROUTING SU MANET I maggiori problemi che un protocollo di routing progettato per una rete wireless ad hoc deve affrontare sono: mobilità, vincoli sulle risorse, gestione degli errori, problemi del terminale nascosto e del terminale esposto. Mobilità La topologia di una rete wireless ad hoc è molto dinamica a causa della mobilità dei nodi, quindi le trasmissioni esistenti soffrono di frequenti path breaks, dovuti al movimento dei nodi intermedi al path, o al movimento degli end node. Le strategie per trovare path alternativi usate nelle reti wired sono di lenta convergenza e quindi non adatte ad uno scenario dove le interruzioni sono così frequenti. Vincoli sulla banda In una rete wireless, la banda è limitata e quindi il data rate che può offrire è minore di quello di una rete wired. Questo richiede che i protocolli di routing usino la banda in modo parsimonioso, mantenendo l overhead il più basso possibile. A causa di frequenti cambiamenti della topologia, mantenere la consistenza delle informazioni sulla rete in tutti i nodi, produce un overhead di controllo che può causare un uso molto inefficiente della banda. Canale broadcast ed error prone La natura broadcast del canale radio pone un problema molto importante nelle reti wireless ad hoc. Inoltre i protocolli di routing devono interagire con il MAC layer per trovare rotte alternative attraverso link di maggiore qualità. Problema del terminale nascosto/esposto Il problema del terminale nascosto si riferisce alle collisioni dei pacchetti al nodo ricevente, dovuti alla trasmissione simultanea di nodi che non sono all interno del range di trasmissione del mittente ma lo sono in quello del ricevente. Il problema del terminale esposto si riferisce alla impossibilità a trasmettere di un nodo, in quanto bloccato da trasmissioni che avvengono tra nodi a lui vicini. 92

93 RETI DI CALCOLATORI 2 Capitolo 7 Vincoli sulle risorse I nodi di una rete wireless ad hoc hanno risorse limitate in termini di durata della batteria e potenza di calcolo, quindi i protocolli di routing le devono gestire ottimamente. Caratteristiche di un protocollo di routing ideale per MANET Un algoritmo di routing deve essere: completamente distribuito in quanto il routing distribuito è più tollerante ai guasti di un routing centralizzato che ha anche il problema del singolo punto di fallimento; si deve adattare ai frequenti cambi di topologia causati dalla mobilità dei nodi il calcolo delle rotte e la loro gestione deve coinvolgere il minimo numero di nodi. Ogni nodo della rete deve avere un accesso veloce alle rotte per minimizzare il tempo di setup della connessione; localizzato: non deve essere mantenuto nessuno stato globale della rete; loopfree: assenza di cicli; il numero delle collisioni deve essere basso limitando il numero di comunicazioni in broadcast fatte da ogni nodo; deve convergere verso rotte ottimali in assenza di modifiche e tale convergenza deve essere veloce; deve usare ottimamente le scarse risorse a disposizione, come la banda, potenza di calcolo e batterie; ogni nodo della rete deve provare a memorizzare le informazioni riguardanti solo la topologia locale stabile; deve essere in grado di fornire un certo livello di QoS. CLASSIFICAZIONE DEI PROTOCOLLI DI ROUTING I protocolli di routing di una rete wireless ad hoc possono essere classificati in molti tipi in base a differenti criteri. La classificazione non è mutuamente esclusiva e quindi alcuni protocolli ricadono in più di una classe. 93

94 RETI DI CALCOLATORI 2 Capitolo 7 Vi sono 4 macro-categorie di protocolli: 1. Basati sul meccanismo di aggiornamento di informazioni di routing: Proactive (table driven): ogni nodo mantiene informazioni sulla topologia della rete tramite tabelle attraverso l'aggiornamento periodico delle informazioni di routing. Tali informazioni vengono generalmente inviate nella rete in flooding. Reactive (on demand): i nodi non mantengono informazioni sulla topologia della rete. Ottengono il path necessario quando è richiesta una connessione, usando una procedura per stabilire il path (nessuno scambio periodico di informazioni). Ibridi: è una combinazione delle precedenti. I nodi all interno di una certa distanza da un nodo o all interno di una particolare regione geografica, sono detti essere all interno della zona di routing di un determinato nodo. Per effettuare un routing dentro questa zona, è usato un approccio table driven mentre per i nodi all esterno è usato l approccio on demand. 2. Basati su informazioni temporali: da tener presenti per la dinamicità della topologia. Basati su informazioni temporali passate (stabilità di un link assestato): usano le informazioni dello stato passato di un collegamento o dello stato di questo nel momento in cui viene presa la decisione sul routing. Basati su informazioni temporali future: usano informazioni sullo stato futuro atteso di un collegamento wireless per prendere delle decisioni di routing approssimate. 3. Basati sulla topologia: il routing su wired è basato su una struttura gerarchica per evitare che i core router (i router sul cuore del sistema, ad es. sulle dorsali, etc.) debbano gestire troppe informazioni; nelle reti wireless ad hoc è possibile usare sia una topologia flat che gerarchica grazie al relativo piccolo numero di nodi. Topologia flat: usano uno schema di indirizzamento simile a quello utilizzato nelle reti Ethernet IEEE Assumono un unico sistema di indirizzamento nella parte connessa della rete. Topologia gerarchica: questi protocolli fanno uso di una gerarchia logica nella rete e di uno schema di indirizzamento associato. La gerarchia può essere basata su informazioni geografiche oppure sulla distanza in hop. 4. Basati sulla utilizzazione di risorse specifiche: utilizza informazioni circa l hardware del nodo. Routing power aware: le decisione di routing vengono prese in modo tale da minimizzare il consumo di energia sia localmente che globalmente nella rete Routing assistito da informazioni geografiche: i protocolli di questa categoria migliorano le performance del routing e riducono l overhead di controllo utilizzando le informazioni geografiche disponibili. Confronto tra protocolli proattivi e reattivi L algoritmo reattivo non spreca banda, ma nel momento in cui vi è una comunicazione trova il percorso inondando la rete di pacchetti. Il proattivo è estremamente veloce, il reattivo non ha un buon tempo di reazione in quanto deve prima trovare il path e poi effettuare la connessione. 94

95 RETI DI CALCOLATORI 2 Capitolo 7 Il proattivo ha l obiettivo di simulare una infrastruttura. Entrambi si occupano di usare e gestire informazioni per il routing; la differenza consiste in quando queste informazioni vengono costruite. I protocolli proattivi: mantengono le rotte (distribuite); hanno un piccolo ritardo per il routing ma consumano risorse per il mantenimento; mantengono rotte che potrebbero non essere attive. I protocolli reattivi : hanno un basso overhead; un ritardo più elevato per il routing; risparmiano risorse, in quanto non memorizzano informazioni di routing; i pacchetti contengono l intero path (calcolato alla sorgente). DESTINATION SEQUENCED DISTANCE-VECTOR PROTOCOL (DSDV) I protocolli table driven sono le estensioni dei protocolli di routing delle reti wired. Mantengono le informazioni sulla topologia globale nella forma di tabelle in ogni nodo. Queste tabelle devono essere aggiornate frequentemente per mantenere la consistenza e far si che le informazioni sulla rete siano accurate. DSDV è una versione migliorata dell algoritmo distribuito di Bellman-Ford, nel quale ogni nodo ha una tabella che contiene la distanza più breve, sul path più corto, verso ogni altro nodo della rete. Questo protocollo prevede aggiornamenti delle tabelle con sequence number incrementali per prevenire i cicli e per una veloce convergenza. Le rotte verso tutte le destinazioni sono prontamente disponibili in ogni nodo ed in ogni momento. Le tabelle sono scambiate tra nodi vicini ad intervalli regolari, per mantenere una lista aggiornata della topologia della rete. Tali tabelle vengono anche inoltrate, se un nodo osserva un cambiamento significativo nella topologia locale. Gli aggiornamenti della tabella sono di due tipi: incrementali e completi. Sono iniziati da un nodo destinazione con un sequence number pari (incremento di 2 ogni volta) che è sempre più grande dei precedenti. Ogni nodo che riceve l update può modificare la propria tabella oppure combinarla con altre versioni, che può ricevere da altri nodi. 95

96 RETI DI CALCOLATORI 2 Capitolo 7 Il nodo 1 è il nodo sorgente, il 15 la destinazione. Tutti i nodi contengono informazioni sulla topologia globale quindi la rotta è già disponibile. La tabella di routing nella tabella 1 indica che la rotta più breve è disponibile attraverso il nodo 5 e che la distanza è di 4 hop. La riconfigurazione di un path, usato da un trasferimento di dati in corso, è gestito dal protocollo nel modo seguente: il nodo alla fine del link rotto invia un messaggio di aggiornamento della tabella di routing, nella quale il peso del link rotto vale infinito, con un sequence number maggiore di quello che aveva ricevuto. Consideriamo il caso in cui il nodo 11 si muove dalla sua posizione corrente come mostrato in figura. Quando un nodo vicino percepisce la rottura del link, setta tutti i path che passano attraverso quel link a distanza infinita. Per esempio, quando il nodo 10 viene a conoscenza della rottura del link, setta il path del nodo 11 a infinito ed invia l aggiornamento della tabella ai suoi vicini. Quando il nodo 14 riceve l aggiornamento, informa i suoi vicini sulla distanza più corta al nodo 11. Tutti i nodi ricevendo il nuovo aggiornamento con un sequence number più alto, settano la nuova distanza al nodo 11. Alcuni commenti La disponibilità delle rotte verso ogni destinazione ed in ogni momento implica un minore ritardo nel setup della connessione. Il meccanismo degli aggiornamenti incrementali con i sequence number consente di adattare i protocolli esistenti su reti wired alla reti wireless ad hoc. Gli aggiornamenti dovuti ai link rotti producono un grosso overhead che, in una piccola rete con una alta mobilità o una grande rete con poca mobilità, può completamente saturare la banda disponibile; quindi questo protocollo non è scalabile in ambiente wireless ad hoc. Un altro svantaggio di DSDV è che per ottenere informazioni circa un particolare nodo destinazione un nodo deve aspettare un messaggio di aggiornamento della tabella inviato dallo stesso nodo 96

97 RETI DI CALCOLATORI 2 Capitolo 7 destinazione. Questo ritardo può causare la presenza di informazioni di routing non più valide nelle tabelle dei nodi. DYNAMIC SOURCE ROUTING PROTOCOL (DSR) Il protocollo DSR è un protocollo on demand progettato per minimizzare l overhead dovuto ad informazioni di controllo. Questo è possibile eliminando lo scambio periodico delle tabelle di routing. La differenza maggiore tra i protocolli table driven e quelli on demand, è che i primi non hanno bisogno di periodici hello packet, usati dai nodi per informare i propri vicini della loro presenza. L approccio di base dei protocolli on demand durante la fase di costruzione delle rotte è di stabilire una rotta tramite il flooding di pacchetti RouteRequest nella rete. Il nodo destinazione, ricevendo il pacchetto RouteRequest, risponde inviando un pacchetto RouteReply indietro alla sorgente, che contiene la rotta attraversata dal pacchetto RouteRequest ricevuto. Ogni nodo, dopo aver ricevuto un RouteRequest, lo inoltra in broadcast ai suoi vicini se non lo ha già fatto e se non è il nodo destinazione. Ogni RouteRequest contiene un sequence number generato dal nodo sorgente e dal path attraversato. Un nodo che riceve un RouteRequest controlla il sequence number prima di inoltrarlo, e lo inoltra solo se non è un duplicato. Il sequence number è usato per evitare la formazione di cicli e la trasmissione multipla dello stesso messaggio ricevuto da path multipli. È possibile applicare numerose ottimizzazioni al protocollo DSR di base, per migliorarne le performance. DSR usa una cache nei nodi intermedi, popolata con le rotte che possono essere estrapolate dai pacchetti inoltrati. Tale cache è utilizzata dai nodi intermedi per rispondere al nodo sorgente alla ricezione di un RouteRequest se hanno una rotta per la destinazione indicata. Operando in modalità promiscua, un nodo intermedio acquisisce informazioni sulle rotte non più disponibili. Tali informazioni sono utilizzate per aggiornare la cache, in modo tale da mantenere solo informazioni sulle rotte attive. Per evitare un flooding troppo frequente di RouteRequest verso una rotta che è in un altra partizione della rete, viene applicato un algoritmo di backoff esponenziale. DSR permette anche il trasporto di pacchetti data nei pacchetti di RouteRequest. Se non sono permesse ottimizzazioni, il protocollo DSR è molto semplice. Dopo la ricezione del pacchetto di RouteRequest da parte del nodo 1, tutti i nodi vicini (2, 5, 6) lo inoltrano. Il nodo 4 lo riceve sia dal nodo 2 che dal nodo 5, inoltra il primo pacchetto che riceve. La 97

98 RETI DI CALCOLATORI 2 Capitolo 7 RouteRequest viene propagata fino alla destinazione che risponde con la RouteReply. Il nodo sorgente seleziona la rotta migliore ed invia i dati. Ogni pacchetto dati contiene l intero path. Quando un nodo intermedio si muove, causando un path break, per esempio il link tra il nodo 12 e 15, viene generato un messaggio di RouteError dal nodo adiacente al link rotto. Il nodo sorgente riparte con la procedura di creazione della rotta. La cache dei nodi intermedi viene aggiornata. Se il link break è dovuto al movimento del nodo sorgente o destinazione, la sorgente inizia di nuovo il processo di discovery. Commenti su DSR Lo svantaggio principale di questo protocollo è che il meccanismo di gestione delle rotte non ripara localmente un link rotto. Il ritardo per il setup della connessione è maggiore di quello dei protocolli table driven e le performance degradano in reti con alta mobilità. L overhead per stabilire una comunicazione viene pagato solo quando necessario e per i nodi che devono comunicare. Si verificano picchi di carico di comunicazione dovuti all overhead non periodico (come per il proactive) e la dimensione di pacchetti che cresce con la distanza. Problemi di collisione nel flooding (random delay) e di contention con troppe RouteReply che risalgono verso la sorgente. L overhead dovuto al routing è direttamente proporzionale alla lunghezza del path. AD HOC ON-DEMAND DISTANCE-VECTOR (AODV) AODV usa l approccio on demand per trovare le rotte. Impiega un sequence number alla destinazione per identificare i path più recenti. La maggior differenza con il DSR è data dal fatto che il DSR memorizza l intero path da attraversare nel pacchetto alla sorgente. Invece in AODV viene memorizzato solo il next-hop. Un nodo aggiorna le informazioni sui path solo se il sequence number al destinatario del pacchetto corrente ricevuto è più grande dell ultimo sequence number memorizzato. Una RouteRequest contiene un Source ID, un Dest ID, un sequence number sorgente (SrcSeqNum), un sequence number destinatario (DestSeqNum), in ID del broadcast (BcastID), TTL. Quando un nodo intermedio riceve una RouteRequest, la inoltra o risponde con una RouteReply se conosce un path verso la destinazione. Se una RouteRequest è ricevuta più volte, i duplicati, riconosciuti dalla coppia BcastID e SrcID, verranno scartati. 98

99 RETI DI CALCOLATORI 2 Capitolo 7 Alcune caratteristiche di AODV Il maggior vantaggio di questo protocollo è che il tempo di setup della connessione è minore. Le informazioni del reverse link vengono cancellate dopo un periodo di timeout, da scegliere attentamente per evitare che un RouteReply non trovi più le informazioni richieste. Uno svantaggio di AODV è che l invio periodico di pacchetti di beacon produce un overhead. PROTOCOLLI IBRIDI: CEDAR È importante considerare le due categorie (reattivi e proattivi) come soluzioni che puntano a risolvere le due facce di una stessa medaglia. Un reattivo tenta di ottenere una route, è vero che spreca un sacco di banda ma sicuramente ottiene una route fresca mentre per il proattivo può accadere che quella trovata non sia una rotta nuova, ma una non più disponibile. CEDAR (Core Extraction Distributed Ad Hoc Routing Protocol) integra routing (proattivo) ed il supporto alla QoS. È basato sulla definizione di core node che approssimano il minimum dominating set della rete. Il dominating set (DS) di un grafo è definito come l insieme di nodi tali che ogni nodo del grafo è nel DS oppure a distanza 1 da un nodo nel DS. Quindi esiste almeno un core node all'interno di 3 hop. Il DS di cardinalità più piccola è chiamato minimum dominating set. Si cerca di creare path virtuali tra i core node. CEDAR utilizza un algoritmo distribuito per selezionare i core node. La selezione di questi nodi rappresenta la fase di core extraction, tramite la quale si crea una semplice infrastruttura in cui ogni nodo è a distanza n+1 da ogni altro nodo, dove n è il numero dei core node. CEDAR utilizza il meccanismo core broadcast per trasmettere ogni pacchetto in tutta la rete in unicast, coinvolgendo il minimo numero di nodi possibile. Per eseguire il core broadcast efficientemente, ogni core node deve conoscere i suoi vicini. Il trasferimento di informazioni tra i core node vicini produce un overhead consistente in caso di alta mobilità. Quando un core node si muove lontano dalla rete, tutti i nodi ad esso collegati devono selezionare un nuovo core node. Tale selezione, che è simile al processo distribuito di elezione di un leader, produce un consistente overhead di controllo. In CEDAR è importante stabilire path attraverso link stabili e con molta banda a disposizione. Per propagare informazioni aggiornate sullo stato dei collegamenti vengono usate due onde generate dai nodi che si trovano sul link in questione. Un'onda slow/increase lenta che propaga le informazioni circa l aumento della banda a disposizione. Una onda fast/decrease veloce che propaga informazioni circa il decrescere della banda a disposizione: le cattive notizie viaggiano più velocemente delle belle notizie!. Supponiamo ci sia un link che offre molta banda ma che sia anche molto instabile. La notizia della presenza di un link con molta banda viene annunciata agli altri nodi della rete, tramite la generazione di un'onda slow/increase, la quale viene propagata lentamente. Siccome tale nodo è anche instabile, dopo un po' di tempo diventa non più disponibile. Viene quindi generata un'onda fast/decrease per annunciare che il link non è percorribile, la quale, essendo propagata velocemente, raggiunge l'onda slow/increase annullandola. Questo meccanismo consente la propagazione di informazioni solo per link stabili. Il processo per stabilire una rotta coinvolge due fasi: 99

100 RETI DI CALCOLATORI 2 Capitolo 7 1. si trova un core path tra i source e destination dominanti; 2. si trova un path attuabile che soddisfi i requisiti di QoS specificati. Se la destinazione non è nella tabella della topologia locale, che ogni core node mantiene, viene generata una RouteRequest. Ogni core node che la riceve, verifica se il destinatario è a lui collegato. Se tale condizione non è verificata, il messaggio viene inoltrato ai vicini. Una volta che il core path è stabilito, si sceglie un path che garantisca i requisiti di QoS. Questa fase è composta da una strategia greedy: il source core node sceglie tra i nodi del core quello più vicino e con massima banda a disposizione e poi lascia a quest'ultimo il compito di iterare il processo. Consideriamo la figura 7.24 dove il nodo sorgente è il nodo 1 e quello destinazione il 15. I core node della rete sono i nodi 3, 5, 11, 12 e 13. Il nodo 5 è il dominante dei nodi 1 e 6. Il nodo 12 è il dominante del nodo 15. Quando il nodo 1 genera la RouteRequest con cui inondare tutta la rete, dichiara la coppia <source id, destination id> al suo core node. Se il nodo 5 non ha informazioni sul nodo dominante di 15, inizia il core broadcast. Tutti i core node vicini ricevono la richiesta in unicast tramite i link virtuali (come specificati in figura). Un core node dominatore del nodo destinazione risponde al core node sorgente: il nodo 12 al nodo 5. Il path tra questi due nodi costutuisce il core path. Successivamente si procede alla scelta del path in termini di QoS. Vantaggi e svantaggi Il vantaggio maggiore di CEDAR è che riesce ad eseguire sia il routing che scelte riguardanti la QoS in modo efficiente, grazie all'aiuto dei core node. La propagazione delle onde fast e slow consente di propagare solo le informazioni riguardanti link stabili. Uno svantaggio è che siccome il calcolo della rotta è effettuata solo dai core node, il movimento di uno di questi comporta un overhead significativo con conseguente impatto sulle prestazioni dell'intera rete. HIERARCHICAL STATE PROTOCOL (HSR) HSR è un protocollo di routing gerarchico multilivello, la cui idea è quella di suddividere la rete in cluster. I leader di un cluster ad un livello partecipano come nodi al cluster di livello superiore. L'uso del clustering migliora l'allocazione e la gestione delle risorse. Attraverso algoritmi distribuiti viene eletto il leader di ogni livello. Questa struttura può essere replicata su più livelli. 100

101 RETI DI CALCOLATORI 2 Capitolo 7 Ogni nodo mantiene informazioni su tutti i nodi vicini e lo stato dei link con ognuno di essi. Queste informazioni vengono inviate in broadcast all'interno del cluster ad intervalli regolari. Il leader scambia le informazioni sulla topologia tra i suoi pari nei cluster vicini. Questa topologia gerarchica richiede un indirizzo di tipo gerarchico, composto dalla sequenza di cluster leader, partendo dal top fino ad arrivare al nodo. Commenti HSR riduce la dimensione delle tabelle di routing, facendo uso di informazioni gerarchiche. Sebbene questo vantaggio sia apprezzabile, l'overhead provocato dallo scambio di informazioni tra i diversi livelli e il processo di elezione del leader, rendono questo protocollo non utilizzabile in una rete wireless ad hoc. POWER AWARE ROUTING PROTOCOLS In una rete wireless ad hoc, il consumo di energia è un fattore da tenere seriamente in considerazione dai protocolli di routing. Questo perché i router hanno gli stessi vincoli di energia che hanno i nodi. Le limitazioni sulla disponibilità di energia sono un collo di bottiglia significativo, dato dai requisiti di portabilità, dimensione delle periferiche hand-held. C'è la necessità, quindi, di usare metriche di routing che tengano conto delle capacità energetiche dei nodi della rete, per un utilizzo efficiente di questa risorsa e per aumentare la vita della rete. Minimal Energy Consumption per Packet Questa metrica aiuta a minimizzare l'energia consumata da un pacchetto che viaggia da un nodo sorgente ad un nodo destinazione. Tale energia è data dalla somma di quella consumata in ogni hop intermedio nel path. L'energia consumata in un hop intermedio è funzione della distanza tra i nodi. Questa metrica non bilancia il carico, quindi viene mantenuto un consumo uniforme nell'intera rete. Gli svantaggi di questa metrica includono la scelta di path con molti hop, impossibilità di misurare il consumo di energia di un link in anticipo quando il carico varia e l'impossibilità di prevenire lo scaricamento veloce delle batterie in alcuni nodi. Maximize Network Connectivity Questa metrica prova a bilanciare il carico tra i nodi del cut-set (il sottoinsieme di nodi della rete, la cui rimozione provocherebbe un partizionamento della rete stessa). Questa assume importanza in ambienti dove si deve assicurare la connettività della rete bilanciando il carico nel cut-set. È difficile ottenere un consumo uniforme delle batterie nel cut-set quando il traffico è molto variabile e c'è molta contesa. Minimum Variance in Node Power Level Questa metrica cerca di distribuire il carico tra tutti i nodi della rete, per mantere un pattern dei consumi il più possibile uniforme. Questo problema è molto difficile quando il numero e la dimensione dei pacchetti è variabile. 101

102 RETI DI CALCOLATORI 2 Capitolo 7 Minimum Cost per Packet Al fine di massimizzare la vita di ogni nodo della rete, questa metrica è costruita come funzione dello stato della batteria dei nodi. Il costo di un nodo diminuisce con un incremento dell'energia disponibile e viceversa. Per il routing viene usata la trasformazione della carica della batteria rimanente in un fattore di costo. Con la disponibilità di un pattern di scaricamento della batteria è possibile calcolare il costo di un nodo. Il vantaggio di questa metrica consiste nella facilità di calcolo del costo dei nodi ed allo stesso tempo viene effettuato il controllo della congestione. Minimize Maximum Node Cost Questa metrica minimizza il massimo costo per nodo per un pacchetto dopo che è già stato effettuato il routing di un certo numero di pacchetti in un determinato periodo. 102

103 RETI DI CALCOLATORI 2 Capitolo 8 CAPITOLO 8 WORLD WIDE WEB ORIGINI DEL WORLD WIDE WEB La storia del Web inizia, in un certo senso con Memex, una proposta di Vannevar Bush presente nell'articolo As we may think del luglio Bush è il direttore della ricerca militare USA nella II Guerra Mondiale, coordina tra l altro il progetto Manhattan (la prima bomba atomica) e il progetto ENIAC (il primo calcolatore). Egli cerca un modo per sfruttare l'automazione per estendere la memoria umana: Siamo alla soglie di una nuova era: l era dell informazione. La velocità con cui si produce conoscenza è molto maggiore della velocità degli strumenti con cui si accede alla conoscenza. Dobbiamo trovare una maniera per facilitare l accesso e la organizzazione delle informazioni in maniera più intuitiva. Propone quindi il Memex: uno strumento per mettere in relazione informazioni in maniera simile al cervello umano (il primo ipertesto). Prevede concetti di memorizzazione dei dati e di visualizzazione di questi, modalità operative a distanza, da remoto. L'altro maggiore passo in avanti verso il Web è stata la creazione dell'ipertesto. Il termine ipertesto (hypertext) fu coniato da Ted Nelson nel 1965 per descrivere una scrittura non sequenziale che rappresenta le informazioni come una collezione di nodi collegati. Licklider (1968) è il precursore di human-computer interface. L idea è che il computer è un mezzo per comunicare, non solo un elaboratore. Influenzato dall'idea dell'ipertesto, Tim Berners-Lee nell articolo Hypertext and CERN (marzo 1989) propone di collegare e condividere l'incredibile mole di documenti disponibili, presenti sulle varie macchine del CERN (World Wide Web). Illustrazione 1: Prima pagina del World Wide Web Nello stesso tempo, furono creati molti altri sistemi per accedere ad informazioni sparse su Internet: FTP, Gopher, Archie e WAIS. Gopher è stato il precursore del World Wide Web. È stato progettato nel 1991 come sistema distribuito per accedere alle informazioni ed è organizzato gerarchicamente. Nel marzo 1991 viene presentato un semplice browser su varie piattaforme hardware e software. 103

104 RETI DI CALCOLATORI 2 Capitolo 8 Nell agosto 1991 viene presentato al mondo intero il World Wide Web, mettendo a disposizione della intera rete tutto il codice, i programmi e la architettura (postati sulle news). Con la presentazione dei primi Web Browser grafici (Mosaic ), il traffico generato dal Web si incrementa di un fattore 10, arrivando ad essere l'1% del traffico totale. Nel 1994 viene fondata la Netscape. Nel luglio dello stesso anno, MIT e CERN fondano il WWW Consortium, in dicembre il CERN abbandona il progetto. Nel 1995 esce Windows 95 e la Microsoft lancia Microsoft Network. Netscape viene quotata in borsa e realizza incrementi da record. La Sun presenta Java, un linguaggio per eseguire programmi all interno dei browser. Nel la Microsoft rende Internet Explorer un pericoloso concorrente di Netscape. In questo periodo vi fu una dura lotta per decidere chi dovesse guidare i nuovi standard del Web. Nel 1998 Microsoft include IE nel SO, realizzando una scelta discutibile sotto il profilo etico, ma ineccepibile dal punto di vista tecnico. COMPONENTI SEMANTICHE DEL WEB Il Web ha tre componenti semantiche principali: Uniform Resource Identifier (URI), Hypertext Markup Language (HTML) e Hypertext Transfer Protocol (HTTP). Uniform Resource Identifier Accedere e manipolare risorse distribuite in tutto il Web richiede un modo per identificarle. Una risorsa Web è identificata da un Uniform Resource Identifier (URI). Una URI può essere vista come un puntatore ad una scatola nera a cui possono essere applicati dei metodi per generare risposte potenzialmente differenti in tempi differenti. Un metodo è una semplice operazione come: fetching, changing o deleting di una risorsa. La forma più popolare di URI è la Uniform Resource Locator (URL). Hypertext Markup Language (HTML) Hypertext Markup Language (HTML) fornisce una rappresentazione standard di ipertesti in formato ASCII. Deriva dal più generale Standard Generalized Markup Language (SGML). Permette di formattare testi, referenziare immagini, ed incorporare link ad altri ipertesti. I documenti HTML sono pensati per essere interpretati da un programma, come un Web browser. Hypertext Transfer Protocol (HTTP) Le operazioni sul Web dipendono dall'avere un modo standard e ben definito per permettere alle varie componenti di comunicare. Hypertext Transfer Protocol (HTTP) è il metodo più comunemente usato per trasferire risorse sul Web. Definisce il formato ed il significato dei messaggi scambiati tra le componenti del Web, come client e server. È un protocollo requestresponse: il client invia un messaggio di richiesta ed il server risponde con un messaggio di 104

105 RETI DI CALCOLATORI 2 Capitolo 8 risposta. È stateless nel senso che client e server trattano ogni scambio di messaggi indipendentemente e non è richiesto nessuna informazione sullo stato. TERMINOLOGIA I concetti fondamentali e gli standard formali del Web sono: content of the Web: il Web fornisce agli utenti l'accesso alle risorse tramite lo scambio di messaggi HTTP; software components: i trasferimenti delle informazioni sul Web coinvolgono l'interazione tra client, intermediari e server; underlying network: Internet fornisce un substrato di comunicazione per il trasporto di messaggi tra i componenti Web; standardization: la standardizzazione dei protocolli aiuta ad assicurare che i componenti software del Web possano interoperare tra di loro; web traffic and performance: l'efficienza dei componenti software e della rete sottostante ha un impatto maggiore sulla percezione dell'utente. L'analisi del traffico del Web è molto utile per migliorare l'efficienza delle comunicazioni; web applications: il caching e lo streaming di contenuti multimediali sono le due maggiori applicazioni che hanno implicazioni sulle performance e sull'esperienza dell'utente. Contenuti del Web Il Web consiste in una collezione di risorse od oggetti distribuiti in tutta Internet. Una risorsa può essere un file statico, una macchina o generata dinamicamente quando richiesta. Ogni trasferimento HTTP riguarda una singola risorsa identificata da un URI nel messaggio di richiesta. Una pagina Web è un contenitore di risorse, come un file HTML, che può includere collegamenti ad una o più risorse incluse, come immagini ed animazioni. Il download di una pagina Web coinvolge trasferimenti HTTP separati, per il contenitore e per ogni risorsa inclusa in esso. Ogni trasferimento HTTP consiste di due messaggi: la richiesta inviata dal client ed il corrispondente messaggio di risposta dal server. Un messaggio è una sequenza di byte che inizia con un header opzionale, il quale contiene informazioni di controllo. Gli header HTTP sono in formato ASCII. In aggiunta c'è anche il body, una rappresentazione di una risorsa. Componenti software Uno user agent spedisce una richiesta HTTP e manipola la risposta. L'esempio più comune di user agent è un browser Web, che genera le richieste in base all'utilità dell'utente ed esegue una varietà di altri compiti, come visualizzare le pagine Web, memorizzare i segnalibri. Un client è un programma che invia richieste HTTP e riceve le risposte. L'origin server è il programma che fornisce o genera una risorsa Web. Un server è un programma che riceve le richieste HTTP ed invia 105

106 RETI DI CALCOLATORI 2 Capitolo 8 le risposte. In pratica, il client può inviare le sue richieste HTTP ad un intermediario, un altro componente Web sulla strada verso l'origin server. Un proxy può sostenere sia il ruolo del client che del server. Può eseguire molte funzioni, come il filtraggio di richieste di siti Web indesiderati, fornire un certo grado di anonimia ai client, effettuare il caching delle risorse più richieste. HTTP è un protocollo stateless; quindi il server non deve mantenere nessuna informazioni sulla richiesta una volta che la risposta è stata inviata. Il server può ordinare allo user agent di mantenere lo stato di una serie di richieste e risposte, memorizzando un cookie. Rete sottostante La possibilità di inviare e ricevere messaggi HTTP richiede un modo per i due host di identificarsi l'un l'altro e scambiarsi informazioni. Al livello più basso, Internet fornisce un servizio di comunicazione molto basilare: la consegna di un pacchetto di dati da un host ad un altro. L'Internet Protocol (IP) coordina la consegna dei singoli pacchetti, tramite l'identificazione degli host della rete con indirizzi IP a 32 bit. Il semplice servizio di consegna dei pacchetti non soddisfa le necessità della maggior parte delle applicazioni che lavorano in rete, come il Web. Un client Web identifica un server Web con un hostname non con un indirizzo IP, e due applicazioni si scambiano messaggi HTTP non pacchetti IP. Il Domain Name System (DNS) ed il Transmission Control Protocol (TCP) risolvono il problema. Prima di contattare il server Web, il client prima traduce l'hostname in un indirizzo IP invocando una system call. Il client ed il server stabiliscono una connessione TCP, un canale logico di comunicazione che fornisce una comunicazione bidirezionale tra due applicazioni. Una volta che la connessione è stata stabilita, il client può usare la connessione TCP per inviare messaggi di richiesta HTTP al server, ed il server può rispondere con un messaggio HTTP di risposta. 106

107 RETI DI CALCOLATORI 2 Capitolo 8 Standardizzazione Protocolli standard sono di vitale importanza per assicurare che le componenti possano comunicare tra di loro. Un client deve essere in grado di inviare una richiesta con una chiara idea del possibile range di risposte che può ricevere, e il server deve essere in grado di interpretare la richiesta univocamente. Sebbene il software per il Web è stato scritto da numerose aziende ed istituti di ricerca, l'interazione tra le componenti deve essere possibile. L'Internet Engineering Task Force (IETF) è una comunità aperta di progettisti di rete, produttori e ricercatori che contribuiscono all'evoluzione ed al funzionamento di Internet. Dirige gli standard attraverso una serie di pubblicazioni ufficiali chiamate Request for Comments (RFC). Il primo documento RFC è stato pubblicato nel I documenti dell'ietf iniziano come Internet Draft, che sono documenti informali che devono essere sottoposti a revisione basandosi sui commenti della comunità. Non tutte le Internet Draft diventano RFC. Le RFC sono suddivise in categorie differenti: standards, historic, informational e experimental. Un documento standard tipicamente evolve come parte di un IETF Working Group, un gruppo creato per lavorare su una specifica di standard. Tali documenti devono soddisfare dei requisiti a diversi livelli: MUST, SHOULD e MAY. Una implementazione compliant deve soddisfare tutti i requisiti del livello MUST; una implementazione può essere considerata conditionally compliant se soddisfa tutti i requisiti del livello SHOULD. I requisiti del livello MAY sono opzionali. Questi livelli di requisiti aiutano ad assicurare interoperabilità tra diverse implementazioni. Al fine di gestire la crescita del Web, nel 1994 fu fondato il World Wide Web Consortium (W3C). Traffico e prestazioni del Web Le aspettative dell'utente di risposte veloci ha fatto si che si focalizzasse l'attenzione sui problemi di performance. La latenza è il tempo tra l'inizio di un'azione, come l'invio di un messaggio di richiesta, e la prima indicazione di una risposta. La latenza percepita dall'utente è il ritardo tra il momento in cui l'utente seleziona un link e quello in cui i contenuti richiesti iniziano ad apparire nella finestra del browser. Ogni componente ed ogni protocollo contribuisce a variare la latenza percepita dall'utente. 107

108 RETI DI CALCOLATORI 2 Capitolo 8 Il browser può avere una connessione ad Internet con una larghezza di banda relativamente piccola. Trasferire una risorsa molto grande su una connessione lenta introduce un ritardo notevole, anche se il server Web ed il resto di Internet hanno poco carico. Un workload consiste nell'insieme di tutti gli input (es. richieste HTTP) ricevute da un componente per unità di tempo. Le caratteristiche del workload, come il tempo che intercorre tra una richiesta e l'altra e la popolarità di alcune risorse, hanno importanti implicazioni sulle performance del Web. L analisi del Web viene effettuata tramite i log che forniscono una registrazione dei trasferimenti HTTP eseguiti dalle componenti software. Applicazioni Web Con l'incremento della popolarità del Web, il caching e lo streaming multimediale sono diventate applicazioni importanti. Il caching muove i contenuti più vicino all'utente. Questa è un'idea relativamente semplice che è esistita sin dai primi giorni dell'informatica. Una cache è una memoria locale di messaggi, che può essere posizionata nel browser dell'utente, nell'origin server o in una macchina che si trova sul path tra l'utente e l'origin server. Sebbene il caching migliori le prestazioni, una risposta proveniente dalla cache può differire dalla versione disponibile sull'origin server. Meccanismi di cache coherency sono usati per assicurare che i messaggi in cache siano aggiornati con quelli dell'origin server. La replica riguarda l'esplicita duplicazione di contenuti Web su più server. Il bilanciamento del carico può essere eseguito gestendo il carico dell'origin server. Un'alternativa alla replica completa dei contenuti di un sito Web consiste nella consegna di tali contenuti dalle repliche per conto dell'origin server. Questa tecnica è chiamata content distribution. Nelle applicazioni di streaming multimediale, il client esegue i frame o i sample che arrivano dal server, piuttosto che scaricare la risorsa interamente prima di eseguirla. Queste applicazioni tipicamente consumano buona parte della banda a disposizione e sono molto sensibili ai ritardi. 108

109 RETI DI CALCOLATORI 2 Capitolo 9 CAPITOLO 9 WEB CLIENTS CLIENT Per la maggior parte degli utenti il client è il Web, così come il Web è Internet. Vi sono diverse tipologie di client: browser, spider, software agent (offline browsers, co-browsers). Il client è visto come interfaccia universale a servizi: SOAP, applicazioni realmente indipendenti dalla piattaforma, pulling tradizionale incrementato con il pushing con AJAX. Il compito di un client Web è di inviare una richiesta nell'interesse di un utente e ricevere la risposta. I sistemi tipici client-server integrano l'intelligenza nel server, nel contesto Web non è così. I server continuano ad avere un numero considerevole di funzionalità da fornire, ma in pratica i client sono alquanto complessi. La maggior parte della complessità di un client proviene dai fattori ambientali che circondano il semplice scambio di richiesta-risposta: personalizzare la creazione della richiesta, interpretare la risposta, visualizzarla. BROWSER Inizialmente il browser era una implementazione di un client Web. In pochissimo tempo, è diventato il front-end per eseguire tutte le interazioni con un computer per molti utenti. Un browser è spesso considerato uno user agent piuttosto che un semplice client Web in quanto avvia una richiesta Web. Il primo browser fu sviluppato nei laboratori del CERN, ed è stato più che un semplice prototipo: ha settato i parametri attorno a cui sono stati sviluppati i browser moderni. Inizialmente i browser erano naturalmente testuali, ma velocemente si passa a browser grafici (Mosaic). Un browser prima di tutto implementa un client Web, costruisce ed invia una richiesta HTTP, poi riceve, analizza e visualizza la risposta. Una sessione consiste in una serie di richieste inviate dall'utente, basate sulle risposte ricevute ad ogni passo. Un messaggio di richiesta consiste di un header e di un body opzionale. Tipicamente un header include informazioni per l'identificazione dello user agent, i formati di encoding accettati per la risposta e le credenziali per indicare che l'utente ha il diritto di accedere alle risorse richieste. 109

110 RETI DI CALCOLATORI 2 Capitolo 9 Caching Una cache è una memoria locale di messaggi che può essere usata per minimizzare il ritardo percepito dall'utente nell'ottenere la risposta da un server. Ci sono due tipi di caching comunemente usati nei browser: una porzione della memoria del processo in esecuzione e una porzione dello spazio libero sul file system. È comunque possibile che le risorse in cache siano state modificate dall'ultima volta che sono state salvate. Il browser dovrebbe verificare che la risorsa in cache sia recente confrontandola con la copia presente sull'origin server. Questo controllo è chiamato cache revalidation. Se la versione sull'origin server è più nuova, la copia in cache è stale. Una cache è detta mantenere la consistenza delle risorse salvate se assicura che queste siano aggiornate con le copie presenti sull'origin server. Appereance e scelte semantiche Il browser ha numerose opzioni di configurazione per alterare l'aspetto del suo layout. In particolare gli attributi settabili dall'utente riguardano: l'aspetto esterno; la visualizzazione delle immagini presenti in una pagina; font; colore; stylesheet. Ci sono inoltre, altri attributi semantici, come la scelta degli intermediari e la lingua del contenuto, che possono essere settati dall'utente. Un semplice esempio è quello della lingua, personalizzabile quando una risorsa è disponibile in più lingue. Tale scelta, specificata nel browser, è tradotta in una sintassi HTTP appropriata e inclusa nell'header di richiesta. Ci sono cinque categorie di scelte semantiche configurazione via browser: connection related (proxy); content o choice of resource related (lingue accettate); caching; handling of responses; cookies. COOKIE HTTP è un protocollo stateless, una scelta progettuale che è stato un motivo del successo. Scelta che si è rivelata necessaria per ottenere scalabilità lato server, in quanto un protocollo che avesse dovuto mantenere uno stato avrebbe posto delle forti limitazioni alla scalabilità dei server. Un server Web può avere ragioni legittime per voler mantenere informazioni su una serie di richieste all'interno della sessione di un browser, o a cavallo tra più sessioni. Esempio tipico è l'autenticazione. Dover rispedire in ogni messaggio le credenziali di accesso ad una risorsa comporterebbe un overhead non trascurabile. I cookie sono il modo per gestire lo stato in HTTP. Non sono altro che dei file di testo inviati dal server al browser e da questi memorizzati (persistentemente). Furono introdotti per la prima volta nel 1994 da Netscape. 110

111 RETI DI CALCOLATORI 2 Capitolo 9 Un server invia un cookie ad un browser, richiedendo che questo venga incluso nelle seguenti richieste al server. In questo modo il server è capace di tenere traccia di un utente all'interno di una sessione o tra più sessioni. Per fare questo viene usato l header di HTTP: set-cookie (da server a client), cookie (da client a server). Controllo dell'utente e problemi di privacy Come gli altri attributi semantici controllabili via browser, gli utenti hanno un considerevole grado di controllo sui cookie. Gli utenti possono: decidere se accettare tutti i cookie; settare un limite sulla dimensione e sul numero di cookie da accettare; decidere se accettare i cookie da qualsiasi sito o specificare da quali siti/domini accettarli; restringere l'accettazione dei cookie per la durata di una sessione; richiedere che i cookie siano originati dallo stesso server della pagina che si sta visitando. Pochi argomenti hanno causato un terrore diffuso nella tecnologia relativa al Web come i cookie. Se l'uso dei cookie è permesso di default in un browser, molti utenti possono non essere consapevoli del fatto che visitando una pagina stanno inviando un cookie. Inoltre vengono trasmessi in chiaro, quindi un programma ostile potrebbe intercettarli e carpirne il contenuto. Le informazioni memorizzate in un cookie possono essere condivise tra più aziende, è possibile generare dei profili utente e venderli. La raccolta di informazioni da terze parti è un problema per la privacy subdolo e molto serio. Per esempio, uno user agent U, scarica una pagina con delle immagini integrate da un server S. Se le immagini risiedono su un server diverso, E, il browser invierà una richiesta a E che potrebbe settare un cookie. Il browser alla fine della sessione avrà i cookie di S ed E senza che l'utente sia consapevole del fatto di aver visitato anche un altro server (DoubleClick). Il problema principale dei cookie è che la maggior parte degli utenti sono semplicemente inconsapevoli della loro utilità e funzionamento. SPIDERS Un tipo particolare di client è quello automatizzato: gli spiders sono user agent che cercano alcune o tutte le risorse in un gran numero di siti Web automaticamente. Lo scopo principale della creazione di questi tool è la ricerca sul Web che coinvolge l'indicizzazione dei contenuti. Uno spider è quindi un programma che visita ricorsivamente il Web a partire da pagine note. Nella pratica, solo una porzione delle risorse viene visitata da uno spider. Vengono escluse per esempio le immagini o i contenuti multimediali se lo scopo è quello di indicizzare solo le risorse testuali. Hanno un impatto notevole sul server e sulla rete, infatti Google nel fare spidering della rete deve 111

112 RETI DI CALCOLATORI 2 Capitolo 9 limitarsi, in quanto con la sua potenza di calcolo potrebbe buttare a terra le reti di paesi mediograndi (es. Belgio, Olanda, etc.). Siccome non esiste un metodo infallibile per evitare che uno spider possa visitare un sito Web, ci sono due convenzioni tipicamente seguite che consentono di evitare del tutto l'accesso o limitare le risorse a cui può accedere: per sito: file robots.txt nella root del server che specifica le regole che lo spider deve seguire (es. directory da non indicizzare); per risorsa: tag meta in HTML: <META NAME= ROBOTS CONTENT= NOINDEX, NOFOLLOW > INTELLIGENT AGENTS La naturale evoluzione va verso programmi che iniziano le ricerche in base all'utilità che ne trae l'utente. Gli utenti possono esprimere le loro preferenze sui motori di ricerca e sull'ordine del rank in un profilo. Un intelligent agent lavora per conto di gruppi di utenti per fornire loro un servizio efficiente. Ce ne sono due tipi: Meta Search Engine: effettua il fetching proattivo di pagine indicizzate da più motori di ricerca per controllarne il contenuto. Auction Agent: partecipa ad aste on-line, effettua query HTTP per implementare una strategia di bidding. Può intromettersi nelle aste on-line per far alzare i prezzi, per questo molti siti si muniscono di quelle immagini con caratteri strani di cui viene chiesto all'utente di inserirne il contenuto. BROWSER SPECIAL PURPOSE Uno special purpose browser è una versione modificata di un browser per una specifica applicazione. Ne esistono tre tipi: Co-browser: effettua altre richieste selezionate in base a quella effettuata dall'utente basandosi sulla supposizione che se l'utente è interessato ad una risorsa probabilmente è interessato anche ad altre risorse che il co-browser cerca di fornirgli. Un esempio è Letizia. Collaborative browser: evoluzione del co-browser su più utenti. Un esempio è Let's Browse. Offline browser: effettua il download di interi siti web per permetterne la consultazione in un secondo momento senza la necessità di una connessione alla rete. Lavorano tipicamente come uno spider per analizzare la struttura del sito da scaricare. 112

113 RETI DI CALCOLATORI 2 Capitolo 10 CAPITOLO 10 WEB PROXY STORIA ED EVOLUZIONE DEGLI INTERMEDIARI Un modello di comunicazione client server tradizionale riguarda i trasferimenti di richieste da client a server e di risposte da server a client. La presenza di un intermediario può aiutare entrambe le parti riducendo le comunicazioni non necessarie. Per esempio, tale intermediario può avere una cache associata e spedire la risposta al client senza contattare l'origin server. La nozione di intermediario esisteva già in altri protocolli che erano popolari al momento della creazione del Web. Per esempio, File Transfer Protocol (FTP) e Network News Transfer Protocol (NNTP) prevedono proxy. La prima bozza che descriveva la sintassi per Uniform Resource Identifier (URI) menzionava il ruolo di un proxy come un gateway, un server HTTP attraverso il quale i messaggi di richiesta possono essere tradotti in altri protocolli. Molte organizzazioni non permettono l'accesso diretto ad Internet, solitamente per ragioni di sicurezza. Tutte le comunicazioni passano attraverso un firewall, una macchina che protegge la rete interna da attacchi esterni. Siccome tutto il traffico da e per Internet passa attraverso un firewall, quest'ultimo diventa il luogo ideale dove eseguire le funzioni di proxy. Lo scopo originario di un proxy Web era quello di fornire accesso al Web a client situati dietro un firewall. Può avere posizioni diverse e diverse funzionalità: 1. vicino allo user-agent; 2. vicino all'origin server; 3. nel core della rete; la diversa posizione del proxy implica funzionalità specifiche. La prima bozza di documento, che descriveva a grandi linee HTTP/1.0, riteneva che il ruolo del proxy fosse quello di intermediario tra vari protocolli, come Simple Mail Transfer Protocol (SMTP), NNTP, FTP, Gopher e WAIS. Dava, inoltre, la prima definizione di un proxy: un programma intermediario che si comporta sia da client che da server con lo scopo di inoltrare richieste/risposte. C'è quindi differenza tra un proxy ed un gateway. Nel caso di un proxy, il mittente può essere consapevole che il proxy può sia rispondere direttamente che inoltrare la richiesta. Un gateway si presenta al client in modo diverso, in quanto per il client esso non è altro che l'origin server. Il client non deve essere necessariamente consapevole della presenza del gateway. 113

114 RETI DI CALCOLATORI 2 Capitolo 10 Nella specifica di HTTP è presente anche la definizione di tunnel, un intermediario che ricolloca bit tra due connessioni. Un tunnel agisce a livello sintattico non semantico, non effettua il parsing e non interpreta un messaggio HTTP. Diventa attivo all'inizio della comunicazione e, una volta attivo, non viene più visto come parte della comunicazione HTTP. Il suo tempo di vita è uguale al tempo di vita della comunicazione. Ci interessiamo dei proxy perché è la componente che ha maggiori probabilità di modifiche software. CLASSIFICAZIONE AD ALTO LIVELLO DEI PROXY Ci sono due tipi di distinzioni che possono essere fatte sui proxy: alcuni proxy possono avere una cache associata, altri no; indipendentemente dalla presenza della cache, alcuni proxy modificano i messaggi che vedono passare, altri no. Caching proxy È stato il primo approccio ai proxy in ordine temporale. Un caching proxy è capace di mantenere una memoria privata delle risposte ricevute nel passato e quando riceve una richiesta che può essere soddisfatta da una risposta presente in cache, non inoltra il messaggio e restituisce direttamente la risposta. Fa quindi in modo che le richieste di una comunità di utenti vengano soddisfatte senza contattare ogni volta l'origin server, velocizzando il sistema. Il ruolo della cache era molto importante per organismi di una certa dimensione, quando la connessione era una risorsa costosa. Transparent proxy Un transparent proxy non modifica la richiesta o la risposta, al più aggiunge informazioni circa se stesso o sul server dal quale è stato ricevuto il messaggio. Un non-trasparent proxy effettua invece modifiche sostanziali. Un esempio tipico di cambiamenti su una richiesta è la cancellazione di informazioni sul client per ottenere anonimia. Proxy applications Un proxy agisce come front-end di un gruppo di client e permette loro la condivisione dell'accesso al Web. Uno degli scopi principali di un proxy è il caching. Un proxy gioca un ruolo importante nell'anonimizzazione dei vari client dietro di lui. Quando una richiesta Web passa attraverso un proxy, l'origin server crede che il client sia il proxy. Se l'origin server tenta di identificare il nome della macchina dalla quale è arrivata la richiesta, trova quello del proxy e non del client. Questo è possibile eliminando header HTTP e informazioni di stato dalla richiesta. Trasformazione della richiesta o della risposta per la personalizzazione della navigazione o per adattare i contenuti alla device (palmari, cellulari, etc.). Gateway verso sistemi non HTTP (FTP, Mail, etc), ma in generale l'evoluzione di questi servizi ha portato a fornire interfacce Web. Filtering e censura per controllare il tipo di risorse a cui è possibile accedere. 114

115 RETI DI CALCOLATORI 2 Capitolo 10 RUOLO DEI PROXY Gestione delle richieste e delle risposte HTTP Identificazione: un proxy può inserire delle informazioni riguardanti se stesso in un header per fare in modo che le altre componenti possano riconoscere che i propri messaggi passano attraverso un proxy. Nella versione HTTP/1.1 tutti i proxy sono obbligati ad identificarsi. Una delle motivazioni è per identificare potenziali cicli nel path. Cambiare il numero di versione: un proxy può modificare la request line (prima riga della richiesta HTTP) che include il metodo, l'uri e il numero di versione. Questa modifica può migliorare le performance, permettendo alle varie componenti di parlare il protocollo più evoluto: GET /foo/bar.html HTTP/1.0 diventa GET /foo/bar.html HTTP/1.1 Aggiungere informazioni obbligatorie sulla risorsa: restituendo una risposta dalla cache, un proxy deve aggiungere delle informazioni sulla risorsa, come ad esempio quando la risorsa è stata validata dall'origin server. Neutralità semantica: non è permesso ad un proxy di prendere decisioni semantiche come dichiarare una richiesta non valida. Gestione dei ritardi e buffering: come intermediario, il proxy è responsabile di mantenere una connessione con l'origin server mentre la risposta viene generata. Nel caso in cui la risposta viene generata dinamicamente, il proxy può mantenere la connessione, bufferizzare le parti della 115

116 RETI DI CALCOLATORI 2 Capitolo 10 risposta nel momento in cui arrivano dal mittente, inoltrare tali parti al destinatario ed aspettare che la risposta sia completa prima di chiudere le connessioni. Gestione dello stato: agendo da front-end per molti client, un proxy deve mantenere numerose informazioni di stato su tutte le richieste e risposte. Problemi pratici di implementazione: un proxy deve essere capace di accettare e mantenere connessioni con centinaia di client. Deve allocare un thread o un processo per gestire la richiesta, mantenere lo stato della connessione fino a che la richiesta non viene trattata. Il numero di connessioni disponibili a livello di trasporto è limitato. Gestione dei cookie: un proxy deve riconoscere i cookie nei messaggi di richiesta e di risposta per inoltrarli al destinatario. Proxy come Web Server Un proxy, nel ruolo di un server Web, è il destinatario delle richieste dai client. Un caching proxy agisce da Web server verso i client, verificando se la richiesta può essere soddisfatta dalla cache. Dal punto di vista del client, il proxy si comporta come l'origin server. Proxy come Web Client Un proxy ha il ruolo di client quando inoltra le richieste all'origin server. Ci sono due ragioni per le quali un proxy dovrebbe inoltrare una richiesta: 1. il proxy è un caching proxy ma non è in grado di soddisfare la richiesta dalla sua cache; 2. il proxy non è un caching proxy o è stato esplicitamente istruito dal client di inoltrare la richiesta. Proxy chaining e gerarchie È possibile avere proxy chaining (concatenati) a diversi livelli di organizzazione gerarchica. Più utenti omogenei ci sono, più è probabile che la risposta sia in cache, quindi è più utile avere la cache. Configurazione dei proxy Gli end user tipicamente non hanno alcuna influenza nella configurazione associata ad un proxy, che di solito riguarda decidere cosa fare in base all'url o ad altre informazioni. I browser possono specificare se un proxy deve essere usato come intermediario. Problemi relativi alla privacy Un proxy ha un ruolo fondamentale per assicurare la privacy. Come intermediario di molti utenti, è consapevole di molti dettagli: le risorse che vengono accedute; la frequenza di questi accessi; gli header ed il body della richiesta; gli header ed il body della risposta. 116

117 RETI DI CALCOLATORI 2 Capitolo 10 Queste conoscenze intaccano la privacy dell'utente, ma nonostante questo spesso il proxy viene visto come un intermediario fidato. ALTRI TIPI DI PROXY Reverse proxy o surrogate Inizialmente i proxy erano posizionati solo vicino all'utente. Con l'incremento di popolarità del Web, pochi siti hanno attratto una porzione significativa del traffico totale. Proxy sono stati quindi posizionati vicino gli origin server per diminuirne il carico. Questi proxy furono denominati reverse proxy perché sono dalla parte opposta della catena rispetto ai proxy tradizionali. Inoltre un reverse proxy può proteggere l'origin server dal resto della rete, in quanto questo non è direttamente esposto ma tutte le comunicazioni passano attraverso il proxy, che è quindi capace anche di gestire il carico tra un insieme di server per superare eventuali fallimenti (fault tolerance). I reverse proxy possono anche usare un protocollo diverso da HTTP per la comunicazione con i server davanti a cui sono posti. Sono anche conosciuti come surrogate. Interception proxy Se un proxy è esplicitamente progettato per essere davanti ad un Web client, tutte le richieste e le risposte per e da il client passeranno attraverso tale proxy. Indipendentemente dalla configurazione locale della rete, il proxy è capace di vedere tutto il traffico ed applicare una politica relativa al client che non ha la possibilità di bypassare il proxy ed interagire direttamente con l'origin server. Funzionalità offerte dai proxy: personalizzazione: fornire contenuti rilevanti in base alle preferenze degli utenti; link personalization: mostra link più rilevanti in modo diverso (fondamentale in e- commerce); content personalization: pagine differenti sulla base della storia di navigazione degli utenti; anche per differenziare i contenuti in base alla device; compressione dati e immagini; adattamento dei contenuti: accesso da diverse device con diverse capabilities in termini di: connettività: qualità della connessione; potenza di calcolo: flash, jsp, ajax; storage: caching in loco di contenuti limitata; caratteristiche dello schermo: l'unica periferica le cui dimensioni difficilmente cambieranno in quanto determinate dalla dimensione della mano umana; contenuti dinamici multimediali ed interattivi: difficoltà per i portali Web nel fornire differenti versioni delle stesse pagine per differenti client device che accedono alla rete. 117

118 RETI DI CALCOLATORI 2 Capitolo 10 CONTENT DELIVERY NETWORKS Le necessità da cui sono nati i Content Delivery Network derivano dall'architettura di Internet. L'idea della rete che abbiamo è quella di una nuvoletta, che nasconde i meccanismi che consentono di far arrivare un qualcosa da una parte ad un'altra, ovvero le reti regionali connesse alle backbone. Dal momento in cui le reti regionali sono cresciute e si sono sovrapposte, è stato necessario introdurre i Neutral Access Points (NAP), punti in cui le reti regionali si scambiano dati per non caricare le backbone internazionali inutilmente. La rete è quindi formata da una serie di provider, per diversi tipi di servizi, ed è distinta in Core e rete di distribuzione, ovvero una rete centrale ed una più vicina all'utente. L'evoluzione architetturale, che ha portato la potenza di calcolo nel core e nelle periferie della rete, è stata seguita dall'evoluzione delle funzionalità offerte dal Web: da Web statico a computazione proxyside. Queste due evoluzioni concorrono a dare più importanza ai proxy, che sono sorti per la necessità di diminuire il traffico, caching (Squid), sicurezza (firewall). All'aumentare dei servizi è necessario fornire integrazione e personalizzazione; all'aumentare delle eterogeneità dei terminali è necessario effettuare il transcoding; all'aumentare del business è necessario un campo di intervento per l'azienda: server (Oracle), browser (Microsoft), proxy (IBM) e distribuzione dei contenuti (Akamai). Una Content Distribution Network è una rete dedicata di server, distribuita geograficamente che può essere usata dai Web publisher per distribuire più efficientemente il proprio contenuto. Alcune tecniche: push del contenuto per portarlo più vicino all'end user; load balancing globale sulla rete dedicata di server; aggiornamento dello stato della cache; analisi di marketing efficienti ed affidabili tramite i file di log del traffico. Struttura di Internet Dalla definizione, una internet è una rete di reti. Internet è l'esempio più conosciuto, composta da migliaia di reti differenti (chiamate anche Autonomous System, AS) che comunicano tra loro utilizzando il protocollo IP. 118

119 RETI DI CALCOLATORI 2 Capitolo 10 Al fine di funzionare come una rete singola, globale e interconnessa, tutte queste reti devono essere collegate le une alle altre. Questo avviene tramite un processo chiamato peering. Quando due reti decidono di scambiare traffico, viene stabilita una connessione chiamata peering session. Esistono migliaia di peering points in Internet ed il software che gira su ogni router muove pacchetti in modo tale da trasportare ogni richiesta od ogni pacchetto alla destinazione corretta. Per ottenere scalabilità, ci sono due tipi di protocolli di routing: interior gateway protocols (OSPF, RIP) che cercano rotte all'interno di una rete o di un AS, ed exterior gateway protocol (BGP) usati per gestire il traffico tra reti differenti. I protocolli interior gateway usano informazioni dettagliate sulla topologia della rete, banda a disposizione, etc. per calcolare le rotte e quindi non risultano scalabili. BGP crea path minimizzando il numero di AS da attraversare, non garantendo però che le rotte siano sempre ottimali. Questa architettura presenta quattro tipi di colli di bottiglia (bottleneck) che fanno diminuire non solo le prestazioni, ma impediscono di far fronte alla crescita veloce delle richieste delle connessioni e del tipo di servizi ed alla possibilità di reagire prontamente a improvvisi picchi di carico. Questi bootleneck sono presenti in: 1. First Mile; 2. Peering Points; 3. Backbone; 4. Last Mile. 119

120 RETI DI CALCOLATORI 2 Capitolo First Mile Il primo tipo di bottleneck deriva dal modello centralizzato usato per la distribuzione dei contenuti. La velocità con cui l utente accede ad un servizio è limitata dalla connettività che il Content Provider ha verso la rete. Storicamente è stato il primo bottleneck, numerosi siti Web hanno avuto questo problema: trailer di Star Wars, Mars Lander reporting, i verbali e le relazioni sull impeachment di Clinton, i siti di informazioni geosismiche della California. Viene spesso equiparato ai problemi di scalabilità dei server. 2. Peering Points Il traffico del WWW sembra equamente distribuito tra le oltre 7400 reti di Internet: nessuna rete contribuisce per più del 5% del traffico totale e la maggior parte delle reti contribuisce per meno dell 1%. Con migliaia di reti ci devono essere almeno migliaia di peering points, e la equa distribuzione del carico indica che il traffico deve attraversare una quantità notevole di peering points. Per ragioni economiche ogni rete cerca di sfruttare a pieno la sua capacità, cercando di non lasciare inutilizzata parte della sua banda. Sfortunatamente, questa prassi crea seri colli di bottiglia. 3. Backbone L upgrade alla capacità di qualsiasi rete è immediatamente sorpassato dai servizi offerti, dalle richieste degli utenti o da entrambi (n ma legge di Murphy). Un esempio è dato dal servizio di trasmissione personalizzata del Cooking Channel ; l'equivalente di 32 Cooking Channel può superare la capacità della backbone più grande al mondo (USA Canada). 4. Last Mile La larghezza di banda con la quale l utente si collega al suo provider è data dal last mile. È il bottleneck più vicino all'utente e forse l'unico che viene percepito. Infatti un malinteso comune è che eliminando questo collo di bottiglia si risolvano tutti i problemi di prestazione di Internet. In realtà più che un problema è una soluzione. La limitazione della banda per singolo utente serve ad evitare che Internet collassi. Un esempio è dato dal cable access che fornisce connettività ad alta velocità via cavo: ha solamente 1 milione di abbonati (0,3% del totale) ma è una delle reti che richiede più traffico (5% di tutto il traffico). La soluzione La soluzione delle Content Distribution Network è di distribuire le informazioni verso il confine delle reti (edge delivery) per rendere più veloce l accesso all utente senza sovraccaricare troppo la struttura di Internet. 120

121 RETI DI CALCOLATORI 2 Capitolo 10 L'edge delivery risolve il bottleneck first mile eliminando il punto centrale dal quale tutti i dati devono essere recuperati. Rende non necessario per le richieste Web, di attraversare molte reti ed incontrare i peering points. Inoltre, quando i contenuti sono ricavati dal confine della rete, la domanda per la capacità delle backbone decresce alleviando il backbone bottleneck. Il last mile bootleneck non viene risolto dall'edge delivery, ma fa in modo che la rete sia pronta a sopportare i continui sviluppi tecnologici che ampliano la banda a disposizione del singolo utente. Ci sono sfide complicate da affrontare per implementare l'edge delivery: i contenuti devono essere pubblicati sugli edge server; diffusione massiccia degli edge server per raggiungere tutti gli utenti; la collocazione geografica degli edge server è un punto critico; gestione dei contenuti tra numerose reti; i contenuti devono essere mantenuti aggiornati e sincronizzati; la tolleranza ai guasti è un altro punto cruciale; monitorare le condizioni della rete; routing dal content delivery; gestione del carico; monitoraggio delle prestazioni; reporting intelligente; fatturazione; Comprehensive Service Level Agreement. Akamai Akamai è l'azienda che ha il dominio del mercato (80%) nel campo dei Content Delivery System, anche se i grandi ISP hanno la propria CDN. Possiede server, localizzati presso oltre 100 ISP in 70 paesi, con sistema operativo Linux con un kernel custom, Intel based. Vengono offerti gratuitamente a ISP di elevata dimensione ed offrono una connessione persistente con il sito di origine. L'85% degli utenti Internet sono ad 1 hop da un server Akamai. Il boom del Web rese visibile l'utilizzo commerciale di questo servizio, insomma era chiaro che si potevano fare soldi su Internet. Fino a pochi anni fa era una rete conosciuta da pochi, poco usata. Questo punto di discontinuità tra la rete dedicata agli smanettoni e quella dedicata agli utenti si può identificare negli anni La rete non era pronta a fornire accesso a tanti utenti contemporaneamente, accesso soprattutto ai servizi. C'erano molte idee, ma non si poteva reggere al picco di richieste che si ricevevano. L'uso del CDN è storicamente determinato dalla incapacità strutturale delle reti di adeguarsi alle crescenti richieste dei servizi. Permette quindi di gestire il traffico e filtrarlo tramite edge server per non intasare i fornitori di servizi. Nel 2000, solo negli USA, il mercato dei CDN generò 905 milioni di dollari di guadagni. Nel 2001 il numero enorme di accessi a particolari siti Web, soprattutto dopo l'11 settembre, mise ancor più in evidenza i problemi di caching di siti che tipicamente divenivano irraggiungibili. Negli anni i fornitori di CDN raddoppiano le entrate rispetto agli anni precedenti. 121

122 RETI DI CALCOLATORI 2 Capitolo 10 Akamai è stata una delle aziende che è riuscita a sopravvivere alla Internet Bubble, in quanto permetteva di fornire servizi molto evoluti. L'infrastruttura di Akamai gestisce i flash crowds allocando più server per sito con alto carico e servendo tutti i client da server vicini. Il sistema dirige le richieste dei client al server disponibile più vicino che probabilmente ha il contenuto richiesto, determinato come segue: la vicinanza è funzione della topologia della rete e le caratteristiche dinamiche dei collegamenti; la disponibilità è funzione del carico e della larghezza di banda della rete; la probabilità è funzione di quale server trasporta il contenuto per ogni cliente in un data center. Controllo automatico della rete La direzione delle richieste ai server di contenuti è denominato mapping. La tecnologia di mapping di Akamai usa un sistema DNS dinamico e fault-tolerant. Il sistema di mapping risolve un hostname basandosi sul servizio richiesto, locazione dell'utente e sullo stato della rete; usa anche il DNS per ottenere il bilanciamento del carico. Trade-off tra caching DNS response time e reattività. Akamai risolve gli hostname usando i seguenti criteri: servizio richiesto; stato del server; carico del server; condizioni della rete; locazione del client; contenuto richiesto. 122

123 RETI DI CALCOLATORI 2 Capitolo 10 Servizi della rete I server di Akamai si occupano della consegna di diversi tipi di contenuti: statici e dinamici su HTTP e HTTPS, streaming audio e video. Per i contenuti statici viene attuata la gestione del lifetime e della cacheability. Vengono supportate anche le connessioni sicure. I cache proxy non possono tipicamente mantenere in cache il contenuto dinamico. Per affrontare questo problema, Akamai usa la tecnologia Edge Side Includes, che assembla i contenuti dinamici sull'edge server. È simile al linguaggio server-side include, ma aggiunge funzionalità di faulttolerance ed integra un motore XSLT per processare dati XML. Akamai supporta lo streaming live e ondemand di contenuti multimediali in tre formati: Windows Media Player, RealPlayer e Quicktime. Il content provider tipicamente cattura e codifica lo stream e lo invia ad un server entry-point di Akamai. Ci sono meccanismi che reagiscono velocemente al fallimento di un entry-point, in particolare un altro entry-point deve essere pronto a riprendere il flusso in modo tale che l'utente non si accorga del fallimento. Lo stream è consegnato dall'entrypoint a più edge server, che a turno servono l'utente finale. FreeFlow FreeFlow di Akamai è un Web content delivery service ad alte prestazioni e fault-tolerant. Lavora indirizzando le richieste di oggetti Web media-rich (immagini, file di grosse dimensioni, flussi audio e video) verso la rete di Akamai. L'algoritmo di ottimizzazione di FreeFlow usa informazioni sulla rete e sul traffico aggiornate al secondo, per mappare la richiesta dell'utente finale al server Akamai che può rispondere più velocemente. 123

124 RETI DI CALCOLATORI 2 Capitolo 10 L'utente effettua la richiesta di una pagina Web ad un sito che, come al solito, risponde con del codice HTML. La differenza però è che gli oggetti embedded hanno URL modificate che puntano alla rete Akamai. Il browser dell'utente quindi aprirà delle connessioni con un server di Akamai, dalla cui cache preleverà i contenuti. In caso di contenuti nuovi, il server Akamai provvederà prima a scaricarli dall'home site, memorizzandoli in cache, e poi li fornirà all'utente. I server della rete Akamai sono posizionati in grossi data center e nei Point of Presence (POP) dei più importanti ISP del mondo. Per reindirizzare il traffico verso la rete Akamai c'è bisogno che le URL degli oggetti presenti nelle pagine HTML vengano modificati. Akamaizer è un tool che trasforma ( akamaizing ) le usuali URL in ARL (Akamai Resource Locator). Supponiamo di voler akamaizzare la seguente URL: sarà trasformata in: Il serial number identifica un bucket virtuale di contenuti, ovvero un gruppo di oggetti che verranno serviti sempre dallo stesso insieme di server Akamai. Raggruppare i contenuti usando serial number permette di bilanciare il carico tra i diversi server ed un uso efficiente delle risorse di memoria. L'Akamai domain assicura che la richiesta venga indirizzata alla rete Akamai senza passare per l'home site. Tranne rare eccezioni questo campo è sempre g.akamaitech.net. Il type code definisce il modo in cui il server deve interpretare l'arl. È usato per definire e selezionare le estensioni al servizio FreeFlow standard. Il content provider code identifica univocamente un cliente di Akamai (content provider). È usato per report, logging e per la fatturazione. L'object data assicura che il contenuto sia aggiornato. Può contenere l'expiration time o una particolare stringa (MD5) che identifica la versione dell'oggetto. L'absolute path è usato per ottenere l'oggetto dal content provider la prima volta che viene richiesto. Sistema DNS di FreeFlow Il sistema DNS di FreeFlow è leggermente diverso da un sistema DNS usuale, la risoluzione del nome viene effettuata tenendo conto anche dell'indirizzo sorgente da cui arriva la query e delle condizioni di traffico su Internet. Il FreeFlow DNS è implementato a due livelli di gerarchia: server 124

125 RETI DI CALCOLATORI 2 Capitolo 10.akamai.net high-level (HLDNS) e.g.akamai.net low-level (LLDNS). Ogni HLDNS è responsabile dell'indirizzamento di ogni query che riceve verso il LLDNS che è più vicino all'utente che ha fatto la richiesta. Il server LLDNS effettua la risoluzione dell'indirizzo IP con il server che è meglio posizionato per servire la richiesta. Per evitare che ogni richiesta incorra nel ritardo per attraversare tutti e tre i livelli di DNS, viene effettuato il caching delle query, come nel DNS tradizionale. Il TTL è diverso nei tre livelli. Siccome le risposte ottenute dai server.net non variano con le condizioni della rete, hanno un TTL di due giorni. Le risposte del HLDNS sono basate su una mappa della rete che viene ricalcolata ogni 7-10 minuti, ed hanno un TTL di 20 minuti. Siccome i server LLDNS effettuano la risoluzione dei nomi basandosi su mappe che vengono ricalcolate ogni 2-10 secondi, il loro TTL è impostato a 20 secondi. La rete di Akamai è costruita in modo da offrire un servizio che sia fault-tolerant, eliminando il single-point-of-failure. Si possono verificare tre tipi di fallimenti: fallimenti hardware delle macchine responsabili della consegna dei contenuti, periodi di interruzione della rete dovuti a fallimenti degli switch e dei router, attacchi Denial-Of-Service, etc. e periodi di interruzione dei data center dovuti a incendi, terremoti, mancanza di energia. La rete di FreeFlow rimane operativa in presenza di tutti e tre i tipi di fallimenti. Presentazione di Bruce Maggs di Akamai Chi AKAMAIZZA l URL? Sta sul content provider. 125

126 RETI DI CALCOLATORI 2 Capitolo 11 CAPITOLO 11 WEB SERVER INTRODUZIONE Un Web server è un programma che genera e trasmette risposte alle richieste dei client di risorse Web. Può generare il messaggio di risposta in molti modi. Nel caso più semplice, il server semplicemente ricava il file associato alla URL e ne trasmette il contenuto al client. In altri casi, il server potrebbe dover invocare script che comunicano con altri server o database back-end per costruire il messaggio di risposta. I vari compiti di un Web server possono essere: gestione di una richiesta client; controllo dell accesso: autenticazione e autorizzazione; risposte dinamiche e gestione dello stato; caching. Web site vs. Web server Un sito Web consiste in una collezione di pagine Web associate ad un particolare hostname, mentre un Web server è un programma che soddisfa le richieste dei client per particolari risorse Web. GESTIONE DI UNA RICHIESTA CLIENT Passi per gestire una richiesta client Ad alto livello, per gestire una richiesta client un Web server esegue i seguenti passi: 1. lettura e parsing del messaggio HTTP di richiesta: il server legge la richiesta HTTP per l'identificazione di: i. tipo di operazione richiesta; ii. URL della risorsa richiesta; iii. host a cui questa viene richiesta; iv. header della richiesta; 2. traduzione della URL in un file name, normalmente con una diretta relazione con il filesystem; è possibile utilizzare caching lato server; 3. determinare se la richiesta è autorizzata; 4. generazione e trasmissione della risposta. Controllo dell'accesso Un Web server può limitare gli utenti che possono accedere ad una certa risorsa. Il controllo dell accesso richiede una combinazione di autenticazione e autorizzazione. Autenticazione Molti sistemi client-server autenticano un utente chiedendo un nome ed una password, memorizzati in un file criptato. L'utente immette tali informazioni per stabilire una sessione con il server; il server controlla i dati immessi e ricorda l'identità dell'utente per il resto della sessione. 126

127 RETI DI CALCOLATORI 2 Capitolo 11 Essendo il protocollo HTTP stateless, il server non ha la nozione di sessione. Ciò nonostante, l utente ha l illusione di una sessione in quanto il client continua a inviare la coppia username/password ad ogni richiesta. Ogni intermediario tra lo user agent e l'origin server inoltra le informazioni di autenticazione. Il processo di autenticazione viene effettuato tramite il meccanismo di challenge/response. Autorizzazione Determina a quali risorse un utente può accedere tramite una politica di accesso. Si utilizza una access control list e, di norma, si specifica la politica per ogni subdirectory nel filesystem. È basata su username, indirizzo IP, etc. Il processo è potenzialmente molto oneroso in quanto il Web server deve validare lo username e la password per autenticare l'utente e deve effettuare il parsing delle informazioni di autorizzazione in ogni directory del path della risorsa richiesta. È possibile limitare l'overhead tramite particolari direttive di configurazione che permettono di specificare un branch del filesystem in cui non è necessaria l'autenticazione. Gestione delle risorse Un Web server gestisce risorse che possono essere: statiche; generate dinamicamente dal server: server-side-includes (SSI); script che generano documenti; ottenute dal terzo livello di una architettura a 3 livelli: interfaccia verso un DBMS. Cookie Un Web server deve gestire i cookies per mantenere lo stato con un protocollo stateless quale è HTTP. Ad ogni richiesta/risposta devono essere ripetuti. Condivisione delle informazioni tra più richieste (Caching) Sebbene un Web server gestisce ogni richiesta HTTP indipendentemente, potrebbe trattenere alcune informazioni per ridurre l'overhead nella gestione delle richieste future. In pratica, poche risorse di un sito sono molto popolari e quindi influenzano sensibilmente il carico. Una tecnica utile è quella di fare caching lato server: alla richiesta, il file viene letto e caricato in memoria per velocizzare accessi successivi alla stessa risorsa. Necessario che ci sia comunque un check della data per evitare di fornire risorse non più valide. Ci sono delle tecniche aggiuntive che consistono nell'effettuare il caching anche in altri passi del processo di gestione di una richiesta: traduzione URL-filename; gestione di informazioni della risorsa nell header risposta; gestione informazioni del server nell header risposta; data/tempo corrente (calcolata solo a intervalli); nome del client se l'autorizzazione è basata sul nome. 127

128 RETI DI CALCOLATORI 2 Capitolo 11 ARCHITETTURA DEI WEB SERVER Il carico di un server Web può essere davvero notevole e con picchi di carico imprevedibili. La gestione delle risorse viene tenuta presente nell'architettura dei server. Vi sono tre categorie principali: event-driven server: un singolo processo che si alterna a servire ogni richiesta; process-driven server: ogni richiesta viene gestita da un processo diverso; server ibridi che usano entrambe le strategie, combinandole. Event-driven server È il modo più semplice per strutturare un server: vi è un singolo processo che gestisce una richiesta alla volta. È un approccio giustificato, dal punto di vista delle prestazioni, solo se le richieste prevedono un lavoro piccolo e costante. È comunque possibile che ci siano dei ritardi che non sono sotto il controllo del Web server, come ritardi di accesso al disco ed alla rete, di solito realizzato con chiamate non bloccanti per permettere di continuare l'esecuzione mentre si aspetta la risposta dal sistema operativo, e per le risorse generate dinamicamente (con ritardi non preventivabili). Eseguire il Web server come un singolo processo facilita la condivisione dei dati tra richieste differenti, con il risultato che è possibile fare caching del risultato di una query. Quindi l'efficienza è garantita dalla serializzazione delle richieste. Process-driven server Con questo approccio, ogni richiesta viene gestita da un processo diverso; è necessaria una forte interazione con il processo master (che gestisce tutti gli altri) e il sistema operativo sottostante. Ad ogni nuova connessione, il processo master effettua una fork per creare un processo separato che gestisca la connessione. Questo metodo fornisce una soluzione ai memory leak (la perdita di spazio libero nella memoria); quando il processo viene terminato la memoria viene automaticamente deallocata. Si possono verificare ritardi dovuti alla fork, ma la soluzione classica è quella di creare un pool di processi a cui il master assegna la richiesta che, una volta terminata, fa tornare il processo disponibile per nuove richieste. Il memory leak può essere ancora potenzialmente presente. Una soluzione è quella di terminare i processi più vecchi per lasciare spazio a processi giovani. Le limitazioni dell'architettura sono: il context switching tra processi introduce overhead; le richieste che richiedono poca CPU è inutile affidarle a processi diversi; difficile (e più costoso) effettuare caching interprocess. Primi esempi: CERN, NCSA server, Apache 1.3. Server ibridi Cercano di combinare i vantaggi delle due architetture event-driven e process-driven. Vi sono tre approcci: una architettura process-driven dove però ogni processo può gestire più richieste, consente di ridurre il numero di processi (minor overhead) e l overhead sul data sharing per il caching; 128

129 RETI DI CALCOLATORI 2 Capitolo 11 una architettura single process con diversi thread consente di avere minor overhead nella gestione (facilità di condivisione dati, unico spazio di indirizzamento nel processo), ma ha problemi di memory management (memory leak all interno di thread diversi); una architettura adattiva, ovvero event-driven per default sulle richieste che richiedono poco lavoro ma, se richiede una computazione significativa, viene effettuata una fork di un processo helper che si occuperà di eseguire le operazioni che richiedono più tempo. SERVER HOSTING Più server su una singola macchina Per permettere hostname separati, le società di hosting devono poter eseguire più Web server su una singola macchina, dove server è riferito a virtual server. Ogni server virtuale ha il suo albero di documenti e la sua configurazione (politica di accesso, risorse da fornire, file di log, etc.) ed opera come se fosse l'unico server in esecuzione sulla macchina. Mirroring I siti Web più popolari ricevono un numero enorme di richieste, molto in eccesso rispetto a quelle che una singola macchina può supportare. Considerando un sito che permette il download di un nuovo programma, l'utente potrebbe essere in grado di selezionare il server da una lista di mirror che possono fornire il contenuto richiesto. Siccome tali mirror sono esplicitamente scelti dall utente, non necessariamente avviene il bilanciamento del carico. Per ovviare a questo problema, è possibile usare lo stesso nome per ogni replica. Il nome scelto potrebbe far riferimento ad un surrogate posizionato davanti una batteria di server, che decide di volta in volta a quale replica far processare la richiesta dell'utente. WEB SERVER APACHE Apache è uno dei Web server attualmente più diffusi al mondo. Rilasciato per la prima volta nel 1995 (versione 0.6.2), era basato sulle prime versioni del server NCSA. Infatti il nome Apache si riferisce al fatto che il suo codice era formato dal software NCSA con alcune patch ( a patchy server ). È un prodotto free e open source, estremamente portabile (Unix, Win32, OS/2, BeOS, 129

130 RETI DI CALCOLATORI 2 Capitolo 11 etc, etc), efficiente, supporta HTTP/1.1, è stabile e sicuro. Inoltre è un Web server modulare e programmabile (molto difficile). Vi sono 2 modelli di gestione: modello process-driven (Apache 1.3) e multithread (Apache 2.0). Il passaggio da 1.3 a 2.0 causò non pochi problemi: script di configurazione non standard; porting difficile; scaling delle prestazioni non sufficienti; interazioni tra moduli difficile. Process model Ogni MPM (Multi-Processing Module) Apache fornisce l'eseguibile del server web con un "gusto" diverso, compilato con un diverso modello di elaborazione. L'MPM prefork fornisce un'implementazione di pre-forking senza thread che gestisce le richieste in modo simile ad Apache 1.3. Non è veloce come i modelli con thread, ma è considerato più stabile. È adatto ai siti che devono mantenere la compatibilità con librerie che funzionano correttamente senza thread ed è l'mpm migliore per isolare ciascuna richiesta, in modo che un problema riguardante una particolare richiesta non influenzerà nessun'altra. L MPM worker fornisce l implementazione di default con thread. È raccomandato specialmente per i siti con alto traffico perché è più veloce ed ha un consumo minore di memoria rispetto al modello prefork. Il server Apache segue il modello process-driven, con un processo padre che assegna un processo a ogni nuova connessione. Piuttosto che creare un nuovo processo ad ogni nuova connessione, il padre pre-forka numerosi processi figli quando il server parte. Il numero di processi figli iniziali (StartServers) è uno dei numerosi parametri di configurazione relativi ai processi figli. Il server impone un limite al numero di processi simultanei (MaxClients). Mantenere un insieme di processi idle evita l'overhead di forkare nuovi processi quando arrivano più richieste. Comunque avere un gran numero di processi idle consuma inutilmente le risorse del sistema operativo. Il server Apache impone un limite al numero minimo e massimo di processi idle (MinSpareServers e MaxSpareServers). Ogni pochi secondi, il processo padre determina quanti processi sono idle; di conseguenza crea o termina dei processi figli. Questo approccio di creare e terminare processi è un modo per ottenere il doppio obiettivo di eseguire un numero relativamente piccolo di processi idle e limitare il tasso di creazione di nuovi processi. Al fine di rimuovere processi idle occasionalmente, è possibile impostare un parametro (MaxRequestPerChild) che indica il numero di richieste HTTP gestibili da ogni processo figlio. 130

131 RETI DI CALCOLATORI 2 Capitolo 11 I parametri appropriati dipendono dal tipo e dalla frequenza delle richieste dei client. Inoltre è possibile configurare un limite al numero delle connessioni in attesa (ListenBacklog), la dimensione del buffer in uscita (SendBufferSize), il numero di richieste HTTP su una singola connessione TCP (MaxKeepAliveRequest) e il tempo massimo che una connessione può rimanere idle (KeepAliveTimeout). File di configurazione Il file di configurazione del Web server Apache è httpd.conf (poi rinominato apache2.conf). PARAMETRI GENERALI ServerRoot ServerRoot è la directory di livello superiore che contiene i file del server. PidFile PidFile nomina il file nel quale è memorizzato il PID (ID del processo). Timeout Timeout definisce il tempo necessario al server per la ricezione e la trasmissione durante la comunicazione. Timeout è impostato per un'attesa di 300 secondi, ossia il tempo adeguato per la maggior parte delle situazioni. KeepAlive KeepAlive stabilisce se il server permetterà più di una richiesta per connessione e può essere usato per evitare che un client utilizzi troppe risorse del server. Per default, Keepalive è impostato su off. Se viene impostato su on e il server è particolarmente occupato, il server è in grado di produrre rapidamente il numero più elevato di processi figli. In tal caso, il server diventa piuttosto lento. Se abilitate Keepalive, è buona idea avere una impostazione su valori bassi di KeepAliveTimeout. MaxKeepAliveRequests La direttiva imposta il numero massimo di richieste accettate su ogni connessione persistente. Il team di sviluppo di Apache consiglia di impostare un valore alto, al fine di migliorare le prestazioni del server. MaxKeepAliveRequests è impostato per default su 100, un valore che si adatta alla maggior parte delle possibili situazioni. KeepAliveTimeout KeepAliveTimeout imposta il numero di secondi durante il quale il server attende una nuova richiesta prima di chiudere la connessione. Una volta ricevuta la richiesta, si applica invece la direttiva Timeout. KeepAliveTimeout é impostato per default su 15 secondi. IfModule I tag <IfModule> e </IfModule> creano una sezione attivata solo se il modulo specificato è montato. Le direttive presenti all'interno della sezione IfModule vengono elaborate solo tramite una di queste due condizioni. Il modulo specificato all'interno del tag di inizio <IfModule> è stato caricato, oppure se un punto esclamativo appare prima del nome del modulo, le direttive sono elaborate solo se il modulo specificato nel tag <IfModule> non è caricato. 131

132 RETI DI CALCOLATORI 2 Capitolo 11 DIRETTIVE MPM SPECIFICHE DEL POOL DI SERVER StartServers La direttiva StartServers imposta il numero di processi server che devono essere creati all'avvio. Poichè il Web server elimina o crea dinamicamente i processi server in funzione del carico del traffico, non è necessario cambiare questo parametro. MaxRequestsPerChild MaxRequestsPerChild imposta il numero massimo di richieste che ogni processo figlio può gestire prima di essere eliminato. Lo scopo principale di MaxRequestsPerChild è quello di evitare che un processo rimanga in esecuzione troppo a lungo, occupando un'eccessiva quantità di memoria. MaxClients MaxClients imposta un limite per il numero totale di processi server, di client connessi contemporaneamente, in esecuzione allo stesso momento. Lo scopo principale per questa direttiva è di prevenire un crash del sistema operativo da parte di Apache. MinSpareServers e MaxSpareServers Determinano come Apache si adatti dinamicamente al carico di lavoro mantenendo un numero appropriato di processi di riserva del server a seconda del traffico. Viene eseguita la verifica del numero di server in attesa di richiesta che vengono eliminati se superano il valore di MaxSpareServers oppure vengono creati se sono inferiori al valore di MinSpareServers. Il valore di default di MinSpareServers è 5, mentre quello di MaxSpareServers è 20. Listen Il comando Listen specifica su quale porta il Web server accetta le richieste in entrata. Per default Apache attende le richieste sulla porta 80 per la comunicazione Web non sicura e sulla porta 443 per la comunicazione Web sicura. La direttiva Listen può inoltre essere usata per specificare particolari indirizzi IP dai quali il server accetta le connessioni. Include Include consente ad altri file di configurazione di essere inclusi in fase di runtime. LoadModule LoadModule è utilizzata per caricare i moduli Dynamic Shared Object (DSO). ExtendedStatus La direttiva ExtendedStatus controlla se Apache genera informazioni di base (off) sullo stato del server oppure informazioni dettagliate (on), quando viene chiamato server-status. Il gestore Server-status viene chiamato usando i tag Location. IfDefine I tag IfDefine utilizzano le direttive di configurazione specificate al loro interno se nel primo tag la definizione "test" presente nel tag IfDefine risulta essere vera. Le direttive vengono ignorate se il test è falso. User La direttiva User imposta il nome utente del processo server e determina quale file il server è in grado di accedere. Qualsiasi file non accessibile per questo utente, risultano inaccessibili anche per i client che si collegano al Server Apache. 132

133 RETI DI CALCOLATORI 2 Capitolo 11 Group Specifica il nome del gruppo dei processi del server Apache. ServerAdmin Imposta la direttiva ServerAdmin per l'indirizzo di posta elettronica dell'amministratore del Web server. Questo indirizzo di posta elettronica appare nei messaggi di errore delle pagine Web generate dal server, in modo che gli utenti possano riferire eventuali problemi inviando un messaggio all'amministratore del server. ServerName ServerName specifica un hostname e un numero di porta (corrispondenti alla direttiva Listen) per il server. Il ServerName non deve necessariamente corrispondere al nome reale dell'hostname. Per esempio, il Web server può essere ma l'hostname del server è foo.example.com. Il valore specificato in ServerName deve essere un Domain Name Service (DNS) valido, che può essere risolto dal sistema. UseCanonicalName Quando impostato su on, questa direttiva configura Apache in modo tale da essere usato come riferimento usando il valore specificato nelle direttive ServerName e Port. Quando UseCanonicalName è impostato su off, il server userà invece il valore usato dal client richiedente. DocumentRoot DocumentRoot è la directory che contiene la maggior parte dei file HTML in risposta alle richieste. Directory I tag <Directory /path/to/directory> e </Directory> creano ciò che viene riferito come una sezione, usata per raggruppare un insieme di direttive di configurazione da applicare solo a una particolare directory e a tutte le sue sottodirectory. Tutte le direttive applicabili a una directory possono essere usate all'interno dei tag Directory. Per default, alla directory root (/), vengono applicati i parametri più restrittivi, tramite le direttive Options e AllowOverride. Sotto questa configurazione, alle directory che necessitano di impostazioni meno restrittive devono essere assegnate in modo esplicito quelle impostazioni. Nella configurazione predefinita, un'altra Directory è configurata per il DocumentRoot la quale assegna un minor numero di parametri rigidi all'albero della directory in modo tale che Apache possa accedere ai file presenti. Options La direttiva Options controlla le caratteristiche dei server disponibili in una particolare directory. Per esempio, con i parametri restrittivi specificati per la directory root, la direttiva Options è impostata solo per FollowSymLinks. Non sono abilitate altre caratteristiche, ad eccezione di quella che consente al server di seguire i link simbolici nella directory root. Per default, nella directory DocumentRoot, la direttiva Options è configurata per contenere Indexes, Includes e FollowSymLinks. Indexes permette al server di generare un elenco di directory per una directory, se non è specificata alcuna direttiva DirectoryIndex (per esempio: index.html). FollowSymLinks consente al server di seguire i link simbolici in questa directory. Nota Bene: le istruzioni Options della sezione di configurazione del server principale, devono essere replicate individualmente su ogni sezione del VirtualHost. 133

134 RETI DI CALCOLATORI 2 Capitolo 11 AllowOverride La direttiva AllowOverride consente di stabilire se Options può essere ridefinito dalle dichiarazioni presenti in un file.htaccess. Per default, sia la directory root, sia la directory DocumentRoot sono impostate per non permettere di sovrascrivere.htaccess. Order La direttiva Order controlla l'ordine con il quale le direttive allow e deny sono valutate. Il server viene configurato per valutare le direttive Allow prima delle direttive Deny per la direttiva DocumentRoot. Allow Allow specifica quale client può accedere a una determinata directory. Il client può essere all, un nome di dominio, un indirizzo IP, una parte dell'indirizzo IP, una coppia rete/maschera di rete e così via. La directory DocumentRoot è configurata per Allow o permettere l'accesso da all ossia da tutti i client. Deny Deny funziona esattamente come allow, ma specifica quali accessi negare. Per default DocumentRoot non è configurata per Deny o negare alcuna richiesta. UserDir UserDir è la sottodirectory all'interno di ogni home directory dell'utente, in cui vanno collocati i file HTML personali che il Web server utilizza. Questa direttiva è impostata per default su disable. DirectoryIndex La direttiva DirectoryIndex è la pagina predefinita che viene restituita al client quando un utente richiede l'indice di una directory, specificando uno slash (/) dopo il nome della directory. Quando un utente richiede la pagina riceve la pagina DirectoryIndex, se presente, o un elenco di directory generato dal server. Il default per DirectoryIndex è index.html ed il tipo di mappa index.html.var. Il server cerca di individuare uno di questi file, restituendo il primo file trovato. Se non trova alcun file, e per questa directory è impostata la direttiva Options Indexes, il server genera e restituisce un elenco delle subdirectory e dei file contenuti nella directory in formato HTML, a meno che il contenuto elencato della directory, non viene impostato su off. AccessFileName AccessFileName attribuisce un nome al file che il server utilizza per accedere alle informazioni di controllo in ogni directory. Il default è.htaccess. Immediatamente dopo la direttiva AccessFileName, una serie di tag Files controllano l'accesso ai file che iniziano con.ht. Per ragioni di sicurezza queste direttive negano l'accesso Web a qualunque file.htaccess (o a qualunque altro file che inizi con.ht). Alias L'impostazione Alias consente alle directory che si trovano al di fuori di DocumentRoot di essere accessibili. Qualunque URL che termina con l'alias viene automaticamente risolto all'interno del percorso dell'alias. ScriptAlias La direttiva ScriptAlias definisce dove sono localizzati gli script CGI. Normalmente è meglio non lasciare gli script CGI all'interno di DocumentRoot, poiché potrebbero essere visualizzati come 134

135 RETI DI CALCOLATORI 2 Capitolo 11 documenti di testo. Per questa ragione, una directory speciale, esterna alla directory DocumentRoot contenente gli eseguibili e gli script del server, è ideata dalla direttiva ScriptAlias. AddEncoding AddEncoding definisce le estensioni dei file che hanno una particolare codifica. AddEncoding può essere utilizzato anche per indicare ai browser di decomprimere alcuni file mentre vengono scaricati. AddLanguage AddLanguage associa l'estensione di un file a una particolare lingua. Questa direttiva è particolarmente utile quando il server restituisce un documento in base alla lingua di preferenza del client specificata nel browser. LanguagePriority LanguagePriority permette di stabilire una lingua prioritaria in caso il browser Web del client non ha impostato alcuna lingua di preferenza. AddType Usare la direttiva AddType per definire o sovrascrivere un tipo MIME di default e coppie di estensione del file. Nell'esempio seguente la direttiva indica a Server HTTP Apache di riconoscere l'estensione del file.tgz. AddType application/x-tar.tgz AddHandler AddHandler mappa l'estensione di un file per handler specifici. Per esempio, l'handler cgi-script può essere utilizzato in associazione con l'estensione.cgi per trattare un file che termina con.cgi automaticamente come script CGI. Action Action specifica un tipo di contenuto MIME e una coppia di script CGI, in questo modo, quando viene richiesto un file di questo tipo, viene eseguito un particolare script CGI. ErrorDocument La direttiva ErrorDocument associa un codice di risposta HTTP con un messaggio o un URL da ritornare al client. Per default, il Web server emette un output di un messaggio di errore quando si verifica un errore. La direttiva ErrorDocument forza il Web server ad emettere un messaggio personalizzato o una pagina. Location I tag <Location> e </Location> vi consentono di specificare il controllo dell'accesso in base all'url. Per esempio, per abilitare gli utenti al collegamento dall'interno del dominio del server, per vedere lo stato dei report, usare le seguenti direttive: <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from <.example.com> </Location> Dovete sostituire <.example.com> con il nome del dominio di secondo livello. 135

136 RETI DI CALCOLATORI 2 Capitolo 11 Se desiderate fornire report sulla configurazione del server (inclusi i moduli installati e le direttive di configurazione) da richiedere all'interno del vostro dominio, usare le seguenti direttive: <Location /server-info> SetHandler server-info Order deny,allow Deny from all Allow from <.example.com> </Location> Ed ancora, sostituite <.example.com> con il nome del dominio di secondo livello per il Web server. NameVirtualHost La direttiva NameVirtualHost associa un indirizzo IP e un numero della porta, se necessario, per ogni host virtuale basato sul nome. La configurazione degli host virtuali basati sul nome, abilita un server Apache a servire diversi domini senza usare indirizzi IP multipli. Nota Bene: Ogni host virtuale basato sul nome funzionerà solo con connessioni HTTP non sicure, poiché non potete utilizzare host virtuali basati sui nomi con un server sicuro. In questo secondo caso, dovreste utilizzare host virtuali basati su indirizzi IP. VirtualHost I tag <VirtualHost> e </VirtualHost> creano una sezione riportando le caratteristiche dell'host virtuale. La sezione <VirtualHost> accetta molte direttive di configurazione. Utility ab: apache benchmark per misuare le prestazioni. apcachectl: script per controllare start/stop/restart. Gestione e trasmissione della risposta Apache ha una collezione di handler interni che gestiscono la risposta. Sono tipicamente assegnati sulla base della estensione del file fornito. Apache ha numerosi handler built-in; il default handler invia il contenuto al client aggiungendo i necessari header HTTP. La configurazione del server determina anche quali metadata devono apparire nell'header di risposta HTTP. Il Web server associa una particolare estensione con un particolare attributo della risorsa. Può avere un file di configurazione che definisce i tipi Multipurpose Internet Main Extensions (MIME) associati alle estensioni. In aggiunta al tipo MIME si aggiunge l'encoding per la compressione dei file definiti da estensioni addizionali (.z.z.zip) e le varianti di linguaggio (.it,.fr, etc) Quindi un file che si chiami index.en.html.z corrisponde ad un file compresso in HTML, scritto in lingua inglese. Altre possibilità della configurazione riguardano la possibilità di includere informazioni relative al caching. 136

137 RETI DI CALCOLATORI 2 Capitolo 12 CAPITOLO 12 HTTP HTTP 1.0 HyperText Transfer Protocol è un protocollo per trasmettere informazioni in: formati multipli, linguaggi multipli, diversi set di caratteri. La sintassi di HTTP è basata su MIME (Multipurpose Internet Mail Extensions) il cui scopo era quello di definire messaggi che contenessero diversi tipi di dati, presenti anche contemporaneamente. Attualmente funzionanti ci sono diverse versioni: HTTP/1.0 e HTTP/1.1. Il protocollo HTTP è evoluto insieme alle altre due componenti del Web, HTML e URI. È uno dei protocolli di più lenta ma significativa evoluzione. Dalla prima specifica proposta nel marzo del 1990 al CERN da Berners-Lee, HTTP/0.9, a HTTP/1.0 ci sono voluti 4 anni e altrettanti anni per passare da HTTP/1.0 a HTTP/1.1. La prima versione del protocollo fu descritta nel gennaio 1992 nella mailing list www-talk. Nel dicembre dello stesso anno, la discussione nella mailing list evidenziava le potenzialità di creare un sistema di information retrieval come WAIS, con il Web e MIME. La prima bozza di specifica di HTTP/1.0 fu fatta nel marzo del Nel giugno 1993 la bozza di specifica di HTML propose tale linguaggio come un content type MIME. Seguirono numerose bozze di HTTP/1.0. Nel marzo 1996 fu rilasciata una Informational Request For Comments (RFC 1945), la base per le implementazioni della maggior parte dei componenti di HTTP/1.0. I successivi tre anni videro una furiosa attività per cercare di aggiornare HTTP/1.0 per correggere vari problemi. Nel gennaio 1997 la RFC 2068 fu introdotta come Proposed Standard e nel giugno 1999 RFC 2616 fu rilasciata come il Draft Standard per HTTP/1.1, che diventò standard formale nel PROPRIETÀ DEL PROTOCOLLO Le proprietà chiave di HTTP sono: Global URI; request-response exchange; statelessness; 137

138 RETI DI CALCOLATORI 2 Capitolo 12 resource metadata. Global URI HTTP fa affidamento sul meccanismo di naming delle URI, le usa in tutte le transazioni per identificare le risorse nel Web. Infatti Global Uniform Resource Locator (URI) identifica una risorsa indipendentemente dalla sua locazione corrente o dal nome col quale è conosciuta. Una URI è stata definita nel 1998 per inglobare le nozioni di Uniform Resource Locator (URL) e Uniform Resource Name (URN). Una URN garantisce la univocità del nome della risorsa, ma non fornisce informazioni sulla locazione (es. la home page di Vittorio Scarano sarà sempre la home page di Vittorio Scarano indipendentemente dal server che la ospita), necessita eventualmente di una infrastruttura per l accesso. Le URL sono le URI maggiormente usate, mentre le URN non sono mai state implementate; ormai la stessa funzione viene fornita da Google. Scambio richiesta-risposta HTTP è basato sullo scambio di richiesta/risposta tra client e server, con la direzione del flusso ben chiara e sincronizzata: il server non inizia mai lo scambio con il client (niente push). La richiesta è il messaggio che viaggia dal client al server, la risposta dal server al client. Il server può essere l'origin server, o un intermediario come un proxy. Il client può essere uno user agent o chiunque si trovi nel path tra il richiedente e il server finale oggetto della richiesta. Il protocollo specifica i metodi che possono essere usati per la richiesta di risorse, ad esempio: GET /foo.html HTTP/1.0 La risposta generata sarà del tipo: HTTP/ OK Date: Wed, 22 Mar :01:01 GMT Last Modified: Wed, 22 Mar :16:33 GMT Content Lenght: 3913 <3913 bytes del contenuto di foo.html> Statelessness del protocollo HTTP è un protocollo stateless, il che significa che nessuna informazione di stato viene mantenuta da server e client tra più scambi di richiesta/risposta. Devono essere usati meccanismi esterni (cookies). È stata una decisione cruciale presa dai progettisti: l obiettivo principale era assicurare la semplicità del protocollo in maniera tale da ottenere scalabilità. Un protocollo con gestione dello stato tra connessioni numerose e non collegate, avrebbe richiesto la memorizzazione di un ammontare significativo di informazioni sul server. Metadati della risorsa Un metadato è una informazione relativa ad una risorsa ma che non è parte della risorsa stessa. Il concetto di metadata fu preso in prestito da SMTP, che include una struttura per descrivere il payload. In HTTP vengono usati per caratterizzare il body del messaggio. A seconda della risorsa è possibile includere numerosi metadati, ad esempio: tipo del contenuto (MIME type); data dell ultima modifica; 138

139 RETI DI CALCOLATORI 2 Capitolo 12 lunghezza del body. Vengono restituiti in una risposta come entity header. Le utilità principali sono: facilitare il processing della risorsa usando informazioni sul formato e sulla codifica; la lunghezza permette di preallocare strutture dati e di controllare la terminazione della trasmissione. INFLUENZE A CUI È SOGGETTO HTTP Nel periodo di incubazione di HTTP erano presenti molti altri protocolli con simili scopi. L'evoluzione di HTTP fu influenzata principalmente da due sistemi: Gopher e WAIS, oltre che da SMTP. Le somiglianze con Gopher riguardano la statelessness, l'architettura client server e l'uso di porte well known. Le differenze si riferiscono ai tipi di dati supportati, Gopher non faceva uso di MIME ed era orientato ai testi, non agli ipertesti. Da SMTP è stata presa la struttura dei messaggi d'errore. Il ruolo di MIME in HTTP Proposto per la prima volta nel 1992, Multipurpose Internet Mail Extensions (MIME), estese la RFC 822, l'internet Mail Protocol, per facilitare l'invio di oggetti multipli, testuali e non, all'interno dello stesso messaggio. Alcuni concetti di MIME sono interessanti per il Web: classificazione dei formati dei dati; formato per messaggi multipart: l'abilità di includere più entità in un singolo messaggio. ELEMENTI DEL LINGUAGGIO La specifica di HTTP/1.0 (RFC 1945) è la prima vera formale specifica di HTTP, quella di HTTP/0.9 non era altrettanto dettagliata. Terminologia HTTP MESSAGGIO Un messaggio è l'unità fondamentale di comunicazione in HTTP. Un messaggio di richiesta inizia con una request line, mentre un messaggio di riposta inizia con una status line. Tali messaggi di richiesta e di risposta possono avere zero o più header, separati da un opzionale body con due caratteri: carriage return, line feed (CR LF). 139

140 RETI DI CALCOLATORI 2 Capitolo 12 ENTITÀ HTTP/1.0 definisce una entità come una rappresentazione di una risorsa in una richiesta o una risposta. La definizione cambierà leggermente in HTTP/1.1 a causa dell'introduzione di meccanismi per la negoziazione del contenuto. RISORSA Una risorsa è un oggetto dati sulla rete o un servizio che può essere identificato da una URI. USER AGENT Lo user agent è il client che inizia la richiesta, può essere un browser, spider o qualsiasi altro tool capace di generare una richiesta. È l'unica parte direttamente connessa all'utente, se la richiesta è iniziata da un utente. I metodi della richiesta di HTTP/1.0 HTTP/1.0 definisce solo tre metodi: o GET o HEAD o POST Ci sono altri metodi, implementati in alcune versioni del protocollo comunque dette 1.0: o PUT o DELETE o LINK o UNLINK Gli ultimi due non fanno parte della versione 1.1. Le caratteristiche dei metodi sono: Safety: metodi che non alterano lo stato di una risorsa (ottengono ad esempio, il suo valore) sono detti safe. I metodi che alterano la risorsa sono detti non-safe. Idempotenza: gli effetti di una richiesta sono gli stessi di più richieste identiche. GET È il metodo più popolare. Applicato ad una risorsa specificata tramite una URI, la risposta generata è il valore della risorsa, sia essa statica o dinamica. È safe ed idempotente. 140

141 RETI DI CALCOLATORI 2 Capitolo 12 GET bin/query?q=foo Il metodo può contenere header che modificano la sua azione: GET /foo.html HTTP/1.0 If Modified Since: Sun, 12 Nov :12:23 GMT Il metodo GET non ha un body, se però è presente viene ignorato dai server. HEAD Il metodo HEAD fu introdotto per ottenere solo i metadati associati ad una risorsa, come se fosse stata richiesta. HEAD /foo.html HTTP/1.0 Risposta: HTTP/ OK Content Length: 3219 Last Modified: Sun, 12 Nov :12:23 GMT Content Type: text/html È safe ed idempotente, non ha un body, se però è presente viene ignorato dai server. POST Il metodo POST è usato principalmente per aggiornare una risorsa esistente, o per fornire l'input ad un processo di trattamento di dati. Il body della richiesta include tali dati. Per effettuare questa operazione ovviamente è necessaria l'autenticazione. POST /foo/bar.cfm HTTP/1.0 Content Length: 143 <entity body> Il metodo POST può alterare il contenuto di una risorsa, e quindi non viene visto come un metodo safe. Gli effetti di una serie di richieste identiche possono essere differenti, POST non è neanche idempotente. L'header Content Length è richiesto come parte di una richiesta POST per fare in modo che il server sia consapevole di quando tutti i contenuti sono stati trasferiti. Anche il metodo GET può essere usato per fornire input ad un programma, codificandolo nella request URI: GET /search.cgi?string=iktinos?db=greek architects HTTP/1.0 POST /search.cgi HTTP/1.0 Content Length: 34 CRLF query iktinos db greek architects Entrambe le richieste producono la stessa risposta, ma con GET è possibile che le informazioni trasmesse vengano loggate da qualche proxy presente nel path verso l'origin server. Inoltre alcuni proxy hanno un limite alla lunghezza delle URI che possono trattare. 141

142 RETI DI CALCOLATORI 2 Capitolo 12 PUT Simile a POST ma usato per risorse statiche quindi a differenza di POST, PUT è idempotente ma rimane non-safe. Non è formalmente definito da HTTP/1.0, ma viene brevemente descritto in una appendice della RFC 1945 DELETE Il metodo DELETE è usato per cancellare la risorsa identificata dalla request URI. L'origin server ha il controllo sul se e quando l'operazione richiesta viene realmente effettuata. Il server può rispondere con il completamento o la promessa del completamento della cancellazione. Non è un metodo safe, ma è idempotente. LINK/UNLINK Il metodo LINK permette la creazione di collegamenti tra la request URI ed altre risorse dello stesso server. UNLINK elimina il collegamento creato da LINK. Non sono metodi usati ampiamente e non sono presenti nella specifica di HTTP/1.1. Gli Header di HTTP/1.0 Un header è una stringa ASCII che rappresenta un nome con spesso un valore associato. Possono essere usati per fornire metadati di una risorsa: lunghezza, encoding, lingua, etc. Nei protocolli di più basso livello nella gerarchia ISO/OSI (ad esempio trasporto: TCP) gli header sono fissati e non è possibile ampliarli. In HTTP è possibile definirne di nuovi e di lunghezza arbitraria. Questo meccanismo di estendibilità permette al protocollo di essere facilmente adattabile a nuove necessità che possono via via manifestarsi. La sintassi è complicatissima: name: value. Un messaggio HTTP può avere un numero indefinito di header, separati da un CRLF. Alcuni tipi di messaggi di richiesta o di risposta possono richiedere espressamente alcuni header, ma la maggior parte sono opzionali. Gli header definiti nella specifica sono stati creati per essere compresi da tutte le componenti del Web: server, proxy e client. Un header di un messaggio HTTP/1.0 può essere: un general header usato nei messaggi di richiesta e di risposta; un request header che si trova in un messaggio di richiesta per esprimere preferenze sulla natura della risposta, per includere informazioni addizionali o specificare dei vincoli di cui il server deve tenere conto; un response header che si trova in un messaggio di risposta per fornire informazioni addizionali o richiedere informazioni addizionali all'utente; un entity header che si trova nei messaggi di richiesta e di risposta. Gli entity header sono utilizzati per fornire informazioni sull'entità, come la sua data di modifica. Se un header non viene riconosciuto come uno dei tre tipi precedenti, allora è trattato come un entity header. GENERAL HEADER Date: specifica la data di creazione del messaggio HTTP. Può essere espressa in tre formati: RFC 822, RFC 1036, ANSI C standard's asctime(). 142

143 RETI DI CALCOLATORI 2 Capitolo 12 Pragma: permette di inviare istruzioni al destinatario del messaggio. L'unico valore permesso è: Pragma: no cache che informa i proxy nel path di non restituire una copia in cache della risorsa richiesta. REQUEST HEADER Authorization: utilizzato dallo user agent per includere le credenziali richieste per accedere ad una risorsa: Authorization: Basic YXZpYXRpS29IDizM1NA== Basic si riferisce allo schema di autenticazione con cui le credenziali sono codificate nella forma di userid e password. La stringa YXZpYXRpS29IDizM1NA== è una codifica della userid e della password nel formato Base64 (che non include crittografia, quindi le informazioni viaggiano in chiaro). From: serve per specificare l'indirizzo dell utente. È utile per i client come gli agent (robot agent in uno spider, per esempio) per identificare l'utente responsabile del programma: From: If Modified Since: è un esempio di header condizionale. Se la risposta precedente del server è stata messa in cache da un proxy o dal client, il valore specificato in Last Modified del response header viene usato nelle seguenti GET come argomento di questo header. GET /foo.html HTTP/1.0 If Modified Since: Sun, 21 May :00:25 GMT Se la risorsa non è stata modificata dalla data specificata, il server restituisce: 304 Not Modified. Referer: specifica la URI da cui la request URI è stata ottenuta: la pagina dove si trova il link. Vi possono essere problemi di privacy. Un server può controllare il campo Referer per negare certe risorse se l'utente proviene da una determinata pagina (filtering). User Agent: include informazioni quali la versione del browser, spesso con informazioni sul sistema operativo e sull hardware dell'utente. Un possibile uso positivo riguarda la browserizzazione delle risorse. User Agent: Mozilla/4.03 (Macintosh; I; 68K, Nav) User Agent: Mozilla/4.04 [en]c WorldNet (Win95; I) RESPONSE HEADER Location: questo header viene utilizzato per redirezionare le richieste verso la posizione della risorsa, utile per la classe di risposte sulle redirezioni. Location: Server: è analogo all'header User-Agent. Contiene informazioni sull'origin server, come la versione del software e configurazione. Utile per debug, collezionare statistiche e attacchi DoS. Server: Apache/1.2.6 Red Hat 143

144 RETI DI CALCOLATORI 2 Capitolo 12 Server: Netscape Enterprise/3.5.1 Server: Apache/1.x.y mod_perl mod_ssl WWW Authenticate: questo header è usato per fornire una challenge al client che chiede l'accesso ad una risorsa che richiede autenticazione. Viene restituito con la risposta 401 Unauthorized, il client può quindi ritrasmettere la richiesta con le credenziali appropriate nell'header Authorization. WWW Authenticate: Basic realm= ChaseChem Il realm identifica una collezione di risorse a cui è possibile accedere tramite l'autenticazione. ENTITY HEADER Allow: indica la lista dei metodi validi applicabili ad una risorsa. Viene inviato dal server quando viene richiesto un metodo inapplicabile, oppure dal client per indicare (con una PUT) quali sono i metodi che possono essere usati per la risorsa. PUT /foo.html HTTP/1.0 Allow: HEAD, GET, PUT Content Type: indica il tipo del contenuto dell'entity body. POST /chat/chatroom.cgi HTTP/1.0 User Agent: Mozilla/3.0C Content Type: application/x www form urlencoded Content Encoding: questo header indica come la rappresentazione della risorsa è stata modificata e come può essere decodificata nel formato indicato dal Content-Type. Content Encoding: x gzip Content Length: indica la lunghezza dell'entity body in byte. Senza questo header il client, per indicare che ha finito di trasmettere, deve chiudere la connessione. Aggiunge latenza in quanto è necessario il precalcolo delle richieste on-the-fly per poter inserire nell'header tale informazione. A volte viene quindi omesso e HTTP/1.0 permette la chiusura della connessione da parte del client. Tipicamente è omesso in caso di risorse dinamiche. Expires: indica la data di validità. È un modo per il mittente di indicare quando la risorsa (non il messaggio) dovrà essere considerata non più valida. Modifica quindi il caching, la risorsa non viene restituita, non lo storing. HTTP/ OK Server: Microsoft IIS/4.0 Date: Mon, 04 Dec :16:45 GMT Expires: Tue, 05 Dec :16:45 GMT Last Modified: specifica quando la risorsa è stata modificata l'ultima volta. Se la risorsa è statica, allora questo campo può contenere la data dell'ultima modifica mantenuta dal file-system. In caso di risorsa generata dinamicamente, può contenere la data di generazione. Le classi di risposta I vari tipi di risposta sono raggruppati in un insieme di classi di risposta. Ci sono cinque classi, denotate da un intero di tre digit. 144

145 RETI DI CALCOLATORI 2 Capitolo 12 1xx INFORMATIONAL CLASS RESPONSE CODES Allocata in HTTP/1.0 ma non usata. 2xx SUCCESS CLASS RESPONSE CODES Indica semplicemente che il server ritiene di aver capito la richiesta ed invia la risposta che ritiene appropriata. I codici definiti da HTTP/1.0 sono: 200 OK: richiesta trattata con successo. 201 Created: risorsa creata correttamente come risultato di una richiesta POST. 202 Accepted: la richiesta è stata ricevuta, ma non trattata completamente. È stata introdotta per indicare al client di continuare le sue operazioni senza aspettare la risposta, in quanto non può essere generata immediatamente. 204 No Content: indica al client che la richiesta è stata trattata, ma non ci sono modifiche da effettuare a quello che l'utente vede attualmente. 3xx REDIRECTION CLASS RESPONSE CODES Informa che per soddisfare la richiesta il client deve intraprendere altre azioni: 300 Multiple Choices: informa circa la disponibilità di una risorsa in locazioni differenti. Non viene utilizzato. 301 Moved Permanently: è usato per indicare che la risorsa è stata spostata definitivamente in un'altra locazione. 302 Moved Temporarily: variante della risposta precedente, in quanto indica che la risorsa è stata spostata temporaneamente. 304 Not Modified: usato nella rivalidazione dei contenuti, per indicare che la risorsa non è stata modificata dalla data di ultima modifica inclusa nella richiesta. 4xx CLIENT ERROR CLASS RESPONSE CODES Indica errori del client, con spiegazione da parte del server di possibili correzioni: 400 Bad Request: indica che la sintassi della richiesta non è corretta o non può essere riconosciuta dall'origin server. 401 Unauthorized: se la risorsa richiesta richiede autorizzazione, il server risponde con questo codice per iniziare la challenge. 403 Forbidden: il server non può accettare la richiesta. Si noti che la richiesta è stata ben interpretata dal server che deliberatamente decide che non può accettarla. La ragione può essere inclusa nell'entity body. 404 Not Found: il server non è in grado di localizzare la risorsa. Non viene indicato se è un problema temporaneo. 5xx SERVER ERROR CLASS RESPONSE CODES Il server sa di non poter rispondere alla richiesta, il client quindi può provare a riformulare la sua richiesta: 500 Internal Server Error: indica che è accaduto un errore nel server, di cui non è possibile ricavare altre informazioni. 145

146 RETI DI CALCOLATORI 2 Capitolo Not Implemented: il server non implementa il metodo richiesto. 502 Bad Gateway: è usato quando un server che agisce da proxy o da gateway non è in grado di processare la risposta ricevuta da un altro server. L'errore non è avvenuto nell'origin server. 503 Service Unavailable: il server non è attualmente in grado di rispondere alla richiesta, ma potrebbe esserlo nel futuro, ad esempio il server può essere temporaneamente occupato. ESTENDIBILITÀ DI HTTP Una delle prime decisioni progettuali di HTTP fu quella di includere la nozione di estendibilità. Il principio di separation of concerns indica che un protocollo non ha bisogno di essere riferito alle specifiche di come è stato implementato. SSL E SICUREZZA La presenza di numerosi intermediari, alcuni dei quali sconosciuti allo user agent o al Web server, non permette di ottenere una comunicazione sicura sul Web semplicemente rendendo sicure le applicazioni client e server. Un intermediario qualsiasi può alterare il messaggio o essere vulnerabile alle intercettazioni. SSL è un protocollo tra il layer di trasporto e quello applicazione, che permette di crittografare ed autenticare i messaggi scambiati. Essendo un protocollo di livello diverso, tutti lo possono usare. HTTPS è un protocollo che usa SSL per trasmettere messaggi HTTP. Sicurezza in HTTP/1.0 Nella specifica del protocollo si tiene in considerazione l'abuso potenziale delle informazioni presenti nei log dei server con cui la privacy dell'utente può essere violata rivelando la natura, la frequenza, i pattern degli accessi. Referer e From sono esempi di header il cui abuso può intaccare la privacy. Il primo può essere usato per ottenere un pattern di browsing dell'utente, le informazioni di identificazione possono essere trasmesse con l'header From senza il consenso dell'utente. HTTP/1.0 raccomanda fortemente che le implementazioni forniscano un modo per dare all'utente la possibilità di decidere quali informazioni rendere disponibili. Con l'utilizzo degli script Common Gateway Interface (CGI) ci possono essere potenziali effetti collaterali anche per metodi considerati safe. Sfortunatamente in HTTP/1.0 le credenziali sono inviate in chiaro, rendendole quindi insicure. 146

147 RETI DI CALCOLATORI 2 Capitolo 13 CAPITOLO 13 HTTP/1.1 L'EVOLUZIONE DI HTTP/1.1 Alcune delle decisioni progettuali di base di HTTP/1.0 hanno numerosi effetti collaterali. Per esempio, un problema è che il protocollo a livello applicazione HTTP viene eseguito sopra il più importante protocollo a livello di trasporto, TCP. Sebbene TCP fosse stato scelto come protocollo di trasporto sin dagli albori del Web, la versione originale di HTTP, chiamata HTTP/0.9, non richiedeva esplicitamente l'uso di TCP. In ogni caso, TCP non è ottimizzato per brevi trasferimenti, che rappresentano la maggior parte del traffico Web. L'evoluzione da HTTP/1.0 a HTTP/1.1 non è stata né semplice né tranquilla, in quanto è avvenuta durante la browser war. Numerosi browser e numerosi realizzatori di software avevano introdotto caratteristiche che non seguivano l'uso comune di HTTP/1.0 e non avevano ottenuto consensi nel HTTP Working Group. Una volta che una nuova caratteristica diveniva di uso comune, il bisogno della retro-compatibilità guidava le negoziazioni nel Working Group. Numerosi problemi conosciuti di HTTP/1.1 sono dovuti al desiderio di mantenere la compatibilità ed alla mancanza di estensibilità di HTTP/1.0. Comunque il protocollo è evoluto significativamente ed ha risolto un'ampia gamma di problemi. Il processo di evoluzione di HTTP è stato complicato a causa di una discussione sofferta del Proposed Standard intermedio RFC 2068, che racchiudeva lo stato attuale delle discussioni su HTTP/1.1. Il documento di bozza sottomesso per il Proposed Standard sfortunatamente rimase tale per lungo tempo, prima di divenire Proposed Standard nel gennaio Durante la server war c'erano diversi server che già dicevano essere HTTP/1.1, anche se il protocollo non era stato ancora definito. Ciò portava ad avere server incompatibili tra loro. Nel tentativo di standardizzare HTTP/1.1 per assicurare anche compatibilità con le implementazioni di browser e server compatibili con RFC 2068, venne fornito un Proposed Standard RFC 2616 nel giugno 1999 come un Draft Standard, che è divenuto un Internet Standard nel Problemi di HTTP/1.0 L'insieme dei problemi relativi a HTTP/1.0 sono i seguenti: mancanza di controllo sulla cache (durata, locazione, selezione tra varianti di specifiche richieste e risposte, etc); download di una intera risorsa quando solo una parte è richiesta; uso inefficiente di TCP per richieste brevi; nessuna garanzia della consegna completa di response generate dinamicamente; problemi di estensibilità ed incapacità di ottenere informazioni sugli intermediari; esaurimento degli indirizzi IP (per i domini di siti Web); impossibilità di esprimere preferenze da parte dei client e dei server sulle richieste/risposte; mancanza di sicurezza per l'autenticazione (username e password inviate in chiaro); regole ambigue per la gestione dei proxy e della cache; 147

148 RETI DI CALCOLATORI 2 Capitolo 13 problemi vari con metodi, header e codici di risposta. Nuovi concetti in HTTP/1.1 A parte la sistemazione dei problemi conosciuti di HTTP/1.0, in HTTP/1.1 sono stati introdotti alcuni nuovi concetti: meccanismo hop-by-hop; transfer coding; virtual hosting; trasparenza semantica del caching; supporto per le varianti di una risorsa. MECCANISMO HOP-BY-HOP Dal punto di vista dell utente, il Web viene visto come un meccanismo end-to-end: una richiesta del client viene inviata all origin server che risponde, inviando la risposta. Non è sempre così a causa della presenza di cache o proxy. In altre parole, un messaggio HTTP viaggia attraverso numerosi intermediari. Gli header sono inviati in entrambe le direzioni, ed i proxy nel path, anche quando non sono in grado di interpretare i campi dell'header, li inoltrano. A causa dell'ampia presenza di intermediari nel Web, è possibile che una coppia di intermediari adiacenti, particolarmente intelligente, possa modificare la richiesta HTTP, per efficienza, introducendo header aggiuntivi, che non andrebbero però propagati oltre. Diventa quindi necessario avere la possibilità di inviare insiemi arbitrari di header solo ad un certo intermediario: header hop-by-hop, ovvero header validi solo in una singola connessione a livello di trasporto, che vengono inseriti da un intermediario che vuole usare una particolare funzionalità presente solo tra due elementi della catena di proxy. HTTP/1.1 utilizza un nuovo header, Connection, per listare gli header hop-by-hop: Connection: header1, header2 TRANSFER CODING In HTTP/1.1, la nozione di entity è distinta più chiaramente dal messaggio: messaggio: l'unità di comunicazione in HTTP, con header e, opzionalmente, body; entity: quello che è realmente trasferito con un messaggio; un'entity è separata in entity header ed entity body. A differenza di HTTP/1.0 in cui si parlava di content coding, che riguarda l'entity, in HTTP/1.1 è stato introdotto il concetto di transfer coding applicato solamente all'entity body. 148

149 RETI DI CALCOLATORI 2 Capitolo 13 Il transfer-coding è manifestato in HTTP/1.1 tramite due nuovi header: l'header di richiesta TE, usato da un mittente per indicare quali transfer coding sono accettabili per la risposta; l'header generale Transfer Encoding, usato per specificare quali transfer coding è stato applicato al messaggio. Il meccanismo di transfer-coding è un meccanismo hop-by-hop, in quanto gli intermediari possono rimuovere il tranfer coding o aggiungere il loro transfer coding. Entrambi gli header sono hop-byhop. METODI, HEADER E CODICI DI RISPOSTA IN HTTP/1.0 E HTTP/1.1 Metodi di richiesta HTTP/1.0 ha solo tre metodi di richiesta (GET, HEAD e POST). Quattro altri metodi (PUT, DELETE, LINK e UNLINK) sono usati solo in alcune implementazioni e sono descritti in un'appendice della RFC Due di questi (PUT e DELETE) sono stati mantenuti in HTTP/1.1 e descritti formalmente, mentre gli altri due (LINK e UNLINK) sono stati rimossi. Sono stati poi realizzati tre nuovi metodi (OPTIONS, TRACE e CONNECT). L unico requirement MUST della specifica di HTTP/1.1 sono i metodi GET e HEAD. Header GENERAL HEADERS HTTP/1.0 definisce solo due general headers (Date e Pragma). In HTTP/1.1 ne sono stati introdotti altri per: controllo della cache; gestione del meccanismo hopby-hop; transfer encoding; etc. 149

150 RETI DI CALCOLATORI 2 Capitolo 13 REQUEST HEADERS Gli header request passano da 5 a 19, in più sono state fatte alcune modifiche su header già esistenti quali l'espansione dell header di autenticazione, l'uso di If Modified Since anche per altri metodi. Si possono dividere in quattro classi: response preference: header per settare preferenze nella risposta (lingua, set di caratteri); information sent with request: informazioni inviate con la richiesta (informazioni di autenticazione); conditional request: header per realizzare delle richieste addizionali constraint on server: header per specificare dei vincoli sui server. RESPONSE HEADERS È stata chiarificata l'esistenza degli header di risposta esistenti in HTTP/1.0 e ne sono stati definiti sei nuovi: ENTITY HEADERS Gli entity header definiti in HTTP/1.1 sono: HOP-BY-HOP HEADERS 150

151 RETI DI CALCOLATORI 2 Capitolo 13 In HTTP/1.1 sono stati definiti otto header hop-by-hop: Connection, Keep Alive, Proxy Authenticate, Proxy Authorization, Trailers, TE, Transfer Encoding e Upgrade. Il resto degli header sono end-to-end e non possono essere resi hop-byhop includendoli semplicemente nell'header Connection, mentre i nuovi header, che possono essere specificati, possono anche essere resi hop-by-hop elencandoli nell'header Connection. Classi di risposta In HTTP/1.1 i codici di risposta vengono portati da 16 a 41, ma non viene specificata nessuna nuova classe. 1xx INFORMATIONAL CLASS RESPONSE CODES In HTTP/1.0 questa classe non era usata. Con HTTP/1.1 vengono aggiunti due nuovi codici: 100 Continue: usato con il meccanismo di Expect, per testare la risposta di un server il più presto possibile (scambio preventivo). 101 Switching Protocols per la possibile estensione di HTTP/1.1 con nuovi protocolli. 2xx SUCCESS CLASS RESPONSE CODES Ci sono sette codici di risposta in questa classe, di cui quattro di HTTP/1.0, ad esempio: 205 Reset Content: es. reset di form lato client. 206 Partial Content: per evitare il caching da parte di un proxy senza la funzionalità di range. 151

152 RETI DI CALCOLATORI 2 Capitolo 13 3xx REDIRECTION CLASS RESPONSE CODE Questa classe di codici di risposta è usata per specificare azioni alternative che possono essere eseguite dallo user agent per completare la richiesta. Il vecchio codice 300 Multiple Choices ha un'applicazione più diretta in HTTP/1.1, il significato di 302 Found è cambiato e ci sono quattro nuovi codici: 303 See Other: nato per i client che avevano un bug per gestire la 302 Moved Temporarily (diventata 302 Found in HTTP/1.1). 305 Use Proxy: bisogna richiedere la risorsa via proxy con Location 4xx CLIENT ERROR CLASS RESPONSES Ci sono 14 nuovi codici di risposta per gli errori dei client in HTTP/1.1, a dimostrazione dell'incremento del feedback dato ai client sospettati di aver inviato richieste erronee. 409 Conflict: due azioni PUT sulla stessa risorsa. 410 Gone: richiesta per risorsa non trovata ma che prima c era. 5xx SERVER ERROR CLASS RESPONSES Questa classe di codici è utilizzata quando il server non è in grado di gestire la richiesta o ha commesso degli errori. In HTTP/1.1 sono stati aggiunti ulteriori due codici: 152

153 RETI DI CALCOLATORI 2 Capitolo 13 CACHING Termini relativi al caching Alcuni termini da definire: Age: l'età di una risposta è il tempo da quando l'entità è stata inviata dall'origin server, o da quando è stata rivalidata; è espressa in secondi. Expiration time: dopo la scadenza di questo tempo, settato dall'origin server, è necessario fare una rivalidazione dell'entità contenuta nella cache prima di trasmetterla come risposta; è espresso in secondi. Freshness lifetime e staleness: una risposta è generata dall'origin server ad un certo momento. L'origin server può decidere per quanto tempo la risposta può essere considerata fresh (valida). Una volta che l'età di una risposta ha superato il suo freshness time, viene considerata stale ( vecchia ). Quindi il freshness lifetime è il periodo di tempo tra la generazione della risposta ed il suo expiration time. Freshness esprime una durata, mentre l'expiration time è un particolare momento. Validity: il gestore della cache può controllare con l'origin server se la copia della risposta mantenuta in cache è fresh. Questo controllo è chiamato rivalidazione. Cacheability: una cache può decidere se una risposta deve essere memorizzata o meno. La cacheability di una risposta dipende da vari fattori, quali il permesso dell'origin server e l'assenza di un esplicito expiration time. Cacheability e validity di una risposta solo concetti collegati ma differenti. Non tutte le risposte sono cacheable e non tutte le risposte in cache possono essere trasmesse come risposte valide dalla cache. Cache maintenance: una risposta cacheable è memorizzata nella cache. Gestire una cache richiede occuparsi di problemi quali la cacheability di una risposta, periodo di tempo per il quale una risposta può essere mantenuta in cache e decidere se una risposta in cache deve essere rivalidata o meno. Caching in HTTP/1.0 HTTP/1.0 fornisce il controllo della cache in tre modi: un request header: Pragma: no cache un response header: Expires un modificatore per GET: If Modified Since HTTP/1.0 permette la direttiva Pragma: no cache con la quale i client possono richiedere che la risposta arrivi direttamente dall'origin server. Fornisce anche l'entity header Expires per indicare che la risorsa può essere memorizzata in cache fino al tempo di scadenza. Il terzo meccanismo consiste nella richiesta GET condizionale con If Modified Since. Se una copia in cache della risposta è ancora fresh, il server potrebbe rispondere con 304 Not Modified senza il body della risposta. Se il tempo di ultima modifica della risorsa è più recente di quello specificato nella richiesta, il server risponde con un codice appropriato (200 OK) e con il body di risposta completo. Ci sono stati degli abusi nelle varie implementazioni. L'header Expires può essere usato con un valore tale da forzare la scadenza immediata della risorsa, impedendo quindi che la stessa venga 153

154 RETI DI CALCOLATORI 2 Capitolo 13 conservata in cache (cache busting). Questo metodo è usato soprattutto per incrementare i guadagni dovuti ai banner pubblicitari, facendo in modo che tali banner vengano inviati al client ogni volta che questi si collega alla pagina. Caching in HTTP/1.1 Ci sono alcune linee guida seguite nella progettazione della gestione del caching in HTTP/1.1: separare la politica di caching, quando e quanto a lungo una risorsa deve essere in cache, dalla correttezza del caching; assicurare la correttezza, magari avvisando esplicitamente l utente, anche quando questo comporta un costo. Una cache non dovrebbe rispondere con un valore stale inconsapevolmente; il server deve dare maggiori informazioni su una risorsa per permettere una politica cosciente da parte di client e proxy; nessuna dipendenza da tempi assoluti per la sincronizzazione tra gli orologi di client e server; offrire il supporto per la negoziazione delle response in cache; il principio di robustezza: una componente deve essere di larghe vedute quando accetta e rigido quanto invia. Siccome in HTTP/1.0 è già presente la nozione di scadenza (expiration), i cambiamenti relativi al caching in HTTP/1.1 devono essere compatibili con come il tempo di expiration era usato. In HTTP/1.1 ci sono quattro nuovi header associati al caching: Age, Cache Control, ETag e Vary. HEADER AGE Il server può usare questo header per indicare quanto tempo fa è stata generata la risposta dall'origin server. Se il server è un caching proxy, questo valore dovrebbe essere il tempo in cui la risposta in cache è stata rivalidata. I proxy sono obbligati a generare questo header, il cui valore è espresso in secondi è non può essere negativo. HEADER CACHE-CONTROL Fornisce più controllo sia al mittente che al destinatario sul caching. Sono possibili diverse direttive nella richiesta e nella risposta e tale insieme è estensibile. Direttive nella richiesta per Cache Control: no cache: ha il medesimo significato di Pragma: no cache di HTTP/1.0. Tutti i proxy nel path tra mittente e l'origin server non possono restituire una risposta dalla cache, ma sono obbligati a inoltrare la richiesta all'origin server. 154

155 RETI DI CALCOLATORI 2 Capitolo 13 only if cached: è il contrario della direttiva precedente, permette al mittente di specificare che accetta solo la risorsa fornita dalla cache. Un proxy può consapevolmente restituire una risposta stale, solo se la richiesta non ha altri vincoli quali l'header If Modified Since. no store: viene utilizzato per garantire la privacy in quanto richiede che la risposta non venga memorizzata in nessuna cache. Non c'è comunque nessuna garanzia che questa direttiva venga rispettata (intermediari). max age: per decidere se una risposta in cache è stale, lo user agent può alterare il meccanismo di expiration di default tramite questa direttiva. La risposta deve essere più recente del valore specificato (in secondi) in max age. La direttiva max age=0 forza la rivalidazione end-to-end. max stale: esprime la buona volontà da parte del client di accettare risposte dalla cache che possono essere stale. max stale=60 implica che lo user agent accetti risposte non più vecchie di un minuto. min fresh: esprime la buona volontà del client di accettare una risposta che rimanga fresh per il numero di secondi specificato. Quindi se viene specificato il valore 60 come argomento della direttiva, ci si aspetta che la risposta non venga considerata stale dopo 60 secondi. no transform: non consente nessuna trasformazione sul tipo di dati in cache. Le trasformazioni possibili riguardano l'entity body e coinvolgono la codifica dei contenuti, il tipo dei contenuti ed il controllo di integrità. Una ragione per trasformare un entity body è l'efficienza, per esempio comprimere il contenuto per velocizzarne il trasferimento. Direttive nella risposta per Cache Control: public: una cache può decidere di non memorizzare una certa risposta in cache per paura di violare la privacy. Un server, includendo l'header Cache Control: public, può indicare che una particolare risposta può essere memorizzata in cache senza problemi. private: specifica che la risposta può essere messa in cache solamente dall end user. La specifica può essere seguita da quali parti del messaggio sono da considerarsi private, invece di tutto il messaggio: Cache Control: private = CustomerID solo il contenuto del campo CustomerID non può essere memorizzato in una cache pubblica. no store: simile a quello della richiesta, indica che sia la richiesta che la risposta non possono essere memorizzati in cache. 155

156 RETI DI CALCOLATORI 2 Capitolo 13 no cache: la risposta può essere memorizzata in cache ma la cache deve garantire la freshness della risposta rivalidandola. no transform: come quello di richiesta. must revalidate: permette ad un origin server di indicare che per certe risposte c'è un rischio maggiore per una cache, di restituire valori potenzialmente stale. La differenza tra must revalidate e no cache consiste nel fatto che una cache probabilmente non memorizzerà una risposta con la direttiva no cache, mentre con must revalidate la risposta può essere memorizzata in cache ma deve essere rivalidata subito dopo che è diventata stale. no cache forza la cache a validarla senza controllare se la risposta è diventata stale o no. proxy revalidate: è meno restrittiva della direttiva precedente, in quanto questa non si applica a tutte le cache, ma solo a quelle condivise tra più user agent. La cache di uno user agent può restituire una risposta in cache senza rivalidarla. max age: specifica il tempo di expiration di una entity. Sovrascrive ogni valore in Expires quando viene calcolato il tempo in cui una risposta in cache è fresh. s maxage: è applicata solo alle cache condivise, sovrascrive sia Expires che max age. HEADER ETAG Gli Entity TAG (ETag) sono stati introdotti in HTTP/1.1 principalmente come un validatore trasparente per confrontare una entry di una cache con una possibile nuova versione. Una data risorsa può avere differenti versioni, ed ogni versione avrà un entity tag distinto. La garanzia offerta da un entity tag è semplice: se c'è un'entity differente associata alla stessa risorsa, l'entity tag è diverso. Conseguentemente per la stessa risorsa, se gli entity tag sono identici, le versioni della risorsa possono essere considerate identiche. Gli entity tag dividono la validazione della cache dalla expiration. I nuovi request modifiers di HTTP/1.1 If Match e If None Match usano gli entity tag. Nello specifico questi modificatori possono essere utilizzati per manifestare l'interesse per una specifica versione della risorsa. Se la risorsa ha una versione differente, il tentativo fallisce ed il server restituisce il codice 412 Precondition Failed. Includendo l'header If None Match: * in combinazione con il metodo PUT si assicura che la richiesta non venga soddisfatta se la risorsa esiste già. La specifica di HTTP/1.1 distingue tra strong e weak entity tag. Il primo indica cambiamenti in entity che non sono equivalenti a livello di byte. Il secondo indica cambiamenti solo a livello semantico. 201 Created in HTTP/1.1 può includere un entity tag. HEADER VARY Quando, in HTTP/1.0, una risposta viene memorizzata in cache, l'uri è usato come chiave per individuare la risorsa. Rappresentazioni multiple della stessa risorsa rendono però le URI inadeguate a questo compito. L'header di risposta Vary è usato per elencare l'insieme di header della richiesta che dovrebbero essere usati per selezionare una variante appropriata dalla cache. Il caching avviene memorizzando oltre che la URI anche il valore dell header Vary, che viene usato per determinare se si può usare la copia della cache oppure no. 156

157 RETI DI CALCOLATORI 2 Capitolo 13 HTTP/ OK Date: Sun, 26 Dec :12:26 GMT Server: Apache/1.2.6 Red Hat Last Modified: Fri, 24 Dec :21:42 GMT ETag: cc678 12d Content Length: Content Type: text/html Vary: Accept Language OTTIMIZZAZIONE DELLA BANDA La crescita del Web ha portato all aumento della banda richiesta dagli utenti. Ci sono tre categorie di cambiamenti in HTTP per ottimizzare la banda: se non c'è bisogno di trasmettere l'intera risorsa, supportare il trasferimento di parti di una risorsa potrebbe essere utile per risparmiare banda; se il mittente conosce a priori che il ricevente non può gestire il body del messaggio, potrebbe scegliere di non inviare la risorsa a tutti; un modo per risparmiare banda è quella di trasformare la risorsa prima di inviarla (compressione). Richiesta per range Richiedere porzioni di una risorsa può essere utile in molte situazioni; per esempio, gli user agent possono richiedere selettivamente una parte particolare nel mezzo di una risorsa potenzialmente molto grande senza scaricarla per intero. Oppure è possibile effettuare la richiesta di una risorsa intera (parzialmente già scaricata), richiedendo solo la parte mancante. Probabilmente questa funzionalità è stata influenzata dal formato PDF di Adobe, che specifica inizio/fine di ogni pagina, a inizio documento. Usando un header Range, un client può specificare che è interessato ad un particolare range di byte piuttosto che l'intera risorsa: GET bigfile.html HTTP/1.1 Host: Range HTTP/ Partial Content Date: Thu 10 Feb :02:06 GMT Content Range: bytes / Content Length: 2000 Content Type: text/html L'entity header Content Range (novità di HTTP/1.1) aiuta il ricevente a collocare il range ricevuto all'interno dell'intera risorsa. Il codice di risposta 206 Partial Content indica al client che la risposta ricevuta non è una risposta completa. Sono possibili anche altre specifiche per indicare il range: 1000: gli ultimi 1000 byte della risorsa; 9120 : tutti i byte dopo la posizione

158 RETI DI CALCOLATORI 2 Capitolo 13 Inoltre è possibile specificare un insieme di range; il server risponderà con i range richiesti in un unico body, il cui content type sarà multipart/byteranges: GET bigfile.html HTTP/1.1 Host: Range: 0 100, , 9600 HTTP/ Partial Content Date: Thu, 10 Feb :25:23 GMT Server: Apache/1.2.6 Red Hat Last Modified: Fri, 24 Dec :21:42 GMT ETag: cc678 12d Content Type: multipart/byteranges; boundary= ROPE ROPE Content Type: text/html Content Range: bytes 0 100/ i primi 101 byte della risorsa... ROPE Content Type: text/html Content Range: bytes / byte nel mezzo della risorsa... ROPE Content Type: text/html Content Range: bytes / tutti i byte dopo il byte 9600 della risorsa... ROPE Per indicare che il messaggio è terminato si usa il doppio trattino ( ). HTTP/1.1 ha introdotto la risposta 416 Request Range Not Satisfiable utilizzabile quando il range richiesto della risorsa non può essere restituito. Un server capace di accettare richieste di range di byte di risorse, può indicare questa funzionalità con un header nel messaggio di risposta: Accept Ranges: bytes Comunque è possibile per il client fare richieste di range anche se non ha visto tale header in nessun messaggio. Un server incapace di gestire i range restituisce semplicemente la risorsa completa con il codice 200 OK. Inoltre è possibile specificare esplicitamente la volontà da parte del server di non voler gestire richieste di range di risorse: Accept Ranges: none Supponiamo che una richiesta di range venga effettuata per una risorsa in una cache, ma non tutto il range richiesto sia disponibile nella cache. È possibile che la risorsa non sia stata modificata, nel qual caso potrebbe bastare ottenere dall'origin server la parte mancante. Se la risorsa è stata modificata, deve essere richiesta al server l'intera risorsa. Tipicamente questo significa inviare due messaggi: uno per controllare se la risorsa è stata modificata ed un altro con il 158

159 RETI DI CALCOLATORI 2 Capitolo 13 range request. Per racchiudere il tutto in un solo messaggio, in HTTP/1.1 è stato introdotto un nuovo header: If Range. Se la risorsa è stata modificata, nella risposta viene restituita l'intera risorsa; altrimenti, solo il range richiesto. GET bigfile.html HTTP/1.1 Accept Language: en us Accept Encoding: gzip, deflate Range: bytes= If Range: cc678 12d User Range: Mozilla Host: Se l'entity tag della risorsa sull'origin server corrisponde con l'entity tag presente come argomento di If Range, il server potrebbe restituire i 201 byte richiesti, o altrimenti l'intera risorsa. Per ottenere porzioni di risorsa solo se questa non è stata modificata, è possibile usare il nuovo header If Unmodified Since in congiunzione con un range request: GET bigfile.html HTTP/1.1 Host: Range: bytes=8353 If Unmodified Since: Tue, 26 Oct :54:20 GMT Se la risorsa non è stata modificata, il server restituisce il range richiesto: HTTP/ Partial Content Server: Microsoft IIS/3.0 Date: Wed, 27 Oct :17:29 GMT Content Type: image/gif Last Modified: Tue, 26 Oct :54:20 GMT Content Length: Content Range: bytes /22608 Questo meccanismo potrebbe nel futuro supportare range semanticamente più significativi (pagine di un documento, segmenti di un file multimediale, etc.). Il meccanismo Expect/Continue Se un server HTTP non è in grado di gestire una richiesta con molti dati nel body, sarebbe utile evitare la trasmissione completa del body (con PUT o POST) prima di accorgersi che la richiesta non può essere trattata. Il meccanismo Expect permette al client di sapere se il server è capace di gestire la sua richiesta. In caso positivo il server risponde con 100 Continue, altrimenti con 413 Request Entity Too Large. Se il client non ha il permesso di effettuare la specifica richiesta, il server risponde con 403 Forbidden. Se il server riceve un Expect inaspettato, o se è consapevole che il suo server upstream non è in grado di gestire questo meccanismo, invia 417 Expectation Failed. Il client indica la volontà di inviare un body: POST /foo/bar HTTP/1.1 Content Length: Expect: 100 Continue Il server può inviare: 159

160 RETI DI CALCOLATORI 2 Capitolo 13 HTTP/ Continue oppure, se la richiesta non può essere soddisfatta: HTTP/ Expectation Failed Il client potrebbe dover inviare informazioni di autenticazione per poter eseguire la richiesta: POST /secure.txt HTTP/1.1 Host: Authorization: Basic ZGufaWP6J29atWU= Expect: 100 Continue Il server risponde con: HTTP/ Continue se l'autenticazione è andata a buon fine, altrimenti: HTTP/ Authorization Failed Sfortunatamente numerose implementazioni incompatibili di HTTP/1.1 esistevano prima della definizione della specifica. Si è quindi reso necessario tollerare queste implementazioni nella specifica definitiva. È possibile per un client che invia un Expect: 100 Continue, aspettare un tempo indefinito per un 100 Continue o 417 Expectation Failed. Per evitare questo, il client deve essere capace di settare un timeout, ed inviare il body dopo un determinato periodo di tempo. Il meccanismo Expect è hop-by-hop, ma l'header Expect è end-to-end. Compressione Un buon modo per risparmiare banda è comprimere la risposta in maniera tale che il ricevente sia in grado di decomprimerla. In HTTP/1.0 è disponibile l'entity header Content Encoding per indicare la codifica dei contenuti e come la risorsa deve essere trasformata, su base end-to-end. Siccome HTTP/1.0 non distingue tra hop-by-hop ed end-to-end, non è possibile fornire compressione hop-by-hop. Supponiamo esistano due intermediari che conoscono un algoritmo di compressione molto efficiente. Questi server possono voler usare questo algoritmo per codificare i messaggi che si scambiano tra di loro. Gli altri server nel path tra mittente e ricevente non devono per forza conoscere tale algoritmo. Inoltre, se è possibile scegliere tra differenti algoritmi di compressione, un server deve poter esprimere le sue preferenze. Tutto questo è possibile con HTTP/1.1 con il meccanismo hop-by-hop di transfer-coding, che consente di indicare le trasformazioni applicate all'entity body. Un client può indicare quali content coding sono accettabili per lui, tramite Accept Encoding, e i transfer coding che preferisce con TE: TE: vdcomp;q=0.9, compress;q=0.1 significa che il mittente accetta il tranfer coding vdcomp con alto quality value (0.9) e compress con un basso quality value (0.1). Un server che riceve una richiesta non dovrebbe scegliere nessun algoritmo con qvalue 0, ma cercare di scegliere quello con qvalue più alto. L'header TE si applica solo alle connessioni immediate e quindi due server che supportano il meccanismo di compressione vdcomp possono beneficiarne includendo questo header. GESTIONE DELLE CONNESSIONI Praticamente tutte le implementazioni conosciute di HTTP utilizzano TCP come protocollo a livello di trasporto. TCP non è ottimizzato per le connessioni tipiche di HTTP, ovvero connessioni di breve 160

161 RETI DI CALCOLATORI 2 Capitolo 13 durata e con un piccolo scambio di dati. L'uso di TCP richiede un three-way handshake per stabilire la connessione ed altri quattro pacchetti per chiuderla. Un messaggio HTTP tipicamente è formato da 10 pacchetti, quindi su un totale di 17 pacchetti scambiati 7 sono di overhead (41%). Inoltre, in questo modo i trasferimenti Web non superano mai la fase slow-start di TCP; prima che la dimensione della finestra sia incrementata significativamente, la connessione viene chiusa non sfruttando quindi tutta la banda a disposizione. L idea è quella di sfruttare il fatto che un documento HTML è spesso un contenitore di altri documenti (riferiti da URI). Fare il download di un contenitore richiede numerose transazioni HTTP e quindi numerose connessioni TCP. Prima che il documento completo possa essere visualizzato, bisogna attendere la conclusione di tutte le connessioni. Un modo per ridurre la latenza è quello di aprire più connessioni HTTP parallele. Questo metodo venne introdotto da Netscape: più di quattro connessioni per il download parallelo delle immagini. Un altro modo per risolvere il problema consiste nell'osservare che la connessione TCP, una volta stabilita, può restare aperta per più di un solo scambio di richiesta risposta. Questa osservazione introduce il concetto di connessioni persistenti di HTTP/1.1. L'idea di base è quella di ridurre il numero di connessioni TCP aperte e chiuse. La latenza percepita dall'utente viene significativamente ridotta in quanto le connessioni successive non pagano la penalità di dover chiudere la connessione precedente, settare la nuova e ripetere la fase slow-start di TCP ogni volta. Il meccanismo Connection: Keep Alive di HTTP/1.0 Il punto di partenza per le connessioni persistenti è dato dal meccanismo Connection: Keep Alive, introdotto da alcune implementazioni di HTTP/1.0 con l'incremento di popolarità del Web. Alcuni browser possono includere il request header Keep Alive per chiedere che la connessione non venga chiusa dopo la richiesta corrente. Se la richiesta richiede il trasferimento di contenuti dinamici, non c'è nessun modo per il client che riceve di accorgersi della fine della risposta, se non la chiusura della connessione da parte del server. I contenuti generati dinamicamente, tipicamente non includono un Content Length, in quanto il calcolo della lunghezza dei dati introdurrebbe ulteriore ritardo. L'evoluzione del meccanismo di connessione persistente in HTTP/1.1 Andiamo a considerare le evoluzioni presentate e scartate. NUOVI METODI HTTP: MGET, GETLIST, GETALL Il primo approccio propone dei nuovi metodi HTTP per inviare richieste multiple sulla stessa connessione a livello di trasporto. I tre più importanti sono MGET, GETLIST e GETALL. Nessuno è sopravvissuto nel processo di evoluzione di HTTP/1.1. MGET è simile al comando FTP mget, tramite il quale possono essere ottenuti più file che corrispondono ad un pattern con un singolo comando su una connessione FTP aperta. Il metodo proposto per HTTP evita il bisogno di connessioni TCP separate, elencando un insieme di risorse nella richiesta: MGET HTTP/1.0 URI: /image1.gif URI: /image2.gif 161

162 RETI DI CALCOLATORI 2 Capitolo 13 If Modified Since: Saturday 29 Oct 94 20:04:01 GMT URI: /image3.gif CRLF HTTP/ OK URI: /image1.gif Content Type: image/gif CRLF byte dell'immagine... CRLF HTTP/ Not Modified URI: /image2.gif HTTP/ OK URI: /image3.gif Content Type: image/gif CRLF byte dell'immagine... Il client può estrarre le varie risposte tramite il CRLF di separazione. Il suggerimento che deriva dal contesto della discussione è quello di ottenere una pagina insieme a le sue immagini embedded. Questo potrebbe richiedere al protocollo di conoscere il particolare tipo di contenuto (HTML), di cui il server dovrebbe fare il parsing per determinare i contenuti embedded, il che non è desiderabile. GETLIST e GETALL sono simili nello spirito a MGET. Usando GETLIST un client può richiedere una specifica lista di risorse, con GETALL è possibile richiedere tutte le risorse. APPROCCIO CON CONNESSIONI PARALLELE SIMULTANEE Un approccio alternativo ad usare la stessa connessione per ottenere più risorse simultaneamente è usare connessioni multiple parallele. Un browser potrebbe aprire numerose connessioni in parallelo e scaricare ogni immagine embedded separatamente ma simultaneamente. Se troppi client aprono connessione parallele e acquisiscono molta banda, il risultato è la congestione. Questa tecnica quindi, riduce la perceived latency lato client, ma chiaramente impone un carico non voluto sulla rete, sul server (improvviso picco per ogni richiesta di un contenitore con molte immagini) e sul client (in caso di abort tutte le richieste vanno chiuse). L'header Connection Le connessioni persistenti sono il default di HTTP/1.1, quindi non c'è bisogno di un header per indicare di mantenere aperta la connessione. L'header Connection viene utilizzato per indicare la volontà di chiudere una connessione, nell'ottica di dare il maggior controllo possibile sia al client che al server. Quindi entrambe le parti possono inserire un header Connection: close. Pipeline su connessioni persistenti Consideriamo la richiesta di quattro immagini sulla stessa connessione persistente: 162

163 RETI DI CALCOLATORI 2 Capitolo 13 GET /foo1.jpg HTTP/1.1 CRLF GET /foo2.jpg HTTP/1.1 CRLF GET /foo3.jpg HTTP/1.1 CRLF GET /foo4.jpg HTTP/1.1 CRLF L'esempio mostra la richieste di quattro risorse in pipeline in una singola connessione HTTP. Il client ha il vantaggio di non dover aspettare il completamento di una richiesta prima di inviare quella successiva. Le risposte devono seguire lo stesso ordine. Le specifiche del protocollo suggeriscono che solo i metodi idempotenti dovrebbero essere usati in sequenza. Se una delle risorse è molto onerosa, le altre richieste sulla stessa connessione subiranno un ritardo, in quanto devono aspettare la risorsa più grande (Head of Line Blocking). Il problema è aggravato quando il server contattato è un proxy che inoltra le richieste della pipeline ad origin server differenti. Ci sono molti modi in cui una connessione HTTP può essere abortita. Il protocollo specifica che i client devono essere capaci di recuperare la connessione, se questa viene chiusa per qualsiasi motivo. Chiudere connessioni persistenti Una volta che una connessione persistente è stata stabilita, la domanda naturale che ne consegue è quando chiuderla. Ci sono numerosi interessi in competizione che devono essere soddisfatti: un server vorrebbe servire più client, ma mantenere molte connessioni persistenti aperte può essere costoso e quindi impedire al server di servire altri client; un server potrebbe voler mantenere la connessione aperta con un client se arrivano da questo molte richieste; per assicurare l uso corretto delle risorse, il server può applicare un timeout; il server può differenziare la sua politica, mantenendo connessioni aperte più a lungo con client particolari (o proxy). Sono state suggerite numerose proposte che consigliavano l'aggiunta di parametri alle connessioni persistenti: timeout: per indicare quanto a lungo una connessione viene mantenuta aperta; max: per specificare il numero massimo di richieste che si vorrebbero gestire su una data connessione persistente; state: per indicare gli header che hanno il bisogno di essere memorizzati. Comunque questi parametri addizionali hanno dei problemi. Un parametro di timeout non ha senso in un mondo dove la stima dei tempi di round-trip non è conosciuta o dove gli intermediari possono modificare i valori dei parametri. TRASMISSIONE DEL MESSAGGIO IN CHUNK Un obiettivo chiave nello scambio di messaggi HTTP è di assicurare che le parti riconoscano che 163

164 RETI DI CALCOLATORI 2 Capitolo 13 hanno ricevuto il messaggio per intero senza perdite. L'unico meccanismo tramite il quale un origin server HTTP/1.0 può indicare la dimensione dell'entity body è attraverso il campo Content Length. La dimensione di una risorsa statica può essere facilmente determinata, tipicamente tramite una system call. L'origin server deve aspettare che una risorsa dinamica sia stata completamente generata prima di poterne calcolare la lunghezza. Quindi il campo Content Length non può essere inserito fino a quando l'intera risposta non è stata generata. Questo richiede la bufferizzazione della risposta, in quanto il server non può iniziare il trasferimento prima che la generazione della risorsa sia completata. In HTTP/1.0 il server indica la fine del trasferimento di una risorsa dinamica con la chiusura della connessione. Se la chiusura della connessione è l'unico modo per indicare la fine di una risposta, le connessioni persistenti non sono possibili. HTTP/1.1 risolve il problema basilare della trasmissione sicura di un messaggio, introducendo un transfer coding chiamato chunked, che permette al mittente di spezzare il body del messaggio in chunk di dimensione arbitraria e spedirli separatamente. Il mittente genera un chunk di dimensione 0 alla fine del messaggio per indicare che l'intero messaggio è stato trasferito. HTTP/ OK Server: Apache/1.2.7 dev Date: Tue, 07 Jul :21:41 GMT Connection: Keep Alive Transfer Encoding: chunked Content Type: text/html 691 < byte di chunk data...> 76 < byte di chunk data...> 0 In questo esempio vediamo tre chunk, preceduti dalla loro lunghezza (in esadecimale). Un messaggio codificato in chunk termina con un chunk di lunghezza 0, ma può essere seguito da un trailer opzionale. Il trailer è separato dal body della risposta ed il server che lo riceve, o l'user agent, sa che il body completo è stato ricevuto prima di processare il trailer. Il trailer in un messaggio chunked può consistere solo di entity header. Supponiamo che una risposta venga generata dinamicamente e che il mittente ha il bisogno di calcolare il digest della risposta completa, che non può essere calcolato fino a quando non viene generata tutta la risposta. Spostando l'header contenente il digest nel trailer, si evita l'aumento del ritardo. Allo stesso modo è possibile includere informazioni di autenticazione (Authentication Info). Per avveritire della presenza di informazioni addizionali, viene usato un header Trailer che contiene l'elenco degli header che appariranno nel trailer del messaggio. HTTP/1.1 richiede che i trailer necessari siano inviati in una risposta chunked solo se il proxy ha già indicato la sua volontà di bufferizzare l'intera risposta, se necessario. Questo avviene includendo il request header TE: trailers. GET /foo.html HTTP/1.1 Host: TE: trailers 164

165 RETI DI CALCOLATORI 2 Capitolo 13 HTTP/ OK Trailer: Splinfo Transfer encoding: chunked CRLF 691 < byte di chunk data...> 76 < byte di chunk data...> 0 Splinfo: vol=7; pe= u4, ,5465 CRLF L'ultima linea (CRLF) è richiesta alla fine di un messaggio chunked. ESTENDIBILITA Numerose popolari implementazioni dei componenti del Web sono state basate su standard non definitivi. HTTP/1.1 assicura che ogni cambiamento sia compatibile con le implementazioni esistenti. Questo viene fatto assicurando che i browser ed i server siano compatibili con le vecchie versioni e continuino a lavorare anche quando le nuove versioni diventano popolari. Le vecchie versioni probabilmente non verranno rimpiazzate prima di molti anni. Prendendo spunto dalle esperienze passate, i progettisti di HTTP/1.1 decisero di lasciare aperti numerosi punti a future estensioni. HTTP/1.1 cerca di assicurare l'estendibilità nei seguenti tre modi: 1. introducendo metodi per conoscere le capacità del server prima di fare richieste e sapere cosa il server ha realmente ricevuto; 2. aggiungendo un nuovo header per conoscere le capacità dei server intermedi nel path di una transazione Web; 3. aggiungendo supporto per l'aggiornamento ad altri protocolli. Ottenere informazioni sul server In HTTP/1.1 sono stati aggiunti due nuovi metodi per ottenere informazioni sul server. METODO OPTIONS OPTIONS è un metodo safe come GET e HEAD. Per ottenere la lista dei metodi conosciuti da un server, un client può inviare la seguente richiesta: OPTIONS * HTTP/1.1 Host: foo.com Il server potrebbe rispondere con: HTTP/ OK Allow: HEAD, GET, POST, TRACE, OPTIONS Si noti che la URI specificata nella richiesta è *. Questo significa che il client è interessato alle capacità del server, non per una specifica URI, per la quale l'header di risposta Allow conterrebbe l'insieme dei metodi applicabili alla risorsa riferita. Per i client che vogliono puntare ad un proxy preciso nella catena di risposta, in HTTP/1.1 è stato 165

166 RETI DI CALCOLATORI 2 Capitolo 13 introdotto un nuovo header. I client includono un valore nel nuovo header di richiesta Max Forwards, ogni proxy decrementa il valore specificato di 1 e il proxy in cui il valore diventa 0 risponde: OPTIONS /bar HTTP/1.1 Host: foo.com User Agent: Mozilla/2.0 Max Forward: 1 METODO TRACE Il metodo TRACE permette al client di conoscere il contenuto del messaggio che è stato realmente ricevuto dal ricevente; il server invia una copia del messaggio ricevuto. L'intero contenuto del messaggio di richiesta viene restituito al mittente dal server, come contenuto del body di risposta: TRACE /bar HTTP/1.1 Host: foo.com User Agent: Mozilla/2.0 Il server risponde con: HTTP/ OK Content Type: message/http TRACE /bar HTTP/1.1 Host: foo.com User Agent: Mozilla/2.0 Ottenere informazioni sui server intermedi Un intermediario HTTP/1.1 (proxy o gateway) aggiunge delle informazioni di identificazione su se stesso e sul server dal quale ha ricevuto il messaggio, nel nuovo header Via. L'origin server potrebbe essere interessato a conoscere i vari server intermedi coinvolti nella richiesta. Questo nuovo header è la riproduzione di una parte del tool traceroute ad un livello più alto dello stack di protocolli. Ogni proxy o gateway HTTP/1.1 è obbligato ad identificare il proprio hostname ed il numero di versione del server precedente dal quale ha ricevuto la richiesta, o dal quale arriva la risposta. In questa maniera il server può anche sapere quali proxy andranno a trattare la propria risposta e se sono o meno in grado di comprendere HTTP/1.1, in quanto mentre sono molti i server 1.1 disponibili, esistono pochi proxy HTTP/1.1; la maggior parte sono HTTP/1.0 più alcune funzionalità di HTTP/1.1. Via: 1.0 M PROXY3:8080 (Squid/2.1.PATCH2), 1.0 t1.us.irc.net:3128 (Squid/2.3.DEVEL1), 1.1 qd.us.ircache.net:3128 (Squid/2.3.DEVEL1) In congiunzione con il metodo TRACE, l'header Via è utile per capire il path seguito da un messaggio HTTP. Può essere anche usato per evitare dei cicli nel path di richiesta. 166

167 RETI DI CALCOLATORI 2 Capitolo 13 Upgrade ad altri protocolli HTTP/1.1 fornisce un modo per aiutare una connessione a migrare ad un nuovo protocollo, con l'introduzione di un nuovo header hop-by-hop: Upgrade. Quando un client inserisce questo header, indicando un insieme di protocolli da lui supportati come possibile modo per comunicare, il server può passare ad uno di questi per ogni ulteriore scambio di informazioni sulla connessione a livello di trasporto esistente. Il server deve indicare il protocollo verso cui sta migrando tramite la risposta 101 Switching Protocols. GET data HTTP/1.1 Host: chase.bronx.com Upgrade: SafeBank/1.0 Connection: Upgrade HTTP/ Switching Protocols Upgrade: SafeBank/1.0 Connection: Upgrade <risposta alla richiesta del client> INDIRIZZI IP I problemi derivati dalla scarsità degli indirizzi IP sono stati generati dalla internet bubble di fine anni 90, con il boom del Web, e dalla limitatezza della versione 4 di IP: 2 32 indirizzi, numero che per molto tempo è stato ritenuto adeguato ma che si rivelato poi essere facilmente esauribile. La soluzione naturale consiste nel poter ospitare più siti Web sullo stesso host (hosting). A causa di un difetto nelle implementazioni di HTTP/1.0, ogni hostname richiede un indirizzo IP separato, aggravando ancora di più la situazione. Quando una richiesta HTTP/1.0 arriva ad un Web server con hosting per diversi siti, dalla URI specificata non è possibile comprendere a quale sito si riferisce. Una soluzione, poi scartata, è quella di inserire nella richiesta l'intera URI. Tale soluzione però non è compatibile all'indietro in quanto un Web server HTTP/1.0 non sarebbe capace di fare il parsing dell'uri per individuare la risorsa richiesta. La soluzione di HTTP 1.1 consiste nel rendere obbligatoria l'inclusione dell header Host che specifica l host a cui si riferisce la richiesta (compreso l opzionale numero di porta). Visto che non è più richiesto avere indirizzi IP separati per ogni Web server, è anche possibile definire degli alias che puntano allo stesso indirizzo IP tramite la lookup DNS. La tecnica del virtual hosting permette ad un Web server front-end di accettare richieste per numerosi siti Web. In caso di utilizzo di SSL, questa tecnica non può essere adottata. NEGOZIAZIONE DEL CONTENUTO Se esiste una singola rappresentazione di una risorsa, può essere usata una semplice richiesta HTTP per richiederla, ma quando ci sono formati differenti di una stessa risorsa, client e server dovrebbero mettersi d'accordo per cercare di ottenere la rappresentazione preferita. HTTP/1.1 fornisce due tipi differenti di negoziazione, parzialmente presenti (ma solo in appendice) in HTTP/1.0: Agent-driven: il client riceve indicazioni circa le possibili alternative disponibili e sceglie la 167

168 RETI DI CALCOLATORI 2 Capitolo 13 rappresentazione preferita in una seconda richiesta; Server-driven: il server sceglie la rappresentazione basandosi su quelle disponibili, header nel messaggio di richiesta o sulle informazioni circa il client, come il suo indirizzo IP. Nella richiesta il client può specificare che tipo di linguaggio è disposto ad accettare: GET /asterix.html HTTP/1.1 Host: Accept Language: en us, fr BE Il server può scegliere tra le varianti specificate rispondendo nel modo seguente: HTTP/ OK Content Length: Content Language: fr BE <risposta in francese belga> La scelta effettuata dal server viene specificata nell'header Content Language. Se il formato richiesto non è disponibile, il server può inviare il response code 406 Not Acceptable, aggiungendo quelle che ha a disposizione. Se ne ha una sola la restituisce direttamente (per le negoziazioni agent-driven). Il codice di risposta 300 Multiple Choices è usato per indicare che una risorsa può essere scelta tramite negoziazione da un insieme di possibili rappresentazioni che si trovano in locazioni differenti. L'origin server può indicare la rappresentazione preferita per la risorsa, ma la redirezione da la possibilità all'user agent di prendere la giusta scelta. Un modo per esprimere le preferenze è tramite i quality value conosciuti in HTTP come qvalue. Il range di valori va da 0 a 1, più è grande il numero maggiore è la preferenza. Ad esempio, un client può accettare codifiche diverse: Accept Encoding: vdelta;q=1.0, gzip;q=0.5, compress;q=0.1 Se il server non può fornire vdelta, fornisce gzip oppure compress, ma può anche fornirlo senza alcuna codifica. Accept Encoding: vdelta;q=1.0, gzip;q=0.5, compress;q=0.1, identity;q=0 In questo caso il server è obbligato ad inviare la risposta in uno dei tre formati specificati, o inviare un 406 Not Acceptable. Una combinazione delle negoziazioni server-driven e agent-driven è chiamata transparent content negotiation. Un elenco di varianti viene inviata dal server e l'user agent sceglie la più appropriata. Piuttosto che forzare lo user agent a partecipare attivamente alla selezione della variante ogni volta, questo metodo ha il vantaggio di poter sfruttare la cache nel path. L'ottimizzazione del processo di negoziazione fa affidamento sul caching delle varianti. In effetti la negoziazione viene spostata dal server alla cache. Il Working Group di HTTP decise di escludere la transparent content negotiation fuori della specifica di HTTP/1.1, ed i lavori su di essa procedono separatamente. SICUREZZA, AUTENTICAZIONE E INTEGRITÀ La sicurezza è un aspetto ovviamente fondamentale di cui è necessario tenere conto. I messaggi 168

169 RETI DI CALCOLATORI 2 Capitolo 13 che vengono scambiati con HTTP contengono informazioni sempre più critiche. Lo schema utilizzato è quello di challenge-response per uno specifico dominio realm, una regione di spazio dove l'utente può essere autenticato. Sicurezza e autenticazione Lo schema di autenticazione Basic ereditato da HTTP/1.0 non è propriamente sicuro in quanto si basa sul fatto che la connessione tra client e server è fidata. La username e la password inviate dal client per rispondere alla challenge sono codificate in Base64, che non è uno schema di crittografia, quindi è come se fossero mandate in chiaro. Di conseguenza sono vulnerabili a qualsiasi attacco. Le credenziali in HTTP/1.0 hanno un tempo di vita più lungo del necessario, potenzialmente infinito. Questo significa che chi le intercetta può usarle anche molto tempo dopo impunemente. Accorciare la vita delle credenziali è di sicuro un ottimo strumento di sicurezza. Questo è stato fatto in HTTP/1.1 restringendo la risposta ad una singola risorsa e metodo. È stato aggiunto uno schema Digest, basato su MD5 (di default). Al client viene richiesto di calcolare un checksum della URI e metodo di richiesta per evitare il problema delle repliche del messaggio (attacco di replay), username, password e di un valore nonce (one-time). Un nonce è una stringa base 16 o base 64 che è garantita essere unica ogni volta che il server invia un 401 Unauthorized. In questa maniera username e password non viaggiano mai in chiaro e l'autenticazione viene ristretta non solo al realm ma anche alla data risorsa accessibile con quel metodo. Integrità del messaggio L'integrità del messaggio è una componente essenziale della sicurezza. Per questo motivo in HTTP/ 1.1 è stato aggiunto un nuovo entity header end-to-end, Content MD5, che fornisce la possibilità di controllare che il body del messaggio sia arrivato intatto. Questo controllo può essere effettuato anche dagli intermediari (proxy o gateway). In ogni caso il digest non consente di individuare potenziali attacchi alla sicurezza in quanto, l'attaccante può modificare il contenuto del body ed il valore dell'header. Gli attacchi DoS sono un classico problema che i Web server devono affrontare. Conoscendo la lunghezza del messaggio a priori, un server può decidere se vuole utilizzare le proprie risorse per processare la richiesta. La risposta 411 Length Required consente al client di sapere che il server vuole conoscere la lunghezza del contenuto del body prima di processare la richiesta. Se il messaggio è chunk-encoded, non c'è bisogno che la lunghezza del contenuto sia presente nel messaggio. Un server HTTP/1.1 è obbligato a fare il parsing di un messaggio chunk-encoded, ma può comunque decidere che il messaggio è troppo lungo, inviare 411 Length Required e chiudere la connessione. Il nuovo codice di risposta 414 Request URI Too Long può essere inviato se il server non è disposto a processare una URI molto lunga. IL RUOLO DEI PROXY IN HTTP/1.1 Uno dei miglioramenti chiave di HTTP/1.1 è stato il riconoscimento del ruolo molto importante giocato dagli intermediari tra il mittente e il ricevente. 169

170 RETI DI CALCOLATORI 2 Capitolo 13 Requisiti sintattici di un proxy HTTP/1.1 INOLTRO DI MESSAGGI Quando inoltra un messaggio, un proxy deve considerare la versione del protocollo del mittente da cui è stato ricevuto il messaggio e del ricevente a cui deve inoltrare lo stesso. Ci sono regole speciali associate all'inoltro delle risposte della classe 1xx. Per esempio, il proxy non può inoltrare un 100 Continue se l'header Expect è stato aggiunto da lui. Se il proxy riceve una richiesta con un'aspettativa che non può soddisfare, è obbligato a restituire un 417 Expectation Failed indipendentemente se il server in downstream fosse stato capace di soddisfarla. Questo è dovuto al fatto che il meccanismo di Expect è hop-by-hop. Gli header non compresi da un proxy devono essere inoltrati a meno che non sono protetti dall'header Connection. Inoltrare per errore degli header pensati per una singola connessione può causare problemi. AGGIUNTA DI HEADER O MODIFICA DI HEADER ESISTENTI I proxy HTTP/1.1 sono obbligati ad aggiungere proprie informazioni all header Via. Inoltre devono indicare la versione del protocollo nel server di upstream dal quale è stato ricevuto il messaggio. Un proxy al confine di una rete (firewall), deve mascherare l'identità delle macchine che sono dietro di lui e assicurare che le informazioni su queste non vengano aggiunte all'header Via. I proxy HTTP/1.1 non possono alterare l'ordine dei valori degli header di un messaggio, in quanto il loro significato semantico può essere alterato. Due content-encoding in una riga possono avere un significato completamente diverso se applicati al contrario. Non possono alterare il nome nella URI del messaggio, ma possono aggiungere informazioni se è incompleta, ad esempio il dominio ad un hostname che non è un fully qualified domain name. Ai proxy non è permesso generare alcuni header, ad esempio l'header per il controllo dell'integrità end-to-end Content MD5. È però permesso usare questo valore per assicurare l'integrità del messaggio ricevuto. Requisiti semantici di un proxy HTTP/1.1 REQUISITI PER IL CACHING DI UN PROXY Ci sono state numerose modifiche rispetto a HTTP/1.0. È possibile utilizzare l'header ETag per la validazione della cache. Un proxy è obbligato a tenere conto dei vari campi in un header condizionale prima di decidere sul valore appropriato per la cache. In presenza della direttiva Cache control: s maxage=0 una cache condivisa su un proxy deve rivalidare la risposta memorizzata. Quando un proxy restituisce una risposta in cache, è obbligato ad inviare un header Age con la risposta per indicare che questa non è stata generata first-hand. Il ricevente potrebbe usare il valore di Age per stimare quanto la risposta è vecchia. REQUISITI PER LA GESTIONE DELLE CONNESSIONI DI UN PROXY C'è un'implementazione delle connessioni persistenti in HTTP/1.0 (l'header Keep Alive) che richiede una negoziazione esplicita. L'interazione tra Keep Alive e l'header Connection può portare ad uno stallo. Un client HTTP/1.0 potrebbe inviare un header Keep Alive ad un proxy 170

171 RETI DI CALCOLATORI 2 Capitolo 13 che non comprende Connection ma erroneamente lo inoltra. Se la connessione in downstream mantiene anche una connessione Keep Alive, il proxy nel mezzo potrebbe non ricevere mai la chiusura della connessione. Per evitare questi problemi, ai proxy HTTP/1.1 non è permesso di stabilire connessioni persistenti con client HTTP/1.0. I proxy possono usare politiche differenti da quelle di un client o di un origin server, per decidere quando chiudere una connessione persistente. Devono gestire solitamente meno client e possono quindi mantenere connessioni persistenti più a lungo. Un proxy ha un'idea migliore di quali connessioni possono persistere più a lungo perché può tenere traccia dei pattern di navigazione dei client ed adattare la gestione delle connessioni. REQUISITI PER LA GESTIONE DELLA BANDA DI UN PROXY I client HTTP/1.1 hanno la capacità di effettuare richieste di range, questo impone vincoli specifici ad un proxy. Se un proxy inoltra una richiesta di range ad un server ed ottiene l'intera risorsa come risposta, dovrebbe inviare solo il range richiesto al client, ma comunque memorizzare la riposta completa. In ogni caso una cache di un proxy che non supporta le richieste di range non deve memorizzare in cache risposte parziali. I proxy HTTP/1.1 sono obbligati ad inoltrare l'header Expect con la richiesta. Se il proxy sa che la versione del protocollo del prossimo server sul path è minore di HTTP/1.1, dovrebbe restituire un 417 Expectation Failed invece di inoltrare la richiesta. Allo stesso modo se un proxy riceve un 100 Continue da un server, non dovrebbe inoltrare la risposta al client se questi non ha incluso l'header Expect nella sua richiesta. REQUISITI DI SICUREZZA DI UN PROXY L'header di richiesta Proxy Authenticate è necessario quando una risorsa è disponibile solo per client autenticati. Il codice di risposta 407 Proxy Authorization Required è simile al 401 Unauthorized di HTTP/1.0. Comunque 407 Proxy Authorization Required riguarda un'autenticazione single-hop al contrario di 401 Unauthorized che è end-to-end. È utilizzato dal proxy per informare il client che l'autenticazione deve essere fatta con un proxy, mentre 401 Unauthorized è utilizzato dall'origin server per inviare una challenge direttamente ad un client. Il client deve inviare le sue credenziali per una data URI al proxy usando l'header di richiesta Proxy Authorization. ALTRE MODIFICHE IN HTTP 1.1 (VARIE ED EVENTUALI) Metodi HEAD In HTTP/1.0 non è possibile modificare la richiesta HEAD con delle condizioni (come If Modified Since), mentre HTTP/1.1 non ha queste restrizioni. Gli header condizionali possono essere usati con ogni metodo in HTTP/1.1. PUT Se una risorsa associata con il metodo PUT (così come POST e DELETE) è presente in una cache, 171

172 RETI DI CALCOLATORI 2 Capitolo 13 la risposta in cache deve essere marcata come stale. Un proxy con cache che osserva un metodo di richiesta capace di cambiare la risorsa sull'origin server deve invalidare ogni entry nella sua cache associata a quella risorsa. PUT VS. POST: DIFFERENZE PUT costringe il server ad applicare la richiesta solo all'uri specificata e restituire un codice di risposta della classe di redirezione se non può farlo. La risorsa può essere creata o modificata. Invece la risorsa specificata in un metodo POST si riferisce al programma che sta trattando i dati inclusi nell'entity del messaggio. Questo è il caso di quando un utente compila un form e lo sottomette. DELETE Un proxy che vede una richiesta DELETE per una risorsa, dovrebbe marcare la sua copia in cache come stale. Header L'header di risposta Retry After di HTTP/1.0 è stato modificato ed un nuovo header Warning è stato aggiunto in HTTP/1.1. L'header Retry After è discusso nell'appendice della specifica di HTTP/1.0 nel contesto delle implementazioni inconsistenti del protocollo. È stato introdotto in HTTP/1.1 per chiarificare la semantica del codice di risposta 503 Service Unavailable. Ci sono due ragioni per questo codice di risposta: il server è offline per un tempo indeterminato; il server è temporaneamente occupato e probabilmente diverrà di nuovo disponibile in poco tempo. In HTTP/1.1 Retry After è usato in numerose risposte, inclusa 413 Request Entity Too Large e vari codici della classe 3xx. I messaggi di errore di HTTP/1.0 non sono completamente comprensibili da un essere umano. Con l'header Warning è possibile spiegare l'errore con un messaggio più comprensibile. Codici di risposta 2xx SUCCESS CLASS RESPONSE CODES 201 Created: è possibile aggiungere un header di risposta Location per indicare l'uri della risorsa creata. 203 Non Authoritative Information: per indicare che i metadati della risorsa sono stati ottenuti da posti diversi dall'origin server. 205 Reset Content: è utilizzato dall'origin server per aiutare lo user agent a dare feedback all'utente. Per esempio con questo codice l'origin server potrebbe dire allo user agent di resettare un form appena sottomesso dall'utente, in quanto accettato. 206 Partial Content: cache che non supportano le richieste di range non devono memorizzare questo tipo di risposte. 172

173 RETI DI CALCOLATORI 2 Capitolo 13 3xx REDIRECTION CLASS RESPONSE CODE 303 See Other: simile al 302 Moved Temporarily di HTTP/1.0. È stato introdotto per correggere un bug conosciuto, con user agent che trattavano male una risposta Temporary Redirect: redirect estremamente volatile (clustering, mirroring). 305 Use Proxy: indica al client di rifare la richiesta utilizzando il proxy indicato nell'header Location. Era stato originariamente introdotto per permettere di diminuire il carico sull'origin server. Può essere inviato solo dall'origin server, altrimenti potrebbe essere la causa di attacchi man-in-the-middle in quanto un componente intermedio potrebbe redirezionare le richieste verso un proxy non fidato. 306 non usato: originariamente era 306 Switch Proxy ma per problemi di sicurezza (man-in-the-middle) è stato eliminato dalla specifica di HTTP/1.1. 4xx CLIENT ERROR CLASS RESPONSE CODE Chiarificazione: 405 Method Not Allowed: piuttosto che rispondere con 403 Forbidden il server elenca i metodi che è capace di gestire per l'uri richiesta, tramite l'header Allow. 408 Request Timeout: per chiudere una connessione con un client lento fornendo informazioni sul motivo. 410 Gone: se una risorsa non viene trovata, ma il server conosce la nuova locazione. Negoziazione: 413 Request Entity Too Large: il messaggio di richiesta è troppo grande. Utilizzato in congiunzione con Retry After può indicare che il server temporaneamente non può gestire richieste così lunghe. 415 Unsupported Media Type: l'entity di richiesta è in un formato non supportato dal server. Nuovi codici per altre caratteristiche di HTTP/1.1: 402 Payment Required: aggiunto per anticipare lo sviluppo dell'e-commerce. Non è semanticamente definito, per uso futuro. 409 Conflict: se due utenti stanno modificando contemporaneamente una risorsa tramite PUT, il server può accorgersene e notificarlo ai client. 5xx SERVER ERROR CLASS RESPONSE CODE 504 Gateway Timeout: per il controllo della cache. 505 HTTP Version Not Supported: la versione del protocollo specificato nella richiesta non è supportato dal server. 173

174 RETI DI CALCOLATORI 2 Capitolo 14 CAPITOLO 14 MOTORI DI RICERCA MOTORI DI RICERCA E WEB INFORMATION RETRIEVAL Paradossalmente l enorme dimensione e complessità del World Wide Web rende molto difficile reperire informazioni utili. Gli strumenti utilizzati per contrastare/ovviare al problema sono: portali tematici; siti per navigazione sociale; motori di ricerca. Un motore di ricerca è un sistema automatico che analizza un insieme di dati, spesso da lui stesso raccolti, e restituisce un indice dei contenuti disponibili classificandoli in base a formule matematiche che ne indichino il grado di rilevanza, data una determinata chiave di ricerca. Uno dei campi in cui i motori di ricerca trovano maggiore utilizzo è quello dell'information Retrieval e nel Web. Sono la nuova frontiera della information-age ed il motore e la motivazione della ricerca del campo di: Web information retrieval; algoritmica; architettura parallele e distribuite. Web Information Retrieval È l area legata alla assestata e tradizionale Information Retrieval (IR), cardine della ricerca in Informatica negli anni I modelli di Information Retrieval ben assestati sono: 1. booleani; 2. probabilistici; 3. vector space (Latent Semantic Indexing): particolarmente utili per analizzare una matrice term-by-document. Il World Wide Web è una raccolta di ipertesti di enorme complessità, i cui contenuti si espandono ad una media fenomenale. Inoltre può essere visto come un modello intricato di ipermedia populisti, in cui milioni di partecipanti, con obiettivi diversi e a volte conflittuali, creano continuamente nuovi contenuti. Differenze tra WIR e IR Semplice! La W di Web, che comporta dimensione, complessità e multimedialità. La natura distribuita del Web comporta che i documenti pubblicati non siano soggetti ad un processo editoriale e subiscano update molto frequenti (volatilità). La soluzione per gestire questi problemi consiste nello scambiare l accuratezza (frequenti update) con l efficienza. I tipici usi che gli utenti fanno di un motore di ricerca riguardano: query brevi; non usano strumenti che permettono di raffinare la ricerca; usano tipicamente solo i primi risultati. Priorità del Web Information Retrieval: 1. velocità; 174

175 RETI DI CALCOLATORI 2 Capitolo accuratezza del processo; 3. precisione. La qualità dei metodi di ricerca richiede necessariamente la valutazione di un essere umano, dovuto alla soggettività inerente alla nozione di pertinenza. HITS (KLEINBERG) Hyperlink-Induced Topic Search (HITS) (noto anche come Hubs and authorities) è un algoritmo di analisi dei link che valuta le pagine Web, sviluppato da Jon Kleinberg. Determina due valori di una pagina: authority, che stima il valore del contenuto della pagina e il suo hub value, che stima il valore dei suoi collegamenti ad altre pagine. Tipologia query La ricerca inizia da una query fornita dall utente. Le query possono essere dei seguenti tipi: query specifiche: quale è il pin 4 di un NAND 4L600?. È necessario un esperto che sia in grado di specificare la query, tramite poche e centrate pagine di output, fornendo efficacemente il risultato. È una tipica query da IR in quanto più è ampio l indice, migliore è il risultato; query generiche: trova qualcosa sulla pesca ; classica query di un utente medio che genera risultati di enorme dimensione (difficile da fruire, rilevanza dubbia). Il tipico problema di questo tipo di query è che l indice più ampio genera molto rumore ; query per pagine simili: cerca pagine simile a java.sun.com. I problemi delle query La difficoltà nello gestire query specifiche è centrato attorno al problema chiamato Scarcity problem: ci sono poche pagine che contengono le informazioni richieste ed è spesso difficile determinare l identità di queste pagine. Per le query generiche si presenta il problema opposto, Abudance problem: il numero di pagine che può essere ragionevolmente restituito è molto più grande di quello che un utente può assimilare. Consideriamo l obiettivo naturale di riportare la home page dell Università di Harvard come la pagina più autorevole della query Harvard. Sfortunatamente ci sono milioni di pagine sul Web che usano il termine Harvard e l home page dell università non è quella che usa il termine più spesso o in un altro modo che la può favorire in una funzione di ranking text-based. Consideriamo il problema di trovare l'home page del più importante motore di ricerca. Si potrebbe iniziare dalla query motori di ricerca ma i motori di ricerca più autorevoli non usano il termine nelle loro pagine, rendendone difficile l'individuazione. La struttura di un ipertesto: una rete La creazione di un link sul web rappresenta un'indicazione concreta della seguente cosa: il creatore della pagina P includendo un link alla pagina Q ha in qualche misura conferito autorità a Q. I link ci danno l opportunità di trovare authority potenziali solamente attraverso le pagine che puntano ad esse. Naturalmente ci sono dei tranelli nelle applicazioni che usano i link per questo scopo. Prima di tutto i link sono creati per un ampia gamma di ragioni, molte non hanno niente a che fare con il conferimento di autorità. Per esempio un grosso numero di link sono creati principalmente per scopi di navigazione ( clicca qui per ritornare alla home page ); altri 175

176 RETI DI CALCOLATORI 2 Capitolo 14 rappresentano messaggi pubblicitari. Un altro problema è la difficoltà nel trovare un bilanciamento appropriato tra i criteri di pertinenza e popolarità, ognuno di questi contribuisce alla nostra nozione intuitiva di authority. Il modello presentato da Kleinberg è basato sulle relazioni esistenti tra le authority per un argomento e quelle pagine che linkano a molte authority correlate (hub). L algoritmo opera su un sottografo (focused subgraph) del Web costruito dall output di un motore di ricerca text-based. L approccio nella scoperta di risorse autorevoli ha una natura globale: si vorrebbero identificare le pagine centrali per una ricerca generica di un argomento nel contesto del Web. Quindi, gli hyperlink contengono molte informazioni nascoste: il fatto di esistere; il testo dell ancora; la sua età e la sua stabilità; la relazione tra il suo sito e quello target; ma ci sono alcuni problemi nell usare link come sorgente di informazione: - link di navigazione; - link di dubbia affidabilità; - etc. Costruzione del sottografo del Web Possiamo vedere una collezione V di pagine collegate come un grafo direzionato G = (V, E) in cui i nodi corrispondono alle pagine e un arco direzionato indica la presenza di un link da p a q. Da un grafo G, possiamo isolare una piccola regione, o sottografo, nel modo seguente. Se è un sottoinsieme di pagine, si può usare G[W] per denotare il grafo indotto da W: i nodi sono le pagine in W e gli archi corrispondono a tutti i link tra le pagine in W. Supponiamo di avere una query generica, specificata dalla stringa σ. Vorremmo determinare le pagine autorevoli dall'analisi della struttura dei link. Per fare ciò dobbiamo prima determinare il sottografo del Web su cui l'algoritmo opererà. Lo scopo è quindi quello di concentrare lo sforzo computazionale sulle pagine pertinenti. Idealmente vorremmo concentrare l'attenzione su una collezione S σ di pagine con le seguenti proprietà: i. S σ relativamente piccola; ii. S σ ricca di pagine pertinenti; iii. S σ contenente la maggior parte (o molte) delle authority più forti. Per trovare una collezione di pagine con queste caratteristiche, settiamo un parametro t, tipicamente circa 200. Per prima cosa si prendono le t pagine con il ranking più alto per la query σ da un motore di ricerca text-based come AltaVista. Queste t pagine costituiscono l'insieme radice (root set) R σ, che soddisfa le prime due proprietà ma di solito è molto lontano dal soddisfare la terza. Si noti che le top t pagine restituite dal motore di ricerca text-based contengono tutte la stringa della query σ e quindi R σ è chiaramente un sottoinsieme della collezione Q σ di tutte la pagine che contengono σ, che non soddisfa la terza proprietà come già visto. Inoltre è interessante notare che spesso ci sono pochissimi link tra le pagine in R σ, rendendolo essenzialmente structureless. 176

177 RETI DI CALCOLATORI 2 Capitolo 14 Possiamo usare il root set R σ per produrre un insieme di pagine S σ che soddisfaranno le condizioni che stiamo cercando. Consideriamo un'authority molto forte per l'argomento della query, che può anche non essere in R σ ma che probabilmente è puntata da almeno una pagina in R σ. Possiamo quindi incrementare il numero di authority forti nel sottografo ed espandere R σ. Otteniamo S σ accrescendo R σ, includendo ogni pagina puntata da una pagina in R σ ed ogni pagina che punta ad una pagina in R σ, con la restrizione che una singola pagina in R σ può apportare un massimo di d pagine che puntano ad essa in S σ. S σ è l'insieme di base (base set) per σ. Il risultato di questa fase è un piccolo sottografo G σ. Calcolo di hub e authority Hub e authority mostrano quella che può essere chiamata relazione di mutuo rafforzamento (mutually reinforcing relationship); una buona authority è una pagina che è puntata da buoni hub, un buon hub è una pagina che punta a buone authority. UN ALGORITMO ITERATIVO Ad ogni pagina p associamo due valori non negativi: x <p> (authority weight) e y <p> (hub weight). Tali valori sono normalizzati in modo che la somma dei quadrati sia 1: e. Numericamente la relazione di mutuo rafforzamento viene espressa come segue: se p punta a molte pagine con un valore x grande, dovrebbe ricevere una valore y grande; se p è puntato da molte pagine con un valore y grande, dovrebbe ricevere un valore x grande. 177

178 RETI DI CALCOLATORI 2 Capitolo 14 Quindi le funzioni di aggiornamento dei valori di authority ( ) e hub ( ) sono le seguenti: L'algoritmo che consente di trovare le pagine più autorevoli nel focused subgraph è il seguente: La convergenza di HITS TEOREMA: {x k } e {y k } convergono verso x* e y*. DIMOSTRAZIONE: sia G = (V, E), con V = {p 1, p 2,,p n } e sia A la matrice di adiacenza del grafo G; l'elemento (i, j) di A è 1 se (p i, p j ) è un arco di G, 0 altrimenti. Si può facilmente verificare che le operazioni e possono essere scritte come e rispettivamente. Di conseguenza, x k è il vettore unitario nella direzione di e y k è il vettore unitario in direzione di. Se M è una matrice simmetrica n x n e v è un vettore non ortogonale all'autovettore principale, allora il vettore unitario in direzione di converge a all'aumentare di k. Inoltre se M ha solo elementi non negativi, anche l'autovettore principale di M ha solo elementi non negativi. 178

179 RETI DI CALCOLATORI 2 Capitolo 14 Conseguentemente, z non è ortogonale a e quindi la sequenza {y k } converge al limite y*. Sotto l'assunzione che, è non ortogonale a e quindi {x k } converge al limite x*. Pro e contro di HITS (+) ranking duale (authority e hub) più versatile per gli utenti; (+) problema del Web Information Retrieval che diventa un problema di Information Retrieval su un insieme di dati più limitato, computazionalmente più gestibile; (-) dipendenza dalla query, necessario notevole carico a run-time; (-) suscettibilità allo spamming: è facile agire sul proprio valore di hub (introducendo buoni link); (-) topic drift: in espansione, pagine di grandissima autorità possono entrare in G, falsando l'esecuzione dell algoritmo. PAGERANK (PAGE, BRIN) PageRank è una famiglia di algoritmi sviluppati per assegnare un peso numerico a documenti ipertestuali (o pagine Web) indicizzati da un motore di ricerca. Le loro proprietà sono molto discusse dagli esperti di search engine optimization (SEO). Il sistema PageRank è uno dei metodi che il motore di ricerca più conosciuto, Google, usa per determinare l'attinenza o l'importanza di una pagina. L'algoritmo è stato sviluppato dai fondatori di Google, Larry Page e Sergey Brin, all'università di Stanford nel 1998 (lavoro iniziato nel 1995). PageRank si basa sulla natura unicamente democratica del Web usando la sua vasta struttura di collegamenti come indicatore del valore della pagina specifica. Google interpreta un collegamento dalla pagina A alla pagina B come un voto, dato dalla pagina A, alla pagina B. Google guarda al di là del puro volume dei voti, o collegamenti che la pagina riceve, infatti, analizza anche la pagina che da il voto. I voti dati da una pagina "importante" pesano di più rispetto a un voto dato da una pagina meno importante. In altre parole, un "rank" (classifica) di una pagina è il risultato di una "votazione" da parte di tutte le altre pagine nel Web sull'importanza di una data pagina. Il PageRank di una pagina è definito ricorsivamente e dipende dal numero e dal valore di PageRank di tutte le pagine che si collegano ad essa ("collegamenti ricevuti"). Una pagina che è collegata ad altre pagine con un PageRank alto riceve a sua volta un PageRank alto. Se non ci sono link alla pagina significa che non c'è alcun contributo alla pagina stessa. Analisi delle citazioni e pagine Web Le citazioni accademiche sono il riferimento a risultati precedenti e sono utilizzate per stabilire la rilevanza di un risultato (impact factor). Alcune differenze con le pagine Web: nessuna peer review per pubblicare un sito; è possibile automatizzare la creazione di centinaia di pagine che citano altre pagine; gli articoli scientifici sono unitari, auto-contesi e di dimensioni standard (poche pagine). Il naturale punto di partenza sono quindi le tecniche note ed utilizzate in Information Retrieval per analizzare e valutare le citazioni. Si può pensare al link come una citazione, una pagina con molte citazioni (backlink) è importante (per es. Yahoo). 179

180 RETI DI CALCOLATORI 2 Capitolo 14 Ci sono però alcuni problemi nell usare solo i backlink come misura della importanza, in quanto la dimensione del Web non permette (1998!) la certezza di avere tutti i backlink di una pagina. È importante che i backlink siano pesati: naturalmente essere linkati da Yahoo! ha un peso maggiore che essere linkati da PincoPallino. Definizione di PageRank Una pagina ha un rank alto se la somma dei rank dei suoi backlink è alto. Sia u una pagina web, F u l insieme di pagine a cui u punta (forward link) e B u l insieme di pagine che puntano a u (backlink). Sia N u la cardinalità di F u e c un fattore per la normalizzazione (il rango totale di tutte le pagine deve essere costante). Una versione (semplificata) del ranking R(u) è:. Il rank di una pagina viene diviso tra gli archi uscenti dalle pagine, contribuendo al rank delle pagine verso cui sono diretti. Si noti che c < 1 perché ci sono un numero di pagine che non hanno link uscenti e quindi il loro peso non viene catturato dal sistema. L'equazione è ricorsiva ma può essere calcolata da un qualsiasi insieme di rank ed iterata fino alla convergenza. Da un altro punto di vista, sia A una matrice quadrata n x n (n pagine) tale che l elemento A u,v = 1/N u se esiste l arco (u,v) e 0 altrimenti. Se consideriamo R come un vettore sulle pagine Web, allora avremmo che R = car. Quindi R è un autovettore di A con autovalore c. C'è un piccolo problema con questa funzione semplificata di ranking. Consideriamo due pagine Web che puntano l'una all'altra ma non ad altre pagine. Supponiamo che esiste qualche pagina Web che punta ad una delle due. Durante l'iterazione, questo ciclo accumulerà del rank che non sarà mai distribuito (rank sink). L idea è di evitare che una transizione abbia peso 0. Infatti in ogni momento, seppur con bassa probabilità, un utente sulla pagina A può passare anche ad una pagina B che non ha link entranti da A. Il fattore d viene detto damping factor. L effetto è che pagine che avrebbero probabilità zero di essere selezionate, hanno una (seppur bassa) probabilità di accesso. Un utente di solito segue il flusso, secondo l'importanza che fornisce il PageRank, ma ogni tanto si annoia e salta a caso (con distribuzione equiprobabile) su una altra pagina (random surfer). 180

181 RETI DI CALCOLATORI 2 Capitolo 14 ESEMPIO Prendiamo un piccolo universo di quattro pagine Web: A, B, C e D. Se tutte le pagine si collegano ad A allora il PR (PageRank) della pagina A è la somma dei PR delle pagine B, C, D. PR(A) = PR(B) + PR(C) + PR(D) Ma supponiamo che la pagina B abbia a sua volta un link a C, e D abbia un link a tutte e tre le pagine. Ognuno può "votare" solo una volta e, per questo motivo, il voto di B viene diviso fra le due pagine a cui punta. Per lo stesso motivo solo un terzo del voto di D contribuisce al PR di A. PR(A) = PR(B)/2 + PR(C) + PR(D)/3 cioè divido il PR per il totale dei link uscenti dalla pagina. PR(A) = PR(B)/L(B) + PR(C)/L(C) + PR(D)/L(D) Infine il totale è ridotto in percentuale moltiplicando il tutto per il fattore d detto anche "Damping Factor". Per le ragioni spiegate in seguito nessuna pagina può avere PR = 0 per cui Google usa un trucco per cui da a tutti un PR minimo di (1 - d). Per esempio, se riduco di un fattore 15% devo sommare un fattore 0,15 (d = 0,85). PR(A) = ( PR(B)/L(B) + PR(C)/L(C) + PR(D)/L(D) ) d + (1-d) Il Damping Factor, letteralmente fattore di smorzamento, ha la funzione appunto di smorzare il PR assegnato ad una pagina. Possiamo immaginare il Damping Factor come un link virtuale aggiuntivo a tutte le pagine della rete, su cui viene ridistribuito parte del PR della pagina di partenza, in modo da dare un contributo minimo alle pagine senza link in ingresso e ridistribuire il PR delle pagine che non hanno link in uscita. Il Damping Factor simula questa situazione: ci sono delle pagine che puntano a un'altra pagina attraverso una lunga catena di link; l'utente, più link deve effettuare per arrivare alla pagina di destinazione, più probabilmente abbandonerà la catena di link andando in una pagina non linkata direttamente. Quindi il PR di questa pagina si abbassa se viene raggiunta dopo una lunga catena di link invece che da una catena più corta. L'aumento o diminuzione del Damping Factor corrisponde alla facilità o meno con cui l'utente abbandona la catena di link da cui è partito e quindi la percentuale di PR da ridistribuire a tutte le pagine della rete (l'utente, infatti, potrebbe inserire un qualsiasi URL). Un esempio, seppur semplificato, potrà chiarire la precedente argomentazione. Vogliamo calcolare i PR delle pagine X e Y. La pagina X, vedi figura 1, viene raggiunta da lontano da un certo numero di pagine con un elevato PR, mentre la pagina Y, vedi figura 2, è raggiunta da vicino da un equivalente numero di pagine, con un PR inferiore alle precedenti; tuttavia all'aumentare del Damping Factor la pagina Y potrebbe risultare più autoritaria (avere un PR maggiore) della pagina X, situazione che si capovolge nel caso di un Damping Factor basso. Figura 1: Pagina X raggiunta da una lunga catena di link Figura 2: Pagina Y raggiunta da corta catena di link 181

182 RETI DI CALCOLATORI 2 Capitolo 14 Ma se il PR di una pagina è calcolato in base al PR di un'altra, qual'è il PR che viene calcolato per primo? Il risultato è il medesimo, infatti Google ricalcola spesso il PageRank di una pagina. Per esempio se inizialmente viene dato un PR random (diverso da 0) a tutte le pagine e costantemente il valore viene ricalcolato per tutte si ha che il valore tende a convergere dopo un certo numero di iterazioni. Pro e contro di PageRank (-) essendo query indipendent, le pagine possono essere importanti ma non rilevanti; molti degli sforzi under cover fatti da Google probabilmente sono in questa direzione. (+) basta un indice inverso per determinare l insieme di pagine da ordinare secondo PageRank. (+) maggiori difficoltà per gli spammers. ALGORITMI HITS E PAGERANK A CONFRONTO Con HITS, l'algortimo di Kleinberg, si introducono i concetti di indice di autorità e di hub di una pagina, e nella computazione i due indici si autosostengono a vicenda, in modo che buoni hub contribuiscano all'autorità di pagine autorevoli, e viceversa (la "votazione" fra le pagine è in qualche modo bidirezionale). Questo non è vero per l'algortimo PageRank di Google, nel quale la votazione ha un unico verso, cioè il PR (l'indice di PageRank) di una pagina è funzione del PR delle pagine che la puntano. Un fattore che accomuna le due tecniche è che entrambe applicano euristiche volte a determinare le prestazioni degli algoritmi o a "influenzare" i criteri di selezione delle pagine. GOOGLE TRIVIAL 1998: i fondatori pubblicano PageRank. 1999: si ingrandisce (passa a 8 impiegati). 2000: 60 impiegati, team con Yahoo con 100 milioni di query al giorno. 2002: 3 miliardi di pagine indicizzate, Google Box, Google News, Adwords. 2003: Google Deskbar, Blogger. 2004: 4,28 miliardi di pagine indicizzate, Gmail, Picasa, Desktop Search. 2005: Google Maps, Google Store, Google Video, Google Talk, Google Analystics. 2006: Google Earth, acquista DoubleClick. Oggi: 8 miliardi di pagine indicizzate. GOOGLE CLUSTER Architettura di Google Cluster Un'osservazione da fare è che pochi servizi sul Web consumano più risorse di un motore di ricerca, per ogni query Google legge centinaia di MBs di dati e consuma decine di miliardi di cicli CPU. L'obiettivo è quindi avere un'architettura che supporti uno stream di decine di migliaia di query per secondo. Questo richiede una infrastruttura paragonabile in dimensione alle più grandi installazioni di supercomputer. 182

183 RETI DI CALCOLATORI 2 Capitolo 14 Una soluzione cost-effective è quella di combinare più di PC standard con software faulttolerance, piuttosto che contare su hardware di picco (ad alte prestazioni). I fattori che influenzano l'architettura sono: l'efficienza energetica (energy efficient): non basta mettere insieme migliaia di PC in una stanza, si devono anche cablare, alimentare e raffreddare; rapporto prezzo/prestazioni: non interessa la prestazione di picco di un processore visto che si sfrutta la parallelizzazione. L'architettura software di Google deriva da due principi di base: soluzioni per la affidabilità via software e non hardware: per ottenere il migliore rapporto prezzo/prestazioni attraverso la realizzazione software di una infrastruttura affidabile composta di numerosi nodi (PC) di medio-basso livello e di basso costo (inaffidabili); si punta al migliore throughput dello stream di richieste, attraverso l uso di diverse CPU in parallelo. Come viene servita una query Google Quando un utente invia una query a Google (per esempio q=ieee+society ), il browser interroga il DNS per ottenere l'indirizzo IP di Per fornire capacità sufficiente per gestire il traffico di query, il servizio di Google consiste in numerosi cluster distribuiti nel mondo. Ogni cluster ha circa poche migliaia di macchine. Un sistema DNS basato sul bilanciamento del carico seleziona un cluster tenendo in considerazione sia la minimizzazione del round-trip time della richiesta ma anche il carico attuale dei vari cluster. A questo punto il browser dell utente invia la query HTTP. All interno di ogni cluster, un sistema hardware di load-balancing sceglie il Google Web Server (GWS) più appropriato per trattare la richiesta. Il GWS scelto dovrà: coordinare la esecuzione della query; formattare il risultato in HTML e restituirlo; usare sistemi di supporto: spell checking e pubblicità relativa. Ovviamente, il compito più complesso è il primo. 183

Classificazione delle tecniche di accesso multiplo

Classificazione delle tecniche di accesso multiplo Classificazione delle tecniche di accesso multiplo Le tecniche di accesso multiplo si dividono in tre classi: Protocolli deterministici o senza contesa: evitano la possibilità che due utenti accedano al

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

Protocolli di accesso multiplo

Protocolli di accesso multiplo Protocolli di accesso multiplo Quando l accesso ad una risorsa può avvenire da parte di più utenti indipendenti, si parla di risorsa condivisa ed è necessaria l implementazione di particolari protocolli

Dettagli

Sottolivello MAC - Medium Access Protocol

Sottolivello MAC - Medium Access Protocol Sottolivello MAC - Medium Access Protocol Sottolivello del data link Regola l accesso al mezzo per reti broadcast LAN e WAN satellitari allocazione statica - a priori allocazione dinamica - in base allo

Dettagli

Parte II: Reti di calcolatori Lezione 23

Parte II: Reti di calcolatori Lezione 23 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 23 Giovedì 22-05-2014 1 Reti wireless Una

Dettagli

Per essere inviato il dato deve essere opportunamente codificato in modo da poter essere trasformato in SEGNALE, elettrico oppure onda luminosa.

Per essere inviato il dato deve essere opportunamente codificato in modo da poter essere trasformato in SEGNALE, elettrico oppure onda luminosa. La trasmissione dell informazione N.R2 La comunicazione tra due calcolatori si realizza tramite lo scambio di dati su un canale di comunicazione, esiste quindi un TRASMETTITORE che invia dei dati e un

Dettagli

Parte II: Reti di calcolatori Lezione 23

Parte II: Reti di calcolatori Lezione 23 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Parte II: Reti di calcolatori Lezione 23 Martedì 26-05-2015 1 Confronto tra switch

Dettagli

Reti di Calcolatori. Il software

Reti di Calcolatori. Il software Reti di Calcolatori Il software Lo Stack Protocollare Application: supporta le applicazioni che usano la rete; Transport: trasferimento dati tra host; Network: instradamento (routing) di datagram dalla

Dettagli

CLASSIFICAZIONE DELLE RETI

CLASSIFICAZIONE DELLE RETI CLASSIFICAZIONE DELLE RETI A seconda dei ruoli dei computer le reti si classificano in: Reti Client Server in cui sono presenti computer con ruoli diversi, alcuni funzionano da client e uno o più da server

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Reti di Calcolatori Claudio Marrocco Componenti delle reti Una qualunque forma di comunicazione avviene: a livello hardware tramite un mezzo fisico che

Dettagli

Internet e protocollo TCP/IP

Internet e protocollo TCP/IP Internet e protocollo TCP/IP Internet Nata dalla fusione di reti di agenzie governative americane (ARPANET) e reti di università E una rete di reti, di scala planetaria, pubblica, a commutazione di pacchetto

Dettagli

Il livello Data-Link e i suoi protocolli

Il livello Data-Link e i suoi protocolli Il livello Data-Link e i suoi protocolli Modulo 5 (Integrazione) Livello Data-Link Abbiamo visto che il Livello Data link provvede a: o offrire servizi al livello network con un'interfaccia ben definita;

Dettagli

Networking e Reti IP Multiservizio

Networking e Reti IP Multiservizio Networking e Reti IP Multiservizio Modulo 2: Introduzione alle reti per dati IEEE802.3 (Ethernet) Gabriele Di Stefano: gabriele@ing.univaq.it Argomenti già trattati: Lezioni: Concetti fondamentali Entità

Dettagli

Reti di Calcolatori. Lezione 2

Reti di Calcolatori. Lezione 2 Reti di Calcolatori Lezione 2 Una definizione di Rete Una moderna rete di calcolatori può essere definita come: UN INSIEME INTERCONNESSO DI CALCOLATORI AUTONOMI Tipi di Rete Le reti vengono classificate

Dettagli

Reti di computer. Agostino Lorenzi - Reti di computer - 2008

Reti di computer. Agostino Lorenzi - Reti di computer - 2008 Reti di computer Telematica : termine che evidenzia l integrazione tra tecnologie informatiche e tecnologie delle comunicazioni. Rete (network) : insieme di sistemi per l elaborazione delle informazioni

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 Sommario della

Dettagli

Parte II: Reti di calcolatori Lezione 24

Parte II: Reti di calcolatori Lezione 24 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 24 Martedì 27-05-2014 1 Una volta che una

Dettagli

Introduzione alle Reti Telematiche Centro Multimediale Montiferru

Introduzione alle Reti Telematiche Centro Multimediale Montiferru Domande di verifica: Standard IEEE 802.2, IEEE802.3 1. I protocolli di sottolivello MAC (Medium Access Control) hanno lo scopo A. di permettere la condivisione di un canale punto-punto B. di permettere

Dettagli

802.11: modulazioni a confronto

802.11: modulazioni a confronto 802.11: modulazioni a confronto Normando Marcolongo 20 dicembre 2003 Tivoli 1 Obiettivi dell intervento Cenni sulle tecniche di Spread Spectrum Quali modulazioni vengono impiegate nello strato fisico dei

Dettagli

Perché Codificare i Dati? Codifica dei Dati. Tecniche di Codifica del Segnale. Cooperazione Trasmettitore- Ricevitore

Perché Codificare i Dati? Codifica dei Dati. Tecniche di Codifica del Segnale. Cooperazione Trasmettitore- Ricevitore Università degli studi di Salerno Laurea in Informatica I semestre 03/04 Codifica dei Dati Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 2 Perché Codificare i

Dettagli

Es.: ricetrasmittente

Es.: ricetrasmittente CAPITOLO 1: INTRODUZIONE Comunicazione dati: Quando comunichiamo scambiamo informazioni, questo scambio di informazioni può essere locale o remoto. Locale dialogo fatto di persona Remoto dialogo fatto

Dettagli

Introduzione alle reti di calcolatori

Introduzione alle reti di calcolatori Introduzione alle reti di calcolatori Definizioni base. Collegamenti diretti e indiretti Strategie di multiplazione Commutazione di circuito e di pacchetto Caratterizzazione delle reti in base alla dimensione

Dettagli

INTRODUZIONE A RETI E PROTOCOLLI

INTRODUZIONE A RETI E PROTOCOLLI PARTE 1 INTRODUZIONE A RETI E PROTOCOLLI Parte 1 Modulo 1: Introduzione alle reti Perché le reti tra computer? Collegamenti remoti a mainframe (< anni 70) Informatica distribuita vs informatica monolitica

Dettagli

ITIS G. Fauser. Classe 4^ BI. Materia: Sistemi. Anno Scolastico 2013-2014. Docenti: prof.ssa Manuela Cesa, prof. Pasquale Pietrangelo

ITIS G. Fauser. Classe 4^ BI. Materia: Sistemi. Anno Scolastico 2013-2014. Docenti: prof.ssa Manuela Cesa, prof. Pasquale Pietrangelo ITIS G. Fauser Classe 4^ BI Materia: Sistemi Anno Scolastico 2013-2014 Docenti: prof.ssa Manuela Cesa, prof. Pasquale Pietrangelo Numero ore di lezione settimanali: 4 Testi adottati: - Materiale didattico

Dettagli

Informatica Generale Andrea Corradini. 10 - Le reti di calcolatori e Internet

Informatica Generale Andrea Corradini. 10 - Le reti di calcolatori e Internet Informatica Generale Andrea Corradini 10 - Le reti di calcolatori e Internet Cos è una rete di calcolatori? Rete : È un insieme di calcolatori e dispositivi collegati fra loro in modo tale da permettere

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 102 Sommario della

Dettagli

SISTEMI DI TELECOMUNICAZIONI

SISTEMI DI TELECOMUNICAZIONI SISTEMI DI TELECOMUNICAZIONI MODI DI TRASFERIMENTO SERVIZI DI TRASFERIMENTO DELL INFORMAZIONE L informazione da trasferire si ipotizza strutturata in IU Costituita da b bit Da consegnare in t secondi Se

Dettagli

Reti di calcolatori. Riferimenti: Curtin cap. 9 Console cap. 6 (vecchia ed.) o cap. 8 (nuova ed.)

Reti di calcolatori. Riferimenti: Curtin cap. 9 Console cap. 6 (vecchia ed.) o cap. 8 (nuova ed.) Reti di calcolatori Riferimenti: Curtin cap. 9 Console cap. 6 (vecchia ed.) o cap. 8 (nuova ed.) Reti di calcolatori Inizialmente, con l avvento dei PC, il mondo dell elaborazione dati era diviso in due

Dettagli

Programmazione modulare 2015-2016

Programmazione modulare 2015-2016 Programmazione modulare 05-06 Indirizzo: Informatica Disciplina: SISTEMI E RETI Classe: 4 B Docente: Buscemi Letizia Ore settimanali previste: 4 ore ( teoria + ) Totale ore previste: 4 ore per 33 settimane

Dettagli

Reti, Protocolli e Indirizzi. DIMENSIONE della RETE. Arpanet e Internetworking. Topologia a Stella

Reti, Protocolli e Indirizzi. DIMENSIONE della RETE. Arpanet e Internetworking. Topologia a Stella Premessa breve Reti, Protocolli e Indirizzi Lo sviluppo delle telecomunicazioni ha avuto due fattori determinanti : L esistenza di una rete esistente (quella telefonica) La disponibilita di HW e SW adeguati

Dettagli

Reti di computer- Internet- Web. Concetti principali sulle Reti Internet Il Web

Reti di computer- Internet- Web. Concetti principali sulle Reti Internet Il Web Reti di computer- Internet- Web Concetti principali sulle Reti Internet Il Web Condivisione di risorse e comunicazione con gli altri utenti n n n Anni 70: calcolatori di grandi dimensioni, modello timesharing,

Dettagli

Modulazioni. Vittorio Maniezzo Università di Bologna. Comunicazione a lunga distanza

Modulazioni. Vittorio Maniezzo Università di Bologna. Comunicazione a lunga distanza Modulazioni Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 06 Modulazioni 1/29 Comunicazione a lunga distanza I segnali elettrici si indeboliscono quando viaggiano su un

Dettagli

2 - Canali e Multiplazione

2 - Canali e Multiplazione Università degli studi di Bergamo Università degli studi di Bergamo Dipartimento di Ingegneria dell Informazione e Metodi Matematici Reti di Calcolatori prof. F. Martignon 2 - Canali e Multiplazione 1

Dettagli

Reti di Calcolatori: nozioni generali il modello a livelli

Reti di Calcolatori: nozioni generali il modello a livelli Reti di Calcolatori: nozioni generali il modello a livelli Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione

Dettagli

Reti e problematiche di Rete: Reti geografiche e reti locali

Reti e problematiche di Rete: Reti geografiche e reti locali Reti e problematiche di Rete: Reti geografiche e reti locali Enrico Cavalli - enrico.cavalli@unibg.it Università di Bergamo - Anno Accademico 2008-2009 Reti Locali Reti geografiche e reti locali 2 1 Applicazioni

Dettagli

Brevi considerazioni sulla Tecnologia. Rete di calcolatori = insieme di nodi collegati mediante link di comunicazione

Brevi considerazioni sulla Tecnologia. Rete di calcolatori = insieme di nodi collegati mediante link di comunicazione Reti di Calcolatori Brevi considerazioni sulla Tecnologia 1 Definizioni Rete di calcolatori = insieme di nodi collegati mediante link di comunicazione Nodi: Calcolatore general purpose Switch o router

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Elaborazione e trasmissione delle informazioni Le Reti di Calcolatori Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Reti di Telecomunicazione

Dettagli

Capitolo 1 - parte 1. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 1 - parte 1. Corso Reti ed Applicazioni Mauro Campanella Capitolo 1 - parte 1 Corso Reti ed Applicazioni Mauro Campanella Precisazione Noi ci occuperemo solo della trasmissione di informazione in formato digitale. Un segnale analogico è basato su una variazione

Dettagli

LE RETI E INTERNET. Definizione della rete Internet dal punto di vista fisico

LE RETI E INTERNET. Definizione della rete Internet dal punto di vista fisico LE RETI E INTERNET 1 Definizione della rete Internet dal punto di vista fisico LE RETI E INTERNET 2 Parla dei commutatori di pacchetto o packet switch. LE RETI E INTERNET 3 Parla dei dispositivi fisici

Dettagli

Prefazione all edizione italiana

Prefazione all edizione italiana Sommario Prefazione all edizione italiana XIII Capitolo 1 Introduzione 1.1 Applicazioni delle reti di calcolatori 2 1.1.1 Applicazioni aziendali 3 1.1.2 Applicazioni domestiche 5 1.1.3 Utenti mobili 8

Dettagli

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Schema di una Rete

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Schema di una Rete Finalità delle Reti di calcolatori Le Reti Informatiche Un calcolatore isolato, anche se multiutente ha a disposizione solo le risorse locali potrà elaborare unicamente i dati dei propri utenti 2 / 44

Dettagli

RACCOLTA ESEMPI ESAMI SCRITTI TELECOMUNICAZIONI 2013 2014

RACCOLTA ESEMPI ESAMI SCRITTI TELECOMUNICAZIONI 2013 2014 RACCOLTA ESEMPI ESAMI SCRITTI TELECOMUNICAZIONI 2013 2014 (NOTA BENE: GLI ESERCIZI E LE DOMANDE SI RIFERISCONO AL PROGRAMMA SVOLTO NELL A. A. 2013 14 E NON NECESSARIAMENTE TUTTE LE DOMANE/ESERCIZI SONO

Dettagli

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) PARTE 2 SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 2 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 Sommario della

Dettagli

Evoluzione dei sistemi informatici

Evoluzione dei sistemi informatici Evoluzione dei sistemi informatici Cos è una rete? Insieme di calcolatori autonomi tra loro collegati mediante una rete di comunicazione Gli utenti sono in grado di interagire in modo esplicito con la

Dettagli

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella Corso di Sistemi di Elaborazione delle informazioni Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella Una definizione di Rete Una moderna rete di calcolatori può essere definita come:

Dettagli

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Sistemi operativi di rete (locale) In una LAN si vogliono condividere

Dettagli

http://mottatommaso.altervista.org

http://mottatommaso.altervista.org Standard IEEE 802 per reti LAN http://mottatommaso.altervista.org T. Motta Rete locale Rete LAN: rete di computer di dimensione limitata e senza attraversamento di suolo pubblico Sono di diversi tipi:

Dettagli

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 4

Reti di Calcolatori. Master Bio Info Reti e Basi di Dati Lezione 4 Reti di Calcolatori Sommario Software di rete Livello Trasporto (TCP) Livello Rete (IP, Routing, ICMP) Livello di Collegamento (Data-Link) Software di rete Livello Rete (IP, Routing, ICMP) Se i protocolli

Dettagli

Reti di calcolatori. Permettono la condivisione di risorse (hardware e software) e la comunicazione con gli altri utenti. Reti di calcolatori

Reti di calcolatori. Permettono la condivisione di risorse (hardware e software) e la comunicazione con gli altri utenti. Reti di calcolatori Reti di calcolatori Permettono la condivisione di risorse (hardware e software) e la comunicazione con gli altri utenti Reti di calcolatori Anni 70: calcolatori di grandi dimensioni, modello time-sharing,

Dettagli

Elementi di Reti per Telecomunicazioni

Elementi di Reti per Telecomunicazioni Elementi di Reti per Telecomunicazioni (Parte II) Topologie ed Interfacciamento di Reti Corso di Telecomunicazioni Anno Accademico 2004/2005 Contenuti Introduzione alle reti di TLC. Topologie di Reti per

Dettagli

Reti di elaboratori. Reti di elaboratori. Reti di elaboratori INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Reti di elaboratori. Reti di elaboratori. Reti di elaboratori INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Reti di elaboratori Rete di calcolatori: insieme di dispositivi interconnessi Modello distribuito INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Funzioni delle reti: comunicazione condivisione di

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Le tecnologie ed i componenti di Ethernet

Le tecnologie ed i componenti di Ethernet Le tecnologie ed i componenti di Ethernet Hub, Bridge, Switch Ethernet Tecnologia LAN dominante: Economica:

Dettagli

Wireless LAN. Scritto da BigDaD

Wireless LAN. Scritto da BigDaD Una Wireless local area network, WLAN, è un sistema di comunicazione flessibile e implementabile nella sua estensione, o alternativo, ad una rete fissa (wired LAN). In una W-LAN viene utilizzata una tecnologia

Dettagli

Evoluzione della rete Ethernet

Evoluzione della rete Ethernet Evoluzione della rete Ethernet Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi di traffico e

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Parte II Lezione 1

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Parte II Lezione 1 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II Lezione 1 Martedì 4-03-2014 1 TESTO DI RIFERIMENTO RETI DI CALCOLATORI

Dettagli

Protocolli di rete. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 02 Protocolli - 2/30

Protocolli di rete. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 02 Protocolli - 2/30 Protocolli di rete Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 02 Protocolli - 1/30 Strati di protocolli (Protocol Layers) Le reti sono complesse Molti elementi: host

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

Tecnologie Radio Cellulari. Reti Cellulari. Forma e Dimensione delle Celle. Organizzazione di una Rete Cellulare

Tecnologie Radio Cellulari. Reti Cellulari. Forma e Dimensione delle Celle. Organizzazione di una Rete Cellulare I semestre 04/05 Tecnologie Radio Cellulari Reti Cellulari Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica

Dettagli

Sistemi Di Elaborazione Dell informazione

Sistemi Di Elaborazione Dell informazione Sistemi Di Elaborazione Dell informazione Dott. Antonio Calanducci Lezione III: Reti di calcolatori Corso di Laurea in Scienze della Comunicazione Anno accademico 2009/2010 Reti di calcolatori Una rete

Dettagli

Reti di calcolatori e Internet

Reti di calcolatori e Internet Corso di Laboratorio di Tecnologie dell'informazione Reti di calcolatori e Internet Copyright Università degli Studi di Firenze - Disponibile per usi didattici Cos è Internet: visione dei componenti Milioni

Dettagli

Standard delle reti wireless

Standard delle reti wireless Standard delle reti wireless Pubblicati dalla IEEE, 802 LAN-MAN standards committee. ISO OSI 7-layer model Application Presentation Session Transport Network Data Link Physical IEEE 802 standards Logical

Dettagli

Principi fondamentali

Principi fondamentali Principi fondamentali Elementi di base Definizione di rete di calcolatori Tipologia di connessioni Architettura di rete Prestazioni di una rete di calcolatori Conclusioni 1 1 Bit e Byte BIT = BInary digit

Dettagli

Crescita di Internet. Torna alla prima pagina

Crescita di Internet. Torna alla prima pagina Crescita di Internet Ogni computer connesso ad Internet viene univocamente identificato dal proprio IP address: stringa di 32 bit costituita dall indirizzo della rete (net-id), e dall indirizzo del computer

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 Sommario della

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Parte II Lezione 4

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Parte II Lezione 4 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II Lezione 4 Giovedì 13-03-2014 1 Ritardi e perdite nelle reti a commutazione

Dettagli

Parte II: Reti di calcolatori Lezione 22

Parte II: Reti di calcolatori Lezione 22 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 22 Martedì 20-05-2014 1 Ethernet Ethernet

Dettagli

Principali Standard per LAN. Sistemi LAN. Caratterisitche del Controllo di Accesso al Mezzo. La Storia di Ethernet

Principali Standard per LAN. Sistemi LAN. Caratterisitche del Controllo di Accesso al Mezzo. La Storia di Ethernet Sistemi LAN Università degli studi di Salerno Laurea in Informatica I semestre 03/04 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ 2 Principali Standard per LAN

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Reti LAN. IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it

Reti LAN. IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it Reti LAN IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it Le LAN Una LAN è un sistema di comunicazione che permette ad apparecchiature indipendenti di comunicare fra loro entro un area limitata

Dettagli

15. Data link layer: Ethernet e FastEthernet

15. Data link layer: Ethernet e FastEthernet INFO-COM Dpt. Dipartimento di Scienza e Tecnica dell Informazione e della Comunicazione Università degli Studi di Roma La Sapienza 15. Data link layer: Ethernet e FastEthernet Prof. R. R. Cusani Ethernet

Dettagli

Appunti di telecomunicazione

Appunti di telecomunicazione Servizio radiomobile GSM Cenni storici Il primo sistema telefonico radiomobile della storia nacque negli USA nel 1964 e funzionava nella gamma di frequenza dei 160/450 MHz con soli 23 canali bidirezionali.

Dettagli

NETWORKING: SEMINARIO DI STUDIO 1

NETWORKING: SEMINARIO DI STUDIO 1 NETWORKING: SEMINARIO DI STUDIO 1 Obiettivi: 1. Fornire una panoramica sulle reti di calcolatori, tecnologie, potenzialità, limiti, servizi, internet. 2. Fornire una panoramica sulle capacità di base per

Dettagli

Tab. 1. Gamma di frequenze [GHz]

Tab. 1. Gamma di frequenze [GHz] 58 Ponti radio Per ponte radio si intende un sistema di collegamento, bidirezionale, a larga banda, che utilizza le onde elettromagnetiche per trasmettere informazioni sia analogiche sia digitali. I ponti

Dettagli

Reti di Telecomunicazioni 1

Reti di Telecomunicazioni 1 Reti di Telecomunicazioni 1 Corso on-line - AA2005/06 Blocco 2 (v2) Ing. Stefano Salsano e-mail: stefano.salsano@uniroma2.it 1 Richiami sul concetto di multiplazione 2 Riprendendo il discorso sulle diverse

Dettagli

Simulazione prova scritta di sistemi Abacus per l Esame di Stato. Traccia n 1

Simulazione prova scritta di sistemi Abacus per l Esame di Stato. Traccia n 1 Simulazione prova scritta di sistemi Abacus per l Esame di Stato Traccia n 1 La condivisione delle informazioni e lo sviluppo delle risorse informatiche tramite cui esse possono venire memorizzate e scambiate

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II Lezione 5 Giovedì 19-03-2015 1 Intensità del traffico e perdita dei pacchetti La componente

Dettagli

RETI LOCALI. 1 livello fisico 2 livello data link

RETI LOCALI. 1 livello fisico 2 livello data link 1 Topologie 2 Standard IEEE 802 3 Standard IEEE 802.3 (CSMA/CD) 4 Standard IEEE 802.5 (Token Ring) 5 Standard IEEE 802.11 (Wireless) 6 Bluetooth 7 Bridge RETI LOCALI 1 livello fisico 2 livello data link

Dettagli

Reti di calcolatori. Lezione del 27 maggio

Reti di calcolatori. Lezione del 27 maggio Reti di calcolatori Lezione del 27 maggio TPC/IP ed i livelli 1 e 2 TCP/IP architettura di rete focalizzata sull internetworking Mancano i primi 2 livelli Connessione ad Internet: due scenari tipici Connessione

Dettagli

Modulo 8 Ethernet Switching

Modulo 8 Ethernet Switching Modulo 8 Ethernet Switching 8.1 Ethernet Switching 8.1.1 Bridging a livello 2 Aumentando il numero di nodi su un singolo segmento aumenta la probabilità di avere collisioni e quindi ritrasmissioni. Una

Dettagli

LO STANDARD IEEE 802.11

LO STANDARD IEEE 802.11 LO STANDARD IEEE 802.11 1.. i terminali sono in continua evoluzione. 2 1 Esempi 3 Standard Comitato IEEE, Giugno 1997: Standard 802.11 4 2 IEEE 802 5 IEEE 802.11 Livello fisico: due metodi di utilizzo

Dettagli

Componenti della rete

Componenti della rete Componenti della rete Nodi, Link e adattatori di rete (NIC) Modulazione e Multiplexing Tipologia di cavi - wireless Correzione d errore - rete affidabile Ethernet - reti ad anello - reti wireless - reti

Dettagli

Nelle reti locali il livello 2 dlla pila OSI è suddiviso in: . delimitazione di trama (effettuata dal sottostrato MAC);

Nelle reti locali il livello 2 dlla pila OSI è suddiviso in: . delimitazione di trama (effettuata dal sottostrato MAC); Standard Lan Introduzione Nelle reti locali il livello 2 dlla pila OSI è suddiviso in:. strato MAC (Medium Access Control);. strato LLC (Logical Link Control). Le funzioni del livello 2 sono:. delimitazione

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 6 COS E UNA RETE Una rete informatica è un insieme di PC e di altri dispositivi che sono collegati tra loro tramite cavi oppure

Dettagli

MODELLI ISO/OSI e TCP/IP

MODELLI ISO/OSI e TCP/IP D. Talia RETI DI CALCOLATORI - UNICAL 1 Reti di Calcolatori MODELLI ISO/OSI e TCP/IP D. Talia RETI DI CALCOLATORI - UNICAL 2 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Telecomunicazioni RETI DI ELABORATORI

Telecomunicazioni RETI DI ELABORATORI Telecomunicazioni RETI DI ELABORATORI Fino a qualche anno fa, per poter gestire e trasmettere a distanza i dati elaborati si utilizzava il mainframe, in cui tutta la potenza di calcolo era concentrata

Dettagli

10. Stratificazione dei protocolli

10. Stratificazione dei protocolli 10. Stratificazione dei protocolli 10.1. Introduzione Abbiamo visto la struttura dell'internet. Ora dobbiamo esaminare la struttura del restante software di comunicazione, che è organizzato secondo il

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

Dettagli

I modelli di riferimento ISO OSI e TCP-IP

I modelli di riferimento ISO OSI e TCP-IP Gli Standards I modelli di riferimento ISO OSI e TCP-IP Dipartimento ICT Istituto e Liceo tecnico statale di Chiavari 2004 prof. Roberto Bisceglia ISO: International Standards Organization. ANSI: American

Dettagli

PROGRAMMAZIONE MODULARE 2015-2016. Disciplina: SISTEMI E RETI Classe: QUINTA A INF SERALE Indirizzo: INFORMATICA

PROGRAMMAZIONE MODULARE 2015-2016. Disciplina: SISTEMI E RETI Classe: QUINTA A INF SERALE Indirizzo: INFORMATICA PROGRAMMAZIONE MODULARE 2015-2016 Disciplina: SISTEMI E RETI Classe: QUINTA A INF SERALE Indirizzo: INFORMATICA Docenti: Gualdi (teoria), Travaglioni (laboratorio) Ore settimanali previste: 2 TEORIA +

Dettagli

R. Cusani, F. Cuomo: Telecomunicazioni Strato Fisico: Campionamento e Multiplexing, Marzo 2010

R. Cusani, F. Cuomo: Telecomunicazioni Strato Fisico: Campionamento e Multiplexing, Marzo 2010 1 8: Strato fisico: campionamento, multiplexing FDM e TDM Dati analogici, segnali numerici 2 Per poter trasmettere un dato analogico con una trasmissione digitale è necessario trasformare il dato analogico

Dettagli

I canali di comunicazione

I canali di comunicazione I canali di comunicazione tipo velocità min velocità max doppino telefonico 300bps 10 mbps micro onde 256kbps 100 mbps satellite 256kbps 100 mbps cavo coassiale 56 kbps 200 mbps fibra ottica 500 kbps 10

Dettagli

Una Tassonomia delle Reti

Una Tassonomia delle Reti Una Tassonomia delle Reti La tabella riporta una classificazione dei vari tipi di rete, in funzione dell ambito operativo e delle distanze coperte. AMBITO DISTANZA RETE COPERTA Edificio 100 m Reti Locali

Dettagli

1.2 CLASSIFICAZIONE DELLE RETI SULLA BASE DELL ESTENSIONE

1.2 CLASSIFICAZIONE DELLE RETI SULLA BASE DELL ESTENSIONE Reti di calcolatori 1.1 Definizione di rete di calcolatori Una rete di calcolatori è un'insieme di computer, collegati fra di loro mediante un opportuna infrastruttura, ed in grado di comunicare allo scopo

Dettagli

Laboratorio di Informatica Corso di laurea in Lingue e Studi interculturali. AA 2010-2011. Paola Zamperlin. Internet. Parte prima

Laboratorio di Informatica Corso di laurea in Lingue e Studi interculturali. AA 2010-2011. Paola Zamperlin. Internet. Parte prima Laboratorio di Informatica Corso di laurea in Lingue e Studi interculturali. AA 2010-2011 Paola Zamperlin Internet. Parte prima 1 Definizioni-1 Una rete di calcolatori è costituita da computer e altri

Dettagli

WLAN 802.11. Local Area Network (LAN)

WLAN 802.11. Local Area Network (LAN) WLAN 802.11 1 Local Area Network (LAN) Ethernet Server Hub Internet 2 1 Wireless Local Area Network (WLAN) Ethernet Server Access Point Internet 3 Perchè le Wireless LAN Riduzione costi di manutenzione

Dettagli