**************** ****************
FACULTÉ DES SCIENCES FACULTY OF SCIENCES
**************** ****************
DÉPARTEMENT DEPARTMENT OF
D’INFORMATIQUE COMPUTER SCIENCES
PROBLEMATIQUE DE L’INTEGRATION DE LA
VOIX ET DU TEXTE DANS UN
ENVIRONNEMENT SANS FILS :
APPLICATION A LA TECHNOLOGIE
BLUETOOTH.
Sous la direction de :
REMERCIEMENTS
DEDICACES
RESUME
Les télécommunications occupent une place importante dans le quotidien des hommes qui ont de
plus en plus besoin de communiquer, d'échanger des informations, à n'importe quel moment,
quelques soit l’endroit où ils se trouvent, avec des exigences plus ou moins accrues sur la qualité
des transmissions. Le secteur des télécommunications sans fil a connu une évolution considérable
ces deux dernières décennies dans le monde avec la naissance de plusieurs solutions comme le
GSM, l’UMST, le Wifi, le Bluetooth et bien d’autres. Mais seulement, le cout de déploiement et
l’accès aux équipements utilisés par ces solutions représentent des obstacles pour les pays en voie
de développement qui souffrent toujours des problèmes de couverture et d’accès réseau dans
certaines zones.
Pour contribuer à pallier à ces manquements, nous avons proposé une solution de téléphonie
basée sur la technologie Bluetooth qui regorge de plusieurs atouts et qui est en perpétuelle
évolution. Pour cela, nous avons défini une architecture de communication basée sur des concepts
nouveaux comme les nœuds Bluetooth que nous étions contraints de définir en raison de la
particularité de notre solution qui faisait face à la faible portée du Bluetooth (100 mètres pour les
émetteurs de classe I) et aux contraintes liées à la gestion de la voix. Ceci a conduit à la définition
de deux protocoles l’un de formation de scatternet entre les nœuds Bluetooth et l’autre de routage
que nous avons validé en utilisant l’outil de validation formelle AVISPA. Nous avons ensuite conçu
et réalisé une application de communication qui permet une transmission bidirectionnelle des flux de
voix entre deux périphériques Android par Bluetooth.
Néanmoins, la conception et la fabrication des nœuds routeurs comme des périphériques à part
entieres, la gestion de la sécurité dans les communications et la gestion de la mobilité entre les
périphériques Bluetooth sont des améliorations à faire dans les travaux futurs en vue de mettre sur
pied une plate-forme de téléphonie complète et plus abouti comme celle du GSM.
Mots clés: Bluetooth, téléphonie, voix, nœuds routeur, protocole, routage, synchronisation,
piconet, scatternet
ABSTRACT
Telecommunications occupies an important place in the lives of men who increasingly need to
communicate, exchange information, at any time, some of where they are, with more or less
demands increased quality transmissions. The area of wireless communications has evolved
considerably over the last two decades in the world with the birth of several solutions such as GSM,
UMST, Wi-Fi, Bluetooth and many more. But only the cost of deployment and access to equipment
used by these solutions represent barriers for developing countries which still suffer of network
coverage and network access problems in some areas.
To help overcome these shortcomings, we have proposed a telephony solution based on
Bluetooth technology packed with several advantages and is constantly evolving. For this, we
defined a communication architecture based on new concepts such as Bluetooth router nodes that
we were forced to define due to the uniqueness of our solution which faced the narrow scope of
Bluetooth (100 meters for issuers class I) and constraints related to the voice management. This has
led to the definition of two protocols one of scatternet formation between nodes Bluetooth and other
routing that we validated using the AVISPA formal validation tool. We then designed and
implemented a communications application that allows bidirectional transmission of voice streams
between two Android devices via Bluetooth.
However, the design and manufacture of devices such as router nodes, the management of
security in communications and mobility management between Bluetooth devices are
improvements to be made in future works to develop a complete and resulted telephony platform
like GSM.
Keywords: Bluetooth, telephony, voice, router nodes, protocol, routing, synchronization,
piconet, scatternet.
GLOSSAIRE
ACL : Asynchronous Connection-Less IARP (IntrAzone Routing Protocol) : protocole
AES : Advanced Encryption Standard utilisé par le protocole ZRP pour les
communications locales à une zone
ARPANET : Advanced research Project
IBSS : Independent Basic Service Set
Agency Network: réseau à commutation de
paquet mis en place en 1969 et qui donna IEEE : Institute of Electrical and Electronics
naissance à Internet. Engineers
BBS : Bluetooth Base Station IERP : IntErzone Routing Protocol) : protocole
BD_ADDR : Bluetooth Device Address: C’est utilisé par le protocole ZRP pour les
l’adresse matérielle des périphériques Bluetooth communications entre les zones
équivalent à l’adresse Mac d’une carte réseau. ISM : Industrial, Scientific and Medical :
Ces adresses sont codées sur 48bits et sont bandes de fréquences libres utilisés dans des
gérées par l’IEEE Registration Authority. cadre scientifiques, industriels et medicales
BSC : Base Station Controller L2CAP : Logical Link Control & Adaptation
Protocol
BSS : Base station Subsystem
BSS(2) : Basic Service Set [NEI 10] MIMO : Multiple-Input Multiple-Output)
BTCP : Bluetooth Topologie Control OFDM : Orthogonal Frequency Division
Protocol : c’est un protocole de formation de Multiplexing).
scatternet dans les réseaux Bluetooth. OLSR: Optimized link state routing
BTS : Base Transceiver Station protocol
CEPT : Conférence Européenne des PAN : Personal Area Network
administrations des Postes et PCI : Peripheral Component Interconnect
Télécommunications
PCMCIA : personal computer Memory Card
CRC : contrôle de redondance cyclique
International Association
DBF : Distributed Bellman-Ford
RATP : Régie autonome des transports parisiens
DSDV : Destination-Sequenced Distance Vector
SCO : Synchronous Connection-Orientated
EBSS : Extended Basic Service Set
SIG : Bluetooth Special Interest Group
FHSS : Frequency Hope Spread Spectrum),
SMS : Short Message Service
F-TDMA: Frequency Time Division Multiple TTL (Time To Live)
Access
USB : Universal Serial Bus
GPRS: General Packet Radio Service
VoIP: Voice Over Internet Protocol, également
GSM : Global System for Mobile appelée téléphonie IP ou téléphonie sur Internet.
Communication
WAP : Wireless Application Protocol
HCI : Host Control Interface : fait le lien entre WECA : Wireless Ethernet Compatibility
la couche physique et la couche applicative de la Alliance
pile de protocole Bluetooth.
Wi-Fi : Wireless Fidelity
i.e. : c’est-à-dire WWiSE : World-Wide Spectrum Efficiency
ZRP (Zone Routing Protocol)
I.1. CONTEXTE
I.2. PROBLEMATIQUE
Même s’il est avéré que le secteur des télécommunications a connu une remarquable évolution
dans le monde ces 20 dernières années, les problèmes de coûts de communication et de couverture
réseau, constituent toujours un défi majeur pour les pays en voie de développement. Le Bluetooth
1
http://fr.wikipedia.org/wiki/General_Packet_Radio_Service
2
http://fr.wikipedia.org/wiki/Wi-Fi
3
http://www.wi-fi.org/discover-and-learn/wi-fi-direct
4
http://fr.wikipedia.org/wiki/Infrarouge
conçu dans le but premier de relier divers équipements sans fils tels les imprimantes, les oreillettes
sans fil, les souris, les claviers, les téléphones portables, les PDA, les GPS, etc., peut être vu comme
une solution future en terme de réduction des coûts dans le domaine de la téléphonie mobile car
intègre plusieurs solutions de communication adaptées à la téléphonie notamment grâce à son profil
de téléphonie sans fil CTP (Cordless Telephony Profil) et biens d’autres. Ceci étant, trois questions
majeures ont retenu notre attention à savoir:
Premièrement comment utiliser les différentes fonctionnalités du Bluetooth pour proposer une
solution de téléphonie de proximité de bonne qualité et à moindre coût (pour ne pas dire
gratuite) entre deux utilisateurs situés dans un voisinage proche?
Ensuite, comment briser les barrières posées par la faible portée du Bluetooth pour étendre cette
solution sur une distance de plus de 100 mètre ?
Et enfin comment adapter cette solution au contexte socio-économique des pays en voie de
développement, afin de pallier au problème de couverture réseau ? (qui relève en générale du
manque de moyens financiers et aussi de volonté de la part des pouvoirs publiques et des
opérateurs de téléphonies qui ne trouvent pas d’intérêt à s’installer ou à déployer leurs
solutions dans des zone à faible densité de population et à faible pouvoir d’achat).
Nos motivations sont nombreuses tout d’abord, la montée en puissance du Bluetooth qui,
bien qu’étant une technologie jeune (1994), gagne de plus en plus du terrain dans le domaine de la
communication sans fils notamment depuis la sortie de sa version 2.0 en 2006 qui a vu son débit
passer de 1 Mb/s à 100 Mb/s. Elle apparaît même comme la technologie WLAN (Wireless Local
Area Network) et WPAN (Wireless personal Area Network) la plus aboutie en matière de gestion de
la Qualité de Service [VAN 07]. En plus de cela, elle opère dans les bandes de fréquences ISM
(Industrial, Scientific and Medical) dont l'exploitation ne nécessite pas de licence et la plupart des
équipements mobiles aux jours d’aujourd’hui sont dotés de puce Bluetooth.
Compte tenu de la situation économique de nos pays (en voie de développement) et compte tenu
du besoin de plus en plus croissant en communication des populations (sur de petites distances
comme au sein d’un campus universitaire, au sein des locaux d’une entreprise, ou simplement entre
deux personnes distantes de moins de 100 mètres) aussi bien dans les pays développés que dans
ceux en voie de développement comme le Cameroun, nous avons jugé nécessaire d’explorer la
possibilité de faire de la téléphonie en utilisant la technologie sans fil Bluetooth. Ceci avec comme
objectif permettre aux utilisateurs des périphériques dont les plates-formes implémentent le
standard Bluetooth, de communiquer librement entre eux par voie ou par texte sans se soucier des
coûts de communication sur des courtes distances et aussi sur des distances plus grandes que la
portée d’un terminal Bluetooth de classe 1 (100mètres).
plusieurs domaines d’applications en terme de téléphonie. Nous pouvons citer entre autres le
domaine universitaire, médical, entreprise, publicité de proximité, éducation, sécurité de proximité,
1
Cours pour lesquels plusieurs filaires sont concernées et sont rassemblées dans une même salle.
téléphoniques en interne pourraient tout simplement déployer notre application dans leur structure
afin de minimiser les coûts en matière de téléphonie.
I.5. BILAN
Le déploiement d’une solution de téléphonie par Bluetooth peut être un bon facteur de réduction
des couts de communication dans différents domaines. Les solutions existantes ne sont pas pour
ainsi dire à mettre à l’écart ou à éliminer complètement. Chacune de ces solutions a sa particularité.
Des solutions comme le GSM, malgré le fait qu’elles soient coûteuses, sont incontournables pour le
moment. En plus d’être un chalenge, nous avons opté pour le Bluetooth vue les différents avantages
qu’elle offre et vue son expansion dans la plupart des périphériques à travers le monde. En plus de
cela, le Bluetooth est mieux adapté au contexte socio-économique des pays en voie de
développement où les téléphones dotés de wifi ou de wifi direct ne sont pas très rependus. Le
Bluetooth étant limité par la portée, notre solution visera en plus de permettre la communication
vocale via Bluetooth, de briser ces limites avec l’architecture que nous allons proposer.
Pour mener à bien nos travaux et afin d’atteindre nos objectifs, nous articulerons notre travail
ainsi qu’il suit :
Dans le 0 qui constitue l’introduction générale, il était question de montrer l’intérêt de faire de
la téléphonie par Bluetooth. Ceci en rappelant le contexte, les applications, la problématique,
les approches connues avec leur inadéquation, notre approche et enfin nos motivations et nos
objectifs.
Dans le chapitre 2 nous ferons un état de l'art c'est-à-dire nous présenterons les insuffisances des
approches et/ou des modèles connus avec leurs insuffisances par rapport au problème à
résoudre.
Le chapitre 3 pour sa part présentera de façon plus explicite la solution proposée. Ceci en faisant
une analyse des contraintes particulières (technologiques, applicatives, généricité) liées au
problème spécifique que nous voulons résoudre et en présentant l’approche le modèle et
l’architecture de la plate-forme avec analyse des propriétés. En faisant une étude de la
complexité et des performances avec comparaison aux solutions connues. On fera aussi une
étude des enjeux économiques de la solution.
Le chapitre 4 concerne la mise en œuvre de la solution. Elle consiste en la présentation de la
plate-forme logicielle qu’on aura développée ainsi qu’en la présentation des résultats des
différentes simulations qu’on aura eu à effectuer.
Dans le chapitre 5 nous procèderons à la validation de la solution par les différents protocoles
qui auront été définis.
II.1. LE GSM
II.1.1. Description
Le GSM (Global System for Mobile Communication ou Groupe Spécial Mobile) est un
système de communication cellulaire. Il fait partie des réseaux mobiles les plus répandus dans le
monde surtout en Europe, en Asie, en Afrique et au Moyen-Orient avec plus d’1 milliard
d’abonnées dans le monde depuis 2004 [DJO 10] Il fut mis au point en 1982 par la Conférence
européenne des administrations des postes et télécommunications (CEPT).
Le GSM est un réseau commuté ainsi, les ressources ne sont allouées que pour la durée de la
conversation, comme lors de l'utilisation de lignes téléphoniques fixes. Il est basé sur la méthode
d’accès F-TDMA (Frequency Time Division Multiple Access) et utilise deux plages de fréquences
différentes. La première est réservée pour les communications des mobiles vers les stations de base
(890-915 MHz et 1710-1785 MHz pour le GSM 1800) et la deuxième dans le sens des stations de
base vers les mobiles (935-960 MHz et 1805-1880 MHz pour le GSM 1800 [DJO 10] Le
déploiement d’une solution GSM nécessite un ensemble d’équipements de base:
Le BTS (Base Transceiver Station) : c’est un émetteur-récepteur gérant une cellule. Il gère la
couche physique sur la voie radio : modulation, démodulation, CRC (contrôle de redondance
cyclique), multiplexage, saut de fréquence, chiffrage-déchiffrage des données. Il gère également
la couche liaison de donnée avec le mobile.
Le BSC (Base Station Controller) : c’est un commutateur qui réalise une première concentration
de circuit. S'occupe de la gestion de la ressource radio (allocation des canaux de
communication).
Le MSC (Mobile-services Switching Center) : c’est un commutateur pour des entités mobiles. Il
gère l'établissement de circuits de communication à travers le réseau, les SMS et l'exécution du
hand-over. Certains MSC peuvent être des GMSC (Gateway MSC), et servent alors de
passerelle avec un autre réseau de téléphonie.
Le HLR (Home Location Register) base de données centralisant les informations d'identification
et de localisation de chaque abonné local du réseau.
Le VLR (Visitor Location Register) base de données agissant à la fois comme un tampon évitant
des accès trop fréquent au HLR. Généralement placé à proximité d'un MSC (souvent dans le
même équipement). Ces bases de données contiennent les données des abonnés présents dans
une zone géographique de façon permanente ou temporaire [MAR 01].
Ici, nous allons d’abord décrire brièvement la technologie Wi-Fi, ensuite, nous allons donner ses
applications dans le domaine de la téléphonie et enfin les limites de cette technologie par rapport à
notre approche.
jusqu'à 300 mètres dans un environnement dégagé. La plage de fréquence utilisée est la
bande des 2.4 GHz, avec 3 canaux radio disponibles. [IEEb 99]
IEEE 802.11c : cette norme est en fait un pontage de la norme IEEE 802.11 vers la norme
IEEE 802.1d. Elle n'a pas d'intérêt pour le grand public. Il s'agit uniquement d'une
modification de la norme IEEE 802.1d afin de pouvoir établir un pont avec les trames IEEE
802.11 (niveau liaison de données). [IEEd 04]
IEEE 802.11d : (Internationalisation) son but est de permettre une utilisation internationale
des réseaux locaux IEEE 802.11. Elle consiste à permettre aux différents équipements
d'échanger des informations sur les plages de fréquence et d’utiliser les puissances de
transmission autorisées dans le pays d'origine du matériel [IEEd 01].
IEEE 802.11e (Amélioration de la qualité de service) : elle vise à améliorer la qualité de
service au niveau de la couche liaison de données. Ainsi cette norme a pour but de définir
les besoins des différents paquets en termes de bande passante et de délai de transmission de
façon à permettre notamment une meilleure transmission de la voix et de la vidéo [IEEe 05].
IEEE 802.11f (Itinérance ou roaming en Anglais): La norme IEEE 802.11f [IEEf 03] est une
recommandation à l'intention des vendeurs de point d'accès pour une meilleure
interopérabilité des produits. Elle propose le protocole Inter-Access point (roaming
protocol) permettant à un utilisateur de changer de point d'accès de façon transparente lors
d'un déplacement, quelques soient les marques des points d'accès présentes dans
l'infrastructure réseau.
IEEE 802.11g : cette norme offre un haut débit (54 Mbps théoriques, 30 Mbps réels) sur la
bande de fréquence des 2.4 GHz. La norme IEEE 802.11g [IEEg 03] a une compatibilité
ascendante avec la norme IEEE 802.11b, ce qui signifie que des matériels conformes à la
norme IEEE 802.11g peuvent fonctionner en IEEE 802.11b.
IEEE 802.11h : cette norme vise à rapprocher la norme IEEE 802.11 du standard Européen
(HiperLAN2, d’où le "h" de IEEE 802.11h) et être en conformité avec la réglementation
européenne en matière de fréquence et d'économie d'énergie. [IEEh 03]
IEEE 802.11i [IEEi 04]: cette norme a pour but d'améliorer la sécurité des transmissions
(gestion et distribution des clés, chiffrement et authentification). Elle s'appuie sur le
protocole de sécurité AES (Advanced Encryption Standard) et propose un chiffrement des
communications pour les transmissions utilisant les technologies IEEE 802.11a, IEEE
802.11b et IEEE 802.11g.
IEEE 802.11Ir : elle a été élaborée pour utiliser les signaux infra-rouges. Cette norme est
désormais dépassée techniquement.
IEEE 802.11j : c’est à la réglementation japonaise de la norme IEEE 802.11 un peu comme
la norme IEEE 802.11h qui est à la réglementation européenne [IEEj 04].
IEEE 802.11k : Permet l’optimisation d’allocation des ressources du réseau sans fil selon la
qualité de chaque liaison [IEEk 08].
IEEE 802.11n: WWiSE (World-Wide Spectrum Efficiency). La norme IEEE 802.11n est
disponible depuis le 11 septembre 2009. Le débit théorique atteint les 300 Mbit/s (débit réel
de 100 Mbit/s dans un rayon de 100 mètres) grâce aux technologies MIMO (Multiple-Input
Multiple-Output) et OFDM (Orthogonal Frequency Division Multiplexing). En avril 2006,
des périphériques à la norme IEEE 802.11n commencent à apparaître basés sur le Draft 1.01.
Des équipements qualifiés de « pré-N » sont disponibles depuis 2006 : ce sont des
équipements qui mettent en œuvre une technique MIMO d'une façon propriétaire, sans
rapport avec la norme IEEE 802.11n. La norme IEEE 802.11n a été conçu pour pouvoir
utiliser les fréquences 2,4 GHz ou 5 GHz. Les premiers adaptateurs IEEE 802.11n
actuellement disponibles sont généralement simple-bande à 2,4 GHz, mais des adaptateurs
double-bande (2,4 GHz ou 5 GHz, au choix) ou même double-radio (2,4 GHz et 5 GHz
simultanément) sont également disponibles. Le IEEE 802.11n saura combiner jusqu’à 8
canaux non superposés, ce qui permettra en théorie d'atteindre une capacité totale effective
de presque un gigabit par seconde. [IEEn 09]
IEEE 802.11s : (Réseau Maillé) : elle est actuellement en cours d’élaboration. Le débit
théorique atteint aujourd’hui 10 à 20 Mbit/s. Elle vise à implémenter la mobilité sur les
réseaux de type Ad-Hoc. Tout point qui reçoit le signal est capable de le retransmettre. Elle
constitue ainsi une toile au-dessus du réseau existant. Un des protocoles utilisé pour mettre
en œuvre son routage est OLSR. [JOS 06], [WST 12].
IEEE 802.11u2 : Cette norme a été adoptée le 25 février 2011. Elle vise à faciliter la
reconnaissance et la sélection de réseaux, le transfert d'informations en provenance de
réseaux externes, en vue de permettre l'interopérabilité entre différents fournisseurs de
services payants ou avec des hot-spots 2.0. Elle définit aussi des normes en termes d'accès à
des services d'urgence. À terme, elle doit entre-autres faciliter le délestage des réseaux 3G
de téléphonie mobile.
k IEEE 802.11v : cette norme a été adoptée le 2 février 2011. Elle décrit des normes de
gestion des terminaux en réseau: (reporting) gestion des canaux, gestion des conflits et
interférence, service de filtrage du trafic.
1
Le Draft 2.0 est sorti en mars 2007, les périphériques basés sur ce brouillon seraient compatibles avec la version
finale du standard 802.11n.
2
http://en.wikipedia.org/wiki/IEEE_802.11u
Le mode Ad Hoc : il permet de connecter directement les terminaux équipés d’une carte
Wi-Fi, sans utiliser un matériel tiers tel qu’un point d’accès. Ce mode est idéal pour
interconnecter rapidement des machines entre elles sans matériel supplémentaire. Le réseau
formé est appelé IBSS (Independent Basic Service Set).
Le mode pont (Bridge) : ceci est généralement adapté aux points d’accès car il sert à
connecter un ou plusieurs points d'accès entre eux pour étendre un réseau, par exemple entre
deux bâtiments. La connexion se fait au niveau de la couche 2 du modèle OSI. Un point
d'accès doit fonctionner en mode racine « root bridge » et les autres s'y connectent en mode
« bridge » pour ensuite retransmettre la connexion sur leur interface Ethernet. Chacun de ces
points d'accès peut éventuellement être configuré en mode pont avec connexion de clients.
Ce mode permet de faire un pont tout en accueillant des clients comme le mode
infrastructure.
1
http://www.netgear.fr/home/products/wireless-range-extenders/wireless-range-extenders/WN3000RP.aspx,
http://www.netgear.fr/images/WN3000RP_fr65-17219.pdf
C’est une nouvelle norme de la Wi-Fi Alliance [WIF 10] qui a pour but d’offrir la possibilité
aux équipements Wi-Fi de communiquer en paire à paire de façon réelle, sans avoir besoin de
1
Bob Kahn pionnier dans le développement du protocole TCP-IP, http://en.wikipedia.org/wiki/Bob_Kahn
2
ARPANET (Advanced Research Projects Agency Network) est le premier réseau à transfert de paquets développé
aux États-Unis. Il deviendra la base du transfert de données sur Internet : http://fr.wikipedia.org/wiki/ARPANET
3
http://www.rfc-ref.org/RFC-TEXTS/741/index.html
4
http://en.wikipedia.org/wiki/VocalTec#cite_note-Tov-0
5
http://en.wikipedia.org/wiki/Alon_Cohen
passer par un point d’accès. En réalité le Wi-Fi supporte les connexions en mode ad-hoc entre deux
équipements mais le Wi-Fi Direct permet de se passer des tâches de configuration qui s’avèrent très
souvent difficiles pour les non-initiés1. Ceci facilite la communication entre périphériques tel que :
les appareils numériques, les scanner, les imprimantes, un peu comme les connections USB. Le
Wi-Fi direct est totalement compatible avec le Wi-Fi classique. Il fonctionne pratiquement de la
même manière que le Bluetooth à la différence que le Wi-Fi Direct qui a hérité des propriétés du
Wi-Fi classique qui surpasse le Bluetooth en termes de portée, de bande passante et de débit [NEI
10].
A ce jour on ne dénombre encore aucune application téléphonique faite à base du Wi-Fi direct.
Car même s’il est vrai qu’elle a beaucoup d’atouts, cette technologie est encore très jeune (2009)
donc pas encore tout à fait au point et son intégration dans les téléphones mobiles n’est pas encore
totalement aboutie. Ceci étant, il n’est intégré que dans très peu de téléphones mobiles de nos jours
parmi lesquels la Samsung Galaxy S qui fut le premier téléphone mobile à recevoir la certification
Wi-Fi Direct en novembre 2010 [PIN 11]. En plus tout comme le Wi-Fi, le Wi-Fi Direct est limité
par la surconsommation en énergie et son coût très levé.
II.4. L’INFRAROUGE
La technologie infrarouge permet de relier deux dispositifs dotés de ports à infrarouge. Les
infrarouges sont des rayonnements électromagnétiques invisibles, de longueur d'onde comprise
entre 0,8 µm2 (lumière rouge visible) et 1 mm (micro-ondes). Les radiations infrarouges furent
découvertes en 1800 par l'astronome anglais William Herschel3, qui constata, en étudiant le spectre
solaire, l'existence d'un échauffement notable dans une zone située en deçà du rouge.
Les rayons à infrarouge ont plusieurs applications dans le domaine de la communication sans fils
les plus courantes. Ils sont préférés aux ondes radio, car ils n'interfèrent pas
avec les autres signaux électromagnétiques comme les signaux de
1
Ceux qui ne sont pas habitués ou qui n’ont jamais fait une configuration Wi-Fi en mode ad-hoc
2
µm : micromètre
3
Herschel, sir William (1738-1822), astronome anglais d'origine allemande, fondateur de l'astronomie stellaire. (
[ENC 09]]
4
IrDA : Infrared Device Association : organisation fondé en 1993 pour promouvoir les standards de communication
point à point basés sur Infrarouge.
II.5. LE BLUETOOTH
II.5.1. Historique
Le Bluetooth fut créé en 1994 par le fabricant suédois Ericsson. En 1998, plusieurs grandes
sociétés dont IBM, Intel, Nokia et Toshiba s'associent à Ericsson pour former le Bluetooth Special
Interest Group (SIG). En juillet 1999, sortie de la spécification 1.0. Le SIG compte 9 membres en
décembre 1999 après que les entreprises 3COM, Lucent, Microsoft, Motorola les a rejoint. Le 28
mars 2006, le SIG annonce la deuxième génération de la technique sans fil Bluetooth, qui est
capable d'assurer des débits cent fois supérieurs à l'ancienne version, passant donc de 1 Mb/s à 100
Mb/s (soit 12,5 Mo/s)1. Cette technique, utilisée dans les téléphones mobiles, périphériques
informatiques et autres appareils portables comme les assistants personnels (PDA) a vu sa vitesse de
transmission augmenter année après année, lui permettant ainsi d'être utilisée pour les vidéos hautes
définitions et l'échange de fichiers avec un baladeur MP3 par exemple.
Le terme « Bluetooth » fut inspiré par le nom d’un roi danois du 10éme siècle entre les années 940
et 981 appelé « Harald Ier» et surnommé par son peuple « Harald Blåtand » (qui voulait dire
homme à la dent bleue). Il fut connu pour avoir réussi à unifier les États du Danemark, de Norvège
et de Suède. Le logo2 de Bluetooth, est d'ailleurs inspiré des initiales de Harald (H : ) et Blåtand
(B: ) en alphabet runique3. [VAL 07]
IEEE 802.15.3 est un standard qui permet d’avoir le haut débit avec la technologie Bluetooth. Il
GHz (fréquence utilisée également par le Wi-Fi). Ce standard n'est toutefois pas encore validé ;
définit la norme UWB (Ultra-Wide Band), qui met en œuvre une technologie très spéciale,
caractérisée par l’émission à une puissance extrêmement faible. Les débits atteints sont de l’ordre
IEEE 802.15.4 est un standard en cours de développement pour des applications sans fils à bas
du gigabit par seconde sur une distance de 10 mètres [GUY 06].
débit et à faibles coûts. Il est actuellement utilisé par Zigbee pour ses couches basses.
1
http://fr.wikipedia.org/wiki/Bluetooth
2
Logo Bluetooth
3
Alphabet runique : Le plus récent futhark (ou alphabet runique) nordique à 16 runes (caractère alphabétique dont
se servaient les anciens scandinaves) :
éléments de la couche physique ensuite ceux de la couche applicative en passant par le HCI (Host
Control Interface) qui fait le lien entre les deux couches.
1
Les bandes de fréquence ISM sont réservées pour l'industrie, la science et la médecine et leur utilisation et
gratuite.
2
Slot : intervalle de temps nécessaire pour qu’une trame se propage en aller/retour, entre les deux extrémités d’un
support de transmission. Après ce délai, la station émettrice peut être assurée que sa trame n'a pas été collisionné
3
FHSS : Etalement de spectre par saut ou évasion de fréquence. Ou plus simplement, c’est une technique de saut de
fréquence suivant un séquence pseudo aléatoire déterminé par le maitre dans un piconet. [RAB 04]
Bluetooth. Par exemple on peut avoir plusieurs applications tournant sur un même
périphérique qui cherchent simultanément à accéder à diverses ressources Bluetooth avec
lequel leur périphérique est connecté. Il peut aussi servir à faire passer une connexion IP par
Bluetooth pour accéder à internet.
TCS : Telephony Control Protocol Specification Binary
Il s’agit du protocole utilisé pour interagir avec les applications téléphoniques par
l’utilisation des connections L2CAP. Ce protocole définit le contrôle de signalisation d'appel
pour l'établissement des appels vocaux et de données entre appareils Bluetooth. [SIG 01]
SDP (Service Discovery Protocol). Ce protocole permet à un appareil Bluetooth de
rechercher d'autres appareils et d'identifier les services disponibles. Il définit la manière dont
un client Bluetooth agit pour découvrir les différents services Bluetooth disponibles chez le
serveur et les caractéristiques de ces services [SIG 10a] [GRY 01].
OBEX (Object Exchange). Ce service permet de transférer des données grâce à OBEX,
protocole d'échange de fichiers IrDA.
23. PBAP : Phone Book Access Profile 24. HIDP : Human Interface Device Profile.
Il existe une hiérarchie entre profil, et donc des dépendances entre eux. Nous allons illustrer de
façon explicite chacun des profils qui nous intéressent dans la suite.
Figure 7 : piconet
Figure 8 : Scatternet
1
Scatter = dispersion.
1
RATP : Régie autonome des transports parisiens, c’est un établissement public français fondé en 1948, qui
exploite le réseau de transport public parisien. Il a été créé en vue de palier aux problèmes de circulations dans la
capitale française. Site officiel http://www.ratp.fr
Il existe aussi plusieurs autres applications de type talkie-walkie sur la plateforme Android
Market1 ou sur Google application2, on peut par exemple citer entre autre : « Virtual-Walkie-
talkie » ou « Znuggler - Walkie-Talkie PTT ». Néanmoins ces applications en dehors du fait
qu’elles ne soient pas open source, sont complètement dédiées à la plateforme Android et limitées à
une utilisations en point à point entre deux utilisateurs distants de moins 10mètres. Par conséquent,
elles ne sont pas adaptées à une utilisation massive ou grand-publique.
Vu que nous voulons faire de la téléphonie de proximité, il serait bénéfique pour nous d’utiliser
un composant qui n’est ni gourmand en énergie ni en espace. Ce qui est bien le cas du Bluetooth qui
consomme très peu d’énergie et dont la puce est relativement très petite et par conséquent peu
gourmande en espace dans l’équipement qui la contient. En plus de cela, contrairement à
l’infrarouge, les équipements Bluetooth n’ont pas besoin d’être en contact visuel pour pouvoir
communiquer [PAS 05]. Le plus impressionnant avec le Bluetooth est surtout son mécanisme
sophistiqué de détection d’équipements et de service, sa capacité à pouvoir établir des connexions
entre périphériques, à effectuer des transferts de fichiers et à gérer la déconnexion sans nécessiter
l’intervention de l’utilisateur [SIN 05]. En faisant le tour des technologies sans fil existantes, le
Wifi-direct est celle qui a le plus attiré notre attention. On pourrait même dire serait la mieux
adaptée du point de vue fonctionnalités pour la solution que nous voulons mettre sur pied. Mais
comme nous avons pu le constaté, elle n’est pas encore complètement abouti est ses applications
sont limité à une poigné de périphériques spécialisés qui ne sont pas à la solde de tout le monde.
1
http://www.android.com/market/, c’est la plateforme proposé Android pour la publication des applications
Android. Elle compte actuellement plus de 2500 publications.
2
http://code.google.com/p/
III.1. INTRODUCTION
Parmi les diverses solutions de téléphonies qui existent de nos jours, on a pu constater qu’elles
ne sont généralement pas adaptées au contexte socio-économique des pays en voie de
développement du fait des contraintes liées aux équipements surpuissants qu’ils demandent pour
leur fonctionnement. Nous allons dans cette partie présenter de façon explicite les divers contours
de notre application en allant de l’analyse des contraintes à l’architecture de la plate-forme en
passant par l’approche et le modèle que nous allons vous présenter.
La mise en place d’une solution de téléphonie de proximité est liée à plusieurs contraintes
notamment : les contraintes technologiques, les contraintes applicatives, en qualité de service
(QoS) et les contraintes de généricité.
1
SDP est la base de la recherche de service sur tous les équipements Bluetooth
services Bluetooth disponibles chez le serveur et les caractéristiques de ces services [SIG
10b] [GRY 01].
On a aussi le protocole L2CAP (Logical Link Control & Adaptation Protocol) que nous
n’allons pratiquement pas utilisée car il ne gère que les connexions asynchrones ACL.
RTP (RealTime Transport Protocole) qui fournit de bout en bout des fonctions de réseaux
de transport appropriés pour des applications qui transmettent des données en temps réel,
comme l'audio, la vidéo. [RFC 96]
RTCP (Real-time Transport Control Protocole) assure le transport temps réel des données et
permet le suivit de leur livraison de manière évolutive [RFC 96]
Nous verrons plus bas dans ce chapitre les différents protocoles de routage et de formation de
scatternet que nous allons utiliser.
1
Informations superflues et inutiles.
2
Autonomie : capacité à pouvoir fonctionner sans apport d’énergie supplémentaire.
logicielle. La partie logicielle qui interagit directement avec les applications et services, et la partie
matérielle qui est directement liée à la puce Bluetooth, est commune à toutes les plates-formes.
Cas 1 : A et B sont soit à proximité l’un de l’autre, soit couverts par le même nœud routeur
I
A B
I
N. R
N. R=Nœud routeur Bluetooth
A B
R R R R
If(isVinicity(A,B)){
createCommunicationChannel (A,B) ;
}else{
sendCommunicationRequest (Ra, A,B) ;
}
// La méthode suivante est une méthode récursive.
Void sendCommunicationRequest(RouterNode R, Node N1, Node N2){
RouterNode R’=nextRouterNode() ;
If (isVinicity(R,N2)) {
createCommunicationChannel(N1,N2) ;
}else {
sendCommunicationRequest(R’, N1,N2) ;
}
}
// la méthode isVinicity(…)
Boolean isVinicity (Node N1, Node N2){
Return vrai si (N1 est voisin de N2);
}
Algorithme 1: création du canal de communication entre deux points A et B qui souhaitent communiquer
Nous allons dans la suite décrire notre solution ainsi que l’ensemble des éléments qui entreront
en jeu dans sa mise en œuvre. Notamment, ce que nous entendons par nœuds routeurs, le protocole
de formation du scatternet et le protocole de routage seront utilisés. Ensuite, nous présenterons
l’architecture graphique de notre solution prenant en compte tous ces éléments. Nous allons d’abord
commencer par présenter les deux cas de communications qu’offre notre solution.
1
Pour les échanges de données en streaming (technologie qui permet de diffuser les contenus audio-vidéo en
continue au fur et à mesure du téléchargement) dans le réseau Bluetooth. A ne pas confondre aux sockets TCP qui est
son semblable dans les réseaux internet. On a aussi les sockets L2CAP pour les transfère des data gramme un peu
comme les sockets UDP.
Il est vrai que dans la technologie Bluetooth, on distingue les sockets RFCOMM et les sockets
basés sur le protocole OBEX (Object Exchange) [STE 05]. Nous avons choisi les sockets
RFCOMM car ils sont mieux adaptés à la diffusion des contenus multimédia en continu en
occurrence la voix (qui fait l’objet de notre attention) en plus, il est natif à la technologie Bluetooth
contrairement aux sockets basés sur le protocole OBEX.
Dans ce schéma, nous avons introduit plusieurs concepts et plusieurs éléments que nous allons
décrire plus en détail dans la suite.
Il peut jouer deux principaux rôles notamment celui de routeur et de relaie. Dans le cas où il joue
le rôle de relai, il est appelé BTS Bluetooth. Et dans le cas où il est joue le rôle de maître dans un
piconet, on l’appellera BSS Bluetooth pour Bluetooth Base Station Subsystem. Ceci dit, il aura
pour principales fonctions :
La formation et de la gestion des piconets
La réception et le relaie des différents signaux radio. C’est-à-dire la réception des demandes de
communication et l’acheminement de création du canal de communication entre l’expéditeur et
le destinataire. En d’autres termes, il sera chargé de créer un canal de communication entre deux
utilisateurs souhaitant communiquer.
Le cryptage et le décryptage des données circulant sur le réseau
Le routage des paquets entre les différents terminaux Bluetooth
La gestion de l’activation et de la désactivation d’un lien vers une station mobile Bluetooth.
Eventuellement la gestion de la mobilité des nœuds mobiles c’est-à-dire le handover.
Il se chargera aussi de la manager le réseau, les abonnés (les utilisateurs), les services, et biens
d’autres.
Pour garantir une bonne visibilité des équipements et une plus grande portée des nœuds routeurs,
nous aurons besoin d’un pylône qui pourra être placé au-dessus d’un immeuble ou d’un bâtiment
de plus de deux étages. Voici en quelques sortes à quoi ressemble notre Nœud routeur dans la figure
ci-dessous. La petite case au pied du pylône représente une salle de contrôles où sont logés les
différents serveurs qui serviront de à interpréter et à traiter le flux d’information qui arrive au
niveau du nœud.
III.4.2.1. Les protocoles de formation de scatternet existants dans les réseaux ad-hoc:
Plusieurs protocoles existent pour la formation des scatternets dans les réseaux Bluetooth. Nous
pouvons citer entre autre :
Le protocole BTCP (Bluetooth Topologie Control Protocol) proposé par Salonidis Theodoros en
2001 [SAL 01] BTCP est constitué de trois principales phases :
Phase1 : Election d’un coordinateur
C’est dans cette phase qu’un coordinateur est choisi en accord avec tous les autres périphériques.
Le procédé sera décrit dans notre protocole plus bas. La compétition de leadership continue tant
qu’il y a encore des candidats non conquit par le futur SUPER MASTER.
Phase2 : Définition des rôles
Le coordinateur détermine et informe les autres périphériques sur le rôle qu’ils auront à jouer
lors de la formation du scatternet.
Après la phase1, un coordinateur est élu. Il commence d’abord par déterminer le nombre total N
de nœud qu’il a conquis.
Si N<8 alors il forme rapidement un piconet en envoyant un message de connexion à tous les
périphériques « perdants » dont il a collecté les paquets FHS.
Si N>7 il y aura formation de plus d’un piconet. Le coordinateur ayant une vue globale du
réseau, va décider du rôle que chaque périphérique aura à jouer dans le future scatternet. Si la
formation du scatternet doit respecter un critère particulier il devra être tout simplement ajouté dans
les paquets FHS que les autres périphériques communiquent au coordinateur pendant la phase
d’élection. En considérant les paramètres par défaut, le coordinateur détermine le nombre de
piconets qu’il devra former. Pour cela, il utilise la formule suivante :
√
, 1≤N≤36 [SAL 01]
Où N est le nombre de nœud devant former le scatternet. Comme on le remarque dans la relation,
N≤36 pour limiter la saturation du réseau. Après la détermination de P (nombre de piconets), le
coordinateur choisi en plus de lui P-1 autres nœuds qui seront maîtres dans leur piconet et
autres nœuds pour qui serviront de pont entre les différents piconets [SAL 01]. Ensuite le
coordinateur distribue à chaque nouveau maître la liste des nœuds qui seront leurs esclaves sans
oublier les siens.
Après cette la définition des rôles, pour chaque maître, le coordinateur possède une liste
d’esclave SLAVELIST(X) et une liste des ponts BRIDGELIST(X). Chaque entrée de ces listes
contient le paquet FHS du nœud associé de façon à permettre au maître correspondant d’envoyer
des messages unicast de connexion à chacun de ses esclaves.
Ainsi, le coordinateur se connecte aux différents maîtres qu’il aura choisi formant ainsi un
piconet temporaire afin de leur transmettre à chacun leurs listes respectives de SLAVELIST et de
BRIDGELIST. Il leur ordonne ensuite d’établir la connexion avec leurs différents esclaves (phase3)
avant de détruire le piconet temporaire qu’il avait formé.
On a ensuite le protocole de Ching Law [CHI 02] qui dans son article « A new Bluetooth
Scatternet Formation Protocol » paru en 2002 proposent un nouvelle algorithme de formation de
scatternet en optimisant le nombre de piconets et assurant l’appartenance pour un nœud donné à
cette contrainte, nous avons ajouté dans les messages FHS 1 [ICU 03] une constante permettant
d’identifier les nœuds routeurs de façon générale les nœuds routeurs et de limiter la participation
des autres nœuds mobiles à l’élection. Puisque ces nœuds sont fixes, cette phase ne se fera que lors
de l’initialisation du réseau ou lors de la modification du réseau comme nous l’avons précisé
précédemment.
Au début de l’élection, chaque nœud routeur possède un variable appelée VOTE qui est
initialisée à 1. Pendant le processus, lorsque deux nœuds se découvrent, ils comparent la valeur de
leur variable VOTE. Celui qui aura le plus grand nombre de vote i.e. dont la valeur de la variable
VOTE sera la plus grande, est considéré comme le gagnant (X) et l’autre comme le perdant (Y) de
la manche. Ainsi, le perdant transfère au gagnant la totalité des paquets de contrôle FHS qu’il aura
gagné ou conquis des autres nœuds routeurs avant de passer en mode PAGE SCAN (mode dans
lequel il ne devra plus recevoir d’INQUIRY MESSAGES) pour attendre un message de connexion
de la part du SUPER MASTER. Le gagnant incrémente alors son nombre de vote à la valeur de
celui du perdant (VOTE(X)= VOTE(X) + VOTE(Y)) et passe en mode INQUIRY2 et INQUIRY
SCAN3 i.e. il envoi des messages « inquiry » à tous les autre périphériques en même temps qu’il en
attend. La compétition de leadership continue ainsi tant qu’il y aura encore des candidats.
Une question demeure tout de même en suspens à savoir : comment le nœud X sait s’il est le
gagnant final? En fait, chaque nœud possède une variable temporelle Ω qu’il compare au temps
mis depuis la dernière élection ou confrontation qu’il a eu. Lorsque ce temps est dépassé, il se
considère directement comme le gagnant. Avant l’expiration de ce temps, il est comme nous l’avons
dit en écoute permanente du réseau (INQUERY, INQUERY SCAN). A la fin de la compétition, si on
avait N participants à l’élection, le super master X aura les paquets FHS de tous les N-1 autres
nœuds et sera le coordinateur du processus de formation du scatternet. Nous avons préféré ne pas
déterminer la fin de l’élection par le nombre de nœud en compétition pour éviter qu’un nœud en
disfonctionnement ne crée une rupture qui ferait boucler les autres nœuds indéfiniment.
1
FHS : Frequency Hopping Synchronization
2
INQUIRY : Lorsqu’un périphérique désire découvrir les nouveaux dispositifs dont il ne connait pas l’adresse.
3
INQUIRY SCAN : Lorsqu’un périphérique désire recevoir des paquets « inquiry », il entre en mode « inquiry
scan
4
BRIDGE=pont
Le nombre de piconet à former (en occurrence le nombre de maître) est déterminé par la
relation suivante:
�
�= , 1 ≤ K ≤ 7, 1 ≤ N ≤ 36. Relation 1: Nombre de piconets
�
A noter que deux piconets ne peuvent partager plus d’un pont. Cette contrainte nous permet de limiter le
nombre de ponts et par occurrence la saturation du réseau.
Après tous ces calculs, le SUPER MASTER procède alors à l’attribution des rôles à chaque
nœud routeur en envoyant à chacun des masters sa liste des nœuds pont (BRIDGELIST) et à chaque
nœud pont les ID de ses différents nœuds maîtres (nous limitons cette liste à deux pour le moment
en attendant étudier plus en profondeur les différents paramètres qui nous permettront d’augmenter
ce nombre). Pour l’établissement de la connexion, entre les différents masters, le SUPER MASTER
donne l’ordre aux maîtres d’envoyer les demandes de connexion à leurs différents nœuds ponts pour
ainsi initier la formation des piconets. Lorsqu’un nœud pont reçoit une demande de connexion de la
part d’un maître, il vérifie si cette demande provient de l’un de ses deux maîtres. Si tel est le cas, il
accepte la demande et renvoie une notification à ce dernier s’il est le deuxième master à lui envoyer
la demande. Sinon il rejette tout simplement la demande. Lorsqu’un maître reçoit des messages de
notification de tous ses nœuds ponts, on peut considérer que la formation du scatternet se passe dans
les meilleures conditions. La connexion étant établies entre les différents maîtres, vient alors la
phase de formation des piconets complets avec les nœuds mobiles.
1
Handover
reçoit qu’une seule demande après un temps ‘α’ qu’on fixera en fonction de la densité du trafic, il
n’aura pas besoin de vérifier la force du signal.
1
Algorithme distribué de Bellman et Ford : http://fr.wikipedia.org/wiki/Algorithme_de_Bellman-Ford
contenant toutes les destinations possibles dans le réseau, le nombre de saut nécessaire pour
atteindre chacune de ces destinations et le numéro de séquence de correspondant à chaque potentiel
nœud destination. Le numéro de séquence permet d’éviter les boucles de routages et de distinguer
les anciennes routes des nouvelles après chaque mise à jour. Lorsqu’un nœud reçoit de nouvelles
données de routages il les compare aux siennes. pour déterminer la meilleure route à utiliser pour
communiquer, il utilise tout simplement le numéro de série et choisi la route ayant le plus grand
numéro de série. Voici par exemple une topologie réseau et la table de routage correspondant au
nœud M1 :
1
http://fr.wikipedia.org/wiki/B.A.T.M.A.N.
2
http://wiki.freifunk.net/ Freifunk communauté qui travaille dans le développement des applications liées aux
réseaux maillées.
3
http://en.wikipedia.org/wiki/Optimized_Link_State_Routing_Protocol
4
http://fr.wikipedia.org/wiki/B.A.T.M.A.N.#B.A.T.M.A.N._Version_3
5
Ethernet est un protocole de réseau local à commutation de paquets http://fr.wikipedia.org/wiki/Ethernet
Le principe de fonctionnement de B.A.T.M.A.N. est assez simple : chaque nœud envoie de façon
régulière sur le réseau des messages de broadcast appelés ici OGM 1 (Originator Message) [AXE
07] pour informer ses voisins de son existence. Chaque voisin qui reçoit le message le revoit à son
tour à tous ses voisins pour les informer de l’existence de l’initiateur d’origine du message. C’est
ainsi que de proche en proche, chaque nœud du réseau est au courant de l’existence de ce nœud.
Pour trouver le meilleur chemin vers tous les voisins, chaque nœud B.A.T.M.A.N. mémorise pour
chaque origine le voisin qui lui a transmis le plus grand nombre de message provenant de cette
même origine. Pour limite les saturations du réseau, B.A.T.M.A.N. renvoie le message de réponse
uniquement par le nœud qu’il aura mémorisé comme étant le nœud ayant le plus grand nombre de
message provenant du nœud source, considérant qu’il possède le meilleur chemin vers le nœud
source.
1
Ce sont des paquets de 52bits contenant l’adresse le l’émetteur (nœud d’origine), l’adresse du nœud de relai du
message, le numéro de séquence et la TTL (Time To Live) qui est la durée de vie du paquet.
zone de routage est alors définie pour chaque nœud du réseau. ZRP utilise en fait deux protocoles
de communication : IARP (IntrAzone Routing Protocol) [ZYG 03] pour les communications locales
à une zone et IERP (IntErzone Routing Protocol) [ZYG 02] pour les communications entre les
différentes zones.
1
C’est l’adresse matérielle des périphériques Bluetooth équivalent à l’adresse Mac d’une carte réseau. Ces adresses
sont codées sur 48bits et sont gérées par l’IEEE Registration Authority.
Ici, nous allons faire une étude de la faisabilité technique et économiques de notre solution avec
une petite études des coûts de déploiement de celle-ci.
Nous allons commencer par la mise au point d’un nœud routeur. Comme nous l’avons dit plus
haut, notre nœud routeur sera un assemblage de plusieurs clés Bluetooth relié en USB à un hub
Bluetooth. le prix d’un hub Bluetooth dépend du nombre de port usb qu’il dispose. Un hub de 5
ports coutera sensiblement 100 € [TWE 12]. Les clés Bluetooth qui sont en fait des périphériques
Bluetooth de classe11 couteront pour leur part environ 20€ donc pour 5 clés par hub Bluetooth on
aura un total de 100 €.
Pour garantir une bonne portée du signal, on aura besoin d’un pylône de plus de 20 mètres qui
va couter pratiquement 1000 €. Pour réduire les couts du pylône, on peut exploiter un bâtiment de à
plusieurs niveau sur lequel on aura juste besoin d’un support de moins de 5 mètres pour installer
notre nœud routeur.
Pour gérer les demandes de communication est le routage des signaux, on aura besoin d’un
serveur qu’on peut estimer à 1000 € en fonction des caractéristiques de ce dernier. Ce serveur sera
installé dans une sale démilitarisée de préférence dans le même bâtiment que celui sur lequel est
1
Classe 1 : avec une puissance de 100 mW (20 dBm) et une portée de 100 mètres
placé le nœud routeur. Ce serveur est en fait le moteur du nœud routeur avec qui il va échanger
permanemment des informations. Dans le cas d’un réseau GSM ce serveur est appelé BSC qui peut
gérer plusieurs BTS qui sont les nœuds routeur. Dans notre cas, chaque BSC est associé à une seule
BTS.
En prenant en compte d’autres accessoires à 300 €, notre estimation nous donne un total de 2500
€ pour notre BSC Bluetooth contre un montant de pratiquement 160 000 € pour une solution GSM
d’après l’estimation de Julien Delmas dans son livre « Les Relais GSM » [DEL 06].
Table 3: RECAPUTULATIF estimation d’un nœud routeur
Si on veut par exemple déployer notre solution dans un campus universitaire, comme celui de
l’Ecole National Supérieur Polytechnique de Yaoundé, on aurra sensiblement besoin de deux nœuds
routeurs ce qui nous fera un total de 8000 € pour les nœuds routeurs et autres soit environ 5.240.000
FCFA.
Table 4: estimation du déploiement de l'application dans un campus universitaire
Nous avons choisi Android car en plus de son expansion de plus en plus croissante dans le
domaine de la téléphonie, elle offre aussi plusieurs facilités quand il s’agit de travailler directement
avec la couche physique du téléphone comme le micro, les hauts parleurs, le Bluetooth et autres qui
sont nécessaires pour l’enregistrement, le transfère et aussi la réception de la voix.
Voir ANNEXE C :
Notre application dispose plusieurs états. Lorsqu'on lance l'application, on est dans l'état initial.
Etat initial : Dans cet état, le périphérique ne peut rien faire mis à part tenter de se connecter ou de
recevoir une demande de connexion de la part d’un autre périphérique
Etat connecté : Une fois que le périphérique est connecté à un interlocuteur, il bloque toute autre
demande de connexion. Il ne peut cependant plus recevoir de nouvelles demandes de connexion.
Par défaut notre application est en mode half-duplex, donc lorsqu'on reçoit un message audio ou
lorsqu'on le transmet on passe dans l'état half-duplex qui permet d'éviter que l'on puisse envoyer et
recevoir du son en même temps.
Etat half-duplex : Dans cet état un périphérique Bluetooth peut recevoir des messages de
connexion ou de déconnexion. Si jamais il venait à perdre la connexion avec son interlocuteur, il
retourne dans l'état initial. Le périphérique passe dans cet état quand l’utilisateur veut envoyer
l’application à son interlocuteur par transfert de fichier. Lorsque le transfert est terminé, l'envoi
terminé, il retourne dans l'état connecté. Et si dans cet état, l’application est détectée chez
l’interlocuteur, il passe alors à l’état full-duplex.
Etat full-duplex : Dans cet état, le périphérique est prêt à communiquer avec son interlocuteur par
échange de messages vocaux. En principe, dans cet état, toutes les actions sont autorisées comme
par exemple recevoir des demandes connexion ou des messages de déconnexions des autres
interlocuteurs en même temps qu’on est en train de communiquer. Mais nous avons préféré bloqué
cette option par souci d’efficacité lors de la conversation entre les deux interlocuteurs après qu’ils
soient connectés. En revanche comme dans l’état précédent (half-duplex), si un périphérique perd la
connexion avec son interlocuteur il repasse directement dans l'état initial où il pourra établir la
connexion avec d’autres périphériques.
Nous allons ici faire une brève description des différents éléments de notre architecture
logicielle.
MainActivity : Cette classe représente la vue principale de notre application. Elle contient
un moteur qui permet aux classes dont elle dépend de pouvoir accéder et modifier
indirectement les éléments de l'interface graphique.
BluetoothService : Classe réalisant les opérations liées à l’utilisation du Bluetooth.
FindDevice : C’est la classe qui permet de faire la recherche de l’équipement avec lequel on
souhaite communiquer.
VoiceRecoder : Elle permet d’enregistrer la voix
VoiceReceiver : Cette classe permet d’écouter et de recevoir les données vocales entrantes.
UserManager : Pour la gestion des utilisateurs
PrefereceManager : Pour la gestion des préférences de l’application.
Utilisateur : Représente les profils des différents utilisateurs du système : pseudo, login,
mots de passe et autres.
Nous allons dans cette partie définir les différents points suivants :
…
public void RechercheEquipement(BluetoothAdapter bluetoothAdapter) {
// on teste si la découverte n'est pas encore lancée avant de la lancer
// Resources myResources = getResources();
if(bluetoothAdapter.isDiscovering()){
bluetoothAdapter.startDiscovery();// lance la décourverte des équipements
}
if(!remote_device.equals(null)){
// S'il y a des équipements apareillés
if (pairedDevices.size() > 0) {
// Loop through paired devices
for (BluetoothDevice device : pairedDevices) {
//ajout du nom et de l'adresse des équipements décourvert
// Add the name and address to an array adapter to show in a ListView
if(device.equals(remote_device)){
bluetoothAdapter.cancelDiscovery();
break;
}
mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
}
}
}
Dans cette méthode, le bluetoothAdapter est en fait le périphérique à découvrir. Dans ce cas il ne
contient qu’un seul périphérique car il est question de rechercher un périphérique dont on connait
l’adresse Bluetooth.
1
Elle permet d’identifier l’application de façon unique
méthode renvoie un BluetoothSocket que nous avons appelé clientSocket qui nous permet donc
d'initier la connexion à l'aide de la méthode connect().
Puisque notre application est une application temps réelle nous aurons besoin de préciser un
certain nombre de paramètres pour créer notre AudioRecord. Nous pouvons citer entre autres :
La fréquence de communication,
l’encodage audio,
le nombre de canaux (mono ou stéréo),
la taille du buffer qui sera par défaut la taille minimale du buffer de l’AudioRecord (qu’on
récupère grâce à la méthode getMinBufferSize). Cette taille dépend en général des autres
paramètres cités ci-dessus.
Pour lancer l’enregistrement du son qui va être envoyé en temps réelle à notre destinataire, nous
allons utiliser la méthode startRecording de l’audioRecord que nous avons défini précédemment.
En fait dans notre run lorsqu’on détecte une entrée audio, on l’enregistre comme une nouvelle
donné à envoyer. Lorsque La taille maximale de notre buffer est atteinte, on lance le transfert au
périphérique de l’interlocuteur.
[…]
interlocuter =getContact(contact.getAddress());
byte [] data = new byte[dataLength];
data[0] = MSG_DISCONNECTION;
sendTo(interlocuter ,data);
[…]
Le processus de lecture est un peu plus complexe que ça. En fait on passe par la détection de
l’audio entrant avant de le lire ensuite au niveau du haut-parleur par la méthode play() précédente.
Au cours du développement, nous avons été confronté à certaines difficultés liées au SDK
notamment concernant la gestion de la voix et du Bluetooth en particulier.
Concernant l’Audio, la gestion du son encodé sur 8 bits nous a posé problème. Si de
nombreux projets semblent avoir été confrontés aux mêmes difficultés, rien d'officiel n'a été
reporté à ce sujet.
Pour ce qui est de la gestion du Bluetooth, nous avons déterminé expérimentalement que la
taille maximal du buffer pouvant être envoyé par Bluetooth est de 357 ce qui était un vrai
problème quand il était question d’envoyer une longue conversation au destinataire. Pour
contourner ce problème, nous avons pensé à découper les paquets audio en des blocs de plus
petites tailles qui devaient être envoyés les uns à la suite des autres. En plus de cela, nous
avons remarqué que la fonction de connexion (connect()) arrivait parfois à passer sans
réellement établir la connexion avec le périphérique cible au niveau de l’application. Ce qui
nécessitait parfois un redémarrage complet du téléphone.
Vue que l’émulateur Android ne supporte pas la fonctionnalité Bluetooth, il a été très difficile
pour nous d’entrer en possession de deux périphériques physiques sur lesquelles nous devions faire
nos tests.
AVISPA (Automated Validation of Internet Security Protocols and Applications) est un outil de
validation formelle de protocoles. AVISPA dispose d’un langage de modélisation HPLS (High
Level Protocol Specification Language) qui permet le rapprocher la modélisation des protocoles à
au langage de base utilisé par les outils en arrière-plan. Comme la plupart de ces langages, les
langage de modélisation sont en général peu pratiques quand il s’agit de visualiser les résultats
produits. Dans le cas d’AVISPA, on a l’outil SPAN (Security Protocol ANimator for AVISPA)
[YAN 08] qui est l’une des outils développé par AVISPA pour rendre les choses plus accessibles au
grand public i.e. aux non-initiés. SPAN offre un environnement de simulation visuel plus convivial
où les résultats sont plus faciles à interpréter. La figure ci-dessous présente l’architecture
d’AVISPA.
1
www.avantssar.eu
2
Luca Vigano : (luca.vigano@univr.it)
D’après l’architecture ci-dessus, on voit bien qu’il y a quatre outils de vérification regroupés
dans AVISPA et ils utilisent tous des méthodes de vérification différentes. Ces outils sont OFMC
[LUC 05], CL-AtSe [TUR 06], SATMC [ALE 05] et TA4SP [YBO 05]. Nous nous attarderons
uniquement sur l’outil OFMC que nous allons utiliser dans nos simulations.
OFMC (On-the-Fly Model-Checker) exécute à la fois une falsification de protocole et une
vérification sur un nombre borné de sessions en explorant le système de transitions décrit par la
spécification IF (Intermediate Format), obtenue à partir de la spécification HLPSL à la volée.
L’efficacité du Backend OFMC est due à l’utilisation d’un certain nombre de techniques
symboliques à base de contraintes qui sont correctes et complètes dans le sens où aucune attaque
n’est perdue ou créée de toute pièce.
Il est facile de traduire un protocole en HPLS s’il est écrit suivant la notation Alice est Bob
appelé couramment notation A-B dans le jargon HPLS. Nous avons ajouté en ANNEXE A les
concepts de base du langage HPLS.
Nous allons ici modéliser le cas d’une communication entre deux nœuds localisés dans deux
piconets différents i.e. ayant deux nœuds routeurs différents : Le nœud A veux communiquer avec
le nœud X dont il ne connait pas la position.
A
B C
Lorsque A envoi à son point d’accès B une demande de communication sous forme d’un message
unicast RREP1 de la forme (RREP, A, X, id, [ ]) où id est l’identifiant généré aléatoirement pour la
reconnaissance de l’accusé de réception et [ ] la chaine initialement vide des nœuds routeurs par
lesquelles sera passé le message. Lorsque B reçoit le message, il consulte sa table de routage et
constate que X n’est pas dans son rayon de portée. Il initie donc dans le réseau un message
broadcast RREQ2.
Il ajoute à ce message son adresse dans la chaine des nœuds initialement vide. Le message prend
donc la forme suivante : (RREQ, A, X, id, [B]). Lorsque le message arrive chez C, ce dernier
consulte vérifie si X est dans son rayon de portée. Puisque tel est le cas, il envoi cette foi un
message unicast à X pour lui informer que A veut communiquer avec en ajoutant évidement au
message dans la liste: (RREP, A, X, id, [B, C]). X répond favorablement à la demande de A en
envoyant un accusé de réception en utilisant le même canal par lequel est arrivée la demande de
communication de A. voici dans ce qui suit la représentation en notation A-B du langage HPLS à
quoi ressemble ce cas de communication.
1
Représentation en HPLS des messages unicast
2
Représentation en HPLS des messages broadcast
On va ensuite charger notre fichier que nous avons enregistré au format .hlpls. Ceci dans la
section User files et on va cliquer sur le bouton load file
Après avoir chargé le fichier, nous allons l’exécuter et faire une interprétation des résultats.
% OFMC
% Version of 2006/02/13
SUMMARY
SAFE
DETAILS
BOUNDED_NUMBER_OF_SESSIONS
PROTOCOL
C:\progra~1\SPAN\testsuite\results\BRPROTOCOL.if
GOAL
as_specified
BACKEND
OFMC
COMMENTS
STATISTICS
parseTime: 0.00s
searchTime: 0.03s
visitedNodes: 4 nodes
depth: 1 plies
Les résultats fournis ci-dessus sont ceux générés par le Backend OFMC qui montre que 4 nœuds
ont été parcourus avec un tems de recherche de 0.03 secondes.
Ensuite on exécute les différents scénarios proposés par SPAN, pour obtenir le résultat suivant :
Dans cette simulation nous avons 7 nœuds dont deux nœuds sources (a-3, a-8), deux nœuds
destinations (x-6, x11) et trois nœuds routeurs (b-4, c-5, c-10). Le scénario d’exécution concerne les
nœuds a-3, b-4, c-10 et x-11. Dans ce scénario, a-3 veut communiquer avec x-11. Il initie une
demande de communication à son nœud routeur qui est b-4 qui achemine la demande vers c-10 qui
est le nœud routeur de x-11. On constate bien qu’en 6 étapes a-3 réçoit l’accusé de reception de x-
11. Les deux nœuds peuvent ainsi utiliser le même canal de communication pour echanger les
messages vocaux.
V.6. BILAN
D’après les résultats fournis par la simulation sur AVISPA et sur SPAN (0.03 secondes) pour la
recherche du nœud destinataire avec l’intervention de 2 nœuds routeurs, nous pouvons dire que
notre protocoles répond bien aux exigences de temps de communication qui doit être le plus court
possible. En plus on a pu constater que les échanges en effectivement faites entre chaque nœud
mobile et son nœud routeur.
CONCLUSION GENERALE
La problématique de l’intégration de la voix dans les réseaux sans fils comme le Bluetooth est
liée à plusieurs contraintes relatives au transfère synchrone et en temps réel des données entre les
différents nœuds en communication. Dans la première partie de ce mémoire, après avoir défini le
contexte et la problématique de notre travaille, nous avons présenté nos motivations et les divers
enjeux de la solution que nous avons proposé. S’en est suivi les différents domaines dans lesquels
notre solution pouvait être appliquée.
Notre principal objectif étant de proposer une solution efficace de téléphonie dans les réseaux
Bluetooth, nous avons commencé par étudier dans la deuxième partie de notre travail les divers
travaux qui avaient déjà été menés dans ce sens en faisant le tour des autres technologies de
communication sans fil existantes comme le GSM, le Wifi avec la VoIP et les différentes solutions
existantes avec le Bluetooth. Nous avons vu que ces solutions étaient jusqu’ici peut adaptées au
contexte socio-économique des pays en voie de développement comme le Cameroun qui faisaient
l’objet de notre attention.
C’est alors que nous avons pensé à concevoir dans la troisième partie de notre travail une
nouvelle solution qui permettrait de briser les barrières posées par la faible portée du Bluetooth qui
est limitée à une distance de 100 mètres pour les émetteurs de classe 1. Cela nous a emmené à
définir de nouveaux concepts comme les nœuds routeurs qui jouent un rôle centrale dans notre
architecture finale. Notre solution étant basée sur un concept novateur, nous étions contraint de
définir un nouveau protocole de routage basé principalement sur les protocoles B.A.T.M.A.N.
[AXE 07] et ZRP [NIC 01] et un protocole de formation de scatternet basé sur le protocole BTCP
[SAL 01]. Ce qui a d’ailleurs value une publication [NON 12] dans la conférence internationale
AFRICOMM édition 2012 où nous avons défendu les différents concepts que notre solution
apportait dans le domaine scientifique.
Nous avons dans la phase de mise en œuvre développé une application de communication entre
deux périphériques Bluetooth tournant sur la plateforme Android et basé sur le langage java. Afin
de valider nos différents protocoles, nous avons utilisé l’outil AVISPA avec son simulateur SPAN
qui a prouvé son efficacité de par le monde.
PERSPECTIVES
Le travail que nous avons mené donne lieu à plusieurs ouvertures dans le domaine scientifique.
Nous proposons dans les travaux futurs de concevoir et de réaliser notre nœud routeur comme un
périphérique à part entière afin de répondre aux problèmes de routage et de qualité de service dans
les réseaux Bluetooth un peu comme les points d’accès dans les réseaux Wifi. Cela pourrait
permettre d’implémenter notre protocole de routage sans avoir recourt à d’autres équipements tiers
comme les machines serveurs et autres hub et clés Bluetooth qui sont pour le moment les principaux
constituants de notre nœud routeur. Ceci pourra constituer une amélioration considérable dans le
fonctionnement des réseaux ad-hoc car ils seraient alors en mesure de disposer de la notion
d’infrastructures dans la mesure où les nœuds routeurs sont censés être fixes.
Bien qu’ayant limité au maximum les émissions des paquets entres les différents nœuds dans
notre protocole de routage, nous proposons aussi une gestion plus efficace de la consommation en
énergie dans notre réseau. L’aspect sécurité ne saurait être négligé : bien que le Bluetooth offre déjà
un mécanisme d’authentification entre les différents périphériques, les communications restent
toujours vulnérables à diverses attaques de toute sorte. La conversation entre deux utilisateurs est
susceptible d’être intercepté par un périphérique tiers utilisant l’une des applications de hacking des
réseaux Bluetooth disponibles gratuitement en ligne.
En ce qui concerne l’aspect développement, nous avons rencontré plusieurs difficultés avec le
SDK d’Android notamment concernant la gestion de la voix et du Bluetooth. C’est pourquoi nous
préconisons pour les futurs travaux l’utilisation du NDK Android qui offre beaucoup plus de facilité
et d’outils que le SDK.
Avec de telles améliorations il serait possible de mettre sur pied une plateforme complète de
téléphonie basé sur le Bluetooth et ouverte à d’autres technologies.
PUBLICATION SCIENTIFIQUE
Voici un exemple pour le rôle « alice » dans le protocole simple d’échange de clé :
role alice(
A,B,S : agent, Kas : symmetric_key, SND, RCV : channel (dy))
played_by A def=
local State : nat,
Kab : symmetric_key
init State := 0
transition
...
end role
A, B et S sont des paramètres de type agent, Kas est un paramètre de type symmetric_key, et les
paramètres SND et RCV qui sont de type channel. Ces deux derniers paramètres définissent les canaux de
communication entre les différents agents devant jouer le rôle « alice » notamment A, B et C. le type du
canal prend un attribut supplémentaire (dy) qui définit le modèle d’intrus représenté pour ce canal de
communication. (dy) ici désigne le modèle d’intrus Dolev-Yao [DOL 83]. Lorsqu’on précise ce paramètre
c’est pour éviter toute intrusion dans le système. Etant fixé à (dy) dans notre cas, toute intrusion en dessous
de ce modèle pourra intercepter et même modifier tous les messages échangés par les agents par ce canal. On
définit en général un intrus dans le système pour simuler les cas d’attaque du réseau et tester le niveau de
sécurité du protocole.
La section played_by où apparait l’agent "A" montre que "A" jouera par défaut le rôle « alice ». La
section local permet de déclarer les variable locales au rôle « alice ». dans notre cas on a deux variables
locales : State de type nat (entier naturel) et Kab de type symetric_key. La variable State a comme valeur par
défaut 0. Cette variable est présente dans pratiquement tous les rôles définis en HPLS.
Toute variable en HPLS commence par une lettre majuscule et toute constante par une lettre minuscule.
Néanmoins, toutes les constantes de même que les variables sont typées.
Transitions
La section des transitions de HPLS représente en générale les échanges de messages entre un expéditeur
et un destinataire. La première étape consiste le plus souvent à la réception d’un message et la seconde à la
réponse à un message reçu. Les transitions sont définies par des déclencheurs ou pré-condition suivi des
différentes actions à exécuter lorsque survient chacune d’elle.
Voici un exemple de définition d’état de transition en HPLS.
Cette transition appelé step1 qui permet de la distinguer d’autres transitions permet de définir que lorsque
la valeur de la variable State est à 0 est qu’un message est reçu du canal RCV contenant la clé Kab’ crypté
avec Kas, alors step1 va mettre à jour la valeur de la variable State à 2 et va envoyer un message par le
canal SND la valeur reçu précédemment (Kab’) en la cryptant avec Kbs. On peut remarquer que lorsque la
valeur de la variable State change elle est notée avec un prime : State’. Il faut également noter que tant que
la transition n’est pas complète, la valeur de cette variable ne changera pas. Avec la transition on peut donc
compléter notre rôle de base comme suit :
role alice(
A,B,S : agent, Kas : symmetric_key, SND, RCV : channel (dy))
played_by A def=
local State : nat,
Kab : symmetric_key
init State := 0
transition
step1. State = 0 /\ RCV({Kab’}_Kas) =|> State’:= 2 /\ SND({Kab’}_Kbs)
end role
Les rôles de base n’ont pas de section de transition mais plutôt une section de composition. L’opérateur
/\ montre que les différents rôles doivent être exécuté en parallèle. Les variables du rôle composé ne sont rien
d’autre que l’ensemble des variables de chacun des rôles de base qui le compose.
L’environnement du système
On peut après avoir défini les sessions comme étant des rôles composés définir un autre rôle composé :
l’environnement qui peut contenir plusieurs sessions. Ce rôle est en fait le rôle de plus haut niveau du
système.
role environment()
def=
const a, b, s : agent,
kas, kbs, kis : symmetric_key
intruder_knowledge = {a, b, s, kis}
composition
session(a,b,s,kas,kbs)
/\ session(a,i,s,kas,kis)
/\ session(i,b,s,kis,kbs)
end role %fin du role
C’est également dans ce rôle qu’on définit les propriétés de l’intrus du système avec l’ensemble des
informations qu’il possède à l’avance notamment, les noms de tous les agents, toutes les clés publique du
système, sa propre clé privé qu’il partage avec tous les autres agents et aussi toutes les fonctions publiques
du système. La constante i dans notre cas défini l’intrus de notre système.
�
�= , 1 ≤ K ≤ 7, 1 ≤ N ≤ 36. Relation 3: Nombre de piconet
�
Où N est le nombre de Nœud routeur en compétition, K le nombre de nœud esclave par piconet et
.
Nous voulons montrer qu’un scatternet de n équipements peut avoir au moins (n-1)/k piconets.
Pour cela, considérons k+1 le nombre max de nœud dans un piconet et p(n) le nombre minimum de piconet
pour un scatternet.
Nous allons montrer que p(n) ≥ (n −1)/k par récurrence sur p(n).
Premièrement, si p(n)=1, alors partant de p(n) ≥ (n −1)/k, on a :
1≥ (n −1)/k
==> k > n-1
==> n ≤ k +1 c’est-à-dire dans un piconet on a au plus k+1=8 nœuds ce qui est vrai.
Par hypothèse, chaque piconet peut avoir au plus k+1 nœuds.
Supposons l’hypothèse vrai à l’ordre m c’est-à-dire que si p(n) ≤ m, alors p(n) ≥ (n −1)/k et montrons qu’elle
reste vrai à l’ordre m+1.
Considérons le cas p (n')=m+1. Etant donné un scatternet de n' dispositifs, choisissons au hasard un piconet
et supprimons son maître et k-1 de ses esclaves laissant celui qui servait de connexion au scatternet ce qui
fait k éléments supprimés. Après la suppression de ce piconet, on se retrouve avec un scatternet formé de n'-
k éléments.
Par hypothèse de récurrence, on a p(n) ≥ (n −1)/k si p(n) ≤ m. puisque n ≥ n'−k, on a
p(n) ≥ (n'−k−1)/k = (n−1)/k−1. Ainsi, p (n') ≥ p(n) +1 ≥ (n'−1)/k.
piconet.
2 piconet ne peuvent partager plus d’un pont.
Android est en constante évolution grâce au dynamisme des développeurs qui réalisent chaque jour des
applications innovantes. Android permet de rendre disponibles les applications aux utilisateurs finaux
via une plate-forme de téléchargement . Android propose la plate -forme Android Market pour la
publication des applications. Notons qu’a l’heure actuelle, il y a environ 50000 applications sur
l’Android Market « http://www.android.com/market/ ». Pour publier une application sur l ’Android
Market, il faut s’inscrire sur le site en question et payer des frais d’inscription de 25$
« http://market.android.com/publish/signup ».
Achitecture de la plateforme Android :
Le diagramme suivant illustre les composants principaux du système d’exploitation Android.
REFERENCES BIBLIOGRAPHIQUES
[AGG 00] Aggarwal Alok Manika Kapoor, et al. Clustering algorithms for wireless ad-hoc network [Article] //
The 4th International Workshop on Discret Algorithm and Methods For Mobile Computing and
Communication. - 2000. - pp. 54-63.
[ALE 05] Alessandro Armando Luca Compagna, An optimized intruder model for sat-based model-checking
of security protocols. [Revue]. - [s.l.] : Electr. Notes Theor. Comput. Sci, 2005. - Vol. 125(1). - pp. 91–108.
[ANE 02] Anelise Munaretto Hakim Badis, Khaldoun Al Agha, Guy Pujolle A Link-state QoS Routing Protocol
for Ad Hoc Networks [Rapport] / LRI Laboratory ; University of Paris XI. - Paris : INRIA, 2002. -
http://www.lri.fr/~alagha/OPNET/OLSR.pdf. - 0-7803-7605-6/02/$17.00-2002 IEEE.
[ANN 06] Anna Forster Machine Learning Techniques Applied to Wireless Ad-Hoc Networks: Guide and
Survey [Rapport] / University of Lugano, Switzerland. - Lugano : University of Lugano, Switzerland, 2006. -
https://docs.google.com/viewer?url=http://www.dti.supsi.ch/~afoerste/publications/survey_issnip.pdf.
[AVI 06] AVISPA Team AVISPA v1.1 User Manual [Rapport] / IST. - Europe : Information Society Technologies
Programme, 2006.
[AXE 07] Axel Neumann Corinna Elektra Aichele, Marek Lindner B.A.T.M.A.N Status Report [Rapport]. -
2007. - http: //open-mesh.net/batman.
[BAD 06] BADIS HAKIM ÉTUDE ET CONCEPTION D’ALGORITHMES POUR LES RÉSEAUX MOBILES ET AD HOC
[Ouvrage]. - Université de Paris-Sud : THESE DE DOCTORAT, 2006.
[BBL 01] B. Blanchet An efficient cryptographic protocol verifier [Revue] // P o eedi gs of CSF’ .. - [s.l.] :
IEEE Computer Society Press,, 2001. - pp. 82-96.
[BLU 03] Bluetooth Specification Adaptation RFCOMM with TS 07.10 - serial port emulation [Ouvrage]. -
2003. -
http://www.google.cm/url?sa=t&rct=j&q=rfcomm%20pdf&source=web&cd=1&ved=0CFAQFjAA&url=http%3
A%2F%2Fwww.bluetooth.org%2Fdocman%2Fhandlers%2FDownloadDoc.ashx%3Fdoc_id%3D40909&ei=SfjyT
4_bLo26hAfE8eTPCQ&usg=AFQjCNFkXrsvbbpIPQG-_FJUXM3RjcbiqQ&cad=rja.
[BOU 11] BOURDIEU C. F. CADIEU,Matthieu HOURDEBAIGT,Sébastien NAHELOU Logiciel de type talkie-
walkie sur terminaux mobiles Android, Projet de programmation INF466 [Ouvrage]. - Bordeaux : Université
de Bordeaux1 Science Technologie, 2011.
[CHI 02] Ching Law Amar k. Mehta, Kai-Yeung siu A new New Bluetooth Scatternet Formation Protocol
[Rapport] / Massachusetts Institut of Technologie. - Massachusetts : Auto ID Center, 2002. - p. 29.
[CHI 08] Chita Christian MAIDS for VoIP: A Mobile Agents-based Intrusion Detection System for Voice over
Internet Protocol [Rapport] / The Faculty of Graduate Studies (Computer Science) ; THE UNIVERSITY OF
BRISTISH COLUMBIA. - Vancouver) : [s.n.], 2008.
[DAV 00] Dave Suvak IrDA and Bluetooth: A Complementary Comparison [Rapport]. - [s.l.] : Extended
Systems, Inc, 2000.
[DAV 10] Davide Benetti Massimo Merro, Luca Vigano, Model Checking Ad Hoc Network Routing Protocols:
ARAN vs. endairA [Revue] // Proceedings of SEFM 2010. - 2010. - pp. 191–202.
[DEL 06] Delmas Julien Les relais GSM [Ouvrage]. - California : Creative Commons, 2006. - Vol. I. -
http://lesrelaisgsm.juliendelmas.com.
[DJO 10] Thomas DJOTIO NDIE cours Reseaux Avance Master 2 [Ouvrage]. - UNIV de Yaoundé 1 : [s.n.], 2010.
[DOL 83] Dolev D. A. Yao. On the Security of Public-Key Protocols [Rapport]. - [s.l.] : IEEE Transactions on
Information Theory,, 1983..
[ENC 09] Encarta et Encyclopedie Herschel, sir William [Rapport]. - [s.l.] : Microsoft Corporation, 2009.
[FAB 11] Fabien Chéreau Jocelyn Viallon, Oscar Arturo, Philippe Dumoulin, Tangui Morlier, Thomas Petit Le
protocole Bluetooth [En ligne] // Bluetooth et les technologies associé. - Département Informatique de l'INSA
de Lyon, 06 2011. - 14 06 2012. - http://tp.bluetooth.free.fr/protocol.html.
[FEN 08] FENG GAO MARTIN HOPE Collaborative Middleware on Symbian OS via Bluetooth MANET
[Article] // WSEAS TRANSACTIONS on COMMUNICATIONS / éd. Informatics Research Institute the University
of Salford. - April 2008. - ISSN: 1109-2742. - 4 : Vol. 7. - pp. 300-310. - http://www.wseas.us/e-
library/transactions/communications/2008/25-692.pdf.
[GRY 01] Gryazin Eugene A. Service Discovery in Bluetooth [Rapport] / Department of Computer Science,
Group for Robotics and Virtual Reality ; Helsinki University of Technology. - Helsinki : [s.n.], 2001. - p. 4. -
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.33.5247&rep=rep1&type=pdf.
[GUI 10] Guillaume Faure Maxime Raoust Developpement d'une application de communication Bluetooth
sur Android [Rapport] : Projet de fin d'étude / TELECOM ; TELCOM Sud-Paris. - Sud-Paris : TELCOM Sud-Paris,
2010. - http://gou1-sandbox.googlecode.com/files/Rapport%20projet%20ASR%20-
%20Faure%20et%20Raoust.pdf.
[GUO 03] Guoyou He Destination-Sequenced Distance Vector (DSDV) Protocol [Rapport] / Networking
Laboratory ; Helsinki University of Technology . - Helsinki : [s.n.], 2003. -
http://www.netlab.tkk.fi/opetus/s38030/k02/Papers/03-Guoyou.pdf.
[GUY 06] Guy Pujolle Les Reseaux [Ouvrage]. - [s.l.] : Eyrolles, 2006. - 5eme : p. 562. - http://www.editions-
vm.com/Chapitres/9782212119879/Chap21_Pujolle.pdf. - ISBN - 2-212-1 1987-9.
[ICU 03] ICU Bluetooth Packets [Rapport] / Multimedia Laboratory ; Information and Communication
University. - Korea : Special Topics on Ad-hoc and Sensor Networks, 2003. -
http://mmlab.kaist.ac.kr/menu2/popup/ICE839/Bluetooth-2.pdf.
[IEE 99] IEEE LAN/MAN Standards Committee of IEEE Computer Society Wireless LAN Medium Access
Control (MAC) and Physical Layer (PHY)specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz
Band [Ouvrage] = IEEE Std 802.11b-1999. - New York : The Institute of Electrical and Electronics Engineers,
Inc., 1999. - http://standards.ieee.org/getieee802/download/802.11b-1999.pdf.
[IEEf 03] IEEE LAN-MAN Standards Committee of the IEEE Computer Society [Ouvrage] = IEEE 802.11f
Standart. - New York : 802.11 IEEE Standard for Information technology, inc, 2003. -
http://standards.ieee.org/getieee802/download/802.11F-2003.pdf.
[IEEg 03] IEEE LAN-MAN Standards Committee of the IEEE Computer Society [Ouvrage] = IEEE Std 802.11g. -
New York : 802.11 IEEE Standard for Information technology, inc, 2003. -
http://pdos.csail.mit.edu/decouto/papers/802.11g.pdf.
[IEEd 01] IEEE LAN-MAN Standards Committee of the IEEE Computer Society 802.11 IEEE Standard
[Ouvrage] = IEEE Std 802.11d. - NY : [s.n.], 2001. - http://standards.ieee.org/getieee802/download/802.11d-
2001.pdf.
[IEEh 03] IEEE LAN-MAN Standards Committee of the IEEE Computer Society IEEE 802.11h Standart
[Ouvrage] = IEEE 802.11h Standart. - New York : 802.11 IEEE Standard for Information technology, inc, 2003. -
http://standards.ieee.org/getieee802/download/802.11h-2003.pdf.
[IEEe 05] IEEE LAN-MAN Standards Committee of the IEEE Computer Society Part 11: Wireless LAN Medium
Access Control (MAC) and PhysicalLayer (PHY) specifications Amendment 8: Medium Access Control (MAC)
Quality of Service Enhancements [Ouvrage] = IEEE 802.11e Standart. - New York : 802.11 IEEE Standard for
Information technology, inc, 2005. - http://standards.ieee.org/getieee802/download/802.11e-2005.pdf.
[IEEk 08] IEEE LAN-MAN Standards Committee of the IEEE Computer Society Part 11: Wireless LAN Medium
Access Control (MAC) and Physical Layer (PHY) Specifications Amendment 1: Radio Resource Measurement of
Wireless LANs [Ouvrage] = IEEE std 802.11k. - New York : 802.11 IEEE Standard for Information technology,
inc, 2008. - http://www.cs.clemson.edu/~jmarty/courses/papers/wireless/wifi/802.11k-2008.pdf.
[IEE-D 04] IEEE LAN-MAN Standards Committee of the IEEE Computer Society Part 11: Wireless LAN Medium
Access Control (MAC) and Physical Layer (PHY) specifications Amendment 3: Specification for operation in
additional regulatory domains [Ouvrage] = IEEE Std 802.1D. - New York, : IEEE Standard for Information
technology, 2004. - http://standards.ieee.org/getieee802/download/802.1D-2004.pdf.
[IEEn 09] IEEE LAN-MAN Standards Committee of the IEEE Computer Society Part 11: Wireless LAN Medium
Access Control (MAC) and Physical Layer (PHY) specifications Amendment 5: Enhancements for higher
throughput [Ouvrage] = IEEE std 802.11n. - New york : 802.11 IEEE Standard for Information technology, inc,
2009. - http://standards.ieee.org/getieee802/download/802.11n-2009.pdf.
[IEEi 04] IEEE LAN-MAN Standards Committee of the IEEE Computer Society Part 11: Wireless LAN Medium
Access Control (MAC) and Physical Layer (PHY) specifications Amendment 6: Medium Access Control (MAC)
Security Enhancements [Ouvrage] = IEEE 802.11i Standart. - New York : 802.11 IEEE Standard for Information
technology, inc, 2004.
[IEEj 04] IEEE LAN-MAN Standards Committee of the IEEE Computer Society Part 11: Wireless LAN Medium
Access Control (MAC) and Physical Layer (PHY) specifications Amendment 7: 4.9 GHz–5 GHz Operation in
Japan [Ouvrage] = IEEE std 802.11j. - New York : 802.11 IEEE Standard for Information technology, inc, 2004. -
http://standards.ieee.org/getieee802/download/802.11j-2004.pdf.
[IEEs 06] Joseph D. Camp Edward W. Knightly IEEE 802.11s Extended Service Set Mesh Networking Standard
[Revue]. - Houston : Electrical and Computer Engineering, Rice University, Houston, TX, 2006. -
http://networks.rice.edu/papers/mesh80211s.pdf.
[LUC 05] Luca Vigano David A. Basin, Sebastian Modersheim, Ofmc : A symbolic model checker for security
protocols [Revue] // Int.J. Inf. Sec.,. - 2005. - pp. 181–208,.
[MAH 06] Mahesh K. Marina Samir R. Das Ad hoc on-demand multipath distance vector routing [Rapport] /
Computer Science Department ; University of California, Los Angeles. - Los Angeles : Wiley InterScience,
2006. - pp. 969–988. - http://homepages.inf.ed.ac.uk/mmarina/papers/wcmc06.pdf. - ANI-0308631.
[MAR 01] Martin De wulf Memoire de Master, Un logiciel d'illustration des protocoles GSM et GPRS sur la
voie radio [Ouvrage]. - Rue Grandgagnage, France : Facultés Universitaires Notre-Dame de la Paix, 2001.
MP3 streaming over Bluetooth to multiple users [Revue].
[CHI 08] Chikouche M. Benmohammed V ifi atio auto ati ue des p oto oles d’authe tifi atio des
systèmes [Rapport] / D pa te e t d’i fo ati ue ; U i e sit de M’sila, U i e sit de Constantine. -
Algérie : [s.n.], 2008.
[NEI 10] Neil Tebbutt John Prince, Pietro Capretta Bluetooth 3.0 High-Speed versus Wi-Fi Direct [Ouvrage]. -
2010.
[NIC 01] Nicklas Beijar Zone Routing Protocol (ZRP) [Rapport] = ZRP / Networking Laboratory ; Helsinki
University of Technology. - Helsinki : [s.n.], 2001. - p. 12. -
http://www.netlab.tkk.fi/opetus/s38030/k02/Papers/08-Nicklas.pdf.
[NON 12] NONO LOUENKAM G. Thomas DJOTIO NDIÉ An approach of making telephony in a local wireless
environment: application to Bluetooth technology [Rapport]. - Yaounde : AFRICOMM, 2012. - AFRICOMM-
135274696582691.
[PAS 05] Pascal Ciurlik Nicolas Engrand, Sébastien Marszalek, Xavier Okoué Wifi et Bluetooth [Ouvrage]. -
France : Miage, USTL, 2005. - http://sciences-de-la-terre.univ-
lille1.fr/digitalAssets/8/8543_Bluetooth_wifi.pdf.
[PIN 11] pingoa [En ligne] // www.frandroid.com. - 06 09 2011. - 24 02 2012. -
http://forum.frandroid.com/topic/70131-tuto-le-wi-fi-direct-cest-possible/.
[RAB 04] Rabih MOAWAD QoS dans les WPAN, WLAN et WMAN [Rapport] : MEMOIRE DE DEA /
Departement d'informatique ; UNIVERSITE AUF LIBANAISE SAINT JOSEPH. - Beyrouth : UNIVERSITE AUF
LIBANAISE SAINT JOSEPH, 2004. - p. 64. - http://www.lb.refer.org/memoires/560895RabihMOAWAD.pdf.
[RFC 96] RFC H. Schulzrinne,et al RTP: A Transport Protocol for Real-Time Applications [Ouvrage] = rfc1889 -
RTP. - Berkeley : Request for Comments: 1889, 1996. - http://www.ietf.org/rfc/rfc1889.txt. - rfc1889.
[ROB 05] Robert M. Gray The 1974 Origins of VoIP [Rapport]. - [s.l.] : IEEE SIGNAL PROCESSING MAGAZINE,
2005. - http://www.cspl.umd.edu/spm/cfp/September-06.pdf.
[SAL 01] Salonidis Theodoros Pravin Bhagwat, Leandros Tassiulas, and Richard LaMaire Distributed topology
construction of Bluetooth personal area networks [Rapport] / Electrical and Computer Engineering
Department ; University of Maryland at College Park. - Maryland : In Proceedings of the Twentieth Annual
Joint Conference of the IEEE Computer and Communications Societies, 2001. - p. 10. -
http://www.thlab.net/~thsalon/papers/BTCP_JSAC05.pdf. - BTCP_JSAC05.
[SIG 10a] SIG BLUETOOTH SPECIFICATION [Rapport]. - Europe, Japan, USA, Canada : Bluetooth SIG, 2010. -
http://developer.bluetooth.org/KnowledgeCenter/TechnologyOverview/Documents/Core_SPEC.pdf. - IEEE
802.15.
[SIG 10b] SIG BLUETOOTH SPECIFICATION [Rapport]. - Europe, Japan, USA, Canada : Bluetooth SIG, 2010,
209-253. -
http://developer.bluetooth.org/KnowledgeCenter/TechnologyOverview/Documents/Core_SPEC.pdf. - IEEE
802.15.
[SIG 10c] SIG BLUETOOTH SPECIFICATION [Rapport]. - Europe, Japan, USA, Canada : Bluetooth SIG, 2010,
746. - http://developer.bluetooth.org/KnowledgeCenter/TechnologyOverview/Documents/Core_SPEC.pdf. -
IEEE 802.15.
[SIG 01] SIG Bluetooth, Part F:3 TELEPHONY CONTROL PROTOCOL SPECIFICATION TCS Binar [Section] //
Specification of the Bluetooth System v1.1 / auteur du livre Bluetooth SIG. - USA : [s.n.], 2001, 444-570. -
http://www.m2mgsm.com/download/BT/docs/descr2/TCSBinary.pdf.
[SIN 05] Singh Mritunjay MP3 streaming over Bluetooth to multiple users [Rapport] / Tata Consultancy
Services, Clarinox Technologies. - Australia : TCS/Clarinox, 2005, p2. -
http://www.clarinox.com/docs/whitepapers/Whitepaper_05_MP3.pdf.
[SST 06a] SST Service pour la Science et la technologie La voix sur IP et le Wifi : genèse d'une technologie née
en Israël [Rapport] / Service pour la Science & la Technologie ; Ambassade de France en Israël. - Tel Aviv
63801 - ISRAËL : Republique Francaise, 2006, p3. - www.fitscience.org.
[SST 06b] SST Service pour la Science et la technologie La voix sur IP et le Wifi : genèse d'une technologie
née en Israël [Rapport] / Service pour la Science & la Technologie ; Ambassade de France en Israël. - Tel Aviv
63801 - ISRAËL : Republique Francaise, 2006. - www.fitscience.org.
[STE 05] Steve Brar al Dynamic Bluetooth File Sharing With Cellular Devices [Ouvrage]. – 2005, p5. -
http://www.ece.ucdavis.edu/~chuah/classes/eec173B/eec173b-w06/project/bluetooth-sharing.pdf.
[SYS 10] System cisco Téléphone mobile WiFi élégant et complet pour service de téléphonie sur IP
[Rapport]. - 2010.
[TRA 09] TRAN Quoc Tuan Protocoles de routage dans les réseaux multi-radios mobiles [Rapport] : Rapport
de travail / Informatique ; I stitut de la f a opho ie pou l’i fo ati ue,. - Hanoï : IFI, 2009. - p. 48. -
http://www2.ifi.auf.org/rapports/tpe-promo14/tpe-tran_quoc_tuan.pdf.
[TUR 06] M. Turuani The cl-atse protocol analyser [Revue] // In Frank Pfenning. - [s.l.] : RTA, 2006. - Vol.
volume 4098 of Lecture Notes in Computer. - pp. 277–286.
[TWE 12] Twenga Hub Bluetooth : 8 offres parmi 5 boutiques [En ligne] // reseaux.twenga.fr. - 14 August
2012. - 14 August 2012. - http://reseaux.twenga.fr/hub-bluetooth.html.
[VAL 07] Valentin Rudy Peripherique Bluetooth [Ouvrage]. - [s.l.] : 2 éme informatique Helho, 2007.
[VAL 07b] Valentin Rudy Peripherique Bluetooth [En ligne] // http://www.hesit.be/. - 2007. - 24 11 2011. -
http://www.hesit.be/files/info/2/1211543976-Bluetooth_(Rapport).pdf.
[VAN 07] VAN DEN BOSSCHE, Adrien P opositio d’u e ou elle thode d’a s d te i iste pou u
réseau personnel sans fil à fortes contraintes temporelles [Ouvrage]. - TOULOUSE : LABORATOIRE LATTIS EA
4155 Groupe SCSF Systèmes Communicants Sans Fil, 2007.
[WST 12] W. Steven Conner Jan Kruys,Kyeongsoo (Joseph) Kim,Juan Carlos Zuniga, IEEE 802.11s Tutorial
Overview of the Amendment for Wireless Local Area Mesh Networking [En ligne] = 802.11s Interworking
Approach, // www.ieee802.org. - 13 November 2006. - 12 04 2012. -
http://www.ieee802.org/802_tutorials/06-November/802.11s_Tutorial_r5.pdf.
[WIF 10] Wi-Fi Alliance Wi-Fi CERTIFIED Wi-Fi Di e t™: Co e t ith the possi ilities [Rappo t]. - [s.l.] : Wi-Fi
Alliance, 2010. www.netgear.fr [En ligne] // www.netgear.fr. -
http://www.netgear.fr/images/WN3000RP_fr65-17219.pdf.
[YBO 05] Y. Boichut P.-C. H´eam, O. Kouchnarenko Automatic verification of security protocols using
approximations [Rapport] = Report RR 5727,. - [s.l.] : INRIA,, 2005.
[YAN 08] Yann GLOUCHE Thomas GENET,Erwan HOUSSAY, a Security Protocol ANimator for AVISPA
[Rapport] : User Manual / IRISA ; Universit´e de Rennes 1. - Rennes : INRIA, 2008. - p. 18.
[ZYG 03] Zygmunt J. Haas Marc R. Pearlman, Prince Samar The Intrazone Routing Protocol (IARP) for Ad Hoc
Networks [Rapport] / Cornell University. - 2003. - http://tools.ietf.org/html/draft-ietf-manet-zone-iarp-
02.txt. - RFC 2026.
[ZYG 02] Zygmunt J. Haas Marc R. Pearlman, Prince Samar, The Interzone Routing Protocol (IERP) for Ad Hoc
Networks [Rapport] / Cornell University. - 2002. - http://tools.ietf.org/html/draft-ietf-manet-zone-ierp-02.txt.