Td corrigé III / Le routage dans les réseaux mobiles Ad hoc pdf

III / Le routage dans les réseaux mobiles Ad hoc

Le protocole OSPF (Open Shoretest Path First), est l'un des protocoles les plus populaires basé sur le principe "Etat de lien". Comme nous allons voir par la ...




part of the document



78 \h 12
3.2 La difficulté du routage dans les réseaux ad hoc  RENVOIPAGE _Toc33223279 \h 12
3.3 La conception des stratégies de routage  RENVOIPAGE _Toc33223280 \h 13
3.4 L'évaluation des protocoles de routage  RENVOIPAGE _Toc33223281 \h 14
3.5 Autres notions  RENVOIPAGE _Toc33223282 \h 14
3.5.1 Le "multihoping"  RENVOIPAGE _Toc33223283 \h 14
3.5.2 L'inondation  RENVOIPAGE _Toc33223284 \h 15
3.5.3 Le concept de groupe  RENVOIPAGE _Toc33223285 \h 15

IV / Les différents protocoles de routage  RENVOIPAGE _Toc33223286 \h 17

4.1 Les protocoles de routage pro-actifs  RENVOIPAGE _Toc33223287 \h 17
4.1.1 Présentation  RENVOIPAGE _Toc33223288 \h 17
4.1.2 Le protocole de routage DSDV  RENVOIPAGE _Toc33223289 \h 18
4.1.3 Le protocole de routage WRP  RENVOIPAGE _Toc33223290 \h 20
4.1.4 Le protocole de routage GSR  RENVOIPAGE _Toc33223291 \h 21
4.1.5 Le protocole de routage FSR  RENVOIPAGE _Toc33223292 \h 22
4.1.6 Le protocole de routage HSR  RENVOIPAGE _Toc33223293 \h 24
4.1.7 Le protocole de routage ZHLS  RENVOIPAGE _Toc33223294 \h 26
4.1.8 Le protocole de routage CGSR  RENVOIPAGE _Toc33223295 \h 27
4.1.9 Le protocole de routage DREAM  RENVOIPAGE _Toc33223296 \h 28
4.2 Les protocoles de routage réactifs (à la demande)  RENVOIPAGE _Toc33223297 \h 29
4.2.1 Présentation  RENVOIPAGE _Toc33223298 \h 29
4.2.2 Le protocole de routage CBRP  RENVOIPAGE _Toc33223299 \h 29
4.2.3 Le protocole de routage DSR  RENVOIPAGE _Toc33223300 \h 31
4.2.4 Le protocole de routage AODV  RENVOIPAGE _Toc33223301 \h 33
4.2.5 Le protocole de routage TORA  RENVOIPAGE _Toc33223302 \h 35
4.2.6 Le protocole de routage ABR  RENVOIPAGE _Toc33223303 \h 37
4.2.7 Le protocole de routage SSR  RENVOIPAGE _Toc33223304 \h 38
4.2.8 Le protocole de routage LAR  RENVOIPAGE _Toc33223305 \h 39
4.2.9 Le protocole de routage RDMAR  RENVOIPAGE _Toc33223306 \h 39

Conclusion  RENVOIPAGE _Toc33223307 \h 43

Introduction


L’essor des technologies sans fil offre aujourd’hui des perspectives intéressantes dans le domaine des télécommunications. L’évolution récente des moyens de communication sans fil a permis la manipulation d’informations au travers d’unités de calcul portables aux caractéristiques bien particulières (faible capacité de stockage, source d’énergie autonomie, puissance limitée, etc.) qui accèdent au réseau par le biais d’une interface de communication sans fil.

Les environnements mobiles offrent une grande flexibilité d'emploi. En particulier, ils permettent la mise en réseau de sites dont le câblage serait trop onéreux à réaliser dans leur totalité, voire même impossible ( par exemple en présence d'une composante mobile ). Contrairement à l'environnement statique, l’environnement mobile permet aux unités de calcul une libre mobilité et ne pose aucune restriction sur la localisation des usagers. La mobilité et le nouveau mode de communication utilisé engendrent des problèmes propres à l’environnement mobile : une fréquente déconnexion, un débit de communication et des ressources modestes et des sources d’énergie limitées.

Les réseaux mobiles sans fil, peuvent être classés en deux catégories : les réseaux avec infrastructure qui utilisent généralement le modèle de la communication cellulaire, et les réseaux sans infrastructure ou les réseaux ad hoc. Plusieurs systèmes utilisent déjà le modèle cellulaire et connaissent une très forte expansion à l'heure actuelle ( les réseaux GSM par exemple ) mais requièrent une importante infrastructure logistique et matérielle fixe.

L’alternative à ces réseaux cellulaires sont les réseaux mobiles ad hoc. Un réseau ad hoc peut être défini comme une collection d'entités mobiles interconnectées par une technologie sans fil formant un réseau temporaire sans l'aide de toute administration ou de tout support fixe.
Dans un réseau ad hoc les hôtes mobiles doivent former, d'une manière ad hoc, une sorte d'architecture globale qui peut être utilisées comme infrastructure du système. Les applications des réseaux ad hoc sont nombreuses, on cite l'exemple classique de leur application dans le domaine militaire et les autres applications de tactique comme les opérations de secours et les missions d'exploration. Du fait que le rayon de propagation des transmissions des hôtes soit limité, et afin que le réseau ad hoc reste connecté, il se peut qu'un hôte mobile se trouve dans l'obligation de demander de l'aide à un autre hôte pour pouvoir communiquer avec son correspondant. Il se peut donc que l'hôte destination soit hors de la portée de communication de l'hôte source, ce qui nécessite l'emploi d'un routage interne par des nœuds intermédiaires afin de faire acheminer les paquets de messages à la bonne destination. La gestion de l'acheminement de données ou le routage, consiste à assurer une stratégie qui garantie, à n'importe quel moment, la connexion entre n'importe quelle paire de nœuds appartenant au réseau. La stratégie de routage doit prendre en considération les changements de la topologie ainsi que les autres caractéristiques du réseau ad hoc ( bande passante, nombre de liens, ressources du réseau…etc. ). En outre, la méthode adoptée dans le routage, doit offrir le meilleur acheminement des données en respect des différentes métriques de coûts utilisées. Ce travail entre dans le cadre de l'étude du problème de routage dans les réseaux mobiles ad hoc.

Notre étude offre principalement une étude synthétique des travaux de recherche qui ont été fait, et qui se font à l'heure actuelle, dans le but de résoudre le problème d'acheminement de données entre les hôtes mobiles du réseau ad hoc. Comme nous allons voir le problème de routage est très compliqué, cela est du essentiellement à la propriété qui caractérise les réseaux ad hoc et qui est l'absence d'infrastructure fixe et de toute administration centralisée.
Ce document est composé de trois chapitres : dans le premier chapitre nous présentons les environnements mobiles et les principaux concepts liés à ces environnements. Nous commençons par la définition de l'environnement et citer les deux classes qui le constituent, ainsi que les principaux avantages offerts. Nous donnons par la suite quelques notions importantes utilisées dans les systèmes mobiles et qui sont plus liées à la technologie sans fil qui représente le cœur de la télécommunication sans fil.
Dans le deuxième chapitre, nous introduisons le concept de réseau ad hoc et le problème de routage dans cet environnement. Ceci permet d'un coté de situer les réseaux ad hoc par rapport à l'environnement mobile, et d'un autre coté de mettre l'accent sur le problème de routage, problème qui est propre à l'environnement du réseau ad hoc. Après la description des principales applications et caractéristiques de l'environnement ad hoc, nous définissons le problème d'acheminement de données dans de tels environnements et nous soulignons sa difficulté et les principales contraintes que la stratégie de routage doit respecter.
Des notions importantes liées au problème de routage sont par la suite discutées. Le dernier chapitre est consacré à la présentation des différents protocoles de routage existant dans le contexte des réseaux ad hoc. Nous décrivons les principales caractéristiques et fonctionnalités des stratégies de routage les plus connues permettant d'assurer l'acheminement des données entre les hôtes mobiles. Le but d'une stratégie de routage est l'établissement de routes qui soient correctes et efficaces entre une paire quelconque d'hôte, les protocoles de routage qui existent se diffèrent par la manière de recherche de chemins entre la source et la destination et par la maintenance des routes construites.

I / Les environnements mobiles

Les environnements mobiles permettent une grande flexibilité d'emploi. En particulier, ils permettent la mise en réseau des sites dont le câblage serait trop onéreux à réaliser dans leur totalité, voire même impossible. Les solutions de déploiement conçues pour les systèmes distribués ne regroupant que des sites statiques ne peuvent pas être utilisées directement dans ce type d’environnement. De nouvelles solutions doivent être trouvées pour s'adapter aux limitations qui existent, ainsi qu’aux facteurs qui rentrent en jeu lors de la conception.
Ce chapitre a pour but de présenter l'environnement mobile et les principaux concepts qui lui sont liés. Le modèle de l'environnement étudié, dans ce chapitre, n'exclut pas l'existence d'une infrastructure préexistante ( un ensemble de stations liées par un réseau filaire ) puisque l'esprit de la communication est la même pour tous les réseaux mobiles.
1.1 Présentation des environnements mobiles

