IP sur BlueTooth
Par
Julien Cayssol
1 - Introduction
1.1 - Historique
1.2 - Présentation de bluetooth
2 - Présentation de Bluetooth du point de vue technique
2.1 - Bluetooth Radio et Baseband / Link Controller
2.1.1 - Liaison à connexion synchrone orientée (SCO)
2.1.2 - Liaison à connexion asynchrone (ACL)
2.2 - L2CAP
2.3 - SDP (Service discovery Protocol)
2.3.1 - Mode de détection
2.3.2 - Stockage des informations
2.3.3 - Contrôle des erreurs
3 - GAP profile
4 - Bluetooth IP
4.1 - RFCOMM
4.2 - Utilisation de BNEP
4.3 - Poste mobile esclave
4.4 - Poste mobile maître
4.5 - Adaptation de la couche IP pour périphériques mobiles
4.6 - Adaptation de la couche IP pour la station de base
5 - Références
6 - Discussion autour de la
documentation
7 - Suivi du document
Février 1998 : Création du Bluetooth SIG, les
principaux constructeurs présents dans ce groupe sont
Ericsson, IBM, Intel, Nokia, Toshiba
Mai 1998 : Annonce publique du Bluetooth SIG
Juillet 1999 : Le groupe Bluetooth SIG publie la spécification 1.0A
Décembre 1999 : Sortie de la version 1.0B
Décembre 1999 : Le groupe Bluetooth SIG compte maintenant 9 société
après que
3COM, Lucent, Microsoft,
Motorola les ai rejoint.
En 2004 : Le groupe Bluetooth SIG compte maintenant plus de 2000 sociétés.
Présentation du domaine d'application de Bluetooth en informatique :

Bluetooth voit aussi son application pour la télévision et également dans
d'autres domaines où les câbles sont
très utilisés.
La suite de ce document sera surtout axé sur l'utilisation de Bluetooth dans
l'informatique.
Buts et caractéristiques de cette technologie :
Il s'agit d'une technologie destinée à remplacer les câbles.
Dans sa version 1 le débit ne dépasse pas 1Mb/s
(La version 2 fonctionnera à 10Mb/s).
La portée est de l'ordre de 10m dans la version 1
(Le version 2 prévoie des distances de 100m).
Pourquoi ne pas utiliser Wi-fi étant données les performances de Bluetooth :
Bluetooth offre l'avantage de la
consommation, en effet la connexion sans fil est surtout utilisée pour les
appareils mobiles, et donc n'étant pas
reliés directement au secteur.
Bluetooth est à plus faible consommation que Wi-fi. Le second avantage de cette
technologie est le prix. La
création de Bluetooth SIG ( ) en 1998 regroupait les plus grands constructeurs
Ericsson, IBM, Intel, Nokia,
Toshiba.
En 2004 on peut compter plus de 2000 sociétés qui participent au Bluetooth SIG.
Au lancement, le pari de cette
technologie était de réussir à produire des puce Bluetooth à moins de 5$.
Représentation des couches Bluetooth :

Dans cette partie, je vais expliquer les différentes couches qui composent
Bluetooth.
La couche Bluetooth radio est une couche totalement matérielles.
L'avantage de Bluetooth en terme radio par rapport aux autres technologies est
l'adaptation qu'il peut réaliser
en effectuant des sauts de fréquences 1600 fois par seconde.
La bande Bluetooth s'étend de 2.402 GHz à 2.480GHz. Cela représente 79 canaux
d'une largeur de 1MHz.
En France il est possible d'utiliser uniquement 23 canaux.
Ces sauts de fréquences permettent de limiter les collisions.
Un réseau Bluetooth est composé d'un Maître et de plusieurs esclaves. Un maître
peut avoir jusqu'a 7 esclaves.
Pour permettre la création de grands réseaux, un maître peut être esclave d'un
autre réseau. Dans la norme
Bluetooth un maître et ses esclaves est appelé piconet.
Représentation des piconets :

Les éléments Bluetooth d'un même piconet utilisent le même canal. Pour permettre
la discussion de tout les éléments du piconet, il y a une répartition en time
slots de 625 micro secondes. Chronogramme d'une discussion entre éléments Bluetooth
:

Ce type de liaison est utilisé pour la transmission de voix, puisqu'il y a besoin
de "temps réel" pour ce type
d'application. Bluetooth utilise dans ce cas des créneaux réservés afin de
réduire au maximum le délai. Si l'on est
en fonctionnement mode "Point To Point", la transmission serra Bidirectionnel.
Ce type de connexion fonctionnant
en mode "Temps réel" il n'y a pas de retransmission possible.
Il est possible d'atteindre 64Kb/s afin de respecter la norme de codage, sachant
qu'un maître peut gérer jusqu'à
3 liens de ce type.
Ce type de connexion à été conçu pour échanger des données. Avec ce type de
connexion il est possible
d'effectuer un broadcast. Les débits de ce type de connexion sont de 723.2 Kbps
en sortie avec un entrant à 57.6 Kb/s. En mode symétrique on peut aller jusqu'à 433.9Kb/s.
Le couche L2CAP a pour rôle de transformer les données en paquets pour la couche
Baseband. Son rôle est
également la gestion des connexions logiques entre plusieurs éléments Bluetooth.
Encapsulation à partir de L2CAP :

SDP est la couche chargée de la découverte d'éléments Bluetooth. Son rôle est la
détection et l'intégration de
nouveaux éléments Bluetooth dans le réseau.
Schéma de l'architecture.

Pour faciliter la découverte d'éléments Bluetooth, les opérations de découvertes
sont faites entre serveurs de
clients. Un élément Bluetooth peut être à la fois client et serveur. Un client
va donc contacter un serveur Bluetooth
et ce serveur Bluetooth va lui envoyer la liste des éléments Bluetooth qu'il
connaît avec les services découverts.

Au niveau du contrôle d'erreurs il en
existe de deux types sur bluetooth.
Tout périphérique Bluetooth est obligatoirement placé dans un profile. Les
profiles ont été mis en place pour
faciliter les connexions et l'interopérabilité entre les matériels.
Un profile va définir les couches qui vont être utilisées (RFCOMM, BNEP,
TCS,...)
Il existe 13 profiles, GAP (Generic Access Profile) qui permet de détecter des
produits Bluetooth, et le SDAP
(Service Discovery Access Profile ) qui a pour but de connaître les services
disponibles dans les produits qui ont été détectés par le GAP. Citons les autres rapidement :
Cordless Telephony Profile
Intercom Profil
Serial Port Profile
Headset Profile
Dial-up Networking Profile
Fax Profile
LAN Access Profile
Generic Object Exchange Profile (GOEP)
Object Push Profile
File Transfer Profile
Synchronisation Profile
Structure des services découverts par le GAP :
Son adresse BD_ADDR
Son nom
Sa clef (Bluetooth PIN)
Sa class et son périphérique
IP peut fonctionner au dessus de deux couches : soit
au dessus de PPP, cela
sous-entend que nous utilisons RFCOMM en dessous, soit avec BNEP, dans ce cas là BNEP repose directement sur
L2CAP
Il s'agit d'une couche de transport. Cette couche réalise le rôle d'émulation et
de multiplexage d'un port série
(RS232) sur la couche L2CAP. Cette couche émule tous les signaux du port RS232
(TD,RD,RTS,CTS,DSR,DTR,DCD,RI).
Cette couche va assigner à chaque application un numéro logique qui correspondra
à l'émulation d'un port série.
L'utilisation des couches supérieures va dépendre des applications que l'on
souhaite faire fonctionner au-dessus
de Bluetooth.
Présentation du spectre où se situe bluetooth. La bande de fréquence réservée à
Bluetooth en France est de
2.44.65 à 2.4835. Schéma des paquets :

BNEP simplifie les choses, car il n'y a plus PPP. BNEP ne fournit pas une
émulation RS-232. On arrive donc à un schéma avec BNEP :

Dans le cas où les mobiles sont esclaves, on est donc limité à 7 mobiles par
station de base. Station de base maître :
Dans ce cas précis, la station de base est esclave d'autant de Mobile.
Station de base esclave :

