16
Diffusion et communication de groupe Mécanismes et protocoles Raymond Schneider DépcJrtement Informatique, IUT Strasbourg Sud, Université Robert Schuman 72, route du Rhin, F67400 Illkirch-Graffenstaden, France Centre Réseau et Communication, Université Louis Pasteur 7, rue Descartes, F67084 Strasbourg Cedex, France Adresse électronique: [email protected] Résumé. Les mécanismes de diffusion existenl dans les couches basses des réseaux locaux normalisés. Les applications de communication de groupe peuvenl tirer parti de leur utilisation. L'architecture en couches du modèle OS/ permet d'inlroduire progressivemenl ces mécanismes ainsi que les problèmes liés à la mise en oeuvre de telles applications. Les diverses techniques disponibles sonl passées en revue en parcouranl de bas en haut les couches du modèle. Mots-clés: protocoles de diffusion, communication de groupe, modèle OS/. Abstract. Multicast mecanismç are inherenl in the lowestlayers of the normalized local aera nelworks. Group communication applications can take advanlage in using them. The layered architecture of the OS/ mode! is used ta inlroduce these mecanismç step by step, as weil as the problems occuring when implementing such applications. The differenl techniques available are reviewed by "climbing" the layers of the modelfrom bottom to top. Key words : multicast protocols, group communication, OSI model. 1. Introduction La diffusion est une opération qui pennet à un processus exécuté par une station d'un système ouvert de communiquer un message à un groupe de processus s'exécutant sur différentes stations distantes. La manière hi plus immédiate de réali- ser une diffusion est de transmettre séparément le message à chacun des membres du groupe en utilisant les moyens de communication traditionnels en point à point. Cette solution, utilisée dans les applications de messagerie, n'est pas efficiente dans le contexte des réseaux locaux qui disposent d'opérations élémentaires de bas niveau pour transmettre un message à un groupe de stations. Dans un contexte d'interconnexion de réseaux, un seul exemplaire du message peut être transporté sur

Diffusion et communication de groupe - unistra.fr

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diffusion et communication de groupe - unistra.fr

Diffusion et communication de groupeMécanismes et protocoles

Raymond Schneider

DépcJrtement Informatique, IUT Strasbourg Sud, Université Robert Schuman72, route du Rhin, F67400 Illkirch-Graffenstaden, FranceCentre Réseau et Communication, Université Louis Pasteur7, rue Descartes, F67084 Strasbourg Cedex, FranceAdresse électronique: [email protected]

Résumé. Les mécanismes de diffusion existenl dans les couches basses des réseaux locauxnormalisés. Les applications de communication de groupe peuvenl tirer parti de leurutilisation. L'architecture en couches du modèle OS/ permet d'inlroduire progressivemenl cesmécanismes ainsi que les problèmes liés à la mise en œuvre de telles applications. Lesdiverses techniques disponibles sonl passées en revue en parcouranl de bas en haut lescouches du modèle.Mots-clés: protocoles de diffusion, communication de groupe, modèle OS/.Abstract. Multicast mecanismç are inherenl in the lowestlayers of the normalized local aeranelworks. Group communication applications can take advanlage in using them. The layeredarchitecture of the OS/ mode! is used ta inlroduce these mecanismç step by step, as weil asthe problems occuring when implementing such applications. The differenl techniquesavailable are reviewed by "climbing" the layers ofthe modelfrom bottom to top.Key words : multicast protocols, group communication, OSI model.

1. Introduction

La diffusion est une opération qui pennet à un processus exécuté par une stationd'un système ouvert de communiquer un message à un groupe de processuss'exécutant sur différentes stations distantes. La manière hi plus immédiate de réali­ser une diffusion est de transmettre séparément le message à chacun des membresdu groupe en utilisant les moyens de communication traditionnels en point à point.Cette solution, utilisée dans les applications de messagerie, n'est pas efficiente dansle contexte des réseaux locaux qui disposent d'opérations élémentaires de basniveau pour transmettre un message à un groupe de stations. Dans un contexted'interconnexion de réseaux, un seul exemplaire du message peut être transporté sur

Page 2: Diffusion et communication de groupe - unistra.fr

50 CFIP'93

les routes communes menant aux membres du groupe.Au sein d'un groupe, plusieurs processus peuvent diffuser des messages à un

même instant à des endroits différents du réseau. Ces messages parviendront auxmembres du groupe dans un ordre arbitraire et variable d'un membre à l'autre. Ladiffusion peut fournir un service de livraison qui améliore l'ordre de livraison desmessages et facilite la réalisation d'applications de communication de groupes. Lorsd'une diffusion, la composition du groupe peut varier. Un membre peut s'ajouter ouse retirer du groupe, ou disparaître suite à une défaillance. Une diffusion pourraprésenter une certaine fiabilité en garantissant que les messages seront toujoursdélivrés à tous les membres du groupe.

Cet article étudie les mécanismes liés aux diffusions, les algorithmes et lesprotocoles qui permettent la mise en œuvre d'une communication de groupes àl'intérieur d'un réseau d'interconnexion de réseaux locaux de type Internet[COM 92]. Cette étude parcourt de bas en haut les différentes couches du modèle deréférence de base ou modèle OSI [OSI 85]. Le découpage en couches sert de baseau classement systématique des techniques utilisées par les protocoles de diffusion.Ce classement s'effectue par rapport aux services rendus par chacune des couches.Une version plus détaillée de la synthèse présentée ici est donnée dans [SCH 93A]

Les mécanismes disponibles dans la couche physique et la couche liaison des ré­seaux locaux actuels (ROL 91] et futurs [A KA 91] sont brièvement rappelés. Puis lesproblèmes posés par la mise en œuvre de ces mécanismes sont abordés danschacune des couches supérieures (réseau, transport et session). Finalement, lesapplications qui exploitent la diffusion et leurs activités sont caractérisées.

2. Les couches Physique et Liaison de Données

La couche physique est concernée par la transmission des signaux sur le supportphysique reliant les stations. Les supports de type multipoint relient un ensemble destation et ont la faculté de diffuser des signaux à un groupe de stations en raison dela nature même du support et du procédé de télécommunication. Les supports detype point à point ne permettent la communication qu'entre les deux stationsreliées. Dans les réseaux utilisant ces supports, des équipements intermédiaires ourépéteurs réalisent la diffusion des signaux vers les autres stations.

