• Aucun résultat trouvé

Dans les sections 2.2 et 2.3, la m´ethode de cr´eation par le sch´ema CBL d’une structure dynamique `a partir de la sp´ecification de nœuds branche et feuille et du partage p´eriodique d’informations d’´etat de ces nœuds dans leur voisinage proche via des messages HELLO a ´et´e pr´esent´ee. Il a ´et´e en particulier notifi´e que :

1. D’une part, une structure CBL comporte des nœuds branche qui, rattach´es successivement deux `a deux construisent des chaˆınes en fonction de leur direction de circulation.

2. D’autre part, elle inclut des nœuds feuille, chaque nœud feuille s´electionnant dans son voisinage `a un saut, un nœud branche auquel il se rattache.

Dans cette organisation, les nœuds branche jouent le rˆole de relais lors du routage d’information entre nœuds distants de plus d’un saut. Chacun est le cluster-head d’un ensemble vide ou constitu´e du ou des nœuds feuille qui l’ont ´elu. Les groupes d´efinis selon le sch´ema CBL poss`edent donc la propri´et´e suivante qui pourra ˆetre utilis´ee au profit de la mise en œuvre d’applications :

“Sachant qu’un nœud feuille ne s´electionne qu’un nœud branche et qu’un nœud branche ne se rattache au plus qu’`a deux nœuds branche d’une mˆeme chaˆıne (l’un en amont de sa position et l’autre en aval), chaque groupe de nœuds feuille agr´eg´es autour d’un nœud branche d´efinit un ensemble disjoint de ceux constitu´es autour des nœuds branche voisins”. Une premi`ere version du sch´ema CBL a fait l’objet d’une publication en revue [8]. Cette version, dont les algorithmes sont donn´es en annexe A `a la page 217, diff`ere en plusieurs points de la version pr´esent´ee dans ce manuscrit. Nous avons cherch´e `a corriger certains manquements de la version 1 et `a renforcer la stabilit´e temporelle de la structure form´ee par CBL. Cette section explique les diff´erences entre la version pr´esent´ee dans [8] et celle expliqu´ee dans ce manuscrit.

2.4.1

Election d’un nœud branche par un nœud feuille (algorithme 3)´

2.4.1.1 Election d’un premier nœud branche – Initialisation de la structure´

Dans la version 1 (annexe A, section A.1.3, algorithme 3, fonction CompareLeafNode, ligne 12), lors de la proc´edure d’´election d’un nœud branche, apr`es r´eception d’un message HELLO en provenance d’un nœud feuille circulant dans le mˆeme sens, un nœud feuille compare la vitesse de ce nœud avec celle des nœuds d´ej`a enregistr´es dans sa table des voisins dont la direction est identique. Il arrive que la table des voisins ait en m´emoire un nœud `a faible vitesse, mais dont la liaison est asym´etrique. Ce voisin enregistr´e empˆeche la s´election d’un nouveau nœud relais.

Dans la version 2 (section 2.3.5, algorithme 3, fonction CompareLeafNode ligne 14), les nœuds de la table des voisins ne sont plus pris en compte. `A la place, l’algorithme compare la vitesse du nœud candidat avec celle du nœud branche ´elu s’il existe, sinon il s´electionne le nœud candidat.

Notons que dans la version 1 (annexe A, section A.1.4, algorithme 4, fonction CompareChainNode, ligne 11), le mˆeme biais existe dans la proc´edure d’´election, par un nœud branche, d’un nœud feuille au titre de nœud branche de la chaˆıne, o`u la valeur du temps de connexion du nœud candidat est compar´ee `a celle des nœuds voisins. La valeur du temps de connexion est calcul´ee `a partir des informations enregistr´ees dans la table des voisins (position et vitesse). Dans la version 2 une solution identique a ´et´e mise en place qui compare le nœud d´ej`a ´elu s’il existe avec le nœud candidat dont le message HELLO a ´et´e re¸cu. 2.4.1.2 Date de prise de d´ecision de l’´election d’un nœud feuille au titre de nœud branche