Un environnement mobile est un système composé de sites mobiles et qui permet à ses utilisateurs d'accéder à l'information indépendamment de leurs positions géographiques. Les réseaux mobiles ou sans fil, peuvent être classés en deux classes : les réseaux avec infrastructure et les réseaux sans infrastructure. Le modèle de système intégrant des sites mobiles et qui a tendance à se généraliser, est composé de deux ensembles d'entités distinctes : les "sites fixes" d'un réseau de communication filaire classique ( wired network ), et les "sites mobiles" ( wireless network ). Certains sites fixes, appelés stations support mobile ( Mobile Support Station ) ou station de base ( SB ) sont munis d'une interface de communication sans fil pour la communication directe avec les sites ou unités mobiles ( UM ), localisés dans une zone géographique limitée, appelée cellule. A chaque station de base correspond une cellule à partir de laquelle des unités mobiles peuvent émettre et recevoir des messages. Alors que les sites fixes sont interconnectés entre eux à travers un réseau de communication filaire, généralement fiable et d'un débit élevé, les liaisons sans fil ont une bande passante limitée qui réduit considérablement le volume des informations échangées.
Dans ce modèle, une unité mobile ne peut être, à un instant donné, directement connectée qu'à une seule station de base. Elle peut communiquer avec les autres sites à travers la station à laquelle elle est directement rattachée. L'autonomie réduite de sa source d'énergie lui occasionne de fréquentes déconnexion du réseau. Sa reconnexion peut alors se faire dans un environnement nouveau voire dans une nouvelle localisation.















Figure 1.1 : Le modèle des réseaux mobiles avec infrastructure

Le modèle de réseau sans infrastructure préexistante ne comporte pas l'entité "site fixe" : tous les sites du réseau sont mobiles et communiquent d'une manière directe en utilisant leurs interfaces de communication sans fil. L'absence de l'infrastructure ou du réseau filaire composé des stations de base oblige les unités mobiles à se comporter comme des routeurs qui participent à la découverte et la maintenance des chemins pour les autres hôtes du réseau.

















Figure 1.2 : Le modèle des réseaux mobiles sans infrastructure.

La mobilité et la portabilité offertes par ces environnements permettent le développement de nouvelles classes d'applications : services d'informations avec accès à diverses bases de données en tout lieu et en tout temps (pages jaunes, distribution, spectacles, etc.) et des applications dites verticales relevant de domaines spécifiques : compagnies de location, localisation d'employés dans une entreprise, etc.
La messagerie électronique connaîtra un développement spectaculaire : les usagers munis de communicateurs pourront envoyer et recevoir des messages de n'importe où et les nouvelles électroniques leurs seront délivrées en fonction de leurs profils respectifs. La permanence de la connexion des usagers aux réseaux d'information, indépendamment de leurs positions géographiques contribuera au développement des applications coopératives.

1.2 L'utilisation des ondes radio dans la communication sans fil

La transmission radio utilisée dans la communication sans fil des unités mobiles est basée sur le principe que l'accélération d'un électron crée un champ électromagnétique qui à son tour accélère d'autres électrons et ainsi de suite. Il est alors possible de provoquer le déplacement électromagnétique. Plus le nombre d'électrons déplacés est important, plus le signal est fort et plus sera grande sa portée, avec une vitesse proche de celle de la lumière. Un déplacement coordonné d'électrons peut alors servir pour le transfert d'information et constitue la base de la communication sans fil. L'approche standard de la transmission radio est le déplacement des électrons à une fréquence donnée.
Des techniques de modulation et de multiplexage permettent d'adapter les signaux transmis à la bande passante du support de communication et de rentabiliser son utilisation. Deux signaux sur la même fréquence interfèrent et s'altèrent mutuellement. Pour y remédier le spectre de fréquence est divisé en plusieurs parties (bandes de fréquence), chaque partie étant dédiée à une utilisation spécifique. La taille limitée du spectre de fréquence impose donc le regroupement d'usagers dans des bandes étroites comme dans le cas de la radio cellulaire. Par exemple, la bande de 25 Mhz à 890 Mhz est réservée aux émissions de télévision et la bande supérieure à 890 Mhz pour la téléphonie cellulaire et la transmission par satellite. Au lieu d'allouer à chaque appel la totalité de la fréquence, la technologie cellulaire limite la puissance du signal au minimum nécessaire; ce qui réduit les limites des interférences à une région de taille réduite autour de la station d'émission. Deux stations d'émission/réception situées dans des régions suffisamment éloignées l’une de l’autre peuvent utiliser la même fréquence sans risque d'interférence.

1.3 La fiabilité de la communication sans fil

La communication sans fil est moins fiable que la communication dans les réseaux filaires. La propagation du signal subit des perturbations (erreurs de transfert, microcoupure, timeout, etc.) dues à l'environnement, qui altèrent l'information transférée. Il s'ensuit alors un accroissement du délai de transit de messages à cause de l'augmentation du nombre de retransmissions. La connexion peut aussi être rompue ou altérée par la mobilité des sites. Un usager peut sortir de la zone de réception ou entrer dans une zone de haute interférence. Le nombre d'unités mobiles dans une même cellule (dans le cas des réseaux cellulaires), par exemple lors d'un rassemblement populaire, peut entraîner une surcharge du réseau.
L'une des limites de la communication sans fil vient de la relative faiblesse de la bande passante des technologies utilisées. On distingue les réseaux utilisant l'infrarouge avec un débit de 1Mbps, la communication radio avec 2Mbps et le téléphone cellulaire avec 9 à 14 Kbps. La bande passante est évidemment partagée entre les utilisateurs d'une même cellule. Pour augmenter la capacité de service d'un réseau, deux techniques sont utilisées : la technique de recouvrement des cellules sur différentes longueurs d'ondes et celle qui réduit la portée du signal pour avoir plus de cellules mais de rayon moindre couvrant une région donnée.

1.4 La communication cellulaire

La configuration standard d'un système de communication cellulaire est un maillage de cellules hexagonales (voir figure 1.3). Initialement, une région peut être couverte uniquement par une seule cellule. Quand la compétition devient importante pour l'allocation des canaux, la cellule est généralement divisée en sept cellules plus petites, dont le rayon est égal à un tiers du rayon de la cellule de départ. Cette subdivision peut être répétée et l'on parle alors de systèmes microcellulaires. Les cellules adjacentes dans le maillage doivent utiliser des fréquences différentes, contrairement à celles qui sont situées sur les côtés opposés du maillage qui peuvent utiliser la même fréquence sans risque d'interférence.












Figure 1.3 : Le principe de réutilisation de fréquence.

1.5 Quelques éléments de l'infrastructure sans fil

Les réseaux informationnels de demain dits PCN (Personal Communication Network) intégreront une large variété de services (voix, données, multimédia, etc.). L'architecture générale de ces réseaux, bien qu'encore en débat, sera construite autour des infrastructures déjà existantes telles que :
Les réseaux téléphoniques cellulaires (à l'avenir microcellulaires) reliés au réseau téléphonique public.
Les réseaux locaux traditionnels tels Ethernet, étendus à la communication sans fil, et reliés à des réseaux plus étendus de type LAN, WAN, Internet, etc.
Les architectures orientées vers des services spécialisés fournis par diffusion sur des portions d'ondes radio en modulation de fréquence ou par des satellites à des usagers munis de terminaux spéciaux.
La même unité mobile peut, en principe, interagir avec les trois types d'infrastructures à différents moments, par exemple, en se déplaçant de l'intérieur d'un bâtiment où elle interagit avec un réseau local pourvu d'une interface de communication sans fil à l'extérieur du bâtiment où elle interagit avec le réseau téléphonique cellulaire.

Ce chapitre a été axé sur le concept des environnements mobiles et l'utilisation de la technologie de communication sans fil. L'évolution rapide qu'a connu la technologie sans fil récemment a permis l'apparition de nouveaux systèmes de communication qui offrent plus d'avantages par rapport aux systèmes classiques. Les nouveaux systèmes n'astreignent plus l'usager à une localisation fixe, mais lui permettent une libre mobilité. La compréhension parfaite de la communication utilisée dans le nouvel environnement nécessite la compréhension des notions de base de la technologie sans fil comme l'utilisation des ondes radio, la notion de bande passante, la réutilisation des fréquences, le portée d'une unité mobile, etc. Les limitations de ce type d’environnement transforment certains problèmes, ayant des solutions évidentes dans l'environnement classique, en des problèmes complexes et difficiles à résoudre.


II / Les réseaux mobiles Ad hoc
Les systèmes de communication cellulaire sont basés essentiellement sur l'utilisation des réseaux filaires (tel que Internet ou ATM) 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éployables 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. 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 a faire des efforts afin de réaliser le but des réseaux : "l'accès a l'information n'importe ou et n'importe quand".
Le concept des réseaux mobiles ad hoc essaie d'étendre les notions de la mobilité a toutes les composantes de l'environnement. Ici, contrairement aux réseaux bases 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. Les réseaux ad hoc sont idéals pour les applications caractérisées par l’absence (ou la non-fiabilité) d'une infrastructure préexistante, tel que les applications militaires et les autres applications de tactique comme les opérations de secours (incendies, tremblement de terre, etc.) et les missions d'exploration.

2.1 Définition

Un réseau mobile ad hoc, appelé généralement MANET (Mobile Ad hoc NETwork), consiste en une grande population relativement dense d'unités mobiles qui se déplacent dans un territoire quelconque et dont le seul moyen de communication est l'utilisation des interfaces sans fil, sans l'aide d'une infrastructure préexistante ou d’administration centralisée. Un réseau ad hoc peut être modéliser par un graphe Gt = (Vt,Et) ou Vt représente l'ensemble des nœuds (i.e. les unités ou les hôtes mobiles) du réseau et Et modélise l'ensemble les connections qui existent entre ces nœuds (voir la figure 2.1). Si e = (u,v) appartient à Et, cela veut dire que les nœuds u et v sont en mesure de communiquer directement a l'instant t.
















Figure 2.1 : La modélisation d'un réseau ad hoc

La topologie du réseau peut changer à tout moment (voir la figure 2.2), elle est donc dynamique et imprévisible, ce qui fait que la déconnexion des unités est très fréquente.




Figure 2.2 : Le changement de la topologie des réseaux ad hoc

Un exemple d'un réseau ad hoc : un groupe d'unités portables reliées par des cartes HIPERLAN. Les réseaux appelés GSM ne représentent pas des réseaux ad hoc, car la communication entre les unités passe obligatoirement par des stations de base du réseau filaire.

2.2 Les applications des réseaux mobiles ad hoc

Les applications ayant recours aux réseaux ad hoc couvrent un très large spectre, incluant les applications militaires et de tactique, les bases de données parallèles, l'enseignement à distance, les systèmes de fichiers répartis, la simulation distribuée interactive et plus simplement les applications de calcul distribué ou méta-computing.
D'une façon générale, les réseaux ad hoc sont utilisés dans toute application où le déploiement d'une infrastructure réseau filaire est trop contraignant, soit parce que difficile à mettre en place, soit parce que la durée d'installation du réseau ne justifie pas de câblage à demeure.

2.3 Les caractéristiques des réseaux ad hoc

Les réseaux mobiles ad hoc sont caractérisés par ce qui suit :
Une topologie dynamique : Les unités mobiles du réseau, se déplacent d'une façon libre et arbitraire. Par conséquent la topologie du réseau peut changer, à des instants imprévisibles, d'une manière rapide et aléatoire. Les liens de la topologie peuvent être unis ou bidirectionnels.
Une bande passante limitée : Un des caractéristiques primordiales des réseaux basés sur la communication sans fil est l'utilisation d'un médium de communication partagé. Ce partage fait que la bande passante réservée à un hôte soit modeste.
Des contraintes d'énergie : Les hôtes mobiles sont alimentés par des sources d'énergie autonomes comme les batteries ou les autres sources consommables. Le paramètre d'énergie doit être pris en considération dans tout contrôle fait par le système.
Une sécurité physique limitée : Les réseaux mobiles ad hoc sont plus touchés par le paramètre de sécurité, que les réseaux filaires classiques. Cela se justifie par les contraintes et limitations physiques qui font que le contrôle des données transférées doit être minimisé.
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.



III / Le routage dans les réseaux mobiles Ad hoc
3.1 Définition

Généralement, le routage est une méthode d'acheminement des informations à la bonne destination à travers un réseau de connexion donné. Le problème de routage consiste pour un réseau dont les arcs, les nœuds et les capacités sur les arcs sont fixés à déterminer un acheminement optimal des paquets ( de messages, de produits …etc. ) à travers le réseau au sens d'un certain critère de performance. Le problème consiste à trouver l'investissement de moindre coût en capacités nominales et de réserves qui assure le routage du trafic nominal et garantit sa survabilité en cas de n'importe quelle panne d'arc ou de nœud.
Par exemple si on suppose que les coûts des liens sont identiques, le chemin indiqué dans la figure suivante est le chemin optimal reliant la station source et la station destination. Une bonne stratégie de routage utilise ce chemin dans le transfert des données entres les deux stations.













Figure 2.3 : Le chemin utilisé dans le routage entre la source et la destination

3.2 La difficulté du routage dans les réseaux ad hoc

Comme nous avons déjà vu, l'architecture d'un réseau mobile ad hoc est caractérisée par une absence d'infrastructure fixe préexistante, à l'inverse des réseaux de télécommunication classiques. Un réseau ad hoc 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 pouvant intervenir au sein des unités mobiles.
Dans le but d'assurer la connectivité du réseau, malgré l'absence d'infrastructure fixe et la mobilité des stations, chaque nœud est susceptible d'être mis à contribution pour participer au routage et pour retransmettre les paquets d'un nœud qui n'est pas en mesure d'atteindre sa destination : tout nœud joue ainsi le rôle de station et de routeur.
Chaque nœud participe donc à un protocole de routage qui lui permet de découvrir les chemins existants, afin d'atteindre les autres nœuds du réseau. Le fait que la taille d'un réseau ad hoc peut être énorme, souligne que la gestion de routage de l'environnement doit être complètement différente des approches utilisées dans le routage classique. Le problème qui se pose dans le contexte des réseaux ad hoc est l'adaptation de la méthode d'acheminement utilisée avec le grand nombre d'unités existant dans un environnement caractérisé par de modestes capacités de calcul et de sauvegarde.

Dans la pratique, il est impossible qu'un hôte puisse garder les informations de routage concernant tous les autres nœuds, dans le cas où le réseau serait volumineux.
Certains protocoles, comme le DSR et le AODV, utilisent la sauvegarde des données de routage concernant une destination donnée (dans le cas ou la source ne possède pas déjà de telles informations). Cependant, ces protocoles ne spécifient pas les destinations que les nœuds doivent garder leurs données de routage. Le problème ne se pose pas dans le cas de réseaux de petites tailles, car l'inondation (la diffusion pure) faite dans ces réseaux n'est pas coûteuse. Par contre, dans un réseau volumineux, le manque de données de routage concernant les destinations peut impliquer une diffusion énorme dans le réseau, et cela si on considère seulement la phase de découverte de routes. Le trafic causé par la diffusion, dans ce cas, est rajouté au trafic déjà existant dans le réseau ce qui peut dégrader considérablement les performances de transmission du système caractérisé principalement par un faible bande passante.
Dans le cas où le nœud destination se trouve dans la portée de communication du nœud source le routage de vient évident et aucun protocole de routage n'est initié. Malheureusement, ce cas est généralement rare dans les réseaux ad hoc. Une station source peut avoir besoin de transférer des données à une autre station qui ne se trouve pas dans sa portée de communication.
Par exemple dans le réseau illustré par la figure 2.4 l'unité mobile W n'est pas dans la portée de communication de l'unité U (indiquée par le cercle d'origine U) et vice versa. Dans le cas où l'unité U veut transférer des paquets à W, elle doit utiliser les services de l'unité V dans l'envoi des paquets, puisque l'unité V contient dans sa portée de communication les unités U et W. Dans la pratique, le problème de routage est plus compliqué à cause de la non-uniformité de la transmission sans fil et de la possibilité du déplacement imprévisible de tous les nœuds concernés par le routage.















Figure 2.4 : Un simple réseau ad hoc constitué de trois unités mobiles

3.3 La conception des stratégies de routage

L'étude et la mise en œuvre d'algorithmes de routage pour assurer la connexion des réseaux ad hoc au sens classique du terme (tout sommet peut atteindre tout autre), est un problème complexe. L'environnement est dynamique et évolue donc au cours du temps, la topologie du réseau peut changer fréquemment. Il semble donc important que toute conception de protocole de routage doive étudier les problèmes suivants :
1 - 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œuds ou liens.
2 - Offrir un support pour pouvoir effectuer des communications multi-points 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.
3 - 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 dur, 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.
4 - 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.

3.4 L'évaluation des protocoles de routage

Les protocoles de routage doivent être évalués afin de mesurer les performances de la stratégie utilisée et de tester sa fiabilité. L'utilisation d'un réseau ad hoc réel dans une évaluation est difficile et coûteuse, en outre de telles évaluations ne donnent pas généralement des résultats significatifs. Le réseau réel n'offre pas la souplesse de varier les différents paramètres de l'environnement et pose en plus le problème d'extraction de résultats; c'est pour cela la majorité des travaux d'évaluation de performances utilisent le principe de simulation vu les avantages qu'il offre.
En effet, la simulation permet de tester les protocoles sous une variété de conditions. Le simulateur, qui constitue une plate-forme construite avec un certain, permet de faire varier les différents facteurs de l'environnement tel que le nombre d'unités mobiles, l'ensemble des unités en mouvement, les vitesses des mouvements, le territoire du réseau et la distribution des unités dans ce territoire. Initialement, chaque unité est placée aléatoirement dans l'espace de simulation.
Une unité reste dans sa position courante pendant une certaine durée (pause time), par la suite elle choisit une nouvelle vitesse et une nouvelle localisation vers laquelle elle se déplace. Chaque unité répète ce même comportement jusqu'à la fin de la simulation.
Les paramètres mesurés dans une évaluation dépendent de la stratégie de routage appliquée (par exemple dans le cas où on veut comparer deux versions d'un même protocole), mais généralement tout simulateur doit être en mesure d'évaluer :
le contrôle utilisé dans le mécanisme de mise à jour de routage
les délais moyens du transfert des paquets
le nombre moyen de nœuds traversés par les paquets de données.
3.5 Autres notions
3.5.1 Le "multihoping"

Les stratégies de routage utilisées dans les réseaux ad hoc sont caractérisées par le fait de pouvoir acheminer les paquets de données sans l'aide des stations de base utilisées dans la communication cellulaire.
Dans le modèle cellulaire, la communication entre deux nœuds est faite en utilisant les stations de base et le réseau filaire, par conséquent aucune unité mobile n'est utilisée comme routeur intermédiaire, le modèle cellulaire est dit alors "single hop" ( i.e. le nombre de routeurs mobiles intermédiaires est nul ). La contrepartie de ce modèle est le modèle de communication sans infrastructure. Dans ce modèle plusieurs nœuds peuvent participer au routage c'est pour cela l'environnement des réseaux ad hoc est dit "multihop" (i.e. le nombre de stations mobiles qui peuvent être utilisée comme routeurs intermédiaires peut dépasser le un).
3.5.2 L'inondation

L'inondation ou la diffusion pure, consiste à faire propager un paquet (de données ou de contrôle) dans le réseau entier. Un nœud qui initie l'inondation envoie le paquet à tous ses voisins directs. De même, si un nœud quelconque du réseau reçoit le paquet, il le rediffuse à tous ses voisins. Ce comportement se répète jusqu'à ce que le paquet atteigne tous les nœuds du réseau (voir la figure 2.5). Notons que les nœuds peuvent être amener à appliquer - durant l'inondation - certains traitements de contrôle, dans le but d'éviter certains problèmes, tel que le bouclage et la duplication des messages.
Le mécanisme d'inondation est utilisé généralement dans la première phase du routage plus exactement dans la procédure de découverte des routes, et cela dans le cas où le nœud source ne connaît pas la localisation exacte de la destination. Un paquet de requête de route est inondé par la source afin qu'il atteigne la station destination. Il faut noter que l'inondation est très coûteuse surtout dans le cas ou le réseau est volumineux (latence, surcharge des messages, etc.), c'est pour cela que les protocoles de routage essaient de minimiser au maximum la propagation des paquets inondés en rajoutant d'autres paramètres de diffusion.













Figure 2.5 : Le mécanisme d'inondation.
3.5.3 Le concept de groupe

Dans la communication de groupes, les messages sont transmis à des entités abstraites ou groupes, les émetteurs n'ont pas besoin de connaître les membres du groupe destinataire. La communication de groupe a fait déjà l'objet de nombreux travaux, principalement dans le cadre des projets ISIS, TRANSIS et HORUS. La gestion des membres d'un groupe dynamique permet à un élément de se joindre à un groupe, de quitter ce groupe, se déplacer ailleurs puis rejoindre le même groupe. C'est en ce sens que la communication de groupe assure une indépendance de la localisation; ce qui la rend parfaitement adaptée à des topologies de réseaux reconfigurables, telles que les architectures avec sites mobiles.
Le concept de groupe de communication dans un environnement mobile a été utilisé pour améliorer les performances du protocole de diffusion sélective, et pour adapter les canaux de communication de l'environnement ISIS à des sites mobiles. Dans le contexte de routage dans les réseaux ad hoc, certains protocoles (comme nous allons voir dans le chapitre 3) utilisent des stratégies d'acheminement basées sur les groupes. Le concept de groupe facilite les tâches de la gestion du routage (telles que les transmissions des paquets, l'allocation de la bande passante, la réutilisation spatiale, etc.) et cela en décomposant le réseau en un ensemble de groupes connectés mais indépendants du point de vu contrôle. Un algorithme de décomposition en groupes pour les réseaux mobiles sans fil a ensuite été mis en place.

Celui-ci partitionne le réseau un ensemble de groupes de telle sorte que tout nœud du réseau peut atteindre n'importe quel autre nœud en utilisant, au plus, un seul nœud intermédiaire.













Figure 2.6 : La décomposition du réseau en groupes.

Dans ce chapitre nous avons présenté le concept de réseau ad hoc et le problème de routage dans cet environnement. Dans la pratique, les réseaux ad hoc connaissent aujourd'hui plusieurs applications tel que les applications militaires et les applications de secours et de façon générale, toutes les applications caractérisées par une absence d'infrastructure préexistante.
Après avoir défini l'environnement mobile ad hoc et décrit ses principales applications et caractéristiques, nous avons parlé du problème d'acheminement des paquets dans les réseaux ad hoc, c'est à dire le problème de routage.
Finalement, nous avons présenté quelques notions nécessaires à la compréhension du concept de routage dans les environnements mobiles. Dans la partie suivante, nous allons donner une présentation synthétique des différentes solutions qui existent et qui résolvent le problème de routage dans les réseaux mobiles ad hoc.



IV / Les différents protocoles de routage

Comme nous avons déjà vu, un réseau ad hoc est un ensemble de nœuds mobiles qui sont dynamiquement et arbitrairement éparpillés d'une manière où l'interconnexion entre les nœuds peut changer à tout moment. Dans la plupart des cas, l'unité destination ne se trouve pas obligatoirement dans la portée de l'unité source, ce qui implique que l'échange des données entre deux nœuds quelconques doit être effectué par des stations intermédiaires. La gestion de cet acheminement de données, ou routage, implique l'établissement d'une certaine architecture globale qui tient compte de la mobilité des unités et de la versatilité du médium physique.
La stratégie (ou le protocole) de routage est utilisée dans le but de découvrir les chemins qui existent entre les nœuds. Le but principal d'une telle stratégie est l'établissement de routes qui soient correctes et efficaces entre une paire quelconque d'unités, ce qui assure l'échange des messages d'une manière continue.
Vu les limitations des réseaux ad hoc, la construction des routes doit être faite avec un minimum de contrôle et de consommation de la bande passante. Suivant la manière de création et de maintenance de routes lors de l'acheminement des données, les protocoles de routage peuvent être séparés en deux catégories, les protocoles pro-actifs et les protocoles réactifs. Les protocoles pro-actifs établissent les routes à l'avance en se basant sur l'échange périodique des tables de routage, alors que les protocoles réactifs cherchent les routes à la demande.
Dans ce qui suit, nous allons présenter les protocoles les plus connus proposés pour effectuer le routage dans les réseaux ad hoc. Nous décrirons leurs principales caractéristiques et fonctionnalités qui permettent d'assurer l'acheminement des données entre les différentes unités mobiles. Notons que la plupart de ces protocoles sont en cours d'évaluation par des groupes de travail spécialisés dans les environnements mobiles.
4.1 Les protocoles de routage pro-actifs
4.1.1 Présentation

Les protocoles de routage pro-actifs pour les réseaux mobiles ad-hoc, sont basé sur la même philosophie que les protocoles de routage utilisés dans les réseaux filaires conventionnels. avant de présenter quelques protocoles de cette classe.
Les deux principales méthodes utilisées dans le routage des réseaux filaires sont : la méthode Etat de Lien (« Link State ») et la méthode du Vecteur de Distance (« Distance Vector »). Ces deux méthodes exigent une mise à jour périodique des données de routage qui doit être diffusée par les différents nœuds de routage du réseau. Les algorithmes de routage basés sur ces deux méthodes utilisent la technique des plus courts chemins, et permettent à un hôte donné de trouver le prochain hôte pour atteindre la destination en utilisant le trajet le plus cours existant sur le réseau.
Généralement le calcul du plus court chemin entre deux stations est basé sur le nombre de nœuds (on dit aussi le nombre de sauts) que comportent les différents chemins qui existent entre les deux stations. Mais on peut aussi associer des coûts aux liens de communication ; ces coûts seront utilisés en appliquant une fonction de calcul qui est en générale linéaire. Un coût peut matérialiser le taux de l'utilisation d'un lien, les délais relatifs de communication ou un autre facteur qu'on veut le minimiser lors du routage des données.
Dans le protocole "Link State", chaque nœud de routage maintient sa propre vision de la topologie du réseau et qui inclut l'état de ses canaux de sortie. Pour que cette vision soit à jour, chaque nœud diffuse (par inondation) périodiquement l'état des liens de ses voisins à tous les nœuds du réseau. Cela est fait aussi quand il y a un changement d'état de liens. Un nœud qui reçoit les informations concernant l'état des liens met à jour sa vision de la topologie du réseau et applique un algorithme de calcul des chemins optimaux afin de choisir le nœud suivant pour une destination donnée.
Un exemple des algorithmes les plus connus appliqué dans le calcul des plus courts chemins, est celui de Dijkstra. Notons que le nœud de routage calcule la plus courte distance qui le sépare d'une destination donnée en se basant sur l'image complète du réseau formée des liens les plus récents de tous les nœuds de routage.
Cela veut dire que pour qu'un nœud p puisse déterminer le nœud de routage suivant pour une destination donnée, p doit recevoir les messages de la dernière mise à jour des liens, propagé par le réseau. Le protocole OSPF (Open Shoretest Path First), est l'un des protocoles les plus populaires basé sur le principe "Etat de lien".
Comme nous allons voir par la suite, l'algorithme "Distance Vector" de base a été adopté pour le routage dans les réseaux ad hoc sans fil, et cela en traitant chaque hôte mobile comme un nœud de routage. Dans l'approche de routage "Distance Vector", chaque nœud de routage diffuse à ses nœuds de routage voisins, sa vision des distances qui le séparent de tous les hôtes du réseau. En se basant sur les informations reçus par tous ses voisins, chaque nœud de routage fait un certain calcul pour trouver le chemin le plus court vers n'importe quelle destination. Le processus de calcul se répète s'il y a un changement de la distance minimale séparant deux nœuds, et cela jusqu'à ce que le réseau atteigne un état stable.
Cette technique est basée sur l'algorithme distribué de Bellman-Ford. Cet algorithme est basé sur l'utilisation des messages de mise à jour. Un message de mise à jour contient un vecteur d'une ou plusieurs entrées, pour lequel chaque entrée contient, au minimum, la distance vers une destination donnée. Le principe du DBF est utilisé par une grande partie des protocoles de routage des réseaux filaires. Un problème de performance majeur de cet algorithme est qu'il prend beaucoup de temps pour mettre à jour les tables de routage des hôtes, après une partition du réseau, des défaillances de nœuds, ou quand il y a un grand nombre de nœuds dans le réseau.
D'autres problèmes du DBF sont dus à l'absence de coordination entre nœuds dans les modifications des tables de routage, qui peuvent être faites en se basant sur des données erronées (problème de "routing loops"). En plus de cela, le DBF ne possède pas de mécanisme précis qui peut déterminer quand le réseau doit arrêter l'incrémentation de la distance qui correspond à une destination donnée, (problème de "counting to infinity").
La circulation inutile des paquets de messages, qui peut arriver avec le DBF, est intolérable dans les réseaux mobiles ad hoc, caractérisés par une bande passante limitée et des ressources modestes. En plus de cela, la mobilité fréquente des nœuds fait que la convergence du DBF prend beaucoup de temps, ce qui pénalise le routage dans de tels environnements. Dans ces dernières années, beaucoup d'efforts ont été faits dans le but de résoudre les problèmes du DBF, et de l'adapter dans le contexte des réseaux mobiles. L’un de ces efforts est le protocole DSDV que nous allons voir par la suite.
Dans les algorithmes de routage basés sur le principe "Link State", le problème de « counting to infinity » n'existe pas. De plus, la convergence d'un nœud de routage est moins lente par rapport au DBF, ce qui a fait que "Link State" est préféré et utilisé dans beaucoup de réseaux modernes, tel que Internet et ATM. Cependant, l'approche du "Link State" exige que chaque nœud doive maintenir une version mise à jour de la topologie complète du réseau, ce qui nécessite un grand espace de stockage et implique une surcharge d'échange de paquets de contrôle dans le cas des réseaux dynamiques.
En outre, aucun algorithme implémenté en se basant sur le principe "Link State", n'a pu éliminer totalement la création des boucles temporaires de routage. Les protocoles de routage pro-actifs rassemblent les idées des deux approches précédentes, et essaient de les adapter pour les environnements mobiles en essayant de réduire ou d'éliminer leurs limitations tout en prenant en considérations les caractéristiques du nouvel environnement.
4.1.2 Le protocole de routage DSDV

L'algorithme de routage de Perkins appelé "Vecteur de Distance à Destination Dynamique Séquencée" ou DSDV (Dynamic Destination-Sequenced Distance- Vector) a été conçu spécialement pour les réseaux mobiles. Il est basé sur l'idée classique de l'algorithme distribué de Bellman-Ford en ajoutant quelques améliorations. Chaque station mobile maintient une table de routage qui contient :
• Toutes les destinations possibles.
• Le nombre de nœud (ou de sauts) nécessaire pour atteindre la destination.
• Le numéro de séquences (SN : sequence number) qui correspond à un nœud destination.
Pour chaque nœud i, le numéro de séquence (NS) de la destination j est associé à chaque entrée de distance Dijk, pour chaque voisin k. Le NS est utilisé pour faire la distinction entre les anciennes et les nouvelles routes, ce qui évite la formation des boucles de routage.
Afin de maintenir la consistance des tables de routage dans une topologie qui varie rapidement, chaque nœud du réseau transmet périodiquement sa table de routage à ses voisins directs. Le nœud peut aussi transmettre sa table de routage si le contenu de cette dernière subit des changements significatifs par rapport au dernier contenu envoyé. La mise à jour dépend donc de deux paramètres : le temps, c'est à dire la période de transmission, et les événements (apparition d'un nœud, détection d'un nouveau voisin, etc.). La mise à jour doit permettre à une unité mobile de pouvoir localiser, dans la plupart des cas, une autre unité du réseau.
La mise à jour de la table de routage peut se faire de deux façons :
• Une mise à jour complète.
• Une mise à jour incrémentale.
Dans la mise à jour complète, la station transmet la totalité de la table de routage aux voisins, ce qui nécessite l'envoi de plusieurs paquets de données. En revanche, dans une mise à jour incrémentale, seules les entrées qui ont subit un changement par rapport à la dernière mise à jour sont envoyées, ce qui réduit le nombre de paquets transmis. La façon de faire la mise à jour des tables de routage est liée à la stabilité du réseau. Dans le cas où le réseau serait relativement stable, la mise à jour incrémentale est utilisée pour réduire le trafic de la communication. Dans le cas opposé, le nombre de paquets incrémentaux envoyés augmente, ce qui fait que la mise à jour complète est fréquente.
Un paquet de mise à jour contient :
1 - Le nouveau numéro de séquence incrémenté, du nœud émetteur. Et pour chaque nouvelle route :
2 - L'adresse de la destination.
3 - Le nombre de nœuds (ou de sauts) séparant le nœud de la destination.
4 - Le numéro de séquence (des données reçues de la destination) tel qu'il a été estampillé par la destination.
Les données de routage reçues par une unité mobile, sont comparées avec les données déjà disponibles. La route étiquetée par la plus grande valeur du numéro de séquence (i.e. la route la plus récente), est la route utilisée. Si deux routes ont le même numéro de séquence, alors la route qui possède la meilleure métrique est celle qui sera utilisée. La métrique utilisée dans le calcul des plus courts chemins est, tout simplement, le nombre de nœuds existant dans le chemin. Les valeurs des métriques des routes, choisies après réception des données de routage, sont incrémentées.
Les modifications faites sur les données de routage locales, sont immédiatement diffusées à l'ensemble courant des voisins. Les routes reçues par une diffusion seront aussi envoyées quand le récepteur procédera à l'envoi de ses paquets de routage. Le récepteur doit incrémenter les métriques des routes reçues avant l'envoi, car le récepteur représente un nœud en plus, qui participe dans l'acheminement des messages vers la destination.
Un lien rompu est matérialisé par une valeur infinie de sa métrique, i.e. une valeur plus grande que la valeur maximale permise par la métrique. Le DSDV élimine les deux problèmes de boucle de routage "routing loop", et celui de "counting to infinity". Cependant, dans ce protocole, une unité mobile doit attendre jusqu'à ce qu'elle reçoive la prochaine mise à jour initiée par la destination, afin de mettre à jour l'entrée associée à cette destination dans la table de distance. Ce qui fait que le DSDV est lent.
On trouve ce même problème dans l'algorithme DUAL, utilisé dans des protocoles Internet tel que EIGRP, ainsi que dans d’autres algorithmes similaires basés sur la synchronisation explicite. En outre, le DSDV utilise une mise à jour périodique et basée sur les événements, ce qui cause un contrôle excessif dans la communication.
4.1.3 Le protocole de routage WRP

Le protocole de routage sans fil WRP (Wireless Routing Protocol) est basé sur l'utilisation de la classe des algorithmes de recherche de chemins PFA (Path-Finding Algorithm). Beaucoup d'algorithmes PFA existent dans la littérature : ils utilisent des données concernant la longueur et le nœud prédécesseur du chemin le plus court correspondant à chaque destination, ceci afin d'éviter le problème de "counting to infinity" du DBF. Le problème des PFAs est la présence des boucles de routage temporaires dans le chemin spécifié par le prédécesseur, avant qu'ils convergent.
Afin de résoudre ce problème, le WRP utilise un algorithme de recherche de chemins qui réduit les situations des boucles temporaires et qui limite les mises à jour lors des changements significatifs des entrées de la table de routage. Dans ce protocole, chaque nœud maintient : une table de distance, une table de routage, une table de coûts des liens et une liste de retransmission de messages MRL (Message Retransmission List). La table de distance d'un nœud i est une matrice qui contient pour chaque destination j et pour chaque voisin k de i, la distance Dijk et le
prédécesseur Pijk de k. La table de routage d'un nœud i est représentée par un vecteur dont chaque entrée est associée à une destination j connue.
Chaque entrée spécifie :
1 - L'identificateur (ou l'adresse) de la destination.
2 - La distance vers la destination Dij.
3 - Le nœud prédécesseur Pij, correspondant au plus court chemin choisi, pour atteindre la destination j.
4 - Le successeur sij, qui correspond au plus court chemin choisi pour atteindre j.
5 - Une marque ou étiquette (tag ij), utilisée dans la mise à jour de la table de routage. Elle spécifie si l'entrée correspond à un chemin simple (tag ij = correct ), une boucle (tag ij = error), ou à une destination qui n'a pas été marquée (tag ij = null ).
La table des coûts des liens d'un nœud i, contient les coûts l ik pour chaque voisin k, et le nombre de durées périodiques de mise à jour (les timeouts ou les délais de garde) depuis que le nœud i avait reçut un message de type "error-free" provenant du nœud k. Le coût d'un lien défaillant est considéré comme étant infini.
La liste de retransmission de messages permet à un nœud donné, de connaître l'ensemble des voisins qui n'ont pas acquitté son message de mise à jour, et de retransmettre ce message à cet ensemble de voisins. Un nœud envoi un message de mise à jour, s'il détecte un changement d'état d'un lien voisin, ou après la réception des données de mise à jour d'un autre voisin. Les nœuds présents dans la liste de réponse du message de mise à jour doivent acquitté la réception du message. S'il n'y a pas de changement dans la table de routage, par rapport à la dernière mise à jour, le nœud doit envoyer un message "Hello" pour assurer la connexion. Lors de la réception du message de mise à jour, le nœud modifie sa distance et cherche les meilleurs chemins en se basant sur les informations reçues. La liste MRL, doit être mise à jour après chaque réception d'un acquittement "ACK".
Le WRP est caractérisé par sa vérification de la consistance des voisins, à chaque fois où un changement d'un lien voisin est détecté. La manière avec laquelle le WRP applique la vérification de la consistance aide à éliminer les situations des boucles de routage et à minimiser le temps de convergence du protocole.
Par exemple, considérons un réseau formé de quatre unités représentées par les nœuds : I, J, B, K. Les coûts des liens sont indiqués dans la figure 3.1. Les nœuds source et destination sont respectivement i, j. Les flèches indiquent le sens de transfert des messages de mise à jour, et les étiquettes, sous forme de couples, donnent la distance et le prédécesseur de la destination j. Chaque message de mise à jour est acquitté par un message ACK, qui n'est pas représenté dans la figure, envoyé par le nœud voisin.



Figure 3.1 : Un exemple d'exécution du protocole WRP.

Quand le lien (j, k) devient défaillant, les nœuds j et k envoient des messages de mise à jour à leurs voisins, comme c'est représenté dans la figure 3.1(b). Dans cet exemple le nœud k doit envoyer la distance vers j, ayant la valeur "infinie" car le nœud k fait partie de leurs chemins de routage vers la destination j. Le nœud b traite le message de k et sélectionne le lien (b, j) pour la destination j. Quand le nœud i reçoit le message de k, il met à jour sa table de distance et examine les chemins possibles vers la destination j à travers les autres nœuds voisins et, par la suite met à jour les entrées des tables de distance et de routage, selon les résultats obtenus. Comme le montre la figure précédente, le nœud i sélectionne le lien (i, j) pour la destination j. Le nœud i ignore tous les messages de mise à jour qui n'ont pas d'effet sur le chemin de routage de i vers j. Par exemple, le message de k qui comporte la distance 11 pour la destination j est ignoré.
4.1.4 Le protocole de routage GSR

Le protocole appelé "Routage à Etat Global" ou GSR (Global State Routing), est similaire au protocole DSDV décrit précédemment. Ce protocole utilise les idées du routage basé sur l'état des liens (LS), et les améliore en évitant le mécanisme inefficace de l'inondation des messages de routage. Le GSR utilise une vue globale de la topologie du réseau, comme c'est le cas dans les protocoles LS.
Le protocole utilise aussi une méthode appelée méthode de dissémination, utilisée dans le DBF, qui a l'avantage de l'absence d'inondation. Dans ce protocole, chaque nœud i maintient une liste de voisins Ai, une table de topologie TTi, une table des nœuds suivants NEXTi (Next Hop), et une table de distance Di. La table de la topologie TTi contient, pour chaque destination, l'information de l'état de lien telle qu'elle a été envoyée par la destination et une estampille de l'information. Pour chaque nœud de destination j, la table NEXTi contient le nœud vers lequel les paquets destinés à j seront envoyés. La table de distance contient la plus courte distance pour chaque nœud destination.
Comme les protocoles LS, les messages de routage sont générés suivant les changements d'états des liens. Lors de la réception d'un message de routage, le nœud met à jour sa table de topologie et cela dans le cas où le numéro de séquence du message reçu serait supérieur à la valeur du numéro de séquence sauvegardée dans la table (exactement comme le fait le protocole DSDV). Par la suite, le nœud reconstruit sa table de routage et diffuse les mise à jour à ses voisins. Le calcul des chemins, peut se faire avec n'importe quel algorithme de recherche des plus courts chemins. Par exemple, l'algorithme du GSR utilise l'algorithme de Dijkstra modifié de telle façon qu'il puisse construire la table des nœuds suivants (NEXT) et la table de distance (D) en parallèle avec la construction de l'arbre des plus courts chemins.
La différence clé entre le GSR et le LS traditionnel est la façon dont les informations de routage circulent sur le réseau. Dans le LS, si on détecte des changements de la topologie, les paquets d'états de liens sont générés et diffusés par inondation dans tout le réseau. Par contre, le GSR maintient la table la plus récente d'état des liens reçus à travers les voisins, et l'échange uniquement avec ses voisins locaux, d'une façon périodique. En outre, le GSR assure plus de précision concernant les données de routage qui s'échangent dans le réseau.
4.1.5 Le protocole de routage FSR

Le protocole "Routage à Etat de l'œil du Poisson" FSR, (Fisheye State Routing) peut être vu comme une amélioration du protocole GSR précédent. Le nombre élevé des messages de mise à jour échangés implique une grande consommation de la bande passante, ce qui a un effet négatif dans les réseaux ad hoc caractérisés par une bande passante limitée. Le protocole FSR est basé sur l'utilisation de la technique "œil de poisson" (fisheye), proposée par Kleinrock et Stevens, qui l'ont utilisé dans le but de réduire le volume d'information nécessaire pour représenter les données graphiques.
L'œil d'un poisson capture avec précision les points proches du point focal. La précision diminue quand la distance, séparant le point vu et le point focal augmente. Dans le contexte du routage, l'approche du "fisheye" matérialise, pour un nœud, le maintien des données concernant la précision de la distance et la qualité du chemin d'un voisin direct, avec une diminution progressive du détail et de précision quand la distance augmente.
Le protocole FSR est similaire au protocole LS dans sa sauvegarde de la topologie au niveau de chaque nœud. La différence principale réside dans la manière dont les informations de routage circulent. Dans le FSR, la diffusion par inondation de messages n'existe pas : l'échange se fait uniquement avec les voisins directs. Les données de mise à jour échangées périodiquement dans le FSR ressemblent au vecteur échangé dans le protocole DSDV, où les distances sont modifiées suivant l'estampille du temps ou le numéro de séquence associé au nœud qui a été l'origine de la mise à jour.
Dans le FSR les états de liens sont échangés, l'image complète de la topologie du réseau est gardée au niveau de chaque nœud, et les meilleurs chemins sont échangés en utilisant cette image. Comme nous l’avons déjà dit, l'état des liens change fréquemment dans les réseaux ad hoc. Le FSR effectue la mise à jour de ces changements de la même manière que le protocole GSR, ce qui résout les problèmes du protocole LS concernant le volume des données de contrôle.
Avec le GSR, quand la taille du réseau devient très grande, les messages de mise à jour peuvent consommer considérablement de bande passante. Afin de réduire le volume de messages échangés sans toucher à la consistance et la précision des données de routage, le FSR utilise la technique "œil de poisson".
La figure 3.2 illustre cette technique. Dans cette figure, on définit la portée, ou le champ de vision, de l'œil de poisson pour le nœud du centre, d'identificateur 5. La portée est définie en termes de nœuds qui peuvent être atteints en passant par un certain nombre de sauts. Le nœud du centre (le nœud 11), maintient les données les plus précises des nœuds appartenant au cercle, et cette précision diminue progressivement pour les cercles moins proches du centre.



Figure 3.2 : La technique "œil de poisson"

La réduction de volume des données de mise à jour, est obtenue en utilisant des périodes d'échanges différentes pour les différentes entrées de la table. Les entrées qui correspondent aux nœuds les plus proches sont envoyées aux voisins avec une fréquence élevée (donc avec une période d'échange relativement petite). Par exemple, les entres en gras (figure 3.3) des tables de routage sont échangées fréquemment. Le reste des entrées, est échangé avec une fréquence moins élevée. De cette maniée, un grand nombre de données de routage est évité, ce qui réduit le volume des messages qui circule sur le réseau.