Au niveau liaison de données, les mécanismes d'adressage permettent la pratiquede la diffusion. Ainsi, la notion d'adresse de diffusion définit un groupe de stationsau sous-niveau de contrôle d'accès au support("Medium Access Control" ou MAC).L'adresse de diffusion globale ou "broadcast" désigne l'ensemble de toutes lesstations reliées à un réseau local. Les adresses de diffusion sélective ou "multicast"sont associées à un sous-ensemble de ces stations, qui peut varier dynamiquementau gré des activations et désactivations des adresses de diffusion par les stations. Ladiffusion consiste en l'émission sur le support physique d'une seule unité deprotocole (PDU) dont l'adresse de destination est une adresse de diffusion. Cetteunique PDU sera acceptée et traitée par toutes les stations ayant activé l'adresse dediffusion correspondant à ce groupe, et ignorée par toutes les autres.

Au sous-niveau de contrôle de la liaison 10gique("Logical Link Control" oULLC), l'adresse de diffusion définit un groupe de liaisons parmi les liaisons logiquesgérées par la station.

Page 3: Diffusion et communication de groupe - unistra.fr

CFIP'93 51

3. La couche Réseau

La couche réseau est responsable de l'acheminement de paquets entre les stationsqui ne sont pas directement reliées. Le protocole IP a donné lieu à des extensions[RFC 1112] utilisant les capacités de diffusion offertes par les réseaux locaux auniveau liaison de données. Le modèle proposé pour cette extension précise la notionde groupe, le type d'adressage utilisé et les extensions à l'interface de service pour lagestion des groupes. La suite présente les adaptations nécessaires pour effectuer leroutage des paquets destinés à des groupes. Les divers algorithmes de routage(DCh 90] tendent à optimiser le délai d'acheminement et de réduire le nombre totalde paquets transmis pour réaliser la diffusion. Idéalement un paquet est délivré àchaque membre du groupe de destination par le plus court chemin entre l'expéditeuret le membre du groupe. Débutant par un unique paquet, le paquet est recopiéchaque fois que les routes vers des membres individuels divergent. La recopie n'esteffectuée que si elle est nécessaire. Quand plusieurs membres partagent un segmentde chemin initial, un seul exemplaire du paquet est expédié sur le tronçon commun.

3.1. Routage par vecteur de distance

Pour effectuer un routage par vecteur de distance ou "distance-vector routing"[RFC 1075], les routeurs maintiennent une table indiquant pour chaque destinationle nombre de sauts - ou le délai - pour atteindre la destination, ainsi que l'adresse etle lien du prochain routeur. Périodiquement chaque routeur envoie un paquet deroutage diffusant cette table sur chaque lien incident. Les routeurs voisins peuventainsi compléter leur propre table lorsqu'une route plus courte est proposée.

Un routeur ne propage un paquet de diffusion sur les autres liens que s'il estarrivé par le lien de plus court chemin vers l'expéditeur ("Reverse Path Flooding").Mais les routeurs peuvent partager certains liens, et ainsi créer des doublons sur cesliens. Sur un lien donné, on distingue pour chaque expéditeur un routeur parent quiest le routeur étant à la plus faible distance de cet expéditeur. Seul le routeur parentpour un expéditeur, relativement à un lien, propage les paquets de diffusion sur celien ("Reverse PaÙl Broadcasting").

Ces méthodes envoient des paquets de diffusion sur des liens ne comportant pasde membres du groupe de destination. Il est possible de supprimer de l'arbre dediffusion les réseaux atteints par ces liens ("Truncatcd Reverse Path Broadcasting").Après la première diffusion, certains routeurs peuvent propager un avis de non­appartenance pour un couple (expéditeur, groupe) et éviter aux futurs paquets detraverser certaines parties de l'arborescence ("Reverse PaÙl Multicasting").

3.2. Routage par état des liens

Pour le routage par état des liens ("Link-State Routing") chaque routeur gèrel'état de ses liens incidents (marche/arrêt, trafic, ... ). Lorsque l'état d'un lienchange, le routeur diffuse le nouvel état à tous les autres routeurs. Chaque routeurpeut ainsi déterminer la topologie complète du réseau à partir de laquelle il construitl'arbre de recouvrement minimal dont il est la racine. De cet arbre il déduit le plus

Page 4: Diffusion et communication de groupe - unistra.fr

52 CFIP'93

court chemin de lui-même à toute destination. Pour la diffusion sélective, chaquerouteur ajoute dans l'état d'un lien l'ensemble des groupes qui ont un membre surce lien. Lorsqu'un nouveau groupe apparaît ou disparaît, ce nouvel état est diffuséaux autres routeurs. Pour un groupe donné, chaque routeur peut ainsi calculerl'arbre de recouvrement minimal et le plus court chemin d'un expéditeur à cegroupe. S'il est inclus dans cet arbre, il peut déterminer les liens à utiliser pour leroutage.

Les réseaux très grands sont organisés hiérarchiquement en sous-domaines deroutage [MOY 91]. Les informations d'appartenance aux groupes sont spécifiques àchaque sous-domaine et doivent être transportées d'un sous-domaine à l'autre. Laconstruction des arbres de recouvrement se fait à partir d'informations incomplètes.Les routeurs se situant à la frontière entre deux sous-domaines doivent fabriquer desroutes à partir d'arbres différent".

4. La couche Transport

La couche transport permet la transmISSIOn de messages en cachant lesparticularités des réseaux traversés. Les services rendus permettent la transmissionsans perte et en séquence des messages même lorsque les réseaux traversés ne sontpas fiables ou ne respectent pas la séquence d'émission. Les techniques detransmission, qui sont celles utilisées en point à point, ne sont pas abordées ici, bienque certaines soient plus adaptées aux applications de diffusion [HAl 91]. La suiteprésente des opérations de transport, des techniques de suppression de pertes et decontrôle de flux, plus spécifiques à la diffusion.

4.1. Opérations de transport spéclfUJues

L'opération de diffusion partielle consiste à diffuser un message à un sous­ensemble quelconque d'un groupe [CPA 88]. Cette opération précise le nombre demembres auxquels il faut délivrer le message et non leur identité. L'opération decollecte permet d'effectuer une émission depuis plusieurs sources vers une seuledestination et s'opère en réponse à une diffusion. Ces deux opérations fournissentdes primitives utiles au niveau application. Elles peuvent être réalisées au niveauréseau[RAJ 92] et aider à diminuer le trafic occasionné par la communication degroupe.