Dans la version 1, (annexe A, section A.1.3, algorithme 3, fonction CompareLeafNode, ligne 2) la d´ecision de l’´election, par un nœud feuille, d’un nœud feuille au titre de nœud branche est conditionn´ee par la date `a laquelle la liaison entre les deux nœuds est devenue sym´etrique ; cette liaison doit avoir ´et´e sym´etrique depuis au moins V time .

Un biais de cette m´ethode est le suivant : il arrive qu’un nœud feuille perde sa liaison avec son nœud branche. Le nœud feuille recherche alors un nouveau nœud branche. S’il re¸coit un message HELLO d’un nœud feuille voisin ayant une liaison sym´etrique depuis au moins V time, il le s´electionne d’office, sans v´erifier au pr´ealable la pr´esence d’un nœud branche dans son voisinage. S’il diffuse alors son choix du nœud feuille ´elu, ce dernier se transforme en nœud branche. Si ensuite il re¸coit un message HELLO

l’informant de l’existence d’un autre nœud branche dans son voisinage avant d’apprendre en retour que le nœud pr´ec´edemment ´elu est devenu branche, alors il modifie son choix, privil´egiant le nœud d´ej`a branche. Ainsi, un nœud feuille est entre-temps devenu branche sans que cela soit n´ecessaire `a la structure CBL.

Dans la version 2, (section 2.3.5, algorithme 3, ligne 23) la d´ecision de transformation, par un nœud feuille, d’un nœud feuille au titre de nœud branche est diff´er´ee. Cette version introduit un ensemble d’horodatages consignant les dates de diff´erentes actions du nœud. L’horodatage T8 enregistre l’instant o`u le nœud n’a plus de nœud branche (@BranchChoice = 0). `A partir de cette date, le nœud effectue une d´ecouverte du voisinage pendant C1 ∗ HELLO INTERVAL. Si durant cet intervalle il d´etecte un nœud branche, il le s´electionne. Dans le cas contraire, il proc`ede `a l’´election d’un nœud feuille au titre de nœud branche. Tant que l’information d’´election n’a pas ´et´e transmise dans un message HELLO, le nœud a la possibilit´e de le modifier si un autre nœud feuille est un meilleur candidat (section 2.3.5, algorithme 3, ligne 29). L’horodatage T5 enregistre la date de cr´eation du dernier message HELLO du nœud. L’horodatage T11 enregistre l’instant o`u le nœud a s´electionn´e un nœud branche. Ces deux horodatages informent le nœud de l’´emission ou non de la consigne de diffusion au voisinage.

Notons que le mˆeme biais existait dans la proc´edure de prise de d´ecision de l’´election, par un nœud branche, d’un nœud feuille au titre de nœud branche de la chaˆıne. Deux horodatages ont ´et´e introduits, qui jouent le mˆeme rˆole que T8 et T11. T6 enregistre l’instant o`u le nœud branche n’a plus de nœud branche amont (@ChainDO = 0). T9 enregistre l’instant o`u le nœud a s´electionn´e un nœud branche amont.

2.4.1.3 M´etrique et proc´edure d’´election d’un nœud branche

Dans la version 1 (annexe A, section A.1.3, algorithme 3, fonction CompareBranchNode, lignes 7 et 14), la proc´edure d’´election d’un nœud branche par un nœud feuille utilise la m´etrique de distance entre deux candidats potentiels. Il arrive qu’un nœud feuille se situant `a ´equidistance entre deux nœuds branche modifie sans cesse, d’un message HELLO `a l’autre, son choix de nœud branche.

Dans la version 2 (section 2.3.5, algorithme 3, fonction CompareBranchNode lignes 20-28), la m´etrique utilis´ee pour d´epartager deux candidats au titre de nœud branche est le temps de connexion. Une fois un nœud branche s´electionn´e, il le reste tant que son temps de connexion n’est pas inf´erieur `a L3 ∗ HELLO INTERVAL. S’il est inf´erieur, l’´ecart entre le temps de connexion des deux candidats est compar´e `a un seuil conform´ement `a l’´equation 2.3. Cette am´elioration augmente la dur´ee de s´election d’un mˆeme nœud branche. Elle ´evite les changements intempestifs de choix.

2.4.2

Gestion des chaˆınes (algorithme 4)

2.4.2.1 Perte d’information lors de l’´election successive de nœuds branche amont et aval (algorithme 4)

Il arrive qu’un nœud branche d’une chaˆıne s´electionne un nœud en aval (ou en amont) puis qu’il s´electionne un nœud branche en amont (respectivement en aval) avant d’avoir inform´e son voisinage du pr´ec´edent choix.

Or, dans la version 1 (annexe A, section A.1.4, algorithme 4, ligne 47), l’une et l’autre des s´elections sont enregistr´ees dans une mˆeme variable @BranchChoice occasionnant la perte de l’information du pr´ec´edent choix. Cependant, pour se transformer en branche (amont ou aval), les nœuds feuille v´erifient la pr´esence de leur adresse dans le champ @BranchChoice du message HELLO re¸cu. Dans cette configuration o`u l’un des choix a ´et´e ´ecras´e, seul le dernier des deux nœuds s´electionn´es se transforme en nœud branche. Un second nœud, du cˆot´e oppos´e de la chaˆıne, sera effectivement ´elu avec l’´emission du prochain message HELLO.

