4.3.4.2 Gestion de topologie :
Vu que dans les réseaux Ad hoc, la topologie est
totalement distribuée et les noeuds peuvent se déplacer, se
connecter et se déconnecter facilement du réseau. Alors, il est
indispensable de vérifier à chaque fois la topologie du
réseau.
Le contrôle de la topologie ne se fait que par les
noeuds élus comme MPR. Ces noeuds diffusent périodiquement des
messages de contrôle de la topologie TC (Topology Control).
Le message TC contient l'adresse de générateur
du message, l'adresse du noeud destinataire, le numéro de
séquence et la durée de vie du message. Il envoit dans ce message
l'ensemble des noeuds qui ont sélectionné ce noeud comme MPR (MPR
selector_set). Cette information va aider les autres noeuds à construire
leur table topologique, puis leur table de routage.
Dans l'exemple ci-après, nous
présenterons l'ensemble des MPR choisis par chaque noeud. Les
MPR_selestor de chaque noeud élu comme MPR ainsi que la table
topologique du noeud A.
MPR de tous les noeuds : MPR(A) = {F, C}
MPR(B) = {A, G}
MPR(C) = {A, D} MPR(D) = {C, J} MPR(E) = Ø MPR(F) = {A, G}
MPR(G) = {B, F} MPR(H) = {F} MPR(I) = {J} MPR(J) = {D}
MPR selector des MPRs :
I MPR selector _set de(F) = {A, G, H} I MPR selector _set de(C) =
{A, D}
I MPR selector_set de(A) = {B ,C, F} I MPR selector_set de(G) =
{B, F}
I MPR selector_set de(D) = {C, J}
I MPR selector _set de(J) = { D, I}
I MPR selector_set de(B) = {G}
La table topologique du noeud A est :
Noeuds destinataire
|
Noeud du dernier saut
|
Numéro de séquence
|
Durée de vie
|
B
|
G
|
SN1
|
T1
|
C
|
D
|
SN2
|
T2
|
D
|
C
|
SN3
|
T3
|
F
|
G
|
SN4
|
T4
|
G
|
B
|
SN5
|
T5
|
H
|
F
|
SN6
|
T6
|
I
|
J
|
SN7
|
T7
|
J
|
D
|
SN8
|
T8
|
D
|
J
|
SN9
|
T9
|
G
|
F
|
SN10
|
T10
|
Les changements topologiques
A chaque changement de topologie, le calcul des routes vers
toutes les destinations est déclenché pour mettre à jour
les tables de routage. Par ailleurs, lorsque son ensemble de voisins directs ou
à deux sauts change, un noeud doit effectuer la sélection de ses
MPRs à nouveau.
4.3.4.3 Le calcul de la route :
Puisque le réseau est dynamique et sans infrastructures
centralisé d'autres noeuds peuvent se connecter et déconnecter a
tout moment, ce qui provoque le changement de la topologie du réseau et
les liens entre les noeuds.
Le protocole OSLR est conçu pour trouver et recalculer
les routes, il offre des routes optimales (nombre de sauts minimal) entre les
noeuds de réseau. Pour calculer ces routes, il est indispensable de
connaitre la topologie de réseau
(avoir la table topologique du réseau) et avoir la liste
des voisins et leurs types de liens.
Une fois les routes sont trouvées, le noeud construit
sa table de routage. La table de routage contient l'adresse de premier saut
à suivre (R_dest_addr), adresse du noeud destinataire, le nombre de
sauts qui sépare les deux noeuds ainsi que l'interface de noeuds
local.
Dans la table ci - bas nous allons voir la table de routage
associé au noeud A de l'exemple de la
Figure.
Noeuds destinataire
|
Noeud suivant
|
Nombre de sauts
|
Interface
|
B
|
Directe
|
1
|
IF A
|
C
|
Directe
|
1
|
IF A
|
D
|
C
|
2
|
IF A
|
E
|
Directe
|
1
|
IF A
|
F
|
Directe
|
1
|
IF A
|
G
|
B
|
2
|
IF A
|
G
|
F
|
2
|
IF A
|
H
|
F
|
2
|
IF A
|
I
|
C
|
4
|
IF A
|
Remarque
Tout changement dans la table topologique ou la table de
voisinage provoque automatiquement la modification de la table de routage.
Par exemple, dans la figure suivante si le noeud
D veut envoyer un message au noeud F, il a la
possibilité d'emprunter deux routes, mais toujours OLSR prend la route
optimale (en termes de nombre de sauts).
|