La norme GAM-T-103 des réseaux locaux temps réel militaires[GAM-T-I03]définit différentes connexions de niveau transfert pour une topologie multipoint. Surune connexion, l'opération de concentration permet de transmettre les unités dedonnées de service depuis plusieurs membres d'un groupe vers un récepteur uniqueappelé concentrateur. Une seule unité de donnée de service, formée de laconcaténation des unités de données émises, est remise au concentrateur. Lesconnexions peuvent s'établir en mode automatique ou en mode centralisé depuis unémetteur en diffusion vers de multiples réeepteurs, ou depuis plusieurs émetteurs enpoint à point vers un concentrateur. Des connexions en mode automatique peuventaussi être établies entre plusieurs émetteurs en diffusion et plusieurs concentrateurs.

Page 5: Diffusion et communication de groupe - unistra.fr

CFIP'93 53

4.2. Suppression des pertes

4.2.1. Acquittement négatif

Le récepteur acquitte uniquement pour signaler qu'il n'a pas reçu un ou plusieursmessages, lorsqu'il constate une perte suite à une rupture dans la séquence desmessages reçus. Lorsque l'émetteur n'a plus de message à émettre, il devratransmettre à intervalle régulier uri message vide pour permettre aux récepteurs deconstater une perte éventuelle [CMA 84] [KTH 89] [RFC 1301]; il pourra aussidemander explicitement un acquittement positif [XTP 92].

4.2.2. Acquittement positif

Après avoir transmis un message vers un groupe, l'émetteur devra collecter lesacquittements de tous les membres de ce groupe pour s'assurer qu'ils ont bien reçuson message. Pour ceci il devra connaître la liste complète des membres du groupe[HAl 91]. Si la plupart des récepteurs se trouvent sur le même réseau local, ilsrecevront le message et l'acquitteront pratiquement au même instant, en risquant desubmerger, et le réseau local, et l'émetteur, par la salve d'acquittements concurrentsqu'ils provoqueront. Lorsque les groupes sont très grands, on risquera d'observer unphénomène d'implosion appelé "convergecast" et étudié dans [CPA 88]. Ce mêmephénomène s'observe lors de la transmission de réponses suite à une requêtediffusée vers un groupe de processus [DAN 92].

Une autre solution consiste à désigner un récepteur primaire dont la responsabi­lité est d'acquitter positivement, en point à point, le message à l'émetteur [CMA 84].Les autres récepteurs acquittent ensuite négativement au récepteur primaire.

4.2.3. Acquittement par anneau

Les membres sont synchronisés par un anneau virtuel sur lequel circule un jetonqui permet de réaliser la numérotation des messages, la détection des pertes et unacquittement négatif implicite [RAJ 91] [SCH 93B]. Un membre du groupe appeléprimaire prend l'initiative de proposer à l'acquittement une séquence de messages ennotant dans le jeton le numéro du dernier message qu'il a reçu. Au passage du jeton,chaque membre note à la place le numéro du dernier message qu'il a lui-même reçu,lorsque ce dernier est plus petit. Après un tour complet du jeton, si le numéro notédans le jeton est inchangé, le primaire en déduit que tous les membres ont reçu lesmessages; sinon il a la responsabilité de rediffuser le premier message manquant.

4.2.4. Retransmissions

Après détection d'une perte, l'émetteur peut retransmettre en point à point lemessage vers les seuls récepteurs qui n'ont pas acquitté; il peut aussi rediffuser lemessage à l'ensemble du groupe, ce qui provoquera la création de doublons. Lagestion des retransmissions n'est pa'> une tâche réservée à l'émetteur. Dans le cas oùun récepteur primaire a été désigné [CMA 84][RAJ 91], cc dernier pourra prendre encharge la réexpédition du message.

4.2.5. Acquittement diffusé

Les acquittements des récepteurs peuvent être diffusés à l'ensemble du groupe au

Page 6: Diffusion et communication de groupe - unistra.fr

54 CFIP'93

lieu d'être envoyés au seul émetteur. Tous les récepteurs reçoivent ainsi les acquitte­ments transmis par les autres membres du groupe et peuvent les traiter activement.

Combiné avec des techniques de contrôle de flux, l'acquittement diffusé permetde réduire le nombre d'acquittements transmis [XTP 92]. La première de cestechniques est le découragement ("damping"). Un récepteur n'acquitte que lorsqueaucun autre ne l'a déjà fait. Cette technique impose aux récepteurs d'effectuerl'analyse de tous les acquittements. La seconde technique est la temporisation("slotting"). Elle impose au récepteur une attente de durée aléatoire avant ladiffusion d'un acquittement. Cette technique répartit dans le temps les transmissionsdes acquittements; elle améliore l'efficacité du découragement en augmentant laprobabilité de rendre inutile la diffusion de certains acquittements.

5. La couche Session

Son rôle est de synchroniser et d'organiser le dialogue entre entités. La transmis­sion de message au niveau session peut se décomposer en deux phases: le transportqui consiste à faire parvenir le message du site de l'émetteur au site du récepteur, etla livraison qui consiste à délivrer le message au niveau supérieur dans un certainordre et sous certaines conditions. Entre le moment de la réception du message et lemoment de la livraison, le message est déposé dans un tampon. Il peut y séjourner letemps nécessaire au transport des messages qui doivent être délivrés avant lui ou letemps de constater que tous les autres membres l'ont également reçu.

Dans un environnement où plusieurs messages sont émis de manière concurrentevers un même groupe, il peut être important de délivrer les messages dans le mêmeordre à tous les membres pour leur permettre d'obtenir une synchronisation.Lorsqu'un récepteur ou un émetteur est défaillant, il convient de traiter les messagesde manière similaire pour tous les membres en ne délivrant les messages que s'il estpossible de garantir une certaine fiabilité au sein du groupe. Outre les défaillances,l'abandon volontaire par l'un des membres ou l'adhésion d'un nouveau membrepeuvent modifier la composition du groupe au cours de la communication. La suiteprécise les fonctions de synchronisation, de fiabilité et de gestion des groupes.

5.1. Synchronisation

