Routage dans les Réseaux de Capteurs Sans Fils
Routage dans les Réseaux de Capteurs Sans Fils
THEME
LE ROUTAGE DANS LES RESEAUX DE
CAPTEURS SANS FILS
Remerciements
C’est grâce à la volonté que Dieu nous procure, celui qui nous a permis
d’être à ce niveau d’études. Une détermination d’aller chaque fois plus loin dans
le but d’acquérir plus de savoir et de compréhension, la seule chose qu’on espère
est d’être toujours à la hauteur.
C’est avec un grand plaisir qu’on réserve ces lignes en signe de gratitude et
de reconnaissance à tous ceux qui ont contribués de près ou de loin à
l’élaboration de ce travail.
Enfin on tient à exprimer nos remerciements pour toutes personnes qui ont de
loin ou de prêt contribué à la réalisation de ce travail :
A nos chers parents pour l’amour et le soutient dont ils nous ont entouré
A toute notre famille
Qu’ils sachent à travers ces quelques mots combien nous leurs sont
reconnaissantes et combien on sait tout ce qu’on leurs doit.
Merci à vous tous
PDF Page Organizer - Foxit Software
Dédicaces
A mon père,
A ma mère,
Farid et Aziz pour leurs soutient durant toute ces années d’études
Qui ma aider pour surmonté toute difficulté, pour ces conseils précieux
et sa présence et son encouragement à avancer et a réussir.
HANANE FERRAT
PDF Page Organizer - Foxit Software
Dédicaces
Je me souviens de la parole de M. Ait –SIMMAR Belkacem chef librairie des
offices des publications universitaire OPU à Tizi Ouzou, auquel je partais avec
mon père acheter mes livres informatiques, il me disait : « tant que ta la volonté
ma fille tu peux aller très loin ».
Résumé
Dans la vie courante, l’utilisation des réseaux capteurs sans fil est de plus en plus
demandée pour la supervision et la sécurité.
Les capteurs fonctionnent à basse tension et sont gérés par un système d’exploitation
spécialisé. TinyOS est un système d’exploitation qui permet d’exécuter des applications sur
les capteurs. Le NesC est le langage utilisé pour ce développement de ces applications.
La communication entre les différents noeuds capteurs se fait par ondes radios et
l’acheminement des données à travers ces différents nœuds (capteurs) obéit à un protocole de
routage. La qualité de ce protocole a une incidence directe sur les performances globale du
réseau.
Le routage dans les réseaux de capteurs est une opération essentielle. Il permet aux nœuds
éloignés de la station de base de récolter, de pouvoir acheminer leurs informations à cette
dernière en les faisant passer d’un nœud à autre. Toutefois, à cause des caractéristiques des
nœuds capteurs, pauvres en énergie et en puissance de calcul, les protocoles classiques ne sont
pas facilement adaptables.
Dans cette optique, notre projet présentera la synthèse des protocoles de routages portés
sur un réseau de capteurs sans fils, on s’intéressera aux caractéristiques essentielles de chaque
protocole de routage. Nous y décrivons également l’évaluation sous TinyOS de deux
protocoles AODV-adapté et LEACH pris comme exemples de simulation sur le simulateur
TOSSIM.
Mots-clés: Réseaux de capteurs sans fil, réseaux Ad Hoc, routage, protocole de routage,
TinyOS, Tossim, LEACH, AODV, AODV-adapté
PDF Page Organizer - Foxit Software
Abstract
In everyday life, the use of wireless sensors Network is increasingly required for supervision
and safety.
The sensors operate at low voltage and were managed by a specialized operating system.
TinyOS is an operating system that allows running applications on the sensors. The Nesc is
the language used for this development.
Communication between the various sensors is via radio waves and the flow of data through
these different nodes (sensors) follows a routing protocol. The quality of this protocol has a
direct impact on the global performance for network.
The Routing in sensor networks is an essential operation. It allows nodes distant from the
base station to collect, can send their information to it by passing from one node to another.
However, because of the characteristics of sensor nodes, low in energy and computing power,
standard protocols are not easily adaptable.
In this context, our project will present a summary of routing protocols on a network of
sensors without son will address the essential characteristics of each routing protocol. It also
profiles the evaluation of both protocols in TinyOS AODV-adapte and LEACH as an example
of simulation on the simulator Tossim.
Key words: Wireless Sensor Networks, Ad Hoc Networoks, routing, routing protocol,
TinyOS, Tossim, LEACH, AODV, AODV-adapte.
PDF Page Organizer - Foxit Software
SOMMAIRE
SOMMAIRE
LISTE DES FIGURE
LISTE DES TABLEAUX
LISTE DES GRAPHES
LISTE DES ABREVIATIONS
i
PDF Page Organizer - Foxit Software
SOMMAIRE
II.3 Caractéristiques des réseaux de capteur .............................................................. 15
c II.4 Contraintes de conception des RCSF ................................................................... 17
c II.5 Applications des RCSF ........................................................................... 18
II.6 Projets d’applications en cours ........................................................................... 19
c II.6.1 Newtrax pour les applications militaires ........................................................ 19
c II.6.2 Glacsweb pour les applications environnemental ......................................... 19
jjII.6.3 Projet en cours dans le domaine médicale ..................................................... 20
III Différences entre les réseaux de capteurs et les réseaux Ad hoc classiques .................. 21
Conclusion…………………………………………………………………..…………………22
INTRODUCTION……………………………………………..……………………………...24
I Métriques de routage .......................................................................... 24
I.1 Métriques pour la consommation énergétique ...................................................... 25
I.2 Nombre de sauts .................................................................................................... 25
I.3 Perte de paquets ..................................................................................................... 25
I.4. Délai de bout-en-bout EED ................................................................................... 25
II Classification des protocoles de routage …………… …...………………………………………26
II.1 Selon la Topologies des réseaux capteurs sans fils …..……………………..….26
II.1.1 Topologie Hiérarchique ......................................................................... 26
II-1-2 Topologie plate (Flat) ............................................................................ 27
II-1-3 Topologie basée Localisation ................................................................ 28
II-2 Selon le Paradigme de communication .......................................................... 29
II-3 Type d'application ........................................................................................... 29
III- Types de protocoles de routages ................................................................................... 30
III-1 Les protocoles proactifs ............................................................................................. 30
ii
PDF Page Organizer - Foxit Software
SOMMAIRE
III-2 Les protocoles réactifs....................................................................................... 31
III-3 Les protocoles hybrides ................................................................................... 31
III-4 Les protocoles dédiés ................................................................................................. 31
iii
PDF Page Organizer - Foxit Software
SOMMAIRE
VI Comparaison entre les protocoles de routage ............................................................... 46
Conclusion ........................................................................................................................... 47
Introduction .......................................................................................................................... 49
I Table de routage ................................................................................................................ 49
II Principe des numéros de séquence .................................................................................. 49
III Formats des messages .................................................................................................... 50
III.1 Route Request (RREQ) Message Format ............................................................. 50
III.2 Route Reply (RREP) Message Format ................................................................. 51
III.3 Route ERRor (RERR) Message Format ............................................................... 52
IV Le mécanisme de découverte de route (Route Discovery) ............................................. 52
IV.1 Génération des messages Route Request (RREQ) ................................................. 53
IV.2 Traitement et acheminement des messages Route Request (RREQ ...................... 53
IV.3 Réception et acheminement des messages Route Reply ......................................... 54
IV.4 Exemple de découverte de routes ........................................................................... 54
V Le mécanisme de maintenance de route (Route Maintenance) ...................................... 56
V.1Maintien de la connectivité locale .............................................................................. 56
V.2 Traitements liés aux messages Route Error (RERR) .............................................. 56
V.3 Réparation locale (Local Repair) ............................................................................. 57
V.4 Exemples de maintenance de route ......................................................................... 57
Conclusion ........................................................................................................................... 59
iv
PDF Page Organizer - Foxit Software
SOMMAIRE
CHAPITRE IV : TinyOS ET TOSSIM
Introduction .......................................................................................................................... 61
I. Le système d’exploitation Tinyos ....................................................................62
I.1 L’utilité d’un nouvel OS pour les "motes" ........................................................... 62
I.2 La solution TinyOS ..................................................................................................... 63
I.2.1 Caractéristiques de TinyOS ............................................................................... 63
I.2.2 Aperçus général de TinyOS ................................................................................ 64
I.3 Equipements supportés par TinyOS ....................................................................................... 64
I.4. Allocation de la mémoire ........................................................................................................ 64
I.5. Allocation de ressources ............................................................................................. 65
I.6 Modèle d’exécution de TinyOS .................................................................................. 65
I.6.1 Programmation par événement .......................................................................... 66
I.6.2 Tâches .................................................................................................................. 66
II. Le langage de programmation NesC .............................................................................. 66
II.1 Présentation ........................................................................................................ 66
II.2 Concepts du langage NesC .................................................................................. 67
II.3 Les fichiers dans NesC .............................................................................................. 67
II.3.1 Architecture des fichiers Nesc ........................................................................ 68
II.3.2 Types de fonctions en NesC ........................................................................................ 71
II.3.3 Commands vs. Events vs. Tasks...................................................................... 71
II.4 Compilation ............................................................................................................... 72
II.5 Exemple d’application .............................................................................................. 73
III TOSSIM (TinyOS SIMulator) ........................................................................................ 75
jj III.1 Topologie d’un réseau avec TinyOS ..................................................................... 75
III.2 Avantages ............................................................................................................... 76
jj III.3 Inconvénients ......................................................................................................... 76
CONCLUSION ..................................................................................................................... 77
v
PDF Page Organizer - Foxit Software
SOMMAIRE
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Introduction .......................................................................................................................... 79
I. Implémentation du protocole AODV .............................................................................. 79
I.1 Structure des données ............................................................................................... 79
I.1.1 Structure des messages RREQ, RREP, RERR ................................................. 79
I.1.2 Structure d’un paquet AODV ............................................................................ 81
I.1.3 Structure de Route Cache table et Route table.................................................. 82
I.2 Liste des fichiers sources .......................................................................................... 83
I.3 Variable d’environnement dbg ................................................................................ 83
II Simulation du protocole AODV-adapté ........................................................................... 84
II.1 La table de routage d’AODV .................................................................................... 84
II.2 La solution envisagée :le protocole AODV-adapté ................................................... 85
III. Déroulement du protocole LEACH .............................................................................. 87
III. 1. Structures de données ............................................................................................ 90
III.2. Evénements et commandes...................................................................................... 91
III.3. Déroulement ........................................................................................................... 92
III.3.1 Déclenchement et relai du nouveau round, et, annonce des CH ................... 93
III.3.2 Formation de groupes et envoi des données................................................... 94
III.3.3 Envoi des résultats d’agrégation des données captées au nœud puits........... 95
IV. Simulation et évaluation de performances ................................................................... 96
IV.1 Métriques considérées .......................................................................................... 96
IV.2. Paramétrage de la simulation .............................................................................. 96
V-Résultats et interprétations .............................................................................................. 97
V.1 Consommation d’énergie par les nœuds pour les protocoles AODV-adapté et AODV
...................................................................................................................................... 97
V-2 Consommation d’énergie des nœuds pour les protocoles LEACH et AODV ....... 98
V-3 Consommation d’énergie des nœuds pour les protocoles LEACH, AODV et AODV-
adapté .......................................................................................................................... 99
VI. Comparaison entre le protocole AODV et le protocole LEACH ................................ 101
vi
PDF Page Organizer - Foxit Software
SOMMAIRE
VI .1 LEACH ............................................................................................................... 101
VI.2 AODV ................................................................................................................... 101
VI.3 Comparaison ........................................................................................................ 102
Conclusion............................................................................................................................ 102
CONCLUSION GENERALE ........................................................................................... 103
ANNEXES
BIBIOGRAPHIE
vii
PDF Page Organizer - Foxit Software
SOMMAIRE
viii
PDF Page Organizer - Foxit Software
Chapitre II :
Figure II-1:Classification des protocoles de routages ..................................................... 26
Figure II.2 : Topologie hiérarchique ............................................................................. 27
Figure II-3 : Topologie plate (Flat) ................................................................................ 28
Figure II-4 : Topologie Basée Localisation .................................................................... 29
Figure II-5: Fonctionnement de la procédure de demande de route dans AODV ............ 35
Figure II.6 : Fonctionnement du protocole SPIN ............................................................ 36
Figure II.7 Principaux protocoles de routages dans les RCSF......................................... 38
Figure II.8 Le Clustering dans un réseau de capteurs ..................................................... 39
Figure II.9 Diagrammes représentant le protocole MAC TDMA .................................. 41
Figure. II.10 : Diagrammes représentant le protocole MAC CDMA............................... 41
Figure. II.11 : Opérations de l’étape d’initialisation de LEACH ..................................... 45
Figure. II.11 : Répartition du temps et différentes phases pour chaque round ................. 46
Chapitre III :
Chapitre IV :
Figure IV-1 : Cigle du système d’exploitation TinyOS .................................................. 62
Figure IV.2 : TinyOS : un ensemble de composants logiciels ......................................... 64
Figure IV.3 Organisation de la mémoire dans TinyOS .................................................... 65
Figure IV.4 : Architecture générale d’une application NesC ...................................................... 67
Figure IV.5 Illustration d'une configuration basée sur la connexion de 3 modules ...................... 70
Figure IV.6 : Processus de compilation .......................................................................... 73
Chapitre V :
Figure V.1 : Structure du message RREQ ...................................................................... 80
Figure V.2: Structure de Route Reply message .............................................................. 80
Figure V.3: Structure de Route Error message ............................................................... 80
Figure V.4: Packet structure of AODV messages ........................................................... 81
Figure V.5: Structure d’un paquet de donnée AODV ..................................................... 82
Figure V.6: Structure de Route Cache Table .................................................................. 82
Figure V.7: Structure de Route Table............................................................................. 82
Figures V.8 : différentes options et modes dbg............................................................... 84
Figure V.9: le contenue de la table de routage AODV.................................................... 85
Figure V.10 : le contenue de la table de routage AODV-adapté ..................................... 86
Figure V.11 : la table de routage AODV-adapté............................................................. 87
PDF Page Organizer - Foxit Software
Chapitre I :
TABLEAU I.1 Comparaison entre les WSN et les réseaux Ad Hoc ............................... 22
Chapitre II :
[Link] .1: Classification et comparaison des protocoles de routages dans les réseaux de
capteurs ......................................................................................................................... 47
Chapitre V :
Chapitre V :
Graphe . V-1 : Consommation d’énergie des nœuds capteurs pour les protocoles AODV et
AODV_adapté ............................................................................................................... 98
Graphe . V-2 : Consommation d’énergie des nœuds capteurs pour les protocoles LEACH et
AODV ........................................................................................................................... 99
Graphe . V-3 : Consommation d’énergie des nœuds capteurs pour les protocoles LEACH et
AODV-adapté .............................................................................................................. 100
Graphe . V-4 : Consommation d’énergie des nœuds capteurs pour les protocoles LEACH,
AODV et AODV-adapté............................................................................................... 100
PDF Page Organizer - Foxit Software
INTRODUCTION
GENERALE
Par conséquent, il est important de développer des recherches permettant d’imaginer des
réseaux denses, sans fils entre des nœuds hétérogènes et ayant pour rôles de collecter des
données d’un environnement donné et de les diffuser au sein du réseau. Ce type de réseaux de
capteurs pourrait avoir de très diverses applications. Pour que tels réseaux soient intéressants,
il faut qu’ils respectent un certain nombre de contraintes. Tout d’abord, ils doivent être sans
fils, ceci pour pouvoir être installés sans difficulté. Ensuite, les nœuds du réseau doivent être
autonomes, pour les mêmes raisons de faisabilité et rentabilité. Les traitements des données
internes vont également engendrer des consommations en énergie non négligeables dont il
faut tenir compte. Le problème de la source d’énergie doit également être évoqué. Ces
réseaux de capteurs doivent être Ad Hoc, tout d’abord dans un souci de simplicité
d’installation, mais aussi et surtout dans le souci de permettre au réseau de rester opérationnel
même après les défaillances de quelques nœuds causées fort probablement par le problème
d’autonomie. Ils doivent pouvoir s’autogérer, en utilisant des protocoles permettant
d’apprendre des éléments tels que : la topologie du réseau, le positionnement relatif des
nœuds au sein du réseau, les routes possibles pour communiquer avec un tel nœud.
Les différents problèmes sont interdépendants, puisque les protocoles de ce type de réseaux
Ad Hoc doivent aussi consommer le moins d’énergie possible. Et puisque la topologie est
aléatoire, le nombre de messages échangés pour le contrôle peut devenir très important si on
ne prend pas de précautions.
1
PDF Page Organizer - Foxit Software
INTRODUCTION
GENERALE
La comparaison se fera sur la base de la consommation énergétique. Ce paramètre est très
important dans l’étude de performance des RCSF.
Organisation du rapport :
Pour mener à bien notre travail et pour une démarche plus compréhensible nous avons élaboré
le plan suivant qui est organisé en 5 chapitres :
Le premier chapitre serra consacré à l’étude des deux types des réseaux : AH HOC et les
réseaux de capteurs sans fil et leurs architectures, leurs caractéristiques et un ensemble de
domaines d’applications de ces deux réseaux.
Nous présenterons également l’alliance ZigBee qui est un élément très important pour assurer
le routage dans les réseaux de capteurs sans fils .
Le deuxième chapitre portera sur le routage au niveau des RCSF. Ce chapitre nous
permettra de mieux connaitre la manière de communiquer dans les RCSF ainsi l’ensemble des
éléments indispensable pour réaliser cette communication.
Nous avons détaillé sur protocoles de routage, leurs hiérarchies et leurs topologies. Nous
avons aussi décrit un ensemble de protocoles pouvant être utilisés dans les réseaux de
capteurs sans fils en présentant vers la fin du chapitre le protocole LEACH.
Dans le quatrième chapitre nous allons aborder trois points essentiels, nous commencerons
par le système d’exploitation TinyOS où nous allons préciser quelques descriptions de ce
protocole ainsi que son architecture et l’ensemble d’équipement qui peuvent être supporté par
ce système. Par la suite, nous allons passer au second point qui concerne le langage de
programmation NesC en présentant ses fonctionnalités et une petite description de ses
fichiers ainsi que la manière de les compiler. Nous terminons ce chapitre par le dernier point
qui représente une description du simulateur TOSSIM de TinyOS.
Le dernier chapitre donnera les détails d’implémentation du protocole LEACH et AODV sur
le simulateur TOSSIM, nous allons les évaluer en terme de consommation d’énergie.
Enfin, nous clôturerons par une conclusion générale et des perspectives pour l’avenir.
Des annexes sont ajoutées à la fin du rapport dans le but de plus de clarté :
2
PDF Page Organizer - Foxit Software
INTRODUCTION
GENERALE
De ce fait : l’annexe A serra consacré a l’installation de la plateforme TinyOS.
Annexe C : sur le format des messages échangés entre les nœuds capteurs.
3
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
CHAPITRE I :
LES RESEAUX AH HOC ET LES
RESEAUX DE CAPTEURS SANS FIL.
4
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Introduction
Les environnements mobiles ont connu un grand essor grâce à leur flexibilité d’utilisation.
Les réseaux mobiles sans fil peuvent être classifiés en deux catégories : les réseaux avec
infrastructure et ceux sans infrastructure (les réseaux ad-hoc).
Les réseaux ad-hoc MANET (Mobile ad-hoc Network) sont des réseaux mobiles sans
infrastructure. Ce type de réseau possède une classe particulière qui est la classe des réseaux
de capteurs sans fil.
Les réseaux de capteurs sont des systèmes auto configurables. Ils doivent pouvoir
s’adapter à des situations imprévisibles. Pendant la conception d’un réseau de capteurs sans fil
une précision acceptable des informations et une utilisation optimale des ressources sont
recherchées.
Dans ce qui suit, nous allons étudier les réseaux ad-hoc et les réseaux de capteurs sans fil
apparentés aux réseaux ad-hoc, leurs descriptions, leurs principales caractéristiques, leur
architecture ainsi que leurs éventuelles applications. En outre, l’architecture de communication dans
les réseaux de capteurs sera détaillée ainsi que les différences qui les distinguent des réseaux Ad
Hoc traditionnels.
Le concept des réseaux Ad Hoc essaye d’étendre la notion de la mobilité à toutes les
composantes de l’environnement mobile. Ici, contrairement aux réseaux basés sur la
communication cellulaire, aucune administration centralisée n’est disponible. Ce sont les
hôtes mobiles, eux même, qui forment, d’une manière ad hoc, une infrastructure du réseau.
Aucune supposition n’est faite sur la taille du réseau ad hoc, théoriquement, le réseau peut
contenir plusieurs milliers d’unités mobiles.
Les réseaux ad hoc sont idéals pour les applications caractérisées par une absence d’une
infrastructure préexistante, tel que les applications militaires ou les autres applications de
tactique comme les opérations de secours (incendies, tremblements de terre,…) et les
missions d’exploration.
Un réseau ad hoc, appelé généralement MANET (Mobile Ad hoc Network), est une
collection d’unités mobiles munies d’interfaces de communication sans fil, formant un réseau
temporaire sans recourir à aucune infrastructure fixe ou à une administration centralisée. Dans
de tels environnements, les unités se comportent comme des hôtes et/ou des routeurs.
Les nœuds des MANETs sont équipés d’émetteurs et de récepteurs sans fil utilisant des
antennes qui peuvent être omnidirectionnelles (broadcast), directionnelles (point à point), ou
une combinaison de ces deux types. Ils maintiennent d’une manière coopérative la
connectivité du réseau, en fonction de leurs positions, la puissance de transmission et les
interférences entre les canaux de communication.
5
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
A un instant t, un réseau Ad Hoc peut être modélisé par un graphe non orienté
(Bidirectionnelle) Gt= (Vt , Et ), où Vt représente l’ensemble des nœuds ( c-a-d les unités
mobiles), et Et représente l’ensemble des liens existants entre ces nœuds ( figure I.1).
Si e=(u,v)€ Et , cela veut dire que les nœuds u et v sont en mesure de se communiquer
directement à l’instant t.
La mobilité des nœuds appartenant à un réseau ad hoc fait que sa topologie peut changer à
n’importe quel moment, ce qui entraîne les déconnexions fréquentes (figureI.2).
Une bande passante limitée : Une des caractéristiques primordiales des réseaux basés
sur la communication sans fil est l'utilisation d'un média de communication partagé.
Une topologie dynamique : La topologie des réseaux Ad hoc change d’une manière
fréquente et rapide à cause du déplacement arbitraire permanent des unités mobiles.
6
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Une sécurité physique limitée : Etant basés sur les communications sans fil, les
réseaux Ad hoc sont plus sensibles aux attaques qui menacent les données transmises.
Communication multi sauts : lorsqu’un nœud veut joindre un autre qui est hors de
portée, les messages sont transmis par des nœuds intermédiaires.
Les applications ayant recours aux réseaux ad hoc couvrent un très large spectre, incluant
les applications militaires et de tactique, et plus simplement les applications de calcul
distribué.
D'une façon générale, les réseaux ad hoc sont utilisés dans toute application où le
déploiement d'une infrastructure réseau filaire est trop contraignant, soit parce qu’il est
difficile à mettre en place, soit parce que la durée d'installation du réseau ne justifie pas de
câblage à demeure.
Un réseau de capteurs sans fil (RCSF), ou "Wireless Sensor Network" (WSN), est composé
d'un ensemble d'unités de traitements embarquées, appelées "motes", communicant via des
liens sans fil organisé en champs appelé sensor fields. Le but général d'un WSN est la
collecte d'un ensemble de paramètres de l'environnement entourant les motes, telles que la
température ou la pression de l'atmosphère, afin de les acheminer vers des points de
traitement.
Un réseau de capteur sans fil est composé d’un ensemble de nœuds disposés d’une manière
aléatoire dans l’environnement et pour cela l’utilisation des algorithmes d’auto organisation
est très importante.
Pour assurer le bon fonctionnement du réseau un ensemble de contraintes doivent être prise
en compte tel que la consommation d’énergie et l’utilisation des protocoles de routage pour
s’assurer d’un cheminement meilleur des données entre les différents nœuds.
Un RCSF est composé d'un ensemble de nœuds capteurs. Ces nœuds capteurs sont
organisés en champs « sensor fields » (voir figure suivante). Chacun de ces nœuds a la
capacité de collecter des données et de les transférer au nœud passerelle (dit "sink" en anglais
ou puits) par l'intermédiaire d'une architecture multi-sauts. Le puits transmet ensuite ces
7
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
données par Internet ou par satellite à l'ordinateur central «Gestionnaire de taches» pour
analyser ces données et prendre des décisions.
Un nœud capteur (dit aussi "mote" en anglais) est composé principalement d'un processeur,
une mémoire, un émetteur/récepteur radio, et une pile (voir figure suivante). Il existe plusieurs
modèles commercialisés dans le marché. Parmi les plus célèbres, les "mote" MICAx et
TelosBe de Crossbow[3].
8
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Dans le but d’un établissement efficace d’un RCSF, une architecture en couches est
adoptée afin d’améliorer la robustesse du réseau. Une pile protocolaire de cinq couches est
donc utilisée par les nœuds du réseau. Citons la couche application, la couche transport, la
couche réseau, la couche liaison de données et la couche physique.
De plus, cette pile possède trois plans (niveaux) de gestion : le plan de gestion des tâches
qui permet de bien affecter les tâches aux nœuds capteurs, le plan de gestion de mobilité qui
permet de garder une image sur la localisation des nœuds pendant la phase de routage, et, le
plan de gestion de l’énergie qui permet de conserver le maximum d’énergie.
Figure I.5 :La pile protocolaire dans les réseaux de capteur [4].
Couche application : Elle assure l'interface avec les applications. Il s'agit donc de la
couche la plus proche des utilisateurs, gérée directement par les logiciels. Parmi les
protocoles d’application, nous citons : SMP (Sensor Management Protocol) et
TADAP (Task Assignement and Data Advertisement Protocol).
Couche réseau : Elle s’occupe du routage de données fournies par la couche transport.
Elle établit les routes entre les nœuds capteurs et le nœud puits et sélectionne le
9
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
meilleur chemin en termes d’énergie, délai de transmission, débit, etc. Les protocoles
de routage conçus pour les RCSF sont différents de ceux conçus pour les réseaux Ad
Hoc puisque les RCSF sont différents selon plusieurs critères comme :
l’absence d’adressage fixe des nœuds tout en utilisant un adressage basé-attribut.
l’établissement des communications multi-sauts.
l’établissement des routes liant plusieurs sources en une seule destination pour
agréger (fusionner) des données similaires, etc.
Couche physique : Elle permet de moduler les données et les acheminer dans le
media physique tout en choisissant les bonnes fréquences.
10
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
propriétaire et légère, déclinable dans plusieurs versions plus ou moins complètes, pour des
applications de transferts de données à faibles débits et de faibles taux d’utilisation du
médium.
ZigBee s’appuie sur la norme IEEE 802.15.4 [7] [8] (que nous désignerons par la suite par
« 802.15.4 ») pour les couches physique et liaison, qui sont les couches 1 et 2 du modèle OSI.
ZigBee propose ensuite ses propres couches supérieures (réseau, etc.) qui doivent faire l’objet
d’une demande auprès de la ZigBee Alliance pour être utilisées. A ce titre, des droits sont
perçus par la ZigBee Alliance pour tout emploi d’une pile ZigBee dans le cadre d’une
application industrielle.
ZigBee est un réseau sans fil à courte portée qui utilise les ondes hertziennes pour
transporter des messages entre deux ou plusieurs entités réseaux.
Il est caractérisé par une portée comprise entre quelques mètres et quelques centaines de
mètres et un débit faible (max. 250kbits/s). La différence entre ZigBeeet et la plupart des
autres WPAN existants se situe au niveau de l’utilisation du médium hertzien est que ZigBee
est optimisé pour une faible utilisation du médium partagé par tous.
ZigBee est conçu pour interconnecter des unités embarquées autonomes comme des
capteurs, à des unités de contrôle ou de commande. De telles entités embarquées pouvant dès
lors être alimentées pendant plusieurs mois par des piles standards.
11
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Positionnement :
L’architecture de la pile Zigbee est basée sur le modèle OSI à sept 7 couches. Chacune de
ses couches rendant un ensemble de services spécifiques à la couche supérieure au travers
d'interfaces appelées "Services Acces Point" (SAP).
Elle se base sur la norme IEEE 802.15.4 pour définir les deux couches inférieures (PHY et
MAC) en tant que fondations et vient rajouter la couche "network" (NWK) et le cadre pour
les couches applicatives qui comprend la sous couche de support applicatif (Application
Support Sub-layer), les objets systèmes Zigbee (Zigbee Device Objects) et les systèmes
définis par les fabricants comme l’ illustre la figure suivante I.7(plus de détails se porter vers
l’annexe D).
12
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
La couche PHY a été conçue pour de hauts besoins d'intégration à faibles coûts.
La couche MAC (Media Access control) a été conçue pour intégrer de multiples
topologies sans complexité. Son rôle est de :
La couche NWK a été conçue pour permettre au réseau de s'étendre avec des
émetteurs à basse consommation d'énergie et pour gérer un grand nombre de nœuds
avec un temps de latence très faible.
13
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Network Beacon
Identifie le réseau ;
Décrit la structure de la super-trame ;
Indique la présence de données ;
Présent uniquement lorsque le réseau est actif ;
Il est optionnel.
Dans un environnement sans fil ce procédé n'est pas possible dans la mesure où deux
stations communiquant avec un récepteur ne s'entendent pas forcément mutuellement
14
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Energie limitée
Modèle de communication
Les nœuds dans les RCSF communiquent selon un paradigme plusieurs-à-un (many to
one). En effets, les nœuds capteurs collectent des informations à partir de leur
environnement et les envoient toutes vers un seul nœud qui représente le centre de
traitement.
Densité de déploiement
La densité est plus élevée dans les RCSF que dans les réseaux AdHoc. Le nombre de
nœuds capteurs peut atteindre des millions de nœuds pour permettre une meilleure
granularité de surveillance. De plus, si plusieurs nœuds capteurs se retrouvent dans
une région, un nœud défaillant pourra être remplacé par un autre.
15
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Les nœuds dans les réseaux sans fil classiques sont identifiés par des adresses IP.
Cependant, cette notion n’existe pas dans les RCSF.
Ces derniers utilisent un adressage basé sur l’attribut du phénomène capté, on parle
donc de l’adressage basé-attribut.
En effet, les requêtes des utilisateurs ne sont pas généralement destinées à un seul
nœud, mais plutôt, à un ensemble de nœuds identifiés par un attribut. Par exemple,
identifier un ensemble de nœuds par « les nœuds qui captent le volume du CO2
dépassant 0,0375 % dans l’atmosphère».
Habituellement les nœuds capteurs ont une taille très petite, ce facteur de forme limite
la quantité de ressources qui peuvent être mises dans ces nœuds.
Une autre conséquence, est que ces limitations imposent des portées de transmission
réduites contraignant les informations à être relayées de nœud en nœud avant
d'atteindre le destinataire. C’est la raison pour laquelle les RCSF adoptent des
communications multi-sauts
Sécurité
Les contraintes et limitations physiques font que l’absence d’une sécurité physique
dans l’environnement hostile où ils sont déployés expose les nœuds à un danger qui
tend vers la falsification de l’information. En effet, les nœuds capteurs eux-mêmes
sont des points de vulnérabilité du réseau car ils peuvent être modifiés, remplacés ou
supprimés.
De plus, les réseaux de capteurs sans fils sont plus sensibles aux attaques qui menacent
les données transmises en raison de l’absence d’infrastructure.
16
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
La tolérance de fautes : Certain nœuds capteurs peuvent générer des erreurs ou ne plus
fonctionner à cause d'un manque d'énergie, un problème physique ou une interférence.
Ces problèmes n'affectent pas le reste du réseau, c'est le principe de la tolérance de
fautes. La tolérance de fautes est la capacité de maintenir les fonctionnalités du réseau
sans interruptions dues à une erreur intervenue sur un ou plusieurs capteurs.
Les coûts de production : Souvent, les réseaux de capteurs sont composés d'un très
grand nombre de nœuds. Le prix d'un nœud est critique afin de pouvoir concurrencer
un réseau de surveillance traditionnel. Actuellement un nœud capteur ne coûte souvent
pas beaucoup.
L'environnement : Les capteurs sont souvent déployés en masse dans des endroits tels
que des champs de bataille au-delà des lignes ennemies, à l'intérieur de grandes
machines, au fond d'un océan, dans des champs biologiquement ou chimiquement
souillés,... Par conséquent, ils doivent pouvoir fonctionner sans surveillance dans des
régions géographiques éloignées.
Les médias de transmission : Dans un réseau de capteurs, les nœuds sont reliés par une
architecture sans-fil. Pour permettre des opérations sur ces réseaux dans le monde
entier, le média de transmission doit être normé. On utilise le plus souvent l'infrarouge
(qui est license-free, robuste aux interférences, et peu onéreux), le bluetooth et les
communications radio ZigBee.
17
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Les RCSF peuvent avoir beaucoup d'applications. Parmi elles, nous citons :
Découvertes de catastrophes naturelles : On peut créer un réseau autonome en
dispersant les nœuds dans la nature. Des capteurs peuvent ainsi signaler des
événements tels que feux de forêts, tempêtes ou inondations. Ceci permet une
intervention beaucoup plus rapide et efficace des secours.
Agriculture : Des nœuds peuvent être incorporés dans la terre. On peut ensuite
questionner le réseau de capteurs sur l'état du champ (déterminer par exemple les
secteurs les plus secs afin de les arroser en priorité). On peut aussi imaginer équiper
des troupeaux de bétail de capteurs pour connaître en tout temps, leur position ce qui
éviterait aux éleveurs d'avoir recours à des chiens de berger.
Contrôle d'édifices : On peut inclure sur les parois des barrages des capteurs qui
permettent de calculer en temps réel la pression exercée. Il est donc possible de réguler
le niveau d'eau si les limites sont atteintes. On peut aussi imaginer inclure des capteurs
entre les sacs de sables formant une digue de fortune. La détection rapide d'infiltration
d'eau peut servir à renforcer le barrage en conséquence. Cette technique peut aussi être
utilisée pour d'autres constructions tels que ponts, voies de chemins de fer, routes de
montagnes, bâtiments et autres ouvrages d'art.
18
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Après avoir exposé un certain nombre d’applications potentielles envisagées pour les
RCSF, nous décrivons dans ce qui suit des projets d’applications qui sont en cours de
réalisation.
Afin de répondre aux exigences des opérations militaires, les forces canadiennes choisissent
la compagnie privée Newtrax (qui a comme vision de fournir des solutions de mesure,
contrôle, messagerie et localisation) comme partenaire industriel pour un contrat évalué à 1,5
milliards de dollars pour fournir sa technologie des RCSF maillés. Cette architecture offre une
résilience et extensibilité supérieure. De plus, chaque nœud peut être ajusté pour fonctionner
selon différentes fréquences entre 100 MHz et 1 GHz.
19
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Actuellement, des micro-caméras qui peuvent être avalées existent. Elles sont capables,
sans avoir recours à la chirurgie, de transmettre des images de l'intérieur d'un corps humain
avec une autonomie de 24 heures. Le projet actuel est de créer une rétine artificielle composée
de 100 micro-capteurs pour corriger la vue. Un émetteur-récepteur transmet les données à une
station de base branchée à un ordinateur personnel, à un poste des soins infirmiers ou à un
assistant numérique.
20
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Dans les réseaux Ad hoc traditionnels, les tâches qui traitent le routage, et la gestionde
mobilité visent l’optimisation des différents paramètres de qualité de service (QoS) tel que
l’efficacité dans le débit et les délais de transmission sous la contrainte de mobilité. La
consommation d’énergie est d’une importance secondaire, puisque les batteries des unités
mobiles utilisées peuvent être facilement remplacées.
Cependant, les réseaux de capteurs englobent un grand nombre de nœuds possédant des
sources d’énergie irremplaçable à cause de leur utilisation distante non-assistée dans les
environnements hostiles. Ces capteurs communiquent entre eux avec un taux de transmission
très faible de l’ordre de 1 à 100kbps. Pour cela, et contrairement aux réseaux ad hoc
classiques, le but principal des techniques utilisées est de prolonger la durée de vie des
batteries afin de prévenir les dégradations de connectivité dans le réseau.
Les communications dans les réseaux de capteurs sont, dans la plus part des temps,
unidirectionnels à partir des capteurs vers le nœud puits.
Donc, malgré les réseaux de capteurs sans fil sont apparentées aux réseaux ad hoc, les
spécificités, les objectifs et les besoins de ces types de réseaux diffèrent.
Le tableau comparatif I.1 suivant résume les différences entre les réseaux de capteurs et les
réseaux ad hoc ordinaires [23][24].
Capteurs Ad hoc
Flot de "many to one" "any to any"
communication
Contrainte clé Energie Débit
Communication Broadcast Point à point
Relation entre les Collaboration Chaque noeud à son objectif
nœuds
Identificateur Très grand nombre de nœuds Présence de la notion d’ID.
sans ID
Routage Data-centric: souvent pas Adress-centric: une adresse unique
d’adresses uniques, les pour chaque nœud utilisé pour
requêtes sont envoyées à tous réaliser la communication entre les
les nœuds. nœuds.
Nombre de nœuds Grand nombre de nœuds Nombre de nœud moyen (de
(de l’ordre de mille). l’ordre de cents).
Agrégation Les nœuds agrègent les Généralement pas d’agrégation
données avant de les de données.
transmettre
Capacité Des petits nœuds plus Des nœuds ayant plus de
susceptibles aux pannes, avec capacité de traitements et de
moins capacité de traitements stockage.
et de stockage.
21
PDF Page Organizer - Foxit Software
CHAPITRE I : LES RESEAUX AD HOC ET LES RESEAUX DE CAPTEURS SANS FILS
Conclusion
Dans ce chapitre nous avons décrit les RCSF qui sont apparentés aux réseaux Ad Hoc. Ces
réseaux connaissent un grand essor grâce à la multitude d’applications qu’ils offrent ainsi que
leurs caractéristiques inhérentes telles que leur déploiement aléatoire et leur faible coût, leur
grande mobilité et ceci grâce aux récents développements concernant la miniaturisation des
composants électroniques (construction des capteurs de quelques millimètres cubes de
volume).
C’est dans cet objectif que le chapitre suivant serra consacré au routage dans les réseaux de
capteurs sans fils, en s’appuyant particulièrement sur le l’étude du protocole de routage
LEACH.
22
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
CHAPITRE II :
23
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
INTRODUCTION
Le routage dans les réseaux de capteurs sans fils (RCSF),consiste à déterminer une route, une
transmission fiable des données captées des nœuds capteurs vers le puits "sink", cette
méthode d’acheminement doit être optimale minimisant la consommation d’énergie des
capteurs et augmentant ainsi la durée de vie du réseau.
Les différents algorithmes ou protocoles, conçus pour les réseaux Ad Hoc peuvent être
exploité dans les réseaux de capteurs sans fils. Mais leur principal inconvénient c’est qu’ils ne
prennent pas en compte la consommation d’énergie. Alors que pour les réseaux de capteur
sans fils(WSN), l’énergie est très critique puisqu’un nœud capteur est alimenté par une
batterie à énergie limitée.
Mais aussi, les applications des RCSF nécessitent en général un déploiement dense des
nœuds qui exigent une gestion soigneuse des ressources et exigent également que
l'écoulement des données mesurées de sources multiples soit à un puits particulier,d’où
lanécessité de les améliorer ou de développer de nouveaux protocoles de routage spécifiques
aux RCSF qui assurent une consommation minimale d’énergie tout en maintenant le bon
fonctionnement du réseau et sans dégrader ses performances.
Dans le cadre de ce chapitre, nous allons citer en premier lieu,les métriques permettant de
tester l’efficacité d’un protocole de routage.
En second lieu, nous allons décrire les critères servant à la classification des protocoles de
routage .Pour par la suite, traiter des exemples de protocole de routage que ce soit dans les
réseaux Ad-hoc et dans les réseaux de capteurs sans fil RCSF, nous nous intéresserons plus
particulièrement en fin de chapitre à l’étude du fonctionnement du protocole LEACH .
I Métriques de routage[4]
Dans cette section, nous étudions les métriques communes utilisées pour mesurer l’efficacité
des protocoles de routage.
Les protocoles de routage permettent aux nœuds de comparer les métriques calculées (à
travers un algorithme) afin de déterminer les routes optimales à emprunter. Plus la métrique
est optimale, plus le protocole de routage considère que la probabilité d’atteindre le nœud
puits à travers ce nœud intermédiaire est grande.
24
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
L’idée est de calculer l’énergie disponible (ED) pour chaque nœud du réseau et l’énergie
nécessaire (EN) pour les transmissions des paquets entre une paire de nœuds. Les routes entre
les nœuds et le puits sont établies et chacune d’elles est caractérisée par la somme des ED des
nœuds qui la constituent et par la somme des EN des liaisons qui la construisent.
La route choisie est celle caractérisée par la somme des ED la plus élevée.
La route choisie est celle caractérisée par la plus petite somme des EN.
Cette métrique est la combinaison des deux métriques précédentes. La route choisie est
celle caractérisée par la plus petite somme des EN et la plus grande somme des ED.
25
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Cette technique est parmi les métriques les plus connues dans les réseaux sans fil. Les
protocoles de routage l’utilisent pour minimiser le temps de propagation des paquets de
données échangés pendant le routage.
Les topologies des réseaux de capteur sont déterminées à partir des protocoles de routage
utilisés pour l’acheminement des données entre les nœuds et le Sink.
Ces protocoles peuvent être hiérarchiques, plat (Flat) ou basé localisation.
26
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Un réseau basé sur une topologie hiérarchique doit avoir au moins trois niveaux dans sa
hiérarchie, puisqu'un réseau avec un nœud central Sink et seulement un niveau hiérarchique
au-dessous, forme une topologie en étoile.
À titre d’exemple des protocoles utilisant une topologie hiérarchique on peut citer le
protocole LEACH (Low-energy Adaptive Clustering Hierarchy), CBRP (Cluster Based
Routing Protocol),etc.
En cas où la destination ne fait pas partie du voisinage de la source, les données seront
transmises en utilisant les sauts multiples à travers les nœuds intermédiaires comme c’est
illustré dans la figure II.2.
Ce type de réseau représente l’avantage de l’existence de différents chemins d’une source
vers une destination et c’est pour remédier au problème de changement brusque de topologie
ou la défaillance d’un nœud intermédiaire.
27
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
À titre d’exemple des protocoles utilisant une topologie plate on peut citer le protocole
Direct Diffusion,SAR (Sequential Assignment Routing), etc.
Ce type de topologie est mieux adapté aux réseaux avec une forte mobilité. Elle est
utilisée dans les applications où il est plus intéressant d’interroger le système en se basant sur
la localisation des nœuds et où on peut tirer profit des positions des nœuds pour prendre des
décisions qui minimisent le nombre de messages transmis pendant le routage.
Avant d’envoyer ses données à un nœud destination, le nœud source utilise un mécanisme
pour déterminer sa localisation. L’information temporaire de localisation appelée LDA
(Location Dependent Address) qui est un triplé de coordonnées géographiques (longitude,
latitude, altitude) obtenues, par exemple, au moyen d'un GPS(Global Positioning System),
système de localisation global mais ce genre de système reste trop coûteux pour un RCSF.
À titre d’exemple des protocoles utilisant une topologie basée localisation nous pouvons
citer GEAR (Geographic and Energy Aware Routing) et LAR (Location-Aided Routing
protocol), etc.
28
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Node centric : ce paradigme est celui employé dans les réseaux conventionnels, où
les communications se basent sur l'identification des nœuds participants, qui se fait
à l'aide d'adresses IP.
Data centric : dans un RCSF, la donnée est plus importante que le nœud lui-même,
ce qui rend son identification inutile. De ce fait dans le paradigme data centric, les
communicants sont identifiés par leurs données. Ainsi, le système peut être vu
comme une base de données distribuée, où les nœuds forment des tables virtuelles,
alimentées par les données captées.
Position centric : dans cette approche, les positions des nœuds représentent le
moyen principal d'adressage et de routage. Dans certaines applications, il est plus
intéressant d'interroger le système en utilisant les positions des nœuds, que leurs
adresses IP. Dans ce cas, le routage s'effectue grâce à des techniques géométriques
afin d'acheminer l'information d'une zone géographique vers une autre.
29
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Application event-driven : dans des applications temps réel, les capteurs doivent
réagir immédiatement à des changements soudains des valeurs captées. Un
prélèvement périodique des données est inadapté pour ce type de scénarios. Pour cela,
le protocole doit être réactif et doit donner des réponses rapides à l'occurrence d'un
certain nombre d'évènements.
Les protocoles de routage proactifs établissent au préalable les meilleures routes pour
chaque nœud vers toutes les destinations possibles. Ils maintiennent en temps réel une vision
de l'état du réseau qui soit suffisante pour que tous les sous-ensembles (nœuds) soient
connectés à chaque instant (éventuellement en passant par plusieurs liens consécutifs).
Pour cela, chaque nœud envoie périodiquement à tous ses nœuds voisins, sa table de
routage contenant l'état de tous ses liensconnus et permet ainsi, de garder une vision globale à
jour de l’état du réseau car les sous ensemble du réseau possèdent alors assez d'information
pour trouver le meilleur chemin jusqu'à tout autres éléments dans le réseau. Le trafic de
contrôle ne contient que l'information sur les liens appartenant à ce nœud, au lieu de toute
l'information sur tous les liens, ce qui constitue une économie certaine.
Dans le cas d’un réseau dense, les tables de routages deviennent vite volumineuses ce qui
constitue un réel inconvénient. De plus, des routes peuvent être sauvegardées sans qu’elles ne
soient utilisées.
Les principaux protocoles proactifs sont :
OLSR (Optimized Link State Routing) : Il utilise un routage de type état des liens pour
déterminer dynamiquement les tables de routage.
FSR (Fisheye State Routing) : Chaque nœud diffuse sa table de routage avec une
fréquence qui dépend du nombre de sauts qu'un paquet doit effectuer.
30
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Contrairement aux protocoles proactifs, les tables de routages des nœuds ne sont plus
envoyées périodiquement, mais seulement à la demande, lorsque le trafic utilisateur doit être
acheminé vers une destination vers laquelle un chemin n'est pas connu à ce moment-là.
Dans ce cas, une requête pour établir un tel chemin est diffusé dans tout le réseau. La
destination (ou un nœud connaissant un chemin vers la destination) recevra alors cette requête
diffusée, et pourra y répondre pour établir un chemin, envoyant une réponse prenant le
chemin pris depuis la source de la requête.
La connaissance de ce chemin sera maintenue dans le réseau tant que le trafic utilisateur
l'empruntera, puis disparaîtra une fois les informations transmises.
Les protocoles hybrides sont utilisés dans un réseau découpé en zone. Ils emploient un
protocole proactif dans la zoneet un protocole réactif pour les communications inter-zones
Ils fonctionnent en mode proactif pour garder la connaissance locale de la topologie :
l'Intrazone Routing Protocol (IARP). Ils utilisent le mode réactif pour les nœuds lointains :
l'Interzone Routing Protocol (IERP).On a donc un routage à deux niveaux avec l'utilisation de
zones qui permet d'optimiser la diffusion des requêtes de demande de « route ».
Le principal protocole hybride est ZRP (Zone Routing Protocol). C'est un protocole de type
vecteur de distance. Il est plus résistant à la mobilité sur des réseaux de grandes tailles.
Le protocole CBRP (Cluster Based Routing Protocol) fait également partie de cette famille.
Les protocoles dédiés pour les réseaux de capteurs, sont peu nombreux et les implémentations
également. Les protocoles dédiés sont répartis en quatre catégories :
protocoles hiérarchiques : énergie, agrégation et fusion des messages dans un
cluster
protocoles basés sur la localisation : les capteurs ont un système GPS basse
puissance qui leur permet de déduire la distance et le coût
protocoles centrés données : requêtes à certaines régions
31
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
32
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
DSDV Destination Sequenced Distance Vector est un protocole proactif de routage à vecteur
de distance. Chaque nœud du réseau maintient une table de routage contenant le saut suivant
et le nombre de sauts pour toutes les destinations possibles.
Des diffusions de mises à jour périodiques tendent à maintenir la table de routage
complètement actualisée à tout moment.
Par ailleurs, la topologie des réseaux Ad-hoc est dynamique et des boucles de routes peuvent
survenir lorsque des informations incorrectes de routage sont présentées dans le réseau après
un changement dans la topologie du réseau (lien brisé par exemple).
Dans ce contexte et afin d’éviter le bouclage (loop), DSDV utilise les numéros de séquence
(Sequence Number) pour indiquer la « nouveauté » d’une route. Une route R est considérée
plus favorable qu’une autre R’, si R a un numéro de séquence plus grand ; si ces deux routes
ont le même numéro de séquence, alors R est plus favorable s’il possède un nombre inférieur
de sauts.
Le numéro de séquence pour une route est initialisé par le nœud émetteur et incrémenté pour
chaque nouvel avertissement d’une nouvelle route. Quand un nœud détecte un lien brisé vers
une destination D, il met à jour le nombre de sauts pour l’entrée de la destination D dans sa
table avec la valeur infini et incrémente son numéro de séquence.
Le protocole GSR Global State Routing est un protocole similaire au protocole DSDV décrit
précédemment. Ce protocole utilise les idées du routage basé sur l’état des liens (Link State,
LS). De la même manière que les protocoles LS, les messages de routage sont générés suivant
les changements d’états des liens. Lors de la réception d’un message de routage, le nœud met
à jour sa table de topologie (représentée par un graphe dans LS) et cela dans le cas où le
numéro de séquence du message reçu est supérieur à la valeur du numéro de séquence
sauvegardé dans la table (exactement comme le fait le protocole DSDV).
Par la suite, le nœud reconstruit sa table de routage et diffuse les mises à jour à ses voisins.
La principale modification de GSR sur l’algorithme LS traditionnel, est la façon de
diffusion des informations de routage qui circulent dans le réseau. Dans LS, si on détecte des
changements de topologie, les paquets d’états de liens sont générés et diffusés par inondation
dans tout le réseau. Par contre, GSR maintient la table - la plus récente - d’état des liens reçus
à travers les voisins, et l’échange uniquement avec ses voisins locaux, d’une façon périodique.
La table de distance contient la plus courte distance pour chaque nœud destination. Le calcul
des chemins peut se faire avec n’importe quel algorithme de recherche des plus courts
33
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
chemins. Par exemple, l’algorithme du GSR utilise l’algorithme de Dijkstra modifié de telle
façon qu’il puisse construire la table des nœuds suivants (NEXT HOP) et la table de distance
Table_D, en parallèle avec la construction de l’arbre des plus courts chemins (l’arbre dont la
racine est le nœud source).
Lorsqu’un nœud a besoin de trouver une route vers une destination dont l’entrée dans la
table de routage n’existe pas ou est expirée, il diffuse un message de demande de route (Route
Request message, RREQ) à tous ses voisins à travers le réseau jusqu’à atteindre la destination.
Durant son parcours à travers le réseau, le message RREQ réalise la création des entrées
temporaires des tables de routage pour la route inverse des nœuds à travers lesquels il passe.
Si la destination, ou une route vers elle, est trouvée, une route est rendue disponible en
envoyant un message réponse de route (Route Reply, RREP) au noeud source. Cette réponse
de route traverse le long du chemin temporaire inversé du message RREQ. Précisons que le
protocole AODV ne supporte que les liens symétriques dans la construction des chemins
inverses.
La Figure II-5 illustre le mécanisme de création des routes d’AODV.
34
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Les nœuds voisins sont détectés par des messages périodiques HELLO (un message
particulier de RREP). Si un nœud x ne reçoit pas un message HELLO d’un voisin y par lequel
il envoie des données, ce lien est considéré brisé et une indication de défaillance de lien est
envoyée à ses voisins actifs. Ces derniers propagent l’indication à leurs voisins qui utilisaient
le lien entre x et y. Lorsque le message du lien brisé atteint finalement les sources affectées,
celles-ci peuvent choisir d’arrêter l’envoi des données ou de demander une nouvelle route en
envoyant un nouveau message RREQ.
35
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
énergie est descendue sous un certain seuil, il change son mode de fonctionnement, et ne
répond à aucun message ADV.
La diffusion dirigée est un protocole important dans le routage data-centric des réseaux de
capteurs. L'idée vise à diffuser des données aux nœuds en utilisant un schéma de nommage pour les données.
La diffusion dirigée suggère donc l'utilisation de paires attribut-valeur pour les données et les
requêtes des capteurs.
Afin de créer une requête, un nœud est défini à l'aide d'une liste de paires attribut-valeur comme le nom
des objets, l’intervalle, la durée, la zone géographique, etc. La requête contient aussi plusieurs
champs de gradient.
Un gradient est un lien réponse avec un voisin dont le paquet a été reçu et qui est caractérisé
par le débit, la durée et la date d’expiration de données.
Ainsi on utilisant les intérêts et les gradients, les routes sont établies entre la destination et les
sources. Plusieurs routes sont établies de telle sorte que l’une d’elle est choisie par
renforcement.
36
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Le protocole LEACH issu des travaux de Heinzelman et al. [6][7] présente aujourd’hui
d’excellents résultats en termes d’économie d’énergie. S’appuyant sur le clustering qui
consiste à partitionner le réseau en groupes (clusters). Les nœuds transmettent leurs données
vers des représentants de groupes dits cluster-heads (CHs), qui à leur tour envoient ces
données vers la destination désirée ou la station de base
Dans certaines applications les cluster-heads font des traitements simples (agrégations par
exemple) sur les données reçues avant de les retransmettre à la station de base. Elle offre aussi
une meilleure allocation de ressources et aide à améliorer le contrôle de l’énergie dans le
réseau [8] [9] [31]. Le fonctionnement de ce protocole serra plus détailler vers la fin de ce
chapitre.
Les protocoles Threshold sensitive Energy Efficient sensor Network protocol (TEEN) et
Adaptive Threshold sensitive Energy Efficient sensor Network protocol (APTEEN)
conviennent pour les applications critiques en termede temps.
Le protocole TEEN est conçu pour être réactif aux changements soudains dans les attributs
de contrôle tel que la température. La réactivité est très importante pour les applications temps
réel où le réseau opère en mode réactif.
TEEN propose une approche hiérarchique avec l’utilisation d’un mécanisme centré-
donné[Link] TEEN, les nœuds capturent de manière continue, mais la transmission de
données n’est pas faite fréquemment.
Après que les clusters soient formés, le cluster-Head (CH), qui est élu périodiquement en
fonction de son niveau d’énergie, envoie à ses membres un seuil hard déterminant les attributs
de capture, et un autre soft donnant les petits changements dans les valeurs des attributs de
captures dans la période de transmission du cluster.
Adaptative-TEEN (APTEEN) est une extension de TEEN qui fait à la fois la collection des
captures périodiques de données et qui réagit aux événements critiques (réactif).
APTEEN a la même architecture que TEEN. Le cluster-head diffuse les attributs, les
valeurs des seuils et l’ordonnancement de la transmission de tous les nœuds. Les cluster-heads
effectuent l’agrégation de données pour économiser de l’énergie.
37
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
D’autres exemples de protocoles de routages dans les réseaux de capteurs sans fil sont
résumés dans la figure suivante :
Structure du réseau
DD, EAR, GBR, CADR, Routage LEACH, PEGASIC, TEEN, GAF, GEAR, SPAN , SAR,
par rumeur, GOUGAR, APTEEN,VGAR,HPARP, SPEED, SMECN,MECN, …
ACQUIRE,SPIN,… TTDD, SOP, …
….
Type de protocole
Protocole de routage
Protocole de routage Protocole de routage Protocole de routage basé
basé sur la négociation
basé sur la QoS sur les interrogations
Multi-chemin
Direct Diffusion,
SAR, SPEED…. SPIN… Direct Diffusion
routage par rumeur…
38
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Le Clusterhead est un nœud ordinaire qui est choisis selon un algorithme spécifique
d’élection qui prend en compte des différents critères comme l’énergie disponible dans les
nœuds ou si le nœud a servi comme Clusterhead pendant la dernière période.
Le rôle du Clusterhead est consommant en termes d’énergie puisqu’il est actif et prend en
charge la transmission de toutes les données collectées des membres vers le Sink pendant
toute la durée d’un cycle. Si ce rôle es fixé pour seul un nœud, il épuisera son énergie
rapidement, et après sa défaillance, tous ses membres seront sans Clusterhead (headless) et
donc inutile. C’est pourquoi, ce fardeau est échangé entre les différents nœuds du réseau.
Pour un membre, il est généralement beaucoup plus facile d'atteindre le Clusterhead que de
transmettre directement vers le Sink.
Comme les RCSF ont des caractéristiques distinctes de tout autre type de réseaux sans fil,
les protocoles MAC conçus pour ces derniers ne sont pas toujours applicables dans les RCSF.
39
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Deux versions des protocoles MAC pour l’accès au media sont alors proposées pour les RCSF
l’accès aléatoire ;
et l’allocation fixe [11].
Lorsqu’un nœud veut transmettre un message, il examine le média pour vérifier s’il est
libre ou occupé par un autre nœud. Dans le cas où le media est libre, ce nœud pourra émettre
son message afin d’éviter les collisions.
Cela dit, des nœuds peuvent émettre des données en même temps, ce qui mène à des
collisions. Il est nécessaire donc que celles-ci soient détectées et que ces données soient
retransmises. Si les retransmissions se passent encore en même temps, d’autres collisions vont
se produire.
Une solution à ce problème consiste à introduire que chaque nœud attende un délai
aléatoire avant de retransmettre ses données, ce qui réduit la probabilité d’une autre collision.
[12]
Étant donné que chaque nœud est attribué en exclusivité à un intervalle, il n'y a presque pas de
collisions entre les données. Toutefois, les schémas à allocation fixe s'avèrent inefficaces
lorsque tous les nœuds n’ont pas de données à transmettre. En effet, ces intervalles sont
affectés à des nœuds qui n’ont pas besoin de les utiliser. [13]
a. TDMA
Le schéma d’accès multiple à répartition de temps ou TDMA (Time Division Multiple
Access) permet de diviser le temps en intervalles (time-slot) attribués à chaque nœud (voir
figure II.9). Ainsi, un seul nœud a le droit d’accès au canal (il utilise toute la plage de la bande
passante du canal), mais doit émettre ses données pendant les intervalles de temps qui lui sont
accordés. [12]
40
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
b. CDMA
Le schéma d’accès multiple par répartition en code ou CDMA (Code Division
Multiple Access) permet de côtoyer plusieurs nœuds simultanément (voir figure II.10).
41
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Phase d’annonce,
Phase d’organisation des groupes
Phase d’ordonnancement,
Phase d’annonce :
C’est la phase où les clusters sont formés et les cluster-heads CHs sont élus pour une
période déterminée « round ». Cette élection se fait d’une manière cyclique dans le but
d’équilibrer la dissipation d’énergie.
On estime que le pourcentage optimal du nombre de CHs désirés devrait être de 5% à 15%
du nombre total de nœuds [16].
Si ce pourcentage n’est pas respecté, cela mènera à une grande dissipation d’énergie dans le
réseau. En effet, si le nombre de CH est très élevé, on aura un nombre important de nœuds
(CH) qui se consacrent aux tâches très couteuses en ressources énergétiques. Ainsi, on aura
une dissipation d’énergie considérable dans le réseau.
Et si le nombre de CH est très petit, ces derniers vont gérer des groupes de grandes tailles.
Ainsi, ces CH s’épuiseront rapidement à cause de travail important qui leur est demandés.
On commence la phase d’annonce par l’annonce du nouveau round qui sera faite par le
nœud puits, mais également par la prise de décision locale d’un nœud pour devenir CH au
début du round qui commencera à l’instant t.
Durant cette étape, chaque nœud N choisit aléatoirement un nombre dans l’intervalle [0,1],
si ce nombre est inférieur à un seuil Pi(t) alors le nœud est élu cluster-head CH durant le
round r+1.
42
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Où : K est le nombre de CHs désirés, ce nombre reste fixe et inchangé durant tous les
rounds.
La probabilité Pi(t) de devenir CH pour chaque nœud i est calculée ainsi [57]:
Où
Le terme Ci(t) : représente si un nœud i est élu ou pas, il est égal à 0 si le nœud i a
déjà été CH durant l’un des (r mod N/K) rounds précédents, et, il est égal à 1 dans le
cas contraire. Donc, seuls les nœuds qui n’ont pas encore été CH, ont
vraisemblablement une énergie résiduelle suffisante que les autres et ils pourront être
choisis.
Représente le nombre total des nœuds éligibles d’être CH à l’instant t. Il est égal à :
43
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Dès que les cluster-heads sont élus, chacun d’eux envoie un message de notification aux
autres nœuds du réseau, i.e : chaque nœud élu CH, doit informer les autres nœuds non-CH de
son nouveau rang dans le round courant et cela par diffusion d’un un message d’avertissement
ADV contenant l’identificateur du CH à tous les nœuds non –CH en utilisant le protocole
MAC CSMA pour éviter les collisions entre les CH.
Les nœuds non-CH décident alors de leur appartenance à un cluster selon l’amplitude du
signal reçu en choisissant le signal le plus fort.
Après la formation des groupes, chaque CH agit comme un centre de commande local pour
coordonner les transmissions des données au sein de son groupe.
L’ensemble des slots assignés aux nœuds d’un groupe est appelé frame. La durée de chaque
frame diffère selon le nombre de membres du groupe.
La figure II.11 nous résume les trois sous phases de la phase d’initialisation :
44
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Cela leur permet d’éteindre leurs interfaces de communication en dehors de leurs slots afin
d’économiser leur énergie. Ces données sont ensuite agrégées par les CHs qui les fusionnent
et les compressent, et, envoient le résultat final au nœud puits.
45
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Figure. II.12 : Répartition du temps et différentes phases pour chaque round. [10]
Le tableau suivant résume les caractéristiques des principaux protocoles de routage dans les
réseaux de capteur [22], [6]
46
PDF Page Organizer - Foxit Software
Chapitre II : le routage dans les réseaux de capteurs sans fils
Conclusion
La communication est très importante dans un réseau de capteurs, puisqu’elle permet aux
nœuds de coopérer entre eux et d’acheminer les données vers leur destination.
Dans ce chapitre nous avons pu aborder les techniques de routage au niveau des réseaux de
capteurs sans fil, nous avons également fait une étude détaillée des critères de classification
des protocoles de routage. Ces protocoles de routage ont été classifiés selon plusieurs critères,
parmi ces critères: la structure du réseau, le paradigme de communication, les types de
protocoles, etc. Chaque critère regroupe plusieurs catégories et certains de ces protocoles
peuvent appartenir à une ou plusieurs catégories de routage.
Le chapitre suivant serra consacré à l’étude du protocole de routage AODV, ce qui va nous
aider pour la suite de notre étude et nous permettre de voir son adaptabilité au sein des
réseaux de capteurs.
47
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
CHAPITRE III :
LE PROTOCOLE DE ROUTAGE
AODV
48
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
Introduction
AODV signifie Ad hoc On demand Distance Vector. C'est un protocole réactif, c’est-à-
dire qu'il ne crée les routes que lorsque c'est utile. En s'affranchissant de maintenir les tables
de routages constamment, il permet une réduction sensible du nombre de trames échangées, et
donc une amélioration de la bande passante. Lorsqu'il est utilisé dans un réseau important,
AODV génère un gros volume de diffusion, même pour des destinations qui sont proches de
l'émetteur.
AODV est une combinaison de DSDV et de DSR. Il emprunte, à DSR ses mécanismes de
découverte et de maintenance des routes « Route Discovery » et « Route Maintenance »;et à
DSDV, son routage « saut par saut », les numéros de séquences ainsi que la diffusion des
mises à jour des tables de routage. Ce protocole fait l'objet d'un grand nombre de recherches
dû à toutes ses caractéristiques; il est en effet l'un des principaux protocoles au sein du groupe
de recherche MANET.
I Table de routage
Chaque nœud maintient une table de routage. Cette table contient une entrée pour chaque
destination accessible. Une entrée contient principalement les informations suivantes :
L'adresse de la destination,
Le numéro de séquence associé à la destination,
La distance qui est le nombre de sauts nécessaire pour atteindre la destination (hop
count),
Le nœud suivant, à qui il faut envoyer les paquets (next hop),
Le temps de vie pour lequel la route est considérée correcte. (Le temps d'expiration de
l'entrée de la table),
La liste des voisins qui utilisent cette route,
Si une nouvelle route est nécessaire, ou qu’une route disparaît, la mise à jour de ces tables
s’effectue par l’échange de trois types de messages entre les nœuds [14] :
RREQ Route Request, un message de demande de route,
RREP Route Reply, un message de réponse à un RREQ,
RERR Route Error, un message qui signale la perte d’une route.
L'AODV utilise les principes des numéros de séquence à fin de maintenir la consistance des
informations de routage. Les numéros de séquence permettent d'utiliser les routes les plus
nouvelles ou autrement dit les plus fraîches (fresh routes). Chaque nœud possède un numéro
de séquence. Il est le seul habilité à l’incrémenter. Ce numéro personnel ne peut être
incrémenté que dans deux situations :
La première situation: Avant d’entreprendre un processus de recherche de route par
l’envoi d’un paquet RREQ, le nœud incrémente son numéro.
49
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
La deuxième situation : Avant de répondre à un message RREQ par un message
RREP, le numéro de séquence doit être remplacé par la valeur maximale entre son
numéro de séquence actuel et celui contenu dans le message RREQ.
Une mise à jour de la table de routage ne s’effectue que si l’une des conditions suivantes est
observée :
Le numéro de séquence du paquet de contrôle est strictement supérieur au numéro de
séquence présent dans la table.
Les numéros de séquence (de la table et du paquet) sont égaux mais, la distance en
hops du paquet plus 1 est inférieure à la distance actuelle dans la table de routage.
Le numéro de séquence pour cette destination est inconnu.
Le format du message RREQ est illustré ci-dessus, il contient les champs suivants:
Type : 1
Le champ J (Join flag) : Il est réservé pour le multicast
Le champ R (Repair flag) ou indicateur de réparation, réservé pour le multicast.
Le champ G (Gratuitous RREP flag) : Drapeau indiquant que le paquet RREQ est un
paquet gratuit (Gratui-tous RREP). Ce type de paquets est envoyé de la destination
vers la source pour vérifier que le chemin du retour est opérationnel (i.e. que la route
source- destination est bidirectionnelle)
Le champ D (Destination Only Flag) : Drapeau indiquant que seule la destination peut
répondre à ce paquet.
Le champ U(Unknown Destination Flag) : Drapeau indiquant que le numéro de
séquence de la destination est inconnu.
50
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
Le champ Reserved : Fixé à 0 par la RFC, ignoré à la réception.
Le champ Hop Count : Indique le nombre de sauts depuis le nœud ayant généré le
paquet jusqu’au nœud actuel.
Le champ RREQ ID : Ce champ identifie de manière unique un paquet RREQ au
cours d’unprocessus de découverte de route.
Le champ Destination IP Address : Renferme l’adresse IP de la destination du
message.
Le champ Destination SequenceNumber : Renferme le numéro de séquence de la
destination du message.
Le champ Originator IP Address : Renferme l’adresse IP de la source du message.
Le champ OriginatorSequenceNumber : Renferme le numéro de séquence de la
source du message.
51
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
Quand un nœud reçoit un paquet de contrôle AODV d’un voisin ou quand il crée ou met à
jour une route vers une destination particulière ou un sous-réseau, il consulte sa table pour
chercher une éventuelle entrée correspondante. Si sa recherche s’avère infructueuse, le nœud
52
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
y crée une nouvelle entrée. Sinon, la mise à jour n’est effectuée qu’après comparaison des
numéros de séquences de la destination de la nouvelle entrée avec l’ancienne.
Enfin, pour chaque route enregistrée dans la table de routage, le nœud maintient une liste de
précurseurs pouvant acheminer le trafic sur celle-ci. La liste des précurseurs contient la liste
des nœuds voisins ayant acheminé ou généré un message Route Reply (RREP).
Un nœud génère un message Route Request (RREQ) quand il veut transmettre des données
à une destination qui ne figure pas dans sa table de routage. Le nœud commence par
enregistrer l’ID du message RREQ qu’il va transmettre ainsi que l’instant de génération
correspondant (PATH_DISCOVERY_TIME) pour ne pas avoir à traiter le message quand ses
voisins vont le lui propager.
Ensuite, la source émet le message RREQ et déclenche un compteur en attendant une
réponse. Si à l’expiration aucun message RREP n’est reçu, la source peut retenter de
retransmettre un message RREQ après un temps de Back off et ainsi de suite, sans pour autant
dépasser un nombre maximal de tentatives RREQ_RETRIES.
Quand un nœud reçoit un message RREQ, il commence par mettre à jour la route vers le
saut précédent (par où est venu le message). Ensuite, il vérifie s’il n’a pas reçu la même
requête auparavant, si c’est le cas, il détruit le paquet reçu. Si la requête n’a pas été reçue
auparavant, le nœud incrémente le nombre de sauts du paquet puis cherche une route vers la
source dans sa table. Selon le résultat de cette recherche, le nœud peut mettre à jour ou insérer
une nouvelle route vers la source. Le nœud vérifie l’adresse de destination et dans ce cas deux
cas se présentes :
Il est la destination (Figure III-4.c),
Il possède une route vers la destination avec un numéro de séquence supérieur ou égal
à celui repris dans le RREQ (Figure III-4.d) il envoie (en unicast) un paquet RREP
vers la source.
53
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
Chaque nœud traversé incrémentera le nombre de hops (sauts) et ajoutera une entrée à sa
table pour la destination. Un chemin bidirectionnel est donc désormais disponible entre la
source et la destination. Dans le cas contraire il rediffuse le RREQ (Figure III-4.a) et met
à jour l’information relative à la source et établit des pointeurs de retour vers la source du
RREQ dans les tables de routage (figure III-4.b).
Chaque nœud conserve une trace des IP sources et des ID de broadcast des RREQ afin
d’éliminer les paquets redondants grâce à leur ID identiques.
Remarque : les figures a,b,c,d dans cet ordre forme les étapes de découverte de route
Dans l'exemple qui suit, nous montrons comment AODV effectue la découverte de routes.
Nous nous plaçons dans le cas où le nœud A souhaiterait communiquer avec le nœud I, en
supposant que le nœud A ne possède pas de route vers I dans sa table de routage et que I n'est
pas à l'intérieur de sa zone de portée.
54
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
55
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
paquet effectue le chemin inverse jusqu'à l'émetteur, le Hop Count est incrémenté afin
que l'émetteur connaisse la distance qui le sépare.
Le chemin inverse obtenu est désigné par les segments en rouges, ces segments sont orientés
vers le haut.
La RFC 3651 exige que chaque nœud garde trace de sa connectivité aux nœuds voisins
ainsi que la connectivité des autres voisins à lui. Pour cela, et Afin de maintenir des routes
consistantes, une transmission périodique du message « HELLO » (qui est un RREP avec un
TTL de 1) est effectuée. Si trois messages « HELLO » ne sont pas reçus consécutivement à
partir d'un nœud voisin, le lien en question est considéré défaillant. Les défaillances des liens
sont, généralement, dû à la mobilité du réseau. Les mouvements des nœuds qui ne participent
pas dans le chemin actif, n’affectent pas la consistance des données de routage.
Dans le cas de défaillance d’un lien un des traitements suivant sont appliqués.
56
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
Ou bien il reçoit un message RERR d’un de ses voisins
D’une manière générale, la création et l’envoi de messages RERR requiert les étapes
suivantes :
Lister les destinations concernées
Déterminer les voisins (figurant dans la liste des précurseurs de la route) touchés
par cette invalidation
Délivrer des messages RERR appropriés à ces voisins
Selon le nombre des précurseurs, les messages RERR sont envoyés en mode broadcast
(s’il y a plusieurs précurseurs), unicast ([Link] n’y a qu’un seul).
Par contre, si le nœud reçoit un ou plusieurs messages RREP pour la requête diffusée, il
génère un message RERR pour indiquer aux autres nœuds que la route contenant le lien
défectueux ne doit pas être supprimée, puis mets à jour sa table de routage et remplace
l’ancienne route par la nouvelle.
57
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
Route ERRor(RERR)
58
PDF Page Organizer - Foxit Software
Chapitre III : Le protocole de routage AODV
Conclusion
Dans ce chapitre nous avons mené une étude détaillée du protocole AODV ce qui nous a
permis de synthétiser ces avantages et inconvénients.
AODV ne met à jour les tables de routage que lorsque c'est nécessaire, et économise ainsi la
bande passante. Néanmoins, il s'avère moins rapide puisqu'il faut mettre à jour la table de
routage avant de communiquer.
Dans le but de réduire la taille des paquets et des tables de routage et ainsi d’économiser la
bande passante et avoir un gain au niveau d’énergie, nous avons modifié le contenu de la
table de routage en éliminant le champ destination de cette dernière.
Dans les réseaux de capteurs sans fil, tous les nœuds envoient l’ensemble des informations
collectées vers un seul nœud destination appelé le nœud puits ou Sink.
L’adresse de ce nœud est connue au préalable. Donc, il n’est pas nécessaire de la préciser à
chaque transmission.
Dans le chapitre suivant, nous allons présenter le système d’exploitation minime TinyOS
destiné aux réseaux de capteurs sans fil et également du simulateur de TinyOS TOSSIM .
59
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
CHAPITRE IV:
TINYOS ET TOSSIM
60
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Introduction
TinyOS est un système d’exploitation intégré, modulaire, destiné aux réseaux de capteurs.
Cette plate-forme logicielle open-source est composée d’une série d’outils développés par
l’Université de Berkeley. En effet, TinyOS est le plus répandu des OS (Operating System)
pour les réseaux de capteurs sans fil. Un grand nombre de ces groupes de recherche ou
entreprises participent activement au développement de cet OS en fournissant de nouveaux
modules, de nouvelles applications, etc. La librairie TinyOS comprend les protocoles réseaux,
les drivers pour capteurs et les outils d’acquisition de données.
Dans le système TinyOS, les librairies et les applications sont écrits en nesC, un nouveau
langage pour le développement d’applications orientées composants. Le langage nesC est
principalement dédié aux systèmes embarqués comme les réseaux de capteurs. NesC a une
syntaxe proche du langage C mais supporte le modèle concurrent de TinyOS ainsi que des
mécanismes pour la structuration, le nommage et l’assemblage de composants logiciels en des
systèmes réseaux embarqués fiables. L’objectif principal est de permettre aux concepteurs
d’applications de construire des composants qui peuvent être composés rapidement en des
systèmes complets, concurrents, tout en permettant une vérification profonde à la compilation.
TinyOS définit un nombre important de concepts qui sont exprimés dans nesC.
Premièrement, les applications nesC sont construites à partir de composants ayant des
interfaces bidirectionnelles bien définies. Deuxièmement, nesC définit un modèle de
concurrence basé sur les notions de tâches, les "handlers" d’événements matériels.
Dans ce qui suit nous allons voir plus en détails le système d’exploitation TinyOS, le
langage de programmation NesC ainsi que la description du simulateur TOSSIM.
61
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
TinyOS est un système d’exploitation open source conçu pour les réseaux de capteurs par
l’université américaine de BERKELEY[39][40][41]. Le caractère open source permet à ce
système d'être régulièrement enrichi par une multitude d'utilisateurs. Sa conception a été
entièrement réalisée en NesC, qui est un langage orienté composant syntaxiquement proche
du C.
Les OS classiques sont généralement conçus pour un usage générique. Ils sont ainsi conçus en
supposant une disponibilité sans limite des ressources. Leur objectif est la facilité d'usage, la
rapidité et efficacité. Parmi leurs caractéristiques, on peut citer:
Architecture Multi-thread, ce qui nécessite une capacité mémoire importante
Modèle E/S
Séparation entre espace noyau et utilisateur
Pas de contraintes d'énergie
Ressources disponibles
De ce fait, les OS classiques ne sont pas appropriés aux "motes" (nœuds capteurs), vus que
ces derniers sont caractérisés par :
Ressources énergétiques basses
Mémoire limitée
CPU lente
Petite taille
Communication radio :
- Bande-passante faible
- Portée radio courte
62
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
TinyOS a été créé pour répondre aux caractéristiques et aux nécessités des RCSF telles que :
Taille réduite : TinyOS a une empreinte mémoire très faible puisqu’il ne prend que 4
Ko de mémoire libre et 300 à 400 octets dans le cadre d’une distribution minimale.
Programmation orienté événement: Le plus gros avantage de TinyOS est qu’il est
basé sur un fonctionnement événementiel, c’est à dire qu’il ne devient actif qu’à
l’apparition de certains événements. Le reste du temps, le capteur se trouve en état de
veille afin de garantir une durée de vie maximale aux faibles ressources énergétiques
du capteur.
jjjjjjjjjjjCe fonctionnement événementiel (event-driven) s’oppose au fonctionnement dit
jjjjjjjjjjtemporel (time-driven) où les actions du système sont gérées par une horloge donnée.
TinyOS est donc basé sur une structure à deux niveaux de planification :
Les événements : ils sont utilisés pour réaliser des processus urgents et courts.
Les tâches : les tâches sont pensées pour réaliser une plus grande quantité de
traitements et elles ne sont pas critiques dans le temps. Les tâches sont
exécutées complètement.
63
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Pas de temps réel : Lorsqu’un système est dit « temps réel » celui-ci gère des niveaux
de priorité dans ses tâches permettant de respecter des échéances données par son
environnement. TinyOS n’est pas prévu pour avoir un fonctionnement temps réel.
Fonctions minimales
Deux threads: tâches et handlers d'événements matériels
Pas de gestion de la mémoire...
64
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
2 niveaux de priorités (bas pour les tâches, haut pour les événements).
1 file d’attente FIFO (disposant une capacité de 7Ko).
A l’appel d’une tâche, celle-ci va prendre place dans la FIFO en fonction de sa priorité
(plus elle est grande, plus le placement est proche de la sortie). Dans le cas où la file d’attente
est pleine, la tâche dont la priorité est la plus faible est enlevée de la file FIFO. Lorsque la file
est vide, le système met en veille le dispositif jusqu’au lancement de la prochaine interruption.
65
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
I.6.2 Tâches
Un des facteurs limitant la programmation par événement est la longue exécution des tâches
qui peut interrompre d’autres programmes importants. Si l’exécution d’un événement ne finit
jamais, toutes les autres fonctions vont être interrompues. Pour éviter ce problème, TinyOS
fourni un mécanisme d’exécution appelé tâche. Une tâche est un bout de programme qui
s’exécute jusqu’à la fin sans interférer avec les autres événements. Les tâches sont utilisées
pour effectuer la plupart des blocs d’instructions d’une application.
A l’appel d’une tâche, celle-ci va prendre place dans une file d’attente de type FIFO mais elle
ne sera exécutée que lorsque il n’y a plus d’événements. En plus les tâches peuvent être
interrompues à tout moment par des événements.
D’autre part, il n’y a pas de mécanisme de préemption entre les tâches et une tache activée
s’exécute en entier. Ce mode de fonctionnement permet de bannir les opérations pouvant
bloquer le système (inter blocage, famine, …). Par ailleurs, lorsque la file d’attente des taches
est vide, le système d’exploitation met en veille le dispositif jusqu’au lancement de la
prochaine interruption (on retrouve le fonctionnement Event-driven).
II.1 Présentation
Le système d’exploitation TinyOS s’appuie sur le langage NesC. Celui-ci propose une
architecture basée sur des composants, permettant de réduire considérablement la taille
mémoire du système et de ses applications. Chaque composant correspond à un élément
matériel (LEDs, timer, ADC …) et peut être réutilisé dans différentes applications.
66
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Les composants NesC présentent des similarités avec les objets. Les états sont encapsulés et
on peut y accéder par des interfaces. En NesC, l'ensemble des composants et leurs interactions
est fixé à la compilation pour plus d'efficacité. Ce type de compilation permet d'optimiser
l'application pour une exécution plus performante. En langage objet, cette phase est réalisée
lors de l'exécution ce qui rend celle-ci plus lente.
67
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Dans cette section nous allons voir en détail l’architecture des fichiers NesC définis
précédemment [19].
Interface : Les interfaces définissent les interactions entre deux composants. Elles
spécifient un ensemble de fonctions à implémenter par les composants fournisseurs de
l'interface (commands), et un ensemble à implémenter par les composants utilisateurs
de l'interface (events).
Les « commands » font typiquement des appels du haut vers le bas (des
composants applicatifs vers les composants plus proches du matériel).
Alors que les « events » remontent les signaux du bas vers le haut.
Exemple d'interface
Interface SendMsg{
Pour appeler une commande, il faut utiliser le mot-clé call. Par exemple:
68
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Module
Cette partie du code est généralement plus étendue et c’est dans celle-ci que l’on
programme réellement le comportement qu’on souhaite voir réalisé par l’application.
Cette partie-là est à son tour divisée en trois sous-sections : Uses, Provides,
Implementation.
Exemple
La sous-section « uses » informe le compilateur que nous allons faire usage d’une interface
(on pourra donc effectuer des appels aux méthodes de cette interface). Finalement, utiliser une
interface oblige implicitement à gérer les évènements pouvant se produire du fait d’avoir
utilisé cette interface précise.
La sous-section « implementation », est celle qui contiendra toutes les méthodes nécessaires
pour définir le comportement souhaité à notre composant ou à notre application. Cette sous-
section doit contenir au moins:
Les variables stockées dans la mémoire des capteurs que vont utiliser notre
application ;
Les fonctions mises en œuvre pour les interfaces fournis ;
Les événements mis en œuvre venant des interfaces utilisées.
69
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Configurations
C’est à ce niveau que l’on déclare les composants qui vont constituer l’application.
Cette possibilité offerte par le langage permet de faire de la programmation modulaire
et de réutiliser des composants préalablement définis. Deux composants peuvent être
connectés (Wiring) forcement par la même interface.
Exemple :
configuration app { }
implementation {
uses c1, c2, c3;
c1 -> c2;
[Link] -> [Link];
c3 <- [Link];
}
70
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Les fonctions ((task)) sont exécutées dans l’application, en utilisant la même philosophie que
les fils ou ((threads)).
Les fonctions ((event)) sont des fonctions qui sont appelées quand on détecte un signal dans le
système. Ce type de fonctions est invoqué de la manière suivante :
Event
Appeler des commandes, signaler d'autres événements, poster des tâches mais ne peut
pas être signalé par des commandes ;
Peut interrompre une tâche mais pas l'inverse.
Task
Ordonnancement FIFO ;
Non préemptive par une autre tâche, préemptive par un événement ;
Utilisée pour réaliser un travail qui nécessite beaucoup de calculs.
71
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Le compilateur ncc offre aussi la possibilité de pouvoir compiler l’application pour l’utiliser
sur TOSSIM, le simulateur de TinyOS. Dans ce cas-là, la commande sera : « make pc
»[25][38]. Cette commande génère un exécutable «[Link]» dans l’arborescence
« /repertoire_courant/build/pc ».
72
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
configuration Temperature {
implementation {
[Link] ->[Link];
[Link] ->TimerC;
[Link] ->Comm;
[Link] ->[Link][unique("Timer")];
[Link] ->LedsC;
[Link] ->[Link];
[Link] ->Temp;
[Link] ->[Link];
[Link] ->[Link];
73
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
Il est à noter que la configuration Main est obligatoirement présente dans la configuration
décrivant l’ensemble de l’application car son rôle est de démarrer l’exécution de l’application.
L’application ci-dessus utilise le composant LedsC, ce qui permet de manipuler les leds du
capteur.
module TemperatureM
//l’interface fournie
provides {
interface StdControl;
uses {
interface Timer;
interface Leds;
interface SendMsg;
interface ADC;
interface ReceiveMsg;
implementation {
74
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
TOSSIM qui s’exécute sur un PC. Le principale but de TOSSIM est de créer une simulation
très proche de ce qui ce passe dans ces réseaux dans le monde réel.
TOSSIM utilise une interface graphique écrite en Java, TinyViz, pour visualiser de manière
intuitive le comportement de chaque capteur au sein du réseau.
Cette application est équipée par plusieurs API plugins qui permet d’ajouter plusieurs
fonctions au simulateur comme par exemple contrôler les entrées radio ou bien suivre la
dépense d’énergie en utilisant un autre simulateur qui s’appelle Power TOSSIM.
TOSSIM fourni:
La première topologie, c’est le modèle par défaut « simple », dans laquelle chaque
nœud peut communiquer avec n’importe quel autre nœud dans le réseau. Les
paquets sont transmis dans le réseau sans aucune erreur et ils sont reçus par chaque
nœud. Cette topologie est trop théorique et ne reflète pas vraiment ce qui se passe
en monde réel tel que l’influence de l’environnement sur la stabilité de la
communication.
Le deuxième type est le modèle « lossy ». Dans ce modèle les nœuds sont placés
dans un graphe direct formé d’un couple (a, b) ce qui signifie qu’un paquet envoyé
par le nœud a peut être reçu par le nœud b.
Le premier noeud id indique que le second nœud id peut recevoir un paquet transmis par le
premier nœud id. Ceci représente un lien direct dans un graphe.
Le troisième paramètre est un nombre entre 0 et 1 et il exprime le taux d’erreur bit d’une
liaison.
Chaque bit est considéré de manière indépendante. Par exemple, une valeur de 0,01 signifie
que chaque bit transmis a une chance de 1% d'être perdue, tandis que 1,0 signifie que chaque
bit sera perdue, et de 0,0 signifie que le bit sera transmis sans erreur.
Le graph du modèle lossy peut être spécifié au démarrage de TOSSIM, il suffit de préciser
le modèle lossy avec l’option –r =lossy .Si on veut spécifier un fichier de configuration de la
topologie lossy en entrée, il nous suffit de mettre –rf= [Link]. Le fichier « [Link] » a le
format suivant:
75
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
III.2 Avantages
II.3 Inconvénients
TOSSIM fournie une abstraction de certains phénomènes du monde réel.
La Radio: il ne modélise pas la propagation dans la radio, à la place, il fournit
une abstraction de l’indépendance directe de taux d’erreurs entre deux nœuds.
Il exige l’exécution du même code pour tous les nœuds. Donc il ne distingue pas les
différents types de capteurs.
76
PDF Page Organizer - Foxit Software
Chapitre IV: TinyOS et TOSSIM
CONCLUSION
Ce chapitre a été consacré à l’étude de notre environnement de travail. A travers les
différents points essentiels que nous avons cités, nous avons abordé l’architecture du système
d’exploitation TinyOS, son mode d’ordonnancement, la compilation des différentes
applications écrites en NesC et également la description du simulateur TOSSIM sur lequel se
déroulent ces dernières.
Nous allons passer à l’implémentation de toutes les étapes de notre étude et donner des
résultats démonstratifs qui les justifient. Le prochain chapitre sera dédié à l’implémentation
des protocoles de routage AODV et LEACH afin d’obtenir une comparaison entre ces deux
protocoles.
77
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
CHAPITRE V :
IMPLEMENTATION DE LEACH
ET AODV SUR TOSSIM
78
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Introduction
Tel qu’on l’a montré au cours du chapitre précédent, l’un des objectifs principaux de
notretravail est l’adaptation du protocole de routage AODV aux réseaux de capteurs sans fil.
L’autre objectif de ce chapitre estd’évaluer les performances des deux protocoles LEACH
et AODV- adapté. Le choix de LEACH comme référence est dû au fait que ce dernier est très
utilisé sur les réseaux de capteurs actuellement.
Pour cela, nous allons commencer par déterminer l’ensemble des structures de données qui
seront utilisées pendant la phase d’implémentation des tables de routagesainsi qu’un ensemble
de commandes utiliséespendant la phase de simulation. Par la suite nous allons passer à une
simulation des deux protocoles afin de préciser l’amélioration d’AODV- adapté.
Nous terminerons ce chapitre par une petite comparaison entre les deux protocoles, AODV-
adapté et LEACH en appuyant sur les résultats de simulation.
La figure V.1 montre la structure du message RREQ envoyé par le nœud source.
Le nœud source maintient une seule valeur de RreqID. Pour chaque message RREQ
envoyé en broadcast,la valeur de RreqID est augmenté de un. Le champ metric représente
le nombre de sauts nécessaire pour atteindre la destination.
79
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
AODV_Rreq_Msg {
uint8_tsrc; // Adresse du noeud source générant la requête Rreq
uint16_trreqID; // route request ID
uint16_tsrcSeq; // Le numéro de sequence du noeud source
uint16_tdestSeq; //Dernier numéro de séquence reçu par le nœud source vers la destination
uint8_t metric[1]; // la sélection du nombre de sauts
};
AODV_Rreply_Msg {
uint8_tsrc; // l’adresse source de RREQ
uint16_tdestSeq; // le numéro de séquence de la destination
uint8_t metric[1]; // la sélection du nombre de sauts
};
La figure V.3 montre la structure de message RERR, ce message est envoyé uniquement
lors de détection d’erreurs lors de transmission des messages:
AODV_Rerr_Msg {
uint8_tdest; // l’adresse de destination
uint16_tdestSeq; //le dernier numéro de séquence reçu par la destination
};
80
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Tos_Msg {
uint16_taddr; // adresse de next hop (Broadcast / unicast address)
uint8_t type; // message ID du paquet
uint8_t group; // les groupes id pour les motes. Le groupe par defautest 0x7d
uint8_t length; // length of the packet payload
SHop_MsgSHopmsg; // AODV single hop message
MESSAGESdatamsg;
};
SHop_Msg {
uint8_tsrc; // l’adresse source du mote
uint8_tseq; // le numéro de séquence du paquet
};
Figure V.4: Packet structure of AODV messages
Avec le champ message représente les différentes requêtes envoyées dans le réseau :
La structure d’un paquet de données AODV est présenté dans la figure V.5 suivante:
Tos_Msg {
uint16_taddr; // address of the next hop (Broadcast / unicast address)
uint8_t type; // the message id of the packet
uint8_t group; // the group id of the motes. Default group id is 0x7d
uint8_t length; // length of the packet payload
SHop_MsgSHopmsg;
AODV_Msgaodv; // AODV header
MESSAGES Appdatamsg; // data payload of the application
};
SHop_Msg {
uint8_tsrc; // Source address of the mote
uint8_tseq; // Sequence number of the packet
};
AODV_Msg {
MHop_Headermhop;
uint8_tseq; // AODV sequence number
uint8_tttl; // time to live
};
81
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
MHop_Header {
uint8_tsrc; // Source address of the packet originator
uint_tdest; // Destination address for the packet
uint8_t app; // message ID of the packet
uint8_t length; // length of AODV application data payload
};
La table Route_Cache_Table est mise à jour par chaque nœud source recevant un paquet
de type RouteRequest.
La table de routage Route_Table est mise à jour par chaque nœud source recevant le
paquet Route_Reply.
La structure des deux tables est décrite dans les deux figures V.6 et V.7
AODV_Route_Cache {
uint8_tsrc; // l’adresse source de message RREQ
uint8_tnextHop; // address of the next hop in reverse path to the originator
uint16_trreqID; // Request ID of RREQ message
uint16_tdestSeq; // Destination sequence number of RREQ message
uint8_tnumHops; // Hop count of RREQ message from the originator - metric
};
82
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Remarque:
La modification du nœud Sink peut s’effectuer au niveau du fichier AODV.h comme suit :
#define AODV_ROOT_NODE 0 // 0 représente le nœud puits.
Pour obtenir la liste des dbg disponibles ainsi les différentes options nous utilisons la
commande suivante
83
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Build/pc/[Link] –help
Les résultats obtenus sont décrit dans la figure V.8 suivante :
Compilation et exécution :
84
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Scénario élaboré :
85
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Etapes de simulation :
Pour la bonne visibilité du contenu de la table de routage, nous avons mis au point une
structure qui nous permet de mieux observer le contenu.
Les étapes de simulation sont les même mais uniquement nous utilisons la variable
d’environnement usr3(qui un output). Les résultats son décrit dans la figure qui suit :
$ export DBG=usr3
86
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Remarque : les résultats obtenus précédemment peuvent être récupérer dans un fichier trace
en tapant la commande :
Nous citons les principales notations qui seront utilisées tout au long de la description de ce
schéma.
87
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Notation Description
PT Noeud puits
|| Opérateur de concaténation
R Round courant
88
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
//Broadcast du paquet
DATA ID =IDpt
DATA Round= R
Send (Broadcast,DATA)
3) CHi: Après l’étape de leur élection, les CHs envoient aux autres nœuds l’information
qui contient leurs nouveaux statuts.
4) MEMBREi: Les nœuds reçoivent les annonces des CHs. Ensuite, ils envoient
l’information qui contient leur décision d’appartenance au CH choisi. Pendant son
slot, un membre envoie à son CH la valeur captée dans le champ information.
89
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
//demanded’admission du groupe
DATA->ID=IDMBR ,
DATA->Round=R,
Send(IDCH, DATA)
6) Puits : Il vérifie l’intégrité de données. Dans le cas favorable, il accepte les données
agrégées sinon il les refuse.
Le paquet dans TinyOS est envoyé dans une structure appelée TOS_Msg (voir l’annexe C),
qui est contenue dans un champ « int8_t data [TOSH_DATA_LENGTH] ». Les structures de
données du paquet diffèrent selon le rang du nœud (puits, CH ou membre).
A) Le noeud puits :
typedefstruct PUITS
}PUITS;
90
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
B) Le nœud CH :
}CLUSTER_HEAD;
C) Le nœudMEMBRE :
typedefstructMEMBRE{
}MEMBRE;
III.2. Evénements et commandes :Nous citons ici les principaux événements utilisés pour
l’implémentation de LEACH.
91
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
msg) d’agrégation
III.3. Déroulement
Dans ce qui suit, nous allons dérouler le fonctionnement du protocole LEACH en faisant
appel à l’interface graphique TinyViz.
En ligne de commande :
#ou bien, on ouvre deux fenêtre de commandes une pour récupérer les traces de
l’exécution du protocole, l’autre pour visualiser son fonctionnement
92
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
Le nœud puits envoie un broadcast aux nœuds voisins pour l’annonce du round (comme
illustré dans la figure V-12)
Ses voisins prennent le relai en envoyant à leur tour selon une transmission broadcast (Figure
V-13)
93
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
De plus, nous pouvons voir que les nœuds 15, 7, 18, 26 sont élus CHs. Ces évènements sont
marqués par l’activation des LED rouges des CHs (illustré dans la figure V-14). Ensuite, le
CHs 15,7, 18, 26 diffusent des ADV pour signaler leurs statuts.
Figure. V-14 : Déclenchement et relai du nouveau round, annonce des CHs 15,7,18,26.
Durant la première étape, les nœuds non-CH répondent à l’annonce du CH le plus proche. La
figure IV-13 illustre la formation des clusters des CHs 7, 18, 26
Quant à la seconde étape, chaque membre capte la donnée perçue et attend le début de son
slot pour qu’il puisse l’envoyer à son CH.
94
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
III.3.3 Envoi des résultats d’agrégation des données captées au nœud puits :
Dans la figure V-16, les CHs 7, 26,18 agrègent les données reçues et envoie les résultats
d’agrégation au nœud puits.
95
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
La consommation d’énergie
Pour la comparaison des deux protocoles LEACH et AODV-adapté, nous nous intéressons à
l’énergie consommée au niveau des nœuds des deux protocoles.
Avant de lancer les simulations, nous devons ajuster certains paramètres qui sont présentés
par le tableau V-3 :
96
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
V-Résultats et interprétations
Nous avons dans un premier temps mesuré la consommation énergétique des nœuds
capteurs pour lesdeux protocoles AODV et AODV-adapté pour des échantillons de 30, 40, 50
et 60 nœuds.
Les résultats de ce test sont récupérés dans des fichiers tracessous la forme suivante :
………………………………………..
Mote 29, cpu total: 90.075650 Mote 29, radio total: 153.342176
Mote 29, adc total: 0.000000 Mote 29, leds total: 0.000000 Mote
29, sensor total: 0.000000 Mote 29, eeprom total: 0.000000
Mote 29, cpu_cycle total: 0.000000 Mote 29, Total energy: 243.417826
La consommation énergétique mesurée pour les deux protocoles est la somme de l’énergie
consommée par tous les nœuds capteurs.
V-1 Consommation d’énergie par les nœuds pour les protocoles AODV-adapté et
AODV
Nœuds 30 40 50 60
Consommation énergétique(MJ)
TABLEAU V-4 Consommation énergétiques des nœuds capteurs pour les protocoles
AODV et AODV-adapté
97
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
18000
Energie consommée(Mili Joules)
16000
14000
12000
10000
8000 AODV
6000 AODV-adapté
4000
2000
0
30 40 50 60
Taille du réseau (nbre de noeurds)
Graphe . V-1 : Consommation d’énergie des nœuds capteurs pour les protocoles AODV q et
AODV_adapté.
Comme l’illustre les résultats du graphe V.1, l’énergie consommée pour le protocole
AODV est plus élevée que celle d’AODV-adapté. Cette hausse enregistrée dans la
consommation d'énergie est induite par les tâches de recherches et d’établissementsde routes
vers le destinataireeffectuées par les nœuds du réseau. Par contre, dans le protocole AODV-
adapté, le nœud destinataire est le puits, il est connu par tous les nœuds capteursdu réseau.
Ce qui nous a permis d’améliorer le format de la table de routage (comme il est décrit dans la
section II.2) et ainsi le format et la taille des messages échangés entre les nœuds.
V-2 Consommation d’énergie des nœuds pour les protocoles LEACH et AODV :
Il est également intéressant d’analyser la consommation d’énergie par nombre de nœuds
du réseau pour les protocoles LEACH et AODV :
Nœuds 30 40 50 60
Consommation énergétique
LEACH
6062,48 6257 6965,48 8646,25
TABLEAU V-5 Consommation énergétiques des nœuds capteurs pour les protocoles
LEACH et AODV
98
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
18000
Energie consommée (MiliJoules)
16000
14000
12000
10000
8000 LEACH
6000 AODV
4000
2000
0
30 40 50 60
Taille du réseau (nbre de noeuds)
Graphe . V-2 : Consommation d’énergie des nœuds capteurs pour les protocoles LEACH et
AODV
V-3 Consommation d’énergie des nœuds pour les protocoles LEACH , AODV et AODV-
adapté :
noeuds 30 40 50 60
consommation E
LEACH 6062,48 6257 6965,48 8646,25
AODV 7069,51 8290,85 10096,83 16663,72
AODV-adapté 6362,48 6518,87 7305,61 10371,18
Tableau V-6 Consommation énergétiques des nœuds capteurs pour les protocoles LEACH ,
AODV et AODV-adapté
99
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
12000
Energie consommée (MiliJoules)
10000
8000
6000
LEACH
4000 AODV-adapté
2000
0
30 40 50 60
Taille du réseau(nbre de noeuds)
Graphe . V-3 : Consommation d’énergie des nœuds capteurs pour les protocoles LEACH et
AODV-adapté
18000
16000
Energie consommée (Milijoules)
14000
12000
10000
LEACH
8000
AODV
6000 AODV-adapté
4000
2000
0
30 40 50 60
Taille du réseaux(nombre de noeuds)
Graphe V-4 : Consommation d’énergie des nœuds capteurs pour les protocoles LEACH,
AODV et AODV-adapté
A travers les résultats des deux graphes V-3, V-4 qui illustre la consommation
énergétiques des nœuds capteurs dans le réseau pour les protocoles LEACH, AODV et
100
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
AODV-adapté, on constate que le protocole AODV consomme bien plus que LEACH car la
recherche des routes à la demandepour le protocole AODV peut consommer beaucoup
d’énergie aux capteurs ce qui constitue une limitation à leurs autonomie d’énergie. Les nœuds
capteurs qui utilisent le protocole AODV-adapté consomme moins d’énergie que ceux qui
utilisent le protocole AODV. Une amélioration au niveau de la bande passante engendrant un
gain d’énergie, ce qui montre l’adaptabilité du protocole AODV-adapté aux réseaux de
capteurs.
Néanmoins, le protocole LEACH reste le mieux adapté pour la conservation d’énergie dans
les réseaux par rapport à notre protocole AODV-adapté.
VI .1 LEACH
Avantages
Le protocole LEACH présente les avantages suivants :
Auto-configuration des nœuds avec la formation de clusters
Les données sont fusionnées pour réduire la quantité d’informations transmise vers la
station de base.
La consommation d’énergie est partagée sur l’ensemble des nœuds prolongeant ainsi
la durée de vie du réseau.
Inconvénients
En revanche, LEACH a les inconvénients suivants :
Sans justifier leurs choix, les auteurs fixent le pourcentage optimal de CHs pour le
réseau à 5% du nombre total des nœuds. Néanmoins, la topologie, la densité et le
nombre de nœuds peuvent être différents dans d’autres réseaux.
Aucune suggestion n’est faite à propos du temps de réélection des CHs (temps des
itérations).
Les CHs les plus éloignés de la station de base meurent rapidement par rapport à ceux
qui sont proches de la station.
VI.2 AODV
L'un des avantages d'AODV est l'utilisation de numéro de séquence dans les messages. Ces
numéros de séquences permettent l'éviter les problèmes de boucles infinies et sont essentiels
au processus de mise à jour de la table de routage.
Un autre avantage est le rappel de l'adresse IP du nœud origine dans chaque message. Ceci
permet de ne pas perdre la trace du nœud à l'origine de l'envoi du message lors des différents
relais.
Un inconvénient d'AODV est qu'il n'existe pas de format générique des messages. Chaque
message a son propre format : RREQ, RREP, RERR.
101
PDF Page Organizer - Foxit Software
CHAPITRE V : IMPLEMENTATION DE LEACH ET AODV SUR TOSSIM
VI.3 Comparaison
Conclusion
De nombreux travaux portent aujourd’hui sur l’acheminement d’informations dans les
réseaux de capteurs sans fil par les capteurs dans un réseau en prenant en considération, en
premier lieu, les communications.
C’est dans ce but que nous avons présenté dans ce chapitre, deux protocoles de routage de
type de réseaux différents, le protocole de routage hiérarchique LEACH qui répond aux
besoins d’un réseau étendu, notamment un réseau de capteurs sans fil, suit une approche basée
sur les groupes. Cette approche a montré son efficacité, comparée à la topologie plate, en
termes de consommation et de dissipation uniforme d’énergie prolongeant ainsi la durée de
vie du réseau.
Toutefois le protocole LEACH est soumis à certaines contraintes, des inconvénients. Par
exemple, la communication unicast, établie entre le nœud puits et les CHs et entre ces derniers
et leurs membres, n’est pas toujours efficace par rapport à la communication multi-sauts.
Mais également les chefs de clusters sont soumis à de forte concentration d’énergie dû aux
données envoyées par leurs membres.
102
PDF Page Organizer - Foxit Software
CONCLUSION GENERALE
L’étude réalisée durant ce projet nous a permis de découvrir le monde des réseaux de
capteurs sans fils, ainsi que leurs caractéristiques et leurs intérêts dans notre vie.
Dans les réseaux de capteurs sans fil, les nœuds communiquent à travers l’envoie des
messages, assurant de telle façon la maintenance et la performance du réseau.
Une des principales problématiques lors du développement de réseaux de capteurs sans fils
est le routage, l’absence d’infrastructure et les faibles capacités de calculs et de batteries
rendent la fonction du routage plus critique.
L’objectif de notre travail consistait à interpréter les traces résultantes de la simulation des
protocoles de routage, plus précisément des deux protocoles de routage AODV-adapté et
LEACH suivant la métrique de la consommation d’énergie.
En premier lieu, nous avons présenté un état de l’art sur les réseaux Ad Hoc et les réseaux
de capteurs sans fil où nous avons étudié plusieurs aspects liés à ses réseaux, allant des
caractéristiques des capteurs, leurs architecture protocolaire, l’alliance ZigBee, en passant par
les différentes contraintes imposées par les réseaux de capteurs sans fil et leurs différents
domaines d’applications.
Nous avons également étudié les protocoles de routage dans les réseaux de capteurs du
point de vue: caractéristiques et techniques de communications utilisées. Nous nous sommes
intéressées plus particulièrement au protocole LEACH qui est une référence dans les réseaux
de capteurs. Cet état de l’art s’achève par une étude comparative de ces protocoles. Ceci nous
a permis de relever les principaux avantages et inconvénients des différentes approches
utilisées dans le routage.
Nous avons étudié dans le chapitre III, le fonctionnement du protocole AODV ainsi que
son adaptabilité aux réseaux de capteurs, la minimisation la taille de la table de routage nous a
permis d’avoir un gain d’espace et d’énergie lors de l’envoie et la réception des messages
entre les nœuds capteurs.
103
PDF Page Organizer - Foxit Software
CONCLUSION GENERALE
Les tests et comparaisons effectuées entre AODV et LEACH ont montré que :
Le protocole LEACH prolonge la durée de vie du réseau et minimise la consommation
d’énergie comparé au protocole AODV et ceci grâce à la mise en veille des capteurs ne
participant pas au routage ainsi que l’agrégation des données qui permet de réduire la quantité
de paquets circulant dans le réseau.
Par ailleurs, AODV qui reste une référence dans les réseaux Ad Hoc, son adaptabilité
dans les réseaux de capteurs sans fil est toujours ouverte à des futures recherches et
améliorations coté routage et gain d’énergie.
104
PDF Page Organizer - Foxit Software
BIBLIOGRAPHIE
[1] LEMLOUM, T. Le Routage dans les Réseaux Mobiles Ad Hoc. Source : disponible
sur [Link]
[4] BOUNEGTA, N. Approche distribuée pour la sécurité d'un réseau de capteurs sans
fils (RCSF). 2010. Source: disponible sur
[Link]
[Link]
[5] YASER, Y. Routage pour la gestion de l’énergie dans les réseaux de capteurs sans
[8] T. Kwon and M. Gerla, "Clutering with Power Control", In Proceedings MILCOM,
volume 2. (1999)
PDF Page Organizer - Foxit Software
BIBLIOGRAPHIE
[9] E.-S. Jung and N. H. Vaidya, "A power control MAC protocol for ad-hoc networks",
In ACM MOBICOM. (2002)
[11] KHELLADI, Lyes, BADACHE, Nadjib. Les réseaux de capteurs: état de l’art,
Rapport de recherche, Alger, Février 2004. Source : disponible [Link]
[Link]/Rapports_pdf/2004/[Link]
[12] Sébastien Tixeuil, Ted Herman, « Un algorithme TDMA réparti pour les réseaux de
capteurs », INRIA Projet Grand Large, Universités Iowa et Paris-Sud XI, 2004.
[14] BEYDOUN, Kamal, Conception d’un protocole de routage hierarchique pour les
reseaux de capteurs. 2009, 141 p. Source : disponible [Link]
[Link]/home/~hguyennet/These_beydoun.pdf
[15] Eric Lawrey, «The suitability of OFDM as a modulation technique for wireless
telecommunications, with a CDMA comparison», Projet d’ingéniorat, Université
James Cook, Australie, 2001.
[16] Djallel Eddine Boubiche, «Protocole de routage pour les réseaux de capteurs sans
fil», Mémoire de magistère, Université de l’Hadj Lakhdar, Batna, Algérie, 2008.
BIBLIOGRAPHIE
[22] TinyOS Getting Started Guide, Document 7430-0022-0, October 2003, source:
disponible [Link]
[24] Gérard Chalhoub, Routage et MAC dans les réseaux de capteurs sans fil. 2010
disponible sur le site :[Link]
BIBLIOGRAPHIE
[27] Ad hoc On-Demand Distance Vector (AODV) Routing, Network Working Group
C. Perkins Nokia Research Center, E. Belding-Royer, University of California, Santa Barbara,
S. Das, University of Cincinnati, July 2003. RFC 3561. Category: Experimental
Source : disponible [Link]
[29] BACCOUR,N , « Etude comparative de deux simulateurs pour les réseaux sans
fil Ad-hoc », Projet de fin d’études, l’Ecole Nationale d’Ingénieurs de Sfax, juillet 2005
[32] DEHNI, Lahcene , BENNANI, Younès, KRIEF, Francine, LEA2C : Une nouvelle
approche de routage dans les réseaux de capteurs pour l’optimisation de la consommation
d’énergie. Source : disponible sur [Link]
[Link]/~bennani/Publis/LEA2C_Gres_2005.pdf
BIBLIOGRAPHIE
Les réseaux de capteurs utilisent un très grand nombre de capteurs qui ont la fonction
d’analyser leurs environnement et qui reliés ensemble forment un réseau sans fil en se basant
sur des protocoles de routage pour communiquer et propager les données récoltées aux
capteurs appartenant à leurs zones de couverture. Chaque capteur relayant l'information sur sa
propre zone de couverture, le réseau se trouve entièrement couvert.
Afin de répondre aux caractéristiques et aux nécessités des réseaux de capteurs, telles
qu’une taille de mémoire réduite ainsi qu’une basse consommation d’énergie, un système
d’exploitation spécialisé minime destiné pour ces réseaux a été créé[Link] est le système
actuellement le plus utilisé dans les applications nécessitant des capteurs.
Dans cette annexe, nous allons introduire et développer les étapes d’installation de la
plateforme TinyOS, ainsi que le fonctionnement et l’utilisation du simulateur Tossim et
l’interface graphique TinyViz.
I- ENVIRONNEMENT DE TRAVAIL
I.1. Le système d’exploitation TinyOS
TinyOS est le système d'exploitation open-source, conçu par des chercheurs de Berkeley,
pour des réseaux de capteurs sans fils. Son architecture est basée sur une association de
composants s'appuyant sur le langage NesC qui est un langage orienté composant,
syntaxiquement proche du C.
Un composant correspond à un élément matériel (LEDs, timer, ...) et peut être réutilisé dans
différentes applications.
Un autre grand intérêt à utiliser TinyOS est sa bibliothèque de composants très complète
implémentant des pilotes de capteurs, des outils de capture et des protocoles réseaux plus
particulièrement intéressants pour des recherches comme la simulation des taux de perte de
paquets sous le simulateur Tossim, etc
PDF Page Organizer - Foxit Software
TinyOS est prévu pour fonctionner sous plusieurs plates-formes comme Windows (2000
et XP) ou bien GNU/Linux.
Les versions de TinyOS sont multiples, parmi elles la version stable (V. 1.x) et La version en
développement (V. 2.x)
On visitant le site officiel de TinyOS, on peut trouver toutes les versions existantes de
TinyOS sous forme de zip comme l’illustre la figure A-1 :
Afin de simuler le comportement des capteurs, un outil très puissant a été développé et
proposé sous le nom de TOSSIM. Ce dernier est souvent utilisé avec une interface graphique
(TinyViz) pour une meilleure compréhension et visualisation de l’état du réseau. L’utilisation
de ces deux logiciels est immédiate dès lors que TinyOS est opérationnel.
I.2.2. TinyViz
L’outil TinyViz est une application graphique qui nous permet d’avoir un aperçu de
notre réseau sans avoir à déployer les capteurs dans la nature. Une économie d’effort et une
préservation du matériel sont possibles grâce à cet outil. L’application permet une analyse
étape par étape en activant les différents modes disponibles.
Cet annexe sera exploité pour l’installation des différentes versions de TinyOS plus
précisément TinyOS-2.1.1, TinyOS-1.x, TinyOS-2.x et TinyOS-2.x-contrib
PDF Page Organizer - Foxit Software
….. opt .. …
java
sdk Blink
….. Blink TestTinyViz
net
java
tinyos
net
sim tinyos
Tinyviz sim
Le point majeur qui caractérise le TinyOS-1.x, c’est qu’on plus de son simulateur TOSSIM
la disponibilité de son interface graphique Tinyviz qui est absente dans les versions tinyos-2.x
et tinyos-2.x-contrib.
On se référant sur un article porté spécialement sur l’installation TinyOs-1.x sous Debian,
nous avons suivi les étapes suivantes :
Sous terminal :
sabrina@sabrina-eMachines-E510:~$ su
Mot de passe :
root@sabrina-eMachines-E510:/home/sabrina# cd
Il s’agit des versions supportées sous Debian par les dépôts de TinyOS mise sous la
forme suivante :
deb [Link] <distribution> main
La version la plus récente supportée par ces dépôts TinyOS est lucid, ce qui donne:
deb [Link] lucid main
2- l’environnement de développement de TinyOS requiert l’utilisation du compilateur
avrgcc, perl, flex … ainsi que la JDK 1.5 ou une version plus récente.
De ce fait, pour installer TinyOScertains paquets doivent être installé préalable :
Cvs
Subversion
Autoconf
automake1.9
python-dev
g++
g++-3.4
gperf
swig
PDF Page Organizer - Foxit Software
sun-java5-jdk
graphviz
alien
fakeroot
Quelques remarques :
Si les messages apparaissent :
Aucune version du paquet sun-java5-jdk n'est disponible, mais il existe dans la base de
données.
E: Impossible de trouver le paquet g++-3.4
E: Impossible de trouver de paquet correspondant à l'expression rationnelle «g++-3.4»
E: Le paquet « sun-java5-jdk » n'a pas de version susceptible d'être installée
Cela signifie que le paquet est manquant, qu'il est devenu obsolète ou qu'il n'est
disponible que sur une autre source.
Si Ubuntu 10.10 est installé comme système d’exploitation cohabitant avec
Windows , java-open6-jdk est installé par défaut : le chemin pour y accéder est:
\usr\include\lib mais si Ubuntu 10.10 est installé comme application sous Windows le
jdk est inexistante et il faudra l’installer.
Pour le paquet g++_3.4 : cette version est obsolète sous Ubuntu 10.10 qui accepte à
la place le paquet g++_4.4 installé automatiquement en installant le g++.
Sous Ubuntu 10.10 tinyos- avr et tinyos -msp430 sont sous d’autres appellations :avr-
tinyos et msp430-tinyos.
# Java
export JDKROOT=/usr/lib/jvm/java-6-openjdk
export JAVAXROOT=$JDKROOT
# Preserve any non Tinyos related class paths that have been set prior
# to this file being sourced. We check the for an empty OLD_CLASSPATH
# to ensure that OLD_CLASSPATH only gets set once.
if [ "$OLD_CLASSPATH" == "" ]; then
if [ "$CLASSPATH" == "" ]; then
export OLD_CLASSPATH="empty"
else
export OLD_CLASSPATH=$CLASSPATH
fi
fi
PDF Page Organizer - Foxit Software
export TOSROOT=/opt/tinyos-1.x
export TOSDIR=$TOSROOT/tos
export MAKERULES=$TOSROOT/tools/make/Makerules
unset CLASSPATH
export CLASSPATH=$CLASSPATH\:`$TOSROOT/tools/java/javapath`
else
unset CLASSPATH
export
CLASSPATH=$CLASSPATH\:$TOSROOT/support/sdk/java/[Link]\:$TOSR
OOT/support/sdk/java/
export PYTHONPATH=:$TOSROOT/support/sdk/python/
export MAKERULES=$TOSROOT/support/make/Makerules
unset TOSMAKE_PATH
PDF Page Organizer - Foxit Software
# Helpful aliases
aliassf="java [Link]"
alias listen="java [Link]"
root@sabrina-eMachines-E510:~# cvs
-d:pserver:anonymous@[Link]:/cvsroot/tinyos login
Logging in to :pserver:anonymous@[Link]/cvsroot/tinyos
CVS password:
cvs login: CVS password file /root/.cvspass does not exist - creating a new file
root@sabrina-eMachines-E510:~# cvs -
d:pserver:anonymous@[Link]:/cvsroot/tinyos login
6- Test de l'installation :
Depuis le terminal :
root@sabrina-eMachines-E510:~# su
Mot de passe :
Setting up for TinyOS 1.x
Script toscheck :
Pour vérifier que les outils tels que nesc, avr, msp430 et autres ont
été installés correctement et que les variables d'environnement sont
dé[Link] toscheck est un script qui va exécuter ces fonctions.
Dans le répertoire apps de TinyOS-1.x plusieurs applications dans celle de Blink existe,
pour compiler, on utilise la commande make : make<platform>qui crée un dossier build
comportant des fichiers ainsi qu’un exécutable [Link]
root@sabrina-eMachines-E510:/home/sabrina# cd /opt/tinyos-1.x
root@sabrina-eMachines-E510:/opt/tinyos-1.x# cd apps
root@sabrina-eMachines-E510:/opt/tinyos-1.x/apps# cd Blink
root@sabrina-eMachines-E510:/opt/tinyos-1.x/apps/Blink# make pc
mkdir -p build/pc
compiling Blink to a pc binary
ncc -o build/pc/[Link] -g -O0 -pthread -fnesc-nido-tosnodes=1000 -fnesc-
simulate
………………
compiled Blink to build/pc/[Link]
root@sabrina-eMachines-E510:/opt/tinyos-1.x/apps/Blink# cd /opt/tinyos-
1.x/tools/java/net/tinyos/simot@sabrina-eMachines-E510:/opt/tinyos-
1.x/tools/java/net/tinyos/sim# make clean
cleaning /opt/tinyos-1.x/tools/java/net/tinyos/sim
root@sabrina-eMachines-E510:/opt/tinyos-1.x/tools/java# make
root@sabrina-eMachines-E510:/opt/tinyos-1.x/tools/java/net/tinyos/sim# make
... /opt/tinyos-1.x/tools/java/net/tinyos/sim
(cd msg; make)
……..
root@sabrina-eMachines-E510:/opt/tinyos-1.x/tools/java/net/tinyos/sim# cd lossy/
root@sabrina-eMachines-E510:/opt/tinyos-1.x/tools/java/net/tinyos/sim/lossy# make
... /opt/tinyos-1.x/tools/java/net/tinyos/sim/lossy
javac [Link]
javac [Link]
Note: [Link] uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
javac [Link]
root@sabrina-eMachines-E510:/opt/tinyos-1.x/tools/java/net/tinyos/sim/lossy# cd
/opt/tinyos-1.x/tools/java/net/tinyos/sim
root@sabrina-eMachines-E510:/opt/tinyos-1.x/tools/java/net/tinyos/sim# make jarfile
PDF Page Organizer - Foxit Software
Résultat du makejarfile
net/tinyos/sim/plugins/[Link] \
net/tinyos/sf/*.class \
net/tinyos/util/*.class \
net/tinyos/packet/*.class \
net/tinyos/message/*.class \
net/tinyos/message/avrmote/*.class \
org/apache/oro/text/regex/*.class \
org/python/compiler/*.class \
org/python/core/*.class \
org/python/modules/*.class \
org/python/parser/*.class \
org/python/parser/ast/*.class \
org/python/rmi/*.class \
org/python/util/*.class)
rm -rfjarbuild-tmp
mkdirjarbuild-tmp
(cdjarbuild-tmp; jar xf ../[Link]; jar xf ../$(ROOT)/jars/[Link]; rm -rf
METAINF;
jarcmf ../[Link] ../[Link] .)
rm -rf [Link] jarbuild-tmp
jarclean:
rm -f [Link]
cd /opt/tinyos-1.x/apps/TestTinyViz
make pc
export DBG=led
build/pc/[Link] 30
tinyviz -run build/pc/[Link] 30
Une fois TinyViz est lancé, on peut visualiser une fenêtre suivante :
Dans la partie gauche de cette figure, on distingue les capteurs qui sont déplaçables dans
l'espace. Quant à la partie droite, on distingue les commandes permettant d'intervenir sur la
simulation:
On/Off: met en marche ou éteint un capteur.
Delay: permet de sélectionner la durée au bout de laquelle se déclenche le timer.
Play: permet de lancer la simulation où de la mettre en pause
Bouton de grilles: affiche un quadrillage sur la zone des capteurs afin de pouvoir les
situer dans l'espace.
Clear: efface tous les messages qui avaient été affichés lors de la simulation.
Stop: arrête la simulation et ferme la fenêtre.
Pour lancer une application, il faut régler le Delay souhaité entre chaque application,
choisir les plugins de visualisation que l’on souhaite, et, appuyer sur Play. La simulation
démarre.
Chaque onglet contient un plugin qui permet de visualiser la simulation de façon plus ou
moins détaillée.
Par exemple, en activant le plugin Debug Messages, tous les messages de type
Debugapparaîtront dans l'onglet correspondant.
Le plugin Radio Links permet de visualiser graphiquement par des flèches, les échanges
effectués entre les capteurs. Plus précisément, si un capteur envoie un broadcast, il sera repéré
par un cercle. Par contre, s’il envoie un message direct (unicast) alors le lien de
communication sera repéré par une flèche.
cd .. /CntToLedsAndRfm
make pc
export DBG=led,am
tinyviz -run build/pc/[Link] 4
Sur le site officiel de tinyOS, un article sur l’installation de la dernière version de tinyOS
est disponible la V.2.1.1, nous nous sommes referez pour installer tinyos-2.1.1 :
1-sous terminal
sudogedit /etc/apt/[Link]
#tinyOS
deb [Link] lucid main
#et sous ubuntu 10.10 en plus de la ligne précédente, on rajoute les deux lignes suivantes:
deb [Link] edgy main
deb [Link] feisty main
sudogedit ~/.bashrc
On ajoute les lignes suivantes :
sabrina@sabrina-eMachines-E510:~$ su
Mot de passe :
Setting up for TinyOS 2.1.1
root@sabrina-eMachines-E510:~# cd /opt/tinyos-2.1.1/support/sdk/java/net/tinyos/sim
root@sabrina-eMachines-E510:/opt/tinyos-2.1.1/support/sdk/java/net/tinyos/sim# make
clean
cleaning /opt/tinyos-2.1.1/support/sdk/java/net/tinyos/sim
root@sabrina-eMachines-E510:/opt/tinyos-2.1.1/support/sdk/java/net/tinyos/sim# make
... /opt/tinyos-2.1.1/support/sdk/java/net/tinyos/sim
javac [Link]
En exécutant la commande
root@sabrina-eMachines-E510:/opt/tinyos-2.1.1/apps/Blink# make micazsim
On obtenait toujours une compilation qui se terminer avec des erreurs :
mkdir -p simbuild/micaz
make: python2.5-config : commandeintrouvable
make: python2.5-config : commandeintrouvable
make: python2.5-config : commandeintrouvable
placing object files in simbuild/micaz
writing XML schema to [Link]
compilingBlinkAppC to object file sim.o
ncc -c -shared -fPIC -o simbuild/micaz/sim.o -g -O0 -tossim -fnesc-nido-tosnodes=1000 -
fnescsimulate
-fnesc-nido-motenumber=sim_node\(\) -fnesc-gcc=gcc -Wall -Wshadow -Wnesc-all
-target=micaz -fnesc-cfile=simbuild/micaz/app.c -board=micasb
-DDEFINED_TOS_AM_GROUP=0x22 --param max-inline-insns-single=100000
-DIDENT_APPNAME=\"BlinkAppC\" -DIDENT_USERNAME=\"root\"
-DIDENT_HOSTNAME=\"sabrina-eMachin\" -DIDENT_USERHASH=0xefa7fbb4L
-DIDENT_TIMESTAMP=0x4dcb216bL -DIDENT_UIDHASH=0x4b4b683fL -Wno-nesc-
datarace
[Link] -fnesc-dump=components -fnesc-dump=variables -fnesc-dump=constants
-fnesc-dump=typedefs -fnesc-dump=interfacedefs -fnesc-dump=tags -fnesc-dumpfile=[Link]
compiling Python support and C libraries into pytossim.o, tossim.o, and c-support.o
g++ -c -shared -fPIC -o simbuild/micaz/pytossim.o -g -O0 -
DIDENT_APPNAME=\"BlinkAppC\"
-DIDENT_USERNAME=\"root\" -DIDENT_HOSTNAME=\"sabrina-eMachin\"
-DIDENT_USERHASH=0xefa7fbb4L -DIDENT_TIMESTAMP=0x4dcb216bL
-DIDENT_UIDHASH=0x4b4b683fL /opt/tinyos-2.1.1/tos/lib/tossim/tossim_wrap.cxx
-I/include/python2.5 -I/opt/tinyos-2.1.1/tos/lib/tossim -DHAVE_CONFIG_H
make: g++ : commandeintrouvable
make: *** [sim-exe] Erreur 127
Ce qui indique quelques problèmes avec les paquets python et g++ qui ne trouve pas.
La version du python supportée par tossim est 2-6-6
root@sabrina-eMachines-E510:/opt/tinyos-2.1.1/apps/Blink# makemicazsim
mkdir -p simbuild/micaz
placing object files in simbuild/micaz
writing XML schema to [Link]
compilingBlinkAppC to object file sim.o
………
compiling Python support and C libraries into pytossim.o, tossim.o, and c-
support.o
g++ -c -shared -fPIC -o simbuild/micaz/pytossim.o -g -O0 –
………..
copying Python script interface [Link] from lib/tossim to local directory
*** Successfully built micaz TOSSIM library.
root@sabrina-eMachines-E510:/opt/tinyos-2.1.1/tos/lib/tossim# cd/opt/tinyos-
2.1.1/support/make
root@sabrina-eMachines-E510:/opt/tinyos-2.1.1/support/make# tos-check-env
Résultats:
Path:
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
Classpath:
/opt/tinyos-2.1.1/support/sdk/java
--> WARNING: CLASSPATH may not include /opt/tinyos-
2.1.1/support/sdk/java/[Link]. Please
ensure that /opt/tinyos-2.1.1/support/sdk/java/[Link] is in your CLASSPATH or you
may
experience configuration problems
--> WARNING: CLASSPATH may not include '.' (that is, the symbol for the current
working
directory). Please add '.' to your CLASSPATH or you may experience configuration
problems.
PDF Page Organizer - Foxit Software
rpms:
nesc:
/usr/bin/nescc
Version: nescc: 1.3.1
perl:
/usr/bin/perl
Version: v5.10.1 (*) built for i686-linux-gnu-thread-multi
flex:
bison:
java:
/usr/bin/java
--> WARNING: The JAVA version found first by tos-check-env may not be version 1.4
or version1.5one of which is required by TOS. Please ensure that the located Java version
is 1.4 or 1.5
graphviz:
/usr/bin/dot
dot - graphviz version 2.26.3 (20100126.1600)
--> WARNING: The graphviz (dot) version found by tos-check-env is not 1.10. Please
update your
graphviz version if you'd like to use the nescdoc documentation generator.
6-Exemples d’applications
1. Makefile
2. Un fichier de configuration de l’application
3. Un fichier contenant le module de l’application
Makefile est le fichier qui est compilé lors de la commande make, il fait appel à
d’autres fichiers
COMPONENT=SkelAppC
include $(MAKERULES)
PDF Page Organizer - Foxit Software
Vérification:
Les fichiers "[Link], [Link] et Makefile" doivent être dans /opt/tinyos-
2.1.1/apps
Dans un terminal, on compile les programmes
cd /opt/tinyos-2.1.1/apps
maketelosb
Résultats et remarques
sous terminal:
cd /opt/tinyos-2.1.1
mkdir Simple
cd Simple
1. Nous avons besoin de créer une un fichier configuration sous le nom de [Link]
sudogedit
configuration SimpleAppC{
} implementation{
componentsSimpleC, MainC;
[Link] ->[Link];
}
2. Nous avons besoin de crée un autre composant dans un fichier nommé [Link]. Il a la
définition d’une implémentation du composant SimpleC.
PDF Page Organizer - Foxit Software
sudogedit
moduleSimpleC{
uses interface Boot;
}
implementation{
event void [Link]()
{
//The entry point of the program
}
}
3. Maintenant nous avons besoin de crée un fichier nommé Makefile ainsi le compilateur peut
le compiler :
sudogedit
COMPONENT=SimpleAppC
include $(MAKERULES)
L’architecture du système TinyOS ; son mode d’exécution et son mode d’ordonnancement des
différents types d’action qui sont évènement, commande et tâche seront explicités dans les
annexes en fin du rapport.
PDF Page Organizer - Foxit Software
Annexe B :
Compilez votre application TinyOS sous la plateforme PC prévu pour le simulateur TOSSIM
en tapant :
Exemple:
$ export DBG=led
$ ./build/pc/[Link] -t=20 1
SIM: Random seed is 546875
0: LEDS: Red on.
0: LEDS: Red off.
0: LEDS: Red on.
0: LEDS: Red off.
0: LEDS: Red on.
0: LEDS: Red off.
0: LEDS: Red on.
0: LEDS: Red off.
0: LEDS: Red on.
0: LEDS: Red off.
0: LEDS: Red on.
Simulation of 1 motes completed.
• Exemple:
dbg (DBG_TEMP, «Compteur: La valeur est% i \ n", (int) state); Ce qui affichera la valeur du
compteur dans la fenêtre de commande.
PDF Page Organizer - Foxit Software
/**
* @author Philip Levis (derived from work by Mike Castelle)
* @author Phil Levis (pal)
*/
#ifndef DBG_MODES_H
#define DBG_MODES_H
enum {
DBG_ALL = (~0ULL), /* umm, "verbose" */
Options de [Link]
TOSSIM TINYVIZ
TOSSIM SIMDRIVER
SimDriver est une plate-forme extensible pour interagir avec TOSSIM / Nido qui est le
simulateur de TinyOS. Il est l'évolution de la TinyViz, l'interface graphique GUI qui vous
permet de visualiser et de déboguer le fonctionnement des programmes de TinyOS.
SimDriver intègre un environnement de script qui vous permet d'exécuter des scénarios et
d'interagir avec le simulateur en cours. GUI est un composant optionnel, permettant à la fois
le mode assisté et le fonctionnement en mode batch.
1) Assurez-vous que vous avez compilé les fichiers dans net / TinyOS / message:
$ cd net/tinyos/message
$ make
$ cd net/tinyos/sim
$ make
PDF Page Organizer - Foxit Software
3) SimDriver peut être compilé en un fichier JAR exécutable qui contient toutes les classes,
les images, et autres composants nécessaires à son exécution.
1) Démarrez votre simulation avec l'option "-gui" option ligne de commande. Par
exemple :
$ apps cd / CndToLeds
$ make pc
$. / build / pc / [Link]-gui 10
La simulation ne commencera pas avant la fenêtre GUI soit connectée à elle. On aura cet
affichage : SIM: socket serveur Créer en attente d'une connexion client sur le port 10840.
$ java-jar [Link]-gui
Actuellement, l'emplacement des motes dans l'affichage TinyViz est dénué de sens.
TinyViz place les motes dans des endroits aléatoires sur l'écran. Vous pouvez déplacer le
motes tout autour; finalement vous pouvez envoyer vos indications à TOSSIM lui-même
comme une «vraie» localisation des motes.
Pour obtenir des informations utiles à partir de l'interface, vous devez activer un ou
plusieurs "plugins", en les sélectionnant dans le menu Plugins. Par défaut, il y a plusieurs
plugins inclus sous TinyViz comme:
BreakpointPlugin - Cause à l'interface GUI pour faire une pause lorsqu’un événement
survient.
PDF Page Organizer - Foxit Software
L’activation d'un plugin à partir du menu "Plugins" vous permet de configurer ce plugin en
utilisant les contrôles sur la fenêtre de droite.
Par exemple, avec DebugMsgPlugin activé, vous pouvez sélectionner motes de l'affichage
et cliquez sur la boîte "motes sélectionnés uniquement" pour voir seulement les messages de
débogage des motes sélectionnés.
Notez que les messages de débogage reçu par TinyViz sont ceux sélectionnés en utilisant la
variable 'DBG' environnement lorsque vous exécutez TOSSIM. Donc, si vous voulez voir
LEDS et AM messages de débogage dans TinyViz, vous avez besoin pour commencer
TOSSIM l'utilisation de :
$ cd broken/experimental/mdw/surge3/apps/Surge
$ make pc
$ cd ../../tools/java/net/tinyos/surge
$ make pc
Il est important de démarrer les applications dans cet ordre, puisque TinyViz doit se
connecter à Surge, et l'interface graphique GUI de Surge doit se connecter à TinyViz
6) Cliquez sur le bouton 'play' au TinyViz. Vous devriez voir les motes. Activer plugins
si nécessaire.
7) Cliquez sur "balise racine Démarrer" dans le GUI de surtension. Cela va démarrer la
balise racine, provoquant les motes de Surge à «réveiller» et commencer à envoyer paquets.
PDF Page Organizer - Foxit Software
PDF Page Organizer - Foxit Software
Annexe C :
I-Messages de TinyOS:
/**
* @author Jason Hill
* @author David Gay
* @author Philip Levis
* @author Chris Karlof
*/
#ifndef AM_H_INCLUDED
#define AM_H_INCLUDED
enum {
TOS_BCAST_ADDR = 0xffff,
TOS_UART_ADDR = 0x007e,
};
#ifndef DEF_TOS_AM_GROUP
#define DEF_TOS_AM_GROUP 0x7d
#endif
enum {
TOS_DEFAULT_AM_GROUP = DEF_TOS_AM_GROUP
};
#ifndef TOSH_DATA_LENGTH
#define TOSH_DATA_LENGTH 29
#endif
#ifndef TOSH_AM_LENGTH
#define TOSH_AM_LENGTH 1
#endif
#ifndef TINYSEC_MAC_LENGTH
#define TINYSEC_MAC_LENGTH 4
#endif
PDF Page Organizer - Foxit Software
#ifndef TINYSEC_IV_LENGTH
#define TINYSEC_IV_LENGTH 4
#endif
#ifndef TINYSEC_ACK_LENGTH
#define TINYSEC_ACK_LENGTH 1
#endif
typedefstructTOS_Msg
{/* The following fields are transmitted/received on the radio. */
uint16_taddr;
uint8_t type;
uint8_t group;
uint8_t length;
int8_t data[TOSH_DATA_LENGTH];
uint16_tcrc;
/* The following fields are not actually transmitted or received
* on the radio! They are used for internal accounting only.
* The reason they are in this structure is that the AM interface
* requires them to be part of the TOS_Msg that is passed to
* send/receive operations.
*/
uint16_t strength;
uint8_t ack;
uint16_t time;
uint8_tsendSecurityMode;
uint8_treceiveSecurityMode;
} TOS_Msg;
typedefstructTOS_Msg_TinySecCompat
{
/* The following fields are transmitted/received on the radio. */
uint16_t addr;
uint8_t type;
// length and group bytes are swapped
uint8_t length;
uint8_t group;
int8_t data[TOSH_DATA_LENGTH];
uint16_tcrc;
typedefstructTinySec_Msg
{ uint16_t addr;
uint8_t type;
uint8_tlength;
// encryption iv
uint8_t iv[TINYSEC_IV_LENGTH];
// encrypted data
uint8_tenc[TOSH_DATA_LENGTH];
// message authentication code
uint8_t mac[TINYSEC_MAC_LENGTH];
// not transmitted - used only by MHSRTinySec
uint8_t calc_mac[TINYSEC_MAC_LENGTH];
uint8_t ack_byte;
boolcryptoDone;
boolreceiveDone;
// indicates whether the calc_mac field has been computed
boolMACcomputed;
} __attribute__((packed)) TinySec_Msg;
enum {
MSG_DATA_SIZE = offsetof(structTOS_Msg, crc) + sizeof(uint16_t), //
36 by default
TINYSEC_MSG_DATA_SIZE = offsetof(structTinySec_Msg, mac) +
TINYSEC_MAC_LENGTH, // 41 by default
DATA_LENGTH = TOSH_DATA_LENGTH,
LENGTH_BYTE_NUMBER = offsetof(structTOS_Msg, length) + 1,
TINYSEC_NODE_ID_SIZE = sizeof(uint16_t)
};
enum {
TINYSEC_AUTH_ONLY = 1,
TINYSEC_ENCRYPT_AND_AUTH = 2,
TINYSEC_DISABLED = 3,
TINYSEC_RECEIVE_AUTHENTICATED = 4,
TINYSEC_RECEIVE_CRC = 5,
TINYSEC_RECEIVE_ANY = 6,
TINYSEC_ENABLED_BIT = 128,
TINYSEC_ENCRYPT_ENABLED_BIT = 64
} __attribute__((packed));
typedefTOS_Msg *TOS_MsgPtr;
uint8_t TOS_MsgLength(uint8_t type)
{
#if 0
uint8_t i;
for (i = 0; i < MSGLEN_TABLE_SIZE; i++)
if (msgTable[i].handler == type)
returnmsgTable[i].length;
#endif
returnoffsetof(TOS_Msg, strength);
}
#endif
PDF Page Organizer - Foxit Software
Le paquet de données TOS_Msgde TinyOS est décrit dans le tableau suivant [ann1]:
7e 00 0a 7d 1a 01 00 0a 00 01 00 46 03 8e 03 96 03 96 03 96 03 97 03 97 03
97 03 97 03 97 03
7e 00 0a 7d 1a 01 00 14 00 01 00 96 03 97 03 97 03 98 03 97 03 96 03 97 03
96 03 96 03 96 03
7e 00 0a 7d 1a 01 00 1e 00 01 00 98 03 98 03 96 03 97 03 97 03 98 03 96 03
97 03 97 03 97 03
Nous pouvons donc interpréter les données par paquets comme suit:
source
destaddr handlerID groupID msglen counter channel readings
addr
96 03 97 03 97 03
98 03 97 03 96 03
7e 00 0a 7d 1a 01 00 14 00 01 00
97 03 96 03 96 03
96 03
Ainsi on a :
Adresse de destination (2 octets)
Handler ID (1 octet)
Group ID (1 octet)
La longueur du message (1 octet)
Données utiles ou Payload(29 octets)
Source ID (2 octets)
compteur simple (2 octets)
canal ADC (2 octets)
Lectures de données ADC (10 lectures de 2 octets chacun)
18 - la longueur du message
00 00 - adresse de la source
00 00 - nombre de paquets
00 88 - lecture 0 (0000 0000 1000 1000 - RGY = 000, les trois derniers bits, comme
indiqué par des LED)
03 A6 - lecture 1 (0000 0011 1010 0110 - RGY = 110, les trois derniers bits, comme
indiqué par des LED)
02 2a - lecture 2 (0000 0010 0010 1010 - RGY = 010, les trois derniers bits, comme
indiqué par des LED)
la LED rouge est le moins significative des bits, tandis que le jaune est la plus
[Link] LED rouge s'allume lorsque la lecture du capteur est de plus qu’un un
certain seuil. La LED jaune est activée chaque fois qu'un paquet est envoyé sur le port
série.
Dans TinyOS, deux algorithmes de routage de base sont la diffusion radio (Bcast) et le
routage multi- sauts (MultiHopRouter) comme l’illustre la figure suivante (Fig C-1).
Surge est un exemple d'applicationTinyOS qui utilise le routage ad-hoc MultiHop. Elle est
conçue pour être utilisé en conjonction avec l'outil Surge java. Chaque nœud Surge prend des
lectures de lumière et les transmet à une station de base. Le nœud peut également répondre à
des commandes de diffusion de la base (broadcast)
Fig. C-1: types de base de routage dans TinyOS (Surge). Radiodiffusion (a), multi-sauts (b)
Exécution de l'application Surge dans l'environnement simulé TinyOS qui est lancé
depuis les lignes de commande
$ cd opt/tinyos-1.x/apps/Surge
$ make pc
$ export DBG=route //on peut utiliser également DBG=packer, usr1,radio,usr2,sim,etc.
$ ./build/pc/[Link] 5
Si on veut voir tous les messages actifs reçus. L'adresse de diffusion est égal
0xFFFF :
$ export DBG = am
PDF Page Organizer - Foxit Software
PDF Page Organizer - Foxit Software
ANNEXE D : LA TECHNOLOGIE ZIGBEE
ZigBee est un standard de communication sans fil à bas coût pour échanger des données
issues d’équipements sans fil simples et faible consommation énergétique dans un milieu
industriel.
Ce standard est promu par l’alliance ZigBee qui regroupe un ensemble d’industriels
travaillant sur l’élaboration de spécifications afin de pouvoir développer des applications sans
fil à faible consommation et sécurisées.
Comme tout standard, ZigBee permet à l’utilisateur final de cette technologie d’être
constructeur indépendant ; ce qui lui permet d’acheter ses modules compatibles ZigBee
auprès de n’importe quel fournisseur.
La norme ZigBee s’appuie sur la norme IEEE 202.15.4. Elle est librement téléchargeable sur
le site de l’Alliance ZigBee : [Link]
Dans la bande de fréquences des 2.4 GHz, le débit est donc de 250 Kb/s, il lui est associé
un seuil de réception qui va jusqu’`a −92 dBm.
Avec les trois plages de fréquences, la couche physique offre 27 canaux de transmission
différents dont :
16 sur la plage de fréquences de 2400/2483.5 MHz séparés de 5 MHz,
10 sur la plage de fréquences de 902/928 séparés de 2 MHz
1 canal sur la plage de fréquences de 868/868.6 MHz.
L’usage de ces canaux dépend de la législation des pays dans lesquels des solutions
conformes à ce standard sont utilisées (voir la figure D.2 et D.3).
La norme IEEE 802.15.4 supporte les 3 bandes ISM (Industrial, Scientific, Medical) de
868 MHz, 915 MHz et 2,4 GHz.
PDF Page Organizer - Foxit Software
ANNEXE D : LA TECHNOLOGIE ZIGBEE
canal est aussi fait implicitement par la couche physique suite à une demande de scrutation sur
l’ensemble des plages de fréquences chacune constituant un canal de transmission. Cette
action est appelée un scan.
La figure D.5 montre un exemple d’une supertrame incluant un période de CAP, une période de
CFP contenant deux GTS de tailles différentes et une période d’inactivité (car BO = SO+1).
L’accès au médium durant la CAP pour toute trame, sauf les acquittements et les beacons, est géré
selon l’algorithme de CSMA/CA slotté. Avant tout envoi, l’entité doit s’assurer de pouvoir finir la
transaction (incluant la réception d’un acquittement s’il est demandé) et de pouvoir attendre un IFS
(InterFrame Space) avant la fin de la CAP. Si ce n’est pas le cas, l’envoi est reporté à la CAP de la
supertrame suivante. L’envoi de trames durant les slots réservés au GTS s’effectue sans CSMA/CA.
1 Les scans
Afin de découvrir les réseaux existants à portée, de créer un réseau, de s’associer à un réseau
ou de se synchroniser avec un réseau, la couche MAC effectue un des quatre types de scans
suivants :
Le scan d’´energie permet de récupérer l’´energie maximum détectée sur chaque
canal. Ce scan est utilisé par un coordinateur souhaitant créer un PAN afin de choisir
le canal convenable.
Le scan actif permet de récupérer la liste des identifiants de PAN existants. Le scan
actif suit la diffusion de requête de beacon. Un coordinateur fonctionnant selon un
mode non suivi de beacon répond à cette requête par une diffusion de beacon. Un
coordinateur fonctionnant selon un mode suivi de beacon l’ignore et continue à
envoyer ses beacons périodiquement. Ce scan est utilisé par un coordinateur
souhaitant créer un PAN pour choisir le bon identifiant de PAN, ou par une station qui
cherche à s’associer à un PAN (dont elle connaît l’identifiant).
Le scan passif comme pour le scan actif, permet de récupérer la liste des identifiants
de PAN existants. En revanche, la station n’envoie pas une requête de beacon mais
elle effectue une écoute passive de chaque canal à scanner pour une durée donnée. Ce
scan est utilisé par une station qui cherche à s’associer à un PAN.
Le scan d’orphelin permet à une station de retrouver son coordinateur après une perte
de synchronisation avec ce dernier.
2Création du réseau
La couche supérieure envoie une requête à la couche MAC pour effectuer un scan actif sur une liste
de canaux afin de découvrir les réseaux existants à portée. Une fois le bon canal choisi, la couche
PDF Page Organizer - Foxit Software
ANNEXE D : LA TECHNOLOGIE ZIGBEE
supérieure décide d’un identifiant de PAN et demande `a la couche MAC d’initier un PAN avec cet
identifiant.
3 Association et désassociation
Après avoir effectué un scan (passif ou actif) et remonté le résultat dû à la couche supérieure, cette
dernière demande à la couche MAC de s’associer à un PAN spécifique en précisant son identifiant
PAN et l’adresse du coordinateur correspondant. Suite à cette demande, la couche MAC génère une
requête d’association à destination du coordinateur.
La couche MAC rejette toute trame de beacon dont l’adresse source ou l’identifiant du PAN ne
correspondent pas à l’adresse du coordinateur ou à l’identifiant du PAN auquel la station est associée,
respectivement.
Mise en œuvre de trames avec un adressage IEEE 64 bits ou un adressage court sur
16 bits, soit 65536 équipements adressables au plus dans ce dernier cas.
Structure de trame simple.
Mode de transmission fiable.
Gestion de l’association/déassociation d’équipements.
3 niveaux de sécurité possibles sur les communications : aucun, liste ACL,
chiffrement AES 128 de la charge (payload) de la trame.
Mode de transfert de type half duplex.
4 trames sont définies :
Trame de données (Data Frame) : transfert de données.
Trame d’acquittement (Acknowledgment Frame) : confirmation de données bien
reçues.
Trame beacon (Beacon Frame) : émise par le coordinateur de réseau en mode
beacon.
Trame de commande MAC (MAC Command Frame) : pour le contrôle des nœuds.
PDF Page Organizer - Foxit Software
ANNEXE D : LA TECHNOLOGIE ZIGBEE
Un échange d’une trame de données à l’initiative d’un nœud est donnée Figure D.7 dans le
cas d’un réseau en mode beacon d’un réseau et en mode non beacon.
L’équipement FFD peut être soit un coordinateur, soit un routeur, soit un équipement terminal
(capteur).
L’équipement RFD est un équipement simplifié comme un équipement terminal (End Device)
muni de capteurs.
PDF Page Organizer - Foxit Software
ANNEXE D : LA TECHNOLOGIE ZIGBEE
Pour communiquer au sein d’un même réseau, au moins un équipement FFD et des
équipements RFD utilisent de concert le même canal radio parmi ceux définis dans la norme.
Un équipement FFD peut dialoguer avec des équipements RFD ou FFD, mais un équipement
RFD ne peut dialoguer qu’avec un équipement FFD.
Le niveau ZigBee précise les algorithmes de routage pouvant être mis en œuvre dans le
réseau.
Dans le cas d’un routage indirect, l’équipement source ne connaît pas l’adresse de
l’équipement destinataire. Dans ce cas, un équipement routeur ou coordinateur fera la mise en
relation avec l’équipement destinataire en utilisant sa table de routage.
L’algorithme de routage préconisé dans la norme ZigBee pour les réseaux maillés est
l’algorithme AODV (Ad hoc On-Demand Vector Routing). C’est un algorithme de routage
réactif : une route est établie uniquement sur demande.
Si l’on regarde maintenant la topologie réseau et sa taille, le réseau ZigBee est un réseau
PAN (Personal Area Network). C’est un réseau de quelques dizaines de mètres permettant un
échange de données avec des équipements électroniques.
On peut mettre dans la catégorie PAN les normes suivantes : USB, Bluetooth, Infrarouge
IR et ZigBee et éventuellement Wifi…
Des topologies plus complexes peuvent être mises en œuvre en utilisant des routeurs ZigBee.
II Bilan
ZigBee a toute sa place dans les réseaux de capteurs sans fil. C’est un concurrent sérieux à
Bluetooth.
La figure D.10 reprécise ZigBee dans le panorama des réseaux sans fil.
ZigBee a donc bien un marché ciblé dans la domotique dans le cadre des réseaux de capteurs
sans fil. C’est d’ailleurs un choix judicieux pour ce type de réseau sans fil par rapport à
Bluetooth comme le montre le tableau 2.