La couche IP a trois états possibles :
Discovery : Le périphérique est dans cet état au démarrage. C'est dans cette
étape qu'il va chercher les
stations de base les plus proches dont il a généralement aucune information. Il
y a une procédure permettant
d'obtenir uniquement les stations de base. Cette procédure va être répétée tant
qu'une station de base n'a
été trouvée. Une procédure de connexion est déclenchée pour passer dans l'état
Configuration.
Configuration : La station de base va donner un état de maître ou esclave au
mobile. Le mobile va ensuite
établir une connexion bidirectionnelle L2CAP sur la connexion existante. C'est
à cette étape que la MTU
des datagrammes de la couche L2CAP est négociée. La station de base va envoyer
un datagramme contenant
la MTU maximum qu'il peut accepter. Le mobile va ensuite confirmer la valeur en
la renvoyant. A ce
moment là si il n'y a pas eu d'erreur, on passe en phase Connected.
Connected : Une fois arrivé dans cette étape pour la première fois, il faut
affecter une IP au mobile. Pour
cela DHCP peut être utilisée, ou alors, si Mobile IP est activé il n'y aura pas
de configuration à modifier sur
le Mobile.
Etats de Bluetooth IP pour l'éléments mobile :

Il faut aussi gérer la perte de lien. Pour détecter cela, la spécification
Bluetooth propose "Link supervision
timer". Ce compteur est fixé à une certaine valeur et est remis à sa valeur
initiale à chaque réception de paquet. Si
aucun paquet n'est arrivé avant l'arrivée à 0 de ce timer, une alerte est
déclenchée.
Cette valeur est fixée par défaut à 20 minutes, il faut choisir une bonne valeur
pour ce timer car une trop faible
valeur peut provoquer beaucoup d'erreurs, et donc une perte de temps en
reconnexion. Une valeur trop grande va
laisser trop de Mobiles connectés alors qu'ils ne sont plus dans la zone, ou
autre.
La couche pour la station de base est
plus simple que pour le Mobile (figure suivante).
De ce côté on retrouve
uniquement deux états. Son but principal est de maintenir la connexion. Cette
couche a aussi pour but de découvrir
de nouveaux éléments Bluetooth
Configuration : Cet état a pour but de configurer et d'établir la connexion.
Durant cette phase, la station de
base est maître et le nouvel élément est esclave. A la fin de cet état, suivant
la configuration décidée, la station
de base peut passer esclave. Durant cette phase de configuration, le canal L2CAP
est créé et configuré.
La configuration du canal est initiée par la station de base. Comme expliqué
précédemment, la station de
base va donner sa MTU. La station de base passera ensuite dans l'état connecté
après confirmation de cette
MTU.
Connected :
On retrouve une base de correspondance entre le numéro de canal au niveau de
L2CAP avec l'IP associé.
Etats de Bluetooth IP pour la station de base :

STMicroelectronics, Technical Note Bluetooth Tutorial[en ligne], 2001.
Disponible sur : <http
://www.st.com/stonline/prodpres/dedicate/bluetoot/document/tutorial.pdf>
(consulté
le 24.04.2004).
Simon Baatz, Matthias Frank, Rolf Göpffarth et al , Handoff Support for
Mobility with IP Bluetooth[en
ligne], 2000.
Disponible sur : <http
://web.informatik.uni-bonn.de/IV/Mitarbeiter/baatz/LCN2000_rp.pdf> (consulté le
24.04.2004).
ATMEL Corporation, The Bluetooth Wireless Technology White Paper, 2000.
Disponible sur : <http
://www.atmel.com/dyn/resources/prod_documents/DOC1991.PDF>(consulté le
24.04.2004).
David Kammer, Gordon McNutt, Brian Senese, Bluetooth Application Developer's
Guide. Syngress Media,
Janvier 2002. 520 Pages. ISBN 1928994423.
Michael Miller, Discovering Bluetooth. Sybex, Juillet 2001. 304 Pages. ISBN
: 0-7821-2972-2.
Vous pouvez poser toutes vos questions,
vos remarques et vos expériences à propos de l'IP sur Bluetooth. Pour cela,
rendez-vous sur le
Forum "TCP-IP".
Le 27 avril 2004, par
Julien Cayssol, création du document.
|