Home page, BLOG entry

Studio, progetto ed installazione di un link HiperLAN (ver 1.0 20/01/09)

Problema: come scambiare dati e messaggi fra due appartamenti distanti 290 metri l'uno dall'altro? Come accorciare le distanze? Come farlo in modo economico e veloce?

Conosco già la risposta più banale dell'esperto di turno: "cosa ci vuole, abbonamento ad internet di quà, abbonamento internet di là, con qualche script ed accorgimenti vari siete belli che collegati".

Questa soluzione non è molto semplice, in realtà. Non esiste un metodo "a prova di scemo" altrimenti detto semplice ed affidabile per far conoscere gli indirizzi dei computer dei due appartamenti. Inoltre, la qualità e la velocità della connessione può non essere entusiasmante. E poi entrambi hanno bisogno di un abbonamento internet, mentre in realtà uno dei due è potenzialmente ridondante. Senza contare che la sicurezza intrinseca di un collegamento del genere è, per usare un eufemismo, debole.

Inoltre, una volta che si inizia, non ci si ferma più e già mi vedo le videochat tra una casa e l'altra. Poi le varie condivisioni di dati su dischi fissi differenti. E via discorrendo.

L'unica alternativa valida è realizzare una rete dedicata, punto a punto, fra i due appartamenti. In questo modo sono totalmente libero di usare i servizi di rete che voglio, come voglio, alla massima velocità possibile.

A questo punto la mia immaginazione mi fa vedere l'esperto di turno che alza un sopracciglio, e dice "che fai, tiri un cavo da là a qua?". Se l'esperto è sveglio ed è uno smanettone (od hacker), oltre a non esere debole di cuore dirà la risposta giusta: "Ah sì, utilizzi un link wi-fi!".

Giusto, utilizzo un link radio fra i due appartamenti. Anzi, sbagliato: utilizzo una HiperLAN (vedi voce Wikipedia relativa).

Un poco di teoria

Cos'è un link radio? Semplice: fa tutto quello che fa un cavo Ethernet. Solo che al posto dei cavi di rame utilizza radiofrequenze. Non voglio annoiare nessuno sulla teoria e gli accorgimenti tecnici utilizzati per farlo, che sono indubbiamente complessi.

Basti sapere che dal punto di vista software, una volta configurato il link radio, detto tecnicamente bridge (interconnessione fra reti diverse al livello OSI 2, cioè link fisico), non vi è alcuna differenza apprezzabile fra la consueta Ethernet e siffatta nuova interfaccia.

Questo significa che il vostro computer Linux/Windows si configura alla stessa maniera, ed il tutto funziona come ci si aspetterebbe da una rete tradizionale (se il link radio è operativo). A tutto vantaggio della facilità di configurazione e con il supporto totale di tutte le applicazioni, commerciali e non, di entrambe le piattaforme.

Progetto della rete

Il layout della rete è il seguente:
Layout della rete con link HiperLAN
Lo schema della rete

L'appartamento 1 ha l'accesso fisico ad internet, ed attualmente ha la topologia di rete più complessa. L'appartamento 2 ha per il momento una rete che non esito a definire minimalista al massimo grado: un solo attacco Ethernet verso l'antenna, e due PC portatili cosiddetti "nomadici", vale a dire che seguono il loro padrone, dovunque sia, non necessariamente nell'appartamento due. Questo è il motivo per cui non è attualmente possibile connetterli entrambi in rete, ma solo uno alla volta, direttamente al cavo che li collega all'antenna: per ora non serve altro, ed è inutile raffinare ulteriormente questa configurazione!

Apparati utilizzati

Per realizzare il link HiperLAN sono state utilizzate due antenne identiche, fornite da Link-it Srl, precisamente il modello Chronolink CR-500F (vedi qui le specifiche tecniche).

Questi apparati sono composti da una minuscola motherboard con processore MIPS che monta un ram disk con RouterOS, il quale esporta l'interfaccia di controllo per la configurazione, ed un chipset Atheros che si preoccupa di implementare i protocolli HiperLAN/802.11a a livello hardware.

