• Aucun résultat trouvé

2.5 Mise en œuvre de CBL dans le protocole OLSR : CBL-OLSR

2.5.1 Pr´esentation du protocole OLSR

Le protocole OLSR [31] est un protocole de routage hi´erarchique et proactif. Chaque nœud du r´eseau applique une routine pour calculer le chemin optimal pour transmettre des messages vers un ou plusieurs nœuds destinataire. Ces chemins sont enregistr´es au sein de plusieurs bases de donn´ees appel´ees table de routage. Ces tables consistent en la table des voisins `a un saut, celle des voisins `a deux sauts, celle des nœuds MPR choisis par le nœud et celle des nœuds l’ayant ´elu comme nœud MPR. Cette routine utilise l’´etat des liens du r´eseau pour fonctionner ainsi que deux types de messages de routage : les messages HELLO permettant la d´ecouverte des nœuds voisins et les messages Topology Control (TC) permettant le partage des tables de routage. La figure 2.13 pr´esente l’en-tˆete d’un message HELLO d´efini par le protocole OLSR.

La premi`ere ´etape du protocole OLSR consiste `a d´ecouvrir les nœuds voisins. Chaque nœud diffuse de mani`ere p´eriodique (param`etre HELLO INTERVAL fix´e par d´efaut `a 2 secondes) un message HELLO qui contient les informations sur son voisinage. Ces informations sont l’adresse et le type de liaison des voisins (sym´etrique, asym´etrique, MPR, perdu ou non sp´ecifi´e). Si la liaison est sym´etrique cela signifie que le lien entre les deux nœuds est valide et bidirectionnel. Si la liaison est asym´etrique, le lien est unidirectionnel, c’est-`a-dire que le nœud a re¸cu un message de son voisin mais que celui-ci ne l’a pas encore valid´e. Si la liaison est de type MPR, cela signifie que ce nœud voisin est un relais MPR ce qui

