• Aucun résultat trouvé

Les réseaux mobiles Ad hoc

2.2 Caractéristiques des réseaux mobiles Ad hoc

4.1.1 Le protocole DSDV

Chapitre 2 Les réseaux mobiles Ad hoc

4.1 Protocoles de routage Ad hoc proactifs

Les protocoles de routage proactifs se basent sur l’établissement de routes à l’avance. Les nœuds mettent à jour périodiquement les données de routage de façon à obtenir en permanence le plus court chemin (calculé en termes du nombre de nœuds intermédiaires, aussi appelé nombre de sauts) vers tous les nœuds du réseau. Ainsi, si un nœud désire transmettre un paquet vers une destination, il consulte sa table de routage qui lui indique immédiatement le chemin à suivre. Il existe deux approches pour ce type de protocoles :

 L’approche vecteur de distance où chaque nœud diffuse les distances qui le séparent de tous les autres nœuds du réseau.

 L’approche à état des liens où il s’agit de diffuser des descriptions des liens avec les nœuds voisins.

Dans ce qui suit, nous détaillons ces approches par l’intermédiaire de trois exemples de protocoles proactifs de routage Ad hoc : DSDV [31], OLSR [32] et TBRPF [33].

4.1.1 Le protocole DSDV

DSDV (Destination-Sequenced Distance Vector) [31], est l’un des premiers protocoles de routage Ad hoc proactifs à vecteur de distance. Il se base sur l’algorithme distribué Bellman-Ford ou DBF14 [34] qui a été modifié pour s’adapter aux réseaux Ad hoc.

Comme il s’agit d’un protocole proactif, chaque nœud a une vision complète du réseau, à chaque instant. Pour ce faire, chaque nœud récupère les distances le séparant de chaque autre nœud du réseau et ne garde que le plus court chemin. Ceci est fait grâce à des échanges périodiques d’informations sur leurs tables de routage respectives. Ces échanges sont classés en deux types :

 Les mises à jour incrémentales (incremental updates) pour lesquelles seules les données qui ont subi des modifications depuis la dernière mise à jour sont envoyées. Un exemple est présenté dans la figure 2.5{a} [35].

Suite au déplacement du nœud 3 qui n’est plus à portée radio, le nœud 4 initie une procédure de mise à jour (update) qui ne concerne que l’entrée correspondant au nœud 3 dans sa table de routage (Figure 2.5{b}) [35]. Chaque nœud recevant ce message et le transfère en incluant les entrées qui viennent d’être modifiées. C’est le cas du nœud 1 qui initialise une mise à jour suite à la réception de celle du nœud 4.

Chapitre 2 Les réseaux mobiles Ad hoc

Un modèle de confiance pour la sécurité des communications dans les réseaux mobiles Ad hoc. 43

Figure 2.5 : Mise à jour incrémentale.

 Les mises à jour complètes (full dump) pour lesquelles la totalité de la table de routage est envoyée. La figure 2.6 [35] montre un exemple de cette procédure où le nœud 4 envoie la totalité de sa table de routage à tous les nœuds du réseau ce qui induit des changements au niveau de leurs tables de routage.

Outre son adresse et son propre numéro de séquence, chaque paquet de mise à jour doit contenir une liste des routes ajoutées/modifiées pour laquelle chaque entrée est un triplet formé par : l’adresse de la destination "𝐷𝑒𝑠𝑡", le nombre de sauts "𝐻𝑜𝑝 −𝐶𝑜𝑢𝑛𝑡" pour l’atteindre et le dernier numéro de séquence connu associé à cette destination "𝑆𝑒𝑞𝑢𝑒𝑛𝑐𝑒 𝑁𝑢𝑚𝑏𝑒𝑟" qui permet notamment de distinguer les nouvelles routes des anciennes et évite ainsi la formation de boucles de routage. La figure 2.6{a} montre un exemple de ce paquet de mise à jour.

Pour gérer la mobilité des nœuds, DSDV associe à chaque nœud un minuteur (timer) qui est mis à jour à la valeur maximale à chaque fois qu'un message est reçu du voisin, c'est un indicateur de validité du lien. Ainsi, lorsque ce minuteur expire, le nœud considère que le voisin en question n'est plus à porter radio et que le lien est rompu. La détection d'un lien rompu se traduit au niveau de l'entrée correspondante dans la table de routage par l'assignement de la valeur "∞" au nombre de sauts (en pratique, il s'agit de n'importe quelle valeur supérieure au maximum autorisé) et l'incrémentation du

(b) Propagation du paquet et répercussion

sur les tables de routage.

(a) Après échanges de messages de mises à jour,

Chapitre 2 Les réseaux mobiles Ad hoc numéro de séquence au prochain numéro impair15. Toutes les routes utilisant ce nœud qui n'est plus joignable sont aussi mises à jour comme étant des routes invalides. Ces changements sont envoyés en priorité à tous les voisins en utilisant un paquet de mise à jour. Il est à noter que c'est le seul cas où un nœud autre que la destination pourra changer le numéro de séquence de la destination qui n'est plus joignable (Figure 2.6{b}, cas des nœuds 3 et 4).