Lorsque plusieurs émetteurs transmettent simultanément des messages vers ungroupe, les messages vont parvenir aux membres dans un ordre arbitraire et variabled'un membre à l'autre. Les messages seront ensuite délivrés au niveau supérieurdans un ordre appelé ordre de livraison. L'ordre de livraison pourra différer del'ordre de réception. Si les membres n'ont aucune contrainte de synchronisation àrespecter, l'ordre de livraison peut lui aussi être arbitraire et variable. Une manièrede définir des contraintes de synchronisation à l'intérieur d'un groupe est d'imposerun ordre de livraison auquel devront se conformer tous les membres du groupe.

Pour obtenir la synchronisation voulue, les membres du groupe sont amenés àcoopérer. Le contrôle est dirigé par les émetteurs ou par les récepteurs, ou encorepar tous les membres du groupe. Un membre particulier du groupe ou primairecentralise parfois le contrôle de cette coopération. Le primaire est désigné soit

Page 7: Diffusion et communication de groupe - unistra.fr

CFIP'93 55

définitivement soit temporairement par le passage d'un jeton. La suite précise lespropriétés que peut vérifier un ordre de livraison et les diverses techniquespermettant de les respecter.

5.1.1. Les ordres de livraison

On distingue trois types d'ordres de livraison:

- l'ordre local qui respecte l'ordre d'émission local de chaque émetteur. Si unémetteur donné transmet deux messages A et B, le message A sera délivré avant lemessage B chez tous les récepteurs. Cet ordre peut s'obtenir en utilisant lanumérotation séquentielle du niveau transport.

- l'ordre causal qui respecte la causalité entre les messages [LAM 78]. Si unmessage A d'un émetteur provoque l'émission d'un message B par un autre émetteur,le message A sera délivré avant le message B chez tous les récepteurs.

- l'ordre total ou global qui respecte un ordre arbitraire, mais identique pour tousles membres du groupe. Chaque membre du groupe délivre les messages enrespectant cet ordre arbitraire. Il n'y a, a priori, aucune raison pour que l'ordrearbitraire choisi soit un ordre local ou causal.

Les contraintes de synchronisation respectées au sein d'un même groupe ne sontplus vérifiées pour un ensemble de groupes possédant des membres communs. Eneffet un message A à destination d'un groupe G et un message B à destination d'ungroupe H, peuvent être délivrés dans l'ordre AB ou BA par des membres communsaux groupes G et H. Ainsi même si l'ordre global reste respecté séparément danschacun des groupes G et H, il n'est pas forcément respecté à l'intérieur de l'ensembleformé par les deux groupes G et H. On dira que l'ordre est respecté pour desgroupes multiples si ses propriétés sont conservées pour les membres communs àplusieurs groupes, et qu'il est respecté pour un groupe unique sinon.

Une définition formelle de ces notions est donnée dans [FrO 92]; il est montréqu'un protocole de diffusion sélective respectant un ordre local et un ordre totalrespecte aussi l'ordre causal, pour un groupe unique, et pour des groupes multiplessi l'ordre total est strict.

5.1.2. Contrôle de la synchronisation par les émetteurs

La première technique est distribuée et laisse le contrôle de la synchronisation àl'émetteur du message. A réception du message, chaque membre associe uneestampille croissante au message reçu et la renvoie à l'émetteur. L'émetteur affecteau message une estampille définitive en calculant la valeur maximum parmi lesestampilles renvoyées. Il diffuse alors l'estampille définitive qui fixe l'ordre delivraison du message. Les protocoles respectant l'ordre total pour des groupesmultiples définis dans [BJO 87] [MAN 91] utilisent cette technique.

La seconde technique est centralisée et consiste à élire un émetteur primaire, quia pour rôle d'affecter un numéro de séquence unique et croissant aux messages. Unémetteur transmet en point à point le message vers le primaire, qui le séquence et lediffuse au groupe. Les récepteurs acquittent négativement lorsqu'ils détectent unerupture de séquence. Cette technique est utilisée dans [KTH 89] pour définir unprotocole respectant l'ordre total pour des groupes multiples. Le primaire peut aussidélivrer des jetons de numérotation sur demande des émetteurs [RFC 1301]. Une

Page 8: Diffusion et communication de groupe - unistra.fr

56 CFIP'93

variante [GSP 91] consiste à construire un graphe de propagation sur lequel unémetteur primaire désigné pour chaque groupe diffuse les messages. Les nœudsintermédiaires numérotent les messages au fur et à mesure de leur transport et lesfusionnent aux messages d'autres groupes. L'ordre de livraison est total pour desgroupes multiples et est connu dès la réception du message. Ces derniers protocolesrespectent aussi l'ordre causal [FrO 91].

5.1.3. Contrôle de la synchronisation par les récepteurs

Une solution centralisée est proposée dans [CMA 84] et définit un protocolerespectant l'ordre total pour un groupe unï'que. Un récepteur primaire est élu et a laresponsabilité de la numérotation et des retransmissions éventuelles. Cetteresponsabilité est tournante par passage d'un jeton entre les récepteurs. L'émetteurdiffuse son message vers le groupe. Le récepteur primaire acquitte positivement lemessage à l'émetteur et assigne une estampille unique et croissante au message qu'ildiffuse aux autres récepteurs. L'estampille détermine l'ordre de livraison et permetaux récepteurs de détecter les pertes et d'acquitter négativement le message aurécepteur primaire qui se charge alors de la retransmission. Une solution distribuéeconsiste à lancer entre les récepteurs une phase de vote qui permet de déterminer sile message peut être délivré [LBR 91].

5.1.4. Contrôle de la synchronisation par comptage

Cette technique est distribuée et fondée sur le comptage [RAy 91]. Elle estutilisée pour définir le protocole CBCAST qui respecte l'ordre causal pour desgroupes multiples [BSS 91]. Chaque membre d'un groupe entretient une horlogevectorielle virtuelle qui reflète l'historique local des communications encomptabilisant les messages émis par chacun des membres du groupe. Cette horlogeest associée à tout message émis. Elle permet aux récepteurs de déterminer l'ordrede livraison et de réactualiser leur propre horloge. Les émetteurs envoientrégulièrement des messages vides lorsqu'ils n'ont rien à transmettre pour permettreaux récepteurs d'actualiser leur horloge.

