Introduzione a Bluetooth
Bluetooth è uno standard di comunicazione radio a corto raggio tramite il quale si possono
connettere dispositivi elettronici in modalità wireless (senza fili). La tecnologia Bluetooth opera
nella banda di frequenze tra 2,4 e 2,5 GHz, che è denominata ISM (Industrial Scientific Medical) ed
è libera da ogni licenza di utilizzo.
Bluetooth usa una tecnica trasmissiva di tipo FHSS (Frequency Hopping Spread Spectrum – a
spettro diffuso con salti di frequenza), in cui la frequenza non è fissata ma varia saltellando tra 79
frequenze diverse (hopping) ad intervalli regolari, secondo una sequenza pseudocasuale. Ciò
consente di contrastare meglio l'interferenza e il fading.1 I dati possono essere trasmessi su canali
sincroni (SCO, Synchronous Connection-Oriented) o asincroni (ACL, Asynchronous ConnectionLess). I primi sono tipicamente usati per il traffico audio, in cui è necessario mantenere la coerenza
temporale, mentre i secondi sono utilizzati per i dati. Il data rate lordo (comprensivo, cioè, dei
campi dei pacchetti di dati che non costituiscono carico utile per le applicazioni) è di 1 Mbps in
modalità Basic Rate (che adotta uno schema di modulazione GFSK – Gaussian Frequency Shift
Keying) e di 2 oppure 3 Mbps in modalità Enhanced Data Rate (che adotta una combinazione di
GFSK e PSK – Phase Shift Keying). Il data rate netto per connessioni ACL unidirezionali può
giungere fino a 723 Kbps in modalità Basic Rate e parimenti raddoppia o triplica in modalità
Enhanced Data Rate.
Il raggio di trasmissione è di circa 10 m, una distanza limitata dall'esigenza di contenere la
potenza di trasmissione e, di conseguenza, il consumo di energia. Questo fatto risulta
particolarmente importante se si pensa di usare la tecnologia Bluetooth per la connessione di
dispositivi alimentati da batteria – quali telefoni cellulari, laptop o palmari – per i quali l'autonomia
è un requisito critico. Altre caratteristiche importanti sono l'ingombro ridotto, la sicurezza delle
connessioni ed il basso costo. Tutte queste caratteristiche rendono la tecnologia Bluetooth
particolarmente adatta alle reti mobili ad hoc.
1 Le reti Bluetooth
Le reti topologicamente più semplici che possono essere formate usando dispositivi Bluetooth
vengono dette piconet. Esse sono composte al massimo da otto elementi e sono caratterizzate dalla
1 Il fading è un affievolimento del segnale causato dalla disomogeneità dell'atmosfera e da ostacoli riflettenti
interposti tra trasmettitore e ricevitore. In queste condizioni, infatti, la radiazione emessa si propaga e raggiunge
l'antenna ricevente seguendo cammini diversi, che producono attenuazioni differenti e sfasamenti casuali. La
ricomposizione di questi contributi all'antenna ricevente genera un segnale la cui ampiezza può fluttuare anche
molto fortemente.
1 - Introduzione a Bluetooth
Floriano Scioscia - SisInfLab
sincronizzazione temporale tra i partecipanti e dalla sequenza delle frequenze di salto seguita dai
suoi membri. In ogni piconet si distingue un nodo, detto master, mentre gli altri sono detti slave.
Ogni membro della piconet calcola la sequenza di frequenze di salto applicando un particolare
algoritmo all'indirizzo fisico ed al clock Bluetooth del master. L'indirizzo fisico, detto Bluetooth
address, è un identificativo lungo 48 bit univoco per ogni dispositivo. Il Bluetooth clock è invece
una specie di orologio di sistema, implementato con un contatore a 28 bit, che compie un ciclo
completo approssimativamente in un giorno.
Affinché un dispositivo possa connettersi ad un altro, è indispensabile che ne rilevi la
presenza e ne recuperi l'indirizzo fisico. Questa procedura, preliminare alla creazione di una
piconet, nella terminologia delle specifiche Bluetooth è detta device discovery (scoperta di
dispositivi) ed è asimmetrica, nel senso che un dispositivo si pone in cerca degli apparati presenti
all'interno dell'area coperta dalla radio (procedura detta inquiry), mentre gli altri si renderanno
individuabili – discoverable – ponendosi in una modalità di attesa (che prende il nome di inquiry
scanning). La successiva procedura, mediante la quale un dispositivo si connette effettivamente ad
un altro, di cui conosca l'indirizzo, viene detta paging. Affinché la connessione possa andare a buon
fine, l'altro dispositivo dovrà porsi nella modalità di page scanning. Il dispositivo che ha effettuato
il paging assume il ruolo di master, l'altro quello di slave.
Fermi restando i limiti complessivi di banda, all'interno di una stessa piconet può essere
presente un collegamento dati punto-multipunto ACL dal master verso al più sette slave, più un
massimo di tre connessioni punto-punto SCO. Non possono essere instaurate connessioni SCO
senza aver preliminarmente stabilito un collegamento ACL, che è indispensabile per rendere
possibili le operazioni di controllo della connessione. Solo il master può dare avvio alla procedura
volta a stabilire una connessione e all'interno di una stessa piconet non possono esistere
collegamenti se non fra il master e gli slave, per cui questi ultimi non possono comunicare
direttamente, a meno di creare essi stessi una nuova piconet.
Due piconet possono comunicare fra loro per mezzo di nodi ponte che partecipano ad
entrambe in multiplazione a divisione di tempo. Si forma così una scatternet, ossia una rete
composta da più piconet, fino ad un massimo di dieci in un ambiente ristretto. Questa limitazione è
dovuta al fatto che le frequenze di salto disponibili sono solo 79: aumentando il numero di piconet
in un ambiente dalle ridotte dimensioni, la probabilità di collisioni cresce fino a cessare di essere
trascurabile.
2 - Introduzione a Bluetooth
Floriano Scioscia - SisInfLab
piconet 1
piconet 2
A
B
C
E
D
F
G
H
piconet 3
Figura 1: Esempi di topologie di reti Bluetooth
La Figura 1 mostra esempi di diverse topologie di reti Bluetooth. Gli archi orientati
rappresentano connessioni da un master a uno slave. Il nodo A è master della piconet 1, di cui B, C
e D sono slave. Il nodo E è master della piconet 2, in cui sono slave D ed F. Poiché D partecipa ad
entrambe le piconet, si configura una scatternet. Analogo discorso vale per il nodo C, che è slave di
A e contemporaneamente master della piconet 3, in cui il nodo G assume il ruolo di slave. Il
dispositivo H, infine, è in prossimità degli altri nodi, ma non partecipa ad alcuna piconet; è nella
modalità inquiry scan in attesa di un inquiry da parte di un altro dispositivo.
2 Sicurezza
Lo standard Bluetooth prevede la possibilità di attuare l'autenticazione tra dispositivi e la
crittografia della trasmissione. L'autenticazione è ottenuta usando una chiave segreta condivisa fra
due apparati, detta link key, e avviene secondo un meccanismo a sfida e risposta (challengeresponse) tra un dispositivo richiedente e un verificatore dell'autenticazione. Se ha successo, la
procedura viene ripetuta a ruoli invertiti, permettendo l'autenticazione reciproca. La link key viene
stabilita durante una particolare sessione di comunicazione chiamata pairing, che può richiedere
l'inserimento di un PIN (Personal Identification Number) da parte dell'utente. Si dice che i due
dispositivi sono accoppiati (paired) quando condividono una link key precedentemente negoziata.
La crittografia è basata su una chiave a 128 bit, diversa dalla link key e ricavata da
quest'ultima, dall'indirizzo fisico del dispositivo e da un numero casuale. Essendo la sicurezza delle
3 - Introduzione a Bluetooth
Floriano Scioscia - SisInfLab
trasmissioni basata essenzialmente sulla segretezza delle chiavi, eventuali malintenzionati
tenteranno di entrare in possesso della link key o almeno di una sua parte. Il momento più
opportuno per cercare di carpirla è durante il pairing. Per questo è una buona norma di sicurezza
eseguire questa procedura in privato, fuori dalla portata d'ascolto – e dallo sguardo – di eventuali
malintenzionati, che corrisponde alla portata del sistema di circa 10 metri.
3 Risparmio energetico
Si è già accennato che lo standard Bluetooth propone alcune modalità per il risparmio di
energia durante una connessione. Esse sono note con i nomi di sniff, hold e park, e corrispondono a
tre gradi diversi di riduzione dell'attività del dispositivo rispetto alla modalità connected assunta
normalmente durante una connessione.
Nella modalità sniff viene ridotta la cadenza con la quale uno slave impegnato in un link ACL
ascolta le trasmissioni del master. Il master allora può iniziare una trasmissione verso un particolare
slave solo ad intervalli di tempo regolari, dal valore tipico di 1 s. Un dispositivo impegnato in un
collegamento SCO non può entrare nella modalità sniff.
La modalità hold riguarda solo la trasmissione di pacchetti asincroni. Un link ACL con uno
slave viene messo in hold quando si desidera che esso non supporti, per una durata di tempo fissata,
la trasmissione di pacchetti ACL sul canale. In questa modalità possono continuare a sussistere
eventuali collegamenti SCO.
Quando, invece, un dispositivo non necessita di partecipare attivamente alla piconet ma
desidera rimanere sincronizzato, può essere messo in modalità park. Essa è caratterizzata da
un'attività, e quindi da un consumo, estremamente ridotti, con l'inconveniente, però, del tempo
relativamente lungo occorrente a “risvegliare” il dispositivo.
Anche la modalità Enhanced Data Rate (EDR), introdotta nella più recente specifica dello
standard, contribuisce a migliorare l'efficienza energetica degli apparati Bluetooth, attraverso
l'aumento di throughput dei dati e la conseguente riduzione dei tempi di attività della trasmittente.
Ciò si ottiene impiegando due schemi di modulazione più sofisticati, capaci di codificare 2 o 3 bit
per simbolo, anziché 1 come nello schema GFSK di base. Una volta abilitato l'EDR su una
connessione tra dispositivi che lo supportano, alcuni bit dell'intestazione dei pacchetti di dati, che
normalmente denotano la tipologia di pacchetto, vengono interpretati in modo diverso permettendo
di indicare il tipo di modulazione utilizzata per la restante parte del pacchetto. In tal modo si
preserva la compatibilità tra i dispositivi che supportano la nuova specifica 2.0 e quelli che
supportano solo le versioni precedenti.
4 - Introduzione a Bluetooth
Floriano Scioscia - SisInfLab
4 Lo stack di protocollo
Per garantire l'interoperabilità fra dispositivi costruiti da produttori diversi, la specifica non
definisce soltanto i requisiti del sistema radio, ma anche il protocollo di comunicazione. Esso è
organizzato in una pila (stack), in cui ogni strato (layer), interagendo con i layer adiacenti usa i
servizi dei layer più in basso offrendone a sua volta a quelli superiori. In una comunicazione fra
dispositivi Bluetooth ogni layer comunica col suo omologo presente su un altro dispositivo
mediante il relativo protocollo, definito dalla specifica. Sono quindi presenti tante connessioni
logiche quanti sono i layer utilizzati.
La Figura 2 rappresenta graficamente la struttura dello stack di protocollo Bluetooth. Sono
Audio
TCS
UDP/TCP
OBEX
Comandi AT
Applicazioni
IP
PPP
RFCOMM
SDP
L2CAP
HCI
Link Manager
Baseband
Bluetooth Radio
Figura 2: Lo stack di protocollo Bluetooth
omessi alcuni layer di alto livello, utili soltanto per particolari applicazioni. Il livello applicativo
può essere pensato come appoggiato al di sopra dei livelli più alti dello stack, cioè L2CAP, TCS,
SDP, RFCOMM, HCI, di cui l'applicazione utente può usare i servizi.
Segue una breve descrizione delle principali funzioni espletate dai diversi strati:
5 - Introduzione a Bluetooth
Floriano Scioscia - SisInfLab
●
Baseband e Bluetooth Radio: sono gli strati più bassi e servono ad effettuare le
procedure relative alla connessione fisica fra i dispositivi. In particolare stabiliscono la
sequenza delle frequenze di salto e controllano il canale fisico, formano i pacchetti dati che
verranno effettivamente trasmessi, implementano la correzione degli errori di trasmissione e
l'eventuale cifratura dei dati.
●
Link Manager: questo protocollo viene adoperato per il setup, il controllo e la
sicurezza del collegamento; i segnali scambiati a questo livello tra due dispositivi non si
propagano ai layer superiori. Il Link Manager è responsabile delle operazioni di paging e
page scanning (quindi anche dello stabilimento di connessioni ACL e SCO), inquiry ed
inquiry scanning e delle modalità di basso consumo; esso, inoltre, gestisce le operazioni di
pairing.
●
Host Controller Interface (HCI): non è un layer vero e proprio poiché non eroga
servizi per i livelli superiori né comunica col suo omologo presente su un altro dispositivo.
Serve piuttosto a fornire un'interfaccia uniforme di comandi per accedere al Link Manager e
alle potenzialità del sistema radio. Offre, inoltre, accesso allo stato dell'hardware e ai registri
di controllo.
●
Logical Link Control and Adaptation Protocol (L2CAP): il layer L2CAP ha la
funzione di fornire servizi per l'invio dei dati ai livelli superiori. A tale scopo, supporta:
○
multiplexing dei livelli più alti di protocollo;
○
segmentazione e riassemblaggio dei pacchetti di dimensioni elevate;
○
gestione delle connessioni logiche con i layer superiori;
Grazie a L2CAP, è consentito l'invio di pacchetti dati più grandi di quelli permessi dalla
semplice trasmissione radio e l'invio di informazioni sulla qualità del servizio. Non è
prevista la segmentazione di pacchetti audio sincroni ma soltanto di dati asincroni.
●
Service Discovery Protocol (SDP): questo strato permette ad un dispositivo di
individuare i servizi di cui potrebbe usufruire connettendosi ad altri dispositivi Bluetooth a
portata di comunicazione e di notificare i servizi che possono essere forniti.
●
Telephony Control - Binary (TCS Bin): è un protocollo orientato ai bit, che fornisce
funzionalità per il supporto di telefonia senza fili.
●
RFCOMM: permette di emulare porte seriali attraverso il layer L2CAP, con i relativi
segnali. Per esempio, RFCOMM può emulare una porta con lo standard RS-232.
6 - Introduzione a Bluetooth
Floriano Scioscia - SisInfLab
5 I profili Bluetooth
Nell'ottica della interoperabilità, in aggiunta ai requisiti del sistema radio ed ai protocolli, la
specifica Bluetooth descrive quelli che vengono chiamati profili. Un profilo è un insieme di
definizioni, raccomandazioni e requisiti comuni per la corretta implementazione di un particolare
scenario applicativo. Per requisiti si intendono i servizi che devono essere supportati e le procedure
atte ad implementare le varie funzioni, ognuna riferita ad un particolare layer dello stack. Ogni
profilo, pertanto, può esser visto come una sezione verticale dello stack di protocolli Bluetooth.
Figura 3: Profili Bluetooth
Tra i vari profili esistono delle relazioni di dipendenza, nel senso che alcuni di essi usano
gerarchicamente altri. Le relazioni fra diversi profili definiti nella versione della specifica Bluetooth
2.0 sono rappresentate in Figura 3: un profilo dipendente è rappresentato come contenuto in quello
da cui dipende. Si vede perciò piuttosto chiaramente che tutti i profili dipendono direttamente o
indirettamente dal Generic Access Profile. Esso definisce le procedure atte ad assicurare
l'interoperabilità più elementare, essenzialmente garantendo la capacità di un dispositivo di
individuare altri apparecchi nelle vicinanze ed eventualmente connettervisi, o di essere a sua volta
individuato e connesso. Tale profilo definisce inoltre i requisiti per le procedure di autenticazione e
cifratura delle connessioni.
La maggior parte, se non la totalità, degli apparati Bluetooth oggi esistenti si appoggia ai
7 - Introduzione a Bluetooth
Floriano Scioscia - SisInfLab
profili già definiti. Ricordiamo, ad esempio, gli auricolari per telefoni cellulari (Headset Profile),
l'accesso wireless ad una rete di calcolatori (Personal Area Networking Profile), mouse e tastiere
senza cavi (Serial Port Profile, Generic Object Exchange Profile) e l'uso di telefoni cellulari come
modem senza fili (Dial-up Networking Profile). Tuttavia, sebbene il Bluetooth SIG (Special Interest
Group, il consorzio di aziende direttamente interessate allo sviluppo della tecnologia Bluetooth) si
adoperi per aggiungere alla specifica sempre nuovi profili, accade spesso di immaginare e voler
realizzare un'applicazione per cui non sia stato previsto alcun profilo specifico. In questo caso,
l'unico profilo che occorre rispettare è il Generic Access Profile.
8 - Introduzione a Bluetooth
Floriano Scioscia - SisInfLab