Dans la version 2, la variable locale @BranchChoice est d´edi´ee `a l’´election d’un nœud branche par un nœud feuille, sa valeur est `a z´ero lorsque le nœud est branche. L’adresse contenue dans chacun des champs @BranchChoice, @ChainUP et @ChainDO des messages HELLO indique alors aux nœuds feuille s’ils doivent se transformer en branche (section 2.3.4, algorithme 2, ligne 2).

2.4.2.2 Chaˆınes parall`eles

Suppression d’une cause Dans la version 1 (annexe A, section A.1.4, algorithme 4), la cr´eation d’une chaˆıne parall`ele `a une chaˆıne d´ej`a existante, pour un mˆeme sens de circulation, peut se produire suite `a

la rupture d’une liaison entre deux nœuds branche de la premi`ere chaˆıne (figure 2.12). Elle se produit lorsque les deux conditions suivantes sont r´eunies : deux nœuds branche s´electionnent chacun, dans le mˆeme laps de temps, un nœud feuille diff´erent comme maillon de chaˆıne, les nœuds feuille s´electionn´es ne forment pas une s´equence ordonn´ee g´eographiquement. Cette cr´eation, non pr´evue par conception lors de la d´efinition de CBL et donc non reproductible, par exemple au b´en´efice d’une redondance, d´egrade les performances en termes d’optimisation du trafic de routage.

Dans la version 2, CBL n’autorise l’extension de la chaˆıne qu’en amont de la direction de circulation (section 2.3.6, algorithme 4, lignes 85-91). En ne permettant plus l’extension de la chaˆıne concurremment en amont et en aval, une cause de choix conflictuel susceptible d’engendrer des chaˆınes parall`eles est supprim´ee. Sens O − E N1 N4 N3 N2 LEGENDE

F euille Branche F euille élue Chaîne

´

Echange de messages apr`es la rupture de la liaison N1-N2

Situation initiale sur la route

Nœud 1 (Branche) Nœud 2 (Feuille) Nœud 3 (Feuille) Nœud 4 (Branche)

Message HELLO Message HELLO

Message HELLO Message HELLO Message HELLO @ChainUP=N3 Message HELLO @ChainUP=N2 Seuil temporel de d´etec-

tion de rupture de liaison N1-N2 d´epass´e

Seuil temporel de d´etec- tion de rupture de liaison N1-N2 d´epass´e n @ChainU P = @N 3 n @ChainDO = @N 2 ( T ype = 1 @ChainDO = @N 1 ( T ype = 1 @ChainU P = @N 4

Situation finale sur la route

Sens O − E

N1 N4

N3 N2

LEGENDE

F euille Branche Chaîne

Chaˆınes parall`eles persistantes Dans la version 1, les chaˆınes parall`eles qui se forment progressent une fois cr´e´ees.

Dans la version 2 (section 2.3.7, algorithme 5, lignes 9-14), dans le cas o`u une chaˆıne parall`ele se cr´eerait malgr´e la suppression de causes d´ej`a identifi´ees, la m´ethode suivante proc`ede `a leur d´econstruction. Un nœud branche qui n’a pas encore ´elu de nœud en aval devient feuille si, `a r´eception d’un message HELLO en provenance d’un nœud branche 1) situ´e en aval de sa position, 2) dans son sens de circulation, 3) et ´electeur d’un maillon de chaˆıne situ´e en amont de sa position,

2.4.2.3 Ph´enom`ene de proximit´e de deux nœuds branche d’une chaˆıne cons´ecutif `a sa rupture par d´epassement

