IP sur Bluetooth

IP sur Bluetooth

1 – Introduction

1.1 – Historique

Voici les dates historiques de Bluetooth :

  • 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.

1.2 – Présentation

Présentation du domaine d’application de Bluetooth en informatique :

bluetooth presentation domaine application 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 : il 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$.

2 – Présentation de Bluetooth du point de vue technique

Représentation des couches Bluetooth :

bluetooth presentation point vue technique

Dans cette partie, je vais expliquer les différentes couches qui composent Bluetooth.

2.1 – Bluetooth Radio et Baseband / Link Controller

La couche Bluetooth radio est une couche totalement matérielles. Son avantage 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 un maître et ses esclaves sont appelés piconet.

Représentation des piconets :

bluetooth representation piconets

Les éléments Bluetooth d’un même piconet utilisent le même canal. Pour permettre la discussion de tous 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 :

bluetooth piconets master slave

2.1.1 – Liaison à connexion synchrone orientée (SCO)

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 sera Bidirectionnelle. 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.

2.1.2 – Liaison à connexion asynchrone (ACL)

Ce type de connexion a é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.

2.2 – L2CAP

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 :

bluetooth l2cap dm3 dm5 baseband

2.3 – SDP (Service discovery Protocol)

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.

2.3.1 – Mode de détection

Schéma de l’architecture.

bluetooth mode detection application clients serveurs

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

2.3.2 – Stockage des informations

bluetooth stockage informations service record

2.3.3 – Contrôle des erreurs

Au niveau du contrôle d’erreurs il en existe de deux types sur bluetooth.

3 – GAP profile

Tout périphérique Bluetooth est obligatoirement placé dans un profil. Les profiles ont été mis en place pour faciliter les connexions et l’interopérabilité entre les matériels. Un profil 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
  • Sa class et son périphérique

4 – Bluetooth IP

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

4.1 – RFCOMM

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 dont la bande de fréquence réservée en France est de 2.44.65 à 2.4835. Schéma des paquets :

bluetooth rfcomm rs232 header payload

4.2 – Utilisation de BNEP

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 :

bluetooth utilisation bnetethernet header

4.3 – Poste mobile esclave

Dans le cas où les mobiles sont esclaves, on est donc limité à 7 mobiles par station de base. Station de base maître :

bluetooth poste mobile esclave station base

4.4 – Poste mobile maître

Dans ce cas précis, la station de base est esclave d’autant de Mobile. Station de base esclave :

bluetooth poste mobile maitre station base

4.5 – Adaptation de la couche IP pour périphériques mobiles

La couchee 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 pas é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é, 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 :

bluetooth adaptation couche ip etat 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.

4.6 – Adaptation de la couche IP pour la station de base

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 :

bluetooth etat bluetooth ipstation base nouvelle connexion

5 – Suivi du document

Création et suivi de la documentation par Julien Cayssol et _SebF

6 – Discussion autour d’IP sur Bluetooth

Vous pouvez poser toutes vos questions, faire part de vos remarques et partager vos expériences à propos d’IP sur Bluetooth. Pour cela, n’hésitez pas à laisser un commentaire ci-dessous :

X - Commentaire et discussion

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *