• Aucun résultat trouvé

2.4 Conclusion

3.1.3 Échange périodique des compteurs

L’hypothèse selon laquelle les compteurs des nœuds sont maintenus en mémoire partagée accessible à tous en permanence n’est pas du tout réaliste. Néanmoins, on peut supposer que les compteurs sont diffusés régulièrement dans les messages de contrôle du protocole de routage existant. On peut aussi supposer qu’il existe une borne supérieurePfinie et connue par tous les nœuds de l’intervalle de temps séparant deux diffusions successives d’un message de contrôle par un nœud.

Chacun des messages successifs émis contient un numéro de séquence qui permet de le distinguer des autres. Chaque nœud maintient donc un compteur de séquence qui est incrémenté juste avant l’envoi d’un message de contrôle et dont la valeur courante est utilisée comme numéro de séquence dans ce dernier. À tout moment, le compteur de séquence contient la valeur du numéro de séquence du dernier message de contrôle émis.

Définition 8 (compteur de séquence) Pour tout instantt, soitSi(t)la valeur du comp-teur de séquence du nœudi. Pour tout numéro de séquencen, soitTi(n)l’instant de l’envoi paridu message de contrôle dont le numéro de séquence estn.

Définition 9 (intervalle maximum d’émission) SoitPl’intervalle de temps maximum entre deux émissions successives d’un message de contrôle par un nœud.

∀i∈V, ∀n∈N, Ti(n+ 1)−Ti(n)≤P (3.6)

D’après la définition 8 et la façon dont le compteur de séquence est incrémenté, on a la propriété suivante :

∀t∈R+, ∀i∈V,

