Rapport Final
Julien VAUDOUR
Je remercie Monique Becker, Michel Marot et Vincent Gauthier pour leur enca-
drement de qualité et pour leur sympathie. Je les remercie aussi, ainsi que Alexandre
Delye de Mazieux, pour m’avoir permis de co-publier un état de l’art sur les ré-
seaux de capteurs sans fil [6] avec eux et André-Luc Beylot, Riadh Dhaou, Rahim
Kacimi de École Nationale Supérieure d’Électrotechnique, d’Électronique, d’In-
formatique, d’Hydraulique et des Télécommunications.
ii
Conservatoire National des Arts et Métiers
FICHE SIGNALÉTIQUE
Descriptif : Les réseaux de capteurs sans fils sont soumis à des contraintes,
surtout en termes de consommation d’énergie. Ce mémoire présente des
mécanismes concernant la couche MAC permettant d’économiser l’éner-
gie.
Résumé
iv
v
À partir de l’étude de ces trois protocoles nous avons introduit une évo-
lution possible de BMAC qu’il reste encore à évaluer.
Table des matières
Remerciements ii
Résumé iv
Introduction 1
1 Contexte 2
1.1 Présentation de l’INT . . . . . . . . . . . . . . . . . . . . 2
1.2 Présentation du département RST . . . . . . . . . . . . . 2
1.3 Présentation du laboratoire SAMOVAR . . . . . . . . . . 2
1.4 Équipe de travail . . . . . . . . . . . . . . . . . . . . . . 3
2 Présentation du sujet 4
2.1 Le projet Capteurs . . . . . . . . . . . . . . . . . . . . . 4
2.1.1 Présentation . . . . . . . . . . . . . . . . . . . . . 4
2.1.2 Les Problématiques . . . . . . . . . . . . . . . . . 4
2.2 Programme d’initiative Réseaux autonomes et spontanés . 5
2.2.1 Description du Programme d’Initiative . . . . . . . 5
2.3 Les réseaux de capteurs . . . . . . . . . . . . . . . . . . . 5
2.4 Notion de cluster [5] . . . . . . . . . . . . . . . . . . . . 6
2.5 Généralités sur les couches MAC . . . . . . . . . . . . . . 6
2.6 Objet du stage . . . . . . . . . . . . . . . . . . . . . . . . 6
vi
TABLE DES MATIÈRES vii
3.2.1.1 BlueTree . . . . . . . . . . . . . . . . . 13
3.2.1.2 Bluenet . . . . . . . . . . . . . . . . . . 13
3.2.2 formation immédiate avec esclaves parqués . . . . 13
3.2.3 formation à la demande . . . . . . . . . . . . . . . 14
3.3 Le routage dans BlueTooth . . . . . . . . . . . . . . . . . 15
3.4 Les limites de BlueTooth . . . . . . . . . . . . . . . . . . 16
6 Le simulateur 29
6.1 Présentation du simulateur OMNeT++ . . . . . . . . . . . 29
6.2 Le framework MACSimulator . . . . . . . . . . . . . . . 30
Conclusion 39
Bibliographie 40
Introduction
Les réseaux de capteurs trouvent des applications dans des réseaux sans
fil et sans infrastructure ne nécessitant pas un débit élevé tel que la do-
motique ou l’agriculture intelligente. La réalisation de ce type de réseau
requiert la mise en œuvre de techniques développées pour les réseaux ad-
hoc ; cependant, la plupart des protocoles développés pour ceux ci ne sont
pas transposables tels que aux réseaux de capteurs.
1
Chapitre 1
Contexte
2
CHAPITRE 1. CONTEXTE 3
Présentation du sujet
4
CHAPITRE 2. PRÉSENTATION DU SUJET 5
tel réseau. Dans un premier temps, il s’agit de mener une étude bibliogra-
phique sur les différentes solutions pour la couche MAC pour un réseau de
capteurs afin de déterminer les solutions qui peuvent être retenues. Il s’agit
ensuite soit de mener une étude comparative par simulation de différentes
solutions.
8
CHAPITRE 3. BLUETOOTH POUR LES RÉSEAUX DE CAPTEURS 9
F IG . 3.1 – Piconet
F IG . 3.2 – Scatternet
Elle établit la connexion réelle entre les deux dispositifs. En règle gé-
nérale, cette procédure suit la procédure d’inquiry, mais elle peut aussi être
CHAPITRE 3. BLUETOOTH POUR LES RÉSEAUX DE CAPTEURS 12
3.2.1.1 BlueTree
3.2.1.2 Bluenet
Bluenet [12] est basé sur le concept de graphe de visibilité. Dans une
premiere phase, chaque nœud collecte des informations sur ses voisins (au
sens spatial) en état d’inquiry pour former un graphe de visibilité. Ensuite il
page ses voisins au hasard. À la fin de cette phase, les piconets sont formés.
Ensuite dans une deuxième phase, chaque nœud relance une phase d’inquiry
pour se connecter à d’autres nœuds. Ainsi, à la fin d’une troisième phase, le
scatternet est formé.
L’inconvénient de cet algorithme est qu’il fait appel deux fois à la procé-
dure d’inquiry qui est assez consommatrice d’énergie. De plus l’ajout d’un
nouveau nœud n’est pas aisé.
Lorsqu’un nœud veut envoyer des paquets à un autre, il regarde s’il connaît
une route vers cette destination. Si c’est le cas, il peut envoyer ses paquets.
Sinon il émet un paquet de découverte de route (RDP) qui est envoyé à tout
le réseau. Lorsque la destination reçoit le paquet, elle envoie un paquet de
réponse de route (RRP) en utilisant la route découverte. Avec le passage
du paquet RRP, des liens Bluetooth point-à-point sont créés pour connecter
les nœuds faisant partie de cette nouvelle route. En même temps, les tables
de routages de ces nœuds sont remplis avec les informations nouvellement
découvertes. Quand la source reçoit le paquet RRP, elle peut donc émettre
ses paquets.
4.1 TinyOS
TinyOS est un système d’exploitation open source conçu pour les cap-
teurs sans fils et développé par l’Université de Berkeley. Il est basé sur une
architecture à base de modules : pilotes pour des capteurs, des protocoles ré-
seau et des services distribués. Les composants sont programmés en nesC,
un langage de programmation dérivé du C adapté aux faibles ressources
physiques des capteurs. Un certain nombre de plateformes sont déjà directe-
ment programmables comme par exemple les tmote (moteiv) ou les MicaZ
(Crossbow) (ces deux modèles sont compatibles ZigBee). TOSSIM est un
simulateur de capteurs pour les programmes TinyOS. Tout programme en
nesC peut être compilé de manière à être exécuté dans TOSSIM, ce qui per-
met de simuler le comportement d’un ou plusieurs capteurs ainsi program-
més. Cependant TOSSIM ne permet pas de simuler plusieurs programme
nesC en même temps. On ne peut donc pas simuler un réseau de capteurs
ayant des nœuds hétérogènes.
Il est important de noter que pour l’instant, TinyOS n’implémente pas le
standard IEEE 802.15.4 en entier. Pour les capteurs utilisant des chips radio
compatibles ZigBee, TinyOS n’offre que la couche physique de ce standard
et pour la couche MAC utilise BMAC.
17
CHAPITRE 4. LES SYSTÈMES D’EXPLOITATION POUR LES CAPTEURS18
4.2 MOS
MOS [3] est un système d’exploitation open-source pour les capteurs
développé par le MANTIS group à l’Université du Colorado. MOS est déve-
loppé en C. Il supporte les plateformes de la famille MICA et de la famille
Telos.
4.3 SOS
SOS [4] est un système d’exploitation open-source pour les réseaux de
capteurs développé par le laboratoire réseaux et systèmes embarqués de
l’Université de Los Angeles. Il est basé sur une architecture modulaire. SOS
est écrit en C. Il supporte les plateformes de la famille MICA. Avrora est
un simulateur pour les programmes SOS. SOS a l’avantage de posséder une
implémentation complète de la topologie en étoile du standard 802.15.4.
4.4 Conclusion
TinyOS est de loin le système d’exploitation le plus utilisé pour les ré-
seaux de capteurs sans fils. TinyOS utilise principalement SMAC comme
couche MAC et utilise BMAC pour les capteurs compatibles ZigBee. De
plus l’équipe du projet Consensus [2] a porté TMAC dans la branche de dé-
veloppement de TinyOS. De plus, par rapport à MOS et SOS, il a l’avantage
d’être écrit dans un langage spécifique optimisé pour les capteurs.
Chapitre 5
19
CHAPITRE 5. LES DIFFÉRENTES COUCHES MAC 20
CA similaire à celle utilisée dans les réseaux 802.11, la deuxième est une
méthode de type slotted CSMA-CA (accès multiples durant un intervalle de
temps). La méthode Slotted CSMA-CA utilise des supertrames ; Celles ci
sont définies par le coordinateur, et ont pour principal avantage de permettre
la synchronisation de l’ensemble des éléments entre eux, et ainsi d’écono-
miser l’énergie de chacun des nœuds du réseau. Les supertrames sont tout
d’abord divisées en deux parties : une partie active et une partie inactive ;
durant la partie inactive le coordinateur n’interagit pas avec le réseau et se
place en mode veille. Chaque supertrame commence par un beacon qui est
envoyé par le coordinateur du réseau, et qui permet la synchronisation entre
les nœuds et le coordinateur. Le beacon est immédiatement suivi par une
zone appelée Contention Access Period (CAP), qui permet à chaque élé-
ment du réseau d’envoyer ou de recevoir des trames de commandes et de
données.
L’accès au canal durant la période CAP suit le mécanisme CSMA-CA :
l’émetteur écoute le canal pendant une durée aléatoirement tirée (algorithme
de backoff) puis émet si le canal est libre. L’algorithme CSMA-CA induit
une consommation électrique importante (surtout durant les périodes de fort
trafic), ce qui a conduit à réduire l’intervalle valeur que peut prendre l’al-
gorithme de backoff de 0 à 2. Ce procédé réduit la période de contention
pendant laquelle l’émetteur doit écouter le canal.
Une autre zone optionnelle disponible dans la supertrame (CFP) est utilisée
pour les transmissions nécessitant de la qualité de service. Le CFP est di-
visé en slots, dont le coordinateur gère l’allocation en fonction des besoins.
Une station qui se voit attribuer un slot est assurée qu’aucune autre station
ne transmettra durant cette période. L’allocation d’un slot fait suite à une
négociation entre un nœud et le coordinateur. Si la négociation aboutit le
coordinateur informe le nœud en plaçant une information (stream index)
dans le prochain beacon (l’algorithme d’allocation n’est pas défini dans le
standard).
Le mode de communication utilisant les supertrames garantit un très faible
taux d’utilisation des ressources (souvent inférieur à 10%), car les nœuds
formant le réseau ont un temps de veille garanti très long (les nœuds ne sont
actifs que durant la période CAP).
du réseau (comme dans un piconet BlueTooth). Alors que, dans le cas d’une
topologie point à point, les trois types de transactions sont disponibles.
5.2 SMAC
5.2.1 généralités
calculer une estimation du temps durant lequel ils ne devront pas émettre sur
le canal radio. On résoud ainsi le problème des stations cachées et on assure
ainsi une réservation du canal. Ainsi, en reprenant l’exemple précédent, le
nœud A, comme cela est illustré sur la figure 5.2 peut réserver le canal et
ainsi empêcher B d’envoyer des paquets au nœud C qui provoqueraient une
collision.
5.2.2 SMAC
5.2.2.1 Bases
5.2.2.2 synchronisation
reservé à la synchronisation.
5.3 TMAC
5.3.1 Bases
Dans T-MAC (Timeout MAC) [11], chaque nœud se réveille périodique-
ment pour communiquer avec ses voisins. On a donc, comme dans S-MAC
CHAPITRE 5. LES DIFFÉRENTES COUCHES MAC 25
5.3.2 Synchronisation
Quand un nœud se réveille, il commence par écouter. Si il n’entend
rien pendant un certain temps, il choissit un ordonnancement de frame et
le transmet par un paquet SYNC qui contient le temps jusqu’au début de
la frame suivante. Si au démarage, le nœud reçoit un paquet SYNC d’un
autre nœud, il suit l’ordonnancement défini dans ce paquet et transmet son
propre SYNC en conséquence. Les nœuds retransmettent leur SYNC de
temps en temps. Si un nœud a déjà adopté un ordonnancement et qu’il re-
çoit un paquet SYNC d’un autre nœud avec un autre ordonnancement, alors
il doit adopter les deux ordonnancements. Il doit aussi transmettre un paquet
SYNC à l’autre nœud pour que celui-ci apprenne la présence d’un autre or-
donnancement. Le fait d’adopter les deux ordonnancement signifie que le
nœud va avoir un évènement d’activation au début de chacune des deux
frames. Les nœuds ne doivent débuter une transmission de données qu’au
début de leur propre période active. A ce moment, à la fois les voisins ayant
le même ordonnancement et ceux l’ayant adopté en plus sont réveillés.
TA doit être suffissament long pour prendre en compte l’attente avant l’émis-
sion du paquet SYNC et le temps de la réception éventuelle d’un paquet
RTS.
5.3.4 FRTS
Avec T-MAC, il peut y avoir un problème quand le trafic est essentiel-
lement unidirectionnel (ce qui est le cas quand les capteurs doivent surtout
remonter les informations vers une station collectante). Par exemple (voir
figure 5.4) supposons qu’un nœud A doit envoyer des données à un nœud D
en passant par les nœuds B et C, A ayant pour voisin B, B ayant pour voisins
A et C, C ayant pour voisins B et D et D ayant pour voisin C. Considérons
le nœud C avec des paquets en attente pour le nœud. Le nœud C peut perdre
la contention à cause de B (en recevant un paquet RTS de B) ou à cause
de A (en recevant un paquet CTS de B en réponse à un paquet RTS que B
a reçu de A). Considérons le deuxième cas. C ayant reçu le CTS de B, il
doit rester silencieux et donc D ne reçoit rien. Par conséquent il retourne
en sommeil. Quand A a fini de transmettre les données, B émet un paquet
d’aquitement (ACK) que tous ses voisins reçoivent (et donc C). C peut donc
espérer obtenir la contention pour transmettre ses paquets à D mais D étant
en sommeil, il ne peut pas recevoir le paquet RTS de C.
5.4 BMAC
BMAC (Berkeley MAC) [10] a été développé par l’Université de Berke-
ley et est actuellement utilisé dans TinyOS avec la couche physique de la
norme IEEE 802.15.4 pour les capteurs compatibles ZigBee.
BMAC est basé principalement sur deux principes : l’analyse du bruit sur
le canal radio et sur l’écoute basse consommation.
Quand un nœud veut envoyer un paquet, il détermine si le canal radio est
utilisé par un autre nœud ou pas en écoutant le "bruit" en se basant sur un
indicateur de puissance du signal. Si il n’y a pas de bruit, le canal est libre
et il peut donc émettre. Avant d’envoyer des données il doit émettre un pré-
ambule.
Les nœuds sont en sommeil la plupart du temps et se réveillent à intervalles
réguliers (comme illustré sur la figure 5.6). A leur réveil ils écoutent le bruit
sur le canal radio. Si il n’y a pas de bruit sur le canal radio, le nœud retourne
CHAPITRE 5. LES DIFFÉRENTES COUCHES MAC 28
Le simulateur
Un module est une entité dans laquelle on peut définir des fonctionna-
lités. Un module peut être un nœud, un protocole, une couche, la zone de
portée d’une onde radio (dans le cas de réseaux sans fil), etc. Les modules
peuvent avoir leurs propres paramètres. Ces paramètres peuvent être utili-
sés pour modifier les comportements du module et paramétrer la topologie
du modèle. Les modules au plus bas niveau de la hierarchie de module dé-
crivent le comportement. Ces modules sont appelés modules simples et ils
sont implémentés en C++ en utilisant la librairie de simulation.
29
CHAPITRE 6. LE SIMULATEUR 30
31
CHAPITRE 7. ETUDE COMPARATIVE DE BMAC, SMAC ET TMAC 32
1.1
Smac 6%
Smac 7,5%
1 Smac 9%
Smac 10,5%
Smac 12%
0.9 Smac 13,5%
Smac 16,5%
Smac 18%
Smac 27%
0.8 Tmac-oa-frts
Bmac
smac
0.7
mA/s
0.6
0.5
0.4
0.3
0.2
0.1
0 1 2 3 4 5 6
octets/noeud/seconde
4
Smac 9%
Smac 18%
Smac 27%
3.5 Smac 37%
Smac 46%
Smac 55%
Smac 64%
3 Smac 73%
Smac 82%
Smac 92%
Tmac-oa-frts
2.5 Bmac
smac
mA/s
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
octets/noeud/seconde
Sur la figure 7.1, tous les nœuds sont dans le même voisinage radio.
Dans le cas d’un réseau multisaut (figure 7.2), chaque nœud n’a à sa portée
radio que les huits nœuds qui l’entourent (sauf dans le cas des nœuds du
bord de la grille).
Sur les figures 7.1 et 7.2, on trace la courbe de SMAC pour différentes va-
leurs de la période active (exprimée ici en pourcentage de la période de
cycle). Dans les deux cas, pour SMAC, on contaste que, à longueur de pé-
riode active fixée, la consommation d’énergie moyenne sur le réseau dé-
croit quand la charge de trafic croit, pour atteindre pour un certain trafic
une consommation minimum. Au delà de cette charge de trafic, il y a sa-
turation avec des pertes de paquets dues à des débordements de buffer. La
baisse de la consommation d’énergie quand le trafic croît est due au mé-
canisme d’overhearing avoidance. En effet, plus un nœud émet, plus il
"oblige" ses voisins à dormir pendant leur période active, ce qui entraine
qu’ils consomment moins d’énergie. La saturation est du au fait que si un
nœud contraint ses voisins trop souvent à dormir pendant leur période ac-
tive, ceux-ci n’auront plus le temps d’envoyer leur paquets, d’où un débor-
dement de buffer.
Dans un réseau à un saut (figure 7.1), SMAC présente de meilleures perfor-
mances que TMAC et BMAC. On peut également constater que TMAC est
plus performant que BMAC sur les faibles débits tandis que pour des dé-
bits un peu plus élever c’est l’inverse car la consommation d’énergie pour
BMAC croît moins vite avec le débit que pour TMAC.
Dans un réseau multisaut (figure 7.2), BMAC et TMAC sont meilleurs que
SMAC. La consommation d’énergie par rapport au débit croît beaucoup
plus vite pour SMAC que pour TMAC et BMAC, en considérant àchaque
fois pour SMAC la consommation minimale pour le débit considéré. Ce-
pendant BMAC sature très tôt, et on ne peut pas aller au delà de 1 octet par
seconde ; ceci est notamment du à un problème de collisions car BMAC n’a
aucun mécanisme pour éviter le problème de stations cachées. Cependant
la consommation d’énergie pour BMAC semble croître moins avec le débit
que pour TMAC. On peut donc imaginer, au vue de l’allure des courbes,
que si on n’avait ce problème de saturation dans BMAC, que cette couche
MAC serait plus performante que TMAC à partir de débits relativement peu
élevés. SMAC peut tenir des débits plus importants que TMAC.
4
BMac
SMac 9%
SMac 18%
3.5 SMac 27%
SMac 37%
SMac 46%
SMac 55%
3 SMac 64%
SMac 73%
SMac 82%
SMac 92%
2.5 SMac
TMac-oa
mA
1.5
0.5
0
0 10 20 30 40 50 60 70 80
octets/noeud/s
Pour TMac, on utilise une période de cycle de six cent dix millisecondes
et une longueur de quinze millisecondes pour le timeout. On utilise TMAC
avec l’overhearing avoidance, ce qui donne les meilleures performances.
On n’a pas garder les autres configurations d’option de TMAC pour assurer
une meilleure lisibilité de la courbe. Pour SMac, on utilise une période de
cycle de une seconde et on fait varier la longueur de la période active. Pour
tracer la consommation de SMAC sur la figure 7.3, nous avons utiliser la
même manière que pour les figures 7.1 et 7.2. La consommation d’énergie
pour SMAC est supérieure à celle de TMAC et BMAC. TMAC est plus pre-
formant que BMAC pour les faibles débit, mais l’évolution de la consom-
mation d’énergie par rapport au débit étant plus faible pour BMAC que pour
TMAC, BMAC est meilleur sur le débit plus élevé (environ pour les débits
supérieurs à 20 octets/secondes). Contrairement à ce qu’on observe pour le
modèle Node-to-Sink, TMAC et BMAC sature pour des débits semblables.
SMAC peut tenir des trafics légèrement plus élevés que ces derniers.
7.4 Conclusion
Les simulations effectuées nous ont permis de montrer que TMAC et
BMAC étaient meilleurs que SMAC en terme de consommation énergé-
tique. Dans les simulations effectuées nous avons aussi montré que BMAC
consommait moins d’énergie que TMAC et SMAC dans le cas de débit
élevé, alors que dans le cas de faibles débits, TMAC est meilleur que BMAC.
CHAPITRE 7. ETUDE COMPARATIVE DE BMAC, SMAC ET TMAC 35
Cependant il est à noter que BMAC sature à des débits relativement faibles,
cela est dû au phénomène de stations cachées.
Chapitre 8
Développements futurs :
évolution de BMAC
Cependant BMAC, par sa simplicité, est très intéressant. Par son absence
de besoin de synchronisation, il permet que l’ajout de nouveaux nœuds soit
aisé et sans trop de risque de dégradation de performances. Dans SMAC
et TMAC, lorsque l’on ajoute un nouveau nœud, il y a toujours le risque
que ce nouveau nœud adopte un autre cycle, obligeant ainsi ces voisins à se
synchroniser sur ce cycle en plus de celui qu’ils suivaient déjà, dégradant
36
CHAPITRE 8. DÉVELOPPEMENTS FUTURS : ÉVOLUTION DE BMAC 37
8.2.1 Fonctionnement
Comme dans BMAC, les nœuds se réveillent à intervalles réguliers et
chaque phase de réveil commence par une phase d’écoute du canal. Si il n’y
a pas de bruit sur le canal, le canal est libre. Dans le cas contraire, le canal
est occupé et le nœud reste éveillé jusqu’au début de la réception du paquet.
Lorsqu’un nœud veut émettre un ou des paquets de données, au début de sa
phase d’éveil il écoute le canal pendant une duré alétoire dans un intervalle
préderminé. Si il n’y a pas de bruit sur le canal, il émet un paquet RTS
précédé (comme les paquets dans BMAC) d’un préambule suffisamment
long pour que tous ses voisins puissent savoir qu’un paquet va arriver. Si
il peut accepter ce transfert de données, le destinataire du RTS répond par
un paquet CTS avec lui aussi un préambule long et reste éveillé. L’émission
du CTS est précédée d’une periode de contention, comme pour le RTS.
Le CTS contenant des informations sur la taille des données qui vont être
transmises, les voisins du destinataire des données vont pouvoir estimer
la durée de cet échange et se mettre totalement en sommeil durant cette
période, c’est-à-dire que durant cette période, ils abandonnent les réveils
réguliers. Aprés la réception du CTS, la source des données émet un paquet
DS (Data Send) précédé d’une période de contention et d’un préambule
long, ce paquet contenant des informations sur la taille des données qui vont
être émises avant que ses voisins puissent passer en sommeil total durant la
période d’émission des données. Les paquets de données sont ensuite émis
sans préambule long.
CHAPITRE 8. DÉVELOPPEMENTS FUTURS : ÉVOLUTION DE BMAC 38
L’avantage par rapport à SMAC et TMAC est que cette solution ne né-
cessite pas de synchronisation.
Conclusion
Pour essayer d’avoir un réseau évolutif (dans le sens où l’on peut rajou-
ter d’autres capteurs ne provenant pas forcément du même constructeur),
l’utilisation de BlueTooth peut se justifier. Mais les spécifications de Blue-
Tooth rendent difficile, voire impossible, la création d’un grand réseau de
capteurs.
Dans les simulations effectuées nous avons aussi montré que BMAC
consommait moins d’énergie que TMAC et SMAC dans le cas de débit
élevé, alors que dans le cas de faibles débits, TMAC est meilleur que BMAC.
Cependant il est à noter que BMAC sature à des débits relativement faibles,
cela est dû au phénomène de stations cachées. C’est pourquoi il est inté-
ressant d’intégrer un mécanisme de RTS/CTS dans BMAC par pallier à ce
problème. L’introduction de ce mécanisme s’accompagne de quelques op-
timisations permettant d’économiser un peu d’énergie lors de l’émission de
paquets de données.
39
Bibliographie
40
BIBLIOGRAPHIE 41