Figure 3.3 : L'échange de messages avec la technique "œil de poisson"

Le protocole FSR peut être utilisé dans les réseaux ad hoc dont le nombre d'unités mobiles est grand : le protocole utilise un volume raisonnable de messages de contrôle. En outre, il évite le travail énorme de recherche de chemins effectué dans les protocoles réactifs (comme nous allons voir plus loin), ce qui accélère la transmission.
4.1.6 Le protocole de routage HSR

Les notions de partitionnement et de groupes sont très répandues dans les réseaux mobiles ad hoc. La formation de groupes peut considérablement améliorer les performances des réseaux. Par exemple, les interférences des signaux peuvent être réduites en utilisant différents codes étendus à l'aide des groupes. Le partitionnement, quant à lui, peut être exploité dans les réseaux de grande taille afin de réaliser un routage hiérarchique, ce qui réduit le contrôle des données de routage. Le problème principal du routage hiérarchique dans les réseaux sans fil est la mobilité et la gestion de la localisation.
Dans le but de résoudre ce problème, le protocole "Routage à Etat Hiérarchique" ou HSR (Hierarchical State Routing) a été proposé. Il combine les notions de groupes dynamiques et de niveaux hiérarchiques avec une gestion efficace de localisation. Dans le HSR, l'image de la topologie du réseau est sauvegardée sous forme hiérarchique. Le réseau est partitionné en un ensemble de groupes, dont l'union donne le réseau entier. Dans un groupe, un nœud doit être élu pour représenter le reste des membres. Les représentants des groupes dans un niveau l, deviennent des membres dans le niveau l + 1. Ces nouveaux membres, s'organisent en un ensemble de groupes de la même manière du niveau bas, et ainsi de suite pour le reste des niveaux.
Plusieurs algorithmes de partitionnement peuvent être utilisés dans la création dynamique des groupes et l'élection des représentants de groupes. Le but principal du partitionnement du HSR est l'utilisation efficace des médiums de communication et la réduction du contrôle de routage effectué par la couche réseau (i.e. la sauvegarde des tables de routage, le traitement et la transmission des données).
La figure 3.4 illustre l'application de ce mécanisme de partitionnement dans un réseau de 13 unités mobiles. Le réseau est décomposé en 4 groupes, qui sont : G0-1, G0-2, G0-3, et G0-4. Ces groupes forment le niveau le plus bas de la hiérarchie (niveau 0). A partir de ce niveau, les niveaux qui suivent (niveaux 1 et 2), sont formés. Cela est fait en prenant l'ensemble des représentants de groupes et le décomposer en groupes de la même manière que précédemment.