Figure 2.6 : Mise à jour complète (full dump).

À la réception d'un paquet de mise à jour, les routes avec les plus grands numéros de séquences sont privilégiées pour le choix des routes, puisque cela signifie une route plus fraîche. Dans le cas de numéros de séquences égaux, le plus court chemin est retenu en se basant sur le nombre de saut.

Le nœud intermédiaire procède ensuite à la rediffusion des informations qu'il vient de modifier dans sa table de routage tout en incrémentant son numéro de séquence.

Malgré les améliorations qu'il propose par rapport à DBF en éliminant le problème des boucles de routage16 et le problème du comptage à l'infini17, grâce notamment à l'utilisation des numéros de séquence, DSDV reste long et coûteux. Il nécessite des mises à jour régulières de ses tables de routage même lorsque le réseau est inactif. À chaque mise à jour, un nouveau numéro de séquence est nécessaire ce qui augmente le temps avant que le réseau converge. Ceci rend DSDV peu adapté aux réseaux très dynamiques.

15 Ce mécanisme est utilisé par DSDV pour différencier les routes valides ayant des numéros de séquence pairs, des routes invalides ayant des numéros impairs. Par exemple, un nœud détectant qu'un lien n'est plus disponible change le numéro qui est pair dans sa table de routage vers le numéro impair qui est immédiatement au-dessus.

16 Routing loops.

17 Counting to infinity.

Chapitre 2 Les réseaux mobiles Ad hoc

Un modèle de confiance pour la sécurité des communications dans les réseaux mobiles Ad hoc. 45 4.1.2 Le protocole OLSR

OLSR [32] (Optimized Link State Routing) est un protocole proactif à état de lien (Link state), inspiré du protocole de routage filaire classique OSPF (Open Short Path First) [36].Il utilise ainsi des envois de paquets de contrôle périodiques afin d'informer chaque nœud des changements survenus dans la topologie. OLSR se distingue des protocoles à état de lien classiques en introduisant une optimisation de la stratégie de diffusion de base, effectuée par le biais de nœuds particuliers : les "relais multipoints18" (MPR). Ces MPR sont des nœuds auxquels est confiée la responsabilité exclusive d'émettre certaines informations de routage. Chaque nœud choisit son ou ses MPR parmi ses voisins symétriques à un saut, de telle manière qu'à travers son ensemble de MPR, il puisse joindre n'importe quel voisin à deux sauts. Chaque MPR lui-même maintient une liste de tous les nœuds qui l'ont choisi comme tel, ces nœuds sont appelés des sélecteurs MPR. Par la suite, le rôle des MPR est de relayer tout message en provenance de leurs sélecteurs MPR et d'ignorer les messages en provenance des autres nœuds (Figure 2.7).

La découverte de voisins et la détermination du type de lien est effectuée par l'échange de messages de type HELLO. Ces messages sont émis périodiquement (deux secondes par défaut) par chacun des nœuds à l'attention de tous leurs voisins à deux sauts. Ils contiennent pour chaque nœud, la liste de tous ses voisins connus, ainsi que le type de lien qui les relie. Celui-ci peut être asymétrique (si un échange a été effectué dans une seule direction) ou symétrique (lorsqu'un échange a été effectué dans les deux directions). Il peut être également relais multipoint lorsqu'il s'agit de spécifier à un nœud qu'il est choisi comme MPR et enfin perdu lorsqu'un lien est détecté comme rompu après un certain délai. Ainsi, sur la réception d'un message HELLO, un nœud examine la liste des adresses et les informations associées pour mettre à jour sa table de routage.

18 En anglais, Multi Point Relays "MPR".

(a) Routage par inondation (24 transmissions pour

atteindre tous les nœuds à 3 sauts). (b) Routage avec les nœuds MPR (12 transmissions pour atteindre tous les nœuds à 3 sauts).

Chapitre 2 Les réseaux mobiles Ad hoc En plus des connaissances sur le voisinage à un saut, chaque nœud maintient également des informations sur son voisinage à deux sauts. Les adresses de ces voisins sont stockées dans une liste et sont utilisées ultérieurement pour déterminer l'ensemble MPR optimal de couverture de ces nœuds.

Afin de mettre à jour leurs tables de routage, les nœuds doivent être informés régulièrement des changements de topologie qui interviennent en dehors de leur voisinage. C'est là le rôle des messages de type topologie control (TC). Ces paquets de contrôle sont émis périodiquement par chaque MPR à l'attention de tous les nœuds du réseau, afin de déclarer leurs ensembles de sélecteurs MPR. La conséquence est que chaque nœud reçoit un graphe de topologie partielle, constitué par tous les nœuds du réseau et l'ensemble des liens entre un nœud et ses éventuels sélecteurs MPR. À partir de ces informations, chaque nœud peut déterminer très rapidement les routes optimales (en termes de sauts) vers n'importe quelle destination.