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 – Les vidéos

  • 5.1 - Bluetooth - 6/6 - Test Qualify Branding Your Product Vidéo en Anglais

    Cette video en anglais vous présente concrêtement et précisement le protocole Bluetootfh avec son chapitre 6 : Bluetooth Test Qualify Branding Your Product.

    Bluetooth - 6/6 - Test Qualify Branding Your Product

  • 5.2 - Bluetooth - 5/6 - Attribute Protocol Vidéo en Anglais

    Cette video en anglais vous présente concrêtement et précisement le protocole Bluetootfh avec son chapitre 5 : Bluetooth Attribute Protocol & Generic Attribute Profile.

    Bluetooth - 5/6 - Attribute Protocol

  • 5.3 - Bluetooth - 4/6 - Low Energy Vidéo en Anglais

    Cette video en anglais vous présente concrêtement et précisement le protocole Bluetootfh avec son chapitre 4 : Bluetooth Low Energy.

    Bluetooth - 4/6 - Low Energy

  • 5.4 - Bluetooth - 3/6 - Basic Rate/Enhanced Vidéo en Anglais

    Cette video en anglais vous présente concrêtement et précisement le protocole Bluetootfh avec son chapitre 3 : Bluetooth Basic Rate/Enhanced Data Rate/High Speed.

    Bluetooth - 3/6 - Basic Rate/Enhanced

  • 5.5 - Bluetooth - 2/6 - Architecture Vidéo en Anglais

    Cette video en anglais vous présente concrêtement et précisement le protocole Bluetootfh avec son chapitre 2 : Bluetooth Architecture.

    Bluetooth - 2/6 -  Architecture

  • 5.6 - Bluetooth - 1/6 - Introduction Vidéo en Anglais

    Cette video en anglais vous présente concrêtement et précisement le protocole Bluetootfh avec son chapitre 1 : Bluetooth Introduction.

    Bluetooth - 1/6 - Introduction

  • 5.7 - Présentation basique de ce qu'est le Bluetooth Vidéo en Français

    Cette vidéo très sympatique vous présente clairement ce qu'est Bluetooth.

    Présentation basique de ce qu'est le Bluetooth

  • 5.8 - Reportage sur la communication par Bluetooth Vidéo en Anglais

    Video de l'émission de la RTBF Au Quotidien présentant un reportage sur la communication par Bluetooth.

    Reportage sur la communication par Bluetooth

  • 5.9 - IPv6 on Bluetooth Smart and BLE Mesh Vidéo en Anglais

    This video first introduces IPv6 and Mesh over Bluetooth Smart; and details the salient features of Mindtree’s IP Offerings. In this demo, Mindtree’s IPV6 and BLE-Mesh IP can be smarty combined to build a comprehensive solution. Individual nodes in a Bluetooth network are addressed from the cloud using the IPv6 technology. Further, Mesh is used to overcome the 10m range limitation in BLE, without compromising IP connectivity.

    IPv6 on Bluetooth Smart and BLE Mesh

  • 5.10 - Support IP Smart Objects over Bluetooth Smart Vidéo en Français

    The Internet of Things is the latest technical problem and opportunity. At this time there is no one standard; there are at least 150 companies and alliances all proposing to tell us how this will work. The CEO of Samsung is correct: none of us can do this alone. This presentation will describe a particular plan for organizing the IoT space: using IP Smart Object application over a stack including 6LoWPAN, IPv6, Internet Protocol Support Profile (IPSP) and the Bluetooth Smart™ (Bluetooth Low Energy) transport.

    Support IP Smart Objects over Bluetooth Smart

6 – Suivi du document

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

7 – 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 :

Commentaire et discussion

5 commentaires sur la page : “IP sur Bluetooth”

  1. Bonjour dans votre article vous expliquer qu’un maître 7 esclaves et que lui même n’eut être esclave et maître en même temps

    Vous expliquer aussi que chaque canal aura une valeur différente

    Peut on utiliser ce protocole de communication
    Pour transférer de l audio en utilisant ce sous syteme à 7 canaux

    Typiquement peut via du Bluetooth et comment séparer et tansmètre un signal audio 7.1 sur un double système esclave un maître recevant le codage complet transmettant à 2 esclaves un esclave prenant le caisson de basse un esclave gérant les 7 voix
    Renvoyant à 7 maîtres cabale de ressortir chaque voix sur un canal Bluetooth et ainsi gérer 7 enceintes Bluetooth ?

    D avance merci Remy

  2. Lu Berlinot,

    Regarde du côté Libpcap, ça va t’aider. Sinon, si tu reste en mode socket, passe alors en mode socket Raw.

    @+
    Sebastien FONTAINE

  3. Bonjour,

    Ravissant d’avoir des éclaircissements sur le sujet merci.
    J’aimerais tout de même savoir si tout ce qui a été dit précédemment reste valable également pour de l’IP sur wifi
    O delà, je me suis proposé d’écrire un code c qui étant donné une mobile station connecté à un point d’accès wifi, le code récupère ses adresses IP et MAC et également ceux du point d’accès; mais je sais trop par où commencer.
    Je considère la plateforme Android par exemple et suppose que je peux récupérer via le code les adresses mac et ip de ma tablette Android. Comment alors récupérer via le code les @ IP et MAC du point d’accès.
    Je me dis que comme la socket est un mécanisme de communication d’application réseau, ARP et RARP des protocoles de résolution d’adresses, ils devrait tous intervenir dans mon code, je ne sais si j’ai raison et si oui comment les faires intervenir.

Laisser un commentaire

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