Figure 3.4 : Le partitionnement du réseau en groupes.

Dans la décomposition en groupe, on peut avoir 3 types de nœuds :
un nœud représentant du groupe, appelé aussi tête de groupe (par exemple les nœuds 1, 2, et 3 de la figure 3.4)
un nœud de liaison, qui relie deux groupes (exemple, les nœuds 7 et 9)
un nœud interne qui n'a aucun rôle spécial (exemple, les nœuds 4, 11 et 12).
Le nœud représentant d'un groupe donné peut être vu comme un coordinateur de transmission de données. Les identificateurs (IDs) des nœuds représentés dans la figure 3.3 (niveau 0) sont des adresses physiques : ils sont uniques pour chaque nœud. Une des méthodes qui peut être appliquée afin d'associer des adresses hiérarchiques, ou HIDs (Hierarchical IDs) aux différents nœuds est de prendre les numéros des groupes dans le chemin reliant la racine et le nœud en question.
Un nœud de liaison peut être atteint, à partir de la racine, en suivant plusieurs chemins. Par conséquent, ce genre de nœud peut avoir plus d'une adresse hiérarchique.
Cela ne pose aucun problème, car le nœud peut être atteint à travers de ces adresses, et ces dernières sont associées à un nœud unique. On peut toujours trouver une manière d'associer une seule adresse à ce genre de nœuds, par exemple en prenant la plus petite valeur des numéros de groupes dans les quels appartient le nœud.
Exemple : est une adresse du nœud de liaison d'ID 9.
Dans la figure 3.4, le nœud 3 est membre du groupe hiérarchique le plus élevé
L'avantage de l'adressage hiérarchique est le fait que chaque nœud puisse dynamiquement et localement mettre à jour son HID lors de la réception des données de mise à jour du routage provenant des nœuds de niveau supérieurs. L'adresse hiérarchique suffit pour délivrer les paquets de données à une destination, indépendamment de la localisation de la source, et cela en utilisant la table HSR.
Prenons comme exemple le nœud 6 (figure 3.4) comme source, et le nœud 13 comme destination. Les adresses de ces nœuds sont respectivement : HID(6) = et HID(13) = . Pour acheminer une information du nœud 6 vers le nœud 13, le nœud 6 envoie l'information au nœud supérieur, qui le suit hiérarchiquement, i.e. le nœud d'ID 1. Le nœud 1 délivre l'information au nœud 3 qui suit le nœud destination dans l'ordre hiérarchique. Un "lien virtuel" existe entre les nœuds 1 et 3, matérialisé par le chemin (1,7,2,9,3). Par conséquent, l'information suivra ce chemin pour atteindre la destination. Dans la dernière étape, le nœud 3 délivre l'information au nœud 13 en suivant le chemin hiérarchique qui le relie à la destination (dans notre cas, ce chemin se réduit en un seul saut).
En plus de la décomposition (ou du partitionnement) en groupes basé sur les relations géographiques entre les différents nœuds, le protocole HSR utilise aussi un partitionnement logique. Ce partitionnement est basé sur des relations logiques qui peuvent exister entre les nœuds du réseau (comme par exemple l'appartenance à une même société). La partitionnement logique joue un rôle clé dans la gestion de la localisation. En plus des adresses physiques, une adresse logique de la forme , est associée à chaque nœud. Les adresses ont un format similaire au format IP : elles peuvent être vues comme des adresses IP privées dans le réseau mobile.
Chaque subnet correspond à un groupe particulier d'utilisateurs qui possède un serveur de gestion de localisation dit LMS (Location Management Server). Différents ensembles de mobiles peuvent être définis indépendamment dans chaque subnet. Quand la couche de transport délivre au réseau un paquet contenant l'adresse IP privée, le réseau doit trouver, à partir de l'adresse IP, l'adresse hiérarchique basée sur les adresses physiques.
Notons que le groupe à qui correspond l'adresse IP privée est un ensemble de groupes du partitionnement physique. Chaque réseau virtuel a au moins un agent principal (qui est aussi un membre du réseau) dans le but de gérer les différents membres. Tous les agents principaux annoncent leurs HIDs au niveau hiérarchique supérieur, mais les HIDs peuvent aussi être envoyés aux niveaux les plus bas hiérarchiquement.
Chaque membre d'un subnetwork logique, connaît le HID de son agent principal (en utilisant la table de routage), il peut donc enregistrer son adresse hiérarchique. L'enregistrement est à la fois périodique et événementiel. L'agent principal utilise la technique du timeout afin d'éliminer les adresses non renouvelées. Le trafic du contrôle induit par les opérations d'enregistrement d'adresses est réduit, car dans la plupart des applications, les membres d'un même subnet se déplacent en groupe, ce qui implique qu'ils appartiendront à des partitions voisines.
Quand un nœud source veut envoyer des données à un autre nœud dont l'adresse IP est connue; il extrait d'abord le champ subnet de l'adresse, et en utilisant sa liste (ou celle du niveau hiérarchique supérieur) il obtient l'adresse hiérarchique de l'agent principal du nœud destination (rappelons que tous les agents principaux, annoncent leurs HIDs au niveau hiérarchique supérieur). Le nœud source envoie alors, les données à l'agent principal en utilisant l'adresse hiérarchique obtenue. Lors de la réception, l'agent principal trouve l'adresse de la destination enregistrée et cela à partir de l'ID de l'hôte extrait de l'adresse IP. Par la suite, l'agent délivre les données vers les nœuds destination. Une fois les deux nœuds, la source et la destination, connaissent leurs adresses hiérarchiques, les messages peuvent être délivrés directement sans l'intervention des agents principaux.
4.1.7 Le protocole de routage ZHLS

Le protocole "Routage à Etat de Liens Hiérarchique basé sur les Zones", appelé ZHLS (Zone-Based Hierarchical Link State Routing), est basé sur la décomposition du réseau en un ensemble de zones. Dans ce protocole, les membres d'une zone n'élisent pas de représentants, contrairement à ce qui se fait dans les autres protocoles hiérarchiques. Avec cette décomposition, on a deux niveaux de topologies : le niveau nœud, et le niveau zone. La topologie basée sur le premier niveau donne la façon selon laquelle les nœuds d'une zone donnée sont connectés physiquement.
Un lien virtuel peut exister entre deux zones s'il existe au moins un nœud de la première zone qui soit physiquement connecté à un nœud de l'autre zone (figure 3.5). La topologie basée sur le niveau zone donne le schéma de la connexion des différentes zones.



Figure 3.5 : La décomposition du réseau en zones

Dans ce protocole, les paquets qui contiennent les états des liens ou les LSPs (Link State Packet) peuvent être divisées en deux classes : les LSPs orientés nœuds, et les LSPs orienté zones. Pour un nœud donné, un paquet LSP orienté nœud contient l'information d'un nœud voisin, tandis qu'un paquet LSP orienté zone contient l'information de la zone. De cette façon, chaque nœud du réseau possède une connaissance complète concernant les nœuds de sa propre zone, et seulement une connaissance partielle du reste des nœuds.
Cette connaissance partielle est matérialisée par l'état de la connexion des différentes zones du réseau. Par conséquent, l'acheminement des données se fait de deux façons : le routage inter zone, et le routage intra zone.
Pour une destination donnée, les données sont envoyées entres les zones en utilisant les identificateurs des zones, jusqu'à ce que les données atteignent la zone finale de la destination. Par la suite, les paquets de données circulent à l'intérieur de la zone finale, en utilisant l'identificateur du nœud destination. L'adresse est suffisante pour atteindre n'importe quelle destination même si le réseau change de topologie.
4.1.8 Le protocole de routage CGSR

Le protocole appelé CGST (Clusterhead Gateway Switch Routing) utilise principalement l'algorithme de routage DSDV : l'ensemble des unités mobiles du réseau est décomposé en groupes, et chaque groupe élit un représentant. Les nœuds appartenant à la portée de communication d'un représentant de groupe appartiennent au groupe représenté par ce dernier.
Un nœud de liaison est un nœud qui appartient à la portée de communication de plus d'un représentant de groupe. Cette manière d'organisation peut cependant fortement dégrader les performances des réseaux ad hoc à cause des changements fréquents de leur topologie. Pour s'adapter à ces changements, le CGSR utilise un algorithme appelé LGC (Least Cluster Change).
Dans cet algorithme, un changement de représentants de groupes arrive dans le cas où il y a fusion de deux groupes, ou dans le cas où un nœud sortirait complètement de la portée de tous les représentants du réseau.
Dans le protocole CGSR, le routage des informations se fait de la manière suivante : le nœud source transmet ses paquets de données à son représentant de groupe. Celui-ci envoie les paquets au nœud de liaison qui relie ce représentant avec le représentant suivant dans le chemin qui existe vers la destination. Le processus se répète jusqu'à ce qu'on atteigne le représentant du groupe auquel appartient le destinataire, et celui-ci lui transmet alors les paquets reçus.
La figure suivante donne le chemin de routage des paquets de données du nœud source 9 au nœud destination 18.


Figure 3.6 : Un exemple d'acheminement d'information dans le CGSR.

Chaque nœud maintient une table de membres de groupes qui associe à chaque nœud l'identificateur d'un représentant de groupe. Chaque nœud diffuse cette table d'une façon périodique et met à jour sa propre table (après la réception des données de mise à jour provenant d'un autre nœud), en utilisant l'algorithme DSDV. En outre, chaque nœud maintient une table de routage qui détermine le nœud suivant correspondant au groupe destination.
Lors de la réception d'un paquet, le nœud intermédiaire trouve le représentant de groupe (h par exemple) le plus proche dans le chemin envisagé vers la destination, et cela en utilisant sa table de membres de groupes et sa table de routage. Par la suite le nœud consulte sa table de routage pour trouver le nœud suivant afin d'atteindre le représentant h. Les paquets seront alors transmis au nœud trouvé.
Cette manière de router est un procédé déterministe et efficace pour l'acheminement des informations, cependant le chemin choisi peut ne pas être optimal. C'est le cas de l'exemple précédent, si on suppose que tous les coûts des liens sont égaux (unitaires par exemple), le chemin (9,2,10,3,12,4,15,5,18) entre la source 9 et la destination 18 ne représente pas le meilleur chemin qui existe. En effet le chemin (9,2,10,3,12,4,15,18) est meilleur.
Cela est dû au fait que tous les nœuds appliquent la même stratégie : le nœud d'identificateur 15 trouve, en utilisant sa table de routage, que le nœud suivant le nœud 18 est le nœud 18 lui-même. Le nœud 15 consulte sa table de membres de groupes pour connaître le représentant du groupe associé au nœud 18, le nœud trouvé est alors celui de l'ID 5 ce qui fait que les paquets passent par le nœud 5 et ne passent pas directement vers la destination.