5.1.5. Contrôle de la synchronisation par la circulation d'un jeton

Le protocole ABCAST [BSS 91] utilise CBCAST pour fournir un ordre total etcausal pour des groupes multiples. Un jeton circule entre les émetteurs et désigne unémetteur primaire. Les émetteurs utilisent CBCAST pour diffuser les messagesABCAST. Si l'émetteur ne détient pas le jeton, il marque le message "non livrable"avant de le diffuser par CBCAST. L'émetteur primaire traite les messages ABCASTcomme des messages CBCAST et les délivre dès que possible au niveau supérieur.Ensuite, l'émetteur primaire diffuse par CBCAST la liste de livraison qui contient laliste des messages ABCAST délivrés et leur ordre de livraison. Puis il passeéventuellement le jeton. La liste de livraison dépend de manière causale desmessages ABCAST qui y figurent. Comme CBCAST respecte l'ordre causal, lesrécepteurs reçoivent d'abord tous ces messages et les classent "non livrable".Lorsqu'ils obtiennent la liste de livraison, ils marquent les messages "livrable" et lesdélivrent dans l'ordre indiqué par la liste.

Une autre solution repose sur l'établissement d'un anneau virtuel [RAI 91][SCH 93B]. Dans le protocole TPM [RA] 911, un jeton circule sur l'anneau entre les

Page 9: Diffusion et communication de groupe - unistra.fr

CFIP'93 57

membres du groupe, émetteurs et récepteurs. Ce jeton représente un privilèged'émission et est utilisé pour la numérotation séquentielle et la suppression despertes. L'émetteur doit disposer du jeton pour émettre un message. Ce message estémis avec le numéro de séquence indiqué par le jeton. Lorsque le message arrivechez un récepteur, celui-ci le délivre immédiatement s'il respecte la séquence. Sinonle récepteur le place dans un tampon et le délivre après réception des messagesprécédents. Ce protocole respecte un ordre total et local pour un groupe unique maispeut être adapté pour fonctionner avec des groupes multiples.

5.1.6. Contrôle de la synchronisation par horloges

Le protocole [CAS 86] suppose que chaque membre dispose d'une horlogelocale et qu'il existe une borne supérieure pour le délai de transfert. L'émetteur jointà chaque message diffusé une estampille liée à son horloge locale. Le récepteur peutdéduire le moment auquel tous les récepteurs devraient avoir reçu le message enajustantl'estarnpille avec le délai de transfert maximum et la dérive des horloges. Ildélivre le message à ce moment-là. Tous les récepteurs respectent ainsi un ordretotal de livraison pour des groupes multiples.

5.2. La fwbilité des processus

5.2.1. Les modes de défaillance des processus

Le mode de défaillance le plus simple est la défaillance par arrêt. Dans ce modeles processus opérationnels ne réalisent jamais d'actions d'une manière incorrecte etne manquent jamais de faire toutes les actions qu'ils sont supposés réaliser. Unemachine peut s'arrêter soudainement en interrompant l'exécution de tous lesprocessus dont elle assurait le déroulement. Les processus opérationnels des autresmachines sont alors capables de détecter cet arrêt. Tous les processus opérationnelssavent diagnostiquer d'une manière consistante l'état de toutes les autres machines(opérationnelles ou défaillantes). Une machine défaillante peut redevenir opération­nelle au bout d'un certain temps et "ressusciter" les processus défaillants.

Un mode plus complexe est la défaillance par omission qui empêche leprocessus d'émettre ou de recevoir un message. Elle correspond à la défaillance d'unlien de communication ou à un problème de débordement des tampons. Si ladéfaillance est temporaire, intermittente, ou exceptionnelle, elle peut être assimilée àune perte de message par le réseau - un problème qui est réglé au niveau transport.

Dans le mode de défaillance arbitraire ou de type byzantin, les processuspeuvent envoyer des messages erronés voire même contradictoires. Ce type dedéfaillance est rarement pris en considération dans les protocoles de diffusion.

Généralement les protocoles donnent des garanties de comportement en cas dedéfaillance. II est souvent difficile de les comparer, car ces garanties ne sont pastoujours clairement spécifiées et leurs définitions sont parfois "by;r.antines".

5.2.2. Les garanties de délai

Ces garanties fixent une borne maximale au temps de livraison d'un message,soit à un membre particulier, soit à une majorité de membres, soit à l'intégralité des

Page 10: Diffusion et communication de groupe - unistra.fr

58 CFIP'93

membres. Ce temps est spécifié par rapport au moment de l'émission ou de laréception du message. La livraison présente la propriété de terminaison lorsque lesmessages sont livrés à tous les membres opérationnels en un temps borné.

5.2.3. Les garanties d'accord

Il est parfois important que tous les membres traitent un message de manièreconsistante; il y a accord unanime lorsque le message est délivré soit à tous lesmembres opérationnels du groupe, soit à aucun. Mais encore faudrait-il préciser ceque l'on entend par "tous les membres opérationnels". Cela peut être les membresopérationnels au moment de l'émission du message ou au moment de la livraison.Lorsqu'un membre est défaillant est-il définitivement exclu du groupe? Si desmembres "ressuscitent" et rejoignent à nouveau le groupe, doivent-ils (peuvent-ils)rattraper les messages manquants? Au cas où aucun membre ne délivre le message,il faut préciser quelles sont les causes de non-livraison acceptées; on peut, parexemple, ne tolérer que la défaillance de l'émetteur du message[BSS 91].

Le modèle formel cité dans [GSP 91] distingue plusieurs niveaux de garanties.Au premier niveau aucune garantie n'est donnée sur la fiabilité des livraisons. Audeuxième niveau les messages sont délivrés à tous les membres opérationnels dansl'ordre fixé. Les membres défaillants, qui redeviennent opérationnels, ne rattrapentpas les messages délivrés pendant leur défaillance. L'ordre de livraison n'est doncpas forcément respecté par ces membres. Au troisième niveau les messages sontdélivrés à tous les membres, opérationnels ou non, dans l'ordre fixé. Avant unedéfaillance, un membre peut temporairement délivrer des messages dans un ordreincorrect. Lorsqu'il redevient opérationnel, il répare les livraisons inconsistantes etrattrape les messages manqués. Au dernier niveau les messages sont délivrés à tousles membres dans l'ordre fixé et il n'y a jamais d'inconsistance.