Dans la version 1, lors d’une rupture d’une chaˆıne par d´epassement d’un nœud branche par son nœud branche en aval, la reconstruction de la chaˆıne conserve les nœuds branche de la chaˆıne en op´erant un r´eajustement de leur ordonnancement. Les deux nœuds concern´es par le d´epassement sont `a proximit´e l’un de l’autre. Ils ont donc approximativement le mˆeme voisinage qui comprend notamment leurs nœuds branche amont et aval.

Dans la version 2, les modifications suivantes ont ´et´e introduites pour ´eviter que deux nœuds branche d’une mˆeme chaˆıne apportent la connaissance d’un mˆeme voisinage `a la chaˆıne. Le nœud effectuant le d´epassement devient feuille et n’est pas autoris´e `a se transformer en branche avant une p´eriode de garde C3 ∗ HELLO INTERVAL(section 2.3.4, algorithme 2, ligne 2). Cette p´eriode laisse le temps au voisinage de prendre connaissance du fait qu’il soit devenu feuille et qu’il ne fait donc plus parti de la chaˆıne.

2.4.2.4 Proc´edure d’´election d’un maillon de chaˆıne

M´etrique tenant compte de rupture de chaˆınes par d´epassement. Dans la version 1 (annexe A, section A.1.4, algorithme 4, fonction CompareChainNode lignes 10-11), la proc´edure d’accroissement de la chaˆıne utilise la m´etrique du temps de connexion qui mesure le moment o`u le nœud va ˆetre hors de port´ee radio. Cette m´etrique ne tient pas compte des ruptures de chaˆınes dues au ph´enom`ene de d´epassement entre deux nœuds successifs de la chaˆıne. L’algorithme privil´egie, dans sa recherche d’un nœud en amont (respectivement en aval), le nœud ayant une vitesse sup´erieure (respectivement inf´erieure). Ce choix cause une rupture de la chaˆıne par d´epassement, bien avant l’´ech´eance du temps de connexion estim´e avec ce nœud. Cependant, un autre nœud candidat feuille avec une vitesse inf´erieure (respectivement sup´erieure) aurait pu fournir une dur´ee de connexion plus longue.

Dans la version 2 (section 2.3.6, algorithme 4, fonction CompareChainNode lignes 39-49), une nouvelle m´etrique de d´ecision, ChainTime, a ´et´e cr´e´ee, qui mesure le temps avant rupture de la chaˆıne. Son utilisation lors de la proc´edure d’accroissement retarde la rupture de la chaˆıne, qu’elle soit caus´ee par une sortie de la zone de port´ee entre deux nœuds branche ou par d´epassement de l’un vis-`a-vis de l’autre.

M´etriques et leur ordonnancement pour le choix d’un maillon dans un contexte de forte densit´e v´ehiculaires. Dans la version 1 (annexe A, section A.1.4, algorithme 4, fonction Compare- ChainNode ligne 2-4), la proc´edure d’accroissement de la chaˆıne utilise, dans un premier temps, l’apport de la connaissance d’au moins un nouveau voisin et, dans un second temps, le temps de connexion. Dans un contexte de forte densit´e de nœuds, il arrive qu’un nœud branche ´elise un nœud feuille qui soit tr`es proche de lui, en ne lui apportant qu’un seul nouveau voisin. Ainsi, de fil en aiguille, la chaˆıne peut comporter un grand nombre de nœuds branche ´eloign´es d’une faible distance g´eographique. Cette option contribue `a un faible nombre de nœuds feuille par cluster et `a un nombre de clusters sup´erieur.

Dans la version 2 (section 2.3.6, algorithme 4, fonction CompareChainNode, lignes 6-9), le crit`ere qualitatif d’apport de nouveaux voisins est conserv´e et celui quantitatif du degr´e du nœud candidat (i.e. le nombre de nouveaux voisins apport´es) est ajout´e. La m´etrique quantitative privil´egie les candidats poss´edant un degr´e ´elev´e parmi l’ensemble des candidats ´eligibles. Cependant, plus le degr´e du candidat est ´elev´e, plus son voisinage est diff´erent du nœud branche ´electeur et sa distance g´eographique importante. Le risque est alors d’´elire un nœud en limite de port´ee radio. Pour supprimer ce risque, la m´etrique de d´ecision ChainTime est ´egalement prise en compte comme crit`ere d’´election.

2.4.2.5 Gestion des nœuds branche isol´es

Il arrive que des nœuds branche isol´es apparaissent en pr´esence d’une chaˆıne d´ej`a construite.

Dans la version 1 (annexe A, section A.1.4, algorithme 4), tant qu’un nœud branche isol´e est ´elu par un nœud feuille au titre de nœud relais, alors : 1. Le nœud reste branche ; 2. Il cr´ee une chaˆıne parall`ele. Dans la version 2 (section 2.3.5, algorithme 3, fonction CompareBranchNode, lignes 14-19), pour supprimer cette cause de cr´eation de chaˆınes parall`eles, le crit`ere d’appartenance `a une chaˆıne est pris en compte lors de l’´election du nœud branche par un nœud feuille. Les nœuds feuille privil´egient alors les nœuds branche appartenant `a une chaˆıne et un nœud branche isol´e est peu `a peu effeuill´e des anciennes feuille ´electrices si un nœud branche appartenant `a une chaˆıne est d´etect´e dans leur voisinage. Le nœud branche isol´e et effeuill´e devient feuille.

Notons que ce mˆeme crit`ere est utilis´e lors de l’´election des nœuds branche de la chaˆıne en amont et en aval afin d’´eviter la formation de chaˆınes parall`eles (section 2.3.6, algorithme 4, fonction Compare- ChainNode, lignes 26-38).