4.1.9 Le protocole de routage DREAM

Le protocole appelé "Algorithme d'Effet de Routage basé sur la Distance pour la Mobilité" ou DREAM (Distance Routing Effect Algorithm for Mobility) est un protocole pro-actif basé sur les informations de localisation des unités mobiles.
Il diffuse les données destinées à une certaine destination en effectuant une inondation partielle. Chaque nœud du réseau mobile ad hoc envoie alors périodiquement des messages de contrôle afin d'informer tous les autres nœuds de sa localisation. La distance influe dans cet échange, du fait que les messages de contrôle sont envoyés fréquemment aux nœuds les plus proches ( cela nous rappelle la technique FSR). En plus de cela, le protocole s'adapte à la mobilité du réseau par le contrôle de mise à jour de fréquence qui se base sur les vitesses des mouvements.
Lors de l'envoi des données, si la source possède des informations récentes sur la localisation du nœud destination, elle choisit un ensemble de nœuds voisins qui sont localisés dans la direction source/destination. Si un tel ensemble n'existe pas, les données sont inondées dans le réseau entier. Dans le cas où de tels nœuds existeraient, une liste qui contient leurs identificateurs est insérée à la tête du paquet de données avant la transmission, et seuls les nœuds qui sont spécifiés dans la liste de tête traitent le paquet. Lors de la réception du paquet, le nœud de transit détermine sa propre liste de nœuds proches, et envoie le paquet avec la nouvelle liste de tête. Si aucun voisin n'est localisé dans la direction de la destination, le paquet reçu est ignoré.

