Bluetooth: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Botcrux (discussione | contributi)
m Collegamenti esterni: Bot: fix citazione web (v. discussione)
m apostrofo tipografico
Riga 64:
 
=== Connessioni ===
I collegamenti che possono essere stabiliti tra i diversi dispositivi sono di due tipi: [[comunicazione orientata alla connessione|orientati alla connessione]] (''Connection Oriented) ''e [[comunicazione senza connessione|senza connessione]] (''Connectionless)''. Un collegamento orientato alla connessione richiede di stabilire una [[connessione (informatica)|connessione]] tra i dispositivi prima di inviare i dati; mentre, un link senza connessione non richiede alcuna connessione prima di inviare i pacchetti. Il [[trasmettitore]] può in qualsiasi momento iniziare ad inviare i propri pacchetti purché conosca l’indirizzol'indirizzo del destinatario.
La tecnologia Bluetooth definisce due tipi di collegamenti a supporto delle applicazioni voce e trasferimento dati: un servizio asincrono senza connessione (ACL, ''Asynchronous ConnectionLess'') ed un servizio sincrono orientato alla connessione (SCO, ''Synchronous Connection Oriented'').
 
ACL supporta traffico di tipo dati e si basa su un servizio di tipo best-effort. L’informazioneL'informazione trasportata può essere di tipo utente o di controllo. SCO, invece, è un collegamento che supporta connessioni con un traffico di tipo real-time e multimediale. Il collegamento ACL supporta connessioni a [[commutazione di pacchetto]], connessioni [[multicast|punto-multipunto]] e connessioni simmetriche o asimmetriche. Nel caso di connessioni simmetriche il data rate massimo è di 433,9 kbit/s in entrambe le direzioni; mentre, per connessioni asimmetriche si raggiungono 723,2 kbit/s in una direzione e 57,6 kbit/s in quella opposta. Uno ''slave'' può trasmettere solamente se nello slot precedente aveva ricevuto un pacchetto dal ''master''. In questi tipi di collegamenti, in genere, viene applicata la ritrasmissione dei pacchetti.
 
La connessione SCO prevede connessioni a [[commutazione di circuito]], connessioni punto-punto e connessioni simmetriche. Questo tipo di connessione è generalmente utilizzata per il trasporto della voce in canali da 64 kbit/s. Il ''master'' può supportare fino a tre collegamenti SCO verso lo stesso ''slave'' o verso ''slave'' differenti appartenenti alla stessa piconet. Uno ''slave'', invece, può supportare fino a tre connessioni SCO verso lo stesso ''master'', o due se i collegamenti sono stati creati da diversi ''master''. A causa della sensibilità al ritardo di questi di pacchetti (trasportano dati di natura real-time), non è prevista alcuna ritrasmissione in caso di errore o perdita.
 
=== Tipologia della rete ===
Due o più dispositivi collegati tra loro formano una piconet. I dispositivi all’internoall'interno di una piconet possono essere di due tipi: ''master'' o ''slave''. Il ''master'' è il dispositivo che all’internoall'interno di una piconet si occupa di tutto ciò che concerne la sincronizzazione del clock degli altri dispositivi (''slave'') e la sequenza dei salti di frequenza. Gli ''slave'' sono unità della piconet sincronizzate al clock del ''master'' e al canale di frequenza.
 
Le specifiche Bluetooth prevedono 3 tipi di topologie: punto-punto, punto-multipunto e ''scatternet''. Diverse piconet possono essere collegate tra loro in una topologia chiamata ''scatternet''.
 
Gli ''slave'' possono appartenere a più piconet contemporaneamente, mentre il ''master'' di una piconet può al massimo essere lo ''slave'' di un’altraun'altra. Il limite di tutto ciò sta nel fatto che all’aumentareall'aumentare del numero di piconet aumentano anche il numero di collisioni dei pacchetti e di conseguenza degradano le prestazioni del collegamento. Ogni piconet lavora indipendentemente dalle altre sia a livello di clock che a livello di salti di frequenza. Questo perché ogni piconet ha un proprio master. Un dispositivo Bluetooth può partecipare sequenzialmente a diverse piconet come ''slave'' attraverso l’usol'uso di tecniche TDM (''[[Time Division Multiplexing]]''), ma può essere ''master'' solo in una.
 
=== Modalità operative ===
Un dispositivo Bluetooth si può trovare essenzialmente in due stati: in quello di connessione o in quello di [[Modalità d'attesa|standby]]. L’unitàL'unità si trova nello stato di connessione se è connesso ad un altro dispositivo ed è coinvolto con esso alle normali attività. Se il dispositivo non è connesso, o non è coinvolto alle attività della piconet, allora esso si trova automaticamente nello stato di standby. Questo stato è stato concepito come un modo per far risparmiare energia ai dispositivi. Se uno di essi non è coinvolto attivamente all’internoall'interno di una connessione, non c’èc'è motivo che assorba picchi di potenza pari a quelli dei dispositivi attivi. Quando un’unitàun'unità si trova in standby ascolta il canale ogni 1,28 secondi per eventuali messaggi dal ''master''.
 
Quando un dispositivo passa dallo stato di standby a quello di connessione, esso può essere collocato in una delle seguenti modalità:
* '''Active mode''': l’unitàl'unità partecipa attivamente alla piconet, sia in ricezione che in trasmissione, ed è sincronizzata al clock del ''master''. Il ''master'' trasmette regolarmente per mantenere la sincronizzazione del sistema. Gli ''slave'' hanno un indirizzo di 3 bit AM_ADDR (''Active Member Address'').
* '''Hold mode''': il ''master'' può mettere i dispositivi ''slave'' nello stato di Hold per un tempo determinato. Durante questo periodo nessun pacchetto può essere trasmesso dal ''master'' anche se il dispositivo mantiene il suo AM_ADDR e la sincronizzazione con il ''master''. Questa modalità operativa è utilizzata generalmente nel momento in cui non si devono inviare pacchetti ad un dispositivo per un periodo relativamente lungo (questo ci fa capire che tale modalità operativa è supportata solamente nel caso in cui tra due dispositivi bluetooth ci sia un collegamento di tipo ACL). Durante questo periodo, il dispositivo si può spegnere per risparmiare energia. L’''Hold mode'' può essere utilizzata anche nel caso in cui un’unitàun'unità vuole scoprire o essere scoperta da altri dispositivi bluetooth o vuole partecipare ad altre piconet.
* '''Sniff mode''': lo ''slave'' che passa in questo stato si trova in una modalità di risparmio energetico. Per entrare nello ''sniff mode'', master e slave devono negoziare due parametri: uno “sniff interval” ed uno “sniff offset”. Con il primo si fissano gli slot di ''sniff'', mentre con il secondo si determina l’istantel'istante del primo slot di ''sniff''. Quando il collegamento entra in ''sniff mode'', il ''master'' può inviare pacchetti solamente all’internoall'interno degli ''sniff slot''. Quindi lo ''slave'' ascolta il canale ad intervalli ridotti. Il ''master'' può costringere lo ''slave'' ad entrare in ''sniff mode'', ma entrambi possono chiedere il passaggio. L’intervalloL'intervallo di ''sniff mode'' è programmabile.
* '''Park mode''': il dispositivo è ancora sincronizzato alla piconet ma perde il suo indirizzo di dispositivo attivo (AM_ADDR) e riceve un nuovo indirizzo di 8 bit (PM_ADDR, ''Park Mode Address''). Questa modalità è stata ideata per avere la possibilità di costituire piconet con più di sette ''slave''. Infatti si possono avere fino ad massimo di 255 (2<sup>8</sup>-1) dispositivi in modalità Park. Utilizzando tale indirizzo il ''master'' è in grado di identificare un particolare dispositivo in tale modalità ed effettuare il passaggio all’''active mode''. Le unità in questo stato ascoltano regolarmente il traffico sulla rete per risincronizzarsi e ricevere messaggi di broadcast. Questi ultimi, infatti, sono gli unici messaggi che possono essere inviati ad uno ''slave'' in ''park mode''. La richiesta di passaggio in ''park mode'' può avvenire indifferentemente da parte del ''master'' o dello ''slave''. Lo ''slave'' per richiedere l’attivazionel'attivazione al ''master'' riceve un indirizzo di ''Active Request'' (AR_ADDR) non unico.
 
=== Architettura ===
[[File:BluetoothProtocolStack.JPG|thumb|upright=1.8|Bluetooth Protocol Stack]]
Come avviene per l’architettural'architettura OSI, Bluetooth specifica un approccio a livelli nella sua struttura protocollare. Differenti protocolli sono utilizzati per differenti applicazioni. Indipendentemente del tipo di applicazione, però, lo ''stack'' protocollare Bluetooth porta sempre all’utilizzoall'utilizzo dei livelli data-link e fisico. Non tutte le applicazioni usano tutti i protocolli dello ''stack'' Bluetooth, infatti, esso è rappresentato su più livelli verticali, al di sopra dei quali c’èc'è un’applicazioneun'applicazione specifica.
 
Scendendo un po' più in dettaglio è possibile identificare le funzioni principali svolte dai protocolli più importanti dello stack Bluetooth:
* '''Bluetooth Radio''': definisce i requisiti della parte in radio frequenza. Qui è dove i segnali radio vengono processati.
* '''Baseband''': abilita il collegamento fisico tra dispositivi all’internoall'interno di una piconet. Tale livello si basa sulle procedure di inquiry e di paging per la sincronizzazione e la connessione di dispositivi bluetooth. Permette di stabilire i due diversi tipi di connessione (ACL e SCO).
* '''LMP''': è responsabile dell’organizzazionedell'organizzazione del collegamento, del controllo tra dispositivi bluetooth e del controllo e negoziazione della dimensione dei pacchetti. È anche utilizzato per quanto riguarda la sicurezza: autenticazione e crittografia, generazione, scambio e controllo chiavi. Effettua anche il controllo sulle diverse modalità di gestione della potenza (''park'', ''sniff'', ''hold'') e sullo stato della connessione di un dispositivo all’internoall'interno della piconet. I messaggi LMP sono filtrati ed interpretati dal link manager in sede di ricezione, di conseguenza non saranno mai trasmessi ai livelli superiori. Questi messaggi hanno priorità maggiore rispetto ai pacchetti che trasportano dati utenti.
* '''L2CAP''': esegue il multiplexing dei protocolli di livello superiore, la segmentazione e il riassemblaggio dei pacchetti e il trasporto di informazione relativa alla QoS (''Quality of Service'') ovvero è possibile richiedere una certa QoS da riservare ad un determinato link. L2CAP permette ai protocolli dei livelli superiori ed alle applicazioni di trasmettere e ricevere pacchetti di dati di dimensione superiore a 64Kbyte. Esso definisce solamente un collegamento di tipo connectionless. I canali audio di solito vengono fatti girare su collegamenti SCO; per ovviare a questo problema dati audio possono essere inviati all’internoall'interno di pacchetti di protocolli che girano su L2CAP.
* '''RFCOMM''': emula una porta seriale (RS-232) sul protocollo L2CAP. Questo livello è necessario in quanto esistono applicazioni (come per esempio OBEX) che utilizzano un meccanismo di trasmissione seriale.
* '''TCS BIN''': opera a livello bit e definisce i segnali di controllo per le chiamate voce e dati tra dispositivi Bluetooth e le procedure per gestire gruppi di dispositivi TCS.
* '''SDP''': è un elemento importante all’internoall'interno della tecnologia Bluetooth, in quanto permette alle applicazioni di avere informazioni sui dispositivi, sui servizi offerti e sulle caratteristiche dei servizi disponibili. Dopo aver individuato il dispositivo che implementa un determinato servizio è possibile stabilire una connessione.
* '''AUDIO''': la funzione di questo strato è quella di codificare il segnale audio. Due tecniche possono essere adottate: log PCM e CVSD; entrambe forniscono un flusso di bit a 64kbit/s. La codifica log PCM (''Pulse Code Modulation'') consiste in una quantizzazione non uniforme a 8 bit. Nella codifica CVSD (''Continuous Variable Slope Delta Modulation'') il bit d'uscita indica se il valore predetto è maggiore o minore del valore della forma d'onda in ingresso, costituita da un segnale PCM con quantizzazione uniforme. Il passo è determinato dalla pendenza della forma d'onda.
Gli ''adopted protocols'' sono così chiamati perché sono protocolli definiti da altre organizzazioni di standardizzazione e incorporati nell'architettura Bluetooth: PPP (lo standard Internet per trasportare i pacchetti IP su una connessione punto a punto), TCP/UDP-IP (le fondamenta della suite TCP/IP), OBEX (''object exchange'', un protocollo a livello sessione sviluppato dalla Infrared Data Association per scambio di oggetti, simile all'HTTP ma più semplice; usato ad esempio per trasferire dati in formato vCard e vCalendar, cioè biglietto da visita e calendario degli impegni) e WAE/WAP (''Wireless Application Environment'' e ''Wireless Application Protocol'').
Riga 156:
;''Atomic Encryption Change'': permette un cambio di password periodico per collegamenti criptati, incrementando così la sicurezza.
;''Extended Inquiry Response'': provvede più informazioni durante la procedura di richiesta in modo da permettere un miglior filtraggio dei dispositivi prima di effettuare la connessione. Queste informazioni includono il nome del dispositivo, una lista di servizi e altro.
;''Sniff Subrating'': riduce il consumo di potenza quando i dispositivi sono nello stato di ''sniff'', particolarmente sui collegamenti con flussi di dati asimmetrici. Gli ''Human Interface Devices'' (HID) beneficeranno di questo profilo potendo incrementare la carica della batteria di mouse e tastiera da 3 a 10 volte l’attualel'attuale standard.
;Miglioramenti nella [[Qualità di servizio|QoS]]: permetterà a dati audio e video di essere trasmessi con qualità superiore.
;''Simple Pairing'': miglioramento nel controllo dei bit attraverso parità per motivi di sicurezza.
Riga 170:
 
==== Bluetooth 4.1 ====
Si tratta di un aggiornamento minore dello standard che migliora l’attualel'attuale Bluetooth 4.0 di cui sono dotati molti smartphone.
Uno dei problemi riscontrati con l’avventol'avvento delle reti [[LTE (telefonia)|Long Term Evolution]] (LTE) è una sovrapposizione delle bande: la banda ISM del Bluetooth è esattamente in mezzo alle bande LTE 40 e 41 e questo potrebbe causare qualche problema. Per risolvere l’inconvenientel'inconveniente, il nuovo Bluetooth 4.1 effettua un controllo di utilizzo della banda prima di procedere al suo utilizzo.
 
== Sicurezza ==
Riga 219:
Due sono gli sviluppi di maggiore interesse: ''[[Voice over IP]]'' (VoIP) e ''[[Ultra wideband]]'' (UWB).
 
La tecnologia Bluetooth costituisce parte fondamentale nello sviluppo del VoIP. Oggi viene già impiegata nei microfoni usati come estensioni [[wireless]] dei sistemi audio dei cellulari e dei PC. Dato l’incrementol'incremento in popolarità e nell’usonell'uso del VoIP, il Bluetooth potrebbe essere utilizzato nei telefoni [[cordless]] e [[telefono cellulare|cellulari]] per la connessione a [[Internet]] per effettuare una chiamata VoIP.
 
Nel marzo 2006 il SIG ha annunciato l'intenzione di lavorare insieme ai produttori del UWB per sviluppare la futura generazione di Bluetooth che usi lo standard e la velocità della tecnologia UWB. Questo permetterà l'uso dei profili su UWB consentendo un trasferimento dati molto veloce ottimo per la sincronizzazione, il VoIP e le applicazioni audio e video, con un consumo di potenza allo stato estremamente ridotto quando il dispositivo è inattivo.