• Aucun résultat trouvé

4.4 Protocole RPL

4.4.5 DODAG

Le protocole RPL sp´ecifie que plusieurs DODAG peuvent ˆetre pr´esents en mˆeme temps. Cela permet de transporter diff´erents types de trafics tels que des trafics qui minimisent la latence, assurent la fiabilit´e de l’information ou r´eduisent la consommation ´energ´etique. Cette topologie logique est un arbre couvrant o`u la racine est le nœud capteur appel´ee DODAG root. Chaque nœud choisit parmi ses voisins un ensemble de successeurs (F easible Successors dans RPL) et un parent (parent pr´ef´er´e dans RPL). L’ensemble des successeurs ´etant les voisins proposants une “bonne” m´etrique, et le parent pr´ef´er´e ´etant le voisin optimisant cette mˆeme m´etrique (voir Figure 4.5).

Figure 4.5 – DODAG compar´e `a un arbre couvrant

Construction d’un DODAG

Pour construire un DODAG, la racine envoie un message DIO contenant des informa-tions comme l’identifiant du DODAG et la m´etrique utilis´ee `a tous ses voisins. Lorsqu’un nœud re¸coit un message DIO d’une racine, il prend la d´ecision bas´ee sur certaines r`egles (politique locale) pour savoir s’il doit rejoindre le DODAG ou non. Dans le cas ou le nœud rejoint le DODAG, il d´etermine tout d’abord ses voisins. Il choisit ensuite parmi ses voisins son parent en fonction de la m´etrique de routage et de la fonction objective (annonc´ees dans le DODAG) et calcule son rang dans le DODAG. Le nœud choisit aussi parmi son ensemble de voisins des parents de substitution (appel´e F easible Successors). Dans le cas, o`u le parent n’est plus joignable, un des parents de substitution le remplacera dans le DO-DAG. Le nœud transmet ensuite `a son tour un message DIO `a ses voisins. Ce processus est r´ep´et´e par l’ensemble des nœuds du graphe, jusqu’`a ce que le DODAG soit construit.

Le DODAG est ainsi construit, de saut en saut, de la racine jusqu’aux feuilles (Le pseudo code de l’algorithme 5 r´esume ce processus). Il existe une route entre chaque nœud du DODAG et la racine. Un nœud peut ainsi envoyer des paquets de donn´ees `a la racine

76 CHAPITRE 4. R ´ESEAUX `A FAIBLE PUISSANCE ET `A PERTE

en envoyant le paquet `a son parent. Les paquets sont transmis par cons´equent saut par saut jusqu’au la racine du DODAG.

Algorithm 5: Construction du DODAG Initialization :

si v = racine alors

Envoie DIO aux voisins de v

Reception d’un DIO envoy´e par le nœud u : N (v) := {u} ∪ N (v)

si rang(u) < rang(pv) alors parentv := u

Mise `a jour de rang(v) sinon

si |sucesseur(v)| < B alors

successeur(v) := sucesseur(v) ∪ {u} sinon

si ∃w ∈ sucesseur(v) | rang(w) > rang(u) alors successeur(v) := sucesseur(v) ∪ {u} \ {w} Envoie DAO `a u

Envoie DIO `a N (v)

Reception d’un DAO envoy´e par le nœud u : Enf ants(v) := Enf ants(v) ∪ {u}

Envoie DAO-ACK `a u

Mise `a jour de l’information de destination Envoie DAO `a parentv

La Figure 4.6 pr´esente la construction d’un DODAG en utilisant le m´etrique qualit´e du lien (ETX). La racine initie la construction du DODAG en diffusant des messages DIO 4.6(a). Les voisins de la racine choisissent leur parent, envoient le DAO `a leur parent et envoient `a leur tour leur propre DIO 4.6(b). Le processus continue jusqu’`a la construction d´efinitive du DODAG 4.6(c).

Les routes descendantes

Il est parfois n´ecessaire d’acheminer d’autres type de trafics tels que le trafic point `