La garantie d'accord peut être plus faible: le message n'est délivré à tous lesmembres du groupe que si une majorité de membres l'ont déjà délivré. Elle peutaussi être plus forte comme pour la garantie d'uniformité[MAN 91]: le message estdélivré aux membres opérationnels si l'un des membres, opérationnels ou non, l'adélivré. Un degré de stabilité peut être associé à une diffusion en fonction dunombre de membres qu'elle a atteint [BSS 91]. Le groupe peut aussi présenter unepropriété de résilience en tolérant un nombre défini de défaillances [GSP 91].

5.2.4. Les garanties de fiabilité

Elles combinent les garanties précédentes. Une livraison est atomique [JBI 90][LBR 91] [GSP 91][BSS 91] si, lorsque l'un des membres opérationnels d'un groupea délivré un message, tous les autres membres opérationnels le délivrent au boutd'un temps fini.

[CAS 86] présente une classification des protocoles de diffusion. Un protocolede diffusion fiable permet un accord unanime et la terminaison (i.e. l'atomicité de lalivraison). Un protocole de diffusion atomique est un protocole de diffusion fiablequi respecte un ordre total. Un protocole de diffusion causale est un protocole dediffusion fiable qui respecte un ordre causaI.

Page 11: Diffusion et communication de groupe - unistra.fr

CFIP'93 59

5.3. Les modes de défaillance du réseau

La connexion entre certains membres d'un groupe peut être temporairementrompue. Toute tentative de transmission vers les membres isolés va alors échouer.Un membre opérationnel pourra difficilement distinguer ce cas d'une défaillance pararrêt du destinataire. Les membres séparés doivent présenter un comportementprévisible, généralement l'arrêt. Dans certains cas ils tenteront de réorganiser legroupe, et des sous-groupes isolés pourront se former.

Ce phénomène de partition des groupes [DAV 90] peut être évité par destechniques basées sur les quorums. Pour la diffusion, il est souhaitable qu'une seulepartition dite majoritaire continue à opérer. Si aucune partition n'est majoritaire lacommunication est mise en veilleuse. Dès que suffisamment de nouveaux membresauront adhéré à une partition Pour la rendre majoritaire, la communication pourrareprendre. Lorsque la liaison est rétablie, la fusion des partitions doit être possible.

5.4. La gestion des groupes

Les principes décrits jusque-là pouvaient considérer le groupe comme unecollection stable de membres qui prenaient tour à tour le rôle d'émetteur et derécepteur. On peut cependant distinguer IHAJ91] les groupes ouverts, où lesémetteurs ne sont pas forcément membres par opposition aux groupes fermés, où laqualité de membre est obligatoire pour diffuser au groupe.

La composition du groupe peut évoluer avec le temps. Un nouveau membre peutse rajouter ou quitter volontairement le groupe. Le groupe est alors dynamique paropposition aux groupes statiques dont la composition ne change pas durant la ses­sion de communication. GAM-T-103 définit un service de transfert qui fournit unequalité de service dont l'un des paramètres est la condition d'intégrité du groupeactif. Cette condition spécifie la constitution minimale du groupe actif pour uneconnexion. Si cette condition n'est pas satisfaite, aucun scénario de communicationne peut être invoqué. Lorsqu'un membre du groupe actif cause la dégradation de laqualité de service demandée, il est exclu du groupe actif.

La gestion des groupes dynamiques rajoute un niveau de complexité aux notionsde fiabilité et de synchronisation. Les protocoles utilisant un graphe de propagationou un anneau devront le réorganiser, ceux nécessitant la liste exhaustive desmembres devront la réactualiser. Et rien n'empêche une défaillance de survenirjustement à ce moment-là.

Il devient nécessaire de préciser la sémantique exacte de la propriété d'atomicité,l'attribut "tous les membres" devenant encore plus imprécis. Dans [BSS 91] lanotion de vue d'un groupe est la liste des membres opérationnels d'un groupe à unmoment donné. Une séquence de vues est une suite de vues dans laquelle chaquevue diffère de la suivante par l'ajout ou le retrait d'un seul membre. La diffusiond'un message d'initialisation d'une nouvelle vue signale les modifications,volontaires ou consécutives à une défaillance, survenues dans la composition dugroupe. Dès que tous les membres de la nouvelle vue ont acquitté ce message, legroupe est dans un état stable. Les nouvelles émissions sont bloquées tant que legroupe nc s'est pas stabilisé. Toutes les propriétés de synchronisation et de fiabilitéseront respectées par rapport à "tous les membres" de la nouvelle vue.

Page 12: Diffusion et communication de groupe - unistra.fr

60 CFIP'93

6. La couche Application

6.1. Les domaines d'application

Le domaine d'application le plus concerné par la diffusion est le domaine dessystèmes distribués [MUL 90]. Les systèmes de gestion de base de données distri­bués sont typiques à cet égard. La diffusion leur permet la recherche d'un objetparmi un ensemble de serveurs, ou encore la notification d'un événement à ungroupe de processus. Plusieurs serveurs peuvent traiter une interrogation en paral­lèle si elle a été diffusée. La diffusion accélère la mise à jour de copies multiplesd'objets ainsi que la distribution des scrutins pour un vote. Les systèmes de gestionde fichiers distribués, les systèmes à tolérance aux fautes, les applications de calculdistribué, les ateliers de génie logiciel, les serveurs des environnements distribués,serveurs de temps, de noms, de ressources, peuvent exploiter ces possibilités. Lesapplications de communication entre utilisateurs telle que la messagerie électro­nique, les conférences électroniques, certains jeux, les logiciels de collaborationutilisent la diffusion, soit pour transporter plus efficacement les informationséchangées, soit pour faciliter les interactions entre des groupes d'utilisateurs.

6.2. Les catégories de processus

Les systèmes distribués distinguent quatre catégories de processus [AND 91J.Les processus filtres disposent de ports d'entrée et de ports de sortie sur lesquels

ils reçoivent et envoient des flots d'informations. A partir du flot d'informations reçusur chaque port d'entrée ils élaborent d'autres flots d'informations qu'ils déposent surles ports de sortie. Une application distribuée peut être construite en interconnectantles ports de sortie sur les ports d'entrée de différents processus filtres.

Les processus clients sont des processus déclencheurs et les processus serveurssont des processus réactifs. Les clients et les serveurs interagissent. Un client émetune requête vers le serveur et le serveur rend le service correspondant à cetterequête. Le client décide du moment où il lance sa requête, puis généralement attendla réponse du serveur. Le serveur par contre attend une requête avant d'agir. Unserveur est un processus qui ne se termine jamais et qui est capable de servirplusieurs clients simultanément.

Les processus pairs font partie d'une collection de processus semblables quiinteragissent pour obtenir un certain résultat. L'interaction entre processus pairs estplus symétrique que pour les clients et les serveurs. Un processus pair peut à toutmoment avoir l'initiative d'un échange ou recevoir des informations en provenanced'un autre processus pair.

6.3. Les activités de diffusion des processus

6.3.1. La distribution d'information

Un processus source peut utiliser la diffusion pour transporter de l'information. vers de multiples destinations. La diffusion a alors pour objet d'éviter le transportindividuel des informations vers chaque destinataire et de gagner du temps en

Page 13: Diffusion et communication de groupe - unistra.fr

CFIP'93 61

augmentant le degré de parallélisme. Pour un processus filtre, par exemple, le flotd'information d'un port de sortie peut être diffusé vers les ports d'entrée d'un groupede plusieurs autres processus filtres. Pour un processus client, une demande de miseà jour peut être diffusée aux serveurs responsables d'une même donnée. Pour unprocessus serveur, les mêmes données peuvent être diffusées à un groupe de clients.Un processus pair peut notifier un événement particulier aux autres processus pairsde cette manière.

6.3.2. La collecte d'information

Un processus source peut aussi utiliser la diffusion pour obtenir de l'informationde la part de multiples processus destinataires. La diffusion évite de contacterindividuellement les destinataires, mais le processus source doit être capable degérer des réponses multiples. Pour les processus clients, la diffusion de la requêtedonne lieu à une ou plusieurs réponses qui lui seront transmises en point à point. Siun seul serveur est responsable de l'information recherchée, le client peut obtenir auplus la réponse de ce serveur. Si l'information recherchée est recopiée sur plusieursserveurs, le client peut obtenir plusieurs réponses identiques, dont une au moinsl'intéresse, vraisemblablement la première arrivée. Si l'information est distribuée surplusieurs serveurs, il doit obtenir la réponse de tous les serveurs pour reconstituerl'information. Les processus pairs peuvent obtenir des informations de la part del'ensemble du groupe ou d'une partie seulement. En réponse, l'information pourraêtre diffusée à l'ensemble de tous les pairs plutôt qu'au seul demand~ur.

6.3.3. La localisation

Lorsque le processus source connaît l'ensemble des destinataires, il peut utiliserune suite de transmissions point à point au lieu de la diffusion pour réaliser les deuxactivités précédentes. Souvent, l'identité, la localisation des processus serveurs oupairs, leur nombre, ne peuvent pas être connus à l'avance ou pourront varier dans letemps. Ces processus ont donc toutes les qualités requises pour former un groupedynamique. S'ils ne sont pas identifiables individuellement, ils le deviennent parl'intermédiaire du groupe dont ils seront membres. L'identité de ce groupe peut êtreconnue par le processus source ou obtenue dynamiquement. Une diffusion àl'intérieur de ce groupe permet alors d'atteindre les processus de destination. Ladiffusion n'est pas seulement un outil de transport efficace, mais est aussi un outil delocalisation car il permet de communiquer avec un ou plusieurs destinataires donton ne connaît ni la situation, ni l'identité.

7. Conclusion

La structuration en couches et la définition des services fournis par chaquecouche, tels qu'ils sont décrits dans le modèle de référence de base, peuvents'appliquer à la description des applications de communication de groupe. Denouvelles fonctions particulières à ce type de communication peuvent êtreintroduites. Ce sont notamment les fonctions relatives à l'acquittement diffusé, lafonction de gestion de groupes dynamiques, la fonction de respect de l'ordre delivraison (ou de synchronisation) et la fonction de garantie de la fiabilité.

Page 14: Diffusion et communication de groupe - unistra.fr

62 CFIP'93

Le modèle fournit alors un support pour le classement des techniques quipermettent d'assurer ces fonctions. En effet ces techniques sont habituellementdécrites au seul niveau où opère le protocole qui les utilise. Les isoler à un niveauconceptuel peut permettre de mieux caractériser le comportement des protocoles dediffusion. Ainsi, même s'il reste abstrait et ne correspond pas à la manière deconstruire ou de décrire les protocoles, le découpage en couches peut servir de basecommune et donner une vision plus systématique du domaine de la communicationde groupes. Cette base peut fournir des éléments de comparaison entre les différentsprotocoles et faciliter leur évaluation [MAy 92]. Cette même base pourra êtreutilisée durant la phase conceptuelle de la réalisation de nouveaux protocoles.

Sur le plan didactique, "l'ascension" des différentes couches permet unenchaînement logique et progressif des notions souvent utilisé dans les ouvrages debase [ROL 91][MLE 92][TAN 90]. La complexité n'apparaît que peu à peu, lesproblèmes et les solutions s'enchaînent. La référence aux couches du modèle permettoujours de se situer par rapport aux communications point à point, et ainsi de seraccrocher à des notions mieux maîtrisées.

Remerciements. Je tiens à remercier le Professeur Jean-Jacques Pansiot de l'UniversitéLouis Pasteur de Strasbourg d'avoir accepté d'examiner cet article ainsi que les membres ducomité de lecture pour les améliorations qu'ils m'ont permis d'apporter à cet article.

Bibliographie

[AKA 91] B.W.ABEYSUNDARA, A.E.KAMAL, High-Speed Local Area Networks and theirPerformance: A survey, ACMComputing Surveys, vo123 n02, p. 47-76, lun 1991

[AND 91] G.R.ANDREWS, Paradigmsfor Process Interaction in Distributed Programs, ACMComputing Surveys, vol 23 n O l, p. 49-90, Mar 1991

[BIo 87] K.P.BIRMAN, T.A.loSEPH, Reliable Communication in the Presence of Failures,ACMTransactions on Computer Systems, voIS nO l, p. 47-76, Feb 1987

[BSS 91] K.BIRMAN, A.SCHlPER, P.STEPHENSON, Lightweight Causal and Atomic GroupMulticast, ACM Trans. on Computer Systems, vol 9 n03, p. 272-314, Aug 1991

[CAS 86] F.CRISTlAN, H.AGHILI, R.STRONG, D.DoLEY, Atomic Broadcast: From SimpleMessage Diffusion to Byzantine Agreement, IBM Res.Report RIS244(S4244), luI 1986

[CMA 84] J.CHANG, N.F.MAXEMCHUK, Reliable Broadcast Protocols, ACMTransactions onComputer Systems, vol 2 n03, p. 2S1-273, Aug 1984

[COM 92] D.CüMER, TCPIIP Protocoles, Architecture, Applications, Ed. InterEditions,60Op., 1992

[CPA 88] I.CRüWCRüFI', K.PALlwüDA, A Multicast Tramport Protocol, ACM ComputerCommunication Review, SIGCOMM 88, vol 18 n04, Aug 1988

[DAN 92] P.DANZIG, Flow Control for Limited Buffer Multicast, Draft submitted to IEEETrans. on Software Engineering, lS p., luI 1992

[DAY 90] S.DAYIDSON, Replicated Data and Partition Failures dans Distributed Systems,ACM Press, 1990

[OCH 90] S.E.DEERING, D.R.CtIERITON, Multicast Routing in Datagram Internetworks andExtended LANs, ACM Transactions on Computer Systems, vol 8 n02, May 1990

[FTü 92] G.FLüRIN, C.TüINARD, A new way to design causaUy and totaUy orderedmulticastprotocols, ACM Operating System Review, vol 26 n04, p. 77-83, Oct 1992

Page 15: Diffusion et communication de groupe - unistra.fr

CFIP'93 63

[GAM-T-103] Modèle de référence des Réseaux Locaux Temps Réel Militaire, CoucheTransfert, GAM-T-103, Ministère de la défense, République Française

[GSP 91] H.GARCIA-MoIlNA, A.SPAUSTER, Ordered and Reliable Multicast Commu­nication, ACM Transactions on Computer Systems, vol9 n03, p. 242-271, Aug 1991

[HAl 91] M.HAJJAM EL HASSAN!, Un Protocole de Transport MultipoinJ Fiable et Efficace.Thèse de Doctorat, Université Louis Pasteur, Strasbourg, 159p., Fév 1991

[JBI90] T.AJosEPH, K.P.BIRMAN, Reliable Broadcast Protocols, ch.14, p. 293-317, dansDistributed Systems, ACM Press, 1990

[KTH 89] M.F.KAASHOECK, AS.TANENBAUM, S.F.HuMMEL, An Efficient ReliableBroadcast protocol, ACM Operating System Review, vol 23 n04, p. 5-19, Oct 1989

[LAM 78] L.LAMPORT, Time, Clock and the Ordering of EvenJs in a Distributed System,CACM, vol 21 n07, p. 558-565, Jul 1978

[LBR 91] G.LE LANN, G.BRES, Re/iable Atomic Broadcast in Distributed Systems withOmission Faults, ACM Operating System Review, vol 25 n02, p. 80-87, Avr 1991

[MLE 92] J.MARTIN, J.LEBEN, Decnet Phase V: An OSllmplemenJation, Ed.Prentice Hall,1992

[MAN 91] P.MINET, E.ANCEAUME, Analysis of Atomic or Causal Broadcast Protocols,Réseaux et Informatique répartie, vol 1 n03, p. 257-274, 1991

[MAy 92] E.MAYER, An Evaluation Framework for Multicast Ordering Protocols, Ac MComputer Comm. Review, SIGCOMM 92, vol 22 n04, p. 177-187, Aug 1992

[Moy 91] J.MoY, Multicast Extensions to OSPF, Internet Draft, Nov 1991[MUL 90] S.MULLENDER ED., Distributed Systems, ACM Press, 1990[OSI 85] Modèle de Référence de Base, Interconnexion de systèmes ouverts, Système de

traitement de l'information, AFNOR, NF Z 70-0001, Juillet 1985[RAJ 91] B.RAJAGOPALAN, Failsafe Routing and Multicast in Dynamic InJernets, Ph.D.

Thesis , Dept of Computer Science, Univ. of Illinois at Urbana-Champaign, Jul 1991[RAJ 92] B.RAJAGOPALAN, Reliability and Scaling Issues in Multicast Communication,

ACMComputer Comm. Review, SIGCOMM 92, vol 22 n04, p. 188-198, Aug 1992[RAY 91] M.RAYNAL, La Communication Causale dans les Systèmes Répartis, Réseaux et

Informatique répartie, vol 1 n01, p. 87-100,1991[RFC 1075] D.WAITZMANN, C.PARTRIDGE, S.DEERING, Distance Vector Multicast Routing

Protocol, RFC 1075, Nov 1988[RFC 1112] S.DEERING, Host Extensionsfor IP Multicasting, RFC 1112, Stanford, Aug 1989[RFC 1301] S.ARMSTRONG, AFREIER, K.MARZULLO, Multicast Transport Protocol,

RFC 1301, Feb 1992[RoI. 91] P.ROLIN, Réseaux Locaux: normes et protocoles, Ed HERMÈS, 4ème 00., 1991[SCH 93A] R.SCHNEIDER, Exemples de Mise en Oeuvre de la Diffusion, Rapport de

Recherche RR93/06, 30 p., CRI, Université Louis Pasteur, Strasbourg, Juin 93[SCH 93B] R.SCHNEIDER, Un Protocole de Diffusion Fiable, Thèse de Doctorat, Université

Louis Pasteur, Strasbourg", à paraitre(TAN 90] ATANENBAUM, Réseaux: Architectures. Protocoles. Applications, Ed.

InterEditions, 806p., 1990[XTP 92] PROTOCOL ENGINE, XTP Protocol Definition - Revision 3.6, Protocol Engines

Inc., 95 p., Jan 1992

Biographie. Raymond Schneider est enseignant-chercheur en informatique à l'IUT deStrasbourg-Sud depuis 1983; il prépare actuellement un Doctorat en informatique àl'Université Louis Pasteur sous la direction du Professeur Jean-Jacques Pansiot. Le sujet de sathèse est la conception d'un protocole de diffusion fiable.

Page 16: Diffusion et communication de groupe - unistra.fr