– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 1
Camille DiouDocteur en microélectronique
PAN : PAN : les réseaux les réseaux personnels personnels et et BluetoothBluetooth
BluetoothTM
LABORATOIRE INTERFACESCAPTEURS & MICROÉLECTRONIQUE
UNIVERSITÉDE METZ
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 2
PAN : les réseaux personnels et PAN : les réseaux personnels et BluetoothBluetooth
Introduction au BluetoothPositionnement et usageArchitectureLes profilesÉtablissement d’une connexionLes états de fonctionnementLes modes de fonctionnementÉtablissement de la liaisonSécurité
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 3
IntroductionIntroduction
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 4
Introduction : contexteStandard de liaison radio faible portéeMotivations : remplacement de toute la connectique nécessaire à l’interconnexion de matériels électroniques fixes ou portablesPossibilité d’accéder à des réseaux locaux (LANs) ou de réaliser des picoréseaux (piconets)Objectifs :� Faible consommation� Faible coût� Interopérabilité totale sans intervention de l’utilisateur
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 5
Introduction : histoireIntroduit par Ericsson en 1994Harald Blaatand « Bluetooth » II, roi du Danemark de 940 à 981. Sa pierre tombale indiquait :� Harald a christianisé la Scandinavie� Harald a contrôlé le Danemark et la Norvège� Harald pensait que les ordinateurs portables et les téléphones mobiles
devaient communiquer sans fils
Special Interest Group (SIG) : Ericsson, IBM, Intel, Nokia, et Toshiba, adopté par 3000 entreprisesVersion 1.1 disponible gratuitement à : http://www.bluetooth.comEn cours de normalisation : norme IEEE 802.15.1
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 6
Introduction : challengesUtilisation d’une bande de fréquences libre d’utilisation et universelleDispositifs mobiles : nécessité de s’adapter aux environnement changeant rapidementImplantation la plus petite possible : embarquéPuissance consommée : une faible fraction du dispositif hôteÉtablissement de la communication automatiqueSynchronisation des horloges
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 7
Introduction : spécificationsBande ISM (Industrial, Scientific & Medical) : 2,4 GHz� Plus qu’une radio : une solution end-to-end
Les spécifications Bluetooth comprennent :� La spécification des protocoles matériels et logiciels� Des profiles d’utilisation et des contraintes d’interopérabilité
IEEE 802.15.1 : standardisation des couches PHY et MAC (liaison physique et contrôle d’accès)
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 8
Introduction : spécifications
802.15 définit les WPANWireless Personal Area Networks
Faible portéeFaible consommationFaible coûtRéseaux réduitsCommunication de périphériques dans un espace d’opération personnel (Personal Operating Space)
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 9
Introduction : spécificationsOpère dans la bande 2.4 GHz à un débit de données maximal de 1 Mb/sÉtalement de spectre par saut de fréquence (FrequencyHopping Spread Spectrum) : divise la bande en n canaux (2.402 - 2.480 GHz = 79 canaux)Changement de canal de façon pseudo-aléatoire, déterminée par le maître8 périphériques par piconet (1 maître et 7 esclaves)Piconets combinés en scatternets
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 10
Positionnement et Positionnement et usageusage
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 11
Positionnement du Wireless
TéléphonieCellulaire
Couverture globale
Wireless LAN
Bureau, Université,
Aéroport, Hôtel, Maison
WPAN et Bluetooth
Espace personnel : bureau, pièce, valise, poche, véhicule
Faible portée/faibleconso
Voix ET Données
Faible coût
Facteur de formeréduit
Nombreux réseauxco-localisés
Pont universel
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 12
Positionnement du Wireless
WLAN802.11 ou Wifi
HiperLAN HomeRF
WWANGPRS UMTS
Satellite
WPANBluetooth
Inftrarouge10m
100m10km
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 13
Usage : apports de Bluetooth
ConnectivitéConnectivité personnellepersonnelleadaptéeadaptée
RemplacementRemplacementdes des câblescâbles
Points Points d’accèsd’accèsvoix/donnéesvoix/données
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 14
Usage : casques sans filsBénéfices pour l’utilisateur : � Accès à des périphériques multiples � Téléphones sans fils� Opérations mains-libres
Liberté de mouvement …
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 15
Usage : casques sans filsBénéfices pour l’utilisateur : � Accès à des périphériques multiples � Téléphones sans fils� Opérations mains-libres
Liberté de mouvement …
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 16
Usage : synchronisationBénéfices pour l’utilisateur : � Synchronisation de proximité� Maintenance aisée des bases de données� Base de données d’informations commune
Partage de données communes …
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 17
Usage : points d’accès donnéesBénéfices pour l’utilisateur : � Plus de connecteurs� Accès Internet aisé� Partage de connection
Connexion à distance …
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 18
ArchitectureArchitecture
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 19
RF
BB
Architecture
Application Framework& Support
LMP
HCL
L2CAP
Autres TCS RFCOMM
Data
SDP
Applications
Cont
rol
Audio
Host Controller Layer
Radio
Bande de base
Link Manager Protocol
Logical Link Control &Application Protocol
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 20
Architecture : couche radioOpère dans la bande 2,4 GHzCommunication en étalement de spectre � Saut de fréquence : frequency hopping� Sauts rapides : nombreux réseaux coexistants� Faible taille de paquets : bande bruitée, taux d’erreur élevé
Mode voix en CVSD : supporte des taux d’erreur élevéEn-têtes des paquets protégés : correction d’erreurSauts de fréquence : � 2402 + k MHz et k=0,1,…,78 � 1600 changements/s : hop slot de 625 µs
Modulation BFSK pré-filtrée :filtre gaussien BT=0,5Puissance d’émission 0dBm@10m, 20dBm@100m
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 21
Architecture : bande de baseContrôle la couche radioFournit les séquences de sauts de fréquenceGère le cryptage bas niveauDeux type de liaisons :� SCO : Synchronous Connection Oriented : synchrone orienté
connexion, typiquement pour la voix� ACL : Asynchronous Connection less : asynchrone sans connexion,
pour les applications de transfert de données ne nécessitant pas de liaison synchrone
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 22
Architecture : bande de baseFournit les fonctionnalités requises pour : � la synchronisation des horloges, � l’établissement des connexions, � l’inquisition (inquiry) des adresses des périphériques présents, � la correction d’erreur des paquets
5 canaux différents : � information de contrôle, � information de gestion de liaison, � données synchrones, � données asynchrones, � données isosynchrones
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 23
Architecture : couche LMPLink Manager Protocol : Protocole de gestion de liaison� Gestion des piconets� Configuration de la liaison� Fonctions de sécurité
Fournit les fonctionnalités de :� d’attachement/détachement d’esclaves� de basculement de rôle maître/esclave� d’établissement des liaisons ACL/SCO� de gestion des modes low-power : hold, sniff et park
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 24
Architecture : couche LMPConfiguration de la liaison :� Définition des paramètres de liaison� Qualité de service (QoS : Quality of Service)� Contrôle de la consommation
Authentification des périphériquesGestion des clefs de liaison
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 25
Architecture : piconetEnsemble de périphériques connectés de manière ad-hocUne unité se comporte en maître, les autres en esclaves, pour la durée de la connexion piconetLe maître définit l’horloge et le saut de fréquenceChaque piconet a un unique motif/ID de saut Chaque maître connecter jusqu’à 7 esclave simultanément ou 200+ esclaves inactifs (parqués)
M
SS
S
SB
P
P
M=MasterS=Slave
P=ParkedSB=Standby
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 26
Architecture : scatternetLiaison de piconets co-localisés partageant des périphériques maîtres ou esclavesUn périphérique peut être à la fois maître et esclaveRadios are symmetric (same radio can be master or slave)Système haute capacité : chaquepiconet a une capacité maximale (720 Kbps) M
M
SS
S
S
P
SB
SB
P
P
M=MasterS=Slave
P=ParkedSB=Standby
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 27
Architecture : couche L2CAPLogical Link Control and Adaptation Protocol :Protocole de contrôle du lien logique et de l’adaptationFonctions de base :� Multiplexage : plusieurs applications peuvent utiliser un même lien
entre deux périphériques simultanément� Segmentation et ré-assemblage : réduction de la taille des paquets
fournis par l’application à la taille acceptée par la bande de base ; L2CAP = 64 ko, BB = 2745 bits
� Qualité de service : les applications peuvent demander de la QoS sur des paramètres tels bande passante, latence et retard ; L2CAP vérifie si la liaison peut satisfaire la demande et l’effectue dans le cas où c’est possible
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 28
Architecture : couche HCIModule Bluetooth = carte séparée (PCI, USB) Intègre les couches basses : radio, bde base, LMPLes données doivent traverser un bus physique : nécessité d’introduire deux couches supp :� Driver HCI : driver pour le HCI, réside dans l’hôte (logiciel), formate les
données� Host Controller Interface : réside dans le matériel bluetooth, accepte
les communications sur le bus physique
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 29
Architecture : couche HCIHost Controller Interface : Interface contrôleur hôte
Hôte 1 Hôte 2Bluetooth hôte Bluetooth hôte
Drivers des couches
supérieures
Drivers des couches
supérieures
Drivers HCI Drivers HCI
Drivers de bus Drivers de busBus physique (USB, PCCard, etc.)
Bus matériel
Bus physique (USB, PCCard, etc.)
Bus matériel
Firmware HCI Firmware HCI
Firmware linkmanager
Firmware linkmanager
Contrôleur bande de base
Contrôleur bande de base
Wireless
Données utilisateur
HCI HCI
Physique Physique
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 30
Architecture : couche applicationLes applications accèdent à la couche L2CAP directement ou à travers un protocole tel RFCOMM, TCS ou SDPModèles d’utilisation :� Téléphone trois-en-un : un seul combiné fonctionne comme intercom,
téléphone, ou mobile selon les services disponibles� L’attaché-case : liaison portable / téléphone� Synchronisation automatique� Casques sans-fils� Kits mains libre pour véhicule� Domotique, partage de données lors de réunions, alarmes, systèmes
de sécurité, accès réseau en zones publiques
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 31
Les profilesLes profiles
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 32
Les profiles BluetoothIl existe 13 profiles Bluetooth initiaux correspondant à autant de fonctions possibles dans une connexion : � K1 : GAP Generic Access Profile� K2 : SDAP Service Discovery Application Profile� K3 : CTP Cordless Telephony Profile� K4 : IP Intercom Profile� K5 : SPP Serial Port Profile� K6 : HS Headset Profile� K7 : DNP Dial-up Networking Profile� K8 : FP Fax Profile� K9 : LAP LAN (Local Area Network) Access Profile � K10 : GOEP Generic Object Exchange Profile� K11 : OPP Object Push Profile� K12 : FTP File Transfer Profile� K13 : SP Synchronization Profile
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 33
Les profiles BluetoothAux profiles précédents on peut ajouter 12 profiles en phase finale de développement :� ESDP Extended Service Discovery Profile (Universal Plug & Play)� A2DP Advanced Audio Distribution Profile � AVRCP Audio Video Remote Control Profile� BIP Basic Imaging Profile� BPP Basic Printing Profile� CIP Common ISDN Access Profile� GAVDP Generic Audio Video Distribution Profile� HFR Hands-Free Profile� HCRP Hardcopy Cable Replacement Profile� HID Human Interface Device Profile� PAN PAN (Personal Area Networking) Profile� SAP SIM Access Profile
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 34
Generic Access Profile
Serial Port Profile
Generic Object Exchange Profile
Generic Audio/Video Distribution Profile
Les profiles Bluetooth
Ext. Service Discovery Profile (1)
Service Discovery App. Profile
Common ISDN Access Profile
PAN ProfileESDP (2)
Audio/Video RemoteControl Profile Cordless Telephony Profile
Intercom Profile
Hardcopy Cable Replacement Profile
Adv. Audio Distribution Profile
Video Distribution Profile
SIM Access Profile
File Transfert Profile
Object Push Profile
Synchronization Profile
Basic Imaging Profile
Basic Printing Profile
Headset Profile
Hands-free Profile
Dial-up Networking Profile
Fax Profile
LAN ProfileESDP (3)
TCS-BIN Based Profiles
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 35
Les profiles BluetoothIl existe aujourd'hui 21 profiles Bluetooth, qui correspondent àautant de fonctions possibles dans une connexion Bluetooth :
GAP (Generic Access Profile) : assure le fonctionnement des couches de liaison basses. � AVRCP (A/V Remote Control Profile) � ESDP (Extended Service Discovery Profile)� CIP (Common ISDN Acces Profile)� SDAP (Service Discovery Application Profile) : permet à une
application au sein d'un équipement Bluetooth de découvrir les services Bluetooth d'autres équipements et d'acquérir les données nécessaires à l'établissement d'une connexion.
� PAN (Personal Area Network Profile)� HCRP (Hardcopy Cable Replacement Profile)
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 36
Les profiles BluetoothIl existe aujourd'hui 21 profiles Bluetooth, qui correspondent àautant de fonctions possibles dans une connexion Bluetooth :
GAVDP (Generic Audio/Video Distribution Profile)� Advanced Audio Distribution Profile� Video Distribution Profile
TCS-BIN Based Profiles� CTP (Cordless Telephony Profile) : permet aux téléphones
cellulaires de fonctionner comme téléphones sans fil avec un PC ou une station de base.
� IP (Intercom Profile) : offre une utilisation en mode interphone ou talkie-walkie.
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 37
Les profiles BluetoothIl existe aujourd'hui 21 profiles Bluetooth, qui correspondent àautant de fonctions possibles dans une connexion Bluetooth :
SPP (Serial Port Profile) : permet l'émulation d'un connecteur série. 3HS (Headset) : communication sur oreillette.� HP (Headset Profile) : permet l’utilisation de casques sans fil avec les
dispositifs audio (téléphones, lecteurs MP3)� HFP (Hands Free Profile) : permet l’utilisation en mode mains libres
de dispositifs audio (téléphones, interphones, etc.)� DNP (Dial-Up Networking Profile) : autorise la connexion à un
modem, ou l'utilisation d'un tél. mobile comme modem.� FP (Fax Profile) : service fax.� LAP (Local Area Network Profile) : donne accès au réseau local ou
permet le fonctionnement en mode réseau local.� SAP (SIM Access Profile)
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 38
Les profiles BluetoothIl existe aujourd'hui 21 profiles Bluetooth, qui correspondent àautant de fonctions possibles dans une connexion Bluetooth :
GOEP (Generic Object Exchange Profile) : profile générique d'échange d'objets pour synchronisation, FTP, Push...� FTP (File Transfer Profile) : service situé du côté de l'application qui
provoque un transfert de fichiers vers un équipement Bluetooth.� OPP (Object Push Profile) : service situé du côté de l'application qui
fait du Push vers un appareil Bluetooth, typiquement pour l'expédition d'une carte de visite.
� SP (Synchronisation Profile) : service situé du côté de l'application qui lance une opération de synchronisation vers un équipement BT.
� BIP (Basic Imaging Profile) : � BPP (Basic Printing Profile) :
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 39
Établissement d’une Établissement d’une connexionconnexion
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 40
Établissement d’une connexionExemple d’un connexion réseaux : récupération des mailsLes différentes étapes de la connexions :� Inquisition (Inquiry)� Paging� Établissement de la liaison (Link establishment)� Découverte de services (Service discovery)� Canal L2CAP� Canal RFCOMM� Sécurité� PPP� Protocoles réseaux
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 41
Établissement d’une connexionInquisition (Inquiry) : Le dispositif qui atteint un nouvel environnement initie une inquisition afin de trouver les points d’accès accessibles :
� Tous les points d’accès présents répondent par leur adresse� Le dispositif choisit l’un des points d’accès qui répondent
Paging� Procédure en bande de base� Synchronisation du dispositif avec le point d’accès� Offset et phase d’horloge du saut de fréquence
Établissement de la liaison� LMP, Liaison synchrone (SCO) ou asynchrone (ACL)
Découverte de services� Le LMP utilise le SDP (Service Discovery Protocol) afin de découvrir
les services disponibles sur ce point d’accès
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 42
Établissement d’une connexionCanal L2CAP� À partir des information du SDP, un canal L2CAP est créé vers le point
d’accès� Directement utilisé par l’application ou via un autre protocole (ex:
RFCOMM)
Canal RFCOMM : permet l’émulation d’un port série au-dessus de L2CAPSécurité : appairage (pairing) à l’aide d’un code PIN : génération d’une clef à partir du code PIN, et cryptage si nécessairePPP : l’application habituelle peut utiliser PPP au dessus de la couche RFCOMMMLes protocoles réseaux habituels : TCP/IP, etc. peuvent être utilisés pour envoyer des données via la liaison établie
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 43
Établissement d’une connexionDiagramme d’état des différents modes
standby
page scanpage
inquiry scan
inquiry
slave response
connected
inquiry response
master response
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 44
Les états de Les états de fonctionnementfonctionnement
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 45
Les états
inquiry
inquiry scan
page scan
page
Standby : repos� État par défaut d’un
périphérique Bluetooth� Seule l’horloge native est active :
la consommation est alors réduite au maximum
� Cet état conduit aux états suivants :� Inquiry� Inquiry scan� Page� Page scan
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 46
Les états standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Inquiry : interrogation– Envoi d’un paquet inquiry
adressé soit au GIAC (General Inquiry Access Code), soit au DIAC (Dedicated InquiryAccess Code) qui concerne une classe particulière de périphériques
Maître Esclave
PAQUET INQUIRYPAQUET INQUIRY
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 47
Inquiry : interrogation– Répété à 16 fréquences
différentes : séquence de saut d’inquisition (inquiry hop sequence) appelé train. Un péri-phérique qui peut être interrogé écoute l’une de ces 16 fréquences
Les états
Écoute sur la fréquence 3
PAQUET INQUIRY 1
PAQUET INQUIRY 2
PAQUET INQUIRY 3
PAQUET INQUIRY 16
Fréquence 1
Fréquence 2
Fréquence 3
Fréquence 16
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 48
réponse ?
réponse ?
réponse ?
réponse ?
Inquiry : interrogation– La transmission est effec-
tuée en alternance sur les différents slots, les slots inter-médiaires étant utilisés pour l’écoute de la réponse éventuelle
Les états
PAQUET INQUIRY 1Fréquence 1
PAQUET INQUIRY 2Fréquence 2
PAQUET INQUIRY 3Fréquence 3
PAQUET INQUIRY 16Fréquence 16
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 49
Inquiry : interrogation– Deux trains de sauts de
fréquence : A et B ; chaque train est répété 256 fois pour récupérer toutes les réponses.
Les états
TRAIN A : 256 FOIS TRAIN B : 256 FOIS
réponse ?
réponse ?
réponse ?
réponse ?
PAQUET INQUIRY 1Fréquence 1
PAQUET INQUIRY 2Fréquence 2
PAQUET INQUIRY 3Fréquence 3
PAQUET INQUIRY 16Fréquence 16
réponse ?
réponse ?
réponse ?
réponse ?
PAQUET INQUIRY 1Fréquence 1
PAQUET INQUIRY 2Fréquence 2
PAQUET INQUIRY 3Fréquence 3
PAQUET INQUIRY 16Fréquence 16
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 50
Inquiry : interrogation– Le temps total requis pour
cette opération est de 10,24 secondes mais si un nombre suffisant de réponses est récolté dans un intervalle de temps plus faible, l’inquiry peut être interrompu.
Les états
Achèvement de l’interrogation
réponse ?
réponse ?
réponse ?
PAQUET INQUIRY 1Fréquence 1
PAQUET INQUIRY 2Fréquence 2
PAQUET INQUIRY 3Fréquence 3
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 51
Inquiry scan : recherche d’ interrogation� cet état ne concerne que les
dispositifs qui s’autorisent à être découverts par la procédure d’inquiry
Les états
réponse ?
réponse ?
réponse ?
réponse ?
PAQUET INQUIRY 1Fréquence 1
PAQUET INQUIRY 2Fréquence 2
PAQUET INQUIRY 3Fréquence 3
PAQUET INQUIRY 16Fréquence 16
standby
page scanpageinquiry scan
inquiry
slave response
inquiry response
master response
connected
Écoute sur la fréquence 3
?Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 52
Les étatsInquiry scan : recherche d’ interrogation� entrée dans l’état d’inquiry
scan : écoute sur une fréquence fixe dans l’attente de paquets d’inquiry.
� fréquence choisie parmi les 16 de la séquence de saut adéquate (dépend de l’adresse du dispositif)
réponse ?
réponse OK
réponse ?
PAQUET INQUIRY 1Fréquence 1
PAQUET INQUIRY 2Fréquence 2
PAQUET INQUIRY 3Fréquence 3
réponse ?
PAQUET INQUIRY 16Fréquence 16
standby
page scanpageinquiry scan
inquiry
slave response
inquiry response
master response
connected
Écoute sur la fréquence 3
?Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 53
Les états
Maître
Esclave
travail travailInquiryscan
Inquiry scan : recherche d’ interrogation� attente pendant un temps
suffisant à la couverture de 16 fréquences
� l’entrée dans l’état inquiry scan a lieu depuis l’état standby ou l’état connected ; si elle se fait depuis l’état connecté, les liaisons SCO en opération sont maintenues alors que les liaisons ACL sont suspendues.
� la présence de liaisons SCO peut prolonger les procédures d’inquiry
standby
page scanpageinquiry scan
inquiry
slave response
inquiry response
master response
connected
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 54
Les étatsInquiry response :réponse à l’interrogation� un message d’inquiry est reçu
lors de l’état inquiry scan� un paquet de réponse doit être
envoyé après une attente correspondant à un nombre aléatoire de slots afin d’éviter une collision éventuelle
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
PAQUET INQUIRY RESPONSE
PAQUET INQUIRY
Inquiry scan
Fréquence 3
Fréquence 3
Fréquence 4
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 55
Les étatsInquiry response :réponse à l’interrogation� Le paquet FHS contient
l’adresse du dispositif, son horloge, et des informations concernant la façon dont il accède aux états page scan.
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
AdresseHorlogeInformations
Fréquence 4PAQUET INQUIRY RESPONSE
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 56
Les étatsInquiry response :réponse à l’interrogation� Après avoir émis sa réponse,
il poursuit la phase d’inquiryscan sans attendre d’acquittement.
� Le dispositif en phase d’inquiry peut ensuite continuer cette procédure aussi longtemps qu’il le désire. Il pourra utiliser les informations contenues dans la réponse plus tard, pour passer à l’état page.
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Inquiry scan
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 57
Les étatsPage : mise en page� Nécessite uniquement
l’adresse du dispositif cible, mais la connaissance de son horloge accélère la procédure
� Le dispositif initiant la mise en page(paging) est appelé « maître ». À partir de l’information sur l’horloge, il détermine à quel endroit de la séquence de sauts l’esclave est en train d’écouter en mode page scan. Cette estimation peut se révéler fausse.
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Maître Esclave
Fréquence estimée
Écoute sur la fréquence 3Page
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 58
Les étatsPage : mise en page� Le maître détermine le Code
d’Accès au Dispositif (DAC) de l’esclave à partir de son adresse.
� Le maître envoie un message de page.� Il transmet ce message à un nombre de fréquences de la séquence de
sauts, à partir de la fréquence d’écoute estimée.
Fréquence d’écoute ?
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
PAQUET PAGE -nFréquence estimée - n
PAQUET PAGE -1Fréquence estimée - 1
PAQUET PAGE 0Fréquence estimée
PAQUET PAGE +nFréquence estimée + n
Maître Esclave
Page
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 59
Les étatsPage : mise en page� La séquence de sauts
consiste en 32 fréquences divisées en deux trains de 16.
� Le train A inclut les 16 fréquencesentourant la fré-quence prédite, et le train B les fréquences restantes.
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
PAGE -n
PAGE -1
PAGE 0
PAGE +n
PAGE +1
Train A Train B
Maître
Fréquence d’écoute ?
Esclave
Page
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 60
Les étatsPage : mise en page� Le maître ne sachant pas
si l’esclave est en mode page scan, il répète le train Npage fois, sauf s’il reçoit une réponse plus tôt.
� Si le train A échoue, la procédure est reprise avec le train B.� La mise en page dure 1,28 s si le train A aboutit, 2,56 s sinon.
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Maître
Fréquence d’écoute ?
Esclave
Page
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 61
Les étatsPage scan� Atteint depuis les états
standby ou connecté.� L’esclave écoute les paquets de
page adressés à son DAC pendant un intervalle Tw-page-scan à une fréquence sélectionnée parmi la séquence de page scan.
standby
page scanpageinquiry scan
inquiry
slave response
connected
inquiry response
master response
Maître Esclave
PAGE -1
PAGE 0
PAGE +1Page scan
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 62
slave response
Les états standby
page scanpageinquiry scan
inquiry
connected
inquiry response
master response
Page response :réponse à la mise en page� Lorsque l’esclave reçoit le
message de page, il répond par son paquet ID contenant son DAC à la fréquence du slot suivant le message de page
page scan
connected
Maître Esclave
PAGE
Page response
PAQUET ID
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 63
Les étatsPage response :réponse à la mise en page� Le maître entre dans l’état
master page response. � Il connaît la fréquence à laquelle
l’esclave est en train d’écouter� Il envoie son paquet FHS à l’esclave pour l’informer de son horloge, en
utilisant le DAC de l’esclave, à la fréquence d’écoute de celui-ci.
slave response
standby
page scanpageinquiry scan
inquiry
connected
inquiry response
master response
page scan
connected
Maître Esclave
FHS
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 64
Les étatsPage response :réponse à la mise en page� Le paquet FHS assigne à
l’esclave une adresse de membre actif sur 3 bits
� L’esclave acquitte de ce paquet en renvoyantson ID à sa fréquence de réponse.
� Il utilise utilise le paquet FHS pour déterminer le code d’accès au canal du nouveau piconet. Il calcule également l’offset de l’horloge à utiliser.
slave response
standby
page scanpageinquiry scan
inquiry
connected
inquiry response
master response
page scan
connected
Maître Esclave
PAQUET ID
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 65
Les étatsPage response :réponse à la mise en page� Le maître envoie le paquet
POLL à l’adresse de membre actif de l’esclave, en utilisant le saut de fréquence dépendant de l’horloge du maître et le code d’accès au canal.
� L’esclave doit acquitter avec n’importe quel paquet (ex. : NULL)� En cas de succès, la procédure est terminée et les dispositifs passent
en mode connectés.
slave response
standby
page scanpageinquiry scan
inquiry
connected
inquiry response
master response
page scan
connected
Maître Esclave
POLL
NULL
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 66
Les modes de Les modes de fonctionnementfonctionnement
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 67
Les modes de fonctionnementActive mode� L’unité participe activement au canal� Maître et esclaves transmettent sur les différents slots en alternance� Le maître transmet sur les slots pairs, l’esclave adressé sur les impairs� Des transmissions régulières sont effectuées pour conserver la
synchronisation de l’esclave avec le canal� Amélioration pour l’économie d’énergie : le maître informe l’esclave sur
l’instant où il sera adressé : l’esclave peut donc passer en mode sleepd’ici là.
� Les esclaves actifs sont contactés par le maître par polling.
Maître Esclave
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 68
Les modes de fonctionnementSniff mode� Mode faible consommation : activité d’écoute limitée� Le LMP du maître fournit à l’esclave un intervalle Tsniff,un offset Dsniff, et
un nombre de tentatives Nsniff.� L’esclave écoute les transmissions à un intervalle fixe Tsniff, sur le slot
d’offset Dsniff, et un nombre Nsniff de fois.
Hold mode� Le lien ACL vers l’esclave est suspendu : l’esclave ne supporte donc
plus les paquets ACL sur le canal, mais les éventuelles liaisons SCO continuent d’être supportées
� L’esclave conserve son adresse de membre actif.� Le maître et l’esclave se mettent d’accord pour la durée du mode hold
après laquelle l’esclave revient en mode actif
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 69
Les modes de fonctionnementPark mode� Mode très basse consommation : l’activité est minimale� L’esclave rend son adresse de membre actif et reçoit une adresse de
membre parqué sur 8 bits ainsi qu’une adresse de requête d’accès sur 8 bits également
� L’adresse de membre parqué est utilisée par le maître pour déparquer l’esclave alors que l’adresse de requête d’accès est utilisée par l’esclave afin de demander au maître d’être déparqué
� En plus de permettre l’économie d’énergie, le mode park permet au maître d’avoir plus de 7 esclaves dans le piconet.
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 70
Établissement de la Établissement de la liaisonliaison
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 71
Établissement de la liaisonDès l’état de connexion atteint� Le LMP démarre l’établissement de la liaison : il utilise ses paquets
LMP envoyés par la bande de base à la place des paquets L2CAP� Le paquet LMP consiste en un opcode, un ID de transaction, et un
contenu dépendant de l’opcode. � Les paquets sont envoyés aux LMP plutôt qu’au L2CAP et aux couches
hautes. � Les étapes d’établissement de la connexion peuvent résumées en :
� Les paquets POLL et leurs réponses sont utilisés pour échanger les informations de configuration sans interaction de l’hôte
� Envoi de LMP_host_connect_request� Réponse du disp. distant avec LMP_not_accepted ou LMP_accepted� L’esclave qui répond peut demander l’échange des rôles. Le premier
dispositif répond avec un paquet approprié pour accepter ou refuser la requête
� La liaison est maintenant établie au niveau du gestionnaire de liaison, mais l’application peut ne pas savoir quels sont les services disponibles
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 72
Service Discovery ProtocolProtocole de découverte des services� L’environnement Bluetooth change rapidement� Les services disponibles doivent être découvert � SDP : moyen pour les applications de découvrir les services
disponibles ainsi que leurs caractéristiques� Les périphériques proposant un service exécutent un serveur SDP, les
périphériques recherchant un service exécute un client SDP� Un client est exécuté par application, mais un périphérique exécute un
seul serveur SDP qui maintient un enregistrement pour chaque service proposé par le dispositif Bluetooth
� Un client peut demander à parcourir la liste des classes de services disponibles, ou chercher une classe de services particulière.
� Lorsqu’il y a peu de services, ils peuvent ne pas être divisés en classes et les handles sont directement envoyés à l’esclave, sinon des descripteurs de classes sont envoyés et le client peut effectuer une recherche détaillée au sein d’une classe.
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 73
Liaison L2CAPPermet d’accéder aux services� Ne permet d’établir que des liens ACL� Reposent sur le concept de canal, identifié par :
� l’adresse du périphérique � un identificateur de canal alloué au périphérique distant pour 1 connexion
� Chaque canal est full duplex, avec spécification de QoS dans les deux directions,
� Basée sur des datagrammes, sans streaming.� Un canal séparé est établi pour la demande de connexion, la
configuration, la déconnexion et l’écho� Paquet L2CAP : peu de surcharge, pas de CRC� S’appuie sur la bande de base pour la sécurité des données et la
livraison� Interaction avec les autres couches : évènements et actions
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 74
Liaison L2CAP� Évènements : messages reçus des couches inférieures (LMP ou HCI)
ou supérieures (applications)� Actions : réponses aux évènements renvoyées par la couche L2CAP
Séquence pour l’établissement d’une connexion� Évènement/Action 0 : demande de connexion d’une couche de plus
haut niveau, envoi d’un paquet de requête de connexion par le L2CAP au L2CAP distant. Paquet transporté par la bande de base.
� Évènement / Action 1 : réception du paquet précédent par le L2CAP distant, réponse par un paquet de réponse à la connexion. Le L2CAP aura interrogé l’application cible avant de prendre en charge le paquet.
� Évènement / Action 2 : réception du paquet de réponse et demande des paramètres de configuration (QoS)
� Évènement / Action 3 : demande de configuration et envoi de la réponse à la demande de configuration. Le L2CAP peut envoyer sa propre demande de configuration pour des paramètres additionnels
� Évènement / Action 4 : demande de configuration précédente et envoi de la configuration
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 75
Liaison L2CAPInitiator LP LP Target
LMPLP_ConnectReqL2CA_ConnectReq
LP_ConnectCfm
LP_ConnectInd
LP_ConnectRspL2CAP_ConnectReq
[W4_L2CA_ConnectRsp]
L2CAP_ConnectRsp
[W4_L2CAP_ConnectRsp]
L2CA_ConnectCfm
L2CA_ConfigReqL2CAP_ConfigReq
[CONFIG]
L2CA_ConnectInd
L2CA_ConnectRsp
L2CA_ConfigInd
L2CA_ConfigRsp
L2CA_ConfigReq
L2CAP_ConfigRsp
L2CAP_ConfigReq
[CONFIG]
L2CA_ConfigCfm
L2CA_ConfigIndL2CA_ConfigRsp
L2CAP_ConfigRsp
L2CA_ConfigCfm
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 76
Liaison L2CAPInitiator LP LP Target
L2CA_DisconnectReq
L2CA_DisconnectInd
[CLOSED]
L2CAP_DisconnectReq
L2CA_DisconnectRsp
[W4_L2CA_DisconnectRsp]
L2CA_DisconnectCfm
[W4_L2CAP_DisconnectRsp]
[CLOSED]
L2CAP_DisconnectRsp
Data
Data
Data
[OPEN]
[OPEN]
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 77
SécuritéSécurité
TM
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 78
SécuritéRéseau sans fil : accessible à tous� Les communications doivent être cryptées� L’accès aux périphériques doit être restreint aux dispositifs autorisés � Ces deux fonctions sont prises en charge par la bande de base,
l’application pouvant crypter elle-même les données pour augmenter la sécurité
� 4 valeurs sont utilisées :� L’adresse du dispositif, publique� Une clef d’authentification sur 128 bits, privée� Une clef de cryptage configurable de 8 à 128 bits, privée� Un nombre aléatoire
� La procédure nécessite de connaître un code PIN pour pouvoir accéder à un périphérique
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 79
SécuritéPrincipale étapes de la procédure� Une clef d’initialisation est générée à l’aide du code PIN, de la longueur
du code PIN, d’un nombre aléatoire et de l’adresse du périphérique� Une procédure d’authentification est engagée par le vérifieur en
utilisant une technique de réponse à un challenge :� Un nombre aléatoire est envoyé par le vérifieur� À partir de ce nombre, de la clef d’initialisation, et de l’adresse, le
demandeur peut générer une réponse connue par le point d’accès� Cette réponse est renvoyée et vérifiée par le vérifieur
� Le demandeur peut initier une procédure d’authentification du vérifieur équivalente
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 80
SécuritéPrincipale étapes de la procédure� Chaque unité Bluetooth possède une clef unit key stockée en ROM ;
celle-ci est cryptée à l’aide de la clef d’initialisation puis envoyée à l’autre unité qui la décrypte à l’aide de la clef échangée précédemment
� Le second dispositif combine cette clef avec sa propre unit key afin de générer un clef de liaison, si les deux périphériques gèrent cette technique ; sinon l’une des deux clefs sert de clef de liaison
� La clef de liaison est communiquée au premier dispositif et la clef d’initialisation est annulée
� Une clef de cryptage est générée à partir de la clef de liaison, d’un nombre aléatoire, et d’un nombre généré par une procédure prédéfinie.
� Cette clef de cryptage peut être générée indépendamment par les deux dispositifs sans échange d’information
� La clef d’authentification (de liaison) peut être conservée en mémoire pour une liaison ultérieure : toutes les étapes de génération etd’échange de clefs seront alors inutiles
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 81
Génération de la clef de liaisonGénération de la clef d’initialisation� Une clef d’initialisation est générée à l’aide du code PIN, de la longueur
du code PIN, d’un nombre aléatoire et de l’adresse du demandeur
E22
L’PIN
128
8L’
Mode 2
128
KINIT : clef d’initialisation
BD_ADDRB
IN_RANDA
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 82
Génération de la clef de liaisonAuthentification
E1BD_ADDRB
SRES’ =? SRES
AU_RANDA
VÉRIFIEUR (A)
KINIT
BD_ADDRB
AU_RANDA
DEMANDEUR (B)
KINIT
E1
AU_RANDA
SRES
SRESACO ACO
ACO : Authenticated Ciphering Offset
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 83
Génération de la clef de liaisonGénération de la clef d’unité� Une clef d’unité est génération lors de la première mise en service de
l’appareil, puis conservée dans une mémoire non volatile
E21
128 Mode 1
128
CLEF_UNITÉ
BD_ADDR
RAND48
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 84
Génération de la clef de liaison� la clef d’unité est utilisée pour générer la clef de liaison, en utilisant
l’une ou l’autre des deux méthodes suivantes :� si une des deux unités a une très faible mémoire, alors sa clef d’unité est
cryptée à l’aide de la clef d’initialisation, puis utilisée comme clef de liaison
- KBA = KA ⊕⊕⊕⊕ KINIT ⊕⊕⊕⊕ KINIT = KA
Génération de la clef de liaison
KINIT KINIT
KA
UNITÉ A UNITÉ B
KBA = KA
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 85
Génération de la clef de liaison� la clef d’unité est utilisée pour générer la clef de liaison, en utilisant
l’une ou l’autre des deux méthodes suivantes :� si les deux unités le supportent, une clef combinée dépendant des clefs
d’unité des deux dispositifs est utilisée :• Les deux unités génèrent deux clefs aléatoires LK_RANDA et LK_RANDB
• les clefs LK_KA et LK_KB sont créées à partir des clefs précédentes et de BD_ADDRA et BD_ADDRB, via l’algorithme E21.
- LK_KA = E21(LK_RANDA, BD_ADDRA)- LK_KB = E21(LK_RANDB, BD_ADDRB)
• Les nombres LK_RANDA et LK_RANDB sont échangés en leur appliquant un XOR avec la clef de liaison courante :
- A envoie K ⊕⊕⊕⊕ LK_RANDA
- B envoie K ⊕⊕⊕⊕ LK_RANDB
• Chaque unité peut donc reconstituer la clef LK_RANDx de l’autre unité, et créer la clef de liaison finale par simple XOR entre les deux clefs d’unité :
- KAB = LK_KA ⊕⊕⊕⊕ LK_KB
- KBA = LK_KB ⊕⊕⊕⊕ LK_KA
Génération de la clef de liaison
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 86
Générée pour chaque nouvelle liaison � Dérivée de la clef de liaison courante, de l’offset de chiffrement (COF :
Ciphering Offset) de 96 bits et d’un nombre aléatoire de 128 bits, à l’aide de l’algorithme E3 :
Génération de la clef de cryptage
E22
128 Mode 2
128
KC : clef de cryptage
COF
EN_RAND
�si la clef de liaison est celle du maître, le COF est dérivé du BD_ADDR du maître,
�sinon, le COF prend la valeur de l’ACO calculée lors de la procédure d’authentification
KAB
96
128
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 87
Générée pour chaque nouvelle liaison � Une nouvelle clef est générée
Génération de la clef de cryptage
E22
128 Mode 2
128
KC : clef de cryptage
COF
EN_RAND
KAB
96
128
– Camille Diou – LICM – Université de Metz – [email protected] – http://www.licm.sciences.univ-metz.fr – 88
BibliographieBluetooth Core Specification, Bluetooth Profiles Specification, http://www.bluetooth.com/dev/wpapers.aspBluetooth Primer, Aman KansalRenaud Bonnet, Les profiles Bluetooth, Décision Micro, 24/12/2002 : http://www.01net.com/article/199493.html
Top Related