Quand le nœud destination reçoit les données, il envoie des acquittements à la source d'une manière similaire. Cependant, dans le cas de réception par inondation, les acquittements ne sont pas envoyés. Dans le cas où la source envoie les données en spécifiant les nœuds suivants (en se basant sur les localisations), un timer associé à la réception des acquittements est activé. Si aucun acquittement n'est reçu avant l'expiration du timeout, les données seront retransmises en utilisant une diffusion ordinaire.


4.2 Les protocoles de routage réactifs (à la demande)
4.2.1 Présentation

Comme nous avons vu dans la section précédente, les protocoles de routage pro-actifs essaient de maintenir les meilleurs chemins existants vers toutes les destinations possibles (qui peuvent représenter l'ensemble de tous les nœuds du réseau) au niveau de chaque nœud du réseau. Les routes sont sauvegardées mêmes si elles ne sont pas utilisées. La sauvegarde permanente des chemins de routage est assurée par un échange continue des messages de mise à jour des chemins, ce qui induit un contrôle excessif surtout dans le cas des réseaux de grande taille.
Les protocoles de routage réactifs (aussi appelés protocoles de routage à la demande) sont les protocoles les plus récents proposés dans le but d'assurer le service du routage dans les réseaux sans fil. La majorité des solutions proposées pour résoudre le problème de routage dans les réseaux ad hoc, et qui sont évaluées actuellement par le groupe de travail MANET (Mobile Ad Hoc Networking Working Groupe) de l'IETF (Internet Engineering Task Force), appartiennent à cette classe de protocoles de routage.
Les protocoles de routage appartenant à cette catégorie créent et maintiennent les routes selon les besoins. Lorsque le réseau a besoin d'une route, une procédure de découverte globale de routes est lancée, et cela dans le but d'obtenir une information spécifique, inconnue au préalable. Plusieurs approches peuvent être appliquées dans la découverte des routes.
La majorité des algorithmes utilisés sont basé sur le mécanisme d'apprentissage en arrière (backward learning). Le nœud source qui est à la recherche d'un chemin vers la destination diffuse par inondation une requête dans le réseau. Lors de la réception de la requête, les nœuds intermédiaires essaient de faire apprendre le chemin au nœud source et de sauvegarder la route dans la table envoyée. Une fois la destination atteinte, elle peut envoyer une réponse en utilisant le chemin tracé par la requête, un chemin full duplex est alors établi entre le nœud source et le nœud destination.
Le travail peut être réduit, dans le cas où un nœud de transit posséderait déjà un chemin vers la destination. Une fois le chemin calculé, il doit être sauvegardé et mis à jour au niveau de la source. Une autre technique pour tracer les chemins demandés est la technique appelé "routage source".
Le routage à la demande induit une lenteur à cause de la recherche des chemins, ce qui peut dégrader les performances des applications interactives (exemple les applications des bases de données distribuées). En outre, il est impossible de connaître au préalable la qualité du chemin (en termes de bande passante, de délais, etc.).

4.2.2 Le protocole de routage CBRP

Dans le "Protocole de Routage Basé sur les Groupes" appelé CBRP ( Cluster Based Routing Protocol ), l'ensemble des nœuds du réseau est décomposé en groupes. Le principe de formation des groupes est le suivant : Un nœud p qui n'a pas de statut ( i.e. qui n'est ni membre ni représentant de groupe), active un timer et diffuse un message "Hello". Lorsqu'un représentant de groupe reçoit ce message, il envoie immédiatement une réponse à l'émetteur. Lors de la réception de réponse, le nœud p change son état "indécidé" à l'état "membre". Si p dépasse un certain timeout en attendant la réponse et dans le cas où il possède un lien bidirectionnel vers au moins un nœud voisin, il se considère lui-même comme un représentant de groupe. Dans le cas contraire, p reste dans l'état indécidé et il répète la même procédure. A cause des changements rapides de la topologie des réseaux ad hoc, l'attente des nœuds indécidés est très courte.

Afin de sauvegarder la répartition des nœuds dans les groupes, chaque nœud maintient une table des voisins. Chaque entrée de cette table est associée à un voisin, elle indique l'état du lien (uni ou bidirectionnel) et le statut du voisin (membre ou représentant de groupe). Un représentant de groupe maintient les informations des membres qui appartiennent à son groupe.
Il possède aussi une table des groupes adjacents. Une entrée dans cette table est associée à un groupe voisin : elle contient l'identificateur du groupe et l'identificateur du nœud de liaison à travers lequel le groupe peut être atteint ( voir la figure suivante ).



Figure 3.7 : L'organisation du réseau dans le CBRP.

Le routage dans le protocole CBRP se fait de la manière suivante : quand un nœud source veut envoyer des données à un nœud destination, il diffuse par inondation une requête de demande de chemin, et cela uniquement aux représentants des groupes voisins. Un représentant de groupe qui reçoit la requête de demande vérifie, en utilisant sa table de membres de groupes, l'existence du nœud destination dans son groupe. Si la destination existe, le représentant y envoie directement la requête, sinon la requête est diffusée aux représentants des groupes voisins.
L'adresse des représentants des groupes est incluse dans la requête de demande de chemin, un représentant de groupe ignore toute requête déjà traitée. Quand la destination reçoit le paquet contenant la requête, elle répond par l'envoi du chemin qui a été sauvegardé dans le paquet de la requête. Dans le cas où le nœud source ne reçoit pas de réponse après une certaine période, il envoie de nouveau une requête de demande de chemin.
Lors de l'acheminement des données, si un nœud détecte qu'un lien est défaillant, il retourne un message d'erreur à la source et il applique un mécanisme de réparation locale. Dans ce mécanisme, si un nœud p trouve qu'un nœud suivant n ne peut pas être atteint, il essaie de vérifier si le nœud n ou le nœud qui vient après n peut être atteint à travers un autre nœud voisin. Si l'un des deux cas est vérifié, les données sont envoyées en utilisant le chemin réparé.


4.2.3 Le protocole de routage DSR

Le protocole "Routage à Source Dynamique" (DSR : Dynamic Source Routing) est basé sur l'utilisation de la technique "routage source". Dans cette technique, la source des données détermine la séquence complète des nœuds à travers lesquels les paquets de données seront envoyés.
Pour envoyer un paquet de donnée à un autre nœud, l'émetteur construit une route source et l'inclut en tête du paquet. La construction se fait en spécifiant l'adresse de chaque nœud à travers lequel le paquet va passer pour atteindre la destination. Par la suite, l'émetteur transmet le paquet, à l'aide de son interface, au premier nœud spécifié dans la route source. Un nœud qui reçoit le paquet et qui est différent de la destination supprime son adresse de l'entête du paquet reçu le transmet au nœud suivant identifié dans la route source. Ce processus se répète jusqu'à ce que le paquet atteigne sa destination finale. Enfin, le paquet est délivré à la couche réseau du dernier hôte.
Les deux opérations de base du protocole DSR sont : la découverte de routes et la maintenance de routes. L'opération de découverte de routes permet à n'importe quel nœud du réseau ad hoc de découvrir dynamiquement un chemin vers un nœud quelconque du réseau. Un hôte initiateur de l'opération de découverte diffuse un paquet requête de route qui identifie l'hôte cible. Si l'opération de découverte est réussie, l'hôte initiateur reçoit un paquet réponse de route qui liste la séquence de nœuds à partir desquels la destination peut être atteinte. En plus de l'adresse de l'initiateur, le paquet requête de route contient un champ enregistrement de route, dans lequel est stockée la séquence des nœuds visités durant la propagation de la requête de route dans le réseau (voir la figure 3.8(a)).
Le paquet requête de route contient aussi un identificateur unique de la requête. Dans le but de détecter les duplications de réceptions de la requête de route, chaque nœud du réseau ad hoc maintient une liste de couples