a point et le trafic multi-points `a point. Ce trafic peut provenir de l’ext´erieur du r´eseau LLN depuis une racine ou un nœud interm´ediaire vers les feuilles. La construction du DODAG ne sp´ecifie que les chemins (routes construites par le DODAG) pour les trafics multi-points `a point (convergecast ). Ces chemins repr´esentent les routes ascendantes. Pour faire transiter les autres types de trafics, RPL doit donc d´efinir des routes descendantes qui seront construite sur le DODAG initial. A cet effet, RPL utilise les messages DAO et DAO-ACK pour la construction de ces routes. Pour la construction des routes descendantes dans RPL, deux modes d’op´eration (MOP pour Mode Of Operation) sont d´efinis.

Le mode avec capacit´e de stockage des tables de routage appel´e Storing mode permet au nœud de stocker les adresses IPv6 de leurs enfants dans des tables de routages. Un nœud envoie un message DAO unicast `a son parent, ce message contient une information de pr´efixe. Le nœud qui re¸coit le message DAO transfert l’information et ajoute une entr´ee

DIO

(a) Messages DIO

DAO

(b) Messages DAO

(c) DODAG

Figure 4.6 – Construction d’un DODAG selon la m´etrique ETX

dans la table de routage. Le processus continue jusqu’`a ce que l’information arrive `a la racine et qu’un chemin complet de pr´efixe soit ´etabli. Le message est ensuite envoy´e le long de la route descendante. Le mode storing requiert plus de m´emoire pour enregistrer les tables de routage.

Dans le second mode, appel´e non-storing mode, seule la racine a la capacit´e de stocker les informations de routage, le reste des nœuds sont en mode non storing. Puisque les nœuds (except´e la racine) n’enregistrent pas les routes descendantes, un paquet envoy´e remonte tout le chemin jusqu’`a la racine. Ensuite, la racine construit le chemin jusqu’`a la destination et envoie le paquet `a la destination sur le chemin construit. Dans ce mode, un message DAO est unicast et poss`ede toujours l’adresse de la racine. Le nœud interm´ediaire qui re¸coit un message DAO ajoute son propre DAO et transmet le DAO compos´e `a son parent, qui `a son tour le transmet `a son parent, ainsi de suite, jusqu’`a arriv´e `a la racine. La racine utilise ensuite l’information dans le DAO compos´e (destin´ee aux parents de chaque nœud dans la route) pour reconstituer une route descendante `a un nœud en utilisant les DAO. Le mode non storing requiert plus de puissance et de bande passante pour transporter les paquets de plus en plus grands. car les nœuds interm´ediaires n’ont pas la capacit´e de stocker les routes.

Maintenance du DODAG et ´evitement de cycles

Apr`es la construction du DODAG, le changement de topologie est peut ˆetre fr´equent avec RPL (`a cause de la variation de la connectivit´e dans les liens radio). Pour ´eviter que

78 CHAPITRE 4. R ´ESEAUX `A FAIBLE PUISSANCE ET `A PERTE

des cycles apparaissent, RPL d´efinit un m´ecanisme d’´evitement de cycles, de d´etection de cycles et de reconstruction bas´ee sur la valeur du rang. Le m´ecanisme d’´evitement et de d´etection de cycles est le suivant. Tout d’abord, le m´ecanisme sp´ecifie que le rang des nœuds doit strictement augmenter par rapport `a leurs parents. Ensuite, lors du routage des donn´ees, un nœud peut d´etecter une inconsistance entre le rang du nœud qui envoie et la direction du paquet envoy´e, c’est `a dire ascendante ou descendante. Par exemple, lorsqu’un nœud re¸coit un paquet, marqu´e comme trafic ascendant, d’un voisin de rang inf´erieur au sien, il conclut qu’il y a un cycle dans le DODAG. Enfin, lorsqu’un cycle est d´etect´e, le nœud lance la reconstruction des routes concern´ees (Voir [WTB+12a] pour la description du Local Repair dans RPL).

Documents relatifs