Configurazione hardware Chronolink CR-500F
La configurazione hardware di base del CR-500F

I Chronolink sono alimentati tramite PoE (Power over Ethernet, vedi la voce Wikipedia): è sufficiente quindi un unico cavo per veicolare i dati in trasmissione e ricezione ed alimentare la scheda stessa, con grande semplificazione dell'installazione dell'antenna sui tetti...

Collaudo

Per prima cosa, come buona regola quando si usano nuove tecnologie, abbiamo provato in cas prima dell'installazione finale che il link radio funzionasse. Per farlo abbiamo messo in sala da pranzo due computer portatili, ciascuno connesso ad una antenna, e le due antenne ai lati opposti del tavolo.
Chronolink CR-500F smontato
L'antenna smontata per le prove in casa

Non funzionava niente! Dopo una chiamata con il supporto tecnico abbiaqmo scoperto che le antenne erano troppo vicine ed interferivano l'una con l'altra, saturando lo stadio d'antenna e bloccando il trasferimento dati. Come "cura" è stato sufficiente voltare le antenne in modo che puntassero ai lati opposti della stanza, invece che presentare fra loro la parte frontale. In questo modo il segnale non si propaga in maniera diretta, ma solo tramite riflessioni, e quindi in modo molto più debole senza fare arrivare a saturazione lo stadio d'antenna.

Per la cronaca, non siamo finiti fritti dalla potenza del canale radio: le due antenne infatti hanno una potenza di uscita pari ad un Watt. I telefonini che ognuno di noi ha in tasca sono da anni in classe IV, vale a dire con una potenza massima di uscita di due Watt, il doppio! Quando ricevete una telefonata, un telefono GSM spedisce la risposta all'antenna che serve la cella alla massima potenza. Insomma, in tasca avete una fonte di inquinamento elettromagnetico mooolto più forte delle nostre antenne!

Fatto il trucco, il tutto è andato magnificamente bene: il link ha tenuto (scambiandosi dati) per una notte intera senza errori ed alla massima velocità possibile.

Messa in opera

Per prima cosa occorre montare il modulo dell'antenna su di una staffa in acciaio, in modo da poter ancorare in modo sicuro l'antenna stessa al tetto. Niente di stellare da reperire, ma necessario per evitare che in giornate di vento forte o comunque di condizioni meteorologiche avverse il tutto se ne vada via col vento.
Antenna montata sulla staffa
L'antenna montata sulla staffa prima dell'installazione sul tetto

Le due antenne devono essere posate in modo che siano in LOS (Line Of Sight). Vale a dire che se una persona si mette dietro una delle due, vede ad occhio l'altra: non ci devono essere ostacoli fra le due tipo muri, tetti e così via. Inoltre occorre garantire un minimo di allineamento tra le due, in modo che il cono del segnale radio generato da una antenna intersechi la seconda nel modo più efficiente possibile. Le antenne infatti sono direzionali, il che significa che non è sufficiente che le due antenne siano in LOS, ma anche che, se sono ad altezze diverse fra di loro, una delle due venga inclinata in modo da "mirare" l'altra.

Non occorre una precisione folle: il cono di propagazione del segnale è abbastanza largo da permettermi di puntare le due antenne ad occhio ed ottenere il massimo del risultato, almeno alla distanza di 290 metri che utilizzo nel mio caso.

Per nostra fortuna i due appartamenti sono situati all'inizio ed alla fine della stessa via, che si sviluppa in linea retta senza curve per tutto il suo percorso. Inoltre le due case hanno grosso modo la stessa altezza, ed essendo gli appartamenti al penultimo piano, non occorrono cavi troppo lunghi per raggiungere l'antenna. Questo non è un dettaglio trascurabile, dato che lo standard Ethernet garantisce che il tutto funzioni bene per lunghezze <=40 metri.

Puntamento dell'antenna sul tetto
Dal tetto di uno di due appartamenti si punta l'altro (indicato dalla freccia)