entraˆıne automatiquement une liaison sym´etrique entre les deux nœuds. En recevant ces messages, les nœuds voisins traitent les informations (en actualisant leurs tables de routage) mais ne relaient pas ce message grˆace `a un syst`eme de compteur appel´e Time To Live (TTL). Le nœud origine fixe la valeur du compteur TTL. Lorsqu’un message est relay´e par un nœud, le compteur TTL est d´ecr´ement´e de 1. Un nœud qui re¸coit un message dont le compteur TTL atteint la valeur de 1 ne retransmet pas ce message. Dans le cas des messages HELLO, le compteur TTL est toujours fix´e `a 1 par le nœud ´emetteur du message HELLO. Par ailleurs, lorsqu’un changement de voisinage est d´etect´e, la table de routage est recalcul´ee pour mettre `a jour les informations. Si un nœud n’a pas envoy´e de message HELLO depuis un temps sup´erieur au seuil fix´e (param`etre Neighbor hold time), il est supprim´e des tables de routage. Un syst`eme de temporisateur est utilis´e pour garantir la non obsolescence des informations. Le protocole OLSR transmet les valeurs n´ecessaires au calcul de ce d´elai dans le champ Vtime de l’en-tˆete des messages transmis au sein des paquets OLSR. Sp´ecifi´e sur un octet, les quatre bits de poids forts du champ Vtime (section 2.2.8) codent l’entier repr´esentant la mantisse a, les quatre bits de poids faibles codent l’entier repr´esentant l’exposant b. La formule de Vtime est donn´ee selon [31] par :

V time = C ∗1 + a 16 ∗ 2

b (s)

o`u C est une constante dont la valeur d´efinie par d´efaut `a 1/16 de secondes dans [31].

Les param`etres par d´efaut du protocole OLSR pr´econis´es dans [31] sont pr´esent´es dans le tableau 5.3. Les nœuds s´electionn´es comme MPR diffusent des paquets TC `a une fr´equence fix´ee par le param`etre TC interval. Ces paquets sont envoy´es en mode broadcast. Ils sont uniquement relay´es par les nœuds MPRs . Un paquet TC d’un nœud contient les informations sur les nœuds voisins qui l’ont s´electionn´e comme nœud MPR. Grˆace `a la r´eception des paquets TC, chaque nœud du r´eseau met `a jour ses tables de routage et calcule les chemins vers les autres nœuds du r´eseau grˆace `a l’algorithme Dijkstra du plus court chemin en utilisant la m´etrique du nombre de nœuds relais pour chaque route. Le fonctionnement est le suivant : soit le nœud Ni recevant un message TC initialement envoy´e par le nœud Nk. Le message TC

contient la liste des nœuds Nj ayant choisi le nœud Nk comme nœud MPR. Il existe une route passant

par le nœud Nk pour joindre les nœuds Nj. Si les nœuds Nj sont pr´esents dans les tables de routage du

nœud Ni, celui-ci calcule le nombre de nœuds relais actuel lui permettant de joindre les nœuds Nj. Si le

nombre de nœuds relais de la route passant par le nœud Nk est plus faible alors le nœud Niajoute cette

route dans sa table de routage.

Le protocole OLSR effectue une structuration du r´eseau par l’interm´ediaire des nœuds MPRs (sec- tion 1.2.2.1) permettant d’´economiser les ressources radios. La proc´edure de s´election des nœuds MPRs est la suivante : chaque nœud Ni du r´eseau s´electionne un ensemble de voisins `a un saut lui permet-

tant de communiquer avec son voisinage `a deux sauts. Les nœuds MPR sont utilis´es comme nœud relais permettant au nœud de communiquer avec son voisinage `a deux sauts. Seuls les nœuds de cet ensemble retransmettent les messages envoy´es en broadcast. Pour effectuer ce choix, le nœud Niex´ecute la routine

suivante :

1. Chaque nœud voisin Nj ayant comme param`etre N willingness ´egal `a WILL ALWAYS est auto-

matiquement ajout´e `a l’ensemble des nœuds MPRs de Ni.

2. Le nœud Ni calcule pour chaque voisin Nj `a un saut, le nombre D de voisins `a deux sauts que le

nœud Nj lui permet de joindre. Si un nœud Nj est l’unique nœud voisin `a un saut ayant un lien de

communication vers un voisin `a deux sauts alors le nœud Nj est ajout´e `a l’ensemble des MPRs de

Ni.

3. La proc´edure suivante est r´ep´et´ee jusqu’`a ce que tous les voisins `a deux sauts du nœud Niaient un

lien de communication avec l’un des nœuds MPRs choisi : Pour chaque nœud voisin Nj `a un saut, le

nœud Ni calcule le nombre D2 de voisins que le nœud Nj lui permet de joindre dans le voisinage `a

deux sauts de Niet n’ayant pas encore de lien de communication avec l’un des nœuds MPRs choisi.

Le nœud Ni ajoute `a l’ensemble de ces MPRs, le nœud voisin `a un saut dont la valeur de D2 est

non nulle et ayant le param`etre N willingness le plus ´elev´e. Dans le cas de la pr´esence de plusieurs nœuds candidats, c’est le nœud ayant la valeur de D la plus ´elev´ee qui est ajout´e `a l’ensemble de MPRs du nœud Ni.

Attribut Valeur par d´efaut

Willingness d´efaut

Hello interval 2 secondes

TC interval 5 secondes

Neighbor hold time 6 secondes (3*Hello interval ) Topology hold time 15secondes (3*TC interval ) Duplicate message hold time 30 secondes

Adressing IPV4

TABLEAU 2.4 – Param`etres du protocole OLSR - issue de RFC 3626

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Reserved Htime Willingness

Link Code Reserved Link Message Size Neighbor Interface Address 1

Neighbor Interface Address 2 ...

Link Code Reserved Link Message Size Neighbor Interface Address 1

Neighbor Interface Address 2 ...

Figure 2.13 – En-tˆete d’un message HELLO d´efini par le protocole OLSR - source [31]