université echahide hamma lakhdar el-oued faculté des ... · pdf filecapteurs...
TRANSCRIPT
République Algérienne Démocratique et Populaire Ministère de
l'Enseignement Superieur et de la Recherche Scientifique
Université Echahide Hamma Lakhdar El-oued
Faculté des sciences et de technologie
Mémoire de fin d'étude
Présente pour l'obtention du diplôme
Mastre Academique
Domaine: Mathématiques et Informatique
Filière: Informatique
Spécialité: Système distribué & Intelligence
Artificielle
Présentées par : BENINE Safa
Thème
Devant le jury composé de :
Mr MEFTAH Charef din President
Mr OTHMANI Samir Examinateur
Mr LAOUID Abdelkader Rapporteur
Année universitaire 2014 – 2015
le routage multi-chemin dans les réseaux de
capteurs sans fil
Remerciements
Nous remercions en premier notre grand Dieu pour nous a donné le courage et la
volonté durant les moments difficiles et qui nous a donné la force et la patience
pour l’accomplissement de ce travail .
Nous exprimons nos profondes gratitudes et respectueuse reconnaissance à
notre cher encadreur :
Mr. LAOUID Abdelkader
Pour sa bonne volonté d'accepter de nous encadrer, pour tout le temps qu’il
nous a octroyé et pour tous les conseils qu’il nous a prodigué.
Nous adressons également nos remerciements, à tous nos enseignants, pour leurs
aides inestimables, qui nous ont donné les bases de la science.
sans oubliant nos chers professeurs membres de jury et tous les enseignants
de département de Mathématique et informatique.
Merci à nos camarades de promotion 2015 Master Informatique et nos amis
pour leur compagnie, leur aide, à vous tous merci leur humour, et leur soutien
moral aux moments où tout allait mal.
Cette page n’aurait probablement pas pu s’écrire sans l’appui moral des membres
de notre famille .
Nos plus chaleureux remerciements pour tous ceux qui de prés et de loin ont
contribué à l’accomplissement de ce modeste travail.
Dédicaces
Avant tous, je remercie dieu le tout puissant de m’avoir donné le courage et la
patience pour réaliser ce travail malgré toutes les difficultés rencontrées.
Je dédie notre ouvrage à :
Ma très chers parents adorés qui m‘ont fait bénéficier,
grâce à leur invocation et à leur bénédiction,
à avoir la confiance et l'espoir au cours de la rédaction de ce travail leurs souhaites
bonne santé et belle vie.
A mon très chère mari source de tendresse , de courage et patience.
A mon cher fis qui lui chaque fois que je voix ,je rénover la détermination et la
force.
A mes chère frères et mes chère sœur pour leur courageux ,
A mon grand-père, mes tantes et leurs enfants. A mes oncles et leurs enfants Et
à toute la famille.
A tous les membres de famille de mon mari.
A mes meilleurs amis : najah, intissar, insaf, intissar, wouroud, sara saliha,
imane.
A tous les étudiants de la faculté Informatique surtout les étudiants
de la 2ième année master promotion 2015.
safa
Résumé
Il s'agit de définir le chemin de transmission de données entre deux nœuds dans un réseaux de
capteurs sans fil RSCF est un défi majeur, nous cherchons dans ce mémoire de retrouver d'une
solution pour définir une hiérarchie de réseau par le biais de détection de la bordure. Cette
proposition a un facteur important dans le cas où une vaste données va être transmettre entre ces
deux, ou le réseaux pose des contraintes telle que la consommation énergétique, la durée de
transmission…etc. Nous visons le protocole AODV (Ad hoc On Demand Victor) afin de
segmenter le réseau. Ces deux tache sont pour objectif d’émerger une structure afin d'acheminer
les données récoltées vers la station de base.
Mot Clé: Réseaux Capteurs sans fil, AODV, détection de la bordure.
Abstract
It is a question of defining the path(way) of data transmission between two knots in one
networks of wireless sensors RSCF is a major challenge, we look in this report to find of a
solution to define a hierarchy of network by means of detection of the border. This proposal has
an important factor in case vast one given is going to be to pass on between these both, or
networks put constraints such as the energy consumption, the duration of transmission etc. We
aim at the protocol AODV (Ad hoc On Demand Victor) to segment the network. This two spot
are for objective to emerge a structure to forward the data collected(harvested) towards the base
station.
Keyword: Networks wireless Sensors, AODV, Detection of the border.
ملخـــــص
ستشعار اىالسينيت ىىقو اىبياواث تحذيا رئيسا في مجاه اىشبناث في شبنت اال ىالوتقاه بيه عقذتيه يعتبز تحذيذ اىمسار
بما أن ،حذد اىشبنت . قذ اقتزحىا ذي اىمذمزة إليجاد حو ىتحذيذ اىتسيسو اىزمي مه اىشبنت عه طزيق اىنشف عهاىالسينيت
ىذي عامو مم في اىقضيت حيث سيتم وقو ذا االقتزاح سينن اىشبنت تشنو اىقيد مثو استالك اىطاقت، مذة وقو ... اىخ
مه ينو ايجاد بذىل اىى تقسيم اىشبنت . بزتمه ىي ىا باستخذاموذف ، ىبياواث اىاسعت بيه اتيه اىعقذتيها
اجو تجي اىبياواث اىى مقز اىشبنت .
اىبزتمه ، تحذيذ اىمحيظ، شبناث االستشعار اىالسينيت :المفتاحية تاالكلم
AODV
AODV
Sommaire
Sommaire
Sommaire ........................................................................................................................ I
Liste des Figures ............................................................................................................ II
Liste des tableaux ........................................................................................................ III
Introduction générale ..................................................................................................... 2
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
1.1 Introduction .............................................................................................................. 4
1.2. Histoire des réseaux de capteurs ............................................................................ 4
1.3. Présentation des réseaux de capteurs .................................................................... 5
1.3.1 Définition d'un capteur ...................................................................................... 5
1.3.2 Définition d'un RCSF ou WSN (Wireless Sensor Network) .............................. 7
1.3.3 L'architecture de RCSF ..................................................................................... 7
1.3.4 Caractéristiques d'un RCSF .............................................................................. 9
1.3.5 Les phases de la vie d'un réseau de capteurs ........ .خطأ! اإلشارة المرجعية غير معرفة
1.3.6 Réseaux des capteurs et Défis ................................ .خطأ! اإلشارة المرجعية غير معرفة
1.3.7 Domaines d'application des réseaux de capteurs ........................................... 13
1.8 Conclusion ............................................................................................................... 14
Chapitre 2: le routage dans les réseaux de capteur sans fil
2.1 Introduction ............................................................................................................ 16
2.2 Définition de routage .............................................................................................. 16
2.3 Historique ................................................................................................................ 17
2.4 Types de cardinalité de la communication ........................................................... 17
Sommaire
2.5 Contraintes de routage dans les réseaux de capteurs sans fil ............................ 17
2.6 Approches d'établissement de routes ................................................................... 18
2.6.1 Approche basée sur l'état du lien .................................................................... 18
2.6.2 Approche basée sur le vecteur de distance ..................................................... 18
2.7 Types de routage .................................................................................................... 18
2.7.1. Routage à plat ................................................................................................ 18
2.7.2. Routage hiérarchique ..................................................................................... 19
2.7.3. Routage basé sur la localisation .................................................................... 19
2.7.4 Routage proactif .............................................................................................. 20
2.7.5 Routage réactif ................................................................................................ 20
2.7.6 Routage hybride (à la fois proactif et réactif) ................................................. 20
2.8 Les défis du routage dans les RCSF ..................................................................... 21
2.9 La contrainte d'énergie pour le routage ............................................................... 22
2.9.1. Sources de consommation d'énergie .............................................................. 22
2.9.1.1 La longueur des chemins .......................................................................... 22
2.9.1.2 La qualité des liens ................................................................................... 22
2.9.1.3. Le mode de communication .................................................................... 23
2.9.1.4 Le routage de paquets inutiles .................................................................. 23
2.9.1.5 Le choix d'un chemin ................................................................................ 23
2.9.2 Techniques économes en énergie .................................................................... 23
2.9.2.2. Distribution des charges .......................................................................... 23
2.9.2.3 La formation des grappes ......................................................................... 23
2.9.2.4 La réduction de données ........................................................................... 24
2.9.2.5. Négociation des échanges de données ..................................................... 24
2.10 Conclusion ............................................................................................................. 24
Chapitre 3: les protocoles de routage dans les RCSF
3.1 Introduction ............................................................................................................ 26
3.2 Les critères de performance des protocoles de routage en RCSF ..................... 26
3.3 Classification des protocoles de routage dans les RCSF ..................................... 27
Sommaire
3.3.1 Protocole de routage multi-chemin ................................................................. 28
3.3.2 Protocole de routage basé sur la négociation des données ............................ 28
3.3.3 Protocole de routage basé sur les interrogations ........................................... 29
3.3.4 Protocole de routage basé sur la QoS ............................................................ 29
3.3.5 Les protocoles de routage plat (flat based-routing)........................................ 29
3.3.6 Les protocoles de routage hiérarchique.......................................................... 30
3.3.7 Les protocoles de routage avec localisation géographique ............................ 30
3.4. Les protocoles de routage proposé pour les RCSF ............................................ 31
3.4.1. Protocoles de routage hiérarchiques ............................................................. 31
3.4.1.1. LEACH .................................................................................................... 31
3.4.1.2. PEGASIS (Power Efficient GAthering in Sensor Information Systems)32
3.4.1.3. TEEN et APTEEN(Threshold sensitive Energy Efficient sensor Network
protocol)................................................................................................................ 32
3.4.1.4. SAR (Sequential Assignment Routing) ................................................... 32
3.4.2. Protocoles de routage non hiérarchiques ...................................................... 33
3.4.2.1. le protocole AODV (Ad-hoc On Demand Distance Vector) ................... 33
3.4.2.2. SPIN ( Sensor Protocols for Information via Negotiation) ..................... 42
3.4.2.3. DSDV (Destination Sequenced Distance Vector) ................................... 42
3.4.2.4. GSR (Global State Routing) .................................................................... 42
3.4.2.5. DSR (Dynamic Source Routing) ............................................................. 42
3.4.2.6.GPSR (Greedy Perimeter Stateless Routing) ........................................... 43
3.5 Les limites des protocoles de routage dans les RCSF ......................................... 43
3.6 Conclusion ............................................................................................................... 44
Chapitre 4: Modélisation et Implémentation
4.1 Introduction ............................................................................................................ 45
4.2 Description de la contribution ............................................................................... 45
4.2.1 Contexte et Motivation .................................................................................... 45
4.2.2 Système de communication.............................................................................. 45
4.2.3 Le principe de la contribution ......................................................................... 46
4.2.4 Présentation- de l'algorithme .......................................................................... 49
Sommaire
4.3 L’environnement de development ........................................................................ 50
4.3.1 Étapes d'installation TinyOS 2.0.2 .................................................................. 52
4.3.2 Hello World! In TinyOS .................................................................................. 53
4.4 L'Implémentation ................................................................................................... 57
4.4.1 Les fichiers de l'application ............................................................................ 57
4.4.2 L'implémentation de la proposition ................................................................. 57
4.5. Conclusion .............................................................................................................. 60
Liste des Figures
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
Figure 1.1 :Capteur sans fil ........................................................................................... 5
Figure 1. 4: Modèle en couches du réseau de capteurs sans fil .................................. 8
Figure 1.5: La portée d'un capteur ............................................................................. 12
Figure 1.5: Applications des réseaux de capteurs ..................................................... 14
Chapitre 3: les protocoles de routage dans les RCSF
Figure 2. 2 : Protocoles de routage pour les RCSF selon le type de protocole ....... 28
Figure 2. 3 : Routage plat ............................................................................................ 29
Figure 2. 4 : Routage hiérarchique ............................................................................. 30
Figure 2. 5 : Routage basé sur la localisation ............................................................ 31
Figure 2.6: La propagation du paquet RREQ ........................................................... 38
Figure 2.8: Un exemple d'application du Protocole AODV sur RCSF. .................. 40
Sommaire
Chapitre 4: Modélisation et Implémentation
Figure 4.1: Déroulement de l'algorithme .................................................................. 48
Figure 4.2: Schéma de câblage pour l'application de mise sous tension . ............... 56
Figure 4.3: Le modèle de compilation nesC .............................................................. 56
Figure 4.4: La fenêtre de déclaration des variables et les structures. ..................... 58
Figure 4.5: La fenêtre de entrer le fichier de programme en terminal. .................. 58
Figure 4.6: La fenêtre présenté les résultats conclus de notre simulation et tous les
messages envoyés et reçus dans le réseau. .................................................................. 59
Figure 4.7: La fenêtre présenté les nœuds de la bordure. ........................................ 59
Figure 4.8: la figure de la simulation pour sélections la bordure de réseaux de
capteur. .......................................................................................................................... 60
Liste des tableaux
Tableau 1.1 : Différents constructeurs de nœuds de capteurs ................................... 7
Tableau 3.1: Format du message RREQ. ................................................................... 34
Tableau 3.2: Format du message RREP. ................................................................... 35
Tableau 3.3: Format du message RERR. .......................... .خطأ! اإلشارة المرجعية غير معرفة
Introduction générale
1
Introduction générale
Le besoin d’être informé, à tout temps, des évolutions de l’environnement
qui nous entoure, a mené l’être humain à perfectionner, chaque fois que c’est
nécessaire, les moyens de communication et d’information. L’avènement des
réseaux sans fils a élargi considérablement les horizons d’utilisation des
équipements de collecte et de transmission des données sans le souci des
éléments d’interconnexion classiques comme les câbles.
D’autre part, l’avancé technique a réduit, de plus en plus, la taille et le
coût des équipements utilisés. Ainsi, les réseaux de capteurs sans fil (Wireless
Sensors Network) ont vu le jour combinant un nombre conséquent de capteurs de
faible coût (donc une zone de couverture très vaste) et un support de
transmission fiable et omniprésent.
Un réseau de capteurs sans fil est un type spécial de réseaux ad hoc avec
un grand nombre de nœuds qui sont des micro-capteurs capables de recevoir et
de transmettre des données environnementales d'une manière autonome sans
intervention humaine . La position de ces nœuds n'est pas obligatoirement
prédéterminée, ils peuvent être aléatoirement dispersés dans une zone
géographique appelée « champ de captage » correspondant au terrain d'intérêt
pour le phénomène capté (par exemple : lâchée de capteurs sur un volcan pour
étudier les phénomènes vulcanologiques et leurs évolutions). Le réseau possède
en général un nœud particulier, la base (ou sink), connectée avec les autres
nœuds par un réseau filaire est reliée à une alimentation électrique. Le sink peut
être connecté à l'utilisateur du réseau via Internet ou un satellite. Ainsi , l'usager
peut adresser des requêtes aux autres nœuds du réseau, précisant le type de
données requises et récolter les données environnementales captées par le biais
du nœud puits Or, ce schéma de communication est coûteux en termes d’énergie
puisque tout nœud joue le rôle d’un nœud relai puisqu’il renvoie l’information
reçue pour la première à ses voisins. Parmi les problèmes cruciaux, nous citons
celui du routage, qui consiste à acheminer un message d’un capteur vers un
autre. Souvent, les réseaux contiennent une station de base chargée de collecter
l’ensemble des informations perçues par les capteurs. Il s’agit alors de
transmettre ces informations via les intermédiaires et point à point vers la station
Introduction générale
2
de base.
Dans ce mémoire nous allons chercher de proposer un algorithme d’hiérarchie pour
définir une structure dans ce genre de réseaux afin d’acheminer les données récoltées
vers la station de base. Le facteur le plus important qui doit être pris en considération
c’est la consommation des ressources, où ces dernières sont considérées comme une
ressource critique. Alors l’algorithme proposé doit assurer aussi une garantie de
grande vie de réseau.
Pour mener à bien notre travail, nous l'avons organisé en quatre chapitres selon un
plan méthodologique suivant :
Dans le premier chapitre, proposons un état de l'art sur les RCSF par une
description générale des réseaux de capteurs sans fil ainsi que leurs caractéristiques,
contraintes et spécificités.
Dans le deuxième chapitre, nous présenterons la notion de routage dans les
réseaux de capteurs sans fil, leur définition, les types de routage et les types de
cardinalité de la communication ….
Le troisième chapitre est consacré au protocole de routage, Il décrit également
les principaux protocoles proposés et leurs classifications. Enfin il présente une étude
détaillée du protocole AODV.
Le quatrième chapitre constitue le cœur de cette contribution et la partie
implémentation et évaluation il présente une description de notre algorithme.
Nous terminons ce mémoire par une conclusion générale et quelques perspectives
d recherche futures.
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
4
1.1 Introduction
De nombreux systèmes nécessitent de prendre en compte l'environnement pour
mesurer les phénomènes physiques afin de prendre les décisions nécessaires. Les
progrès de ces dernières années en microélectronique et micromécanique ont permis
de concevoir des capteurs de plus en plus petits, de plus en plus performants,
autonomes et dont les capacités énergétiques ont évolué avec le temps. D'autre part,
les techniques de réseaux mobiles permettent d'affranchir des fils et donc de déployer
facilement des réseaux de capteurs dans les endroits même difficiles à y accéder.
De plus, dans la vie courante, l'utilisation des capteurs sans fil est en demande
croissante pour la supervision et la sécurité. Les industries proposent alors des
capteurs sans fil qui peuvent renseigner l'utilisateur sur plusieurs données. Ces
capteurs peuvent être reliés formant ainsi un réseau sans fil se basant sur des
protocoles pour se communiquer et proposer des programmes et des réseaux
embarqués[1].
Ce chapitre est consacré à des généralités sur les réseaux de capteurs sans fil
(RCSF). Nous allons aborder des définitions, des notions générales, des domaines
d'application, l'historique, l'architecture les caractéristiques…
1.2. Histoire des réseaux de capteurs[1]
Dans les années 1990, dans le monde de la recherche, est apparue une idée qui
paraissait plutôt un rêve pour cette époque : imaginer un système nerveux central pour
la Terre, capable de surveiller en temps réel les événements, ayant comme principaux
bénéfices de pouvoir empêcher les accidents et d'économiser l'énergie. (Cette
poussière intelligente a mis longtemps à apparaître)dit le professeur Pister, de
l'Université de Californie à Berkeley. (J'ai inventé l'expression il y a 14 ans. La
poussière vraiment futée a mis le temps, mais elle est finalement arrivée).
Aujourd'hui les réseaux de capteurs sont devenus des systèmes pouvant atteindre
un très grand nombre de nœuds, avec une zone de couverture déterminée et déployés
d'une manière plus ou moins dense dans un environnement hétérogène dont on
mesure ainsi son état global. Les derniers progrès en terme de miniaturisation, ainsi
que le remplacement du câblage classique par des technologies de communication
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
5
radio, ont généré de nouvelles catégories d'applications qui visent de nombreux
domaines : l'aéronautique, l'automobile, le médical, l'environnement, etc. De plus, les
progrès des communications sans fil permettent aujourd'hui de répondre
des exigences peu envisageables auparavant.
1.3. Présentation des réseaux de capteurs
1.3.1 Définition d'un capteur
Un capteur est un dispositif qui transforme l'état d'une grandeur physique observée
en une infor-mation manipulable Il est caractérisé par :
Rayon d'émission : environ 100m.
Position : cordonné (x, y, z).
Énergie : capacité de batterie.
Cout d'émission /puissance d'énergie : [2].
Un capteur sans fil est un petit dispositif électronique capable de mesurer une
valeur physique environnementale (température, lumière, pression, etc.) et de la
communiquer à un centre de contrôle via une station de base[3].
Figure 1.1 :Capteur sans fil [2].
Un capteur est composé de 4 unités (voir la Figure 1.2) [1].
L'unité d'acquisition: composée d'un capteur qui obtient des mesures sur les
paramètres environnementaux et d'un convertisseur Analogique/Numérique qui
convertit l'information relevée et la transmet à l'unité de traitement.
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
6
l'unité de traitement: composé d'un processeur et d'une mémoire intégrant un système
d'exploitation spécifique (TinyOS , par exemple). Cette unité possède deux interfaces,
une interface pour l'unité d'acquisition et une interface pour l'unité de communication.
Elle acquiert les informations en provenance de l'unité d'acquisition et les envoie à
l'unité de communication. Cette unité est chargée aussi d'exécuter les protocoles de
communications qui permettent de faire collaborer le capteur avec d'autres capteurs.
Elle peut aussi analyser les données captées.
l'unité de communication: unité responsable de toutes les émissions et réceptions de
données via un support de communication radio. Elle peut être de type optique (les
capteurs Smart Dust), ou de type radiofréquence (MICA2, par exemple).
la batterie: un capteur est muni d'une batterie pour alimenter tous ses composants.
Cependant, à cause de sa taille réduite, la batterie dont il dispose est limitée et
généralement irremplaçable. Pour cela, l'énergie est la ressource la plus précieuse
puisqu'elle influe directement sur la durée de vie des capteurs.
Il existe des capteurs qui sont dotés d'autres composants additionnels comme le
système de positionnement GPS (Global Positioning System) et un mobilisateur lui
permettant le déplacement.
Figure 1. 2 : Architecture physique d'un capteur [1]
Plusieurs industriels et universités ont développé leurs propres nœuds de capteurs .
Le tableau suivant décrit quelques acteurs principaux de ce marché [4].
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
7
Noeud Unité de
traitement
Module RF Constructeur
MICAz ATmega1281 CC2420 UCB
Telos MSP430 CC2420 Moteiv
iMote ARM7TDMI Bluetooth Intel
Pluto MSP430 CC2420 Harvard
Cicadal MC9S08GT60 MC13193 Tsinghua
BSNNode MSP 430 CC2420 Imperal
WINS PXA255 802.l1b Sensoria
Tableau 1.1 : Différents constructeurs de nœuds de capteurs.
1.3.2 Définition d'un RCSF ou WSN (Wireless Sensor Network)
Un réseau de capteur sans fil (Wireless Sensor Network: WSN) est un type
particulier de réseau ad-hoc défini par un ensemble coopérant de nœuds capteurs
dispersés dans une zone géographique appelée zone de captage afin de surveiller un
phénomène et récolter ses données d'une manière autonome. Un réseau de capteurs se
compose de deux types de nœuds : des simples capteurs et des collecteurs
d'informations appelés puits[5].
Le réseau possède en général un nœud particulier, la base (ou sink), connectée
avec les autres nœuds par un réseau filaire est reliée à une alimentation électrique[1].
1.3.3 L'architecture de RCSF
L'architecture générale d'un WSN est présentée sur la Figure 1.3, ou Chacun des
nœuds capteurs a la capacité de collecter des données et les router vers le
puits/Gateway (snik) et aux utilisateurs finaux.
Les données sont routées au puits via une structure sans fil multi-sauts. Le puits
peut, ensuite, communiquer avec l'utilisateur final par Internet ou par satellite ou par
n'importe quel type de réseau sans fil (comme le Wi-Fi, les réseaux mailles, les
systèmes cellulaires, le Wi Max, etc.). Il faut noter qu'il peut y avoir plusieurs puits et
plusieurs utilisateurs finaux dans cette architecture[6].
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
8
Figure 1.3 : Architecture de communication d'un RCSF[1].
Pour la communication, le puits et tous les nœuds capteurs emploient une pile de
protocole présentée sur la figure.1.4. Cette pile de protocoles combine énergie et
routage intelligent, intégration des données avec les protocoles réseaux, une
communication avec consommation efficace de l'énergie sur un réseau sans fil et une
coopération des efforts entre les nœuds capteurs. Elle comprend une couche physique,
une couche de liaison de données, une couche réseau, une couche transport, une
couche application; en plus, un niveau de gestion de l'énergie, un niveau de gestion de
la mobilité et un niveau de gestion des taches[6].
Figure 1. 4: Modèle en couches du réseau de capteurs sans fil [1].
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
9
Rôles des couches[1] :
Couche physique : Matériels pour envoyer et recevoir les données.
Couche liaison de données : Gestion des liaisons entre les nœuds et les
stations de base, contrôle d'erreurs.
Couche réseau : Routage et transmission des données.
Couche transport : Transport des données, contrôle de flux.
Couche application : Interface pour les applications au haut niveau.
Plan de gestion d'énergie : Contrôle l'utilisation d'énergie.
Plan de gestion de mobilité : Gestion des mouvements des nœuds.
Plan de gestion de tâche : Balance les tâches entre les nœuds afin
d'économiser de l'énergie.
1.3.4 Caractéristiques d'un RCSF[7]
Un réseau de capteurs présente des caractéristiques particulières comparativement
aux autres réseaux sans fil. Dans cette section, nous présentons les principales
caractéristiques de ces réseaux :
Sans infrastructure : Les RCSF appartiennent à la famille des réseaux
sans fil sans infrastructure dit ad-hoc de type many-to-one. Les capteurs
sont généralement déployés aléatoirement dans des zones hostiles ce que
nécessite qu'ils doivent s'auto-configurer et s'auto-organiser sans
intervention humaine. Scalabilité (Passage à l'échelle) : Dans les RCSF,
les capteurs sont déployés généralement en grand nombre pour garantir la
couverture totale de la zone d'intérêt et faire face aux pannes puisque les
capteurs peuvent cesser de fonctionner pour différentes causes. Nous
pouvons avoir dans certains cas des RCSF de haute densité dont la taille
dépasse mille capteurs voire un million de capteurs.
Interférences : La notion d'interférences apparaît dans la plus part des
réseaux sans fil en particulier dans les RCSF où deux capteurs voisins
peuvent transmettre dans le même bond de fréquences ce qui peut causer
des interférences.
Topologie dynamique : Les capteurs sans fil peuvent être placés sur des
objets mobiles par exemple sur des animaux pour les surveiller à distance
sans perturber leur comportement. Ce type de scénario génère une
topologie qui n'est pas statique dite dynamique .
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
10
Contrainte d'énergie, de stockage et de calcul : La caractéristique la plus
critique dans les RCSF c'est la limite des ressources énergétiques car
chaque la plupart des capteurs sont dotés de piles à énergie limitée. A cet
effet, dans la plupart des travaux de recherche, une problématique est
traitée conjointement avec l'économie de l'énergie.
1.3.5 Les phases de la vie d'un réseau de capteurs[2]
Quand on observe dans sa globalité un réseau de capteurs sans fils, il apparaît des
phases distinctes avec des caractéristiques particulières : la naissance, le
fonctionnement normal et la mort.
1. La phase de naissance : correspond à l'arrivée progressive des nœuds, à la fois
durant le déploiement initial du réseau de capteurs et durant le redéploiement de
nouveaux nœuds dans le réseau. Il en résulte une phase où les nœuds découvrent leur
voisinage. Chaque nœud diffuse des paquets hello pour indiquer leur présence,
transmettre des informations sur leur état, et diffuser leur table de voisinage. Des
incohérences dans ces tables de voisinage apparaissent alors. En effet, à cause du
déploiement progressif, les capteurs ont généralement une vision partielle de leur
voisinage durant l'envoi de leurs premiers messages. Cela conduit à des erreurs durant
le processus d'élection des nœuds dominants ou le processus de sélection de liens.
Nous observons ces incohérences et le temps nécessaire avant la stabilisation de la
structure logique. Nous déterminons ainsi la latence entre la naissance physique d'un
réseau et sa naissance logique suivant son schéma d'auto-organisation.
2. La phase de fonctionnement : commence dès que la structure organisée est
stabilisée. Cette phase correspond à ce que nous pouvons attendre de l'auto-
organisation. Nous mettons en évidence la qualité d'une auto-organisation durant
cette phase en observant la cardinalité de la structure dominante dans le cas de
protocoles orientés dominants, le degré moyen du réseau dans le cas de protocoles à
sélection de liens. La phase de fonctionnement normal se termine quand il y a trop
de modifications dans le réseau pour que la structure soit maintenue.
3. La phase de la mort : Lorsqu'un ou plusieurs nœuds disparaissent, la reconstruction
de la structure logique, globale ou localisée va être nécessaire. Là encore, les capteurs
n'ont pas immédiatement la perception de la disparition d'un voisin, cela a pour
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
11
conséquence une certaine inertie. Cette dernière phase peut être assimilée à un
processus de maintenance et d'auto-réparation.
1.3.6 Réseaux des capteurs et Défis[2]
Notre travail entre dans le cadre d'émerger une structure à partir des informations
internes avec la prise en compte de consommation d'énergie possible, tel que l'objectif
final est de résoudre le problème de routage dans les réseaux de capteurs sans fils. Le
problème de routage au sein des WSN est très compliqué, cela est dû essentiellement
à l'absence d'infrastructure fixe (foret, mer,. . .), de toute administration centralisée et
à d'autres défis qui doivent être vérifié qui sont les suivant :
Consommation d'énergie sans perte d'efficacité: Les capteurs utilisent leur réserve
d'énergie à des fins de calcul et de transmission de données. La durée de vie d'un
capteur dépend essentiellement de celle de sa batterie. Dans un WSN, chaque nœud
joue le rôle d'émetteur et de routeur. Une défaillance énergétique d'un capteur peut
changer significativement la topologie du réseau et imposer une réorganisation
coûteuse de ce dernier
Tolérance aux pannes: Certains nœuds peuvent être défaillants à cause d'un manque
d'énergie, d'un dommage physique ou d'une interférence. Ceci ne doit pas affecter la
globalité de la tâche du réseau de capteurs. En cas de défaillance, de nouveaux liens et
routes doivent être établis pour assurer la collecte des données. La redondance peut
également être utilisée, tout en veillant à conserver une faible consommation d'énergie
Couverture: Dans les WSN, chaque nœud perçoit une vue locale de son
environnement, limitée par sa portée et sa précision. La couverture d'un vaste espace
déterminé est donc composée de l'union de nombreuses couvertures de petite taille. La
figure 1.5 présente la portée d'un capteur et ses voisins.
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
12
Figure 1.5: La portée d'un capteur[2].
Déploiement de nœuds: C'est un facteur dépendant de l'application qui affecte
grandement les protocoles de routage. Le déploiement peut être déterministe ou
aléatoire. Dans la première stratégie, les capteurs sont placés manuellement et les
données peuvent donc être acheminées via des chemins prédéterminés. En revanche,
avec une approche aléatoire, les capteurs sont éparpillés (lâchés d'un avion). Dans le
cas d'une répartition non uniforme, une stratégie de groupement (clustering) peut
s'avérer nécessaire.
Modèle de couverture des données: La capture d'information et la couverture des
données requises dépendent essentiellement de l'application. Elles peuvent être
classifiées selon différents modèles : en fonction du temps(surveillance périodique),
des évènements (réaction à l'occurrence d'un évènement particulier), des
requêtes(réponse à une demande d'une station de base) ou de manière
hybride(combinaisons des précédentes approches)[8].
Hétérogénéité des nœuds /connections: Dans de nombreuses études, tous les capteurs
d'une application sont considérés homogènes (i.e. même capacité de calcul, de
communication et d'énergie). Néanmoins, en fonction de l'application, certains
capteurs peuvent avoir des rôles différents, générant une architecture hétérogène. Par
exemple, dans un WSN hiérarchique, certains capteurs sont déclarés « chef » de leur
groupe. Le routage vers les stations de base est alors traité par ces derniers.
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
13
Agrégation de donnée: De nombreux capteurs peuvent générer de la redondance.
L'agrégation de paquets similaires en provenance de différents nœuds permet de
réduire le nombre de transmissions ou un traitement du signal peut également être
effectué, par fusion de données (conformation de faisceaux).
Qualité de service: Dans diverses applications, la donnée doit être transmise dans une
certaine plage de temps, après quoi, elle n'aura aucune importance. Pourtant, dans la
plupart des applications, la durée de vie du réseau est favorisée au détriment de la
qualité d'émission des données. Les protocoles de routage assurant une qualité de
service et prenant en compte la gestion de l'énergie, représentent un défi nouveau et
stimulant.
1.3.7 Domaines d'application des réseaux de capteurs[7]
La diminution de taille et de coût des micro-capteurs, l'élargissement de la gamme
des types de capteurs disponibles (thermique, optique, vibrations,...) et l'évolution des
supports de communication sans fil, ont élargi le champ d'application des réseaux de
capteurs. Ils s'insèrent notamment dans d'autres systèmes tels que le contrôle et
l'automatisation des chaînes de montage.
Ils permettent de collecter et de traiter des informations complexes provenant de
l'environnement (météorologie, étude des courants, de l'acidification des océans, de la
dispersion de polluants, etc).
Certains prospectivistes pensent que les réseaux de capteurs pourraient
révolutionner la manière même de comprendre et de construire les systèmes
physiques complexes, notamment dans les domaines militaire, environnemental,
domestique, sanitaire et de la sécurité, etc.
Applications militaires : On peut penser à un réseau de capteurs déployé sur un
endroit stratégique ou d'accès difficile, afin de surveiller toutes les activités des
forces ennemies, ou d'analyser le terrain avant d'y envoyer des troupes (détection
d'agents chimiques, biologiques ou de radiations).
Applications domestiques : En plaçant, sur le plafond ou dans le mur, des
capteurs, on peut économiser l'énergie en gérant l'éclairage ou le chauffage en
fonction de la localisation des personnes.
Applications environnementales : Les réseaux de capteurs sont beaucoup
appliqués dans ce domaine pour détecter des incendies, surveiller des catastrophes
naturelles, détecter des pollutions et suivre des écosystèmes.
Chapitre 1: Généralités sur les Réseaux de capteurs sans fil
14
Applications agricoles : Dans les champs agricoles, les capteurs peuvent être
semés avec les graines. Ainsi, les zones sèches seront facilement identifiées et
l'irrigation sera donc plus efficace.
Applications médicales : Les réseaux de capteurs ont aussi des développements
dans le domaine de diagnostic médical. Par exemple, des micro-caméras 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.
Applications transportés : Il est possible d'intégrer des nœuds capteurs au
processus de stockage et de livraison. Le réseau ainsi formé, pourra être utilisé
pour connaître la position, l'état et la direction d'un paquet ou d'une cargaison.
Figure 1.5: Applications des réseaux de capteurs.
1.8 Conclusion
Dans ce chapitre, nous avons présenté une vision général sur le réseaux de
capteurs, en parlant sur histoire, l'architecture, composant, les phases de la vie et les
défis…etc.
Nous constatons que les réseaux des capteurs possèdent un large domaine
d'application, leurs propres caractéristiques et propres contraintes. L'importance des
réseaux de capteurs apparaît principalement dans divers domaines, notamment, les
réseaux de communication sans fil dont les performances et les applications ne
cessent d'augmenter. Il s'avère que la distribution et l'organisation des capteurs dans
l'espace est un grand défi.
Dans le chapitre suivant, nous introduirons en détail le routage de capteur sans fil.
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
16
2.1 Introduction
Dans les RCSF, les capteurs sont déployés en grand nombre pour surveiller un tel
phénomène et faire remontrer l'information à un centre de contrôle distant. Pour
atteindre cette finalité, les capteurs ont la capacité de communiquer et collaborer entre
eux pour acheminer l'information collectée à la station de base en garantissant sa
fiabilité et en empruntant le plus court chemin entre le nœud qui a détecté ce
phénomène et la station de base. Cette opération permet le routage de l'information
entre le nœud détecteur et le nœud puis et elle consiste à trouver les routes les plus
courtes[7]. Donc le routage est une méthode d'acheminement des informations à la
bonne destination à travers un réseau de connexion donné[8] .
Ce chapitre est consacré à la notion de routage dans les réseaux de capteurs sans
fil. Nous allons commencer par définition, communication entre les entités du réseau,
Historique, types de cardinalité de la communication, approches d'établissement de
routes et nous avons présenté les types de routage….
2.2 Définition de routage
Le routage est un processus qui permet de sélectionner des chemins dans un réseau
pour transmettre des données depuis un expéditeur jusqu'à un ou plusieurs
destinataires. On parle de routage dans différentes domaines : réseaux téléphoniques,
réseaux électroniques (comme Internet), réseaux de transports…..[9]
Le routage est le mécanisme par lequel des chemins sont sélectionnés dans un
réseau pour acheminer les données d'un expéditeur jusqu'à un ou plusieurs
destinataires. Le routage est une tâche exécutée dans de nombreux réseaux, tels que le
réseau téléphonique, les réseaux de données électroniques comme l'Internet, et les
réseaux de transports. Sa performance est importante dans les réseaux décentralisés,
c'est-à-dire où l'information n'est pas distribuée par une seule source, mais échangée
entre des agents indépendants[10] .
Le terme routage désigne l'ensemble des mécanismes mis en œuvre dans un réseau
pour déterminer les routes qui vont acheminer les paquets d'un terminal émetteur à un
terminal récepteur [11]. On distingue généralement deux entités :L'algorithme de
routage et le protocole de routage.
2.3 Historique
Les réseaux informatiques ont mis beaucoup de temps à déployer le routage dans
toute sa dimension en raison des monopoles dans les télécommunications. Dans les
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
17
années 1970 aux États-Unis, lors de la digitalisation du réseau d'AT&T (voir Réseau
téléphonique commuté)1, IBM et DEC créent les architectures SNA et DECnet,
encore très centralisées et peu ouvertes. En France, le réseau Cyclades, poussé par la
CII et sa Distribue System Architecture, est plus ouvert et permet de partager les
ressources informatiques des centres universitaires et de grandes entreprises en forte
croissance comme EDF ou le Commissariat à l'énergie atomique, mais freiné par les
prétentions du Réseau Transpac, imposé par les PTT et orienté vers la commutation
de circuits plutôt que le routage. La Distribue System Architecture a cependant été
reconnue par la création du Modèle OSI, encourageant l'étape suivante, avec les
protocoles TCP/IP[10].
2.4 Types de cardinalité de la communication
En fonction du nombre de destinataires et de la manière de délivrer le message, on
distingue[10] :
unicast: qui consiste à acheminer les données vers une seule destination
déterminée,
broadcast: qui consiste à diffuser les données à toutes les machines,
multicast qui consiste à délivrer le message à un ensemble de machines
manifestant un intérêt pour un groupe,
anycast: qui consiste à délivrer les données à un seul membre d'un groupe,
généralement le plus proche, au sens du réseau.
2.5 Contraintes de routage dans les réseaux de capteurs sans
fil
Le routage dans les réseaux de capteurs diffère de celui des réseaux Ad Hoc dans
les points suivants[1] :
il n'est pas possible d'établir un système d'adressage global pour le grand
nombre de nœuds .
les applications des réseaux de capteurs exigent l'écoulement de données
mesurées depuis des sources multiples vers la destination finale « Sink ».
les différents capteurs peuvent générer produire les mêmes données à
proximité d'un phénomène (problème de la redondance des données).
les nœuds capteurs exigent ainsi une gestion soigneuse des ressources.
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
18
2.6 Approches d'établissement de routes[7]
2.6.1 Approche basée sur l'état du lien
Chaque nœud de réseau maintient une vie globale de la topologie du réseau qui lui
permet de calculer les chemins vers toutes les destinations. Les nœud diffusent
périodiquement (par inondation) l'état des liens avec leurs voisins à tous les nœud du
réseau. La diffusion peut aussi être produite lorsqu'un des nœud détecte un nouveau
lien vers un de ses voisins corrompus ou lorsqu'une mise dans sa table de topologie
est faite. Le problème de cette approche, les messages de contrôle surchargent le
réseau et surtout quand il s'agit d'un réseau avec un grand nombre des nœuds[9].
2.6.2 Approche basée sur le vecteur de distance
Dans cette approche, chaque nœud transmet à ses voisins la distance en termes de
nombre de sauts qui le sépare de chaque destination dans le réseau et le nœud voisin
utilisé pour atteindre cette destination. Donc, un nœ ud établit les routes vers les
autres destinations en se basant sur les informations reçues depuis tous ses voisins. Ce
dernier calcule le chemin le plus court vers n'importe quelle destination dans le
réseau. Si la distance séparant deux nœud change on répète le processus de calcul.
L'approche du vecteur des distances évite l'inondation, mais elle est moins précise
que l'approche basée sur l'état du lien puisqu'il est aussi difficile de trouver des routes
alternatives en cas de coupure de routes.
2.7 Types de routage[12]
Le routage dans les réseaux de capteurs sans fil se classe généralement en:
2.7.1. Routage à plat
Appelé également routage centré données (data centric) où tous les nœud ont les
mêmes tâches à accomplir. C'est la première approche utilisée dans l'acheminement
des données dans les RCSF. Elle se base sur la collaboration de tous les nœud du
réseau. Les propriétés des données sont spécifiées par un système de dénomination
par attribut (attribut, valeur) en raison de la difficulté d'affecter un identificateur
global à chaque nœud vu leur nombre important. Parmi leurs avantages, la simplicité
d'où la possibilité d'établir des communications sans surcoût où chaque nœud n'aura
besoin que des informations de ses voisins directs. L'inconvénient est l'épuisement des
ressources en énergie des nœud proches de la station de base car tout le trafic vers
cette dernière passe obligatoirement par eux.
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
19
2.7.2. Routage hiérarchique
Cette approche est basée sur la formation de clusters (zones communes). Le
principe est de router les données récoltées par chaque nœud du cluster à son chef de
zone (Cluster Head), qui et après des traitements sur leurs parties communes, les
transmettra à la prochaine destination (Si le CH ne pourra pas atteindre directement la
station de base, les informations seront routées vers le prochain chef de zone).
L'avantage est la réduction des coûts en communication et en énergie en minimisant le
nombre de messages circulant sur le réseau, étant donné que les CHs appliquent des
fonctions d'agrégat sur les données du cluster ce qui permet de les combiner.
L'inconvénient concerne la taille du réseau. En outre, quand la taille du réseau
augmente, le processus d'élection du Cluster Head devient critique et gourmand en
ressources.
2.7.3. Routage basé sur la localisation
L'identification des emplacements géographiques des nœud capteurs sur la zone de
captage est d'une importance capitale pour les mécanismes de routage de données
dans les RCSF. Ces informations de localisation permettent le calcul des positions des
capteurs et les distances qui les séparent afin de construire les chemins les plus courts
entre un nœud source et sa destination. Cette approche de routage est plus économe en
énergie car elle dispense les nœud capteurs d'employer les méthodes aléatoires ou
probabilistes pour rechercher les routes. De plus, la localisation des nœud (et par
conséquent de leurs régions) permet de diffuser des requêtes uniquement à ces régions
et éviter leur diffusion en mode broadcast (diffusion globale à tous les nœud ) et ainsi
réduire le nombre de transissions d'une manière significative. L'inconvénient est la
nécessité d'équiper les nœud capteurs avec un système de localisation par satellite
comme le GPS qui consomment énormément d'énergie.
2.7.4 Routage proactif
Le calcul de routes se fait à priori ce qui facilite l'acheminement des données. Les
informations des chemins à suivre par chaque donnée source vers une destination sur
le réseau sont stockées dans une table de routage. Les tables de routage doivent être
mises à jour régulièrement afin de corriger certains chemins coupés en
raison du changement de topologie dus aux défaillances ou à la mobilité de certains
nœuds capteurs. Cette mise à jour est assurée par la diffusion périodique des paquets
de contrôle sur le réseau, ce qui n'est pas évident pour des réseaux de grande taille
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
20
comme les réseaux de capteurs sans fil. L'établissement de routes se fait
indépendamment des besoins réels de l'application et un bon nombre de ces routes est
sauvegardé pour ne jamais être utilisées. Une autre limite concerne la taille des tables
de routage, notamment pour des réseaux de grande taille, qui pourrait dépasser les
capacités de stockage des nœuds capteurs.
2.7.5 Routage réactif
Egalement appelé routage à la demande, le routage réactif permet de créer les
routes selon les besoins de l'application. Lorsqu'une requête est diffusée sur le réseau,
la procédure de découverte de routes est lancée [4] par les nœud concernés par cette
requête, et les réponses sont acheminées sur les routes créées. Cette procédure est
lancée également pour des applications event-driven (applications orientées
événements) pour chaque événement intéressant détecté. L'avantage d'établir des
routes à la demande est la conservation d'énergie par rapport au routage proactif. La
recherche de routes peut causer des lenteurs pour l'acheminement des données ce qui
n'est pas approprié aux applications interactives et temps-réel.
2.7.6 Routage hybride (à la fois proactif et réactif)
C'est une combinaison des deux concepts de routage proactif et réactif. Des tables
de routage sont stockées sur les nœud capteurs de façon à établir des routes sur leur
voisinage proche (généralement en deux sauts maximums). Au-delà de leur voisinage,
le routage devient réactif et des procédures de recherche de routes sont lancées. Cette
approche combine les avantages des deux autres approches proactive et réactive et
réduit considérablement la taille des tables de routage ainsi que les délais
d'établissement de routes.
2.8 Les défis du routage dans les RCSF
cinq volets définissent les challenges du routage dans les RCSF[4] :
La consommation d'énergie: du fait des ressources énergétiques limitées
dans les capteurs sans fil, la gestion de la consommation de l'énergie est le défi
principal des protocoles de routage. La consommation d'énergie dans le cadre
du routage peut être l'effet d'une recherche de voisinage ou d'un traitement de
paquet ou de sa transmission.
Extensibilité: dans les réseaux à grande densité de nœuds, l'information sur la
position de chaque nœud peut être difficile à accéder. Par conséquent, il est
nécessaire de développer des protocoles de routage où l'information sur la
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
21
topologie n'est plus nécessaire. Les nœuds doivent donc supporter des
informations de la part d'un grand nombre de nœuds sans entrave à la
consommation énergétique.
Adressage: les mécanismes d'adressage facilitent la communication entre les
voisins. Cependant, lorsque le nombre de nœuds est important, l'information
nécessite une communication multi hop (plusieurs intermédiaires). Ceci
provoque un phénomène de saturation dû à la juxtaposition des adresses des
intermédiaire. Les protocoles de routage doivent donc supporter des
mécanismes de prévention contre la saturation (Overhead) où l'adresse de chaque
nœud n' est pas requise.
Robustesse: Au cours du routage, un nœud peut subir une panne et empêcher
le déroulement de ce processus. Les protocoles de routage doivent supporter
des mécanismes de gestion de ce genre d'imprévus qui sont dus au canal ou
aux composants du capteur, et ainsi de ne pas affecter l' efficacité du routage
lors d'une perte de paquet.
Topologie: le déploiement des capteurs peut se faire de façon prédéfinie ou,
plus souvent de façon complétement aléatoire. Généralement, les capteurs ne
connaissent pas la topologie et donc la position de leurs voisins, ce qui affecte
directement les performances du routage. Les protocoles de routage doivent
donc supporter des méthodes de découverte de voisinage et de son entretien
afin de fournir à chaque nœud une connaissance de la topologie qui l'entoure;
surtout s'il existe des nœud mobiles, ce qui est le cas pour certains réseaux
sans fil.
Application: le type de la couche d'application influence directement le choix
du protocole de routage. Dans les applications de contrôle d'un processus
quelconque, les capteurs transmettent des informations à la destination de
façon périodique, ce qui nécessite généralement des routes statiques. Dans les
applications basées sur les évènements, le capteur est souvent en mode veille.
À l'arrivée du premier évènement, une route doit être établie pour délivrer
l'information.
2.9 La contrainte d'énergie pour le routage[12]
La consommation d'énergie est la métrique la plus importante dans l'évaluation de
la durée de vie des capteurs et des performances d'un réseau de capteurs sans fil . La
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
22
source d'énergie des capteurs, conçus pour fonctionner durant des mois et même des
années et alimentés par des batteries de capacité limitée, doit être utilisée de façon
optimale pour toute tache effectuée, notamment la communication et l'échange
d'informations, entre les entités du réseau. Plusieurs métriques et techniques sont
utilisées par les protocoles de routage afin d'optimiser les sources de consommation
d'énergie au niveau de la couche réseau[12].
2.9.1. Sources de consommation d'énergie
Les sources de consommation d'énergie au niveau de la couche réseau sont diverses
2.9.1.1 La longueur des chemins : Les paquets de données suivent des chemins en un
certain nombre de sauts. Le coût d'un saut en termes d'énergie est mesuré par la distance
qui sépare les deux nœud concernés par la communication, et le coût global du routage
est la somme des énergies consommées à tous les sauts. Les chemins les plus longs sont
les plus gourmands en énergie.
2.9.1.2 La qualité des liens : la retransmission des données suite à l'interruption du
cheminement entre la source et la destination est une opération qui engendre un coût
énergétique supplémentaire.
2.9.1.3. Le mode de communication : le routage point-à-point est inefficace pour les
RcSF du fait qu'il consomme beaucoup d'énergie au niveau des nœud capteurs. Par
ailleurs, les modes de communication adéquats sont en effet le mode « one-to-many » et
le mode « many-to-one ».
2.9.1.4 Le routage de paquets inutiles : certains paquets de données deviennent inutiles
si on ne respecte pas les échéances temporelles des transmissions, fixées soit par
l'émetteur ou par le récepteur. Router des données dont l'échéance est expirée engendre
une consommation d'énergie inutile.
2.9.1.5 Le choix d'un chemin : La non-prise en compte de l'énergie des nœud lors du
processus d'établissement de chemins peut provoquer l'épuisement des capacités
énergétiques de certains nœud .
2.9.2 Techniques économes en énergie
Parmi les techniques et les métriques les plus économes en énergie utilisées par les
protocoles de routage, on cite :
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
23
2.9.2.1 Ajustement des puissances de transmission : L'énergie de transmission
consommée par le nœud émetteur lors de l'envoi d'un message dépend directement de
la puissance de transmission. Certains protocoles de routage prennent en compte les
distances entre les nœud afin d'optimiser le choix sur la puissance de transmission
minimale à utiliser et de réduire la consommation d'énergie. distances entre les nœud
afin d'optimiser le choix sur la puissance de transmission minimale à utiliser et de
réduire la consommation d'énergie.
2.9.2.2. Distribution des charges : La solution de distribution des charges entre les
nœud participants au routage de données est très efficace aux problèmes de
congestion de charges où les paquets émis empruntent toujours les mêmes nœud , ce
qui provoque l'épuisement rapide de leur énergie. En effet, les protocoles de routage
calculent le coût énergétique de tous les chemins entre la source et sa destination et
choisissent le chemin le moins couteux en termes d'énergie. Le calcul du coût
énergétique se fait par le nœud source sur la base des puissances de transmission.
2.9.2.3 La formation des grappes : La technique de partitionnement du réseau,
notamment ceux ayant une densité importante de nœud , pour la formation de grappes
permet une meilleure gestion du routage sur plusieurs niveaux. Chaque sous ensemble
(grappe) est constitué d'un certain nombre de nœud possédant des propriétés ou des
tâches communes, regroupés autour d'un nœud chef considéré comme le nœud
collecteur de la grappe. Par ailleurs, le nœud collecteur coordonne et ordonnance les
activités des nœud membres du groupe en autorisant certains nœud à se mettre en
veille, ou bien en ajustant les puissances de transmissions ou alors en organisant les
instances de transmission afin d'éviter les collisions et par conséquent les
retransmissions. Le risque d'épuisement de l'énergie des nœuds chef est pris en charge
par la station de base qui procède à leur remplacement par d'autres nœuds à chaque
intervalle de temps ou à chaque diminution critique de leur capacité énergétique.
2.9.2.4 La réduction de données : La réduction de données consiste à empêcher deux
ou plusieurs nœud qui couvrent une même zone de captage de transmettre des
données décrivant le même événement, en éliminant les données redondantes par des
nœud dits agrégateurs, ce qui réduit le nombre de transmissions et par conséquent la
quantité d'énergie dissipée.
Chapitre 2: Le routage dans les réseaux de capteurs sans fil
24
2.9.2.5. Négociation des échanges de données : Les nœuds du réseau entament une
négociation sur les données à transmettre en diffusant un message contenant une
métadonnée décrivant les données à transmettre. Les nœuds intéressés par ces
données manifestent leur intérêt et les reçoivent en entier. La sélection des nœuds
destinataires par l'intérêt réduit la bande passante et la consommation d'énergie du
réseau.
2.10 Conclusion
Le routage dans les RCSF forme un axe de recherche intéressant, avec un
ensemble limité, mais en pleine croissance de résultats des recherches. Cette
croissance fortement liée à deux facteurs[13]:
Les capteurs sont des véritables systèmes embarqués et donc sont conçus
pour les application spécifiques.
L'expansion du champ de domaine d'application des RCSFs.
Nous avons décrit profondément dans les sections précédentes de ce chapitre les
notions de routage dans le RCSF, en donnant la définition, Sources de consommation
d'énergie, le types de routage et Les défis du routage..
Dans le chapitre suivant, nous introduirons en détail les protocoles du routage
dans les réseaux du capteur sans fil .
Chapitre 3:Les protocoles de routage dans les RCSF
26
3.1 Introduction
L'objectif principal d'un protocole de routage pour un réseau de capteurs sans fil
est l'établissement correct et efficace d'itinéraires entre une paire de nœuds afin que
des messages puissent être acheminés. Le protocole de routage permet aux nœuds de
se connecter directement les uns aux autres pour relayer les messages par des sauts
multiples et de transmettre les données vers un point de collecte[1].
Nous présenterons dans ce chapitre un état de l'art des principaux protocoles de
routage dans les réseaux RCSF car la présentation de ces protocoles nous permettra de
mieux analyser le fonctionnement.
3.2 Les critères de performance des protocoles de routage en
RCSF
La performance des réseaux de capteurs sans fil est fondée sur les facteurs
suivants[3] :
Evolutivité : l'évolutivité est un facteur important dans les réseaux de capteurs
sans fil. Une zone de réseau n'est pas toujours statique, elle change selon les
besoins des utilisateurs. Tous les nœuds dans le domaine du réseau doivent
être évolutifs ou être en mesure de s'adapter aux changements dans la structure
du réseau en fonction de l'utilisateur.
L'énergie : chaque nœud utilise peu d'énergie pour des activités telles que la
détection, le traitement, le stockage et la transmission. Un nœud dans le réseau
doit savoir combien d'énergie sera utilisée pour effectuer une nouvelle tâche à
laquelle il est soumis. L'énergie consommée peut varier selon le type de
fonctionnalité ou l'activité qu'il a à accomplir.
Le temps de traitement: il se réfère au temps pris par le nœud dans le réseau
pour assurer l'ensemble de l'opération commençant par la détection, le
traitement des données ou le stockage de données, la transmission ou la
réception sur le réseau.
Le schéma de transmission: la transmission de données par les nœuds de
capteurs vers la destination ou la station de base se fait par un schéma de
routage à un seul saut ou à multi-saut.
La capacité du réseau : tous les nœuds du réseau de capteurs utilisent
certaines ressources du réseau qui les aident à accomplir certaines activités
comme la détection ou la transformation.
Chapitre 3:Les protocoles de routage dans les RCSF
27
Synchronisation : dans les communications radio entre les nœuds de capteurs
d'un WSN, les capteurs écoutent en permanence les transmissions et
consomment de l'énergie s'ils ne sont pas synchronisés les uns les autres. Pour
cela, un nœud doit avoir la même notion de temps pour se mettre en veille et
se réveiller que ses voisins.
Contrôle de paquets: un paquet envoyé avant la transmission entre deux
nœuds est appelé le paquet de contrôle. Le paquet de contrôle contient le
nombre de bits de données envoyés, l'adresse du nœud de destination et
certaines informations qui contribuent à éviter les collisions pendant la
transmission.
3.3 Classification des protocoles de routage dans les RCSF
Les protocoles de routage au sein des RCSF sont influencés par un facteur
déterminant à savoir : la minimisation d'énergie sans une perte considérable de
l'efficacité. Pour cela de nombreuses stratégies de routage ont été créés pour les
réseaux de capteurs. Certaines sont des adaptations de stratégies qui existaient pour
d'autre types de réseaux (réseaux sans fil au sens le plus large) tandis que d'autres ont
été conçues spécialement pour les réseaux de capteurs sans fil [14].
Les protocoles de routage dans les réseaux peuvent être classés selon deux
concepts[1] :
la structure de réseau.
le type de protocole.
Figure 2. 1 : Protocoles de routage pour les RCSF selon la structure du réseau[3].
Chapitre 3:Les protocoles de routage dans les RCSF
28
Figure 2. 2 : Protocoles de routage pour les RCSF selon le type de protocole[3].
3.3.1 Protocole de routage multi-chemin
Il se base sur l'adoption de plus qu'un chemin menant vers la destination, et ce,
pour avoir des chemins de secours si jamais le chemin principal serait rompu[1].
3.3.2 Protocole de routage basé sur la négociation des données
En détectant le même phénomène, les nœuds capteurs inondent le réseau par les
mêmes paquets de données. Ce problème de redondance peut être résolu en
employant des protocoles de routage basés sur la négociation. En effet, avant de
transmettre, les nœuds capteurs négocient entre eux leurs données en échangeant des
paquets de signalisation spéciales, appelés META-DATA. Ces paquets permettent de
vérifier si les nœuds voisins disposent des mêmes données à transmettre. Cette
procédure garantit que seules les informations utiles seront transmises et élimine la
redondance des données[1].
3.3.3 Protocole de routage basé sur les interrogations
La collecte des informations sur l'état de l'environnement est initiée par des
interrogations envoyées par le nœuds « Sink »[1].
3.3.4 Protocole de routage basé sur la QoS
Ce type de protocoles tend à satisfaire certaines métriques, pendant la transmission
des données vers la destination finale. Parmi ces métriques, nous citons : le délai de
bout en bout, la gigue, PDR (Paquet Delivery Ratio), énergie consommée.
3.3.5 Les protocoles de routage plat (flat based-routing)
Chapitre 3:Les protocoles de routage dans les RCSF
29
Ces protocoles considèrent que tous les nœuds sont identiques, c'est à dire ont les
mêmes fonctions à exécuter sauf le nœuds de contrôle (sink ) qui est chargé de
collecter toutes les informations issues des différents nœuds capteurs pour les
transmettre vers l'utilisateur final. La décision d'un nœud de router des paquets vers
un autre dépendra de sa position et pourra être remise en cause au cours du temps[13].
Figure 2. 3 : Routage plat[13].
3.3.6 Les protocoles de routage hiérarchique
Ces protocoles fonctionnent en confiant des rôles différents aux nœuds du réseau.
Certains nœuds sont sélectionnés pour exécuter des fonctions particulières. Un nœuds
peut être, par exemple, une passerelle pour un ensemble de nœuds . Dans ce cas, le
routage devient plus simple, puisqu'il s'agit de passer par les passerelles pour atteindre
le nœud destination qui lui est directement attaché.
Un exemple est donné par la figure 2.4 : Pour que les paquets générés par le nœuds F
atteignent le nœud L, ils doivent passer par les passerelles P, S et R[13].
Chapitre 3:Les protocoles de routage dans les RCSF
30
Figure 2. 4 : Routage hiérarchique[13].
Le principe des protocoles de routage hiérarchique est basé essentiellement sur les
nœuds passerelles. En fait, les nœuds ordinaires savent que si le destinataire n'est pas
dans leur voisinage direct, il suffit d'envoyer la requête à la passerelle qui la prendra
en charge. À son tour, elle transmettra cette requête vers le nœuds ciblé. Ce type de
routage présent de nombreux avantages pour les réseaux dont leurs nœuds sont
sédentaires et disposent de suffisamment d'énergie.
3.3.7 Les protocoles de routage avec localisation géographique[1]
Un routage est dit géographique lorsque les décisions de routage sont basées sur la
position des nœuds . Les prés-requis pour effectuer un routage géographique dans un
réseau ad hoc sont :
Tous les nœuds possèdent un moyen de localisation, soit un système natif
comme le GPS (Global Position System), soit un système logiciel comme un
protocole de localisation.
Un nœuds source connaît toujours la position du nœuds destinataire. Pour ce
faire, soit tous les nœuds connaissent les positions initiales de tous les nœuds ,
soit un service de localisation doit être utilisé.
Chapitre 3:Les protocoles de routage dans les RCSF
31
Figure 2. 5 : Routage basé sur la localisation[1].
3.4. Les protocoles de routage proposé pour les RCSF
Nous citons dans cette section quelques protocoles de routage proposé pour les
réseaux de capteurs sans fil.
3.4.1. Protocoles de routage hiérarchiques[1]
3.4.1.1. LEACH
LEACH est l'un des algorithmes de routage hiérarchique le plus populaire pour les
réseaux de capteurs . L'idée est de former des clusters de nœuds de capteurs basés sur
les zones où il y a un fort signal reçu, puis utiliser des clusters-Head locaux comme
passerelle pour atteindre la destination. Cela permet d'économiser de l'énergie car les
transmissions ne sont effectuées que par les cluster-Head plutôt que par tous les
nœuds de capteurs[3].
LEACH suppose que chaque nœud du réseau peut communiquer directement avec
le puits, alors que, les nœuds non-Cluster Head ne peuvent communiquer qu'avec
leurs Cluster Head choisi, en utilisant la technique TDMA instaurée par ce dernier.
Cette technique permet de minimiser les collisions en allouant à chaque nœud un
temps prive pour transmettre ses données vers son CH. LEACH préconise, également,
une agrégation de données au niveau des CHs pour plus de conservation d'énergie[6].
3.4.1.2. PEGASIS (Power Efficient GAthering in Sensor Information Systems)
Chapitre 3:Les protocoles de routage dans les RCSF
32
PEGASIS est une amélioration du protocole LEACH. Au lieu de former plusieurs
clusters, PEGASIS forme des chaînes de nœuds de sorte que chaque nœuds transmet
et reçoit du nœuds voisin appartenant à la chaine. Un seul nœuds est choisi, parmi
cette chaîne, pour transmettre au sink. Ce nœuds est nommé ( leader node ). Les
données recueillies se déplacent d'un nœuds à un autre, et seront agrégées puis
envoyées au sink par le nœuds leader. Dans le PEGASIS hiérarchique les nœuds
construisent une chaîne qui forme un arbre hiérarchique. Chaque nœuds leader, choisi
dans un niveau particulier, transmet des données aux nœuds du niveau supérieur de la
hiérarchie jusqu'à atteindre la station de base Sink [3].
3.4.1.3. TEEN et APTEEN(Threshold sensitive Energy Efficient sensor Network
protocol)
TEEN est un protocole hiérarchique conçu pour être sensible aux changements
improviste des attributs détectés tels que la température. L'architecture du réseau est
basée sur un groupement hiérarchique où les nœuds les plus proches forment des
clusters. Après la construction des clusters, le clusterhead diffuse deux seuils aux
nœuds . Qui sont la valeur minimale d'un attribut pour pouvoir être transmis et le
degré minimale du changement de cet attribut. Le TEEN adaptatif (APTEEN) est une
extension du TEEN basée sur la capture périodique des données et la réaction aux
événements temps-réel. Quand la station de base forme les clusters, les cluster-heads
diffusent les attributs, les seuils et le plan de transmission à tous les nœuds et
effectuent également l'agrégation des données afin d'économiser l'énergie[1] .
3.4.1.4. SAR (Sequential Assignment Routing)
SAR est une approche multi-chemins qui s'efforce à réaliser l'efficacité énergétique
et la tolérance aux fautes. SAR crée des arbres en prenant en compte les métriques
QoS, la ressource énergétique sur chaque chemin et le niveau de priorité de chaque
paquet. En utilisant ces arbres, des routes multiples du sink aux capteurs sont formés.
Une ou plusieurs routes peuvent, alors, être emprunter[1].
3.4.2. Protocoles de routage non hiérarchiques[1]
3.4.2.1. le protocole AODV (Ad-hoc On Demand Distance Vector)[4]
AODV ( Ad hoc On demand Distance Vector) est un protocole de routage conçu
par Charles E.Perkins et Elizabeth M. Royer et spécifié dans le RFC. C'est un
protocole basé sur le principe des vecteurs de distance et appartient à la famille des
protocoles réactifs. Il représente essentiellement une amélioration de l'algorithme
Chapitre 3:Les protocoles de routage dans les RCSF
33
proactif DSDV mais réduit l'overhead (nombre de diffusions de messages) en ne
calculant les routes que sur demande(AODV). Ce protocole utilise les deux
mécanismes "découverte de route" et "maintenance de route", en plus du routage
"nœud par nœud " et construit les routes par l'emploi d'un cycle de requête "route
request/route reply ".
AODV utilise le principe des numéros de séquence afin de maintenir la
consistance des informations de routage. A cause de la mobilité des nœuds dans les
réseaux mobiles ad hoc, les routes changent fréquemment ce qui fait que les routes
maintenues par certains nœuds, deviennent invalides. Les numéros de séquence
permettent d'utiliser les routes les plus nouvelles ou autrement dit les plus fraîches
( fresh routes ) .
1. Table de routage et paquets de contrôle
AODV maintient les chemins d'une façon distribuée en gardant une table de
routage, au niveau de chaque nœud de transit appartenant au chemin cherché. Une entrée de la table
de routage contient essentiellement
L'adresse IP de la destination.
Le nœud suivant.
La distance en nombre de nœud (i.e. le nombre de nœud nécessaire pour
atteindre la destination).
Le numéro de séquence destination qui garantit qu'aucune boucle ne peut se
former.
Liste des voisins actifs (origine ou relais d'au moins un paquet pour la
destination pendant un temps donné).
Le temps d'expiration de l'entrée de la table.
Un tampon de requête afin qu'une seule réponse soit envoyée par requête.
A chaque utilisation d'une entrée, son temps d'expiration est remis à jour (temps
courant +active route time ). Si une nouvelle route est nécessaire, ou si une route
disparaît, la mise à jour de ces tables s'effectue par l'échange de trois types de
messages entre les nœuds
RREQ(Route Request): Message de demande de route.
RREP(Route Reply): Message de réponse à un RREQ.
RERR (Route Error): Message qui signale la perte d'une route.
Le format des paquets est donné ci-dessous:
RREQ: contient essentiellement les champs suivants :
Chapitre 3:Les protocoles de routage dans les RCSF
34
Type J R G D U Reserved Hop Count
RREQ ID
Destination IP Address
Destination Séquence Number
Originator IP Address
Originator Séquence Number
Tableau 2.1: Format du message RREQ.
Type (8 bits): ce champ indique le type de paquet, dans ce cas il prend la
valeur 1
Flags (drapeaux) (5 bits): ce champ contient cinq flags(J, R, G, D, U) tel que :
J(Join flag) et R(Repair flag) sont réservé pour le multicast.
G( Gratuitous RREP flag ) indique si un message RREP spécifique doit
être envoyé à la destination dans le cas où un nœud intermédiaire
possède un chemin à la destination.
D(Destination only flag) ce drapeau indique si seulement la destination
qui doit répondre à la requête ou pas.
U( Unknown sequence number) indique le numéro de séquence de la
destination est inconnu.
Réserved (11 bits): initialisé à la valeur 0 et ignoré à la réception du message.
Hop Count (8 bits): il contient le nombre de sauts parcourus par RREQ.
RREQ ID: il identifie la requête parmi les requêtes envoyées par la même
source.
Destination IP Address : l'adresse IP de destination pour laquelle une route est
désirée.
Destination Séquence Number : Le dernier numéro de séquence reçu dans le
passé par le créateur pour n'importe quelle route vers la destination.
Originator IP Adress : l'adresse IP de la source de la requête.
Originator Sequence Number : Le nombre de séquence courant de la source
contenue dans la table de routage de ce nœud s.
Chapitre 3:Les protocoles de routage dans les RCSF
35
RREP: contient essentiellement les champs suivants:
Type R A Reserved Hop Count
Destination IP Address
Destination Séquence Number
Originator IP Address
Lifetime
Tableau 2.2: Format du message RREP.
Type (8 bits): ce champ indique le type de paquet, dans ce cas il prend la
valeur 2.
Flags (drapeaux) (2 bits): ce champ contient deux flags :
R( Repair flag) : utilisé pour le multicast.
A(Acknowledgment required) : indique si la source doit envoyer un
acquittement pour le message RREP.
Reserved (9 bits): initialisé à la valeur 0 et ignoré à la réception du
message.
Préfix Sz (5 bits): si la valeur de ce champs est différente de zéro, ce dernier
indique que le nœud prochain peut être utilisé pour chaque nœud demandant
cette destination et qui possède la même valeur de Prefix Sz.
Hop Count (8 bits): il contient le nombre de sauts entre la source jusqu'à la
destination.
Destination IP Address : l'adresse IP de la destination du paquet RREQ.
Destination Sequence Number : le numéro de séquence de la destination
associé à cette route.
Originator IP Adress : l'adresse IP du nœud qui crée la requête.
Lifetime : le temps pour lequel chaque nœud qui reçoit RREP considère que la
route est valide.
RERR : Un message d'erreur de route contient essentiellement les champs
suivants:
Chapitre 3:Les protocoles de routage dans les RCSF
36
Type N Reserved DectCount
Unreachable Destination IP Address(1)
Unreachable Destination Sequence Number(1)
Tableau 2.3: Format du message RERR.
Type (8 bits): la valeur de ce champ prend 3 dans le message RRER.
Flag (1 bits): il contient un drapeau(N: No delete flag ), celui-ci est indicatif
lorsqu'un nœud est capable de réparer le lien, et informe les nœuds suivants
qu'ils ne doivent pas supprimer le chemin.
Reserved(15 bits): initialisé à la valeur 0 et ignoré à la réception du message.
Dest Count (8 bits): il indique le nombre de destinations inaccessibles
incluses dans ce message. Ce champ doit être supérieur ou égal à un.
Unreachable Destination IP Address :l'adresse IP des destinations
inaccessibles pour la raison de cassure de lien.
Unreachable Destination Sequence Number : le nombre de séquence de la liste
des destinations inaccessibles qui se trouve dans le champ Unreachable
Destination IP Address.
2. Numéro de séquence
L'algorithme de Bellman Ford est un algorithme qui trouve le plus court chemin
entredeux nœuds. Les protocoles à vecteur de distance sont en général sujets au
problème de boucles de routage (routing loops) et de comptage à l'infini (counting to
infinity) de l'algorithme de Bellman-Ford qu'ils utilisent. Certaines parties du réseau
se trouvent isolées du reste, et les nœuds composants vont croire qu'ils peuvent
atteindre les nœuds desquels ils sont coupés en passant par leurs voisins. Il s'en suit un
phénomène de bouclage dans lequel les nœuds injoignables se voient attribuer des
distances de plus en plus grand. Dans le cas d'AODV, ces problèmes sont résolus par
l'utilisation de numéros de séquence pour les messages de contrôle .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 :
Avant d'entreprendre un processus de recherche de route par l'envoi d'un
paquet RREQ, le nœud incrémente son numéro.
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
Chapitre 3:Les protocoles de routage dans les RCSF
37
séquence actuel et celui contenu dans le message RREQ. Ce numéro
accompagne son adresse dans les messages de contrôle et permet aux autres de
distinguer les messages importants des messages redondants.
Le numéro de séquence est utilisé aussi pour la mise à jour de la table de routage,
celle-ci ne s'effectue que si les conditions suivantes sont observées:
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 sauts 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 .Cette façon de
procéder garantit la création de routes sans boucles.
3. Principe de fonctionnement:
Deux étapes sont observées, la première est la découverte d'une route, et la
deuxième est la maintenance des routes:
3.1 Découverte d'une route:
Un nœud diffuse une requête de route (RREQ), dans le cas où il aurait besoin de
connaître une route vers une certaine destination et qu'une telle route n'est pas
disponible(Fig 2.6).Cela peut arriver si la destination n'est pas connue au préalable, ou
si le chemin existant vers la destination a expiré sa durée de vie ou il est devenu
défaillant (i.e. la métrique qui lui est associée est infinie). Le champ numéro de
séquence destination du paquet RREQ, contient la dernière valeur connue du numéro
de séquence, associé au nœud destination.
Cette valeur est recopiée de la table de routage. Si le numéro de séquence n'est pas
connu, la valeur nulle sera prise par défaut. Le numéro de séquence source du paquet
RREQ contient la valeur du numéro de séquence du nœud source. Après la diffusion
du RREQ, la source attend le paquet réponse de route (RREP). Si ce dernier n'est pas
reçu durant une certaine période (appelée RREP_WAIT_TIME), la source peut
rediffuser une nouvelle requête RREQ.
Quand un nœud de transit (intermédiaire) envoie le paquet de la requête à un
voisin, il sauvegarde aussi l'identificateur du nœud à partir duquel la première copie
de la requête est reçue.
Chapitre 3:Les protocoles de routage dans les RCSF
38
Figure 2.6: La propagation du paquet RREQ.
Cette information est utilisée pour construire le chemin inverse (Fig 2.7), qui sera
traversé par le paquet réponse de route de manière unicast (cela veut dire qu'AODV
supporte seulement les liens symétriques). Puisque le paquet RREP va être envoyé à
la source, les nœuds appartenant au chemin de retour vont modifier leurs tables de
routage suivant le chemin contenu dans le paquet de réponse (temps d'expiration,
numéro de séquence e prochain saut).
Afin de limiter le coût dans le réseau, AODV propose d'étendre la recherche
progressivement. Initialement, la requête est diffusée à un nombre de sauts limité. Si
la source ne reçoit aucune réponse après un délai d'attente déterminé, elle retransmet
un autre message de recherche en augmentant le nombre maximum de sauts. En cas
de non réponse, cette procédure est répétée un nombre maximum de fois avant de
déclarer que cette destination est injoignable. A chaque nouvelle diffusion, le champ
Broadcast ID du paquet RREQ est incrémenté pour identifier une requête de route
particulière associée à une adresse source.
Figure 2.7: Le chemin pris par RREP.
Chapitre 3:Les protocoles de routage dans les RCSF
39
Si la requête RREQ est rediffusée un certain nombre de fois (RREQ_RETRIES)
sans la réception de réponse, un message d'erreur est délivré à l'application .La
destination renvoie un message RREP, ce message peut donc être acheminé vers la
source. Chaque nœud traversé incrémentera le nombre de sauts. Et ajoutera une entrée
à sa table pour la destination. Une réponse adéquate peut aussi être donnée par un
nœud situé entre la source et la destination. Dans ce cas l'obtention de routes
bidirectionnelles est néanmoins possible grâce au drapeau " Gratuitous RREP". Le
nœud intermédiaire enverra alors en plus un RREP vers la destination. Les nœuds
entre le nœud intermédiaire et la destination ajouteront donc à leur table une entrée
vers la source du RREQ. Cette disposition permettra à la destination d'envoyer
directement des paquets à la source sans devoir procéder à la recherche d'une route.
C'est utile lors de l'établissement de communications TCP pour l'envoi du premier
ACK .
3.2 Maintenance des routes
Afin de maintenir des routes consistantes, une transmission périodique du message
"HELLO " (qui est un RREP avec un TTL (Time To Live) 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, dues à la mobilité du réseau ad hoc. Les mouvements des nœuds qui ne
participent pas dans le chemin actif, n'affectent pas la consistance des données de
routage. Quand un lien, reliant un nœud p avec le nœud qui le suit dans le chemin de
routage, devient défaillant, le nœud p diffuse un paquet UNSOLICITED RREP,
avec une valeur de numéro de séquence égale à l'ancienne valeur du paquet RREP
incrémentée d'une, et une valeur infinie de la distance. Le paquet UNSOLICITED
RREP est diffusé aux voisins actifs, jusqu'à ce qu'il arrive à la source. Une fois le
paquet est reçu, la source peut initier le processus de la découverte de routes. AODV
maintient les adresses des voisins à travers lesquels les paquets destinés à un certain
nœud arrivent. Un voisin est considéré actif, pour une destination donnée, s'il dé livre
au moins un paquet de données sans dépasser une certaine période (appelée active
timeout period ). Une entrée de la table du routage est active, si elle est utilisée par un
voisin actif. Le chemin reliant la source et la destination en passant par les entrées
actives des tables de routage, est dit un chemin actif. Dans le cas de défaillances de
liens, toutes les entrées des tables de routage participantes dans le chemin actif et qui
Chapitre 3:Les protocoles de routage dans les RCSF
40
sont concernées par la défaillance sont supprimées. Cela est accompli par la diffusion
d'un message d'erreur entre les nœuds actifs.
La maintenance peut être résumée dans les trois points suivants :
Des messages HELLO périodiques pour détecter les coupures de liens.
Si la source se déplace, la procédure de détermination de route peut être
réinitié.
Si un nœud intermédiaire ou la destination se déplacent, un RREP spécial est
émis au nœud source (reconstruisant la route au passage).
3.3 Gestion de la connectivité locale
Lorsqu'un nœud reçoit un paquet en Broadcast, il met à jour ses informations de
connectivité locale pour s'assurer qu'elles incluent ce voisin .Si aucun paquet n'est
émis aux voisins actifs pendant le dernier hello_interval ,un nœud va envoyer un
HELLO (RREP non sollicité) contenant :
son identité.
son numéro de séquence (non modifié pour les HELLO).
time to live de 1 pour ne pas être retransmis.
liste des nœuds pour lesquels il a reçu un HELLO.
La figure ci-dessous illustre une recherche de route à l'initiative du nœud A et en
direction de J et les différentes tables de routages constituées. La diffusion du
message RREQ à partir de A se fait en broadcast vers tous ses voisins. Lorsque J
reçoit le message il retourne un message RREP à A en passant par H,G et D.
Figure 2.8: Un exemple d'application du Protocole AODV sur RCSF.
Chapitre 3:Les protocoles de routage dans les RCSF
41
4. AODV : Avantages et inconvénients
Des études comparatives montrent que certains protocoles sont plus performants
que d'autres selon les caractéristiques du réseau. Ces études ont montré que le
protocole AODV semble convenir à des réseaux à forte mobilité et semble performant
dans les réseaux de faible densité [16].
Parmi les inconvénients du protocole de routage AODV, est le fait qu'il n'assure
pas l'utilisation du meilleur chemin existant entre la source et la destination.
Cependant, des évaluations de performances récentes ont montré qu'il n'y a pas de
grandes différences (en terme d'optimisation) entre les chemins utilisés par le
protocole AODV et ceux utilisés par les protocoles basés sur les algorithmes de
recherche des plus courts chemins .
L'avantage de ce protocole est qu'il ne présente pas de boucle de routage et évite le
problème du "comptage à l'infini" de Bellman Ford. En effet, ce dernier ne possède
pas de mécanisme précis qui peut déterminer quand est ce que le réseau doit arrêter
l'incrémentation de la distance qui correspond à une destination donnée, ce qui offre
une convergence rapide quand la topologie du réseau ad hoc change.
Un autre avantage de ce protocole est sa simplicité, à titre d'exemple, le d raft de
DSR mesure, le RFC de OLSR fait, alors que celui d'AODV a une taille de. Ensuite
son ancienneté et sa maturité, AODV existe depuis longtemps et beaucoup de
travaux ont déjà été réalisés à son propos et il a fait l'objet de simulations
comparatives détaillées. Ce sont des critères assez subjectifs qui conduisent au choix
d'AODV.
3.4.2.2. SPIN ( Sensor Protocols for Information via Negotiation)
L'idée derrière le SPIN est d'échanger des informations sur les données à envoyer
en utilisant des paquets de signalisations spéciales nommées meta-DATA. Ceci permet
d'éviter le problème des données redondantes. Chaque nœuds , s'intéressant à la
donnée référencée par ce paquet meta-DATA, peut les récupérer en envoyant un
paquet de requête[1] .
3.4.2.3. DSDV (Destination Sequenced Distance Vector)
DSDV est un protocole proactif de routage à vecteur de distance. Chaque nœuds
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[13] .
Chapitre 3:Les protocoles de routage dans les RCSF
42
3.4.2.4. GSR (Global State Routing)
Le protocole GSR 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), et les améliore en évitant le mécanisme inefficace d'inondation des
messages de routage. GSR utilise une vue globale de la topologie du réseau, comme
c'est le cas dans les protocoles basés sur LS. Le protocole utilise aussi une méthode,
appelée la méthode de dissémination, utilisée dans le DBF (Distributed Bellman-
Ford)[13] .
3.4.2.5. DSR (Dynamic Source Routing)
DSR est un protocole de routage réactif qui utilise le routage de source afin
d'envoyer des paquets de données. Dans ce type de routage, les entêtes des paquets de
données portent la séquence des nœuds à travers lesquels le paquet doit passer. Ceci
signifie que les nœuds intermédiaires ont juste besoin de garder des traces de leurs
voisins intermédiaires afin de transférer les paquets de données. Le nœuds source a
besoin de savoir l'ordre complet des nœuds jusqu'à la destination[1].
3.4.2.6.GPSR (Greedy Perimeter Stateless Routing)
La topologie a un caractère relativement provisoire dû à la mobilité des nœuds
dans les réseaux Ad-hoc et de capteurs mobiles. Pour cette raison, les protocoles de
routage les plus étudiés pour ce type de réseaux sont les protocoles de routage
géographique car ils permettent d'éviter la surcharge d'informations échangées entre
les nœuds qui cherchent à obtenir la topologie du réseau ou à construire les tables de
routage.
Ce protocole de routage géographique se base sur le fait que tous les nœuds
connaissent leur position, par exemple, grâce à un équipement GPS (Global
Positioning System) ou encore par un système de positionnement distribué[1] .
3.5 Les limites des protocoles de routage dans les RCSF[7]
La plupart des protocoles de routage proposés pour les réseaux sans fil en
particulier pour les RCSF, ont été conçus pour des réseaux de taille modeste.
Cependant, lorsque le nombre de nœuds augmente les performances de ces protocoles
commencent à se dégrader et on parle de la contrainte de passage à l'échelle.
Le passage à l'échelle est le faite de mettre en place un grand nombre de nœuds
dans une zone de couverture. Or, quand le nombre de nœuds augmente cela pourra
avoir une influence sur les performances du réseau en termes de latence, etc. En outre,
Chapitre 3:Les protocoles de routage dans les RCSF
43
la majorité des protocoles de routage ont été développés pour des réseaux de taille
modeste et nous avons remarqué que lorsque le nombre de nœuds augmente les
performances de ces protocoles se dégradent grandement.
Dans les applications orientées événements (Event-Driven), le temps nécessaire
pour remonter une information au centre de contrôle doit être réduit pour que l'équipe
d'intervention arrive à temps et minimise l'occurrence d'une catastrophe. Cependant,
nous avons remarqué que lorsque le nombre de nœuds augmente dans certains
protocoles le temps pour envoyer l'information à la station de base devient assez
grand et par suite l'intervention dans certains cas devient utile. De ce fait, les
protocoles doivent garantir un temps réduit pour alerter le centre de contrôle. Pour se
faire, nous avons proposé d'utiliser des heuristiques pour réduire ce temps dans les
réseaux denses.
2.7Conclusion
La technologie des réseaux de capteurs reste très prometteuse, et leur défis majeur
est de trouver des protocoles de routage qui permettent, à la fois, de [1]:
consommer le moins d'énergie possible,
assurer la connectivité du réseau et la couverture du champ surveillé,
assurer une livraison fiable et rapide.
tolérer aux pannes.
s'adapter aux changements de topologie …
Nous avons présenté dans ce chapitre les différents protocoles de routage déployés
dans les réseaux de capteurs.
Chapitre 4: Modélisation et Implémentation
45
4.1 Introduction
L'étude de cas est une démarche de recherche qui se situe dans l'horizon des
méthodes qualitatives. Elle peut être considérée comme l'une des plus stimulantes
d'entre elles tant par ce qu'elle comporte d'exigences pour le chercheur, que par les
défis théoriques et méthodologiques qu'elle pose.
L'objectif de ce travail consiste à proposer un algorithme pour émerger une
structure de réseau et acheminer les données entre les nœuds où chacun de ces
derniers n’a aucune information à propos de la structure de réseau.
Dans ce dernier chapitre nous allons d'abord présenter l'environnement de
développement, ensuit la description de notre étude et enfin l'implémentation de notre
proposition.
4.2 Description de la contribution
4.2.1 Contexte et Motivation
Le principal objectif de cette contribution est de proposer un algorithme pour
émerger une structure donnée afin d'acheminer les données entre les nœuds où chacun
de ces derniers n'a aucune information à propos de la structure initiale du réseau. Pour
que cet algorithme soit efficace, il fallait qu’il prenne en considération les spécificités
des réseaux Ad hoc et qu’il soit réalisable dans des conditions qui se rapprochent de
la réalité. En effet, quelques facteurs ont été pris en compte à savoir :
La distribution aléatoire des nœuds dans la zone d’intérêt,
Nous considérons aussi que les nœuds sont stables durant une période
raisonnable pendant l’exécution du processus de routage,
Connaissance du voisinage :chaque capteur ne puisse communiquer qu’avec
ses voisins de 1-saut pour que la diffusion ou le routage soit effectué
normalement. Les échanges des messages sont utilisés pour découvrir les
voisinages.
4.2.2 Système de communication
Nous supposons que tous les nœuds ont la même portée de transmission RTx , et
tous les liens dans le réseau sont bidirectionnels, c’est-à-dire que si u est un voisin de
v alors v est un voisin de . Pour chaque nœud u, nous attribuons une valeur unique qui
Chapitre 4: Modélisation et Implémentation
46
le caractérise, appelée identifiant et notée (u). La distance d(u, v) entre deux
nœuds u et v est exprimée en nombre de sauts i.e. le nombre minimal de sauts qu’un
message doit parcourir pour se rendre de u à v alors que dist(u, v) représente la
distance euclidienne entre u et v. Nous avons utilisé le modèle du disque unitaire
(Unit Disc Graph), avec RTx comme rayon de transmission. Ce modèle est très
répondu pour modéliser les communications entre les nœuds dans les protocoles de
diffusion conçus pour les réseaux ad hoc et de capteurs. Dans ce modèle, il est
supposé que deux nœuds peuvent communiquer entre eux si la distance euclidienne
dist(u, v) qui les sépare n’est pas supérieure à une portée de transmission donnée RTx ,
et les messages sont toujours reçus sans aucune erreur. D’où, l’ensemble E peut être
défini comme suit :
E = {(u, v) | dist(u, v) ≤ RTx} (1)
L’ensemble des voisins N1(u) d’un nœud u est défini par l’équation 1 et son degré
(u) (ou 1-degré) représente le nombre de ses voisins c’est-à-dire le cardinal de
l’ensemble N1(u).
N1(u) = v V |v ≠ u ˄ (u, v) E (2)
( ) ( ) (3)
et l’ensemble étendu des voisins N1[u] est représenté par :
N1[u] = N1(u) {u} (4)
4.2.3 Le principe de la contribution
L'algorithme que nous allons proposer doit répondre aux exigences suivantes, et en
plus simple, efficace et adapté aux topologies dense (déploiement aléatoire,
consommation d’énergie. . .). Le fonctionnement de l'algorithme c'est comme AODV
mais cette fois ci nous choisissons plu au qu'une route, donc le déroulement est un
peu différent par rapport au AODV. La figure illustrée ci-dessous 4.3 montre ce
principe.
L'objectif c'est d'émerger une hiérarchie adaptée aux RCSF en prenant en compte les
exigences situées auparavant. Nous divisons cette tâche en quatre étapes:
Détection de la Bordure du réseau.
Sélection des nœuds de segmentation.
Appliquer le Protocol AODV sur le réseau pour regrouper les capteurs.
Chapitre 4: Modélisation et Implémentation
47
Sélection les nœuds chef de chaque group de capteurs.
Etape 1: Détection la Bordure de réseaux de capteur (selon la figure 4.3)
Le nœud A envoie un requête RREQ à ses voisins (C,J,H) .
Le nœud A attend un temps donné afin de recevoir la réponse de ses voisins.
Lorsque Les nœuds (C,J,H) reçoivent le message, ils doivent répondre par un
message RRES à A.
Le nœud A après la réception des messages (Qui est supposé le nœud le plus à
gauche d'un nœud virtuel réside derrière de A et hors du réseau).
Le nœud A comparé l’angle entre le nœud précédent (c’est le nœud virtuel
avec pour A), le nœud concerné et chacun de ces voisins, et il choisira le nœud
qui a le plus petit angle comme un nœud plus à gauche de A (C).
Après la sélection le nœud C joue le rôle de nœud A et le nœud précédent c’est
A.
Chaque nœud de la bordure de réseau fait la même procédure de routage
séquentiellement jusqu’à le retour au nœud A.
Etape 2: Sélection des nœuds de segmentation
Dès la réception de la requête, le nœud A passe à l'étape suivante qui consiste
de segmenter le réseau en régions. Selon la portée radio et le nombre de
nœuds dans la bordure, A détermine le nœuds de la bordure qu'ils vont
participer dans cette étape.
Etape 3: Appliquer le Protocol AODV sur le réseau pour regrouper les capteurs
Après la sélection des nœud de segmentation on appliquer le Protocol AODV
de plus court chemin entre les nœuds sélectionné vers le nœud source (A) pour
regrouper le réseau.
Etape 4: Sélection les nœuds chef de chaque group de capteurs.
Dans cette étape, il peut être appliqué le protocole LEACH comme un idée.
Chapitre 4: Modélisation et Implémentation
48
Figure 4.1: Déroulement de l'algorithme
F
C
I
A
E
J
K
L
H
G
D
B
La Bordure
Lient sans fil antre deux nœuds
AODV chemin
RRES
RREQ
Le capteur de segmentation
Chapitre 4: Modélisation et Implémentation
49
4.2.4 Présentation- de l'algorithme
Algorithm: Sélection le nœud plus à gauche; // Border detection
Data : boolean next = false ;
if == A || next then
send.broadcast(RREQ);
wait(T);
next_node = triangle(O, C, N);
send.unicast(next_node, Algorithm1);
end if
if receive (next_node,Algorithm1) & =! A then
next = true;
else Segmentation();
end if
end.
Function triangle (Node old, Node current, Node next);
For each node current do
Node next = min (Angle(node old, visions node current),
border = border { node next};
end for
Node current = Node next
Node old= Node current
end.
Chapitre 4: Modélisation et Implémentation
50
function Segmentation();
Data: node border[]; // list of border nodes;
Segmt = int(sizeof(border)/R);
Call AODV-Algorithm;
end .
4.3 L’environnement de development
Dans cette section, nous présentons les outils utilisés pour la mise en œuvre du
travail réalisé dans ce mémoire, commençons tout d'abord par le système
d'exploitation Debian, le langage de programmation Python et en fin le simulateur
TinyOS. Tiny Operating System TinyOS est un système d'exploitation conçu pour les
dispositifs à ressources limitées en particulier les capteurs sans fil. Le langage de
programmation dédie au ce système est le NesC avec lequel nous avons implémenté
le code du notre travail. Nous terminons cette section par hello world! in TinyOS.
Debian
Debian est un système d'exploitation libre pour votre ordinateur. Un système
d'exploitation est la suite des programmes de base et des utilitaires qui permettent à un
ordinateur de fonctionner.
Debian est bien plus qu'un simple système d'exploitation : il contient plus de 43000
paquets ,les paquets sont des composants logiciels précompilés conçus pour s'installer
facilement sur la machine[15].
Les avantages de Debian
Debian est totalement libre, elle ne contient aucun logiciel propriétaire par
défaut.
Les versions stables de Debian sortent quand elles sont prêtes, ce qui fait
qu'une nouvelle version est extrêmement stable.
Chapitre 4: Modélisation et Implémentation
51
Debian possède plusieurs branches de versions, chacune ayant un public
visé et ses avantages et défauts : stable, testing, unstable. Il est conseillé de
prendre la stable d'une manière générale.
Debian est moins gourmande en ressources, et mieux adaptée aux vieux
ordinateurs par rapport à Ubuntu. La différence de consommation de
ressources ne se sent pas sur des PC récents[ 16]
Python
Python est un langage de script de haut niveau, structuré et open source. Il
est multi-paradigme et multi-usage. Développé à l'origine par Guido Van Rossum en
1993, il est, comme la plupart des applications et outils open source, maintenu par une
équipe de développeurs un peu partout dans le monde. Conçu pour être orienté objet,
il n'en dispose pas moins d'outils permettant de se livrer à la programmation
fonctionnelle ou impérative; c'est d'ailleurs une des raisons qui lui vaut son
appellation de « langage agile ».
Parmi les autres raisons, citons la rapidité de développement (qualité propre aux
langages interprétés), la grande quantité de modules fournis dans la distribution de
base ainsi que le nombre d'interfaces disponibles avec des bibliothèques écrites
en C,C++ ou Fortran. Il est également apprécié pour la clarté de sa syntaxe, ce qui
l'oppose au langage Perl[19].
TinyOS
Est un système d’exploitation open-source conçu pour des réseaux de capteurs
sans-fil. Il respecte une architecture basée sur une association de composants,
réduisant la taille du code nécessaire à sa mise en place afin de respecter les
contraintes de mémoires qu’observent les réseaux de capteurs. Pour autant, la
bibliothèque de composants de TinyOS est particulièrement complète puisqu’on y
retrouve des protocoles réseaux, des pilotes de capteurs et des outils d’acquisition de
données. En s’appuyant sur un fonctionnement événementiel, TinyOS propose à
l’utilisateur une gestion très précise de la consommation du capteur et permet de
mieux s’adapter à la nature aléatoire de la communication.
Chapitre 4: Modélisation et Implémentation
52
Le fonctionnement d’un système basé sur TinyOS s’appuie sur la gestion des
évènements se produisant. Ainsi, l’activation de taches, leur interruption ou encore la
mise en veille du capteur s’effectue à l’apparition d’évènements, ceux-ci ayant la plus
forte priorité. Ce fonctionnement évènementiel s’oppose au fonctionnement dit
temporel où les actions du système sont gérées par une horloge donnée[1].
NesC
NesC est un langage de programmation orienté composants syntaxiquement proche
du langage C. Il est conçu pour la réalisation des systèmes embarqués distribués, en
particulier, les RCSF.
Il existe trois types de fichiers sources des applications NesC: les fichiers
interfaces et les fichiers configurations et modules qui constituent les composants.
Une configuration définit les composants et/ou les interfaces utilisés par
l’application déployée sur le capteur. Elle définit aussi la description des
liaisons entre eux.
Un module constitue la brique élémentaire du code et implémente une ou
plusieurs interfaces.
Une interface définit d’une manière abstraite les interactions entre deux
composants.
Elle définit un fichier décrivant les commandes et les évènements proposés par le
composant qui les implémente. Une commande doit être implémentée par le
fournisseur de l’interface et un évènement doit être implémenté par l’utilisateur de
l'interface.
On distingue les modules et les configurations dans le but de permettre aux
concepteurs d'un système de construire des applications rapidement et efficacement.
Par exemple, un concepteur peut fournir uniquement une configuration qui relie un
ensemble de modules qu'il ne développe pas lui-même. De plus, un autre développeur
peut fournir une librairie de modules qui peuvent être utilisés dans la construction
d'autres applications[1].
4.3.1 Étapes d'installation TinyOS 2.0.2[18]
1. Télécharger un live CD Linux qui possède une installation TinyOS sur elle.
2. installer sur votre système d'exploitation hôte avec Debian
forfaits.
Chapitre 4: Modélisation et Implémentation
53
3. Manual installation on your host OS with RPMs
Installation d'un JDK Java 1.5 (Java 5). Java est le moyen le plus
courant d'interagir avec stations de base mouvoir ou de passerelles qui
sont connectés à un PC ou un ordinateur portable.
Installation compilateurs natifs. Comme vous êtes la compilation du
code pour microcontrôleurs de faible puissance, vous avez besoin de
compilateurs qui peuvent générer le code d'assemblage correct. Si vous
en utilisant du mica-famille Motes, vous avez besoin du toolchain
AVR, si vous utilisez motes telos-famille, vous avez besoin du
Toolchain MSP430.
Installation du compilateur nesC. TinyOS est écrit dans nesC, un
dialecte de C avec un support pour le modèle TinyOS de concurrence
et de la programmation à base de composants. Le compilateur nesC est
indépendant de la plateforme: il passe sa sortie aux compilateurs natifs,
afin qu'il puisse profiter de l'ensemble de l'effort mis dans leurs
optimisations.
Installation de l'arbre TinyOS source. Si vous voulez compiler et
installer des programmes TinyOS, vous avez besoin du code.
Installation de l'outil de visualisation Graphviz. L'environnement
des TinyOS comprend nesdoc, un outil qui génère automatiquement la
documentation HTML à partir du code source. Une partie de ce
processus implique des schémas de dessin qui montrent les relations
entre les différentes composantes de TinyOS. Graphviz est un outil
open source qui nesdoc utilise pour dessiner les diagrammes.
4.3.2 Hello World! In TinyOS [20]
Le plus proche équivalent à promouvoir le classique "Bonjour tout le monde!" Du
programme est l'application "mise sous tension" qui transforme tout simplement sur
l'un des mots LED au démarrage, puis va se coucher. Une implémentation en C de la
mise sous tension est assez simple:
Chapitre 4: Modélisation et Implémentation
54
Powerup en C.
La demande de mise sous tension est compilé et lié avec une bibliothèque "de
paille", qui fournit des fonctions pour effectuer l'initialisation matérielle (mote_init),
contrôle (led0_on) LED et de mettre la paille dans un mode de faible puissance
sommeil (sommeil). Le "mote.h" fichier d'entête fournit simplement des déclarations
de ceux-ci et d'autres fonctions de base. La fonction principale d'habitude C est
appelée automatiquement lorsque les bottes de mouvoir.
La mise en œuvre de la mise sous tension nesC est divisé en deux parties. Le
premier, le module de PowerupC, contient la logique exécutable de mise sous tension
(ce qu'il y a de cela ...):
Module PowerupC dans nesC.
Ce code dit que PowerupC interagit avec le reste du système via deux interfaces,
Boot et Leds, et fournit une implémentation pour l'événement démarré de l'interface
de démarrage qui appelle la commande de led0On de l'interface Leds. En comparant
avec le code C, nous pouvons voir que la mise en œuvre de l'événement démarré
prend la place de la fonction principale, et l'appel à la commande led0On au lieu de
l'appel à la fonction de bibliothèque led0_on du programme C ci-dessus.
Ce code montre deux des principales différences entre nesC et C: où les
programmes de C sont composés de fonctions, programmes NESC sont construits à
partir de composants qui mettent en œuvre un service particulier (dans le cas de
PowerupC, tourner a LEDon au démarrage). En outre, les fonctions C interagissent
#include "mote.h"
int main () {
mote_init ();
led0_on ();
sleep ();
}
module PowerupC {
uses interface Boot;
uses interface Leds; }
implementation {
event void Boot.booted () {
call Leds.led0On (); }
}
Chapitre 4: Modélisation et Implémentation
55
typiquement en appelant directement entre elles, tandis que les interactions entre les
composants sont spécifiés par des interfaces: l'utilisateur de l'interface rend demandes
(appels commandes) sur le fournisseur de l'interface, le fournisseur fait rappels
(signaux événements) à l'utilisateur de l'interface. Les commandes et les événements
eux-mêmes sont comme des fonctions régulières (ils peuvent contenir du code
arbitraire C); appel d'une commande ou de signalisation d'un événement
est juste un appel de fonction. PowerupC est un utilisateur à la fois de Boot et Leds;
l'événement est amorcé un rappel signalé lorsque le système démarre, tandis que le
led0On est une commande demandant LED 0 être allumé.
NesC interfaces sont similaires aux interfaces Java, avec l'ajout d'une commande ou
d'un événement clé pour distinguer les demandes de rappels:
Interfaces simples NesC
La deuxième partie de mise sous tension, la configuration PowerupAppC, spécifie
comment PowerupC est connecté aux services de TinyOS:
Configuration PowerupAppC dans nesC
Ceci indique que l'application PowerupAppC est construit sur trois composants
(modules ou configurations), MAINC (démarrage du système), LedsC (contrôle
LED), et PowerupC (notre module de mise sous tension). PowerupAppC spécifie
explicitement les connexions (ou câblage) entre les interfaces fournies et utilisées par
ces components. Quand MainC a fini de démarrer le système, il signale l'événement
démarré de son interface de démarrage, qui est relié par le câblage dans
PowerupAppC à l'événement démarré dans PowerupC. Cet événement appelle ensuite
interface Boot{
event void booted (); }
interface Leds {
command void led0On ();
command void led0Off ();
command void led0Toggle();
...
}
configuration PowerupAppC { }
implementation {
components MainC , LedsC , PowerupC; MainC.Boot -> PowerupC.Boot;
PowerupC.Leds -> LedsC.Leds; }
Chapitre 4: Modélisation et Implémentation
56
la commande led0On de son interface de Leds, qui est de nouveau connecté (par
câble) par PowerupAppC à l'interface Leds fournies par LedsC. Ainsi l'appel allume
LED 0. Le diagramme de composants résultant est montré dans la figure 4.1 - ce
schéma a été généré automatiquement à partir PowerupAppC par nesdoc, l'outil de
génération de documentation de nesC. PowerupAppC illustre la troisième différence
majeure entre C et nesC: câblage rend les connexions exprimées en reliant la version
C de la mise sous tension avec sa bibliothèque "de paille" explicite. Dans la version
C, Powerup appelle une fonction globale led0_on nommé qui est relié à la
bibliothèque qui fournit une fonction avec le même nom, si deux bibliothèques.
Figure 4.2: Schéma de câblage pour l'application de mise sous tension
Figure 4.3:Le modèle de compilation nesC.
Les charges du compilateur nesC est lit dans les composants nesC, qui compile
dans un fichier C. Ce fichier C est passé à un compilateur C natif, ce qui génère un
binaire de paille.
Fournir une telle fonction, puis (généralement) la première nommée sur les linker
ligne de commande "victoires". Utilisation d'une configuration nesC, le programmeur
sélectionne explicitement la place qui la mise en œuvre composante de la fonction à
utiliser. Le compilateur nesC peut profiter de ce câblage explicite pour construire les
binaires hautement optimisés. Les implémentations actuelles du compilateur nesC (de
Chapitre 4: Modélisation et Implémentation
57
nesc) prennent fichiers NESC décrivant les composants comme entrée et la sortie un
fichierC.
Le fichier C est passé à un compilateur C natif qui peut compiler au microcontrôleur
ou un processeur souhaité. Figure 4.2 montre ce processus. Le compilateur nesC
construit attentivement le fichier C généré pour maximiser les capacités
d'optimisation du compilateur C. Par exemple, car il est donné un seul fichier, le
compilateur C peut librement optimiser à travers les frontières d'appel, le code inline
chaque fois que nécessaire. Le compilateur nesC émonde également code mort qui est
jamais appelé et les variables qui ne sont jamais accessibles: puisqu'il n'y a pas de
liaison dynamique dans nesC, il a une image complète du graphe d'appel
d'application. Cela accélère la compilation C et réduit la taille du programme en
termes de RAM et le code.
4.4 L'Implémentation
Nous implémentons l'algorithme que nous avons décrit précédemment pour
acheminer les données entre les nœuds .
4.4.1 Les fichiers de l'application:
le fichier Makefile: contient les informations de compilation.
le fichier Protocole.h : Contient les variables de notre programme comme les
identificateurs, les structures utilisé etc…
Le fichier ProtocoleApp.nc :Contient les composants utilisés et définis par le
noyau de TinyOS.
Le fichier Protocole.nc: c'est le fichier principale qui contient notre
programme.
Le fichier text.log: présente les résultats conclus de notre simulation et tous
les messages envoyés et reçus dans le réseaux.
le fichiers test.py : c'est le fichiers de simulation.
4.4.2 L'implémentation de la proposition
La déclaration des variables et la structure du programme qui est présenté dans le
fichier Protocole.h présente dans le figure suivant:
Chapitre 4: Modélisation et Implémentation
58
Figure 4.4: La fenêtre de déclaration des variables et les structures.
Pour exécuter notre programme on utilise les commendes :
cd/opt/tinyos-2.x/app/conexProtocol/:pour entrer les fichier de programme.
make micaz sim: simulateur de capteur de type micaz
Python test .py : pour exécuter le fichier de simulation en Python
Figure 4.5: La fenêtre de entrer le fichier de programme en terminal.
Le routage de tous les message envoyés et reçus dans le réseau est présenté dans le
fichier text.log .
Dans la figure ci-dessous les nœuds envoient et reçoivent les messages entre eux
pour sélectionner les nœuds de bordure.
Chapitre 4: Modélisation et Implémentation
59
Figure 4.6: La fenêtre présenté les résultats conclus de notre simulation et tous
les messages envoyés et reçus dans le réseau.
Cette fenêtre présente la table de routage des nœuds de la bordure.
Figure 4.7: La fenêtre présenté les nœuds de la bordure.
La figure ci-dessous montre les chemins sélectionnés par les nœuds pour déduire la
bordure de réseau.
Chapitre 4: Modélisation et Implémentation
60
Figure 4.8: la figure de la simulation pour sélections la bordure de réseaux de
capteur.
5. Conclusion
Dans ce chapitre, nous avons présenté l'environnement de simulation avec lequel
nous avons implémenté notre contribution, à savoir le tinyos et NesC. Nous avons
également définit un algorithme et ses paramètres de simulation afin d’émerger une
structure de réseau dans les le cas où le réseau est déployé aléatoirement.
Le cas étudié dans ce chapitre est un modèle simple, les résultats des analyses sont
présentés dans des fichiers de LOG et des graphes désignés par Python afin de valider
notre travail.
Conclusion Générale
62
Conclusion générale et perspectives
Les réseaux ad hoc trouvent des applications dans plusieurs domaines tels que les
communications dans un champ de bataille, la gestion de catastrophes naturelles, les
communications de groupes, etc. Récemment, ces réseaux attirent de plus en plus
d’attention grâce leurs avantages, mais il y a difficulté et un certain nombre de
problématiques doit être résolu.
Une problématique majeure dans les réseaux de capteurs, est le routage. Alors
plusieurs recherches ont été faites pour la conception de l’algorithme qui tient compte
de ce problème.
Dans ce mémoire nous allons chercher de proposer un algorithme d’hiérarchie pour
définir une structure dans ce genre de réseaux afin d’acheminer les données récoltées
vers la station de base. Le facteur le plus important qui doit être pris en considération
c’est la consommation des ressources, où ces dernières sont considérées comme une
ressource critique. Alors l’algorithme proposé doit assurer aussi une garantie de
grande vie de réseau. le fonctionnement de l'algorithme c'est comme AODV mais
cette fois ci nous choisissons plu au qu' une route, donc le déroulement est un peu
différent par rapport au AODV.
L'objectif c'est d'émerger une hiérarchie adaptée aux RCSF en prenant en compte
les exigences situés auparavant. Nous divisons cette tâche en quatre étape:
Détection de la Bordure du réseau.
Sélection des nœuds de segmentation .
Appliquer le Protocol AODV sur le réseau pour regrouper les capteurs.
Sélection les nœuds chef de chaque group de capteurs.
Pour atteindre de notre objectif, nous avons faire un étude générale sur les réseaux
de capteurs sans fil et leur problème de routage , et nous avons une étude détaillée sur
les protocoles de routage qui ont été proposés comme des solutions à ce problème
comme le protocole AODV ….
Afin de valider les améliorations apportées par notre proposition en termes de
prolongement de vie du réseau, nous avons simulé le fonctionnement de notre
algorithme dans le système d'exploitation TinyOS.
Conclusion Générale
63
Comme perspectives, nous allons Essai de terminer la réalisation de l'application
dans un bref délai, continuer à améliorer ce travail, et surtout la Sélection des nœuds
chef de chaque group de capteurs, et généraliser notre approche dans le web…etc.
Biographies et web sites
64
Biographies et web sites
[1] Mr SAHRAOUI belkheyr, Etude d'un protocole de routage basé sur les colonies
de Fourmis dans les réseaux de capteurs sans fil, Mémoire de fin d'études Pour
l'obtention du diplôme de Master en Informatique ,Université Abou Bakr Belkaid–
Tlemcen,2012-2013.
[2] LAOUID Abdelkader, L'auto-structuration dans les Réseaux de Capteurs Sans
Fil , Mémoire de Magistère en Informatique, Université Abderrahmane Mira de
Béjaïa, 2008-2009.
[3] Yaser Yousef, Routage pour la gestion de l'énergie dans les réseaux de capteurs
sans fil, Thèse de Doctorat Spécialité informatique, université de haute alsace, 2010.
[4] YOUCEF ZIANI, Etude comparative de méthodes de routage dans les Réseaux
de capteurs sans fil pour le domaine Résidentiel, mémoire présenté à l'université du
Québec à trois-riviéres, juin 2013.
[5] MOHAMMED BELBACHIR , Stratégie de tolérance aux pannes pour un
routage efficace dans les réseaux de capteurs ,Mémoire de fin d'études Pour
l'obtention du diplôme de Master en Informatique ,Université Abou Bakr Belkaid–
Tlemcen,2014
[6] Khaled BOUCHAKOUR, Routage hiérarchique sur les réseaux de capteurs sans
fil: Protocole khlch (K-hop Layered Clustering Hierarchy), MemoiRre Présenté pour
l'obtention d'un diplôme de magister en informatique, Ecole Nationale Supérieure de
l'Informatique (ESI),2012.
[7] ABDESSELAM Abdelhalim, BELOUATEK Mohammed
Conception d'un algorithme de routage basé sur l'heuristique du recuit simulé pour les
réseaux de capteurs à grande échelle , Mémoire de fin d'études Pour l'obtention du
diplôme de Master en Informatique ,Université Abou Bakr Belkaid– Tlemcen,2012-
2013.
[8] Tayeb LEMLOUMA, Le Routage dans les Réseaux Mobiles Ad Hoc .
Biographies et web sites
65
-tech-tech/infos/dico/d/high-sciences.com/magazines/high-http://www.futura [9]
. 1305/-routage
[10] Routage — Wikipédia.htm .
[11] Houari M AOUCHI, Routage avec Qualité de Service dans AODV, mémoire
Présenté pour obtenir le titre d'ingénieur d'état , Université Mouloud Mammeri de
Tiz ouzou,2008-2009.
[12] RAMDANI MOHAMED, Problèmes de sécurité dans les Réseaux de capteurs
avec prise en charge de l'énergie , mémoire de magister, université de saad dahlab de
Blida, Novembre 2013.
[13] YASINE YOUNES , Minimisation d'énergie dans un réseau de capteurs,
mémoire de magister, Université Mouloud Mammeri de Tiz ouzou,26-09-2012.
[14] Leila Imane NIAR, Analyse Graphique pour la surveillance dans un réseau de
capteurs sans fils (RCSF Simulateur : OMNET++),Mémoire Magister : Informatique,
option : Analyse, Commande et Surveillance des Systèmes, Juillet 2012.
.https://www.debian.org/index.fr.html ][15
[16] http://doc.ubuntu-fr.org/debian_ubuntu_comparaison].
[17] Christophe KELLE, VMware Infrastructure 3 , Exposé système et nouvelles
technologies réseau. Ingénieurs 2000 Filière Informatique et réseaux Université de
Marne-la-Vallée.
[18]Lesson 1: Getting Started with TinyOS and nesC ,Last updated April 8 2007
http://read.pudn.com./
https://fr.wikibooks.org/wiki/Programmation_Python/Introduction [19]
[20] Philp levis,David Gay, Tinyos Programming.