I cavi sono stati autocostruiti comprando una matassa di cavo con guaina, certificato 100Base-T (l'interfaccia LAN dell'antenna viaggia a questa velocità), tagliato alla lunghezza necessaria e terminato con connettori standard RJ45 (ho seguito l'ottima guida "How to wire Ethernet Cables" per fare il tutto).

Per poter veicolare l'alimentazione sul cavo Ethernet occorre un Power Inserter. Sono delle piccole scatolette, e costano pochi euro. Nella mia rete uso l'Alfa Network APOE02. Questi apparati contengono due connettori RJ45, uno con il flusso dati Ethernet in entrata e l'altro con il cavo Ethernet che veicola alimentazione e dati, più un connettore per l'alimentazione, che con un piccolo trasformatore viene presa da una presa di corrente casalinga standard 220V. Il tutto è montato all'interno dell'appartamento, in modo da poter controllare fisicamente lo stato dell'interfaccia. Inoltre non è molto salubre mettere apparati non schermati ma alimentati all'esterno. E' molto più semplice ed affidabile portarli in interni.

Power Inserter su Ethernet (PoE)
Il Power Inserter

Per collegare l'antenna HiperLAN sul tetto abbiamo seguito il cavo dell'antenna televisiva, stendendo un cavo parallelo a quest'ultima, affasciandolo agli altri, in modo da minimizzare l'impatto ambientale (e riciclare l'infrastruttura esistente). L'antenna HiperLAN è stata poi montata con una staffa d'acciaio vicino a quella televisiva, raggiungibile nel nostro stabile con relativa facilità.

Test

Ho fatto due livelli di test. Il primo per verificare unicamente la qualità della connessione radio fra i due appartamnti, il secondo per valutare le prestazioni a livello applicativo.

Prestazioni del link radio

Qui mi sono affidato al software fornito a corredo del Chronolink CR 500F, che contiene parecchi utili strumenti per misurare la qualità del segnale radio e la sua qualità di servizio.

In teoria lo standard HiperLAN2 che l'antenna utilizza, offre 54Mbit/sec a livello fisico per ciascun canale. Questa banda tuttavia è quanto è disponibile ai protocolli che vengono utilizzati al di sopra di quello fisico: ogni altro protocollo utilizzerà parte di questa banda sottraendola alla banda disponibile ai suoi utenti. In parole povere, un link IP non potrà mai avere una banda di 54 Mbit, ma un poco meno, ed un link TCP, che viaggia sopra l'IP, ne potrà utilizzare ancora meno, e così via per protocolli di ordine superiore.

Utilizzando più canali si può anche fare di meglio, come si vede in figura.

Test di banda su link radio con UDP
Spremuto al massimo: prestazioni con UDP

Per ora nessuno nelle vicinanze utilizza link di questo tipo, percui la qualità del segnale è ottima e posso utilizzare tutto lo spettro. Finché dura...Giusto come termine di paragone, con il mio portatile ed uno sniffer di reti wi-fi 802.11b/g/n vedo ben 11 reti nelle vicinanze...che chiaramente interferiscono fra loro ed abbassano le prestazioni dei singoli utenti!

Utilizzo frequenze link HiperLAN
Al momento della prova, nessuno nelle vicinanze usa HiperLAN!

Le condizioni atmosferiche influiscono sulla qualità del segnale, e quindi sulla velocità del link. Con mio stupore ho potuto notare che durante una nevicata il rapporto segnale/disturbo migliora, e non di poco. E' interessante perché invece con la pioggia peggiora lievemente. Con un temporale i fulmini influiscono in maniera distruttiva, nel senso che per una frazione di secondo il link viene totalmente perso. Come del resto accade per la televisione in analogico!

Prestazioni applicative

Per prestazioni applicative intendo la qualità di servizio percepita da un qualunque utente della rete radio. Per utente non intendo una persona fisica, ma un programma od un protocollo che vengono impiegati nell'utilizzo della rete stessa da parte di un utente fisico. L'esempio più classico è un browser Web come Firefox, che utilizza il protocollo HTTP che a sua volta utilizza il TCP/IP che infine viaggia sul link HiperLAN.

Lavorando professionalmente in un centro di ricerca e sviluppo di apparati di telecomunicazioni potrei scrivere un libro intero sull'argomento, ma qui vorrei solo dare una idea rapida ed efficace delle prestazioni di una rete in generale e della mia in particolare.

Quando si parla della "velocità" di una rete, in realtà si intendono due differenti entità che l'utente "vede" come una cosa unica: la banda e la latenza. La banda è la misura di quanti bit al secondo possono essere spediti e ricevuti da due punti scelti della rete. La latenza è invece il periodo di tempo che passa tra la ricezione di un dato e la conferma che tale dato è arrivato tra due punti scelti della rete.

Quando si visita un sito web come questo ad esempio, il tempo totale che il browser impiega per caricare la pagina è dato dal tempo occorrente per scaricare tutti i files che la compongono (testo, immagini, script...), che è a sua volta funzione della banda, e dal tempo che occorre affinché ciascuna richiesta al server web per richiedere tutti i files, che è funzione (anche) della latenza del collegamento.

Un link con banda larghissima ma latenza molto alta verrebbe giudicato lentissimo: vedreste una pagina web che carica "a scatti". Non serve a molto avere una banda da 2Mbit al secondo se poi vi sembra di navigare nella melassa... il problema è che è molto difficile misurare la latenza, mentre è molto più semplice misurare la banda.

Misure di banda

Sempre tenendo presente l'esempio classico del browser Web, ci sono diversi strumenti utilizzabili per capire quanta banda sia disponibile tra il mio computer collegato tramite link HiperLAN ad una rete internet. Uno dei più semplici e popolari è il sito dslreports.com, che permette di misurare da diversi punti del pianeta la velocità di collegamento a livello TCP/IP. Ecco i risultati presi da vari punti nel mondo:

Misura di banda verso San Francisco, CA USA Misura di banda verso Palo Alto, CA USA Misura di banda verso Francoforte, Germania

Più brutale, ma vicino alle esigenze dell'utente medio, è misurare la velocità di download di un file via HTTP. Ho scaricato la distribuzione Linux Ubuntu 8.10 a questa velocità:

Velocità di download da internet link HiperLAN

Misure di tutto rispetto anche per una ADSL usata senza link radio ;).

Misure di latenza

Data la difficoltà nel fare misure precise di latenza, personalmente nell'utilizzo semi domestico utilizzo un mio personale test di basso livello per quantificare in termini relativi la latenza.

Il test prevede di caricare, da reti differenti una pagina di un sito estremamente grande e complessa, e misurarne il tempo totale di caricamento. Confrontando i risultati, si può avere una idea di quanto sia in termini relativi la latenza. Incrociando questa informazione con le conoscenze che si hanno della topologia e delle prestazioni della rete che si sta utilizzando, si posono trarre delle stime riguardo la latenza "assoluta".

Il mio sito preferito a questo riguardo è il Corriere della Sera: questa è la misura di quanto sia grande e complessa una pagina tipo del corriere.it:

Quanto è complessa la pagina di corriere.it
Misure ottenute con il plugin di Firefox Web Developer 1.1.6

In pratica quando caricate la pagina, state caricando circa 126 file differenti! E' un test assolutamente brutale, professionalmente non suggerirei niente del genere, sia ben chiaro...

Sulla rete della azienda presso la quale presto consulenza, il tempo di caricamento è 5.3 secondi circa (con cache pulita). Come tutte le reti delle grandi aziende il tutto viaggia attraverso proxy server piutosto carichi che fatalmente aumentano la latenza. Quindi questo dato indica che 5 secondi sono un valore abbastanza alto per una latenza "assoluta".

Le misurazioni sono state fatte con il plugin di Firefox Extended Statusbar 1.5.3.