Title: Bluetooth
1Bluetooth
- Seconda lezione Baseband e LM
2Corso Bluetooth
- 14-4-2003, 3 ore Bluetooth Phy e Baseband
- 5-5-2003, 3 ore Baseband LMP
- 3 ore HCI L2CAP
- 3 ore RFCOM, SDP e profili (corso di Rossi)
3Layer Fisico
- Banda ISM (2.4Ghz)
- Modulazione GFSK ad 1Mbps
- Fast frequency hopping
- 79 canali da 1 Mhz da 2.402 a 2.480 GHz
- 1600 hop/s gt slot time 625us
- 3 classi di potenza
- Classe 1 20dbm -gt 100 m
- Classe 2 4dbm
- Classe 3 0 dbm -gt 10 m
4Topologia
- Master unita che gestisce la rete e stabilisce
la sequenza di hopping - Slave fino a 7 unita connesse col master
- Piconet rete formata da un master e uno o piu
slaves - Comunicazioni possibili solo tra master e slave
5Pacchetti
- Hanno tutti un access code che identifica la
piconet e attiva il ricevitore - FHS packet porta le informazioni di
sincronizzazione - Pacchetti dati da 1/3/5 slot con o senza
FECDM1,DH1,DM3,DH3,DM5,DH5 - Pacchetti voce sincroni SCO
6Connessione
- Inquiry restituisce informazioni sulle unita
presenti nel range di trasmissione - Page stabilisce un link con ununita specifica
identificata dal BD_address. - Entrambe le procedure richiedono che le unita
target siano in scan mode - Tempi di risposta variabili a causa della
probabilita statistica di incrociare le
frequenzeTx eRX
7Scatternet
slave 3
slave 1
master B
master A
slave 4
slave 5
slave 2
8Broadcast
- Pacchetti trasmessi dal master a tutti gli slaves
attivi - I pacchetti broadcast si distinguono per avere
AM_Address000 - Non prevedono acknowledge ne pacchetti di
risposta - Per aumentare la robustezza si puo decidere di
ripeterli sistematicamente N volte
9Protocol stack
Applications
TCP/IP
HID
RFCOMM
Control
Data
Audio
L2CAP
Software layers
Link Manager
HW Digitale
Link Controller
HW Digitale/Analogico
Baseband
HW Analogico/RF
Radio
BT device
10Link controller
- Macchina a stati (spesso HW) per gestire
- Il meccanismo ARQ
- La procedura di inquiry
- La procedura di page
- La creazione/ decodifica del FHS packet
- Scheduling realtime dei pacchetti
- Tutte le procedure con requisiti di tempo
stringenti
11Link Manager
- Strato software realtime,che gira sul Bluetooth
device (host controller) - Alloca e assegna gli AM_address
- Stabilisce I link ACL ed SCO
- Configura I link
- Gestisce gli stati low power
- Comunica con il corrispettivo LM del dispositivo
remoto
12LMP
- Protocollo che consente al Link manager di
comunicare col suo pari
13LMP channel
- 2 bit nel Payload header vengono riservati per il
codice L_CH - I pacchetti LMP sono inviati esclusivamente
usando pacchetti DM1 (I piu robusti)
14Formato pacchetti LMP
payload
access code
packet header
DM1
Payload header (1 byte)
Payload Body (117 bytes)
CRC (2 bytes)
2
1
5
1
7
8
T_id
OP Code
Par 1
Par 2
Par 3
T_id (transaction identifier) 1 se e iniziata
dal master, 0 se e iniziata dallo slave
Par 14
Par 15
Par 16
15Connessione LMP
Slave
Master
ID
Link controller Paging
ID
FHS
ID
LMP_Host connection_req
Link Manager LMP connection setup
LMP_Accepted
Altre transazioni opzionali
16LMP_ Supported features
LM
LM initiating
LMP_features _req
LMP_features _res
- Un dispositivo richiede all altro quali features
opzionali supporta
17LMP_Name request
- Ogni unita Bluetooth puo avere un nickname
assegnato dall utente, per aiutarne
lidentificazione (max 248 caratteri)
LM
LM iniziatore
LMP_name_req (offset0)
LMP_Name_res (offset0 Lengthxx fragmentaaaa)
LMP_name_req (offsetxx)
LMP_Name_res (offsetxx Lengthyy fragmentbbbb)
18Controllo di potenza
- E possibile controllare il livello di potenza
emessa - Diminuire la potenza in eccesso per risparmiare
batterie e limitare il disturbo verso altri
dispositivi - Aumentare la potenza per migliorare la qualita
in link disturbati - La potenza emessa e relativa ad ogli link (un
master tiene una tabella di valori per ogni slave)
19Controllo di potenza /2
- Al ricevitore viene misurata la potenza ricevuta
in antenna e resa disponibile al LM in un
parametro RSSI (Received Signal Strength Index) - Ogni ricevitore conosce il proprio Golden range
di potenza, in cui le performances sono ottimali. - Il ricevitore controlla in remoto la potenza del
trasmettitore per ricevere nel golden range
20Controllo di potenza /3
- Messaggi LMP
- LMP_incr_power_req richiede un aumento di
potenza - LMP_decr_power_req richiede una diminuzione di
potenza - LMP_max_power Comunica che e stato raggiunto
il massimo livello possibile di potenza - LMP_min_power Comunica che e stato raggiunto il
minimo livello possibile di potenza
LM
LM initiating
LM
LM initiating
LMP_incr_power _req
LMP_decr_power _req
LMP_incr_power _req
LMP_decr_power _req
LMP_max_power
LMP_min_power
21Sicurezza
- Il frequency hopping fornisce un primo (tenue)
livello di sicurezza - Bluetooth definisce procedure di autenticazione e
di encription a livello LM - Si basa su una chiave privata di 128 bit
- Il temine di paragone per il livello di sicurezza
e il cavo - Applicazioni sensibili devono prevedere livelli
superiori di sicurezza - Disabilitabile in applicazioni che richiedono
accesso pubblico
22Link keys
- Tutte le chiavi sono a 128 bit
- Combination key KAB, e valida esclusivamente per
un link tra 2 unita specifiche - Unit key KA, e valida per tutti i link con una
particolare unita - Temporary key Kmaster, sostituisce
temporaneamente le altre chiavi (uso
sconsigliato) - Initialization key Kinit, chiave di
inizializzazione a durata limitata
23Scambio delle chiavi
- Due unita che hanno in comune una link key si
definiscono paired - Il pairing puo avvenire per via diretta (es.
tramite cavo) o piu comunemente tramite radio. - Il pairing solitamente viene fatto solo al
primo utilizzo del dispositivo. - La link key serve per lautenticazione e
lencription
24Autenticazione
Verifier(A)
Claimant (B)
Link Key
Link Key
RAND
BD_ADDR_B
BD_ADDR_B
LMP_au_rand
E1
E1
SRES_S
SRES_M
LMP_sres
?
25Encryption key Kc
- Viene generata a partire dalla link key
- L algoritmo utilizza anche i BD_address dei
dispositivi ed un numero Rand - Ad ogni riconnessione si genera una nuova Kc
- La lunghezza di Kc puo variare da 8 a 128 bit ed
e negoziabile
26Encryption
Kc
Plain Data
Payload key
Address
Payload key generator
Z(t)
Key stream generator
clock
PIN
RAND
Encrypted Data
Kc
Payload key
Encrypted Data
Address
Payload key generator
Z(t)
Key stream generator
clock
PIN
RAND
Plain Data
27Generazione delle chiavi
- Modo 1, dipende dal BD_addr
- Modo 2 dipende da un pin number inserito dall
utente
28Pairing A to B
- Viene inserito dall utente un PIN number in un
unita A - Viene generato da A un numero random R
- A invia R a B
- Lutente inserisce lo stesso pin in B
- A e B generano Kinit, usando R e PIN con E22
- Da K viene derivata Kc per lencription
- A genera KAB
- A invia KAB a B su un link protetto da Kc
- Kinit viene cancellata
29Pairing
PIN
PIN
First time connections
E22
E22
RAND
LINK KEY
LINK KEY
Authentication
E3
E3
EN_RAND
ENCRYPTION KEY
ENCRYPTION KEY
Encryption
30Stati low power (per gli slave)
- Active
- Active Il dispositivo è sempre in attesa di un
possibile pacchetto dal master - Hold Il dispositivo è in stand-by per un tempo
definito, dopo di che torna active - Sniff Il dispositivo và periodicamente in
stand-by e vi rimane per un tempo definito - Parked
- Il dispositivo è sincronizzato ma disattivato (no
AM_Address), periodicamente ascolta il master per
controllare se deve riattivarsi - Unconnected
- Page scan Il dispositivo periodicamente ascolta
pacchetti di page Inquiry scan Il dispositivo
periodicamente ascolta pacchetti di inquiry
31Modo Hold
- Uno slave puo astenersi per un certo periodo
dall ascoltare il master - Spesso viene usato per risparmiare potenza quando
non ci sono dati da inviare - Lo stato di hold puo essere imposto dal master o
richiesto dallo slave - Durante lhold lo slave puo anche fare altro, ad
es. partecipare ad un altra piconet o
inquiry/page scan
32LMP transaction
- LMP_hold_req negozia i parametri di hold
- LMP_hold forza lo stato di hold
- Parametri
- Hold instant il valore del Btclock(del master)
in cui lo slave inizia lo stato di hold - Hold time il tempo misurato in slot time di
durata dell hold
33Modo Sniff
- Come per lhold, lo slave si astiene dalla
piconet per un certo periodo - A differenza dell hold, lo sniff viene ripetuto
periodicamente senza ulteriore negoziazione - Viene utilizzato in dispositivi a bassa potenza e
basso bit-rate (es. Mouse tastiera)
34LMP transaction
- LMP_sniff_req negozia i parametri di sniff
- LMP_unsniff_req termina lo stato di sniff
- Parametri
- Tsniff Periodo di ripetizione
- Dsniff Istante di inizio del primo sniff
- Sniff attempt Numero di slot di ascolto
- Sniff timeout Massimo numero di slot attivi
35Modo Park
- Uno slave che per molto tempo tempo non deve
comunicare col master puo essere messo in park
mode. - In modo park lo slave cede lAM_address e riceve
un PM_address di 8 bit. - Lo slave in park mantiene il sincronismo con il
master (non e richiesto un page per riattivarsi) - Gli slaves in park si risvegliano periodicamente
negli slot di Beacon per risincronizzarsi e
comunicare col master
36LMP transaction (simp.)
- LMP_Park req
- PM_address, parametri di Beacon
- LMP_modify_beacon (Broadcast)
- Parametri di beacon
- LMP_unpark_PM_ADD_req (Broadcast)
- PM_address, nuovo AM_address,
37QoS
- Bluetooth 1.1 ha un supporto minimo di QoS, solo
con le specifiche 2.0 ci sara un supporto
completo. - E possibile per uno slave richiedere al master
la frequenza con cui viene interpellato.(polling) - E possibile in questo modo influenzare la banda
e la latenza nella direzione slave-gt master
38QoS LMP
- LMP_quality_of_service m-gts
- Poll interval, NBC (numero di ripetizioni
broadcast) - LMP_quality_of_service_req s-gtm
- Poll interval, NBC
Slave
Master
LMP_quality_of_service_req
LMP_quality_of_service
39Role switch
- E possibile che il master e uno slave si
invertano i ruoli dopo che la piconet e stata
creata - Es. PC che si connette ad un accesso di rete.
Slave
Master
LMP_slot_offset (offset,BD_Add)
LMP_switch_req (switch instant)
LMP_accepted
40Controllo pacchetti
- Un dispositivo puo voler limitare luso di
pacchetti multislot (DH3, DH5) da parte dell
altro dispositivo - Ad es. un master con un SCO attivo non vuole che
lo slave occupi gli slot riservati.
LM
LM init
LM
LM init
LMP_Max_slot (max slot)
LMP_Max_slot_req (max slot)
LMP_accepted
41Link supervision
- Se un dispositivo esce dal range Bluetooth e
indispensabile chiudere il link per evitare di
occupare risorse. - E definito un Supervision time out, trascorso il
quale se non vi e stata alcuna comunicazione
corretta il link viene automaticamente chiuso.
Slave
Master
LMP_Supervision_timeout(TO)