Algorithme de replacement du centre d`un arbre de

publicité
Algorithme de replacement du centre
d’un arbre de diffusion réduit
Dominique Grad, Thomas Noël, Jean-Jacques Pansiot
LSIIT UPRES-A No 7005
Université Louis Pasteur - Strasbourg
{grad, noel, pansiot}@dpt-info.u-strasbg.fr
http://dpt-info.u-strasbg.fr/~grad
Résumé : L’arbre de diffusion est la structure de communication adoptée dans les communications
multipoints. Dans le cadre de notre proposition LAR d’architecture de routage logique [PAN 98], nous
avons introduit la notion d’arbre réduit : arbre de diffusion centré, limité aux nœuds duplicateurs et aux
feuilles [GRA 96]. Nous présentons ici les propositions relatives à l’excentricité dans les arbres réduits,
puis nous exposons l’algorithme distribué de détermination du centre. Cet algorithme permet de replacer
périodiquement le nœud centre d’un arbre de diffusion réduit. Ce mécanisme est particulièrement
important, puisqu’il permet une meilleure utilisation des ressources du réseau, le centre ayant un rôle
primordial de coordination dans notre architecture.
Mots-clés : Théorie des graphes, arbres de diffusion, algorithmique distribuée, centre et excentricité.
1. Contexte
L’arbre de diffusion a été adopté de longue date comme la structure de communication adéquate pour
une communication multipoint [WAL 80]. Dans un groupe dynamique, conformément au modèle de
groupe de référence [DEE 89], les membres récepteurs adhérent et se retirent en cours de
communication. C’est pourquoi la topologie de l’arbre et les caractéristiques telles que le diamètre ou
l’excentricité des nœuds évoluent en fonction de la constitution du groupe. Dans les propositions de
protocoles de routage, les candidats membres d’un groupe émettent leur requête d’adhésion à destination
d’un point de rendez-vous [EST 97] ou d’un centre [BAL 97]. La position de ce centre détermine ainsi
le point d’attachement de la branche ajoutée pour insérer le nouveau membre dans l’arbre. Une position
initiale arbitraire et statique du centre risque de conduire à une position fortement excentrée de ce nœud,
qui induit une dégradation des performances des mécanismes d’adhésion des protocoles de routage
multipoint.
La position du centre est un point crucial pour le routage multipoint et c’est pourquoi de nombreux
travaux ont été réalisés dans ce domaine : ils proposent un choix initial du centre ou le replacement en
cours de communication [CAL 95], ou encore des heuristiques de détermination d’un centre à partir de
la connaissance globale du groupe [THA 97] [WEI 97] et de la topologie du graphe sous-jacent
[FLE 95]. Notre heuristique consiste à définir simplement comme centre le nœud le moins excentré de
l’arbre, elle ne nécessite aucune connaissance globale de la constitution du groupe, ni de la topologie de
l’arbre ou du graphe. Nous proposons un algorithme distribué de détermination et de replacement du
centre sur des critères d’excentricité. Nous définissons l’excentricité d’un nœud, comme étant la
distance maximale en nombre de sauts au nœud le plus éloigné dans l’arbre. Le nœud d’excentricité
minimale, que nous appellerons le centre de l’arbre, est ainsi replacé en cours de communication, et les
insertions de nouveaux membres se font depuis ce nœud, induisant un meilleur équilibre de l’arbre.
1.
2. L’arbre réduit
Nous définissons ainsi les arbres réduits en adoptant les notations classiques de la théorie des graphes.
Soit un arbre T = ( V, E ) où V est l’ensemble des nœuds, et E ⊆ V ✕ V l’ensemble des arêtes de cet
arbre. Nous identifions dans cet arbre, les trois classes disjointes de nœuds telles que V = R ∪ D ∪ M.
Soit R, l’ensemble des nœuds de degré 2 dans l’arbre, appelés nœuds relais, tels que R = { v ∈ V /
degT(v) = 2 }. Soit D l’ensemble des nœuds de degré supérieur à deux, appelés nœuds duplicateurs et
situés aux points d’embranchement de l’arbre, tels que D = { v ∈ V / degT(v) > 2 }. Soit M l’ensemble
des nœuds feuilles, que nous appelons nœuds membres, tels que M = { v ∈ V / degT(v) = 1 }. Un arbre
réduit est constitué de nœuds duplicateurs et de nœuds membres (en excluant les nœuds relais). A un
arbre quelconque T = ( V, E ), V = R ∪ D ∪ M, on associe un arbre réduit Tr = ( Vr, Er) tel que Vr = D ∪
M, et ( v, w ) ∈ Er si et seulement si il existe un chemin v, u1, u2,...un, w dans T avec ui ∈ R. Autrement
dit, un chemin composé de nœuds relais de T est remplacé par une arête de Tr dite arête logique.
Æ
Replacement du centre
C
C’
C’
C
Excentricité de C’ = 5
<
Excentricité de C = 7
Figure 1 : Replacement du centre d’un arbre réduit
En figure 1, on peut voir l’exemple d’une arbre réduit composé de 2 nœuds duplicateurs et 5 nœuds
membres et nous présentons le replacement du centre C en C’. Les insertions ultérieures dans l’arbre se
feront en direction de C’, l’arbre bénéficiant d’un meilleur équilibre.
3. Centre et excentricité
Soit u un noeud quelconque d’un arbre réduit T = (V, E). Nous évaluons le centre, le diamètre et le
rayon d’un arbre T, notés respectivement CentreT, DiamT , RayonT. On suppose connue en chaque
nœud u, la distance en nombre de sauts à un nœud quelconque v , notée dist(u, v). Chaque nœud
maintient la liste de ses voisins notée voisinsT( u ), et pour chaque arête logique de T incidente à u, on
suppose connue la distance au noeud le plus éloigné via cette arête. Soit dmT(u,v) la longueur du plus
long chemin commençant par l’arête (u, v). L’excentricité notée DT( u ) est la distance au noeud le plus
éloigné de u dans l’arbre :
DT( u ) = max( dmT( u , v ) ) pour v ∈ voisinsT( u ) (0 si u n’a pas de voisin).
Soit vm(u), un voisin par lequel est obtenu DT( u ) :
∃ vm(u) ∈ voisinsT( u ) t.q. DT( u ) = dmT( u , vm(u) )
En chaque noeud u non feuille, on détermine également un voisin vb(u) par lequel on obtient la distance
maximale immédiatement inférieure ou égale à l’excentricité. Nous appelons cette distance l’excentricité
secondaire de u notée DbisT (u):
DbisT( u ) = max( dmT( u , v ) ) pour v ∈ { voisinsT( u ) \ vm(u) }
∃ vb(u) ∈ voisinsT( u ), vb(u) ≠ vm(u), t.q. DbisT( u ) = dmT( u , vb(u) )
2.
A noter que pour un noeud u, feuille de l’arbre T, tel que degT(u) = 1, on a
voisinsT( u ) = { v } ⇒ DT( u ) = dmT( u , v ) , vm(u) = v, DbisT( u ) = 0
Proposition 1 : Si il existe dans un arbre T un noeud u ayant une excentricité égale à son excentricité
secondaire, alors u est précisément le centre unique de l’arbre T, le rayon de T est égal à DT( u), et le
diamètre de T est égal à 2 * DT( u).
∃ u ∈ V t.q. DT( u) - DbisT( u ) = 0 ⇒
a)
CentreT = { u }
b)
RayonT = DT( u )
c)
DiamT = 2*DT( u )
DT(u)
Sous - arbre
T w’
DbisT (u)+d
d=distT (u,vm(u))
u
Sous - arbre
Tw
Vm(u)
Figure 2 : Estimation au noeud centre
Proposition 2 : Si il existe dans un arbre réduit T un noeud u tel que
DT(u) - DbisT (u) = 2 * distT( u, vm(u))
alors le centre unique est vm(u).
Proposition 3 : Si il existe dans un arbre T un noeud u tel que
DT(u) - DbisT (u)∈ ] 0 , 2 * distT( u, vm(u)) [,
alors les centres sont les noeuds u et vm(u), et le diamètre est égal à DT(u) + DbisT (u).
∃ u ∈ V t.q. DT( u) - DbisT( u ) ∈ ] 0 , 2 * distT ( u, vm(u)) [
⇒
a) CentreT = { u , vm(u) }
b) DiamT = DT(u) + DbisT( u )
Proposition 4 : Si il existe dans un arbre T un noeud u tel que DT(u) - DbisT (u) > 2 * distT( u, vm(u))
alors le centre unique est situé « après » vm(u). En d’autres termes, le voisin menant au centre est
identifié, mais la localisation exacte du centre n’est pas possible en u. De plus, on n’a qu’une estimation
du diamètre de l’arbre y comme :
DT( u ) + DbisT( u ) ≤ DiamT ≤ 2 * ( DT( u ) -distT( u, vm(u)) )
Les propositions précédentes ont été démontrées dans [GRA 99]. En Figure 3, on peut voir une synthèse
de l’estimation du centre et du diamètre d’un arbre réduit T en un noeud u quelconque, par évaluation de
la différence DT( u ) - DbisT( u ).
3.
D T (u) - DbisT (u) =
0
2 * dist T ( u ,v m(u))
centre T = { u , vm(u) }
centre T = { u }
« après »
centre ={vm(u)}
Figure 3 : Estimation du centre d’un arbre réduit
4. Algorithme de détermination du centre
Nous exposons le calcul distribué permettant à partir des résultats précédents, de déterminer le centre et
le diamètre d’un arbre réduit. Nous supposons une instance de l’algorithme pour une arbre T donné (qui
ne sera donc pas répété dans la notation suivante), exécutée en un nœud noté IdMoi. La table de routage
indiquant en chaque nœud, la distance à tout autre est notée dist(IdNoeud). Chaque nœud de l’arbre
maintient la liste des voisins dans l’arbre, notée listeVoisins, et pour chaque arête incidente, la distance
au noeud le plus éloigné dans l’arbre notée IdVoisin.dist. Soit Dist l’excentricité d’un processus, DistBis
l’excentricité secondaire, et le noeud par lequel on obtient la distance maximale sera noté IdVmax.
Chaque nœud transmet périodiquement à ses voisins dans l’arbre réduit, un message LAR_HELLO,
indiquant le maximum des distances obtenues par tous ses autres voisins. A noter, que ces messages
sont nécessaires à la maintenance de l’arbre réduit dans notre architecture LAR, notre mécanisme de
détermination du centre ne nécessitant donc pas d ‘émission de messages de contrôle supplémentaires. A
réception de ce message, un nœud met à jour la distance maximale pour un voisin, en additionnant la
distance reçue à la distance le séparant de ce voisin, puis recalcule Dist, DistBis et IdVmax. En cas de
modification de son excentricité, le nœud propage alors les nouvelles distances à ses voisins. Soit
l’algorithme de réception des messages propageant les informations d’excentricité :
// Traitement des messages LAR_HELLO avec mise à jour de Dist, IdVmax et DistBis
A réception de LAR_HELLO, distance depuis IdVoisin
SI IdVoisin ∉ listeVoisins ALORS
Erreur « Voisin inexisitant »
SINON
Réinitialiser IdVoisin.timer
// Mise à jour de la distance
IdVoisin.dist = distance + dist(IdVoisin)
SI IdVoisin.dist ≥ Dist ALORS
// Mise à jour de la distance maximale
Dist = IdVoisin.dist
IdVmax = IdVoisin
// Emission de LAR_HELLO, Dist à tous les voisins sauf Vmax
SINON
SI IdVoisin.dist ≥ DistBis ALORS
// Mise à jour de la distance secondaire
DistBis = IdVoisin.dist
// Emission de LAR_HELLO, DistBis à Vmax
FINSI
FINSI
FINSI
FIN
Notre algorithme nécessite l’émission d’un message sur chaque arête logique pour la propagation des
distances maximales, sa complexité en nombre de messages est donc en O(M + D), où M est le nombre
de nœuds membres de l’arbre et D le nombre de nœuds duplicateurs. Il est à noter que notre algorithme
ne requiert pas d’émissions spécifiques, puisque la maintenance d’un arbre réduit est assurée par une
signalisation périodique entre les nœuds voisins de l’arbre (LAR_HELLO). Le centre, par une
4.
évaluation périodique des caractéristiques Dist et DistBis, estime son excentricité dans l’arbre réduit.
Lorsque la différence Dist-DistBis dépasse un certain seuil, il déclenche l’opération de replacement du
centre par la diffusion d’un message à tous les nœuds de l’arbre réduit. A réception d’un tel message
Chaque nœud exécute alors l’algorithme qui suppose que les données de distance sont consistantes.
Chaque nœud maintient l’identité du centre courant notée centre et l’identité du voisin dans l’arbre
menant au centre (voisin de l’arête logique père) notée père. Soit l’algorithme de détermination du
nouveau centre de l’arbre réduit :
// Traitement du replacement du centre en IdMoi
// Nous supposons que Dist, DistBis, et IdVmax sont mis à jour
// Au moment du délenchement de l’opération
SI Dist = DistBis ALORS
// Diffusion son identité dans l’arbre
centre = IdMoi
SINON
SI IDist - DistBis < dist(IdVmax) ALORS
SI IdMoi > IdVmax ALORS
// Arbitrage sur l’identité la plus grande
centre = IdMoi
SINON
centre =IdVmax
père = IdVmax
FINSI
SINON
// Attente de la publication de l’identité du nouveau centre
père = IdVmax
FINSI
FINSI
FIN
Dans notre algorithme, nous partons de l’hypothèse que les informations maintenues par chaque
processus sont consistantes, que les routes sont stables et les routes symétriques, afin que la distance
séparant deux nœuds soit estimée de manière équivalente par les deux nœuds. Dans le cas courant de
fréquentes reconfigurations du routage ou de routes non symétriques, on peut imaginer une variante de
l’algorithme levant cette hypothèse. Le centre ayant déclenché son replacement, collecte les
caractéristiques des nœuds candidats potentiels par une vague aller-retour dans l’arbre, procède à
l’élection d’un nouveau centre et propage dans l’arbre l’identité de ce nouveau centre. A l’annonce du
résultat de cette élection, chaque nœud de l’arbre met à jour ses données (arête père et identité du
centre).
Conclusion
Nous avons proposé un algorithme de replacement du centre d’un arbre de diffusion réduit, qui nous
permet de conserver les propriétés initiales de notre arbre, en cas de multiples adhésions/retraits en
cours d’une communication multipoint. Nous avons pu mesurer l’économie importante en ressources du
réseau apportée par notre solution dans le cas d’un arbre de diffusion centré où un nombre important de
messages convergent vers le centre. Dans le cadre de simulations, nous avons confronté notre solution
aux approches classiques, dans lesquelles le centre est choisi à priori en début de communication et
subsiste quel que soit l’évolution de la topologie de l’arbre de diffusion. Dans le cadre du développement
de notre proposition d’architecture sur une plate-forme IPv6, nous allons mettre en œuvre les
mécanismes de replacement du centre, afin de les valider dans une implémentation réelle.
5.
Références bibliographiques
[BAL 97]
A. Ballardie, Core Based Trees (CBT) Multicast Routing Architecture, Internet
RFC2201, septembre 97.
[CAL 95]
K. Calvert, E. Zegura, M. Donahoo, Core Selection Methods for Multicast Routing,
Fourth International Conference on Computer Communications and Networks
(ICCCN’95), Las Vegas, 1995.
[DEE 89]
S. Deering, Hosts extensions for IP multicasting, Internet RFC 1112, aout 89.
[EST 97]
D. Estrin, D. Farinacci, S. Deering, D. Thaler, A. Helmy, M. Handley, V.
Jacobson, C. liu, P. Sharma, L. Wei, Protocol Independent Multicast – Sparse Mode
(PIM-SM) : Protocol Specification, Internet Draft from the Internet Engineering Task
Force (IETF), draft-ietf-idmr-pim-sm-specv2-10.ps, Work in Progress, septembre 97.
[FLE 97]
E. Fleury, Y. Huang, and P. K. McKinley, On the performance and feasibility of
multicast core selection heuristics, Technical Report MSU-CPS-97-42, Department of
Computer Science, Michigan State University, East Lansing, Michigan, October 1997.
[GRA 96]
D. Grad, J.-J. Pansiot, S. Marc-Zwecker, Distributed Computation of reduced
Multicast Trees, Proc. of TDP'96, Telecommunication Distribution Parallelism, La
Londe Les Maures, France, juin 1996, pp. 91-107.
[GRA 99]
D. Grad, Algorithme de replacement du centre d’un arbre de diffusion réduit,
http://dpt-info.u-strasbg.fr/~grad/pub/rr99.ps.gz, Rapport de Recherche interne,
LSIIT, Université Louis Pasteur, , avril 99.
[PAN 98]
J.J. Pansiot, D. Grad, T. Noel, A. Alloui, Logical Addressing and routing for
multicasting (LAR), Internet Draft from the Internet Engineering Task Force (IETF),
draft-pansiot-logical-addressing-00.txt, Work in Progress, novembre 98.
[THA 97]
D. Thaler, Ravishankar, Distributed Center-Location Algorithms, IEEE JOSAC,
Vol. 15, N° 3 , avril 1997.
[WAL 80]
D. Wall, Mechanisms for Broadcast and Selective Broadcast, Ph.D dissertation,
Stanford University, Dept. Elec. Eng. , 1980.
[WEI 97]
A. Weigmann, J. Nonnenmacher, E. Biersack, Center Placement Algorithms for
Large Multicast Groups, HPNP'97, 7th IFIP Conference on High Performance
Networking, White Plains, New York, USA, avril 1997.
6.
Téléchargement