(Ti(Si(t))≤t <Ti(Si(t) + 1)

Si(Ti(Si(t))) =Si(t) . (3.7)

Définition 10 (ensemble de voisins) Pour tout nœudiet tout numéro de séquencen, soit Ni(n)l’ensemble des nœuds ayant été considérés comme voisins deientre les émissions de messages numérosn−1etn.

∀i∈V, ∀n∈N, Ni(n) = [

t∈[Ti(n−1);Ti(n)[

Ni(t) (3.8)

On supposera désormais que les valeurs des compteurs sont diffusées dans les messages de contrôle uniquement aux voisins directs de leur émetteur. Ainsi, les voisins disposent des compteurs pour les instants auxquels les messages sont émis. On peut réécrire l’expression du bilan par nœud en fonction non pas de l’instantt, mais du numéro de séquencendu message :

∀i∈V, ∀n∈N, Bi(n) = X

j∈Ni(n)

Ijii (Ti(n))−Oiji (Ti(n))

(3.9)

Les voisins d’un nœud ne sont donc en mesure de calculer son bilan par nœud qu’à chaque instant de réception de ses compteurs.

Mobilité et valeurs différentielles

Dans un réseau à topologie statique, les voisins d’un nœud sont en nombre fini et ne changent pas au cours du temps. Dans ce cas de figure, la publication de compteurs pour tous les voisins depuis le début du fonctionnement du nœud va de soi et ne pose pas de problème particulier tant que le nombre de ces voisins est faible.

En revanche, dans un réseau mobile, dont la topologie est par définition dynamique, les voisins d’un nœud changent au cours du temps. Potentiellement, le nombre total de voisins différents qu’un nœud particulier peut avoir eu au cours de son fonctionnement n’a de limite que le nombre total des autres nœuds. Il n’est donc pas envisageable de faire publier les compteurs de tous les voisins passés et présents.

Si on ne publie les valeurs des compteurs que pour les voisins présents au moment de l’émission du message de contrôle, alors on doit s’attendre à ce que le bilan par nœud ne soit pas nul dans certains cas de figure, bien que le principe de conservation de flot n’ait pas été violé.

La figure 3.2 présente un exemple de changement de voisinage qui peut poser problème. Ici, le nœudlarrive dans le voisinage deiaprès quejen soit parti :ln’a aucun moyen de savoir que jétait voisin deipar le passé si ce dernier ne publie plus de compteurs concernant le lien{i, j}.

Supposons qu’un certain trafic de données ait transité dekversjen passant pari, autrement dit

i k

j

j l

(a)

i k

j l

l

(b)

FIG. 3.2: Changement de voisinage : (a)ln’est pas encore voisin deialors quejs’éloigne ; (b)ldevient voisin alors quejne l’est plus. Le nouveau voisinln’est pas censé savoir que ja existé dans le voisinage par le passé et quelles étaient les valeurs des compteurs sur le lien{i, j}au moment où il l’a quitté.

on aIkii (t) =Oiij(t)6= 0. Il est clair que lorsquelcalcule le bilan par nœud dei,Bi(t), il y a de fortes chances pour que celui-ci soit non nul, puisqueldispose deIkii (t)mais pas deOiji (t).

Une façon de résoudre ce problème consiste à utiliser desvaleurs différentielles. Au lieu de diffuser dans les messages les valeurs absolues des compteurs, il s’agit de diffuser la différence de ces valeurs absolues entre l’instant présent et l’instant du dernier envoi de message.

Définition 11 (valeurs différentielles) Pour tout compteur de la formeXiji (t) (res-pectivementXijj(t)), oùXpeut êtreI ouO, on définit sa valeur différentielleX˙iji (t) (respectivementX˙ijj(t)) par la formule suivante :

∀t∈R+, ∀i, j ∈V,

(X˙iji (t) =Xiji(t)−Xiji(Ti(Si(t)))

ijj(t) =Xijj(t)−Xijj(Tj(Sj(t))) . (3.10) On notera aussiTi (n)l’instant juste avant l’émission paridu message au numéro de séquencen, tel queXiji(Ti (n)) = Xiji(Ti(n))etXijj(Tj (n)) = Xijj(Tj(n)), pour tout compteurX, tous nœudsietjet tout numéro de séquencen. Cette notation sera utile pour désigner les valeurs différentielles des compteurs et on a donc

∀n∈N, ∀i, j∈V,













iji Ti(n)

= 0 X˙ijj Tj(n)

= 0 X˙iji Ti (n)

=Xiji Ti(n)

−Xiji Ti(n−1) X˙ijj Tj (n)

=Xijj Tj(n)

−Xijj Tj(n−1) .

(3.11)

Publication des compteurs

Pour chaque lien avec un voisinj, un nœudipublie dans ses messages de contrôle les valeurs différentielles de ses compteurs concernant ce lien.

Définition 12 (VCP) Pour tous nœudsietjet tout numéro de séquencen, soient les valeurs de compteurs publiées (VCP), le quadruplet suivant :

∀i, j∈V, ∀n∈N, Vji(n) =

iji Ti (n)

,O˙iji Ti (n) , I˙jii Ti (n)

,O˙jii Ti (n)

!

. (3.12)

Entre deux émissions de VCP, un nœudireçoit d’un voisinjzero ou plus VCP le concer-nant.

Définition 13 (numéros de séquence accumulés) Pour tous nœudsietjet pour tout numéro de séquencen, soitSij(n)l’ensemble des numéros de séquence des messages de contrôles en provenance dejqueia reçus entre les émissions de ses messages de contrôle numérosn−1etn.

∀i, j∈V, ∀n∈N, Sij(n) ={m:Ti(n−1)≤Tj(m)<Ti(n)} (3.13)

On peut donc définir l’ensemble des VCP inverses reçues pari.

Définition 14 (VCP inverses) Pour tous nœudsietjet pour tout numéro de séquence n, soitRji(n)l’ensemble des VCP en provenance dejqueia reçues entre les émissions de ses messages de contrôle numérosn−1etn.

∀i, j∈V, ∀n∈N Rji(n) = [

m∈Sij(n)

n

Vij(m)o

(3.14)

Ensemble, les définitions précédentes servent à définir précisément ce que l’on entend par publication de lien.

Définition 15 (publication de lien) Pour tous nœuds i etj et pour tout numéro de séquencen, une publication de lienLij(n)en provenance deiet concernant le lien

{i, j}est définie par :

∀i, j∈V, ∀n∈N, Lij(n) = n, Vji(n), Rij(n)

. (3.15)

Enfin, on peut définir un ensemble de publications.

Définition 16 (ensemble de publications) Pour tout nœudiet pour tout numéro de séquencen, un ensemble de publicationsAi(n)est défini par :

∀i∈V, ∀n∈N, Ai(n) = [

j∈V

Lij(n) . (3.16)