Académique Documents
Professionnel Documents
Culture Documents
Faculté d’Informatique
La communication de groupes
et les protocoles de diffusion
Introduction
=consommation= transmission
Type de communication de groupes
num de séquence m1 1
m2 2
m1 1 m3 3
m2 2 - pour l'ordre il faut attendre le processus précèdent pour voir l'ordre multicast
m3 3 - on vas séquencé les messages par un serveur de séquence
.... 1
m2 2
m3 3
.... 1
.... 2
m3 3
Communication one to many
Type de groupe
• closed groupe vs open groupe
• L’utilisation d’un « Open Group » ou d’un « Closed Group » dépend de
l’application.
• Exemple d’un closed groupe : Téléconférence
• Exemple d’un open groupe: traitement distribués de requêtes.
• Dynamique vs statique
Adhésion/Suppression d’un membre
• Ajout d’un processus dans un groupe.
• Suppression d’un processus d’un groupe
• Mécanisme de gestion des informations sur les groupes et leurs membres
Solution : l’utilisation d’un processus serveur de groupe centralisé
La transmission one-to-one est intéressante dans le cas où les groupes comportent peu de
membres.
Par contre, elle génère un trafic important dans le cas contraire car elle envoie un paquet
de message à chaque processus, alors que les deux premières transmettent un seul message.
Emission de messages
• Un message émie à un groupe multicast doit être reçu par tous les membres
du groupe ou pas aucun d’entre eux.
• On suppose qu’un membre d’un groupe multicast qui tombe en panne n’est
plus membre dès qu’il est en panne.
• L’atomicité peut être spécifiée au niveau du message.
• Comment implémenter un mécanisme de multicast atomique ?
Solution 1
• un message est envoyé à chaque membre
• et chaque membre envoie un acquittement ACK au noyau.
• Au bout d’un délai, si tous les membres n’ont pas répondu, le message est retransmis
• et ainsi de suite jusqu'à recevoir les ACK de tous les membres
• Puis le système confirme la réalisation du multicast atomique.
Cette solution peut être adoptée dans le cas où on suppose qu’il n’y a pas de panne de
l’émetteur et de récepteur
Sinon, il faut adopter un protocole de tolérance aux pannes.
• Consistant
• Causal
Ordre absolu
Les messages doivent être transmis aux récepteurs dans l'ordre exacte de leur émission.
=> La solution est d’utiliser une horloge globale.
Le protocole proposé suppose que les horloges des processus sont synchronisées:
• L’heure d’émission d’un message est alors insérée dans chaque message.
• Le système de réception utilise alors une file d’attente pour chaque émetteur où les
messages reçus de cet émetteur sont stockés.
• Et, régulièrement, toutes les périodes, des messages sont délivrés au récepteur.
• Cette fenêtre a une taille représentée par un intervalle de temps fixe. Périodiquement, les
messages reçu et qui sont à l’intérieur de cette fenêtre sont délivrés et les messages non
encore inclus dans la fenêtre restent en attente dans la file car d’autres messages avec des
dates inférieures peuvent arriver.
• La taille de la fenêtre est définie en prenant en considération le temps maximal possible
pour la transmission d’un message d’une machine à n’importe quelle autre machine.
Algorithme de délivrance de messages dans un ordre absolu
Hypothèses :
- Processus membres d’un groupe distribués sur plusieurs sites géographiques
- Horloges synchronisées
- Au niveau de chaque récepteur, nous trouvons une file d’attente (FAi) par émetteur
m1
Ei
m3
m2
m1 1 m4
A l’émission d’un message m: m2 3
m1
- Insérer l’heure d’émission dans le message m m3
m2
m4
- Emettre le message aux processus du groupe m3 2 m1
pour avoir cette
ordre on doit faire
m4 4 m3 une horloge
m2 globale(adaptatio)
m4
A la réception d’un message m :
- Insérer m dans file d’attente de l’émetteur Ei (les messages de chaque émetteur sont triés
dans FAi), en respectant l’ordre
- A chaque fin fenêtre (période ou délai de temps).
- Délivrer les messages inclus dans la fenêtre courante au récepteur
Ordre consistent moins utilisé car les processus ne sont pas synchronisé
étape de décision
• Le protocole ABCAST ce protocole permet aux nœuds de consommer les messages en même temps
• Chaque nœud dispose d’une horloge logique et d’une file d’attente des
messages diffusés au groupe de communication.
• Les messages sont ordonnés selon l’estampille associée dans la file d’attente.
• Cependant, cette estampille peut être :
• Soit temporaire (choisie par le récepteur et proposée par l’émetteur).
• Soit définitive (définie par l’émetteur de la diffusion)
• un message ne peut être délivré que si, son estampille est définitive et la plus
petite de la file d’attente.
Exemple ABCAST
• Deux événements d’émission non liés par une relation de causalité peuvent arriver dans un ordre quelconque
contrairement à deux événements liés par une relation « hapened-before » (relation de causalité).
La première condition assure que le La seconde condition assure que l’émetteur
récépteur a reçu tous les messages n’a reçu aucun message que le récepteur
émis avant le message courant par n’a pas reçu. Cette condition assure que le
l’émetteur, message de l’émetteur n’est pas
causalement lié à un message non reçu par
le récepteur.
(0,0,0)
(0,0,0)
(0,0,0) (1,0,0)
P2 reçoit le message de P1
Les deux conditions sont vérifié=> message délivré
P2 incrémente V[2] (suite à la réception du message de P1)
P2 prend le max entre V[1] local et V[1] inclus dans le message
(1,0,0)
(1,1,0)
(1,1,0)
(0,0,0) (0,1,0)
Au niveau de P1: les conditions sont vérifiées, maj du vecteur, délivrance du message
Au niveau de P3: les conditions ne sont pas vérifiées (s[1]>r[1]), maj du vecteur et mise en
attente du message
(1,1,0)
(1,1,0)
(0,1,0) (1,1,0)
P3 reçoit le message de P1
Maj du vecteur
Les conditions sont vérifiées
Délivrance du message de P1 puis le message de P2