Université Echahide Hamma Lakhdar El-oued Faculté des ... · PDF filecapteurs...

77
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 : M r MEFTAH Charef din President M r OTHMANI Samir Examinateur M r LAOUID Abdelkader Rapporteur Année universitaire 2014 2015 le routage multi-chemin dans les réseaux de capteurs sans fil

Transcript of Université Echahide Hamma Lakhdar El-oued Faculté des ... · PDF filecapteurs...

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.