Telechargé par mekki benchakiri

17429784-Routage-Avec-QoS-Dans-AODV

publicité
Ministère de L'Enseignement Supérieur et de la Recherche Scientifique
Université Mouloud MAMMERI de TIZI-OUZOU
Faculté du Génie Electrique et d'Informatique
Département d'Informatique
Présenté pour obtenir le titre d’ingénieur d’état
Spécialité : INFORMATIQUE
Option : INFORMATIQUE INDUSTRIELLE
Thème
Routage avec Qualité de
Service dans AODV
Présenté par
Houari MAOUCHI
Encadreurs :
Mme
Mr
Nadia NOUALI
Nadir BOUCHAMA
Maitre de recherche CERIST
Attaché de recherche CERIST
Année 2008 -2009
In the Name of Allah, the Benificent, the Merciful
My prayer and my sacrifice and my life and my death
are surely for Allah,
Allah, the Lord of the worlds
Le Saint Coran
ii
DÉDICACES
A ma chère mère pour ses sacrifices depuis qu’elle
m’a mis au monde,
A la mémoire de mon père,
A ma tante Zhira, ma deuxième mère,
A mes frères et mes sœurs,
A mon cousin et mon ami Zoubir et son frère Merzak,
A toute ma grande famille,
A tous mes amis dont la liste est longue,
Enfin à tous ceux que j’aime et ceux qui m’aiment,
J’exprime mes sentiments les plus profonds
Et leur dédie ce modeste travail.
iii
REMERCIEMENTS
En premier lieu, je remercie le Bon Dieu de m’avoir
donné la force et le courage pour accomplir ce travail et
qui m’a procuré ce succès.
Mes très vifs remerciements vont à l’encontre de mes
encadreurs M eme Nadia NOUALI et Mr. Nadir BOUCHAMA, pour
avoir accepté de m’encadrer et de m’orienter tout au long de ce
travail, je les remercie une deuxième fois pour leur patience,
leur sympathie et leurs conseils.
Je
remercie
département
vivement
tous
d’Informatique de
les
enseignants
l’université
de
Mouloud
Mammeri de TIZI-OUZOU pour tous les efforts qu’ils ont
fournis toute au long de cette formation.
Je remercie également les membres du jury qui ont
accepté de juger ce travail.
Que toute personne qui, d'une manière ou d'une autre,
m’a aidé et encouragé à l'aboutissement de ce travail,
trouve ici l'expression de mes sincères reconnaissances.
iv
Table des matières
Table des Matières …...………………………………………………………………………. v
Table des Figures . . …………………………………………………………………………..viii
Liste des tableaux …………….……………………………………………………………… x
Introduction Générale ………………………………………………………………………..01
Chapitre I : Généralités sur les réseaux sans fil
1 introduction………………………………………………………………………………...04
2 Les réseaux sans fil … …………………………………………………………………...04
2.1 Historique ..………………………………………………………………………….04
2.2 Définition…………………………………………………………………………….05
2.3 Caractéristiques ……………………………………………………………………...05
2.4 Classification des réseaux sans fil ………………………………………………….... 05
2.4.1 Selon la zone de couverture……………………………………………………. 05
2.4.2 Selon le mode de fonctionnement ……………………………………………....06
2.4.3 Selon la topologie du réseau……………………………………………………. 08
3 Présentation de la norme 802.11…………………………………………………………... 09
3.1 Le modele de référence OSI ….…………………………………………………… 09
3.2 Les réseaux sans fil et le modèle OSI ………………………………………….........11
3.3 Le standard 802.11…..……………………………………………………………. 11
3.3.1 Couche physique ……………………………………………………………...11
3.3.2 la couche liaison de données ……………………………………………….. 12
3.3.2.1 la sous-couche LLC (Logical Link Control) ……..………………….………12
3.3.2.2 la sous-couche MAC (Medium Access Control) .. ………………………..… 12
3.4 Les différentes dérivées de la norme 802.11 …..…………………………………....16
4 Les réseaux mobiles ad hoc …………………………………………………………………17
4.1Définition……………………………………………………………………………..17
4.2 Modélisation………………………………………………………………………… 17
4.3Domaines d’application des réseaux ad hoc………………………….……………….. 18
4.4 Les caractéristiques des réseaux ad hoc ……….………………………………………18
Conclusion ……………………………………………………………………………………19
Chapitre II : Routage dans les réseaux mobiles ad hoc
1 Introduction …..……………………………………………………………………………21
2 Définitions…………..………………………………………………………………………21
3 Problématique du routage dans les réseaux mobile ad hoc ….………………………………22
4 Taxonomie des protocoles de routage dans les MANETs …...………………………………22
4.1 Selon l’architecture…………………………………………………………………… 23
4.1.4 Les protocoles de routage plat (ou uniformes) …….…………….……………...23
4.1.2 Les protocoles de routage hiérarchiques (ou non uniformes)…………………….24
4.2 Selon l’algorithme utilisé …..………….…………………………………………... . 25
4.3 Les catégories de protocoles de routage MANET…...…..…………………………… 25
4.3.1 les protocoles proactifs…………………………………………………………...25
4.3.2 Les protocoles réactifs…………………………………………………………... 26
4.3.3 Les protocoles hybrides …….……...…………………………………………….26
v
5 Description de quelques protocoles MANETs …………………………………………….. 26
5.1 OLSR…………………………………………………………………………………..27
5.2 TBRTF ………………………………………………………………………………...27
5.3 DSR……………………………………………………………………………………27
6 Etude détaillée du protocole AODV ………………………………………………………..28
6.1 Table de routage et paquets de contrôle …………..…………………………………….28
6.2 Numéro de séquence ……….………………………………………………………….30
6.3 Principe de fonctionnement ………...…………………………………………………..31
6.3.1 Découverte d'une route………………………………………………………….. 31
6.3.2 Maintenance des routes……..….………..………………………………………..32
6.3.3 Gestion de la connectivité locale….………….…………………………………....33
6.4 AODV : Avantages et inconvénients ………………….………………………………... 33
7 Autres protocoles…………………………………………………………………………....34
Conclusion………………………………………………………………………..…………34
Chapitre III : Qualité de service dans les réseaux mobiles ad hoc
1 Introduction……………………………………………………………………………….. 36
2 Définition de la Qualité de service………………………………………………………….36
3 Les métriques de la qualité de service …………………………………………………….. 36
3.1 La bande passante………………………………………………………………………37
3.2 Délai de bout en bout………………………………………………………………….. 37
3.3 La gigue : (variation du délai) ………….………………………………………………..37
3.4 La perte de paquets………….…………………………………………………………..37
4 Les besoins d’applications de la QoS………………………………………………………...38
5 Exemple de besoins de QoS : la voix sur IP (VoIP)…………………………………………38
5.1 Les paramètres de la voix sur IP………………………………………………………...38
5.1.1 Les différents échantillonnages……………………………………………………39
5.1.2 Le délai de bout en bout…..……………………………………………………….39
5.1.3 La gigue……………………………………………………………………………39
5.1.4 La perte de paquets……………...…………………………………………………40
6 La QoS dans Les réseaux mobiles ad hoc …...………………………………………………40
7 Solutions de QoS dans les MANETs ………………………………………………………. 41
7.1 Modèles de qualité de service ………………………………………………………...41
7.2 Solutions au niveau de la couche MAC ………………………………………………...42
7.2.1 Différenciation de services pour 802.11 …..……………………………………… 42
7.2.2 MACA/PR (Multihop Access Collision Avoidance with Piggyback Reservation)……………42
7.2.3 IEEE 802.11e………..…………………………………………………………… 42
7.3Protocoles de signalisation………………………………………………………………43
7.4 Routage avec QoS……...……………………………………………………………… 43
7.4.1 Objectifs du routage avec QoS…………………………………………………….44
7.4.2 Difficulté de routage avec QoS dans les MANETs ……………………………. 44
7.5 Protocole de routage avec QoS ……………………………………………………….44
Conclusion…………………………………………………………………………………...45
Chapitre IV : Conception
1 Introduction ………………………………………………………………………………...47
2 le routage AODV avec QoS………………………………………………………………...47
2.1 Estimation du délai dans les MANETs………..………………………………………...48
2.2 Estimation du délai à 1 saut radio……………………………………………………… 48
2.2.1 Détermination du délai dans la file d’attente…………………………………….48
vi
2.2.2 Détermination du délai de propagation………………………………………….50
2.3 Détermination du délai multi sauts…………………………………………………….52
3 Intégration dans AODV…………………………………………………………………….52
3.1 Extension de la RREQ …..……………………………………………………………..52
3.2 Extension des messages HELLO………………………………………………………..53
3.3 Mécanisme de routage AODV avec QoS……………………………………………….53
3.3.1Découverte des routes……………………………………………………………53
3.3.2 Maintenance des routes…………………………………………………………..54
3.4 Limitations …………………………………………………………………………….55
4 Diagramme de séquence…………………………………………………………………….57
5 Diagramme de classes……………………………………………………………………….57
Conclusion ……………………………………………………………………………………59
Chapitre V : Implémentation
1 Introduction ………………………………………………………………………………...61
2 Présentation d’AODV sous NS-2…………………………………………………………... 61
3 Présentation du protocole mac-802_11 sous NS-2 ………………………………………….62
4 Structure des nœuds AODV et AODV-D sous NS-2 ……………………………………..62
5 Implémentation d’AODV-D sous NS-2…………………………………………………...63
5.1 Estimation du délai au niveau de la couche MAC…………………………………… 64
5.1.1 Estimation de la bande passante libre sur un nœud…………………………... 64
5.1.2 Récupération du paramètre λ …………….…………………………………..66
5.1.3 Le délai dans la file d’attente R ………………………………………………67
5.1.4 Estimation du délai de propagation ;;;;…………………………………………67
5.1.5 Le délai à un saut … ;;……………………………………………………….69
6 Les modifications au niveau de la couche réseau…………………………………………….69
6.1Le format du paquet RREQ dans AODV-D ………………………………………… 69
6.2Le format du paquet RREP dans AODV-D…………………………………………...70
6.3 Contrôle d’admission ………………………………………………………………70
6.4 La probabilité de collision …….……………………………………………………...72
7 Les exigences de QoS……………………………………………………………………….73
Conclusion…………………………………………………………………………………….74
Chapitre VI : Simulation et discussion des résultats
1 Introduction………………………………………………………………………………...76
2 Intérêt et nécessité de la simulation………………………………………………………….76
3 Modèle de simulation………………………………………………………………………...76
3.1 Modèle de trafic…………………………………………………………………………77
4 Métriques de simulation mesurées…..………………………………………………………..78
5 Scénario de simulation……………….………………………………………………………78
6 Simulation et discussion ……………..………………………………………………………79
6.1 Délai de bout en bout…..……………………………………………………………….79
6.2 La variation de délai (la gigue) ………………………………………………………….80
6.3 La perte de paquets……………………………………………………………………..81
Conclusion…..…………………………………………………………………………………82
Conclusion générale et perspectives……………………………………………………………83
Bibliographie .…….…..…….…..………………………………….…………………………. 85
Annexes………………………………………………………………………………………..91
vii
Table des figures
1. 1 :Topologie totalement connectée
1 .2 : Topologie à station de base.
1.3: Topologie à routage interne.
1.4 Topologie hybride.
1.5: Classification des réseaux sans fil.
1.6 : Exemple de mode infrastructure.
1.7 : Exemple de mode ad Hoc.
1.8 : Le modèle de référence OSI.
1.9 : 802.11 et le modèle OSI.
1.10 : La couche PHYSIQUE dans le réseau sans fil.
1.11 : Étalement de Spectre à Séquence Directe DSSS.
1.12: Comparaison des technologies d’accès au canal radio.
1.13. Le problème du nœud caché et des nœuds exposés.
1.14 – Le mécanisme RTS/CTS.
1.15: La modélisation d'un réseau ad hoc.
2.1 : Modes de communication dans les réseaux.
2.2 : Taxonomie des protocoles de routage ad hoc.
2.3 : Routage plat.
2.4 : Routage hiérarchique.
2.5 : La propagation du paquet RREQ.
2.6 : Le chemin pris par RREP.
3.1 : Exemple de besoins de QoS.
3.2 : Solutions de QoS pour les réseaux ad hoc.
3.3 : Exemples de routage avec QoS.
4.1 : Modélisation d’un nœud 802.11 par une file M/M/1/K.
4.2 : Exemple de la bande passante libre sur deux nœuds d’un MANET.
4.3 : Découverte de routes dans AODV-D
4.4 : Chemin de RREP.
4.5 : L'organigramme d'exécution de AODV-D.
4.6 : L’organigramme d’exécution de RREQ pour AODV-D.
viii
4.7 : Diagramme de séquence d’AODV-D
4.8 : Diagramme de classes d’AODV-D
5.1 : Structure des nœuds AODV et AODV-D sous NS-2.
5.2 : Les méthodes appelées par AODV-D (découverte de route).
6.1 : Pile protocolaire mis en place
6.2 : Scenario de simulation utilisé.
6.3 :Délai de bout en bout du flux CBR1 avec AODV-D et AODV.
6.4 : Evolution de la gigue pour AODV.
6.5 : Evolution de la gigue pour AODV-D.
A.1 : Une simple utilisation de NS2.
A2 : Arborescence de dérivation des classes C++ du simulateur.
A3 : Arborescence des fichiers de la distribution NS.
A5 : exemple de fichier trace.
A.5 : Fenêtre de visualisation de NAM.
A.6 : Structure d’un nœud mobile sous NS-2.
ix
Liste des tableaux
1.1 Famille de IEEE 802 sans fil.
1.2 La famille d’IEEE 801.11.
2.1 Les principaux protocoles MANET.
2.2 Format du message RREQ.
2.3 Format du message RREP.
2.4 Format du message RERR.
3.1 : Les principaux codecs et leurs Vitesses d’échantillonnage.
3.2 : Les seuils du délai pour un codec G711.
3.3 :Les exigences de QoS pour la VoIP.
3.4 :Exemples de protocoles de routage avec QoS.
4.1 : Format du message RREQ dans AODV-D.
4.2 : Format du message HELLO dans AODV-D.
6.1. Paramètres de simulation utilisés.
6.2 : Paramètres de déroulement de la simulation.
6.3 : Taux de perte de paquets pour AODV-D et AODV standard.
A1 : Les principaux composants de NS-2.
A2 : Ltructure d’une ligne du fichier trace.
x
Introduction générale
On assiste ces dernières années à une importante évolution dans le domaine des
télécommunications, conduite par la commercialisation et l’émergence des appareils de
communications sans fil (tels que les téléphones cellulaires, les ordinateurs portables, les
assistants personnels, . . . etc.) et la convergence des réseaux fixes et mobiles. L’utilisateur
passe ainsi de l’âge de l’ordinateur personnel à l’âge du traitement de l’information à travers
plusieurs infrastructures. Il a accès à l’information n’importe où et n’importe quand.
En 1999, l'IEEE (Institute of Electrical and Electronics Engineers) a standardisé le protocole
d'accès au médium radio 802.11 visant à assurer la communication entre ordinateurs
personnels utilisant le médium radio. Aujourd'hui, le protocole IEEE 802.11 est largement
utilisé dans les réseaux locaux sans fil.
On peut distinguer deux modes de communication dans un réseau sans fil. Dans le
premier cas, toute transmission de données doit passer par un point fixe (nommé point
d’accès) et ce même si deux mobiles communicants sont proches. Cette entité particulière
joue le rôle de routeur à l’intérieur du réseau local sans fil et souvent de passerelle vers un
réseau filaire. Chaque point d’accès administre alors une zone géographique et assure
éventuellement la liaison avec d’autres zones, avec un réseau local filaire ou avec l’Internet.
Les réseaux cellulaires (GSM, GPRS, UMTS) peuvent être considérés comme étant une forme
particulière de réseau avec point d’accès.
Dans le second mode de communication, chaque mobile du réseau a la possibilité de
communiquer directement avec tous ses voisins, c’est-à-dire tous les nœuds capables de
recevoir le signal envoyé et de le comprendre. Chaque mobile peut se connecter, se déplacer
ou se déconnecter du réseau à tout moment. Il n’y a aucune infrastructure fixe à priori et les
mobiles n’ont aucune connaissance de leur environnement. Si chaque mobile d’un tel réseau a
la possibilité de router des paquets, il est alors possible de communiquer au delà de sa
distance d’émission. On parle alors de réseaux mobiles ad hoc ou MANET (pour Mobile Ad
hoc Network).
Les avantages qu’offre un réseau ad hoc le rendent plus adéquat pour le déploiement des
applications utilisées dans les situations critiques telles que la communication dans un champ
de bataille, dans les opérations de secours et la gestion des catastrophes en général.
Cependant, un tel réseau est subit à un nombre de contraintes qui rendent un tel
déploiement très complexe On peut citer essentiellement : les contraintes de médium radio, le
caractère fortement dynamique, et l’absence d’une administration centralisée.
En effet, Chaque nœud du réseau doit participer dans le routage des paquets à travers le
réseau, jouant ainsi le rôle d'un routeur et d’un terminal en même temps. Pour cela un
protocole de routage distribué est nécessaire.
Plusieurs protocoles de routage ont été proposés pour les réseaux mobiles ad hoc, ces
protocoles de routage peuvent être classifiés suivant la manière de création et de maintenance
de routes lors de l'acheminement selon plusieurs critères. Le groupe de travail MANET
(Mobile ad hoc NETwork) de l'IETF (Internet Engineering Task Force) se préoccupe de la
normalisation des protocoles ad hoc fonctionnant sous IP. Dans ce cadre, AODV, OLSR, DSR
sont actuellement l’objet d’une RFC grâce à leurs caractéristiques intéressantes, ces protocoles
fonctionnent en mode best effort. Cependant, ils ne permettent pas de garantir une qualité de
service (QoS).
-1xi
Pour certaines applications telles que les applications multimédia ou temps réel le
service best effort n’est pas du tout suffisant. De telles applications exigent des garanties en
terme de certains critères de qualité de service (un minimum de bande passante, un délai max
à ne pas dépasser.etc...). En effet, il semble important d’adapter les MANETs pour supporter
un certain niveau de QoS dans le but de déploiement des applications exigeantes.
Ce travail s'inscrit dans le cadre du projet adopté par le CERIST (Centre de Recherche sur
l’Information Scientifique et Technique) intitulé « Le pervasive computing pour l’aide à la
gestion de situations d’urgence et de catastrophes ».
La finalité du travail effectué dans ce mémoire est de faire une extension du protocole AODV
en le rendant sensible à une métrique de QoS, à savoir le délai de bout en bout.
Ce mémoire est organisé en six chapitres :
Le premier chapitre donne un état de l’art des réseaux sans fil et des différents concepts
liés à ce type de réseaux, ainsi qu’une description de la norme IEEE 802.11. Enfin, il précise
les notions de base des réseaux mobiles ad hoc et les principales caractéristiques des MANETs
ainsi que les contraintes qui en découlent.
Le deuxième chapitre traite les principes du routage dans les réseaux mobiles ad hoc. Il
s’intéresse plus précisément à la problématique du routage et les contraintes liées aux
MANETs. 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 troisième chapitre introduit le concept de qualité de service ainsi qu’un état de l’art
sur les solutions existantes, plus particulièrement le routage avec QoS dans les MANETs.
Le quatrième chapitre est consacré à la conception du protocole AODV-D qui est une
extension d’AODV en termes du délai, il décrit également la méthode d'estimation du délai
utilisée.
Le cinquième chapitre donne des détails de l’implémentation de ce qui a été conçu dans
le chapitre quatre.
Le sixième chapitre est consacré aux simulations et discussions des résultats.
Nous terminerons par une conclusion générale et quelques perspectives pour des travaux
futurs.
-2xii
Chapitre I
Généralités sur les réseaux sans fil
Chapitre I
Généralités sur les réseaux sans fil
Généralités sur les réseaux sans fil
1 Introduction
Les communications sans fil ont un rôle crucial à jouer au sein des réseaux informatiques.
Elles offrent des solutions ouvertes pour fournir de la mobilité ainsi que des services
essentiels là où l’installation d’une infrastructure n’est pas possible. Les réseaux sans fil
(Wireless Networks) constituent de plus en plus une technologie émergente permettant à ses
utilisateurs un accès à l’information et aux services électroniques indépendamment de leurs
positions géographiques. Le succès de ce type de réseaux ces dernières années est suscité par
un grand intérêt de la part des particuliers, des entreprises et du milieu industriel. En effet, ce
type de réseaux est perçu comme une nouvelle alternative complémentaire aux réseaux filaires
traditionnels [1].
Dans ce chapitre, nous allons parler de la technologie de communication sans fil utilisée
dans les réseaux mobiles, pour cela nous détaillons quelques principales notions nécessaires à
la compréhension de ces systèmes, ainsi qu’une présentation globale de la norme 802.11.
Ensuite, nous allons voir les classifications principales des réseaux sans fil et les différentes
technologies utilisées dans chaque catégorie, enfin le chapitre introduit le concept des réseaux
mobiles ad hoc, la définition, les caractéristiques, et les domaines d’application.
2 Les réseaux sans fil
2.1 Historique
Aux environs de 1940, la première ère de l'informatique moderne fit son apparition.
Rapidement, l'adaptation des technologies de télécommunications à l'informatique fut
incontournable. En 1957, le ministère de la défense américain crée l'agence pour les projets
de recherche avancée : ARPA (Advanced Research Projects Agency). A la fin des années 60 les
chercheurs de l'ARPA ont créé L'ARPANET, réseau destiné à relier entre elles les différentes
universités du pays, qui grâce à la standardisation du modèle TCP/IP (Transmission Control
Protocol/Internet) Protocol, évoluera vers l'Internet que nous connaissons actuellement.
Jusqu’à la fin des années 1980, la technologie sans fil a surtout été utilisée dans le cadre de
la radio, de la télévision ou des communications réservées à d’importants organismes comme
l’armée. C’est l’arrivée des téléphones cellulaires GSM (Global System for Mobile communications)
qui a offert à tous la possibilité de communiquer de n’importe où, avec n’importe qui.
En 1997, alors que l’attention est accaparée par le succès d’Internet, un événement est
passé inaperçu sauf pour quelques spécialistes et observateurs :l’adoption du standard IEEE
802.11 ou Ethernet sans fil. Exploitant la bande de fréquence de 2,4 GHz, le 802.11
plafonne à un débit de 2 Mbits/s au maximum. Ce précurseur est suivi de plusieurs
déclinaisons dont le célèbre Wi-Fi (Wireless Fidelity) qui connaît un grand succès. Il désigne les
différentes déclinaisons de la norme IEEE 802.11 qui permet à plusieurs ordinateurs de
communiquer sans fil en utilisant comme support les ondes radio. Les câbles disparaissent
enfin [5].
4
Chapitre I
2.4
Généralités sur les réseaux sans fil
Définition
Un réseau sans fil peut être considéré comme un système de transmission de données, dont
le but est d’assurer une liaison indépendante de l’emplacement des entités informatiques qui
composent le réseau [1]. Les réseaux sans fil sont basés sur une liaison utilisant des ondes
radioélectriques (radio et infrarouges) en lieu et place des câbles habituels.
Grâce aux réseaux sans fil, un utilisateur a la possibilité de rester connecté tout en se
déplaçant dans une zone géographique plus ou moins étendue.
Les deux termes ‘mobile’ et ‘sans fil’ sont souvent confondus, le terme sans fil désigne la
nature des liens utilisés dans l’interconnexion des différents composants du réseau, alors que
le terme ‘mobile’ désigne la possibilité de déplacement des utilisateurs du réseau suite à
l’utilisation des liens sans fil. En effet, on peut dire que tous réseau mobile est un réseau sans
fil, et le contraire n’est pas toujours vrais.
Il existe plusieurs technologies se distinguant d’une part par la fréquence d’émission utilisée
ainsi que le débit et la portée des transmissions. Les réseaux sans fil permettent de relier très
facilement des équipements distants d’une dizaine de mètres à quelques kilomètres.
2.4
Caractéristiques
L’utilisation d’une interface sans fil introduit nombres de différences par rapport à la
communication par câble.
Tout d’abord, le spectre radio, et donc la capacité disponible pour le transfert de données
sont limités par la réglementation. La bande de fréquence occupée par un réseau mobile ne
peut être étendue. Cette restriction limite également le débit disponible imposant la nécessité
d’une utilisation efficace du canal.
Ensuite, la qualité des liens radio peut varier avec le temps au gré des diverses interférences
et de la mobilité des usagers. Cette situation mène donc à un taux d’erreurs de transmission
plus important que sur un réseau filaire et surtout à un taux très fluctuant.
Une des différences majeures entre ces deux types de réseaux reste tout de même le
caractère dynamique d’un réseau sans fil. Le point d’accès d’une entité sur un réseau filaire est
fixe alors que dans le cas d’un réseau sans fil, l’usager peut se connecter depuis différents
lieux et peut même changer de point d’accès au cours de sa connexion. Le problème est alors
dans un premier temps de retrouver un utilisateur dans le réseau et donc un chemin
permettant de l’atteindre. Dans un deuxième temps, il faut pouvoir maintenir sa connexion de
façon transparente et ce, malgré sa mobilité et ses changements de zone de communication.
Un autre aspect important est que l’accès physique aux données d’un réseau sans fil est non
sécurisé. En effet, si dans le cas d’un réseau filaire on peut protéger les points d’accès et les
câbles reliant les différents postes, dans le cas d’un réseau sans fil, n’importe qui peut écouter
le réseau et donc récupérer les données transitant par l’interface air. Ceci va donc impliquer
l’utilisation de mécanismes de chiffrement et d’authentification afin d’assurer la
confidentialité des données [5].
2.4 Classification des réseaux sans fil
Les réseaux sans fil peuvent être classés selon divers critères :la zone de couverture, la
topologie et le mode de fonctionnement.
5
Chapitre I
Généralités sur les réseaux sans fil
2.4.1 Selon la zone de couverture
Une classification classique concerne l’étendue géographique, Ils sont divisés en quatre
classes.
a) Réseaux personnels sans fil (WPAN)
Le réseau personnel sans fil noté (WPAN pour Wireless Personal Area Network) concerne les
réseaux sans fil d'une faible portée : de l'ordre de quelques dizaines de mètres. Ce type de
réseau sert généralement à relier des périphériques (imprimante, téléphone portable, appareils
domestiques, ...) ou un assistant personnel (PDA) à un ordinateur sans liaison filaire ou bien à
permettre la liaison sans fil entre deux machines très peu distantes.
b) Réseaux locaux sans fil (WLAN)
Le réseau local sans fil (WLAN pour Wireless Local Area Network) est un réseau permettant
de couvrir l'équivalent d'un réseau local d'entreprise, soit une portée d'environ une centaine
de mètres.
c) Réseaux métropolitains sans fil (WMAN)
Le réseau métropolitain sans fil (WMAN pour Wireless Metropolitan Area Network) est connu
sous le nom de Boucle Locale Radio (BLR). Les WMAN sont basés sur la norme IEEE
802.16. La boucle locale radio offre un débit utile de 1 à 10 Mbit/s pour une portée de 4 à 10
kilomètres, ce qui destine principalement cette technologie aux opérateurs de
télécommunication.
d) Réseaux étendus sans fil (WWAN)
Le réseau étendu sans fil (WWAN pour Wireless Wide Area Network) est également connu
sous le nom de réseau cellulaire mobile. Il s'agit des réseaux sans fil les plus répandus puisque
tous les téléphones mobiles sont connectés à un réseau étendu sans fil.
Les différentes technologies utilisées dans chaque catégorie et leurs caractéristiques sont
regroupées dans le tableau 1.1[20].
Catégorie
Standard
Technologies
WPAN
IEEE 802.15
Bluetooth
HomeRF
Zigbee
IR(infrarouge)
quelques dizaines
de mètres
WLAN
IEEE 802.11
Wifi
HyperLAN2
WMAN
IEEE 802.16
WiMax
WWAN
IEEE 802.20
GSM
GPRS
UMTS
une centaine
de mètres
quelques dizaines une centaine
de kilomètres
de kilomètres
<1 Mbps
2 à 54 Mbps
Jusqu'à 70 Mbps
Point à point
Équipement à
équipement
Réseau
d'entreprise
Couverture
Débit
Applications
10 à 384
Kbps
Fixe, accès au GSM
dernier kilomètre PDA...
Tab 1.1 : La famille de l’IEEE 802 sans fil.
6
Chapitre I
Généralités sur les réseaux sans fil
2.4.2 Selon la topologie du réseau
Une deuxième classification moins classique consiste à classifier les réseaux sans fil suivant la
topologie et l’infrastructure utilisée.
utilisée. Les topologies que l’on peut identifier sont les suivantes
[9] :
• Topologie totalement connectée
Tous les nœuds du réseau s'entendent et il n'y a donc nul besoin de protocole de Routage
(Figure 1.1).
Lien sans fil
Nœud
Fig. 1 .1 Topologie totalement connectée
• Topologie à station de base
Ce modèle met en œuvre une station de base qui centralise les communications entre les
nœuds du réseau. L'unique moyen de communication pour un nœud est de passer par la
station de base (Figure : 1.2).
Fig. 1.2
1. : Topologie à station de base.
• Topologie à routage interne
Dans cette architecture, les nœuds ne s'entendent pas tous. Le réseau se base sur un
routage interne entre ses membres (Figure
(Fig 1.3).
Fig. 1.3:
1. Topologie à routage interne.
7
Chapitre I
Généralités sur les réseaux sans fil
• Topologie combinée ou hybride
Consiste à un mélange de type de réseaux, combinant une architecture filaire avec des réseaux
sans fil (Figure : 1.4).
Liens sans fil
Lien filaire
Fig. 1.4: Topologie hybride
2.4.3 Selon le mode de fonctionnement
Les réseaux sans fil, peuvent être classés en deux classes : les réseaux avec infrastructure et
les réseaux sans infrastructure. Le standard IEEE 802.11 définit les deux modes de
fonctionnement (figure 1.5).
Les réseaux sans fil
Les réseaux avec infrastructure
Les réseaux sans infrastructure
Fig. 1.5: Classification des réseaux sans fil
a)Les réseaux avec infrastructure
Dans ce cas, toute transmission de données doit passer par un point (nommé point
d'accès) et ce même si deux mobiles communicants sont proches. Cette entité particulière
joue le rôle de routeur à l’intérieur du réseau sans fil et souvent de passerelle vers un réseau
filaire. Chaque point d'accès administre alors une zone géographique et assure la liaison avec
d'autres zones, avec un réseau filaire ou avec internet (fig1.6). Les réseaux cellulaires (GSM,
UMTS) peuvent être considérés comme étant une forme particulière de réseau avec point
d'accès.
8
Chapitre I
Généralités sur les réseaux sans fil
Point d’accès
Réseaux statiques
Zone de couverture
Unités mobiles
Fig. 1.6 : Exemple de mode infrastructure.
b) Les réseaux sans infrastructure ou ad hoc
Dans ce mode de communication, chaque mobile (appelé aussi nœud) du réseau a la
possibilité de communiquer directement avec tous ses voisins, c'est à dire tous les nœuds
capables de recevoir le signal envoyé et de le comprendre. Chaque nœud peut se connecter,
con
se
déplacer ou se déconnecter du réseau a tout moment. Il n'y a aucune infrastructure. On parle
alors des réseaux ad hoc ou MANET (Mobile
(
Ad hoc NETwork).
Fig. 1.7 : Exemple de mode ad Hoc.
3 Présentation de la norme 802.11
3.1 Le model de référence OSI
Proposé en 1984 par l’ISO (International Standards Organisation), le modèle OSI (Open
(
System
Interconnection)) est devenu une norme internationale servant de guide aux mises en réseau .Ce
modèle de référence n’est pas une architecture de réseaux parce qu’il ne spécifie pas
réellement les services et protocoles utilisés dans chaque couche ; il décrit simplement ce que
chaque couche doit faire. Ainsi le modèle n’est rien de moins qu’une pile de couches exerçant
chacune des fonctions bien définies : ces couches sont au nombre de 7 comme l’illustre la
figure 1.8 [3].
9
Chapitre I
Généralités sur les réseaux sans fil
• La couche physique : s’occupe de la transmission des bits de façon brute sur un canal
de communication .Sa conception doit être telle que l’on soit sûr que, lorsqu’un côté
envoie un bit à 1, on reçoit de l’autre côté un bit à 1, et non un bit à 0.
• La couche liaison de données : sa tâche est de prendre un moyen de transmission brut
et de le transformer en une ligne qui parait exempte d’erreur de transmission à la couche
réseau.
• La couche réseau : permet de gérer le sous réseau de communication dont elle doit
connaître la topologie .Cette gestion comprend : le contrôle de flux et le routage de
paquets ainsi que leurs adressage.
• La couche transport : sa fonction de base est d’accepter des données de la couche
session de les découper en plus petite unités, de les passer à la couche réseau et de
s’assurer que tous les morceaux arrivent correctement de l’autre côté .
• La couche session : permet à des utilisateurs travaillant sur différentes machines
d’établir des sessions entre eux (gestion du dialogue …etc.).
• La couche présentation : à la différence des autres couches, celle-ci s’intéresse à la
syntaxe et à la sémantique de l’information transmise.
• La couche application : joue le rôle d’interface pour l’accès des applications aux services
du réseau. [3].
Fig.1.8 : le modèle de référence OSI.
APDU : Application Protocol Data Unit.
PPDU : Presentation Protocol Data Unit.
SPDU : Session Protocol Data Unit.
TPDU : Transport Protocol Data Unit.
10
Chapitre I
Généralités sur les réseaux sans fil
3.2 Les réseaux sans fil et le modèle OSI
Le modèle OSI est conçu initialement pour répondre aux besoins des réseaux filaires, les
réseaux sans fil ont des caractéristiques différentes des réseaux filaires (mobilité, qualité du
signal…). Malgré ces particularités, le passage au monde sans fil a gardé le principe de
conception en couche du modèle OSI .Comme tous les standards IEEE 802, le standard
802.11 se concentre sur les deux premiers niveaux, la couche physique et la couche liaison de
données.
Fig. 1.9 :802.11 et le modèle OSI.
3.3 Le standard IEEE 802.11
Normalisé par l’IEEE en 1997, le protocole 802.11 est le standard le plus répandu dans le
monde des réseaux sans fil. Grâce a sans succès commercial, il est devenu non seulement le
dominant dans le mode infrastructure mais aussi dans les travaux et publications scientifique
sur les réseaux ad hoc.
Le standard 802.11 s'attache à définir les couches basses du modèle OSI pour une liaison
sans fil utilisant des ondes électromagnétiques, c'est-à-dire :
• La couche physique :(notée parfois couche PHY)
• La couche liaison de données : constituée de deux sous-couches : le contrôle de la liaison
logique (Logical Link Control, ou LLC) le contrôle d'accès au support (Media Access Control,
ou MAC).
La couche physique définit la modulation des ondes radioélectriques et les caractéristiques
de la signalisation pour la transmission de données, tandis que la couche liaison de données
définit l'interface entre le bus de la machine et la couche physique, notamment une méthode
d'accès proche de celle utilisée dans le standard Ethernet et les règles de communication entre
les différentes stations. La norme 802.11 propose en réalité trois couches physiques [5].
3.3.1 Couche physique
Initialement, le standard IEEE 802.11 admet les trois spécifications différentes de la
couche physique : FHSS (Frequency Hoping Spread Spectrum), DSSS (Direct Sequence Spread
Spectrum) et IR (InfraRed), auxquelles 802.11a a rajouté la technique OFDM (Fig 1.10) [4].
11
Chapitre I
Généralités sur les réseaux sans fil
Couches supérieures
802.11
2 Mbps
802.11b
11 Mbps
802.11a/g
54Mbps
FHSS
DSSS
OFDM
Infra
Rouge
PHY
Fig 1.10 : La couche PHYSIQUE dans le réseau sans fil.
• FHSS : (Étalement de Spectre avec Saut de Fréquences)
FHSS (Frequency Hopping Spread Spectrum) est Utilisée dans les réseaux 802.11b et d’autres
technologies sans fil, cette technologie utilise la technique de saut de fréquence. Son principe
est de diviser la bande passante en 79 sous-canaux de 1 MHz de largeur de bande offrant
chacun, un débit allant de 1 à 2 Mbps avec un codage binaire. L’émetteur et le récepteur
s’accordent sur une séquence de sauts de fréquence porteuse et les données sont envoyées
successivement sur les différents sous canaux en évitant (de manière temporaire) d’utiliser les
sous canaux fortement perturbés. Chaque communication sur le réseau s’effectue suivant un
schéma de saut différent et cela de façon à minimiser le risque que deux émissions utilisent le
même sous canal [1].
• DSSS : (Étalement de Spectre à Séquence Directe)
Le DSSS (Direct Sequence Read Spectre) est une couche physique utilisant une technique radio.
C’est une technologie de transmission par spectre étalé, où la porteuse est successivement
modulée par l’information et par un code pseudo aléatoire de débit beaucoup plus important.
Le signal résultant occupe donc une bande très importante.
Dans cette technique, la bande des 2.4 GHz est divisée en 14 sous-canaux de 22MHz (fig
1.11). Cette technique offre des débits de transmission allant de 5.5 à 11 Mbps. Avec comme
avantages :
– Une densité spectral faible du signal transmis, car ce dernier est large bande.
– Une sécurité assurée, tant que le code d’étalement reste secret [1].
Fig. 1.11 : Étalement de Spectre à Séquence Directe DSSS
12
Chapitre I
Généralités sur les réseaux sans fil
• OFDM : (Multiplexage par Répartition Orthogonale de la Fréquence)
La technologie OFDM (Orthogonal Frequency Division Multiplexing) représente une technique
de modulation numérique des signaux, utilisée entre autres pour les systèmes de transmissions
mobiles à haut débit de données. Elle consiste à répartir le signal sur un grand nombre de
sous porteuses orthogonales modulées individuellement à bas débit.
Ainsi, des normes telles que 802.11a et 802.11g peuvent offrir des débits théoriques jusqu’à
54 Mbps, là où la norme 802.11b qui n’est pas OFDM, se limite à 11 Mbps [1].
• Infrarouge
En utilisant un faisceau de lumière, ce mode est basé sur l’utilisation des mêmes fréquences
que celles utilisées sur les fibres optiques. Malgré que la lumière infrarouge possède une large
bande passante offrant par conséquent des débits relativement importants, la portée de ce
type de communications reste faible. En revanche, les infrarouges peuvent pénétrer à travers
le verre, mais pas à travers des obstacles opaques, ce qui représente un avantage en terme de
sécurité. Mais, comme les réseaux infrarouges sont sensibles aux interférences lumineuses, la
coupure du faisceau lumineux implique l’interruption de la transmission.
3.3.2 La couche liaison de données
La couche liaison de données a pour objectif de réaliser l’acheminement sans erreur de
blocs d’informations sur la liaison physique c’est à dire sur le circuit de données reliant deux
commutateurs adjacents. Afin d’effectuer une transmission correcte, la couche liaison de
données attache des en-têtes et des caractères aux paquets de données à transmettre. Dans ce
cas, les messages échangés sont appelés trames MAC ou MPDU (MAC Protocol Data Unit).
Ceux ci seront encapsulés par la suite dans des trames de niveau physique appelées PLCPPDU (Physical Level Control Protocol-PDU).
3.3.2.1 La sous-couche LLC (Logical Link Control)
La sous-couche LLC (spécification IEEE 802.2), qui est indépendante des mécanismes
d’accès au support physique, représente une partie de la couche de liaison de données. Elle
présente les caractéristiques de fiabilité grâce au séquencement et à la retransmission des
données en cas de détection d’erreurs.
3.3.2.2 La sous-couche MAC (Medium Access Control)
La sous-couche MAC, permet à un hôte de communiquer avec plusieurs périphériques en
même temps. En effet, la sous-couche MAC est nécessaire pour gérer les accès au canal de
communication, car l’un des problèmes majeurs des réseaux sans fil consiste à savoir qui a le
droit d’émettre à un moment donné [1]. La norme IEEE 802.11 définit deux modes d’accès
au médium au niveau MAC :
• Le mode centralisé (Point Coordination Function, PCF) : peut être utilisé lorsque les
communications sont gérées par une station de base fixe.
• Le mode distribué (Distributed Coordination Function, DCF) : utilisé à la fois pour les
communications via une station de base et pour les communications directes de mobile à
mobile. C’est ce dernier mode qui est utilisé dans le cas des réseaux ad hoc [17].
Des protocoles ont été proposés afin de résoudre ces problèmes d’accès. Dans ce qui suit
nous présentons un échantillon de ces techniques dans le cadre des réseaux sans fil [1].
13
Chapitre I
Généralités sur les réseaux sans fil
• FDMA : (Accès Multiple par Répartition en Fréquence)
L’idée est de diviser le spectre en canaux et d’affecter à chaque interlocuteur ou chaque
message (un à la fois), un canal fréquentiel. Cette affectation est alors basée sur le principe du
premier arrivé, premier servi ou FIFO (First In First Out).
En pratique, le message utilisé sert à moduler une fréquence porteuse (à l’origine en
amplitude, parfois avec suppression de porteuse) et les différentes porteuses ainsi modulées
sont juxtaposées. Du côté du récepteur, des filtres sélectifs isolent les différentes porteuses
démodulées et si les fréquences porteuses sont parfaitement connues ou restituées, une
démodulation cohérente (synchrone) est effectuée [1].
• TDMA (Accès Multiple par Répartition dans le Temps)
Dans cette technique, les canaux sont multiplexés sous la forme d’intervalles de temps de
telle façon que chaque correspondant ou chaque message occupe la totalité de la bande mais
pendant un temps très court (accès à toute la bande passante allouée pour le système de
transmission). Avec le TDMA, les échantillons issus d’un message sont intercalés avec ceux
des autres. Ainsi, le tri de ses échantillons se fait du côté du récepteur.
Le fait que le TDMA présente une gestion complexe, il faut ajouter des bits de signalisation
et de synchronisation, mais cette technique offre un coût réduit pour la station de base, ainsi
qu’une souplesse de modification sur les débits transmis [1].
• CDMA (Accès Multiple par Répartition en Code)
Ici, tous les utilisateurs accèdent simultanément à la totalité de la bande, ils sont distingués
à la réception grâce à des codes pseudo-aléatoires personnels. Ce qui permet d’avoir une
bonne immunité au bruit et la possibilité d’utiliser la diversité de fréquences, ainsi que le
cryptage. La technique CDMA utilise des modulations à étalement de spectre qui peuvent
être réalisées par saut de fréquence ou par séquence directe. En effet, le CDMA est très
souple au niveau des débits transmis, mais relativement complexe car elle peut nécessiter une
égalisation à la réception et un contrôle de la puissance d’émission [1].
La figure 1.12 montre une comparaison entre les différentes techniques d’accès au canal
radio décrites précédemment :
Fig. 1.12: Comparaison des technologies d’accès au canal radio.
14
Chapitre I
•
Généralités sur les réseaux sans fil
CSMA/CA (Accès
Accès Multiple avec Écoute de Porteuses/Évitement de Collisions)
Collisions
Le CSMA/CA est une technique d’accès au médium utilisée dans les réseaux sans fil IEEE
802.11. Elle permet de traiter les problèmes des stations cachées et des stations exposées
expos
illustrés par la figure 1.13,, et d’éviter les collisions en utilisant le principe appelé évitement de
collisions (Collision Avoidance).
A
B
C
A
B
C
D
Fig.1.13. Le problème du nœud caché et des nœuds exposés.
Dans cette technique, chaque nœud (souhaitant émettre des données) doit écouter le canal
avant de tenter d’obtenir l’accès. Si le canal est occupé le nœud doit attendre la fin de la
transmission en cours pour avoir le droit d’accès au médium. Lorsque le
le canal devient libre,
avant toutes choses, il faut qu’il le reste pour une période DIFS (DCF Inter-Frame
Inter
Space), si le
canal reste libre durant le DIFS alors les nœuds qui veulent émettre choisissent un temps
de temporisation appelé backoff [1] ; Le backoff est choisit au hasard dans un intervalle appelé
Contention Window (CW)qui est par défaut [0 ;31] ; avec un time slot de 20 µs, le backoff va donc
être compris entre 0 et 620 µs. et la taille de la fenêtre va doubler afin de diminuer les chances
que de telles collisions se rép
pètent. La borne inférieure de la Contention Window est toujours
zéro, et la borne supérieure
rieure (dont les valeurs autorisées
autoris es par la norme ne sont que des
puissances de 2 moins 1) va évoluer
oluer entre les valeurs CWmin et CWmax définies par la
norme [15].
Lorsque la temporisation expire, si le canal est inoccupé, ils peuvent commencer l’envoi de
ses paquets. Dans le cas de plusieurs nœuds qui veulent accéder au canal, celui qui a choisi la
temporisation la plus courte est donc celui qui gagne le droit d’accès et les autres doivent
attendre simplement la fin de la transmission pour avoir le droit de tenter à nouveau l’accès
au médium [1].. Le mécanisme de backoff limite les risques de collision mais ne les supprime
pas complètement .due à cette insuffisance le 802.11
802.11 propose l’utilisation du mécanisme
RTS/CTS (figure.1.14) [4].
Fig. 1.14
1 – Le mécanisme RTS/CTS.
15
Chapitre I
Généralités sur les réseaux sans fil
Un nœud vérifie si le médium est libre. Si le médium est occupé, l’émetteur attend qu’il se
libère, puis attend un temps aléatoire avant d’émettre. Si personne n’est en train d’émettre, le
nœud envoie un message de type RTS (Request To Send) contenant l’adresse de destination et
la durée de la transmission pour demander la parole. Les autres nœuds savent donc que le
médium sera occupé pendant cette durée. Le destinataire répond avec un message de type
CTS (Clear To Send) qui indique qu’il est prêt à recevoir les données sans aucun risque de
collision.
Chaque paquet doit être acquitté et si aucun acquittement n’est reçu, le paquet est
retransmis. Il faut noter que le temps qui sépare un paquet de données de son acquittement
est appelé SIFS (Short Inter frame Space).
Une autre fonction importante appelée écoute de la porteuse virtuelle fournie par le vecteur
NAV (Network Allocation Vector). Le NAV représente une minuterie indiquant la durée
pendant laquelle le médium sera réservé. Chaque nœud fixe le NAV à sa durée d’utilisation du
médium, en incluant les trames nécessaires à la terminaison de l’opération en cours [1].
3.4 Les différentes dérivées de la norme 802.11
La norme IEEE 802.11 est la norme initiale offrant des débits de 1 ou 2 Mbps .Des
révisions ont été apportées à la norme originale afin d'optimiser le débit (c'est le cas des
normes 802.11a, 802.11b et 802.11g, appelées normes 802.11 physiques) ou bien préciser des
éléments afin d'assurer une meilleure sécurité ou une meilleure interopérabilité. D’autres
normes sont orientées vers l’amélioration de la qualité de service (QoS) tel que 802.11 e.
Le tableau (tab 1.2) représente les principales dérivées de la norme 802.11 et leurs
caractéristiques :
Norme
802.11
802.11a
802.11b
802.11e
802.11f
802.11g
802.11h
802.11i
caractéristiques
-Date de normalisation : 1997
-Bande de fréquence : 2.4 GHz
-Débit : théorique: 2 Mbps, réel:<1 Mbps
-Portée théorique : 100 m
-Date de normalisation : 1999
-Bande de fréquence : 5 GHz
-Débit : théorique: 54 Mbps, réel:30 Mbps
-Portée théorique : 50 m
-Spécificité: 8 canaux radio
-Date de normalisation : 1999
-Bande de fréquence : 2.4 GHz
-Débit : théorique: 11 Mbps, réel:6 Mbps
-Portée théorique : 100 m
-Spécificité: 3 canaux radio
Amélioration de la qualité de service (niveau MAC) pour le support
audio et vidéo.
Interopérabilité entre les points d'accès
-Date de normalisation : 2003
-Bande de fréquence : 2.4 GHz
-Débit : théorique: 54 Mbps, réel:30 Mbps
-Spécificité: compatibilité 802.11b
Adaptation de 802.11a aux normes d'émissions électromagnétiques
Européennes.
Amélioration de la sécurité des transmissions sur les bandes de
fréquences 2.4 GHz et 5 GHz.
16
Chapitre I
802.11n
802.11k
802 .11r
Généralités sur les réseaux sans fil
-Date de normalisation : 2006
-Débit : théorique: 500 Mbps
-Implémente la technologie MIMO (Multiple Input Multiple Output)
Apporte des améliorations dans le domaine de la mesure des ressources radio,
but : d’arriver à une meilleure gestion et la maintenance des WLAN.
-Date de normalisation : 2008
-Amélioration des performances de la VoIP (Voice over IP)
Tab 1.2 –la famille de IEEE 801.11.
4 Les réseaux mobiles ad hoc
L'évolution récente de la technologie dans le domaine de la communication sans fil et
l'apparition des unités de calculs portables (les laptops par exemple), poussent aujourd'hui les
chercheurs à faire des efforts afin de réaliser le but des réseaux : "l'accès à l'information
n'importe où et n'importe quand".
Le concept des réseaux mobiles ad hoc essaie d'étendre ces notions de la mobilité à toutes
les composantes de l'environnement. Ici, contrairement aux réseaux basés sur la
communication cellulaire, aucune administration centralisée n'est disponible, ce sont les hôtes
mobiles elles-mêmes qui forment, d'une manière ad hoc, une infrastructure du réseau.
Aucune supposition ou limitation n'est faite sur la taille du réseau ad hoc, le réseau peut
contenir des centaines ou des milliers d'unités mobiles, voire des centaines de milliers.
Les réseaux ad hoc sont idéals pour les applications caractérisées par une absence (ou la
non fiabilité) d'une infrastructure préexistante, telles que les applications militaires et les
autres applications de tactique comme les opérations de secours (incendies, tremblement de
terre..) et les missions d'exploration.
4.1 Définition
Dans le RFC 2501[10] de IETF (Internet Engineering Task Force), qui représente l’organisme
responsable de l’élaboration de standards pour Internet, définit les réseaux mobiles ad hoc
(appelés généralement MANETs pour Mobiles Adchoc NETwork) de la manière suivante :
" Un réseau ad hoc est un système autonome de plates-formes mobiles (par exemple un
routeur interconnectant différents hôtes et équipements sans fil) appelées nœuds qui sont
libres de se déplacer aléatoirement et sans contrainte. Ceci provoque des changements rapides
et prédictibles de la topologie du réseau. Ce système peut fonctionner d’une manière isolée ou
s’interfacer à des réseaux fixes au travers de passerelles. Dans ce dernier cas, un réseau ad hoc
est un réseau d’extrémité".
4.2 Modélisation
Un réseau mobile ad hoc peut être modélisé par un graphe Gt = (Vt , Et ) où :
Vt : représente l'ensemble des nœuds (i.e. les unités ou les hôtes mobiles) du réseau.
Et : modélise l'ensemble des connections qui existent entre ces nœuds. (Figure 1.15).
Si e = (u, v) ∈ Et , cela veut dire que les nœuds u et v sont en mesure de communiquer
directement à l'instant t [6].
17
Chapitre I
Généralités sur les réseaux sans fil
Fig. 1.151.1 La modélisation d'un réseau ad hoc.
4.3 Domaines d’application des réseaux ad hoc
Les premières applications des réseaux ad hoc concernaient les communications et les
opérations dans le domaine militaire. Cependant, avec l’avancement des recherches dans le
domaine des réseaux et l’émergence des technologies
technologies sans fil (ex : Bluetooth, IEEE 802.11 et
Hiperlan) ; d’autres applications civiles sont apparues. On distingue [7] :
• Les services d’urgence : opération de recherche et de secours des personnes,
tremblement de terre, feux, inondation, dans le but de remplacer l’infrastructure filaire.
• Le travail collaboratif et les communications dans des entreprises ou bâtiments :
dans le cadre d’une réunion ou d’une conférence par exemple.
• Home network : partage d’applications et communications des équipements mobiles.
m
• Applications commerciales : pour un paiement électronique distant (taxi) ou pour
l’accès mobile à l’Internet, où service de guide en fonction de la position de l’utilisateur.
• Réseaux de senseurs : pour des applications environnementales (climat, activité
ac
de la
terre, suivi des mouvements des animaux, . . . etc.) ou domestiques (contrôle des
équipements à distance).
• Réseaux en mouvement : informatique embarquée et véhicules communicants.
D'une façon générale, les réseaux ad hoc sont utilisés dans
dans toute application où le
déploiement d'une infrastructure filaire est trop contraignant, soit parce que difficile à mettre
en place, soit parce que la durée d'installation du réseau ne justifie pas de câblage à demeure.
4.4 Les caractéristiques
ctéristiques des réseaux ad hoc
Les MANET ont plusieurs caractéristiques particulières [10] :
• Une topologie dynamique : les nœuds sont libre de se déplacer arbitrairement, ce qui
fait que la topologie du réseau peut changer aléatoirement et rapidement n’importe quel
moment,, et peut être constituée à la fois de liaisons unidirectionnelles ou
bidirectionnelles.
• Liaisons à débit variable et à bande passante limitée : les liaisons sans fil auront
toujours une capacité inférieure à leurs homologues filaires. En plus, le débit
d
réel des
communications sans fil après avoir déduit les effets des accès multiples, du bruit et des
interférences, etc., est souvent inférieur au débit de transfert maximum de la liaison
radio.
• Utilisation limitée de l'énergie : Une partie des nœuds d'un MANET voire
l'ensemble des nœuds, peut reposer sur des batteries ou un autre moyen limité pour
leur énergie .Pour
Pour ces nœuds, le plus important est sans doute de mettre en place
pl
des
critères d'optimisation
tion pour la conversation de l’énergie.
18
Chapitre I
Généralités sur les réseaux sans fil
• Sécurité physique limitée : Les réseaux sans fil sont généralement plus sensibles aux
menaces physiques que les réseaux câblés. Les techniques existantes pour la sécurité des
liaisons sont souvent appliquées au sein des réseaux sans fil pour réduire les risques
d'attaques. Notons cependant un avantage dans le fait que le contrôle des réseaux
MANET soit décentralisé ajoute à sa robustesse, contrairement aux problèmes pouvant
survenir sur les points centraux dans les approches plus centralisées [10].
• L'absence d'infrastructure : Les réseaux ad hoc se distinguent des autres réseaux
mobiles par la propriété d'absence d'infrastructures préexistante et de tout genre
d'administration centralisée. Les hôtes mobiles sont responsables d'établir et de
maintenir la connectivité du réseau d'une manière continue [8].
Conclusion
L’évolution rapide de la technologie de télécommunication sans fil, a permet la
manipulation de l’information à travers des unités de calculs portables. Ces unités ont des
caractéristiques particulières et accèdent au réseau à travers une interface de communication
sans fil. La mobilité et le nouveau mode de communication utilisé, engendrent de nouvelles
caractéristiques propres à l’environnement mobile. Ces caractéristiques nous obligent à
changer la vision classique aux problèmes liés aux différentes stratégies de routage proposées
pour les réseaux filaires, ces stratégies deviennent plus en plus complexes quand il s’agit d’un
réseau ad hoc.
Les systèmes de communication cellulaire sont basés essentiellement sur l'utilisation des
réseaux filaires (tel que Internet) et la présence des stations de base qui couvrent les
différentes unités mobiles du système. Les réseaux mobiles "ad hoc" sont à l'inverse, des
réseaux qui s'organisent automatiquement de façon à être déplorable rapidement, sans
infrastructure fixe, et qui doivent pouvoir s'adapter aux conditions de propagation, aux trafics
et aux différents mouvements pouvant intervenir au sein des nœuds mobiles.
Dans ce chapitre, nous avons présenté plusieurs concepts de bases liés aux réseaux sans fil,
notamment la norme IEEE 802.11 et les concepts des réseaux ad hoc.
Dans le prochain chapitre nous allons étudier le concept de routage dans les réseaux
mobiles ad hoc, et une description de quelques protocoles de routage MANET
particulièrement le protocole AODV.
19
Chapitre II
Routage dans les réseaux mobiles ad hoc
Chapitre II
Routage dans les réseaux mobiles ad hoc
Routage dans les réseaux mobiles ad hoc
1 Introduction
À l’inverse d’un réseau de télécommunication classique, L’architecture d’un réseau mobile
ad hoc étant caractérisée par une absence d’infrastructure fixe préexistante, il doit s’organiser
automatiquement de façon à être déployable rapidement et pouvoir s’adapter aux conditions
de propagation, au trafic et aux différents mouvements des unités mobiles.
Le principe du routage dans les réseaux avec infrastructure repose sur le fait que la source
transmet un datagramme à une destination en l’envoyant préalablement au routeur le plus
proche. Le paquet transite dans le réseau de routeur en routeur jusqu'à ce qu’il soit routé
directement sur le destinataire. Or dans les réseaux mobiles ad hoc, ce système ne peut être
appliqué. La notion de routeur n’existe pas et ce sont les terminaux eux même qui doivent
prendre en charge le routage des paquets. Chaque nœud est susceptible d'être mis à
contribution pour participer au routage et retransmettre les paquets ; tout nœud joue ainsi le
rôle de station et de routeur [17].
MANET (Mobile ad hoc NETwork) [10] est un groupe de travail au sein de l’IETF
(Internet Engineering Task Force) qui a émergé du groupe de travail « mobile IP». Le groupe
MANET se concentre sur les protocoles de routage dans les réseaux mobiles ad hoc et se
propose de standardiser des protocoles de routage au niveau IP. Les protocoles de routage
doivent être totalement distribués, c'est à dire qu'aucune entité centrale ne doit tout
commander, en plus, les protocoles doivent réagir aux changements imprévisibles et rapides
de la topologie du réseau.
Ce chapitre est consacré au routage dans les réseaux mobiles ad hoc, pour cela il introduit
les différents concepts liés au routage dans les réseaux mobiles ad hoc ; les contraintes, une
taxonomie des protocoles existants ; ainsi qu’une étude de quelques protocoles existants et
une étude détaillée du protocole AODV qui est au centre des travaux de ce mémoire.
2 Définitions
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 [43]. On distingue généralement deux entités :
L’algorithme de routage est la partie du logiciel de la couche réseau qui a la responsabilité
de décider sur quelle ligne de sortie un paquet entrant doit être retransmis [3].Le but d'un
algorithme de routage est de permettre le calcul de route entre une source et une destination
au sens d'un certain critère (plus court chemin par exemple), et la diffusion des informations
nécessaires à ce calcul.
Un protocole de routage est un ensemble de règles s’appliquant au format et à la
signification des trames, paquets ou messages échangés entre entités paires au sein de la
couche réseau [3].
21
Chapitre II
Routage dans les réseaux mobiles ad hoc
3 Problématique du routage dans les réseaux mobile ad hoc
Les contraintes des réseaux mobiles ad hoc rendent l’application des protocoles de routage
traditionnellement déployés dans les réseaux filaires inefficace, les principaux problèmes qui
se posent sont :
• La capacité limitée des liens (liens radio) : un protocole de routage ad hoc doit être
efficace en bande passante utilisée. Il doit minimiser le trafic de contrôle (overhead)
nécessaire à l’établissement et à la maintenance des routes afin de réduire la charge sur le
réseau.
• La nature variable des liens (unidirectionnelle ou bidirectionnelle) doit être prise en
compte par le protocole de routage.
• Les ressources matérielles restreintes des unités mobiles excluent les algorithmes
exigeants en capacité de mémoire et de traitement.
• Changements fréquents dans la topologie : l’algorithme d’obtention d’une route doit
prendre en compte la mobilité des nœuds et rechercher la route la plus courte en
nombre de sauts. En effet, le déplacement des unités mobiles peut remettre en cause la
validité des informations de routage.
• L’absence d’infrastructure ou d’administration fixes dans le réseau impose par ailleurs
un fonctionnement distribué [2].
En effet l'étude et la mise en œuvre d'algorithmes de routage pour assurer la connexion des
réseaux mobiles ad hoc au sens classique du terme (tout sommet peut atteindre tout autre),
est un problème complexe. Il semble donc important que toute conception de protocole de
routage doive étudier les problèmes suivants :
• La minimisation de la charge du réseau : l'optimisation des ressources du réseau
renferme deux autres sous problèmes qui sont l'évitement des boucles de routage, et
l'empêchement de la concentration du trafic autour de certains nœud s ou liens.
• Offrir un support pour pouvoir effectuer des communications multipoints
fiables : le fait que les chemins utilisés pour router les paquets de données puissent
évoluer, ne doit pas avoir d'incident sur le bon acheminement des données.
L'élimination d'un lien, pour cause de panne ou pour cause de mobilité devrait,
idéalement, augmenter le moins possible les temps de latence.
• Assurer un routage optimal : la stratégie de routage doit créer des chemins optimaux
et pouvoir prendre en compte différentes métriques de coûts (bande passante, nombre
de liens, ressources du réseau, délais de bout en bout,…etc.). Si la construction des
chemins optimaux est un problème complexe, la maintenance de tels chemins peut
devenir encore plus complexe, la stratégie de routage doit assurer une maintenance
efficace de routes avec le moindre coût possible.
• Le temps de latence : la qualité des temps de latence et de chemins doit augmenter
dans le cas où la connectivité du réseau augmente [8].
4 Taxonomie des protocoles de routage dans les MANETs
Les protocoles de routage dédiés aux réseaux ad hoc peuvent être caractérisés par leur
catégorie (protocoles proactifs, réactifs ou hybrides), leur architecture (plate ou hiérarchique)
ainsi que par leur type d’algorithmes (voir fig. 2.2) [2].
Avant de décrire les différentes classifications, il est bon de rappeler quels sont les
principaux modes de communication dans les réseaux mobiles : la communication point à
22
Chapitre II
Routage dans les réseaux mobiles ad hoc
point ou unicast pour laquelle il y a une source et une seule destination, la communication
multipoint ou multicast qui permet d'envoyer un message à plusieurs destinataires et la
diffusion ou broadcast qui envoie un message à tous les nœuds du réseau. Ces trois modes de
communication sont schématisés par la figure 2.1 [14].
Fig. 2.1 : Modes de communication dans les réseaux.
La figure 2.2 illustre une taxonomie des protocoles de routage pour les réseaux mobiles ad
hoc :
Routage
Multipoint
Routage point à point
Hiérarchique
Sélection de
voisins
*OLSR
ZRP
Diffusion
Plat
Partitionnement
Orientés
topologie
GCSR
CBRP
HSR
Proactif
GSR
FSR
*TBRPF
Réactif
*DSR
Orientés
Destination
s
Proactif
DSDV
WRP
Réactif
*AODV
TORA
DYMO
* protocoles RFC au niveau de l’IETF
Fig. 2.2 : Taxonomie des protocoles de routage ad hoc [16].
4.1
Selon l’architecture
La première classification des protocoles de routage ad hoc concerne le type de vision
qu’ils ont du réseau et les rôles qu’ils accordent aux différentes unités mobiles.
4.1.1 Les protocoles de routage plat (ou uniformes)
Ces protocoles considèrent que tous les nœuds sont égaux (fig.2.3). La décision d’un nœud
de router des paquets pour un autre dépendra de sa position et pourra être remise en cause au
cours du temps [15].
23
Chapitre II
Routage dans les réseaux mobiles ad hoc
Fig.2.3 : Routage plat.
Les protocoles de routage uniformes peuvent être également regroupés selon les données
qu'ils utilisent pour effectuer leur tâche [16] :
• Les protocoles orientés topologie
Dans les protocoles orientés topologie, chaque nœud utilise comme données l'état de ses
connexions avec ses nœud s voisins, cette information est ensuite transmise aux autres
nœuds pour leur donner une connaissance plus précise de la topologie du réseau.
• Les protocoles orientés destinations
Ces protocoles maintiennent pour chaque nœud destination une information sur le nombre
de nœuds qui les en séparent (la distance) et éventuellement sur la première direction à
emprunter pour y arriver (le vecteur).
4.1.2 Les protocoles de routage hiérarchiques (ou non uniformes)
Les protocoles hiérarchiques fonctionnent en confiant aux mobiles des rôles qui varient de
l’un à l’autre. Certains nœud s sont élus et assument des fonctions particulières qui
conduisent à une vision en plusieurs niveaux de la topologie du réseau. Par exemple, un
mobile pourra servir de passerelle pour un certain nombre de nœud s qui sont reliés à lui. Un
exemple est donné sur la figure 2.4, où le nœud N3 passe par les passerelles P1, P2 et P3
pour atteindre N7 [15].
Fig.2.4 : Routage hiérarchique.
On distingue deux modes de fonctionnement dans les protocoles hiérarchiques [16] :
24
Chapitre II
Routage dans les réseaux mobiles ad hoc
• Les protocoles à sélection de voisins
Dans les protocoles à sélection de voisins, chaque nœud sous-traite la fonction de routage
à un sous-ensemble de ses voisins directs.
• Les protocoles à partitionnement :
Pour les protocoles à partitionnement, le réseau est découpé en zones dans lesquelles le
routage est assuré par un unique nœud maître (appelé aussi cluster-head).
4.2 Selon l’algorithme utilisé
Une autre classification, héritée du monde filaire, est possible pour les protocoles de
routage ad hoc: deux algorithmes de routage sont utilisés, les algorithmes à état de lien (Linkstate) et les algorithmes à vecteur de distance (distance Vector) [15].
• Les protocoles à état de lien (Link-state protocols)
Les protocoles à état de liens cherchent à maintenir dans chaque nœud une carte plus ou
moins complète du réseau où figurent les nœuds et les liens les reliant. A partir de cette carte
il est possible de construire les tables de routage. Un des avantages de ce type de protocole
est leur capacité à pouvoir facilement trouver des routes alternatives lorsqu’un lien est rompu.
Il est même possible d’utiliser simultanément plusieurs routes vers une même destination,
augmentant ainsi la répartition de la charge et la tolérance aux pannes dans le réseau. En
contrepartie, si le réseau est étendu, la quantité d’informations à stocker et à diffuser peut
devenir considérable.
• Les protocoles à vecteur de distance (distance Vector protocols)
Ces protocoles ne conservent que la liste des nœuds du réseau et l’identité du voisin par
lequel passer pour atteindre la destination par le chemin le plus court. A chaque destination
possible sont donc associés un next-hop et une distance. Si un voisin envoie un paquet de
contrôle dans lequel il indique être plus près d’une destination que le next-hop que l’on utilisait
jusqu’alors, alors il le remplace dans la table de routage. Un des inconvénients de cette
technique est la difficulté de conserver plusieurs routes alternatives au cas où celle qui est
privilégiée serait rompue (on ne dispose que du next-hop, et on ne sait pas si la suite de la
nouvelle route est indépendante de celle qui a été rompue).
4.3 Les catégories de protocoles de routage MANET
Les protocoles développés pour les réseaux mobiles ad hoc peuvent être classifiés en trois
grandes familles en tant que réactifs, proactifs ou hybrides [1].
4.3.1 les protocoles proactifs
Dans le routage proactif, chaque nœud maintient une ou plusieurs tables contenant
l’information de routage vers chaque autre nœud du réseau. Tous les nœuds mettent leurs
tables à jour de façon à maintenir une vue consistante et réelle du réseau. Lorsque la
topologie du réseau change, les nœuds propagent des messages de mise à jour à travers le
réseau afin de garder cette consistance et de garder à jour l’information de routage pour
l’ensemble du réseau. Ces protocoles diffèrent sur la manière par laquelle des changements
25
Chapitre II
Routage dans les réseaux mobiles ad hoc
de topologies sont distribués à travers le réseau et sur le nombre de tables nécessaires au
routage. Il existe plusieurs protocoles connus de cette catégorie, à titre d’exemples, nous
pouvons citer DSDV, GSR, FSR, HSR et ZHLS.
4.3.2 Les protocoles réactifs
Dans cette deuxième catégorie de protocoles de routage dite routage à la demande, les
routes ne sont pas maintenues vers tous les nœuds mais elles sont créées selon les besoins.
Lorsqu’il y a un besoin de routage, un mécanisme de découverte de route est lancé dans le but
d’obtenir une information spécifiée, inconnu au préalable et qui va rester valide tant que la
destination est joignable ou jusqu’au moment où la route devienne inutile. Ici, la majorité des
algorithmes utilisés sont basés sur le mécanisme d’apprentissage en arrière. Ce type de routage
est lent à cause de la recherche des chemins, ce qui peut dégrader les performances des
applications interactives. De plus, il est impossible de connaître la qualité au préalable d’un
chemin (bande passante, délai, ..), tandis qu’une telle connaissance est importante pour les
applications multimédia. A titre d’exemples, les protocoles appartenant à cette catégorie sont
DSR, AODV et TORA.
4.3.3 Les protocoles hybrides
Une troisième catégorie appelée les protocoles hybrides permet de combiner les deux
concepts ; celui des protocoles proactifs et celui des protocoles réactifs. Généralement le
réseau est divisé en deux zones et le principe est d’utiliser une approche proactive pour avoir
des informations sur les voisins les plus proches, qui se trouvent au maximum à deux sauts
du nœud mobile. Une approche réactive est utilisée au-delà de cette zone prédéfinie afin de
chercher des routes.
L’avantage de cette troisième catégorie de protocoles est le fait qu’elle s’adapte bien aux
réseaux de grandes tailles. Cependant, cette approche a comme inconvénient de cumuler les
points faibles des protocoles réactifs et ceux des protocoles proactifs, tels que les messages de
contrôle périodique et le coût d’établissement d’une nouvelle route. Il existe plusieurs
protocoles connus appartenant à cette catégorie de protocoles hybride, citons ZRP (Zone
Routing Protocol) et CBRP (Cluster Based Routing Protocol).
5 Description de quelques protocoles MANETs
De nombreux protocoles de routage ont été proposés pour les réseaux mobiles ad hoc.
Les protocoles décrits dans ce qui suit sont issus du groupe de travail MANET de l’IETF.
Ces protocoles sont représentatifs de diverses techniques et sont les plus avancés sur la voie
d’une normalisation [15]. Ils font désormais l’objet d’une Request For Comment (RFC) au niveau
de l’IETF. Les protocoles concernés (table 2.1) sont : OLSR (RFC 3626, octobre 2003) [18]
et TBRPF (RFC 3684, février 2004) [12], ainsi que les protocoles réactifs : DSR (RFC 4728,
février 2007)[13] et AODV (RFC 3561, juillet 2003) [11] ,ce dernier sera étudié en détails.
Nom
Catégorie
Architecture
Algorithme
DSR
AODV
Réactifs
plat
plat
Routage
Vecteur
source
de
distance
OLSR
TBRPF
Proactifs
hiérarchique hiérarchique
Etat de
Etat de
liens
liens
Table 2.1 : les principaux protocoles MANET
26
Chapitre II
Routage dans les réseaux mobiles ad hoc
5.1 OLSR
OLSR (Optimized Link State Routing) [18] est un protocole proactif à état de liens. Afin de
maintenir à jour les tables de routage, chaque nœud implémentant OLSR diffuse
régulièrement des informations sur son propre voisinage. Ces informations sont suffisantes
pour permettre à chaque nœud de reconstruire une image du réseau et de trouver une route
vers n’importe quelle destination. Cette diffusion ne se fait pas par une simple inondation (où
chaque nœud retransmet simplement chaque nouveau paquet qu’il reçoit) ; OLSR optimise
la diffusion grâce au système des relais multi-points (MPR : Multi-Points Relays). Chaque nœud
choisit dans ses voisins directs un sous-ensemble minimal de nœuds qui lui permettent
d’atteindre tous ses voisins à deux sauts. La diffusion des informations sur les liens utilisés
pour le routage se fait ensuite uniquement par les relais multi-points ; la couverture totale du
réseau est assurée tout en limitant sensiblement le nombre de réémissions. Afin de choisir ses
relais multipoints, un nœud a besoin de connaître complètement la topologie de son
voisinage à deux sauts ; cela est réalisé grâce à l’envoi périodique de paquets hello contenant
la liste des voisins connus à un saut [15].
5.2 TBRPF
TBRPF (Topologie Dissémination Based on Reverse-Path Forwarding) [12] est un protocole de
routage proactif à état de liens. Chaque nœud maintient en permanence un arbre dont il est
la racine et qui fournit les chemins les plus courts pour tous les autres nœud s .TBRPF est
constitué de deux parties complémentaires : la découverte des voisins et le routage
proprement dit.
La découverte des voisins est assurée par un mécanisme de paquets hello diffusés
régulièrement au voisinage direct. Ces paquets hello contiennent la liste des voisins du nœud,
et permettent ainsi de connaître rapidement la topologie complète du réseau à deux sauts. Il
faut noter que TBRPF emploie une technique de hello différentiels où seuls les changements de
topologie sont notifiés (diminuant ainsi la taille moyenne des paquets et autorisant leur envoi
à une plus grande fréquence).
La partie routage quant à elle est basée sur un échange des arbres de routage entre nœuds
voisins, conduisant progressivement à la diffusion de l’information dans l’ensemble du réseau.
Là encore seules des parties d’arbres sont échangées. Normalement, un nœud ne diffuse
qu’un sous-arbre à deux niveaux dont il est la racine. Au premier niveau apparaissent les liens
vers tous les voisins directs du nœud, et au deuxième niveau un unique lien vers chaque
voisin à deux sauts (on peut noter ici une certaine similitude avec le mécanisme des relais
multi-points d’OLSR). En conjonction avec ce système de base, TBRPF peut également
ajouter des informations sur d’autres liens à l’arbre diffusé, avant de réagir plus vite en cas de
changement de la topologie. A noter enfin que dans un souci d’économie de bande passante,
les sous-arbres et les paquets hello sont regroupés autant que possible dans un même paquet
(on parle d’agrégation ou piggybacking puisque l’on profite des paquets hello pour envoyer en
même temps les sous- arbres) [15].
5.3 DSR
DSR (Dynamic Source Routing) [13] est un autre protocole réactif. Il se différencie des autres
en particulier parce qu’il pratique le source routing : l’émetteur précise dans l’en-tête de chaque
paquet la liste des nœuds qu’il devra traverser pour atteindre sa destination. Ce type de
routage présente certains avantages particulièrement intéressants ; il autorise en particulier la
source à conserver dans sa table de routage plusieurs chemins valides vers une même
27
Chapitre II
Routage dans les réseaux mobiles ad hoc
destination. Le choix du chemin emprunté pourra donc être fait indépendamment pour
chaque paquet, et permettre un meilleur équilibrage de la charge du réseau ou une meilleure
réactivité aux changements de topologie. Dans la pratique, DSR est structuré en deux sousparties complémentaires : la recherche de route et la maintenance de route. La recherche de
route se fait par inondation : un paquet de recherche est diffusé de proche en proche jusqu’à
la destination. Au fur et à mesure, les identifiants des nœuds traversés sont ajoutés dans le
paquet de recherche de route. Quand elle reçoit ce paquet, la destination sait donc déjà quel
chemin il a emprunté, et obtient ainsi (en l’inversant) la route pour retourner à la source. A la
réception, les paquets de recherche ayant suivi des chemins différents, la destination répond
sur les chemins inverses, et la source aura ainsi finalement plusieurs chemins valides pour
l’atteindre.
6 Etude détaillée du protocole AODV
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 3561 [11]. 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 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" [20].
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) [17].
6.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 [17]:
• 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 [17] :
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:
28
Chapitre II
Routage dans les réseaux mobiles ad hoc
RREQ: contient essentiellement les champs suivants [11] :
Type
J |R |G | D |U
Reserved
Hop Count
RREQ ID
Destination IP Address
Destination Sequence Number
Originator IP Address
Originator Sequence Number
Tab. 2.2 : 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.
RREP: contient essentiellement les champs suivants [11] :
Type
R|A
Reserved
Prefix Sz
Destination IP Address
Destination Sequence Number
Originator IP Address
Lifetime
Hop Count
Tab. 2.3 : 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.
29
Chapitre II
Routage dans les réseaux mobiles ad hoc
• 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 [11]:
Type
N
Reserved
DestCount
Unreachable Destination IP Address (1)
Unreachable Destination Sequence Number (1)
Tab. 2.4 : 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.
• DestCount (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.
6.2 Numéro de séquence
L'algorithme de Bellman Ford est un algorithme qui trouve le plus court chemin entre
deux 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 grandes.
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 [15].
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 séquence actuel et celui
contenu dans le message RREQ. Ce numéro accompagne son adresse dans les messages
30
Chapitre II
Routage dans les réseaux mobiles ad hoc
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 [17].
6.3 Principe de fonctionnement
Deux étapes sont observées [17] ; la première est la découverte d’une route, et la deuxième
est la maintenance des routes :
6.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.5).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.
Fig. 2.5 : La propagation du paquet RREQ.
31
Chapitre II
Routage dans les réseaux mobiles ad hoc
Cette information est utilisée pour construire le chemin inverse (Fig 2.6), 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 et
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.
Fig. 2.6 : Le chemin pris par RREP.
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 [20].
6.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
32
Chapitre II
Routage dans les réseaux mobiles ad hoc
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 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 [18].
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).
6.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 [18].
6.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 [8].
Un autre avantage de ce protocole est sa simplicité, à titre d'exemple, le draft de DSR
mesure 111 pages, le RFC de OLSR fait 75 pages, alors que celui d'AODV a une taille de 37
pages. Ensuite son ancienneté et sa maturité, AODV existe depuis longtemps et beaucoup de
33
Chapitre II
Routage dans les réseaux mobiles ad hoc
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 [20].
7 Autres protocoles
De nombreux autres protocoles de routage ont été proposés pour les réseaux mobiles ad
hoc. Dans la catégorie des protocoles hiérarchique on peut citer Cluster- Head Gateway Switcher
Routing (CGSR) présenté dans [21]. Certains autres protocoles nécessitent l’emploi de
matériels externes, Par exemple Temporaly-Ordered Routing Algorithm (TORA) [22] a besoin que
les mobiles soient synchronisés. D’autres utilisent le système GPS pour estimer la direction
géographique de la destination et ne faire intervenir qu’une sous-partie du réseau dans la
phase de construction des routes. Alors que beaucoup de protocoles cherchent à minimiser le
nombre de sauts (minimum shortest path), certains protocoles enfin s’attachent à prendre
d’autres critères en considération. ABR [23] (Associativity-Based Routing) par exemple privilégie
les liens les plus stables (mobiles qui restent longtemps dans le voisinage les uns des autres).
SSR [24] (Signal Stability Routing) travaille à partir des informations de niveau de signal et
cherche à maximiser la durée de vie du réseau en agissant sur la puissance d’émission de
chaque mobile séparément [15].
Conclusion
Si le routage dans son contexte général est une tâche complexe, les caractéristiques des
MANETs rendent la conception d’un protocole de routage efficace plus complexe.
De nombreux protocoles de routage ont été développés pour les MANETs faisant face aux
contraintes spécifiques de ce type de réseaux. Ces protocoles peuvent être classés selon
plusieurs critères : leur architecture, les algorithmes utilisés, les politiques de routages, etc.
L’établissement des routes par ces protocoles se fait seulement suivant le critère classique :
le plus court chemin ; il suffit d’assurer la connectivité entre une source et une destination.
Cependant ce critère n’est pas du tout suffisant pour des applications comme le multimédia
par exemple qui exigent des garanties particulières (la bande passante, le délai…etc.). En effet,
il est nécessaire de penser à d’autres solution de routage optimales en termes de certains
critères si nous voulons déployer de telles application dans un environnement ad hoc, on
parle alors de la notion du routage avec qualité de service.
Dans ce chapitre nous avons vu le concept de routage dans les réseaux mobiles ad hoc, les
contraintes, une taxonomie des différents protocoles existants, ensuite nous avons décrit les
principaux protocoles proposés pour les MANETs, en fin nous avons détaillé le
fonctionnement du protocole AODV pour être l’objet de notre étude. Le choix du protocole
AODV est justifié par les avantages cités dans la section 6.4.
Dans le chapitre suivant nous allons étudier la notion de qualité de service, particulièrement
le routage avec qualité de service, dans le but de faire une extension du protocole AODV
pour garantir des exigences de la qualité de service.
34
Chapitre III
Qualité de service dans les réseaux mobiles
ad hoc
Chapitre III
QoS dans les réseaux mobiles ad hoc
Qualité de Service dans les réseaux mobiles ad hoc
1 Introduction
La performance d’un réseau est un élément fondamental et nécessaire pour une utilisation
efficace d’applications, notamment les applications qui exigent une qualité de service (QoS,
Quality of Service) telles que la téléphonie, la vidéo à la demande, la vidéo conférence ou encore
les applications temps réels. Le déploiement de telles applications dans les MANETs
représente de nombreux intérêts. Cependant on doit faire face à plusieurs défis et difficultés,
et trouver des solutions fiables qui aident à l’intégration de la qualité de service dans ce genre
de réseaux.
Comme nous l’avons vu dans le chapitre 2, le groupe MANET de l’IETF a proposé
plusieurs protocoles de routage pour les réseaux mobiles ad hoc. Ceux ci fonctionnent en
mode best effort c'est-à-dire : au mieux. Cependant, ils ne permettent pas de garantir une qualité
de service.
Généralement, la recherche sur la qualité de service dans les réseaux mobiles ad hoc touche
à plusieurs domaines ; Les modèles de QoS, la différentiation au niveau de la couche MAC
(Medium Access Control), les protocoles de signalisation et Le routage avec QoS.
Dans ce chapitre, on s’intéressera aux solutions de la QoS dans les MANETs, plus
particulièrement au routage avec QoS, pour ce faire nous présentons d’abord les principales
notions de qualité de service, la définition, les métriques, les solutions et le problème de
routage avec QoS dans les MANETs.
2 Définition de la Qualité de service
La recommandation E.800 du CCITT (Consultative Committee for International Telegraph and
Telephone) définit la qualité de service (QoS pour Quality of Service ou QdS pour (Qualité de
Service) comme : « l’effet général de la performance d’un service qui détermine le degré de
satisfaction d’un utilisateur du service ». Cette définition reflète la perception de la qualité de
service de point de vue d’un utilisateur [19].
Dans le RFC 2386 [25], la QoS est définit comme un ensemble de besoins à assurer par le
réseau pour le transport d’un trafic d’une source à une destination. Ces besoins peuvent être
traduits en un ensemble d’attributs pré-spécifiés et mesurables en terme de :
• Délai de bout en bout,
• Variance de délai (gigue),
• Bande passante,
• Pertes de paquets.
3 Les métriques de la qualité de service
Les principaux aspects connus de la qualité de service sont : la bande passante, le délai de
bout en bout, la gigue (variation du délai), et les pertes de paquets (souvent exprimée en
termes de taux d’erreurs).
36
Chapitre III
QoS dans les réseaux mobiles ad hoc
Les métriques de QoS peuvent être additives, concaves ou multiplicatives ;
Une métrique additive Am est définie comme
h
∑ Li ( m ) où
Li est la valeur de la
i=0
métrique m sur le lien Li , Li ∈ P .h représente la longueur du chemin P .
Une métrique concave définit la valeur minimale sur un chemin
comme suit : Cm = min( Li (m)) , Li (m) ∈ P .
P et représenté
Une métrique multiplicative représente le produit des valeurs des métriques de QoS, elle
est définie comme le produit des Li (m) avec i allant de 1 à h, Li(m) ∈ P [17].
La bande passante est une métrique concave, alors que le délai et la gigue sont des
métriques additives. La disponibilité d’un lien, basée sur des critères comme la probabilité de
perte du lien quant à elle est une métrique multiplicative [7].
3.1 La bande passante
La bande passante représente la source de transmission qu’occupe ou reçoit un flot. La
gestion de la bande passante est un élément important pour la garantie de la qualité de service
[17].
3.2 Délai de bout en bout
Le terme « délai » englobe en réalité trois aspects temporels différents :
1. le délai de propagation, déterminé par la distance physique qui sépare la source de la
destination.
2. le délai d’attente et de traitement des paquets à l’intérieur des files d’attente,
déterminé par la charge du réseau, ainsi que les politiques de traitement de
l’information dans les routeurs pour obtenir une fluidité maximale de l’écoulement
de l’information.
3. le délai de transmission dépendant de la taille des flots. Ce paramètre est aussi
étroitement lié à l’utilisation du réseau et au partage de la bande passante disponible.
Garantir le délai, implique la nécessité de mettre en œuvre des mécanismes permettant de
gérer au mieux l’acheminement de l’information vers la destination en un temps minimal,
tenant compte des trois natures de délais précédemment cités [19].
3.3 La gigue : (variation du délai)
La gigue correspond à la variation du délai de transmission de bout en bout entre les
différents paquets d’un flot à travers un réseau. La gigue est due principalement aux délais de
traitement variables dans les nœuds du réseau. Ce paramètre nuit automatiquement à la
qualité de service demandée.
3.4 La perte de paquets
Elle se produit lorsqu'il y a des erreurs d'intégrité sur les données. La perte de paquets se
produit principalement lorsque l'intensité du trafic sur les liens de sorties devient supérieure à
leur capacité d'écoulement [20].
37
Chapitre III
QoS dans les réseaux mobiles ad hoc
4 Le besoin en QoS des d’applications
Au début de l’apparition des réseaux mobiles ad hoc, l’objectif été d’assurer la
communication entre les nœuds on utilisant le service « best effort ». Mais pour des applications
telles que le multimédias, téléphonie, jeux, applications critiques, communications dans un
champ de bataille, etc. ce service n’est pas suffisant. Ces applications sont exigeantes en
terme de certains critères (bande passante, délai.. etc.).
Suivant le type de l’application, les besoins de QoS sont différents. Par exemple, pour les
applications temps réel, comme la voix et la vidéo, le délai de bout en bout d’un paquet doit
être borné, autrement le paquet est inutile. Les applications non temps réel, comme le
transfert de fichiers ou la messagerie, quant à elles se focalisent sur la fiabilité des
communications [7].
La figure 3.1 montre un exemple des besoins de quelques applications de la qualité de
service particulièrement des deux métriques : bande passante et délai de bout en bout [19].
Fig.3.1 : exemple de besoins de QoS.
5 Exemple de besoins de QoS : la voix sur IP (VoIP)
La VoIP (Voice over Internet Protocol) est un ensemble de technologies qui permettent le
transport de la voix numérisée sur les réseaux à commutation de paquets au lieu des réseaux à
commutation de circuits classique (PSTN, Public Switched Telephony Network). La VoIP sert
surtout à la ToIP (Telephony over IP).
La finalité du travail effectué dans ce mémoire est de faire une extension du protocole
AODV en lui rend sensible à une métrique de QoS on améliorant les performances de la
voix sur IP dans les réseaux mobiles ad hoc. En effet il est nécessaire de connaître les besoins
de QoS de cette application. Pour cela nous traitons dans ce qui suit la voix sur IP, et ses
différentes caractéristiques et paramètres.
5.1 Les paramètres de la voix sur IP
La problématique de qualité de la voix sur IP est particulière car la voix attend de son
transporteur autre chose que les données. La transmission de données classique (fichiers,
messages, transactions …) ne supporte aucune perte en ligne sous peine de graves
conséquences pour l’interprétation et l’utilisation de ces données, mais elle supporte en
revanche une dérive importante en terme de durée d’acheminement.
Le comportement attendu pour la voix est exactement inverse : 1% ou 2% de perte de
données de voix en ligne ne sont pas trop gênants pour la qualité du service de VoIP, mais en
38
Chapitre III
QoS dans les réseaux mobiles ad hoc
revanche une variation fréquente de 100 ms sur le délai de transit est catastrophique et rend le
service inutilisable [48].
Les principaux paramètres influents en VoIP sont, les échantillonnages (codecs), le délai de
bout en bout, la gigue et les pertes de données.
5.1.1 Les différents échantillonnages
Le paramètre d’échantillonnage ou codec (pour compression / décompression) est
structurant en VoIP. Le codec détermine à quelle vitesse la voix est échantillonnée et
dimensionne par la même le flux de données numériques que va générer la transformation
d’un échantillon temporel de voix analogique. Les codecs sont répertoriés par leur nom à
l’ITU(International Telecommunication Union). Les codecs les plus utilisés et leurs vitesses
d’échantillonnage sont les suivants :
codec
G.711
G.726
G.726
G.728
G.729
G.723.1 MPMLQ
G.723.1 ACELP
Vitesse d’échantillonnage
64 kbps
32 kbps
24 kbps
16 kbps
8 kbps
6.3 kbps
5.3 kbps
Tab 3.1 : les principaux codecs et leurs Vitesses d’échantillonnage.
5.1.2 Le délai de bout en bout
Le délai de bout en bout (ou end-to-end Delay) est un des paramètres critiques influençant
fortement la QoS d’un service de voix sur IP. C’est le temps que va mettre en moyenne un
paquet IP contenant un échantillon de voix pour traverser l’infrastructure entre deux
interlocuteurs [48].
Les recommandations G.114 et G.131 de l’ITU-T stipulent que la valeur recommandée
pour le délai de transit de la voix de bout en bout ne doit pas dépasser 150ms pour un codec
G711, pour un autre codec cette valeur n’est pas la même (tableau3.2).
Délai de bout en bout
Effet sur la qualité perçue
<100-150ms
délai non détectable
150-400ms
qualité acceptable
Plus de 400
Délai inacceptable ; conversation non compréhensible
Tab. 3.2 : les seuils du délai pour un codec G711.
5.1.3 La gigue
La variation du délai(ou gigue) est la conséquence du fait que tous les paquets contenant
des échantillons de voix ne vont pas traverser le réseau à la même vitesse. Cela crée une
déformation de la voix ou un hachage.
39
Chapitre III
QoS dans les réseaux mobiles ad hoc
La gigue est indépendante du délai de transit. Le délai peut être court et la gigue
importante ou inversement. La gigue est une conséquence de congestions passagères sur le
réseau, ce dernier ne pouvant plus transporter les données de manière constante dans le
temps. La valeur de la gigue va de quelques ms à quelques dizaines de ms.
5.1.4 La perte de paquets
Une perte de données régulière mais faible est moins gênante en voix sur IP que des pics
de perte de paquets espacés mais élevés. En effet l’écoute humaine s’habituera à une qualité
moyenne mais constante et en revanche supportera peu de soudaines dégradations de la QoS.
Le taux de perte en VoIP est en générale de quelques pourcents à des dixièmes de pourcent.
Le tableau 3.3 présente les seuils de valeurs pour les paramètres critiques et les
conséquences constatées pour la qualité de service de la VoIP en codec G.711 64 kbps [48]:
qualité
métrique
Délai de bout en bout
Gigue
Perte de paquets
Bonne
D < 150 ms
G < 20 ms
P < 1%
Moyenne
Mauvaise
150 ms < D < 400 ms 400 ms < D
20 ms < G < 50 ms
50 ms < G
1% < P < 3%
3% < P
Tab.3.3 : les exigences de QoS pour la VoIP.
6 La QoS dans Les réseaux mobiles ad hoc
La qualité de service a été largement étudiée dans les réseaux filaires. Le réseau ATM
(Asynchronous Transfert Mode) a considéré le support de la QoS pour les trafics en plusieurs
classes [7]. Des solutions ont été proposées par l’IETF pour améliorer le réseau Internet afin
de fournir la QoS aux communications multimédia. Les groupes de l’IETF se sont penchés
sur deux idées [19] : IntServ [27] (Integrated Services), et DiffServ [28] (Differentiated Services).
Malheureusement aucune de ces solutions ne peuvent être utilisée directement dans les
MANETs [30]. En effet il est très difficile de garantir une quelconque qualité de service à une
application dans un réseau mobile ad hoc. Car, il faut prendre en considération les spécificités
de ces réseaux, à savoir : la bande passante limitée, le changement dynamique de la topologie
en fonction du temps, le manque d’information complète sur l’état du réseau, ainsi que
l’absence d’une administration centralisée ce qui implique une gestion distribuée du trafic
nécessaire au fonctionnement du réseau.
En outre, la communication entre les stations mobiles étant sans fil, la qualité du lien sans
fil reste peu fiable, et susceptible à des variations suivant la configuration et l’état du réseau
[7]. Donc assurer une QoS dans les MANETs revient à « fournir une fonctionnalité complexe
dans un environnement très dynamique où les ressources sont rares » [30].
Dans ce contexte, plusieurs solutions pour la QoS dans les MANETs ont été proposées
par la communauté scientifique pour pallier aux problèmes liés aux contraintes spécifiques
des réseaux mobiles ad hoc. Dans ce qui suit, nous allons présenter les solutions les plus
permanentes.
7 Solutions de QoS dans les MANETs
Les solutions de QoS pour les réseaux mobiles ad hoc peuvent être classifiées en quatre
catégories (figure 3.2) [30]: Les modèles de QoS, la différentiation au niveau de la couche
MAC (Medium Access Control), les protocoles de signalisation, et le routage avec QoS.
40
Chapitre III
QoS dans les réseaux mobiles ad hoc
Solutions de QoS dans les MANETs
Protocoles de
signalisation
Routage
avec QoS
Différentiation
Couche MAC
Interviennent à une couche ou sous-couche
du modèle de référence OSI
Modèles
de QoS
Approches
Inter couche
CROSS LAYER
Fig.3.2 - solutions de QoS pour les réseaux ad hoc.
En réalité, ces solutions ne sont pas indépendantes. En effet, pour construire un bon
modèle de qualité de service, les autres composants de QoS (routage QoS, protocole de
signalisation, protocole MAC avec QoS) doivent coopérer pour atteindre cet objectif. En
outre, Un protocole MAC QoS est un composant essentiel de la qualité de service dans les
MANET, toutes les couches supérieures (routage QoS et protocole de signalisation)
dépendent du protocole MAC avec QoS [32].
7.1 Modèles de qualité de service
Un modèle de qualité de service définit quels types de service peuvent être fournis dans un
réseau et certains mécanismes utilisés afin d'offrir ces services (quelles fonctionnalités doit
fournir le protocole de routage, quelle est l'architecture des nœuds, etc.) [32]. Les modèles les
plus connus dans le monde filaire sont :
IntServ (Integrated services) : spécifié dans le RFC 1633 [27], ce modèle propose une
architecture à base de réservation de ressources pour chaque flot. Cette dernière
s’effectue au moyen du protocole RSVP (Resource Reservation Setup Protocol), Cependant,
IntServ n’est pas propice à des réseaux de grande envergure [19].
DiffServ (Differentiated Services) : spécifié dans le RFC 2475[28], ce modèle fonde son
concept sur une gestion de trafic par classe, sur des méthodes de conditionnement du
trafic à l’entrée du réseau et sur le marquage de celui-ci en fonction de son appartenance à
une classe, Trois principaux services de DiffServ sont mis en œuvre : le service « BestEffort » pour les paquets à traiter « au-mieux » comme le fait Internet actuellement ; le
service « Assured Forwarding » pour des classes à priorité plus grande enfin le service «
Expedited Forwarding » pour les classes les plus prioritaires [19].
• FQMM (Flexible Quality of service Model for Mobile ad hoc networks)
FQMM est un modèle de QoS proposé pour les MANETs. Les concepteurs du modèle
FQMM prennent en compte le fait que les réseaux ad hoc pourraient, à terme être connectés
à des réseaux filaires de type Internet. Il apparaît dès lors nécessaire d'offrir un mécanisme de
qualité de service suffisamment proche des protocoles filaires afin de s'interfacer avec ces
derniers. Le modèle FQMM se situe entre les deux modèles IntServ et DiffServ, il définit
plusieurs classes de service dont la plus haute permet à chaque flux de spécifier les contraintes
qui lui sont propres.
FQMM définit trois types de nœuds : les nœuds d'entrée (émetteurs), les nœuds
intermédiaires et les nœuds de sortie (récepteurs). Compte tenu du fait que dans un réseau ad
hoc, chaque nœud assure la fonction de routeur, chaque mobile joue différents rôles pour
différents flux. Le conditionnement du trafic (lissage, marquage, etc.) est à la charge des
41
Chapitre III
QoS dans les réseaux mobiles ad hoc
émetteurs. FQMM requiert l'utilisation d'un protocole de routage capable d'offrir une certaine
QoS, c'est à dire capable de rechercher des routes satisfaisant certaines contraintes [32].
7.2 Solutions au niveau de la couche MAC
La plupart des protocoles proposés pour la couche MAC dans les réseaux mobiles ad hoc
s'intéressent aux problèmes d'accès au médium ainsi qu'à la fiabilité des communications.
Très peu s'attaquent aux problèmes de réservation de trafic et de garanties de QoS.
Récemment, des schémas de différenciation de service au niveau MAC ont été proposés.
7.2.1 Différenciation de services pour IEEE 802.11
Le principe est de doter le protocole IEEE 802.11 d’un mécanisme de priorités entre les
trames afin de concevoir des mécanismes de différenciation de services efficaces. Pour ce
faire, les auteurs de [29] proposent d’adapter certains paramètres de la fonction de
coordination distribuée (DCF) du protocole 802.11 selon les priorités des paquets. Ces
paramètres peuvent être adaptés dynamiquement afin d’offrir un mécanisme de priorités au
protocole 802.11 :
Lorsqu'une collision survient, les délais avant retransmission sont allongés aléatoirement. Il
est possible d'incrémenter ces délais différemment selon le niveau de priorité.
Il est possible d'utiliser différentes valeurs du délai de silence avant une transmission
(DIFS) selon le niveau de priorité de la transmission.
Enfin, il est possible de limiter la longueur des trames selon le niveau de priorité, les trames
peu prioritaires occupant le canal moins longtemps [32].
7.2.2 MACA/PR (Multihop Access Collision Avoidance with Piggyback Reservation)
Ce protocole propose de fournir des garanties de bande passante pour les applications
temps réel via une réservation. Il permet d'établir des connexions temps réel à un saut
seulement. Il utilise un dialogue RTS/CTS avec acquittement, et différencie la politique
d'accès au médium selon la nature des flux. Pour le trafic prioritaire, une seule demande
d'autorisation à transmettre (RTS/CTS) au début du flux est utilisée. Dans chaque paquet,
des informations sur l'ordonnancement du paquet suivant sont incluses pour empêcher les
voisins d'entrer en collision avec les prochains paquets [20].
7.2.3 IEEE 802.11e
Actuellement en cours d’évaluation, la spécification du draft IEEE 802.11e [31] propose le
support de la QoS dans les réseaux sans fil avec une nouvelle fonction de contrôle EDCA
(Enhanced Distributed Channel Access), considérée comme la nouvelle version de la fonction
DCF. EDCA introduit quatre catégories de trafics (TC). Les priorités sont contrôlées par les
stations en modifiant le schéma d’accès de base (DCF). 802 .11e propose aussi une fonction
de coordination hybride (HCF) Plus flexible que la fonction PCF, HCF est utilisée par les
points d’accès pendant la période d’accès contrôlée (CAP), qui peut commencer à n’importe
quel moment durant la ‘superframe’. Autrement dit, ça lui permet d’avoir accès au médium
pour faire passer un trafic ayant des contraintes de QoS [7].
7.3
Protocoles de signalisation
Le but des protocoles de signalisation est de fournir un moyen de propager des
informations de contrôle à travers un réseau. Les informations transmises peuvent être de
42
Chapitre III
QoS dans les réseaux mobiles ad hoc
différentes natures. Il peut s’agir d’informations topologiques, de demandes de recherche de
routes satisfaisant certaines contraintes ou encore de rapports sur l’état du réseau et la
disponibilité des ressources. Concevoir un protocole de signalisation consiste à définir les
données à échanger afin de réaliser une tache particulière ainsi que la manière de les échanger
[32]. La signalisation permet de réserver et de mettre à jour les ressources, d'initialiser et
d'arrêter le trafic ainsi que de renégocier le profil du trafic. Elle peut s'effectuer à l'intérieur
des paquets de données (signalisation in band) ou grâce à des paquets explicites de contrôle
(signalisation out band) [20].
INSIGNIA
INSIGNIA est un protocole de signalisation in-band (la signalisation est incluse dans les
entêtes des paquets de données) permettant d’effectuer des réservations de bande passante
dans les réseaux ad hoc. INSIGNIA offre des garanties sur la base d’une granularité par flot
aux applications adaptatives capables de modifier leur comportement en fonction de la
quantité de bande passante qui leur est allouée. Chaque application spécifie deux niveaux de
qualité de service.
Le niveau de base permet de spécifier la bande passante minimale nécessaire au trafic et le
niveau amélioré, le débit optimal à atteindre lorsque les ressources sont disponibles. Ce
protocole a été conçu pour réagir rapidement aux changements de topologie. INSIGNIA
n’est pas lié à un protocole de routage particulier [32].
7.4 Routage avec QoS
Dans le RFC 2386 [25], le routage avec QoS est défini comme étant : « Un mécanisme de
routage dans lequel les chemins sont déterminés en fonction des connaissances sur la
disponibilité des ressources du réseau ainsi que l'exigence de qualité de service de flux ». En
d’autres termes l’auteur de [33] le définit comme étant : « un processus d’établissement et de
maintenance de routes optimales satisfaisant un certain critère sur la qualité de la transmission
de données ».
Les algorithmes de routage traditionnels ont été proposés pour router les données sans
tenir compte des contraintes spécifiques ou à des demandes des utilisateurs. Ainsi, ils sont
inadaptés aux applications qui nécessitent le support de la qualité de service.
Le routage avec QoS est un élément clé pour réaliser une architecture de QoS pour les
réseaux mobiles ad hoc. Le protocole de routage QoS peut informer une source sur la bande
passante et la disponibilité (en termes de QoS) de la destination. Cette connaissance va
permettre l'établissement de connections avec qualité de service.
Les exemples illustrés dans la figure 3.3 montrent la différence entre un protocole classique
et un protocole avec QoS ; dans le premier, la route choisie est celle passée par les nœuds B,
C et F est au lieu du plus court chemin passé par D, E car elle satisfait le besoin de la QoS de
la bande passante <Bp> demandée. Dans le deuxième la route choisie est B E F car elle
satisfait le besoin du délai.
43
Chapitre III
QoS dans les réseaux mobiles ad hoc
<5>
<4>
<70>
<20>
B
S
<4>
<2>
E
<Bp> : bande passante
Besoin en QoS: Bp≥4
F
<2>
<25>
<60>
<4>
Plus court chemin
D
<50>
<30>
<70>
<3>
<3>
D
S
<5>
C
B
C
E
F
<70>
<D> : Délai
Besoin en QoS:D≤150
Plus court chemin
<40>
1
D
Chemin
satisfaisant la QoS
2
D
Chemin satisfaisant
la QoS
Fig. 3.3 - exemples de routage avec QoS.
7.4.1 Objectifs du routage avec QoS
Le routage avec QoS cherche à atteindre les trois objectifs suivants [25]:
1. Détermination dynamique de chemins possible : le routage QoS peut déterminer parmi
de nombreux choix, un chemin répondant aux exigences de QoS et qui est réalisable de
bout en bout.
2. Optimisation de l'utilisation des ressources : le routage QoS peut aider dans l’utilisation
efficace des ressources en améliorant la capacité totale du réseau.
3. Permettre une dégradation gracieuse des performances du réseau.
7.4.2 Difficulté de routage avec QoS dans les MANETs
Dans le cas du routage avec qualité de service, le but n'est pas simplement de trouver le
meilleur chemin selon un certain critère mais de trouver le meilleur chemin admissible. On
ajoute un certain nombre de contraintes sur les routes afin de déterminer leur éligibilité. Par
exemple, on peut vouloir rechercher une route disposant d'une certaine quantité de bande
passante pour un trafic vidéo. Toute route satisfaisant un certain critère quantitatif peut être
qualifiée de route assurant une certaine qualité de service [33].
Si l’on peut considérer que cet objectif sera bientôt atteint dans les réseaux locaux filaires,
les réseaux ad hoc présentent un grand nombre de spécificités qui rendent la conception d’un
tel algorithme de routage avec QoS très difficile.
Les réseaux ad hoc sont avant tout des réseaux radio, la propagation radio dans l’air est
soumise à des contraintes spécifiques. Les ondes radio sont extrêmement sensibles à leur
environnement. Le multi hop exigé par l’absence d’une administration de base implique une
gestion distribuée de la fonction du routage et l’ajout d’une métrique de la qualité de service
rende le mécanisme d’établissement des routes plus compliqué. En fin les changements de
topologie dans les réseaux ad hoc exigent de recalculer les routes avec QoS, et répondre assez
rapidement sans dégrader leur niveau de QoS. Par conséquent, des ressources additionnelles
sont consommées (bande passante, batterie, etc.) [7].
7.4.3 Protocoles de routage avec QoS
Plusieurs protocoles de routage avec QoS ont été proposés par la communauté scientifique
pour les MANETs faisant face aux contraintes spécifique de ces réseaux. Ces protocoles se
distinguent par plusieurs critères ; selon les métriques de QoS intégrées, ….la plupart sont des
extensions des protocoles best effort existants.
44
Chapitre III
QoS dans les réseaux mobiles ad hoc
Le tableau 3.4 décrit quelques protocole de routage avec QoS représentatifs avec les
différents caractéristiques et techniques de fournir la qualité de service au niveau de la couche
réseau. Chacun de ces protocoles aborde les problèmes de l’estimation de la bande passante
et du délai, la découverte de routes avec QoS, la réservation des resources, et l’approche
utilisée dans la maintenance des routes, les protocoles présentés dans ce tableau sont décrits
dans [47].
Protocole
de
routage
CEDAR
Architecture
Hiérarchique
Ticketbased
plat
OLSRbased
hiérarchique
AQOR
plat
ADQR
plat
TDR
plat
BEQR
plat
Métrique
de QoS
Bande
passante
Bande
passante
/délai
Bande
passante
Bande
passante
/délai
Bande
passante
Bande
passante
Bande
passante
découverte
de routes
Réservation
de
ressources
Prise en
compte
des
cassures de
liens
Routes
redondantes
Non
Proactive
/réactive
Oui
Non
Non
Non
réactive
Oui
Non
Oui
Oui
Proactive
Non
Non
Non
Oui
réactive
Oui
Non
Non
Non
réactive
Oui
Oui
Oui
Non
réactive
Oui
Oui
Non
Oui
réactive
Non
Non
Non
Estimatimation de
délai/bande
passante
Tab.3.4 : exemples de protocoles de routage avec QoS.
Conclusion
Avec les avantages qu’offrent un MANET par rapport à d’autres types de réseaux, le
déploiement de nouvelles applications dans ces réseaux représente plusieurs intérêts. Pour
certaines applications, telles que le multimédia, l’introduction de la QoS dans les MANETs
est devenue une nécessité.
Plusieurs solutions ont été proposées à plusieurs niveaux pour atteindre cet objectif. Selon
le cas, ces solutions peuvent toucher une ou plusieurs couches du réseau, la solution qui
touche plus de niveaux est la solution la plus efficace. Dans notre étude on s’intéressera plus
particulièrement à la couche réseau, en essayant d’établir un routage efficace en termes de
certains critères de la QoS.
Ce présent chapitre discute le concept de QoS dans les MANETs, plus particulièrement le
routage avec QoS et les problèmes rencontrés dans le contexte ad hoc.
Dans le prochain chapitre, nous allons étudier les détailles de la conception d’un protocole
de routage avec QoS ; il s’agit d’une extension du protocole AODV étudié en détails dans le
chapitre 2 on lui rend sensible à une métrique de QoS.
45
Chapitre IV
Conception
Chapitre IV
Conception
- 46 -
Chapitre IV
Conception
Conception
1 Introduction
Deux approches sont possibles pour la conception d’un protocole de routage avec QoS :
Approche révolutionnaire qui consiste à concevoir un nouveau protocole avec de
nouvelles fonctionnalités.
Approche évolutionnaire qui consiste à faire des extensions des protocoles best effort
existants ou d’apporter des améliorations à un protocole de routage avec QoS en
ajoutant d’autres métriques par exemple.
Dans le cadre de cette étude nous avons choisi cette dernière pour deux raisons ; la
première qu’il est plus efficace et facile et encore moins coûteux d’améliorer un travail
existant qu’à refaire un autre travail de nouveau. La deuxième est qu’une extension d’un
protocole existant est plus compatible avec la version originale ce qui permet l’utilisation des
deux à la fois et facilite l’interconnexion des deux plate formes fonctionnant avec l’ancienne
et la nouvelle version du protocole. Le protocole concerné par cette étude est le protocole
AODV étudié en détail dans le chapitre II.
Comme nous l’avons vu, les chemins établis par le protocole AODV standard ne permettent
pas de garantir des critères de qualité de service. C'est pourquoi il semble important de faire
une extension de ce protocole afin d'assurer une certaine qualité de service. L’intégration de
la QoS dans AODV a pour objectifs :
Améliorer la QoS dans les réseaux mobiles ad hoc.
Introduire une métrique plus appropriée que la distance (nombre de sauts).
Évaluer les performances d’AODV afin de tester son efficacité pour des applications
exigeantes en QoS.
Dans cette partie, nous allons discuter les spécifications d’une solution qui intègre la QoS
dans le protocole AODV basée sur la métrique délai de bout en bout. Le choix de la métrique
délai de bout en bout est justifié par le besoin de déploiement des applications sensible à cette
métrique dans les MANETs telles que la VoIP.
Pour ce faire, nous avons commencé d’abord par la description de la méthode d’estimation
du délai qui sera utilisée pour aider AODV à intégrer cette métrique. Par la suite, nous
expliquons les modifications nécessaires ajoutées à la structure d’AODV ainsi que le nouveau
mécanisme de fonctionnement basé sur la recherche de routes assurant la métrique délai de
bout en bout, et une anatomie le l’agent de routage AODV avec QoS à travers quelques
diagrammes UML (Unified Modeling language).
2 Le routage AODV avec QoS
Plusieurs travaux ont visé à améliorer les performances du protocole AODV. Nous
pouvons citer à titre d’exemple : AOMDV (Ad-hoc on-demand multipath distance vector) [34],
AODVM (Ad hoc On-Demand Distance Vector Multipath)[35], AODV-BR (AODV with Backup
Routes) [36], EAODV(An Extended AODV protocol) [37], et QAODV (QoS Ad Hoc On-Demand
Distance Vector)[38]. Ces travaux essayent d’apporter des améliorations au protocole AODV
en termes de certains critères en utilisant des méthodes et techniques diverses.
Dans cette étude, nous nous intéressons plus particulièrement à la métrique délai de bout
en bout.
- 47 -
Chapitre IV
Conception
Afin de concevoir un protocole de routage avec QoS basé sur le délai comme métrique,
Une méthode d’estimation du délai est indispensable, pour cela, nous allons d’abord effectuer
une étude d’une méthode d’estimation du délai. La méthode adoptée dans cette étude est
basée sur le travail de C. Sarr dans [42].
2.1 Estimation du délai dans les MANETs
La méthode la plus classique d’estimer le délai consiste à calculer la différence entre le
temps d’envoi et le temps de réception d’un paquet donné. Cette méthode n’est pas précise
car, elle est basée sur l’hypothèse de synchronisation des unités mobiles, ce qui est difficile à
assurer dans un réseau ad hoc. En effet, d’autres travaux sont effectués, Une chronologie de
ces travaux est présentée dans [42]. La plupart de ces travaux essayant d’estimer le délai et qui
se basent sur la modélisation de la fonction DCF de 802.11 faite par Bianchi [44], cependant,
les hypothèses effectuées dans le modèle de Bianchi, ne sont pas réalistes et ne peuvent être
adaptées pour le calcul du délai dans un environnement ad hoc multi-sauts [42]. Ces
hypothèses sont :
Le nombre n de stations en compétition est connu et constant ;
La probabilité de collision est constante et indépendante ;
Cette probabilité de collision est la même pour tous les nœuds ;
Les nœuds sont tous dans la même zone de communication. Il n’y a donc pas de
phénomène de stations cachées, ni d’interférences.
Toutes ces hypothèses fondamentales permettent de simplifier les chaînes de Markov
obtenues et de les résoudre, ce qui ne sera pas le cas dans des réseaux ad hoc multi-sauts.
2.2 Estimation du délai à un saut
Le délai de bout en bout est une métrique additive. Il est égal à l’ensemble des délais à un
saut radio sur le chemin menant de la source à la destination. Ce dernier peut se décomposer
en deux parties :
Le délai entre l’instant où le paquet entre dans la file d’attente du nœud émetteur et
l’instant où il est passé à la couche MAC.
Le délai s’écoulant entre le moment où le paquet est reçu par la couche MAC jusqu’à
la réception de l’acquittement correspondant par le nœud récepteur, Un paquet se
trouvant à une station quelconque provient de deux sources : les paquets générés
localement au niveau du nœud considéré et les paquets routés qui passent par ce
nœud. Ainsi, chaque nœud du réseau peut jouer le rôle de nœud source, routeur ou
destination.
2.2.1 Détermination du délai dans la file d’attente
Un nœud sans fil de type 802.11 peut être vu comme un buffer qui se remplit par des
paquets entrants provenant des couches supérieures. Ainsi un seul serveur fournit le
traitement nécessaire pour ces paquets. Le système être modélisé par une file d’attente
M/M/1/K (comme indiqué dans la figure 4.1), possédant les propriétés suivantes :
L’arrivée des clients suit une loi exponentielle de paramètre λ .
Le traitement des clients suit également une loi exponentielle de paramètre µ .
Il y a un seul serveur pour le traitement des clients entrants.
La taille de la file est bornée par la valeur K . Un client est alors perdu s’il y a déjà K
clients dans le système [42].
- 48 -
Chapitre IV
Conception
Queue
µ
λ
Client
Serveur
n(t)≤K
Fig. 4.1- Modélisation d’un nœud 802.11 par une file M/M/1/K.
Le paramètre λ représente le débit désiré par l’application qui est explicitement fourni lors
de la phase de requête de route avec QoS.
Le paramètre µ représente la bande passante libre autour de ce nœud. Cette valeur peut
être estimée en calculant le pourcentage de temps libre TL qui sera ensuite multiplié par la
capacité maximale du médium radio Cmax suivant la formule :
µ = TL × C
m ax
…………...……………..4.1
La modélisation du taux de service µ par la bande passante résiduelle (libre) d’un nœud
permet de prendre en compte deux facteurs :
Le temps s’écoulant entre l’instant où le mobile rentre dans la file d’attente et l’instant
où il la quitte.
Le temps que le mobile doit attendre au niveau MAC avant de pouvoir émettre ses
paquets, le médium étant occupé par des transmissions voisines.
En effet, la bande passante libre n’est pas la même sur tous les nœuds du réseau. Cela
dépend du trafic passant par le nœud et de l’activité des transmissions des nœuds voisins. La
figure 4.2 montre un exemple de la variation de la bande passante libre dans le temps sur
deux nœuds du réseau obtenu par simulation (pour une capacité du médium de 11Mbps).
Fig. 4.2- Exemple de la bande passante libre sur deux nœuds d’un MANET.
- 49 -
Chapitre IV
Conception
Le délai d’un paquet dans la file d’attente de l’émetteur n’est autre que le temps moyen de
séjour noté R d’un client arrivant dans la file, donnée par la loi de Little :
R=
ρ 1 − (Κ +1) ρ Κ + Κρ Κ +1 1
1− ρ
1− ρΚ
λ
Avec : ρ =
λ
µ
Ce temps de service diverge lorsque ρ = 1. Nous allons donc calculer la limite de R quand
ρ → 1 de ce temps de service. On obtient donc comme résultat :
1
1
lim R = (Κ +1)
ρ →1
2
λ
D’où l’expression finale de R est donnée par :
ρ 1 − (Κ +1) ρ Κ + Κρ Κ+1 1
Si ρ ≠ 1
1− ρ
1− ρ Κ
λ
R=
………………..……….4.2
1
1
(Κ +1) Si ρ = 1
2
λ
2.2.2 Détermination du délai de propagation
Le délai de propagation est le délai qui s’écoule depuis l’arrivée d’un paquet à la couche
MAC jusqu’à la réception du paquet d’acquittement en provenance du nœud récepteur,
incluant toutes les retransmissions en cas de collision.
Soit P la probabilité de collision sur le lien considéré.
Soit n le nombre de retransmissions associées à la probabilité de collision p.
Soit X la variable aléatoire représentant le nombre de retransmissions. On a donc les
égalités suivantes en terme de probabilité :
P( X = 0) = p 0 (1 − p)
P( X = 1) = p1 (1 − p)
P( X = 2) = p 2 (1 − p)
.
.
.
j
P( X = j ) = p (1 − p) Pour j ≤ 6
Dans la norme IEEE 802.11 le nombre maximum de retransmissions est fixé à 7 donc :
P( X = 7) = p 7
P ( X = i) = 0 Si i ≥ 8
On remarque que le facteur (1 − p) n’est pas présent lorsque X = 7 , car après 7
retransmissions sans réception d’un acquittement, le paquet de données correspondant est
droppé par la couche MAC. Nous pouvons donc en déduire l’espérance de la variable
aléatoire X correspondant au nombre moyen de retransmissions n :
- 50 -
Chapitre IV
Conception
6
n = E ( X ) = ∑ i. p i (1 − p ) + 7 p 7
i =0
Pour obtenir une expression simplifiée de n en fonction de p on utilise les résultats sur la
dérivabilité des sommes géométriques :
6
On sait que : ∑ p i =
i =0
1 − p7
1− p
En dérivant cette expression par rapport à la variable p on obtient :
7
⇒ ∑ p i −1 =
i =0
6 p7 _ 7 p6 + 1
(1 − p ) 2
En multipliant l’expression par (1 − p ). p on obtient finalement :
7
n = ∑ p i (1 − p ) =
i =0
6 p8 _ 7 p7 + p
(1 − p )
………..…………..…4.3
De plus, selon la norme IEEE 802.11, à chaque collision la taille de la fenêtre de contention
est doublée ainsi à la i eme collision successive ( i ≤ 7 selon la norme IEEE 802.11) la taille de la
fenêtre de backoff est de 2i CWmin . Le backoff étant une loi uniforme, à chaque stage de backoff
nous prendrons la valeur moyenne pour représenter la valeur du backoff qui sera choisi pour le
paquet qui va être émis.
Ainsi le délai de propagation sur le canal noté D prop est donné par la formule :
n
1
D prop = ∑ ( DIFS + 2i CWmin + Tm )
2
i =o
n
1
1
D prop = ( n + 1)( DIFS + Tm ) + CWmin ∑ 2i
2
i =o 2
1
D prop = (n + 1)( DIFS + Tm ) + CWmin (2n+1 − 1) ……………………..4.4
2
Tm représente le temps moyen de propagation d’un paquet sur le médium. Cette valeur
est constante lorsque la capacité du médium est la même en tout point. C’est le temps
nécessaire pour transmettre les en-têtes MAC, physique et les données du paquet à émettre.
Ainsi le délai sur un lien d’un paquet de taille m noté D est :
D = R + D prop ………………………………………..4.5
Comme le montre la formule ci-dessus, le délai de transmission dépend de la probabilité
de collision entre un nœud émetteur et le récepteur. Si on considère un seul émetteur, ce taux
de collision n’est pas le même vers l’ensemble de ces nœuds voisins. Ainsi, le délai est
différencié suivant le voisin vers lequel en veut envoyer les donnés.
La probabilité de collision peut être estimée en utilisant l’envoi périodique des messages
HELLO. Chaque nœud calcule cette probabilité avec la formule suivante :
p=
Nombre de paquets HELLO entrés en collision
…………………….. 4.6
Nombrede paquets HELLO que l’on devrait recevoir
Le nombre de paquets entrés en collision est le nombre de paquets que l’on devrait
recevoir duquel on soustrait le nombre de paquets effectivement reçus durant une période de
mesure. Cette estimation n’est toujours pas assez précise, car les paquets HELLO peuvent
être influencés par une congestion ou une défaillance des liens que par des collisions. Toute
fois, cette problématique n’est pas prise en compte dans cette étude [42].
- 51 -
Chapitre IV
Conception
2.3 Détermination du délai multi sauts
Le délai est une métrique additive, autrement dit le délai moyen de bout en bout entre une
source s et une destination d noté Ds ,d est égal à la somme des délais Di moyens des liens
constituants ce chemin.
D s ,d =
∑
i∈[ s , d ]
Di
…......…………………………….. 4.7
3 Intégration dans AODV
Pour introduire la qualité de service dans AODV, un contrôle d’admission est nécessaire
pour permettre la vérification des conditions de la QoS demandée. L’idée repose sur l’ajout
d’un ou plusieurs champs dans les paquets de contrôle. Les informations qui contiennent ces
champs seront utilisées pour faciliter le contrôle d’admission effectué lors de l’établissement
des routes. Selon le principe de fonctionnement adopté, nous avons modifié le format de
deux paquets ; la requête de route RREQ, et les messages HELLO.
Dans le contexte de cette étude, nous essayons dans ce qui suit de mettre en œuvre les
modifications nécessaires pour que la méthode d’estimation du délai décrite précédemment
soit intégrée dans le protocole AODV. Le principe de ces extensions et de fonctionnement
du protocole AODV modifié est inspiré du draft [39] de l’IETF.
Pour distinguer le protocole AODV standard de l’extension faite dans ce travail, nous
avons appelé notre protocole: AODV-D (pour Ad-hoc On-demand Distance Vector with Delay
constraints), ou AODV avec contraints délai.
3.1 Extension de la RREQ
La requête de route est étendue pour inclure trois nouveaux champs, le premier spécifie le
délai maximum demandé à l’application, le deuxième pour la bande passante désirée et le
troisième est réservé au délai un saut calculé à la réception de la requête de route. Ces champs
seront utilisés pendant la diffusion de la requête de recherche de routes pour effectuer un
contrôle d’admission au niveau de chaque nœud intermédiaire.
J |R |G | D |U
Type
Reserved
Bande passante désirée
Délai max demandé
RREQ ID
Destination IP Address
Destination Sequence Number
Originator IP Address
Originator Sequence Number
Hop Count
Délai un saut calculé
Tab.4.1 : Format du message RREQ dans AODV-D.
- 52 -
Chapitre IV
Conception
3.2 Extension des messages HELLO
Les messages HELLO sont étendus pour inclure un nouveau champ, il spécifie la
probabilité de collision calculée à l’aide des messages HELLO suivant la formule 4.6 décrite
précédemment, cette valeur sera récupérer par la couche MAC lors de l’envoi de ces messages
afin de calculer le délai de propagation suivant les formules 4.3 et 4.4.
Type
R|A
Reserved
Prefix Sz
Destination IP Address
Destination Sequence Number
Originator IP Address
Lifetime
Probabilité de collision
Hop Count
Tab.4.2 : Format du message HELLO dans AODV-D.
3.3 Mécanisme de routage AODV-D
3.3.1 Découverte des routes
Puisque le protocole AODV-D est inspiré du protocole AODV, il garde la plupart de ces
mécanismes de fonctionnement avec des modifications pendant la diffusion de la requête de
découverte des routes. En plus, pour faciliter le contrôle d’admission effectué lors de la
diffusion de RREQ, une approche proactive sera utilisée pour estimer le délai de propagation
au niveau de chaque lien actif. En utilisant la diffusion périodique des messages HELLO
effectuer par le protocole AODV, chaque nœud déduit alors la valeur de la probabilité de
collision au niveau de chaque lien à l’aide de l’équation 4.6 ce qui lui permet de calculer le
délai de propagation sur le lien concerné avec les équations 4.3 et 4.4.
Une autre valeur sera calculée périodiquement est la bande passante résiduelle (libre) pour
chaque nœud à l’aide de l’équation 4.1. Celle-ci sera utilisée lors de la réception d’une RREQ
(après la récupération de la bande passante désirée) pour le calcul du délai probablement
passé dans la file d’attente du nœud considéré à l’aide de l’équation 4.2. On déduit alors le
délai à un saut D par une simple addition avec le délai de propagation suivant l’équation 4.5,
le délai un saut D sera marqué dans le champ dédié de la RREQ pour une utilisation dans le
contrôle d’admission effectué par le protocole AODV-D
Si un nœud source veut communiquer avec un autre nœud qui n’a pas une route valide
dans sa table de routage pour cette destination, une procédure de découverte de route est
initiée. Le nœud source diffuse d’abord une requête RREQ à travers le réseau, Quand un
nœud intermédiaire reçoit une RREQ, il vérifie d’ abord s’il existe une route valide dans la
table de routage s’il existe une route il renvoi un RREP vers la source, sinon, avant de
retransmettre le message, il effectue un contrôle d’admission pour tester le délai. Celui-ci
consiste à comparer la valeur du champ « délai max demandé » de la requête RREQ avec le
délai calculé. Si ce dernier est inférieur à celui du message RREQ alors cette valeur sera
soustraite de la valeur du RREQ, ensuite le message sera diffusé vers la destination. Sinon la
RREQ sera dropé directement par ce nœud intermédiaire. Dans ce cas, la source doit
retransmettre une autre RREQ jusqu’à un certain nombre de fois comme le fait le protocole
AODV standard (figure 4.3).
- 53 -
Chapitre IV
Conception
Fig.4.3- découverte de routes dans AODV-D.
Quand la destination reçoit la RREQ, elle fait le même contrôle, s’il est vérifié, elle envoie
une requête RREP en mode unicast vers la source par le chemin inverse pour la validation de
la route concernée (figure 4.4), chaque nœud intermédiaire doit mettre à jour sa table de
routage. La communication entre la source et la destination peut alors avoir lieu en respectant
le délai requis par la source, jusqu’à ce que l’une des extrémités ferme la connexion, ou
jusqu’à ce que la route utilisée se brise ou se dégrade.
Fig.4.4 : chemin de RREP.
3.3.2 Maintenance des routes
Pour la maintenance des routes, le protocole AODV-D maintient le même mécanisme de
que le protocole AODV standard. Les cassures des routes sont détectées grâce à l’envoi
périodique des messages HELLO. Si un nœud ne reçoit pas un message HELLO d'un certain
voisin durant un intervalle de temps prédéfini, il marque les routes utilisant ce voisin comme
invalides et envoie un message d’erreur RERR aux voisins en amont de la route. Seule la
source initie de nouveau une procédure de découverte de route après avoir reçu le message
d'erreur.
L’utilisation des messages HELLO habituels pour l’estimation du délai permet une
minimisation du trafic de contrôle destiné généralement à de telles taches. Cela offre deux
avantages : d’un coté les routes établies assurent les exigences de QoS en termes de délai de
bout en bout. De l’autre coté il n’y aurait pas un trafic supplémentaire surchargeant le réseau,
ce qui a une influence sur le délai à cause de l’augmentation de la probabilité de collisions et
des interférences.
L’organigramme d’exécution du protocole AODV-D est présenté dans la figure 4.5.
- 54 -
Chapitre IV
Conception
Fig. 4.5 - L'organigramme d'exécution de AODV-D.
3.4 Limitations
La partie touchée par les modifications concerne seulement la phase de découverte de
routes c'est-à-dire la diffusion de la requête RREQ (voire figure 4.6). En effet, la solution
présentée dans la section précédente permet au protocole AODV-D d’assurer un certain
degré de qualité de service de telle sorte que toutes les routes établies respectent la métrique
délai de bout en bout. Cependant aucune garantie n’est fournie pendant la transmission des
paquets de données. Si le délai augmente sur un chemin après la validation de ce lui ci, aucun
mécanisme de détection et de maintenance de telles situations n’est fournie. Autrement dit, la
QoS offerte est relâchée (soft QoS).
- 55 -
Chapitre IV
Conception
CA : contrôle d’admission.
Fig. 4.6 : L’organigramme d’exécution de RREQ pour AODV-D.
- 56 -
Chapitre IV
Conception
4 Diagramme de séquence
La figure 4.7 illustre le diagramme de séquence qui résume les principales opérations
effectuées par le protocole AODV-D. Il montre également l’enchainement des principales
étapes par lesquelles doit passer AODV-D pendant la phase de découverte de routes et
l’emplacement du contrôle d’admission effectué par les nœuds intermédiaires et la
destination.
Fig. 4.7 : Diagramme de séquence d’AODV-D.
5 Diagramme de classes
La figure 4.8 montre le diagramme de classes du protocole AODV-D [46]. Notons ici que
le diagramme a gardé la même structure que celui d’AODV. Les modifications effectuées
concerne certains attributs et opérations et non les classes eux même ; On n’a pas ajouté des
classe ni éliminé d’autres.
La conception du protocole AODV-D a été faite autour de la classe pivot AODV. C’est la
classe de tous les objets participant à l’exécution du protocole sur les nœuds. Ces objets
occupent la couche réseau dans chaque nœud. La classe AODV utilise les objets des classes:
BroadcastTimer, HelloTimer, NeighborTimer, RouteCacheTimer, LocalRepairTimer,
aodv_rtable et aodv_rqueue pour maintenir les états (valeurs de ces attributs), et c’est au
niveau de cette classe que les modifications du protocole AODV sont introduites en ajoutant
quelques fonctionnalités concernant le contrôle d’admission qui vérifie la métrique de QoS
considérée. Les composants touchés par les modifications sont marquées en gras dans la
figure 4.8.
Le point d’entrée de la classe AODV est la méthode recv( ). A partir de cette méthode on
fait appel à toutes les autres fonctions de la classe AODV. Parmi eux, la fonction
recvAODV( ), celle-ci fait appel la fonction recvrequest( ), et c’est exactement ici que le
contrôle d’admission est effectué.
- 57 -
Chapitre IV
Conception
Fig. 4.8 : Diagramme de classes d’AODV-D.
- 58 -
Chapitre IV
Conception
Conclusion
Ce présent chapitre décrits les spécifications d’une solution qui permet d'étendre le
protocole AODV pour garantir de la QoS en termes de délai de bout en bout. Il détaille
également le principe de fonctionnement du nouveau protocole et la méthode d'estimation
du délai utilisée.
Ce chapitre a été dédié à la conception de AODV-D. nous y avons abordé les principaux
diagrammes UML qui montrent les relations entre les différentes classes du protocole. Ces
classes sont en grande partie, basées sur les classes AODV.
Le prochain chapitre sera consacré aux détails de l’implémentation du protocole AODV-D
modifié sous le simulateur NS-2 (network simulator 2).
- 59 -
Chapitre V
Implémentation
Chapitre V
Implémentation
- 60 -
Chapitre V
Implémentation
Implémentation
1 Introduction
Avec l’évolution des réseaux sans fil et l’élaboration de plusieurs normes pour ces réseaux,
et avec le besoin des simulations dans le contexte de l’évaluation des performances, de
nombreux simulateurs des réseaux ont été développés. Les simulateurs les plus connus sont :
NS-2 (Network Simulator 2), OPNET et GloMoSim/Qualnet [15].
Dans le cadre de notre étude, nous avons choisi le simulateur NS-2 (voir annexe A)
développé à Lawrence Berkeley National Laboratory (LBNL). C’est le simulateur de réseaux le
plus utilisé par la communauté des chercheurs dans les MANETs. NS-2 offre plusieurs
avantages ; nous pouvons citer [38]:
Il est open source et gratuit. Il englobe les contributions de nombreux chercheurs à
travers le monde.
Il peut être étendu à d'autres modèles grâce à sa conception orientée objet et son
implémentation en C++.
Il est riche en modèles et en protocoles pour les environnements filaires et mobiles.
Il fournit des résultats fiables sous forme de fichier trace riche en informations que
l'utilisateur peut exploiter.
Il est bien documenté. Les ressources bibliographiques relatives à sa conception et son
implémentation sont très nombreuses.
Il est utilisé dans plus de 43% des travaux de recherche dans le domaine du routage dans
les réseaux MANETs.
Il inclut les implémentations de quatre protocoles de routage dans les MANETs à savoir :
AODV, DSDV, DSR et TORA.
En plus de ces avantages, l’approche évolutive que nous avons choisie dans cette étude
justifie notre choix de NS-2, car une implémentation du protocole AODV existe déjà, il suffit
donc d’y apporter les modifications nécessaires qui permettent d’intégrer la QoS dans AODV
en appliquant la méthode décrite dans le quatrième chapitre.
Ce présent chapitre est consacré aux détails de l’implémentation du protocole AODV-D
sous NS-2. Pour ce faire, nous présentons d’abord les différents fichiers et modules
concernés par les modifications. Ensuite nous décrivons les modifications nécessaires du
protocole IEEE 802.11 pour intégrer la méthode d’estimation du délai adoptée, et enfin, les
nouvelles méthodes ajoutées, les changements dans le format des paquets, et le mécanisme de
fonctionnement de l’agent de routage AODV-D.
2 Présentation d’AODV sous NS-2
L’implémentation du protocole AODV sous NS-2 a été faite autour des fichiers sources
situés dans le répertoire : \cygwin\...\ns-allinone-2.33\ns-2.33\aodv. Les fichiers concernés
sont les suivants :
• aodv.h : c’est le fichier principal (header) dans lequel sont définis tous les timers
(temporisateurs) nécessaires, et l’agent de routage qui exécute les fonctionnalités du
protocole.
• aodv.cc : dans lequel tous les timers, les Tclhooks (liens entre les composants c++ et
ceux d’OTcl) sont implémentés, ainsi que l’agent de routage et ces fonctionnalités.
- 61 -
Chapitre V
Implémentation
• aodv_packet.h : ici sont déclarés tous les types de paquets qu’utilise AODV dans les
échanges entre les nœuds du réseau.
• aodv_rtable.h : le fichier header où la table de routage est déclarée.
• aodv_rtable.cc : implémentation de la table de routage.
• aodv_rqueue.h : ce fichier définit la file d’attente utilisée par le protocole de routage
et la déclaration des différentes fonctions et méthodes utilisées qui servent à la
manipulation de cette file.
• aodv_rqueue.cc : il contient l’implémentation de la file et de fonctionnalités.
• aodv_logs.cc : destiné à la gestion de la connectivité locale entre les nœuds du réseau.
Pour plus de détails d’implémentation du protocole AODV sous NS-2 et la relations entre
ces fichiers et avec d’autres fichiers ainsi que les différentes classes et méthodes utilisées, voir
[45].
3 Présentation du protocole MAC-802.11 sous NS-2
Le simulateur NS-2 implémente également le protocole Mac_802.11 qui sera utilisé dans
cette étude au niveau MAC. L’implémentation de ce dernier est faite dans le répertoire
/ns.2.33/mac autour des fichiers suivant :
• mac-802_11.h : c’est le fichier header dans lequel la classe de base Mac802_11 est
déclarée ainsi que tous ces composants et attributs nécessaires au fonctionnement du
protocole. il définit aussi les formats de paquets de contrôle utilisés.
• mac-802_11.cc : dans lequel sont implémentées toutes les fonctionnalités du
protocole
• mac-timers.h : dans lequel sont déclarés tous les Timers utilisés.
• mac-timers.cc : ici les Timers déclarés dans mac-timers.h sont implémentés.
Dans ce qui suit, nous décrivons les modifications nécessaires apportées à ces fichiers pour
implémenter la méthode d’estimation du délai décrite précédemment.
4 Structure des nœuds AODV et AODV-D sous NS-2
La classe Node est la classe de base qui permet l’instanciation des objets nœuds dans le
simulateur NS-2. MobileNode héritée de la classe Node permet la création des nœuds
mobiles. Elle offre les fonctionnalités nécessaires au fonctionnement de ce type de nœuds
comme le mouvement et la possibilité d’envoyer et de recevoir des paquets dans un canal de
transmission. Les composants de la mobilité tels que le mouvement, la mise à jour périodique
de la position du nœud, et le maintien des frontières de la topologie sont implémentés en
C++. Tandis que les composants réseau (MAC, LL, Classifier ...) plantés dans le nœud sont
implémentés en OTcl.
La figure 5.1 montre que la structure du nœud AODV-D est légèrement différente de celle
utilisée pour AODV standard. Les principales différences sont :
• couche MAC : le protocole 802.11 intègre un mécanisme d’estimation du délai afin
de l’utiliser par l’agent de routage AODV-D alors que le standard ne procède pas cette
fonctionnalité.
• couche réseau : la nouvelle structure a comme entée l’agent de routage AODV-D au
lieu de l’agent AODV standard, la différence entre les deux est que le premier effectue
un contrôle d’admission pour les requêtes de route entrantes afin de vérifier la
métrique délai de bout en bout exigé par l’application.
- 62 -
Chapitre V
Implémentation
• Couche application : dans le cas AODV-D, l’agent applicatif est capable d’initialiser
les besoins en QoS. Ceci est le cas général. Dans notre cas, nous avons procédé
comme dans la section 7 de ce chapitre.
Fig. 5.1 : structure des nœuds AODV et AODV-D sous NS-2.
5 Implémentation d’AODV-D sous NS-2
Dans cette partie, nous allons discuter les détails d’implémentation du protocole AODV-D
sous le simulateur NS-2. Il s’agit d’une extension du protocole AODV tout en gardant le
protocole IEEE 802.11 au niveau MAC. Afin de faciliter cette phase, nous avons gardé les
mêmes noms des classes et des fichiers.
L’extension étudiée consiste en l’intégration de la QoS dans AODV en termes du délai de
bout en bout, une méthode d’estimation du délai sera intégrée au niveau de la couche MAC en
ajoutant les modifications nécessaires au protocole MAC_802.11.
- 63 -
Chapitre V
Implémentation
5.1 Estimation du délai au niveau de la couche MAC
L’estimation du délai est faite au niveau de la couche MAC, car elle est plus simple et
pertinente. La prise en compte des interférences et des flux voisins ne nécessite pas l’ajout
d’un trafic de contrôle supplémentaire ce qui est en opposition avec la nature réactive du
protocole AODV.
Dans la méthode d’estimation adoptée nous avons décomposé le délai à un saut en deux
parties : le délai dans la file d’attente noté R et le délai de propagation noté D prop .
Pour le premier, nous l’avons calculé avec l’équation 4.2. Cette équation dépend de deux
paramètres :
Le premier est le paramètre λ qui représente le débit désiré par l’application qui est
explicitement fourni lors de la phase de requête de route avec QoS.
Le deuxième est Le paramètre µ qui représente la bande passante libre (appelée aussi
résiduelle) autour de ce nœud. Celle ci sera calculée à chaque période T.
Pour le deuxième, il dépend de la probabilité de collision au niveau du nœud récepteur,
celle-ci est calculée périodiquement avec l’équation 4.5. Ensuite, nous calculons le nombre de
retransmissions possible avec l’équation 4.3, enfin en déduit le délai de propagation D prop par
l’equation4.4.
Le délai un saut est obtenu alors par une simple addition suivant la formule 4.7. Dans ce
qui suit, nous décrivons les modifications nécessaires dans le protocole IEEE 802.11 qui
permettent l’estimation du délai un saut à l’aide de l’implémentation des équations décrites
précédemment.
5.1.1 Estimation de la bande passante libre sur un nœud
Pour estimer la bande passante libre, des modifications dans le fichier mac_802.11.cc sont
nécessaires, plus précisément la classe Mac.802_11. La méthode adoptée pour calculer la
bande passante libre est basée sur le calcul du pourcentage du temps libre autour d’un nœud.
Cette information n’est pas disponible dans la base des informations de la classe MAC802.11
originale. L’idée est simple, il s’agit d’ajouter un temporisateur (Timer), à chaque période (T) il
teste l’objet MAC802.11. Le temporisateur est déclaré dans le fichier mac_timers.h et
implémenté dans le fichier mac_timers.cc comme le montre le code suivant :
Listing 5.1 : Implémentation du Timer.
Void
bandwidthTimer::handle(Event *)
{
busy_ = 0;
paused_ = 0;
stime = 0.0;
rtime = 0.0;
mac->bandwidthHandler();
T = (MinHelloInterval +
((MaxHelloInterval - MinHelloInterval) * Random::uniform()))/1;
assert(T>=0);
rtime = T;
Scheduler::instance().schedule(this, &intr,rtime);
}
- 64 -
Chapitre V
Implémentation
Le temporisateur T est choisi aléatoirement entre les deux valeurs : MinHelloInterval et
définis par le protocole AODV pour envoyer les messages HELLO. A
l’expiration du temporisateur, la fonction bandwidthHandler()(dans laquelle nous avons
fait la mise à jour de la bande passante libre) est appelée.
Un objet MAC802.11 est soit en émission, soit en réception sinon il est libre. La classe
MAC802.11 originale implémente deux méthodes pour la mise à jour de son état. A chaque
envoi (données, RTS, CTS, ACK) la méthode SetTxState est appelée, et à chaque réception
c’est la méthode SetRxState qui est appelée.
On peut déduire le taux d’occupation du medium par le nœud en introduisant deux
variables, la première représente le temps de toutes les transmissions (Send_time) et la
deuxième représente celui de toutes les réceptions (Rcv_time) pendant la fenêtre de temps
(T). La mise à jour des variables (Send_time) et (Rcv_time) est introduite dans les
méthodes SetRxState et SetTxState respectivement dans le fichier \ns2.33\mac\mac_802.11.cc (voir listing5.2):
MaxHelloInterval
Listing 5.2 : mise à jour des temps d’émission et de réception
inline void
Mac802_11::setRxState(MacState newState)
{
rx_state_ = newState;
checkBackoffTimer();
double time=0.0;
//le temps de la réception.
if (rx_state_ == MAC_RECV)
{
time = txtime(pktRx_);
}
else if
(rx_state_ == MAC_ACK)
{
time = txtime(phymib_.getACKlen(),basicRate_);
}
else if (rx_state_ == MAC_RTS)
{
time = txtime(phymib_.getRTSlen(),basicRate_);
}
else if
(rx_state_ == MAC_CTS)
{
time = txtime(phymib_.getCTSlen(),basicRate_);
}
Rcv_time += time; //mise à jour de Rcv_time.
}
inline void
Mac802_11::setTxState(MacState newState)
{
tx_state_ = newState;
checkBackoffTimer();
double time = 0.0; //le temps de la réception.
if (tx_state_ == MAC_SEND)
{
time = txtime(pktTx_);
}
else if
(tx_state_ == MAC_ACK)
- 65 -
Chapitre V
Implémentation
{
time = txtime(phymib_.getACKlen(),basicRate_);
}
else if (tx_state_ ==MAC_RTS)
{
time = txtime(phymib_.getRTSlen(),basicRate_);
}
else if (tx_state_ == MAC_CTS)
{
time = txtime(phymib_.getCTSlen(),basicRate_);
}
Send_time += time; //mise à jour de Send_time.
}
Une fois Rcv_time et Send_time connus, nous pouvons calculer le taux d’occupation du
médium (Busy_time ) par la relation suivante :
Busy_time = Rcv_time + Send_time/T
Le pourcentage du temps libre (free_time) sera égal à (1- Busy_time). La bande passante
libre autour d’un nœud est égale la capacité du médium Cmax multipliée par le pourcentage du
temps libre free_time (équation 4.1). Pour ce faire, nous avons introduit une nouvelle
méthode à la classe mac_802.11 qui fait un calcule périodique de la bande passante libre
(paramètre µ ) ainsi que la mise à jour de Rcv_time et Send_time. La méthode est
bandwidthHandler(), son code est donné dans listing 5.3 :
Listing 5.3 : mise à jour de la bande passante libre.
void
Mac802_11 :: bandwidthHandler()
{
busy_time = (Rcv_time+Send_time)/mhbwTimer_.T;
free_time = (1-busy_time);
freebw_ = free_time * dataRate_ ;//la bande passante libre.
Rcv_time = Send_time = 0.0;
}
5.1.2 Récupération du paramètre λ
Le paramètre λ qui représente la bande passante désirée, est fourni avec la requête
RREQ. Pour le récupérer au niveau MAC, nous avons autorisé le protocole 802.11 d’accéder
directement à l’entête du paquet RREQ.
La méthode RecvDADA() qui est dans le fichier \ns-2.33\mac\mac_802.11.cc est le point
de service qui passe le paquet reçu par la couche MAC à la couche réseau, et c’est ici que nous
récupérons la bande passante désirée ( λ ) afin de calculer le délai dans la file d’attente R .
- 66 -
Chapitre V
Implémentation
5.1.3 Le délai dans la file d’attente R
Une fois les deux paramètres λ et µ connus, on peut déduire le délai dans la file d’attente
R avec l’équation 4.2. Pour ce faire nous avons ajouté une nouvelle variable Q_delay à la
classe Mac_802.11 (représente la valeur de R) qui sera calculée au niveau de la méthode
RecvDADA() à chaque fois qu’on reçoit un paquet de type RREQ comme le montre le listing
5.4 :
Listing 5.4 : Code permettant l’estimation du délai dans la file.
void
Mac802_11::recvDATA(Packet *p)
{
struct hdr_cmn *ch = HDR_CMN(p);
………………………..
double free, req_bw, rho, q ;
struct hdr_aodv *ah_= HDR_AODV(p);
struct hdr_aodv_request *rq_= HDR_AODV_REQUEST(p);
if (ch->ptype() == PT_AODV)
{
if (ah_->ah_type == AODVTYPE_RREQ)
{
req_bw = rq_->bw_req; //récupération de paramètre λ de la RREQ.
free = freebw_;
// la bande passante libre (le parameter µ
rho = req_bw/free;
q = 50.0;
// la taille de la file.
if (rho < 1.0)
{
Q_delay = (rho*(1.0-((q+1.0)*pow(rho,q))+(q*pow(rho,q+1.0))))
/((1.0-rho)* free *(1.0 - pow(rho,q))) ;
//le délai R dans la file d’attente avec la formule 4.2.
}
}
}
5.1.4 Estimation du délai de propagation
La deuxième partie du délai un saut est le délai de propagation qui est le délai s’écoulant
entre le moment où le paquet est reçu par la couche MAC jusqu’à la réception de
l’acquittement correspondant par le nœud récepteur y compris toutes les retransmissions
possibles dues aux collisions. La méthode qu’on a choisie est basée sur l’estimation de la
probabilité de collision à l’aide de l’envoi périodique des messages HELLO. L’implémentation
de cette méthode est faite au niveau de la couche réseau par le protocole AODV. Elle sera
discutée dans les sections suivantes.
Le délai de propagation est calculé au niveau de la couche MAC. En utilisant l’envoi
périodique des messages HELLO pour passer la valeur de la probabilité de collision à la
couche Mac, cela est fait au niveau de la méthode sendData() dans le fichier mac_802.11.cc
juste avant l’envoi du paquet HELLO. Cette valeur sera enregistrée dans la variable
p_collision ajoutée à la classe Mac_802.11 comme le montre le listing 5.5 :
- 67 -
Chapitre V
Implémentation
Listing 5.5 : Récupération de la probabilité de collision.
void
Mac802_11::sendDATA(Packet *p)
{
hdr_cmn* ch = HDR_CMN(p);
struct hdr_mac802_11* dh = HDR_MAC802_11(p);
…………………………………………………………
struct hdr_aodv *ah_= HDR_AODV(p);
struct hdr_aodv_reply *rp_ = HDR_AODV_REPLY(p);
if(ch->ptype() == PT_AODV)
{
if(ah_->ah_type == AODVTYPE_HELLO)
{
p_collision = rp_->collision;///récupération de la probabilité
de collision des messages HELLO.
}
}
…………………………………………………………
pktTx_ = p;
}
Une fois la probabilité de collision connue on peut calculer le délai de probagation avec les
equations 4.3 et 4.4. Pour implémenter ces équations nous avons ajouté une nouvelle variable
D_prop_estimation à la class Mac_802.11 dans le fichier\ns-2.33\mac\mac_802.11.cc, la
mis à jour de la valeur de cette variable sera faite au niveau de la méthode RecvDADA() à
chaque fois que celle-ci est invoquée (listing 5.6) :
Listing 5.6 : Estimation du délai de propagation.
void
Mac802_11::recvDATA(Packet *p)
Double N ;
………………………………………………………………………
if (p_collision > 0.0)
{
nbr_retransmit=(5.0*pow(p_collision,8.0)-7.0*(pow(p_collision,7.0))
+p_collision)/(1.0- p_collision);
//nombre de retransmission calculé avec l’équation 4.3
if (nbr_retransmit <= 0.0)
{
N = 0.0 ;
}
else {
N = floor(nbr_retransmit);
}
}
D_prop_estimation =(N+1.0)*(phymib_.getDIFS()+txtime(ch->size(),dataRate_))
+(0.5*phymib_.getCWMin()*phymib_.getSlotTime()*(pow(2.0,N+1.0)-1.0));
// délai de propagation calculé avec l’équation 4.4.
……………………………………………………………………….
- 68 -
Chapitre V
Implémentation
5.1.5 Le délai à un saut
Dans la même fonction (RecvDADA()), avant de passer le paquet à la couche réseau (le
protocole AODV-D dans notre cas), nous calculons le délai un saut par une simple addition entre
les deux variables D_prop_estimation et Q_delay, nous le recopions en suite dans le paquet
RREQ afin de l’utiliser dans le contrôle d’admission par le protocole AODV-D (listing 5.7) :
Listing 5.7 : copie du délai un saut dans la RREQ .
…………………………
rq_->one_hop_delay = Q_delay
+ D_prop_estimation;
………………………..
uptarget_->recv(p, (Handler*) 0);
}
6 Les modifications au niveau de la couche réseau
Après avoir terminé avec l’estimation du délai au niveau MAC, passons maintenant à la
couche réseau. C’est à ce niveau que l’agent de routage AODV exécute ces différentes
fonctionnalités. Pour simplifier l’implémentation des modifications nous avons gardé le
même nom de l’agent et les mêmes fonctionnalités (la gestion des paquets de contrôle, de la
table de routage…).
6.1 Le format du paquet RREQ dans AODV-D
Trois champs sont ajoutés au format du paquet RREQ : Le premier représente le délai_max
à ne pas dépasser (exigé par l’application), le deuxième concerne la bande passante désirée (le
paramètre λ ), le dernier est réservé au délai un saut calculé au niveau de la couche MAC.
La modification du paquet est faite dans le fichier aodv_packet.h qui contient toutes les
déclarations des paquets AODV (listing 5.8):
Listing 5.8 : extension du paquet RREQ .
Struct hdr_aodv_request {
u_int8_t
rq_type;
//
u_int8_t
reserved[2];
u_int8_t
rq_hop_count;
u_int32_t
rq_bcast_id;
nsaddr_t
rq_dst;
u_int32_t
rq_dst_seqno;
nsaddr_t
rq_src;
u_int32_t
rq_src_seqno;
double
rq_timestamp;
latency
double
double
double
MAC
}
max_delay;
bw_req;
one_hop_delay;
Packet Type
//
//
//
//
//
//
//
//
Hop Count
Broadcast ID
Destination IP Address
Destination Sequence Number
Source IP Address
Source Sequence Number
when REQUEST sent;
used to compute route discovery
// délai demandé par l'application
// bande passante demandée
//le délai un saut calculé au niveau
- 69 -
Chapitre V
Implémentation
6.2 Le format du paquet RREP dans AODV-D
Le format des paquets RREP a été modifié en ajoutant un champ qui est réservé à la
probabilité de collision (voir listing5.9). Ce champ sera rempli lors de l’envoi des messages
HELLO (notons ici que les messages HELLO utilisent le format des paquets RREQ) :
Listing 5.9 : extension du paquet RREP.
struct hdr_aodv_reply {
u_int8_t
rp_type;
u_int8_t
reserved[2];
u_int8_t
rp_hop_count;
nsaddr_t
rp_dst;
u_int32_t
rp_dst_seqno;
nsaddr_t
rp_src;
double
rp_lifetime;
double
collision;
double
rp_timestamp;
//used to
// Packet Type
//
//
//
//
Hop Count
Destination IP Address
Destination Sequence Number
Source IP Address
// Lifetime
// probabilité de collision
// when corresponding REQ sent;
compute route discovery latency
6.3 Contrôle d’admission
L’agent de routage AODV reçoit les paquets provenant des couches supérieures ou
inférieurs par la méthode recv( ) située dans le fichier aodv.cc. Si le paquet est venu de la
couche MAC. L’agent de routage va tester le type de paquet avec la méthode recvAODV(p)
située toujours dans le même fichier. Si ce paquet est une RREQ, la méthode recvRequest(p)
est appelée. Selon le cas, le paquet sera ignoré en appelant la méthode drop (p) ou bien
rediffusé par la méthode forward( ) vers les voisins. Les différentes méthodes appelées lors de
la découverte de routes par le protocole AODV-D sont présentées dans la figure 5.2 [46].
Dans AODV standard la requête de route est dropée par un nœud pour deux raisons : soit
le nœud est la source elle-même c'est-à-dire qu’elle a reçu sa propre requête, Soit le paquet est
déjà passé par ce nœud. Une troisième raison est ajoutée dans AODV-D, il s’agit d’un contrôle
d’admission qui teste la métrique délai, puisque les paramètres de QoS (délai max et bande
passante désirée) sont fournis avec la RREQ, le contrôle d’admission sera effectué au niveau
de la méthode recvRequest() en introduit les modifications nécessaires. Ces modifications
consistent à comparer le champ délai_max (le délai demandé par l’application) du paquet
RREQ avec le délai un saut récupéré de la couche MAC. Si ce dernier est supérieur au délai
max, le paquet sera dropé, sinon on fait une mise à jour du champ délai max par une
soustraction du délai calculé du délai max (listing5.10).
- 70 -
Chapitre V
Implémentation
Fig.5.2 : les méthodes appelées par AODV-D (découverte de route).
Listing 5.10 : contrôle d’admission.
void
AODV::recvRequest(Packet *p) {
struct hdr_ip *ih = HDR_IP(p);
struct hdr_aodv_request *rq = HDR_AODV_REQUEST(p);
aodv_rt_entry *rt;
/*
* Drop if:
*
- I'm the source
*
- I recently heard this request.
*
- le délai n'est pas suffisant. (Exigences de QoS).
*/
if(rq->rq_src == index) {
#ifdef DEBUG
fprintf(stderr, "%s: got my own REQUEST\n", __FUNCTION__);
#endif // DEBUG
Packet::free(p);
return;
}
if (id_lookup(rq->rq_src, rq->rq_bcast_id)) {
#ifdef DEBUG
fprintf(stderr, "%s: discarding request\n", __FUNCTION__);
#endif // DEBUG
- 71 -
Chapitre V
Implémentation
Packet::free(p);
return;
}
/*controle d’admission*/
if (rq->max_delay >= rq->one_hop_delay)
{
rq->max_delay = rq->max_delay - rq->one_hop_delay;
}
else {
#ifdef DEBUG
fprintf(stderr, "%s: délai insuffisant\n", __FUNCTION__);
#endif // DEBUG
Packet::free(p);
return;
}
………….
forward((aodv_rt_entry*) 0, p, DELAY);
}
6.4 La probabilité de collision
La probabilité de collision est estimée à l’aide de l’envoi périodique des messages HELLO
suivant l’équation 4.5. Pour ce faire, nous avons utilisé les méthodes existant par le protocole
AODV pour la gestion de voisinage :nb_insert(), nb_delete() et nb_purge()q,en
ajoutant les quatre variables suivantes à la classe AODV :
• nbr_neighbors : pour compter le nombre de voisins actifs, à chaque fois que la
fonction nb_insert()est appelée on incrémente de 1 et à chaque fois que la méthode
nb_delete() est appelée en décrémente de 1.
• nbr_ph_rsv : pour le nombre de paquets HELLO effectivement reçus pendant la
période mesure, à chaque fois la méthode revcHello() est appelée on incrémente de 1.
• nbr_ph_must_rsv : c’est le nombre de paquets HELLO que l’on devra reçus pendant
la période de mesure, qui est égale à :
nbr_neighbors * la période de mesure * le temps séparant deux messages HELLO
(on a choisi la valeur MaxHelloInterval pour s’assurer que tous les voisins ont envoyé leurs
messages HELLO).
la mis à jour de la valeur de cette variable est faite au niveau de la méthode
nb_purge()qui est appelée périodiquement.
• p_coll : au niveau de la même méthode, on calcule la probabilité de collision avec
l’équation 4.6 comme le montre le code donné dans le listing 5.11 :
Listing 5.11 : mis à jour de la probabilité de collision.
void
AODV::nb_purge()
{
AODV_Neighbor *nb = nbhead.lh_first;
AODV_Neighbor *nbn;
double now = CURRENT_TIME;
- 72 -
Chapitre V
Implémentation
if (nbr_neighbors >= 1.0){
nbr_ph_must_rsv = nbr_neighbors*MaxHelloInterval*3;//3 seconde (période
de mesure).
p_coll = (nbr_ph_must_rsv - nbr_ph_rsv)/nbr_ph_must_rsv;
//calcule de la probabilité de collision avec l’équation 4.6.
nbr_ph_rsv = 0.0;
for(; nb; nb = nbn) {
nbn = nb->nb_link.le_next;
if(nb->nb_expire <= now) {
nb_delete(nb->nb_addr);
}
}
}
7 Les exigences de QoS
Dans le cas général, les exigences de QoS sont fournies par l’application. Selon le type de
l’application, les demandes sont multiples (délai, bande passante, gigue…). Ceci nécessite la
création d’un agent applicatif qui est capable d’envoyer des paquets exigeant une QoS. Ces
exigences seront récupérées par l’agent de routage avec QoS afin de les utiliser dans les
différentes phases d’établissement des routes.
Dans notre cas, nous supposons que le trafic circulant à travers le réseau est de même type
(VoIP par exemple) et exige donc les mêmes contraintes de QoS. En effet, nous n’avons pas
créé un agent applicatif exigeant la QoS, mais ces derniers seront initialisés directement par
l’agent de routage AODV-D, l’objectif étant de tester l’approche d’estimation du délai choisie
et le mécanisme de routage avec QoS intégré dans le protocole AODV. Pour ce faire, nous
avons ajouté trois variables à la classe AODV :
• req_bandwitdh et req_delay : Ces deux variables servent à spécifier les
exigences en bande passante et/ou délai respectivement. Cela est fait au niveau de la
méthode sendRequest()en remplissant les deux champs réservés par les valeurs de ces
deux variables.
• QoS_factor : cette variable est utilisée pour indiquer au protocole AODV si le contrôle
d’admission sera effectué ou non ; si elle est égale à 1, le contrôle est exécuté, sinon il
sera ignoré.
Pour une meilleure flexibilité, nous avons choisi d’initialiser ces variables à partir de
l’interface Tcl. Cela est fait par l’utilisation de la fonction bind()qui sert à autoriser l’accès
au variables C++ via Tcl, en ajoutant les lignes suivantes au constructeur de la classe
AODV dans le fichier aodv.cc (listing 5.12) :
Listing 5.12 : autoriser l’accès au paramètre de QoS via l’interface Tcl.
Mac802_11::Mac802_11() :
Mac(), phymib_(this), macmib_(this), mhIF_(this), mhNav_(this),
{
……………………………………
bind("req_bandwitdh",&req_bandwitdh);
bind("req_delay",&req_delay);
bind("QoS_factor",&QoS_factor);
……………………………………
}
- 73 -
Chapitre V
Implémentation
Pour initialiser ces variables il suffit d’ajouter les commandes suivantes dans notre script
Tcl (listing 5.13):
Listing 5.13 : commandes Tcl pour initialiser les paramètres de QoS.
Agent/AODV set QoS_factor “valeur souhaitée”
Agent/AODV set req_bandwitdh
Agent/AODV set req_delay
Après avoir terminé avec les modifications nécessaires dans le code, une recompilation de
NS-2 est nécessaire, cela est fait par la commande make : Une fois cela est fait sans erreurs,
le protocole AODV-D peut être utilisé dans des simulations afin de vérifier les résultats et les
comparer avec celles du protocole AODV standard.
Conclusion
Ce chapitre a été consacré aux détails de l’implémentation du protocole AODV-D, il
donne d’abord une présentation globale de la structure du protocole AODV sous Network
Simulator 2. Il discute ensuite les modifications apportées à ce protocole dans le but
d’introduire la qualité de service dans ce protocole en terme de délai de bout en bout. Enfin,
il introduit une description des modifications apportées au protocole IEEE 802.11 utilisé au
niveau MAC afin d’implémenter la méthode d’estimation du délai adoptée dans cette étude
qui est nécessaire pour effectuer un contrôle d’admission par AODV-D.
Dans le chapitre suivant, nous allons décrire une série de simulations réalisées à l’aide du
simulateur NS-2 dans le but d’évaluer les performances du protocole AODV-D, et de le
comparer avec AODV standard afin d’analyser les avantages et les inconvénients de cette
extension.
- 74 -
Chapitre VI
Simulation et discussion des résultats
Chapitre VI
Simulation et Discussion des Résultats
75
Chapitre VI
Simulation et discussion des résultats
Simulation et Discussion des Résultats
1 Introduction
Dans les deux chapitres précédents, nous avons développé un protocole de routage avec
QoS dans les réseaux mobiles ad hoc. Il s’agit d’une extension du protocole AODV qui le
rend capable d’assurer l’établissement des routes qui satisfont la contrainte de délai de bout
en bout dans le but d’améliorer les performances des applications sensibles à cette métrique.
Afin de valider et d’évaluer le mécanisme de routage avec QoS mis en place,
l’implémentation des modifications apportées au protocole AODV a été réalisée sous le
simulateur NS-2. Nous avons utilisé la version 2.33 installée sous Cygwin (un émulateur Unix
sous Windows XP). Le choix de ce dernier est motivé par ces caractéristiques citées dans le
chapitre précédent.
Dans ce chapitre, nous allons présenter une série de simulations réalisées à l’aide du
simulateur NS-2. Les objectifs de ces simulations sont les suivants :
• Evaluer les performances du protocole AODV-D selon certains paramètres de
mesure ;
• Comparer les deux protocoles AODV et AODV-D ;
• Conclure l’impact des modifications apportées au protocole AODV ainsi que les
avantages et inconvénients de la solution.
2 Intérêt et nécessité de la simulation
L'évaluation de performances des protocoles de routage peut se faire en utilisant trois
techniques, à savoir : la méthode analytique, les mesures, et enfin la simulation.
Le recours à la simulation présente de nombreux avantages. En effet, elle est plus rapide,
moins coûteuse en ressources, répétable et permettant d'isoler des paramètres qui peuvent
parfois affecter les performances. De plus, il existe des scénarios très difficiles à étudier dans
la réalité [20].
3 Modèle de simulation
Le modèle de simulation précise les paramètres de simulation à utiliser dans
l'environnement de simulation. Ces paramètres sont offerts par le simulateur NS-2 et sont
paramétrables via les scripts Tcl.
Le simulateur NS-2 implémente les différentes couches nécessaires (application, transport,
routage, MAC et physique) pour la simulation d’un réseau ad hoc. Le tableau 6.1 résume les
différents paramètres utilisés dans les simulations.
76
Chapitre VI
Simulation et discussion des résultats
Paramètres
Valeurs
Protocole de routage
Modèle de propagation
Couche MAC
Portée de transmission
Capacité du canal
Trafic d'application
Taille des paquets
Temps de simulation
Surface de simulation
AODV /AODV-D
Two-ray ground
802.11/DCF avec CSMA/CA
250 mètres
5.5 Mbps
CBR (Continuous Bit Rate)
1000 octets
40 secondes
1000*1000 m²
Tab. 6.1. Paramètres de simulation utilisés.
3.1 Modèle de trafic
Puisque le but de nos simulations est d’analyser les propriétés de l’extension du protocole
AODV, nous avons choisi que les sources de trafics soient à débit constant CBR (Constant Bit
Rate).
Le trafic entre les nœuds est généré en initialisant des connexions de trafics de type CBR
qui commencent à des instants fixés via le script de simulation comme le montre le tableau
6.2. La taille des paquets de données est de 1000 octets.
Nous n’avons pas employé des sources de trafic TCP par exemple parce que TCP offre une
charge conforme à l’état du réseau, c'est-à-dire, le trafic TCP change les temps auquel il
envoie des paquets en se basant sur sa perception de la capacité du réseau de délivrer ces
paquets [17].
Le schéma des piles protocolaires mis en place pour cette série de simulation est présenté
dans la figure 6.1.
Application
CBR
Transport
UDP
Routage
MAC
AODV
AODV-D
Mac_802.11
Fig 6.1 : Pile protocolaire mise en place
77
Chapitre VI
Simulation et discussion des résultats
4 Métriques de simulation mesurées
Les simulations sont faites par rapport à trois paramètres, dans le but de tester le protocole
sur différents aspects. Ces paramètres sont : le délai de bout en bout, la gigue et le taux de
perte de paquets. Nous avons choisi ces trois derniers car ils sont les plus influents sur la
qualité de la VoIP comme nous l’avons vu dans le chapitre 3 (section5.1). Cela nous montre
une vision globale sur les améliorations possibles apportées à cette application par le nouveau
mécanisme de routage avec QoS mis en place dans cette étude.
Les trois métriques mesurées sont les suivantes :
• Le délai de bout en bout (End to End Delay) : est le temps qui sépare le moment d'envoi
d'un paquet de la couche transport de la source et le moment de réception de ce paquet
par la couche transport de la destination. Il inclut le temps de latence pour la découverte
de routes, le temps de passage dans les files d'attente des nœuds intermédiaires et le
temps de transmission d'un saut vers un autre. Nous mesurons le délai de bout en bout
par rapport à tous les paquets générés pendant la simulation, puis nous calculons la
moyenne. Cette métrique représente l'efficacité du protocole en termes de temps de
réponse et en termes du choix des chemins optimaux (moins de nœuds de congestion et
plus de stabilité) [20].
• La gigue (jitter) : représente la variation du délai d’acheminement des paquets entre la
source et la destination. Elle est obtenue en calculant la différence entre le délai du
paquet N et le délai du paquet N+1. Cette métrique nous permet de connaitre la stabilité
des connexions établies à travers le réseau au cours du temps, et l’impact de la politique
utilisée par le protocole de routage pour le choix de la route sur cette stabilité.
• Le taux de perte de paquets : c’est le rapport entre le nombre de paquets perdus (par
toutes les destinations du trafic) et le nombre de paquets émis (par toutes les sources du
trafic) [20]. La métrique opposée au taux de perte de paquets est le taux de délivrance des
paquets PDR (Packet Delivery Ratio) : c’est le rapport entre le nombre de paquets reçus et
le nombre de paquets émis. Un taux de délivrance de paquets élevé est équivalent à un
taux de perte petit, et vice versa. Cette métrique représente la fiabilité du protocole pour
expédier tous les paquets de données envoyés.
5 Scénario de simulation
Afin de présenter le nouveau mécanisme de sélection des route effectué par le protocole
AODV-D et l’effet de celui-ci sur la qualité de service demandée par le trafic circulant à
travers le réseau, nous avons mis en place le scénario présenté dans la figure 6.2. Ce dernier
nous permet également de le comparer avec le mécanisme d’établissement des routes par
AODV standard.
Pour ce faire, nous avons procédé comme suit :
Nous voulons mesurer les performances de la connexion 6 – 9 (CBR1), celui-ci dispose de
deux chemins ; le plus court chemin passant par les nœuds 10 –15, et l’autre passant par les
nœuds 0 – 5.
Le premier, est surchargé par deux connexions : CBR2 entre les nœuds 11 et 13. Et CBR3
entre les nœuds 10 et 14. Sur le deuxième, une seule connexion est établie entre les nœuds 1
et 3. Chaque nœud est séparé avec son voisin direct par une distance de 200m, cela assure que
le flux est passé par tous les nœuds du chemin.
78
Chapitre VI
Simulation et discussion des résultats
Fig 6.2- Scénario de simulation utilisé.
Le tableau 6.2 résume le déroulement de la simulation et les principaux paramètres utilisés
pour chaque flux.
Flux
CBR1
CBR2
CBR3
CBR4
Débit (Kbps)
80
380
380
620
Début
15
5
10
20
Fin
35
25
30
35
Tab 6.2 : Paramètres de déroulement de simulation.
6 Simulation et discussion
6.1 Délai de bout en bout
La figure 6.3 montre les résultats obtenus concernant la métrique délai de bout en bout
pour chaque paquet du flux CBR1.
Fig 6.3 : Délai de bout en bout du flux CBR1 avec AODV-D et AODV standard.
79
Chapitre VI
Simulation et discussion des résultats
Discussion
Avant la seconde 25, on remarque que les délais obtenus par le protocole AODV standard
sont beaucoup plus élevés par rapport à AODV-D. Cela est justifié par le fait que ce dernier
ayant exigé un délai max de 150 ms pour accepter la route, et donc a choisi la route passant
par les nœuds 0 – 5 ayant plus de sauts mais moins encombrée par d’autres transmissions
(seul le flux CBR4 est actif). Le léger dépassement de 150ms a été produit après la validation
de la route par le protocole de routage, dans ce cas on a dit que le mécanisme ne possède
aucune garantie pour le délai pendant la transmission des données.
Par contre, le protocole AODV standard a choisi la route qui passe par les nœuds 10 – 15
selon le critère classique ; le plus court chemin. Cette route est surchargée par deux
connexions (les flux CBR2 et CBR3), ce qui provoque des délais importants (jusqu’à 700ms).
Cela est justifié par l’augmentation du délai passé dans les files d’attente des nœuds
intermédiaires à cause des congestions.
Après la seconde 25 le flux CBR3 est arrêté, on remarque que les délais pour AODV
standard ont des valeurs proches de celles obtenues par AODV-D. Cela est justifié par le fait
que la seule différence est le nombre de sauts des chemins choisis par les deux protocoles.
D’une manière générale, on peut dire que le protocole AODV-D semble plus performant
que celui standard dans les conditions de simulation décrites en termes de délai de bout en
bout.
6.2 La variation de délai (la gigue)
Toujours pour le même scénario, on obtient les résultats présentés dans les figures 6.4 et
6.5 qui représentent l’évolution de la gigue du flux CBR1 au cours du temps de la simulation
pour les protocoles AODV-D et AODV.
Fig 6.4 : Evolution de la gigue pour AODV.
80
Chapitre VI
Simulation et discussion des résultats
Fig 6.5 : Evolution de la gigue pour AODV-D.
Discussion
Lorsque le protocole AODV standard est activé, les variations de délai sont plus
fréquentes et ont des délais plus important (jusqu’à 300 ms et dépasse souvent 100 ms)
surtout avant la seconde 25. Cela est justifié toujours par le choix du plus court chemin sans
aucune contrainte (le chemin passant par 10 – 15 dans notre cas), ce dernier est perturbé par
d’autres connexions. Après la 25ième seconde la route est libérée et la connexion se stabilise.
Pour le protocole AODV-D, le choix de la route est soumis à la contrainte du délai qui ne
doit pas dépasser 150 ms, en effet, la route choisie est la plus stable en terme du délai et par
conséquence, la gigue obtenue a des valeurs au maximum de 150 ms et ne dépasse pas 50 ms
dans la plupart du temps, ce qui est acceptable pour une qualité moyenne de la VoIP par
exemple (voir le tableau 3.3 dans le chapitre 3).
6.3 La perte de paquets
Le tableau 6.3 résume les résultats obtenus pour chaque flux pour la perte de paquets avec
le même scenario de simulation précédent.
Protocole
AODV
AODV-D
Flux
CBR1
CBR2
CBR3
CBR4
CBR1
CBR2
CBR3
CBR4
Paquets
envoyés
paquets
reçus
Paquets
perdus
200
951
951
1396
200
951
951
1396
193
916
951
1396
200
951
951
1396
7
35
0
0
0
0
0
0
Taux de
perte %
3.5%
3.68%
0%
0%
0%
0%
0%
0%
Tab 6.3 : Taux de perte de paquets pour AODV-D et AODV standard.
81
Chapitre VI
Simulation et discussion des résultats
Discussion
Les résultats présentés dans le tableau nous montrent que les simples scenarios et
paramètres de simulation utilisés ne provoquent pas des taux de perte importants dans la
plupart des cas. Mais on remarque des différences entre les deus protocoles.
Lorsque le protocole AODV standard est activé, les flux CBR1 et CBR2 ont subis des taux
de pertes de 3.5% et 3.68% respectivement. Cela est justifié par le choix de la route 10 – 15
qui est déjà surchargée par les deux flux CBR2 et CBR3 ; l’ajout du flux CBR1 à cette route, à
provoqué ces pertes à cause du manque de ressources et des congestions.
Lorsque le protocole AODV-D est activé, le critère de choix de la route avec contrainte du
délai a permis de choisir la route 1 – 5. Cette route est plus stable car, seul le flux CBR4 est
actif. Dans ce cas, chaque route est surchargée par deux connexions ce qui permet de créer
des transmissions de données plus stable et donc des pertes faibles de paquets voir nulle
comme les résultats obtenus dans notre cas.
Conclusion
Les simulations effectuées dans ce présent chapitre nous a montré la différence entre les
deux protocoles AODV et AODV-D. La comparaison entre les deux protocoles nous a
permis de dégager le comportement d’AODV-D face aux connexions demandant un certain
délai suite a l’intégration du nouveau mécanisme de routage.
Nous concluons également que la mise en œuvre d’un tel mécanisme de routage ayant une
importante influence sur la stabilité du réseau. En effet, le routage avec contraints de délai
peut apporter des améliorations à des applications exigeant des ressources de QoS telles que
la voix sur IP. Il rend également la mise en œuvre de telles applications dans un réseau mobile
ad hoc plus efficace.
Il faut noter ici que le scénario simple que nous avons réalisé dans ce chapitre a juste le but
de connaître la différence entre le comportement des deux protocoles. Toutefois, les
performances réelles du protocole AODV-D ne peuvent être déduites par ce simple scénario.
Il est, en effet, important de concevoir des scénarios pertinents (tels que des scenarios
aléatoires en utilisant les modèles de mobilité offerts par NS-2) conduisant à une évaluation
plus précise du comportement du protocole.
82
Conclusion générale & 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. Le revers de la médaille est que plusieurs problèmes comme la sécurité,
l’économie d’énergie, la scalabilité, et la qualité de service (QoS) doivent être solutionnés pour
permettre un large déploiement.
Dans le cadre de ce mémoire, l’objectif était d’analyser le protocole de routage AODV
opérant dans les réseaux mobiles ad hoc. Une extension de ce protocole est faite en termes
du délai de bout en bout. Le but est de le rend plus adapté à des applications telles que la voix
sur IP (VoIP).
Le travail réalisé dans ce mémoire s’inscrit dans le cadre des solutions proposées pour
l’approvisionnement en qualité de service relâchée (soft QoS) dans les réseaux ad hoc. En
effet, vu les caractéristiques de tels environnements, on ne peut s’attendre à une qualité de
service ferme (hard QoS).
La recherche en qualité de service dans les réseaux ad hoc se focalise sur quatre axes
principaux, à savoir : (i) les modèles de QoS, (ii) les protocoles de signalisation, (iii) les
protocoles MAC sensibles à la QoS, et enfin (iv) le routage avec QoS.
D’après l’étude que nous avons menée, plusieurs protocoles de routage avec QoS ont été
proposés dans la littérature, aussi bien pour les réseaux filaires que pour les réseaux ad hoc.
Nous pouvons classifier toutes ces propositions en deux grandes catégories : solutions
évolutionnaires et solutions révolutionnaires. La première catégorie de solutions vise à étendre des
protocoles best effort existants alors que la deuxième vise à concevoir un protocole de
routage avec QoS à partir de rien (from scratch).
Nous avons opté pour la première approche pour des raisons de simplicité et de
compatibilité avec les protocoles « best effort ».
Par ailleurs, nous avons pris « le délai » comme métrique de routage. Pour concevoir notre
protocole baptisé AODV-D (AODV with Delay constaints), nous nous sommes basés sur les
travaux de Sarr et al pour estimer le délai d’attente au niveau de la sous-couche MAC et sur le
draft de Perkins et al, auteurs du protocole AODV pour le mécanisme de fonctionnement.
Par la suite, nous avons procédé à l’implémentation de notre protocole sous NS-2 (Network
Simulator 2) en réutilisant le code source du protocole AODV rajouté d’autres composantes
nécessaires.
En phase finale du projet, nous avons évalué notre solution. Les résultats préliminaires
de simulation ont montré que notre protocole donne de bonnes performances en termes de
délai de bout en bout, de gigue, et de perte de paquets.
83
-
-
-
Notons enfin que ce travail nous a ouvert le champ vers d’autres extensions que nous
citons ici en guise de perspectives :
Evaluer AODV-D par rapport à d’autres métriques telles que la consommation en énergie, le
temps d’établissement d’une route, et l’overhead généré, d’une part ; et par rapport à d’autres
scénarios d’autre part ;
Etendre le même travail à un autre protocole réactif qui est DSR et faire la comparaison avec
AODV-D ;
Comparer l’approche routage avec contraintes de délai avec l’approche routage multi-chemins
pour l’amélioration des délais de bout en bout. On peut imaginer par exemple comparer
AODV-D avec AOMDV
Etendre notre protocole pour faire un routage multi-contraintes : on peut, par exemple, faire
un routage à deux métriques (bande passante et délai) ou à trois métriques (bande passante,
délai, et énergie) ;
84
Bibliographie
[1] : Mohamed BRAHMA « Étude de la QoS dans les Réseaux Ad hoc : « Intégration du
Concept de l’Ingénierie du Trafic ». Thèse de doctorat. Université de
HAUTE ALSACE
(décembre 2006).
[2] : Farid JADDI «CSR: une extension hiérarchique adaptative du protocole de routage ad hoc
DSR » .Thèse de doctorat. Institut National Polytechnique de Toulouse, Octobre 2006.
[3] : Andrew TANENBAUM « réseaux, architecture, protocoles, application » InterEditions,
Paris 1990.
[4] : Ahmed HABBOUCHI, Ismail LAOUFI « Conception cross layer et intégration de la
QoS dans le protocole de routage DSR » mémoire d’ingéniorat, école militaire polytechnique
(EMP) Année 2007.
[5] : Michaël Hauspie « Contributions à l'étude des gestionnaires de services distribués dans les
réseaux ad hoc » thèse de doctorat, Université des Sciences et Technologies de Lille, Année :
2005.
[6] :M.KHEMIS et H.TOUATI, « Etude et simulation des protocoles de routage dans les
réseaux ad hoc ».mémoire d’ingéniorat 2002/2003, université de TIZI OUZOU.
[7] : Rabah MERAIHI : « Gestion de la qualité de service et contrôle de topologie dans les
réseaux ad hoc » thèse de doctorat, Ecole nationale supérieure des télécommunications, France.
janvier 2005.
[8] : Tayeb LEMLOUMA « Le Routage dans les Réseaux Mobiles Ad Hoc »Université des
Sciences et de la Technologie Houari Boumèdiene, Septembre 2000.
[9] : Anis LAOUITI : « Unicast et multicast dans les réseaux ad hoc sans fil », thèse de doctorat,
université de Versailles, juillet 2002.
[10]: S. Corson , J. Macker « Mobile Ad hoc Networking (MANET) Network Working Group”
January 1999.ftp://ftp.nordu.net/rfc/rfc2501.txt
[11] C. Perkins, E. Belding-Royer, S.Das: «Ad hoc On-Demand Distance Vector (AODV)
Routing, Network Working Group, July 2003: ftp://ftp.nordu.net/rfc/rfc3561.txt
[12] M. Lewis R. Ogier, F. Templin. « Topology Dissemination Based on Reverse-Path
Forwarding (TBRPF) » draft IETF, 2003.
[13]Yih-Chun Hu.David B. Johnson, David A. Malts: «The Dynamic Source Routing
Protocol for Mobile Ad Hoc Networks (DSR) (draft IETF), 2003.
[14] : Van der Meerschen Jérôme « Hybridation entre les modes ad hoc et infrastructure dans
les réseaux de type Wi-Fi » Université Libre de Bruxelles année 2005-2006
85
[15] : Dominique Dhoutaut, « Etude du standard IEEE 802.11 dans le cadre des réseaux ad hoc
: de la simulation à l'expérimentation » L’Institut National des Sciences Appliquées de Lyon
Thèse Décembre 2003.
[16] :Jean-Marc Percher et Bernard Jouga «Détection d’intrusions dans les réseaux ad hoc »
Ecole Supérieure d´Electronique de l’Ouest (ESEO) France.
[17] : Meriam Dawoud, « Analyse du protocole AODV » rapport de stage, Université Paul
Sabatier-I.R.I.T, 2005/2006. http://phdgroup.org/LebaneseUniversityArchive/CSTI/20052006/5.pdf.
[18]: Philippe Jacquet Thomas Clausen. RFC 3626 «Optimized Link State Routing Protocol
(OLSR), (draft IETF) 2003.
[19]: Leila TOUMI : « Algorithmes et mécanismes pour la qualité de service dans les réseaux
hétérogènes » Thèse de doctorat, Institut National Polytechnique de Grenoble, décembre 2002
[20] : Meriem BELGAID Saida OUHAB « Routage et qualité de service dans AODV et
OLSR » Mémoire 2006-2007 Université A/Mira de Bejaïa.
[21]:C. Chiang, H. Wu, W. Liu, and M. Gerla: « Routing in Clustered Multihop, Mobile
Wireless Networks In Mobile Wireless Networks», The IEEE Singapore International
Conference on Networks, 1997.
[22] Vincent D. Park and M. Scott Corson. « A Highly Adaptive Distributed Routing
Algorithm for Mobile Wireless Networks». In INFOCOM (3), pages 1405–1413, 1997.
[23]: C-K Toh. « A Novel Distributed Routing Protocol To Support Ad-Hoc Mobile
Computing». In IEEE 15th Annual Int’l. Phoenix Conf. Comp. and Commun, 1996.
[24]:R. Dube, C. Rais, K. Wang, and S. Tripathi. « Signal stability based adaptive routing (SSA)
for ad hoc mobile networks. In Signal stability based adaptive routing (SSA) for ad hoc mobile
networks, IEE Personal Communication., February 1997.
[25]E. Crawley, R. Nair, B.Rajagopalan, and H. Sandick., « A Framework for QoSbasedRouting in the Internet», IETF RFC 2386, Aug. 1998. ftp://ftp.nordu.net/rfc/rfc2386.txt.
[27]: R. Braden, D. Clark, and S. Shenker. «Integrated services in the internet architecture» :an
overview. Internet Request For Comments RFC 1633, IETF, June 1994.
ftp://ftp.nordu.net/rfc/rfc1633.txt.
[28]: S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, and W. Weiss. « An architecture
for differentiated services». Internet Request For Comments RFC 2475, IETF, December1998.
ftp://ftp.nordu.net/rfc/rfc2475.txt.
[29]:Ian and C.Castelluccia « Dierentiation mechanisms for IEEE 802.11. In to appear in
IEEE Infocom 2001, april 2001.
[30]:K. Wu and J. Harms « QoS Support in Mobile Ad Hoc Networks». Crossing Boundariesthe GSA Journal of University of Alberta, Volume 1, n° 1. pages 92- 106. Nouvembre 2001
86
[31]: IEEE 802.11 WG, Wireless Medium Access Control (MAC) and Physical Layer (PHY)
spécifications : Medium Access Control (MAC) Enhancement for Quality of Service (QoS IEEE
802.11e/Draft 3.0, May 2002.
[32]: Claude Chaudet «Qualité de service et réseaux ad hoc – un état de l’art » rapport de
recherche, institut national de recherche en informatique en automatique NRIA, novembre 2001.
[33] : Claude Chaudet «Routage QoS et réseaux ad hoc : de l’état de lien à l’état de nœud »
rapport de recherche INRIA, Janvier 2003.
[34] M.K Marina, and S.R Das. «Ad hoc on-demand multipath distance vector routing. Wiley
Wireless Communications and Mobile Computing», vol. 6(7), 2006, pp. 969–988.
[35] Z. Ye, S. V. Krishnamurthy, and S. K. Tripathi. «A routing framework for providing
robustness to node failures in mobile ad hoc networks». Elsevier Ad Hoc Networks Journal, vol
2(1) 2004, pp. 87–107.
[36] S.-J. Lee, and M. Gerla: « AODV-BR: Backup Routing in Ad hoc Networks. », the IEEE
Wireless Communications and Networking Conference (WCNC 2000). Vol 3, September 2000
pp. 1311–1316.
[37] :Hui.Yao .Zhang, Marek.Bialkowski, Garry.Einicke and Jhon.Homer «An extended
AODV protocol for VoIP application in mobile ad hoc network», SITEE, university of Brisbane
Australia(2007).
[38]: Shan Gong « Quality of Service Aware Routing Protocols for Mobile Ad Hoc Networks»
these de magister, HUT communication laboratory Finlande (2006).
[39]: C. Perkins and E. Belding-Royer: « Quality of Service for Ad hoc On-Demand Distance
Vector Routing » (work in progress), draft IETF, Oct 2003.
[40] : P. Anelli & E. Horlait «NS-2: Principes de conception et d'utilisation»
[41] : Baptiste BUXANT «Simulation et évaluation d’un algorithme de contrôle de congestion
pour Internet» Université Catholique de Louvain, année 2001-2002.
[42] : Cheikh SARR « De l’apport d’une évaluation précise des ressources de la qualité de service
des réseaux ad hoc basés sur IEEE802.11 » thèse de doctorat, Institut Nationale des Sciences
Appliquées de Lion, année 2007.
[43] : Antoine MAHUL «Apprentissage de la qualité de service dans les réseaux multiservice :
application au routage optimale sous contraintes » université BLAISE PASCAL - CLERMONTFERRAND II, novembre 2005.
[44]: Giuseppe Bianchi « Performance analysis of IEEE802.11 distributed coordination
function » IEEE Journal on selected Areas in communication, volume18 (3): pages 535 -547
mars 2000.
[45]: http://dropzone.tamu.edu/~prajjwal/ns2/main.html
[46]: Sebastian Roschke « Implementation of Feedback Mechanism into AODV based on
NS2». Un papier pulpier le 2007-05-16. Hasso Plattner-Institute for software systems engineering
87
[47]: Lei Chen and Wendi B. Heinzelman (University de Rochester USA) «A Survey of
Routing Protocols that Support QoS in Mobile Ad Hoc Networks», IEEE Network.
November/December 2007.
[48]: « la qualité de service en voix sur IP » Accellent , www.accellent-group.com.
[49] : http://www.chez.com/brunogarcia/Unix/Docs/awk.html
88
Liste des Abbreviations
AODV
Ad hoc On demand Distance Vector
AODV-D
Ad hoc On demand Distance Vector with Delay constraints
CBR
Constant Bit Rate
CBRP
Cluster Based Routing Protocol
CSMA/CA
Carrier Sense Multiple Access with Collision Avoidance
CTS
Clear To Send
CW
Contention Window
DCF
Distributed Coordination Function
DIFS
DCF Inter Frame Spacing
DSDV
Distance Source Distance Vector routing protocol
DSR
Distance Source Routing
DSSS
Direct Sequence Spread Spectrum
EIFS
Extended Inter Frame Spacing
FHSS
Frequency Hoping Spread Spectrum
GHz
Géga-Hertz
GPRS
General Packet Radio Service
GSM
Global System for Mobile Communication
HiperLAN2 HIgh Performance Radio LAN 2.0
IEEE
Institute of Electrical and Electronical Engineers
IETF
Internet Engineering Task Force
INRIA
Institut National de Recherche en Informatique et en Automatique
IP
Internet Protocol
IR
Infra Red
ISO
International Organization for Standardization
ITU
International Telecommunication Union
MAC
Medium Access Control
MACA/PR
Multihop Access Collision Avoidance with Piggyback Reservation
MANET
Mobile Ad hoc NETwork
Mbps
Méga bits par seconde
MPR
MultiPoint Relay
NAV
Network Allocation Vector
NS-2
Network Simulator 2
OFDM
Orthogonal Frequency Division Multiplex
OLSR
Optimized Link State Routin
OSI
Open Systems Interconnection
PCF
Point Coordination Function
PDA
Personal Digital Assistant
PDR
Paquet Delevery Ratio
PIFS
PCF Inter Frame Spacing
QoS
Quality of Service
RERR
Route ERRor
RFC
Request For Comments
RREP
Route REPly
RREQ
Route REQuest
RTS
Request To Send
SIFS
Short Inter Frame Spacing
TBRPF
Topology Dissemination Based on Reverse-Path Forwarding
TCP
Transmission Control Protocol
ToIP
Telephony over IP
89
UDP
UMTS
VoIP
WiFi
WLAN
WMAN
WPAN
WWAN
ZRP
User Datagram Protocol
Universal Mobile Telecommunication System
Voice over Internet Protocol
Wireless Fidelity
Wireless Local Area Network
Wireless Metropolitan Area Networks
Wireless Personal Area Networks
Wireless Wide Area Networks
Zone Routing Protocol
90
Annexes
-
Annexe A : Network Simulator 2
A.1 Présentation de Network Simulator 2
NS2 (Network Simulator 2) est un simulateur à évènements discrets développé dans un but
de recherche. Il fournit un environnement assez détaillé permettant entre autre de réaliser des
simulations d’IP, TCP, du routage et des protocoles multicast aussi bien sur des liens filaires
que sans fil [15].
NS-2, est aujourd’hui le simulateur de réseau probablement le plus utilisé par la
communauté scientifique des réseaux. Il a été le fruit de la collaboration entre l’université de
Berkeley, USC (University of Southern California) et Xerox PARC dan lse cadre du projet VINT
(Virtual Inter Network Testbed). Ce projet est soutenu par le DARPA(Defense Advanced Research
Projects Agency). NS-2 est un outil de recherche très utile pour le design et la compréhension
des protocoles. Il sert aussi bien dans l’étude des protocoles de routage qu’à l’étude des
réseaux mobiles où les communications par satellites.
NS-2 permet à l’utilisateur de définir un réseau et de simuler les communications entre les
nœuds. Le simulateur utilise le langage orienté objet OTCL dérivé de TCL pour la description
des conditions de simulation sous forme de script. Dans le script l’utilisateur fournit la
topologie du réseau, les caractéristiques des liens physiques, les protocoles utilisés, le type de
trafic généré par les sources, les événements, etc.
Si le script écrit en OTCL permet une utilisation (édition, modification des simulations)
facilitée du simulateur, les routines sont elles écrites en C++ pour avoir une plus grande
puissance de calculs. Le résultat d’une simulation est un fichier texte contenant tous les
fichiers événements de la simulation. Un traitement ultérieur de ce fichier permet d’en
soustraire l’information souhaitée. Par ailleurs, le simulateur permet la création d’un fichier
d’animation (d’extension .tr), permettant de visualiser la simulation sur l’interface graphique
NAM. Cette visualisation fournit une représentation du graphe du réseau sur laquelle on peut
voir les paquets circuler, suivre le niveau des files d’attente et observer le débit courant des
liaisons. La figure A1 présente une simple utilisation de NS-2 [41].
Fig. A1 : Une simple utilisation de NS-2.
91
Annexes
-
A.2 Installation de NS-2
NS-2 est conçu initialement pour fonctionner sur les systèmes d'exploitation Unix et
Linux, mais il existe un moyen pour son installation sur un système Windows 2000/XP; il
s'agit de l'émulateur Cygwin qui offre un environnement Linux sous Windows. Cygwin est
téléchargeable à partir d'Internet dans l'url : http:// www.cygwin.com. Le simulateur NS-2 est
fourni sous forme d'un paquetage qui regroupe tous les fichiers nécessaires à son installation.
On le trouve sous le nom : ns-allinone-version.tar.gz. (ns-allinone-2.33.tar.gz est utilisé dans
notre simulation).
A.2.1 Installation de NS-2 sous Windows
Avant de commencer à installer NS-2, il faut tout d'abord installer cygwin. Pour ce faire
suivre les étapes suivantes :
A.2.1.1 Installation de cygwin
1. Télécharger cygwin à partir de son emplacement sur internet.
2. lancer l'installation on cliquant sur le bouton suivant.
3. choisir le chemin a partir de quel il s'installe: install from local directory.
4. choisir le chemin d'installation.
5. choisir Next.
6. sélectionner les packages à installer en activant install.
7. choisir Next.
8. terminer l'installation on cliquant sur terminer.
9. choisir OK.
A.2.1.2 Installation de NS-2
Après avoir installer cygwin, on doit suivre les étapes suivantes pour installer NS-2:
1. Télécharger NS-2 à partir de son emplacement sur internet.
2. Copier le dossier ns-allinone, dans le dossier /home/.
3. cliquer sur l'icône cygwin, la fenêtre noir s'affiche.
4. décompresser le: tar zxvf ns-allinone-2.33.tar.gz
5. accéder au répertoire ns-allinone-2.33: cd ns-allinone-2.33
6. taper la commande ./install.
7. Configuration finale: une fois ceci fait, notre NS-2 est installé, il nous reste de le configurer.
D'habitude, on configure le fichier .bashrc mais avec cygwin, il y'a une autre alternative plus
facile:
(a) Copier ns.exe qui est sur ns-allinone-2.33/ns-2.33 et le coller sur cygwin/bin
(b) Copier nam.exe qui est sur ns-allinone-2.33/nam-1.11 et le coller sur cygwin/bin
Ainsi notre configuration est terminée.
92
Annexes
-
A.3 Les composants disponibles dans NS-2
La liste des principaux composants actuellement disponible dans NS-2 sont représentés
par catégorie da le tableau suivant :
Application
Transport
Web, ftp, telnet, générateur de trafic (CBR, ...).
TCP, UDP, RTP, SRM.
Routage
Statique, dynamique (vecteur distance) et routage multipoint
(DVMRP, PIM).
RED, DropTail, Token bucket.
CBQ, SFQ, DRR, Fair queueing.
CSMA/CD, CSMA/CA, lien point à point ;
Gestion de file d'attente
Discipline de service
Système de transmission
Tab A1 : Les principaux composants de NS-2.
A.4 Les langages utilisés dans NS-2
NS-2 utilise deux langages parce qu’il réalise deux types de choses. D’une part, le
simulateur doit être efficace dans la manipulation de bytes, de paquets et d’entêtes et dans
l’application d’algorithmes sur de grandes quantités de données. Dans ce cas la vitesse
d’exécution est primordiale et prend le pas sur le temps de compilation, l’utilisation du C++
s’impose. D’autre part, l’utilisateur souhaite changer rapidement ses scénarios de simulation,
dans ce cas OTCL offre une bonne solution [40].
NS-2 permet à l’utilisateur de définir un réseau et de simuler les communications entre les
nœuds. Le simulateur utilise le langage orienté objet OTCL dérivé de TCL pour la description
des conditions de simulation sous forme de script.
Dans le script l’utilisateur fournit la topologie du réseau, les caractéristiques des liens
physiques, les protocoles utilisés, le type de trafic généré par les sources, les événements, etc.
Si le script écrit en OTCL permet une utilisation (édition, modification des simulations)
facilitée du simulateur, les routines sont elles écrites en C++ pour avoir une plus grande
puissance de calculs. Un grand nombre de classes sont prédéfinies et mettent en œuvre
plusieurs types de protocoles, de files d’attentes, de sources et algorithmes de routage.
A.5 Architecture de NS-2
A.5.1 Arborescence des classes compilées
Un grand nombre de classes sont prédéfinies et mettent en œuvre plusieurs types de
protocoles, de files d’attentes, de sources et algorithmes de routage [41].La figure A.2
représente l'arborescence de classes utilisées par le simulateur [40].
93
Annexes
-
Fig. A2 : Arborescence de dérivation des classes C++ du simulateur.
TclObject : C’est la racine de toutes les autres classes à la fois dans l'arborescence compilée
et interprétée. La classe TclObject constitue donc la classe de base de la plupart des autres
classes. Tous les objets du modèle de simulation sont des instances de la classe TclObject.
Cette classe sert aux objets dont la création est initiée par l'interpréteur. Elle possède les
interfaces nécessaires aux liaisons entre les variables qui doivent être visibles à la fois en C++
et OTcl. Elle définit la fonction command () qui est très utile pour ajouter des commandes à
l'interpréteur. La classe TclObject ainsi que les autres sources du répertoire tclcl sont
partagées entre NS-2 et le projet MASH de Berkeley. Dans la hiérarchie des classes OTcl, le
nom de la classe racine se nomme autrement et porte le nom de SplitObject.
NsObject : c’est une sous-classe de la classe TclObject mais reste cependant une superclasse
aux autres classes. La principale différence avec la classe TclObject tient à ce qu'elle soit
capable de recevoir des paquets et traiter des événements. Elle hérite de la classe Handler.
Cette classe constitue la principale racine des objets dans NS-2. Elle contient les fonctions
communes nécessaires au simulateur et définit la fonction virtuelle : void recv (Packet *,
Handler* callback =0)=0; Cette fonction est une fonction générique utilisée par tous les
objets dérivés de NsObject pour recevoir un paquet. Elle est réellement définie par les sousclasses :
Application : Classe mère de toutes les applications (ftp, telnet, web)
Agent : La classe agent fournit des méthodes utiles au développement de la couche
transport et à d'autres protocoles du plan de signalisation ou de gestion. C'est la classe
de base pour définir des nouveaux protocoles dans NS-2. Elle fournit l'adresse locale
et de destination, les fonctions pour générer les paquets, l'interface à la classe
Application. Actuellement NS-2 comporte de nombreux agents citons: UDP,
protocoles de routage, différentes versions de TCP, RTP, etc. [20].
Node : un nœud peut être une machine hôte, un switch, un routeur, une passerelle,
etc. Chaque nœud contient au minimum les composants suivants :
1. Une adresse ou un identificateur (id_) automatiquement incrémenté par une unité (à
partir de 0) quand les nœuds sont crées.
2. Une liste de noeuds voisins (neighbor_).
94
Annexes
-
3. Une liste d'agents (agent_).
4. Un identificateur du type du nœud (nodetype_).
5. Un module de routage.
Queue : la classe mère de tous les buffers (DropTail, RED)
LinkDelay : cette classe simule le délai de propagation et le temps de transmission sur
les liens du réseau. Avec la classe Queue, cette classe simule les couches 1 et 2 d'Internet.
Packet : la classe de tous les paquets circulant sur le réseau.
TimerHundler : la classe mère de tous les timers(temporisateurs) utilisés par les
protocoles du réseau [20].
A.5.2 Arborescence des fichiers
La distribution de NS-2 comprend principalement 3 répertoires (figureA3) [41]:
- NS-2, l'application NS. Ce répertoire contient l'ensemble des fichiers .h et .cc de
NS-2.
- nam-1, l'outil de visualisation des résultats de la simulation: l'animateur réseau.
- tclcl, sources du code assurant la liaison entre l'interpréteur et le simulateur. L’un des
principaux fichiers est: tcl-object.tcl.
Fig. A3 : Arborescence des fichiers de la distribution NS-2.
A.6 Le modèle de réseau sous NS-2
Un modèle de réseau sous NS-2 est constitué de quatre composants essentiels :
• Les nœuds de réseau : endroits où est généré le trafic, ou nœuds de routage ;
• Les liens de communication entre les réseaux.
• Les agents de communication, représentant les protocoles de niveau transport (TCP,
UDP) ; ces agents sont attachés aux nœuds et connectés l’un à l’autre, ce qui représente un
échange de données (cnnexion TCP, flux UDP).
• Les applications qui génèrent le trafic de données selon certaines lois (CBR, VBR), et se
servent des agents de transport [17].
A.7 Traitement des résultats dans NS-2
Après le déroulement de la simulation, NS-2 donne un fichier trace qui est un fichier texte
contenant tous les événements de la simulation. Le traitement de ce fichier permet d’en
soustraire l’information souhaitée [40]. Chaque événement est représenté dans le fichier trace
95
Annexes
-
avec une ligne qui contient douze champs. Le tableau A.2 donne une vision des la structure
d’une ligne du fichier trace sous NS-2 :
Event
Time
From
node
To
node
Pkt
type
Pkt
size
Flags
Fid
Src
addr
Dst
addr
Seq
num
Pkt
id
Tab A2 : Structure d’une ligne du fichier trace.
1. Action effectuée sur le paquet. Un ”+” signifie que le paquet est reçu dans une file, un
”-” signifie que le paquet quitte la file, un ”s” signifie que le paquet est envoyé, un ”d”
signifie que le paquet est jeté (dropé) et un ”r” signifie que le paquet est réceptionné par
un agent.
2. Instant où l’action est effectuée.
3. Nœud de départ du lien concerné.
4. Nœud d’arrivée du lien concerné.
5. Type de paquet.
6. Taille du paquet en bytes.
7. Flags.
8. Identificateur de flux.
9. Agent de départ.
10. Agent d’arrivée.
11. Numéro de séquence.
12. Identificateur unique pour chaque paquet.
La figure A4 illustre un exemple détaillé d’une ligne d’un fichier trace sous NS-2 :
+ 0 .002048 1 3 cbr 256 --------------- 0 1.0
Type
événement
+ enqueue
- dequeue
r receive
d drope
s send
Time
Type
trafic
Taille
paquet
Id
flux
7.0
8
9
Num
seq
paquet
Source dest
Source et dest
Entre lesquelles
l’évènement est passé
Adresse de la source et
destination du paquet
Id unique
du paquet
Fig A4 : Exemple de fichier trace.
En plus des fichiers traces qu’offre le simulateur NS-2, il permet de visualiser les
événements de la simulation à travers une interface graphique NAM (figure A5) :
96
Annexes
-
Fig A5 – Fenêtre de visualisation de NAM.
A.8 Structure d’un nœud mobile sous NS-2
La figure A6 décrit la structure d’un nœud sans fil dans NS-2.
Elle montre le travail interne du flux dans le nœud sans fil. Le nœud reçoit toujours des
paquets à l'entrée du nœud. Le paquet passe par le classificateur où son champ d'adresse est
examiné. Les agents sont les connecteurs. Quand les connecteurs reçoivent les paquets, ils
exécutent certaines fonctions et livrent les paquets vers leurs voisins ou les ignorent. Il existe
plusieurs types de connecteurs effectuent différentes fonctions, par exemple, l'agent, Link
Layer, couche MAC et d'interface réseau.
Fig. A6 : Structure d’un nœud mobile sous NS-2.
97
Annexes
-
A.9 Les différents modèles de mobilité sous NS-2
Puisque les réseaux ad hoc (MANET) sont souvent analysés par des simulations, leurs
résultats d’exécution dépendent légèrement des paramètres de réseau de simulation. Ainsi,
l’évaluation d’un protocole de routage ad hoc dépend de choisir soigneusement un modèle de
mobilité pour illustrer les mouvements réalistes des utilisateurs.
Les modèles de mobilité d’entité représentent les nœuds mobiles dont les mouvements
sont indépendant l’un de l’autre. D’autre part, les modèles de mobilité de groupe représentent
les nœuds mobiles dont les mouvements dépendent l’un de l’autre et ils tendent à être plus
réalistes dans les applications impliquant la communication de groupe [20].
A.9.1 Le modèle Radom Way Point (RWP)
Dans ce modèle la mobilité des nœuds est typiquement aléatoire et tous les nœuds sont
distribués uniformément dans l’espace de simulation. En effet il consiste en :
• Le placement d’un certain nombre de mobiles dans une zone carrée de laquelle ils ne
peuvent sortir.
• L’affectation d’une position, d’une vitesse et d’une destination initiale à chaque mobile.
• Le déroulement proprement dit de la simulation, où à chaque fois que les mobiles
atteignent leur destination dans le carré, ils repartent vers une autre destination choisie
aléatoirement après un éventuel temps de pause. Du fait de la simplicité de ce modèle, il
n’est pas toujours adapté pour décrire des comportements de mobilité complexes [20].
A.9.2 Le modèle Random Walk
Ce modèle est développé pour imiter un mouvement imprévisible. Un nœud mobile dans
ce modèle se déplace de son endroit courant à un nouvel endroit en choisissant aléatoirement
une direction et une vitesse suivant lesquelles il se déplace. La nouvelles vitesse et direction
toutes les deux sont choisies dans des gammes prédéfinies, [speedmin, speedmax] et [0, 2π]
respectivement. Un nœud mobile atteignant la frontière de simulation, rebonds avec l’angle
déterminé par la direction entrante et puis continue le long du nouveau chemin.
A.9.3 Le modèle aléatoire de direction (random direction model)
Il vient comme une modification sur le modèle de RWP. Dans RWP, la probabilité d’un
nœud mobile de choisir une nouvelle destination située au centre du la zone de simulation ou
une destination qui nécessite un déplacement par le centre est haute. Ce modèle essaye
d’alléger ce comportement, fournissant un nombre constant de voisins dans toute la
simulation. Les nœuds mobiles choisissent une direction aléatoire suivant laquelle ils se
déplacent en tant que modèle de mobilité de random walk, où ils se déplacent vers la frontière
de la simulation dans cette direction. Une fois que la frontière est atteinte, le nœud mobile fait
une pause pendant le temps indiqué, choisit une autre direction angulaire entre (0 et 180)
continue alors le processus.
98
Annexes
-
Conclusion
Dans cette partie, nous avons présenté une brève description de l'outil de simulation NS-2.
Nous avons décrit les langages utilisés dans ce simulateur, citons tcl et OTcl. Puis nous avons
décrit l'architecture générale de son utilisation, l'arborescence et la hiérarchie des différentes
classes existantes. Un point important est visualisé, c'est l'étude et la création des
environnements mobiles dans ce simulateur ainsi l'extraction et le traitement des résultats.
99
Annexes
Annexe B :
-
Langage AWK
B.1 Présentation
AWK est un outil qui permet d'effectuer des recherches, simples ou complexes, dans des
fichiers textes. C'est un langage de programmation datant de 1977, date de son apparition
dans le monde Unix. Il tire son nom des trois programmeurs qui l'ont développé : Alfred V.
Aho, Peter J. Weinberger et Brian W. Kernighan [49]. Cette utilitaire a été crée dans le but de
remplacer les commandes grep et sed. Sa grande souplesse lui a permis de connaître un
succès immédiat. Et de nouvelles versions sont apparues au fil du temps : nawk et gawk.
Aujourd'hui encore, cet utilitaire est toujours utilisé du fait de sa ressemblance avec le
langage C, de sa souplesse et de sa présence sur la majorité des systèmes d'exploitation Unix.
Il est encore utilisé en administration système et dans les scripts Shell en tant que commande.
Awk fonctionne en lisant des données. Ces données peuvent être ainsi traitées par
l'utilisateur. Utilisateur qui peut choisir de lire des données provenant de fichiers ou du canal
de l'entrée standard. Par conséquent, awk a pour but premier de jouer un rôle de filtre bien
qu'il ne se limite pas qu'à cela.
B.2 Syntaxe générale d'un programme awk
Un programme awk est constitué de trois grandes sections :
• La section initiale :
Les commandes qu'elle contient sont lues et traitées avant la lecture du fichier en entrée.
C'est le bon endroit pour initialiser des variables par exemple ou pour ouvrir des fichiers
auxiliaires. Elle commence par le mot clef BEGIN et est entourée d'une paire d'accolades.
• La section terminale :
Comme son nom l'indique, la section terminale n'est traitée qu'une fois le fichier en entrée
fermé. Typiquement, c'est l'endroit idéal pour fermer des fichiers auxiliaires ou réaliser des
statistiques. Bref, tout ce qui ne peut se faire qu'une fois toutes les données connues et
traitées. Elle est introduite par le mot clef END et est entourée d'une paire d'accolades.
• La section des règles :
C'est la section où nous mettons les lignes de code de traitement du fichier. Elle est
appelée ainsi, car, nous spécifions des règles d'activation pour les ordres de AWK. Chaque
ensemble de commandes est ceint d'une paire d'accolades et précédé d'une portée. Celle ci
peut être sous la forme d'une expression régulière entourée par des slash / mais également
toute expression arithmétique permettant de discriminer les lignes, par exemple, des
conditions sur le nombre de champs. Elle peut également être vide, auquel cas, les
commandes seront appliquées à toutes les lignes.
100
Annexes
-
B.3 Exécution d'un programme AWK
Il y a deux façons générales d'exécuter des instructions AWK [31]:
1. pour des applications simples :
L’instruction d'exécution est sous la forme :
awk 'program' fichier1 ... fichier n
• 'program': est une liste d'instructions se présentant sous la forme : Pattern action 1;
action 2; ... ; action n.
• fichier1 ... fichier n:liste des fichiers de données en entrée.
La commande exécute le programme, fichier par fichier, sur chaque ligne de façon
séquentielle, ou s'il n'y a pas de fichier en entrée, prend le standard input en tant que fichier
d'entrée.
2. pour des applications plus complexes :
On ouvre un fichier d'instructions awk et l'exécution s'effectue par la commande :
awk -f fichierprog liste optionnelle de fichiers de données.
• fichierprog : est le fichier d'instructions awk enregistré sous l'extension .awk.
La commande exécute séquentiellement le programme se trouvant dans le fichier
programme sur chaque ligne des fichiers en entrée.
101
Annexes
-
Annexe C : codes source
C.1 script Tcl
# Define optioNS
set val(chan)
Channel/WirelessChannel
set val(prop)
Propagation/TwoRayGround
set val(netif)
Phy/WirelessPhy
set val(mac)
Mac/802_11
set val(ifq)
Queue/DropTail/PriQueue
set val(ll)
LL
set val(ant)
Antenna/OmniAntenna
set val(ifqlen)
50
set val(nn)
16
set val(rp)
AODVD/AODV
set val(x)
1000
set val(y)
1000
set val(stop)
40
;# channel type
;# radio-propagation model
;# network interface type
;# MAC type
;# interface queue type
;# link layer type
;# antenna model
;# max packet in ifq
;# number of mobilenodes
;# routing protocol
;# X dimension of topography
;# Y dimension of topography
;# time of simulation end
Mac/802_11 set dataRate_ 5.5Mb
Mac/802_11 set basicRate_ 1Mb
;# 802.11 data transmission rate
;# 802.11 basic transmission rate
# parametres de QoS
Agent/AODV set QoS_factor 1
Agent/AODV set req_bandwitdh 0.08
Agent/AODV set req_delay
0.150
;# activer /désactiver le contrôle d’admission.
;# bande passante demandée.
;# délai max à ne pas dépasser.
# préparation des fichiers traces
set ns
[new Simulator]
set tracefd
[open simplecbr.tr w]
set fd
[open freebw.tr w]
set namtrace [open simwrlscbr.nam w]
$ns trace-all $tracefd
$ns namtrace-all-wireless $namtrace $val(x) $val(y)
# set up topography object
set topo
[new Topography]
$topo load_flatgrid $val(x) $val(y)
create-god $val(nn)
#création et configuration des noeuds.
$ns node-config -adhocRouting $val(rp) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
102
Annexes
-propType $val(prop) \
-phyType $val(netif) \
-channelType $val(chan) \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON\
-macTrace OFF\
-movementTrace OFF
for {set i 0} {$i < $val(nn) } { incr i } {
set node_($i) [$ns node]
}
# Définition des locations initiales des noeuds
for {set j 0} {$j <= 5 } { incr j } {
set posicion_x [expr ($j % 10) * 200 ]
$node_($j) set X_ $posicion_x
$node_($j) set Y_ 800.0
$node_($j) set Z_ 0.0
}
for {set j 10} {$j <= 15 } { incr j } {
set posicion_x [expr ($j % 10) * 200 ]
$node_($j) set X_ $posicion_x
$node_($j) set Y_ 200.0
$node_($j) set Z_ 0.0
}
$node_(6) set X_ 0.0
$node_(6) set Y_ 400.0
$node_(6) set Z_ 0.0
$node_(7) set X_ 0.0
$node_(7) set Y_ 600.0
$node_(7) set Z_ 0.0
$node_(8) set X_ 1000.0
$node_(8) set Y_ 600.0
$node_(8) set Z_ 0.0
$node_(9) set X_ 1000.0
$node_(9) set Y_ 400.0
$node_(9) set Z_ 0.0
#création de quatre connexioNS de type cbr.
#cbr1 entre le noeud 6 et 9.
set udp1 [new Agent/UDP]
$ns attach-agent $node_(6) $udp1
set null1 [new Agent/Null]
$ns attach-agent $node_(9) $null1
$ns connect $udp1 $null1
set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp1
$cbr1 set packet_size_ 1000
103
Annexes
-
$cbr1 set rate_ 0.08Mb
$ns at 15.0 "$cbr1 start"
$ns at 35.0 "$cbr1 stop"
#cbr2 entre le noeud 11 et 13.
set udp2 [new Agent/UDP]
$ns attach-agent $node_(11) $udp2
set null2 [new Agent/Null]
$ns attach-agent $node_(13) $null2
$ns connect $udp2 $null2
set cbr2 [new Application/Traffic/CBR]
$cbr2 attach-agent $udp2
$cbr2 set packet_size_ 1000
$cbr2 set rate_ 0.38Mb
$ns at 5.0 "$cbr2 start"
$ns at 25.0 "$cbr2 stop"
#cbr1 entre le noeud 10 et 14.
set udp3 [new Agent/UDP]
$ns attach-agent $node_(10) $udp3
set null3 [new Agent/Null]
$ns attach-agent $node_(14) $null3
$ns connect $udp3 $null3
set cbr3 [new Application/Traffic/CBR]
$cbr3 attach-agent $udp3
$cbr3 set packet_size_ 1000
$cbr3 set rate_ 0.38Mb
$ns at 10.0 "$cbr3 start"
$ns at 30.0 "$cbr3 stop"
#cbr1 entre le noeud 1 et 4.
set udp4 [new Agent/UDP]
$ns attach-agent $node_(1) $udp4
set null4 [new Agent/Null]
$ns attach-agent $node_(4) $null4
$ns connect $udp4 $null4
set cbr4 [new Application/Traffic/CBR]
$cbr4 attach-agent $udp4
$cbr4 set packet_size_ 1000
$cbr4 set rate_ 0.62Mb
$ns at 17.0 "$cbr4 start"
$ns at 35.0 "$cbr4 stop"
#procedure pour afficher la bande passante libre toutes les secondes
proc record {} {
global fd NS node_ mac_ freebw_
set time 1.0
set free [[$node_(1) set mac_(0)] set freebw_]
set now [$NS now]
puts $fd "$now $free"
104
Annexes
-
$ns at [expr $now+$time] "record"
}
$ns at 1.0 "record"
# definition des position initiales
#pour le visualisateur nam.
for {set i 0} {$i < $val(nn)} { incr i } {
$ns initial_node_pos $node_($i) 30
}
# fin de la simulation
for {set i 0} {$i < $val(nn) } { incr i } {
$ns at $val(stop) "$node_($i) reset";
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "stop"
$ns at 39.01 "puts \"end simulation\" ; $ns halt"
proc stop {} {
global NS tracefd namtrace fd
$ns flush-trace
close $tracefd
close $fd
close $namtrace
}
$ns run
105
Annexes
-
C.2 Script Awk
BEGIN {
max_packet_id = 0;
totalreceved = 0;
PDR = 0.0;
totalsend = 0;
total_time = 0.0;
}
{
action = $1;
time = $2;
layer = $4;
type = $7;
id_paquet = $6;
if (id_paquet > max_packet_id )
max_packet_id = id_paquet ;
if ( action == "s" && layer == "AGT"){
if ( start_time[id_paquet] == 0 ) start_time[id_paquet] = time;
}
if (action != "D" ){
if (action == "r" && layer == "AGT") end_time[id_paquet] = time;
}else { end_time[id_paquet] = -1; }
if ((layer == "AGT") &&(action == "r")) totalreceved ++;
if ((layer == "AGT") && (action == "s")) totalsend ++;
}
106
Annexes
-
END {
for ( id_paquet = 0; id_paquet <= max_packet_id; id_paquet++ )
{
start = start_time[id_paquet];
end = end_time[id_paquet];
end_to_end = end - start;
if ( start < end ){
total_time = total_time + end_to_end;
printf("%d %f
end_to_end);
%f
%f
\n", id_paquet, start, end,
}
}
delay = total_time/totalreceved;
PDR
= totalreceved/totalsend;
PLR
= 1.0 - PDR;
printf("%f
%f
%f
%f
%d
%d \n", delay, PDR, PLR,
totalreceved, totalsend);
}
107
Résumé
L’approvisionnement en Qualité de Service (QoS) est l’une des
problématiques majeures posées dans les réseaux mobiles ad hoc(MANETs).
Une bonne solution de QoS est généralement construite à base de plusieurs
briques dont le routage avec QoS. Contrairement au routage « au mieux », le
routage avec QoS permet de chercher des routes assurant une certaine QoS
par rapport à une métrique bien définie. Par conséquent, il est mieux adapté
pour les applications multimédia ou temps réel.
Dans ce travail, nous nous intéressons à garantir le délai de bout en
bout dans le protocole AODV. Notre protocole de routage ave QoS baptisé
AODV-D (AODV with Delay constraints) a comme brique principale
l’estimation du délai par une file M/M/1/K, un contrôle d’admission sera
effectué par la suite pour vérifier le délai. Les résultats préliminaires de
simulation sous NS-2 ont montré une amélioration significative des
performances selon les trois métriques principales de la VoIP.
Mots clés: réseau ad hoc, IEEE 802.11, protocoles de routage, qualité de
service (QoS), AODV, simulateur NS-2.
Abstract
Quality of Service (QoS) provisioning is one of the major problems in
mobile ad hoc networks (MANETs). A good solution of QoS is generally built
upon several blocks, of whom QoS routing. Contrary to « best effort »,
routing, QoS routing makes it possible to search routes ensuring QoS
according to a given metric. Consequently, it is more adapted for multimedia
or real time applications.
In this work, we are interested in guaranteeing end to end delay in the
AODV protocol. Our QoS routing protocol named AODV-D (AODV with
Delay constraints) has as principal building block delay estimation by an
M/M/1/K queue. Thereafter, an admission control is carried out to check the
delay. The preliminary results of simulation under NS-2 showed a significant
improvement of the performances according to the three principal metrics of
VoIP.
Keywords: ad hoc network, IEEE 802.11, routing protocols, quality of service
(QoS), AODV, NS-2 simulator.
Téléchargement
Explore flashcards