La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les algorithmes distribués dans un contexte Multicast Boucif AMAR BENSABER.

Présentations similaires


Présentation au sujet: "Les algorithmes distribués dans un contexte Multicast Boucif AMAR BENSABER."— Transcription de la présentation:

1 Les algorithmes distribués dans un contexte Multicast Boucif AMAR BENSABER

2 Définitions

3 Unicast Envoie de données dun émetteur à un utilisateur particulier Exemples : Courriel, Web

4 Modèle point à point : Any to One

5 Multipoint Un mode de fonctionnement dun service OSI (Open System Interconnection) qui supporte les échanges entre au moins deux utilisateurs dun service OSI

6 Modèle Multipoint : Any to Some Modèle émetteur/récepteur

7 Multicast Envoie de données en une seule fois dun émetteur à plusieurs récepteurs de plusieurs émetteurs à plusieurs récepteurs Multicast = diffusion restreinte

8 Broadcast Envoie des données en une seule fois souvent sans que le récepteur nen fait la demande. La diffusion peut créer linondation du réseau Broadcast = diffusion générale

9 Groupe Multicast Le concept de groupe permet de définir un ensemble dentités comme une seule entité virtuelle donnant la possibilité dappeler tous les membres dun groupe par un seul nom et de communiquer avec eux avec une seule adresse.

10 Modification dun groupe Un groupe peut être statique ou dynamique. IP Multicast gère des groupes dynamiques. Les membres du groupe IP Multicast sont toujours les machines hôtes et non pas les sites ou les sous-réseaux.

11 Les applications Multicast et Internet Application Multicast UDPTCP IP Multicast Liaison de données Physique Non fiable

12 Exigences des applications Multicast Les applications Multicast nont pas toutes les mêmes besoins : pour certaines, la notion de temps est la contrainte principale alors que pour dautres, la livraison des données doit être fiable et ordonnée. De Plus, dans le cas des systèmes multimédia interactifs multi-parties, les multiples flux de données des différentes conversations doivent être synchronisés.

13 Intégrité du Groupe-Actif LAGI spécifie des conditions portant sur la composition du groupe actif. Les conditions dAGI doivent être vérifiées pour permettre le transfert de données. Lorsque lAGI nest plus vérifiée, lassociation de groupe est soit fermée soit suspendue jusquà ce que les conditions soient à nouveau satisfaites. Les conditions suivantes sont des critères possibles dAGI: Quorum : nombre minimal de participants devant faire partie du groupe- actif Maximum : nombre maximal de participants pouvant faire partie du groupe-actif Membres Clefs : un participant devant obligatoirement faire partie du groupe-actif pour considérer que lAGI est vérifiée

14 Topologie dune association Participant

15 Conversation à Diffusion Unidirectionnelle Une conversation ou un unique participant appelé C-participant émet vers tous les autres participants de la conversation. Un seul participant joue le rôle démetteur de données en mode diffusion vers tous les autres récepteurs de la conversation. Tous les autres participants de la conversation sont uniquement récepteurs des données diffusées. Maître Conversation à diffusion unidirectionnelle

16 Conversation à Diffusion Bidirectionnelle Une conversation ou un unique participant émet vers tous les autres participants de la conversation qui peuvent lui émettre des données. Un seul participant de la conversation joue le rôle démetteur de données en mode diffusion vers tous les autres participants de la conversation. Ce participant joue également le rôle de récepteur de données. Tous les autres participants sont récepteurs des données diffusées. Ils sont également émetteurs de données, mais uniquement vers lémetteur en mode diffusion. Maître

17 Conversation à Diffusion Multidirectionnelle Une conversation où tout participant peut émettre des données vers tous les autres participants de la conversation. Chaque participant peut jouer le rôle démetteur en mode diffusion vers tous les autres participants de la conversation. Tous les participants sont récepteurs des données diffusées.

18 Introduction Les couches transport et réseau sont responsables de la remise des données aux applications avec la qualité de service requise par celles-ci. Nous analysons les fonctionnalités générales des couches réseau et transport : Notre analyse sera orientée communication de groupe, Nous verrons comment les concepts classiques point à point peuvent sétendre aux communications de groupe. Nous étudierons brièvement les aspects liés à lordonnancement, la fiabilité, latomicité, le contrôle de flux, le routage, la qualité de service et la sécurité.

19 Communication de Groupe (1) But : chaque membre dun groupe doit recevoir une copie de tous les messages adressés au groupe Accord : sur lensemble des messages reçus et leur ordre Communication de groupe nécessite : Coordination On se restreint aux groupes de processus dont leur appartenance est connue (groupes statiques)

20 Groupes : Communication de Groupe (2) Groupe ferméGroupe ouvert Système : collection de processus pouvant se communiquer dune façon fiable sur des liens de communication point-à-point Processus : membres de groupes, peuvent subir une panne totale

21 Communication de Groupe (3) multicast(g, m) : envoie le message m à tous les processus du groupe g Primitives : sender(m) : identificateur unique qui désigne lémetteur du message m group(m) : identificateur unique du groupe auquel est destiné le message m deliver(m) : livre le message m au processus (le message nest pas consommé directement par le processus)

22 Communication de Groupe de Base But : Garantir quun processus non-défaillant livre le message reçu tant que lémetteur nest pas en panne Primitives : B_multicast, B_deliver Implémentation : Utilisation dune communication point-à-point fiable Pour chaque processus p g, send(p, m); B_multicast(g, m) B_deliver(m) à p receive(m) par p Pas fiable : des accusés de réception peuvent être supprimés (cas du buffer plein et il y a plusieurs processus)

23 Communication de Groupe Fiable Intégrité : un processus correct P livre le message m au plus une fois Propriétés à satisfaire : Validité : si un processus correct diffuse un message m, alors il sera éventuellement livré à sa destination Accord : Si un processus correct livre le message m, alors tous les autres processus corrects dans group(m) livreront éventuellement m Primitives : R_multicast, R_deliver

24 Communication de groupe Ordonnée Si des sources de sorties multiples demandent en parallèle des mises à jour, il peut être important que ces mises à jour soient délivrées dans le même ordre à tous les récepteurs. Exemple : Mise à jour des copies de données distribuées en utilisant les communications de groupe. Les délais de propagation différents et les erreurs de transmission, peuvent donner des copies incohérentes à un instant donné. But : Tous les destinataires reçoivent les messages, mais surtout les traitent dans le même ordre.

25 Problème dordonnancement Multicast Ordonnancement des messages originaires dune même source Si les messages m1 et m2 sont envoyés par la même source et sils sont adressés au même groupe multicast, alors les processus de destination vont les recevoir dans lordre de leur émission (FIFO). Ordonnancement des messages originaires de sources multiples Si les messages m1 et m2 sont adressés au même groupe multicast, alors tous les processus de destination vont les recevoir dans le même ordre (même sils arrivent de sources différentes). Cet ordre total peut ou non respecter pour chaque source lordre FIFO. Ordonnancement des messages originaires de plusieurs groupes Si les messages m1 et m2 sont délivrés à 2 processus, ils seront délivrés dans le même ordre relatif (même sils arrivent de groupes différents et même sils sont adressés à différents groupes multicast).

26 Processus 1Processus 2Processus 3 Ordonnancement FIFO Si un processus correct exécute multicast(g, m 1 ), puis multicast(g, m 2 ), alors tout processus correct membre de g qui livre m 2 livrera m 1 avant m 2 m1m1 m3m3 m2m2 Temps

27 Ordonnancement FIFO (2) Primitives : FO_multicast, FO_deliver : Nombre de messages envoyés par p au groupe g SgSg p Implémentation : Utilisation de numéros de séquence Variables maintenues par chaque processus p : : Numéro de séquence du dernier message envoyé au groupe g par q et que p a livré RgRg q Algorithme Ordonnancement FIFO garantie seulement si les groupes ne se chevauchent pas

28 Ordonnancement Total (1) Processus 1 Processus 2 Processus 3 Si un processus correct livre un message m 2 avant de livrer un message m 1, alors tout autre processus correct qui livre m 1 livrera m 2 avant m 1 m1m1 m2m2 Temps Primitives : TO_multicast, TO_deliver

29 Ordonnancement Total (2) Implémentation : Affecter des identificateurs, totalement ordonnés, aux messages transmis Chaque processus ordonne les messages en se basant sur ces identificateurs Méthodes daffectation de ces identificateurs : Processus séquenceur Processus saccordent collectivement sur les numéros de séquence à affecter aux messages

30 La fiabilité La fiabilité concerne le degré de robustesse après loccurrence dune panne ou dun problème durant la communication.

31 La fiabilité Un réseau est dit fiable, sil a les propriétés suivantes : Les messages multicast sont délivrés à chaque station dans le même ordre, sans duplication, ni perte. Chaque message multicast est accepté par les stations respectives dans un maximum de temps (fini), après quoi il est effacé dans la station source.

32 Types de fiabilité Selon le type et la nature de lapplication on peut envisager différents degrés de fiabilité Best effort Absolue Statistique Clé

33 Best effort En cas de perte de données ou derreurs Les données ne sont pas délivrées Il nest pas question de récupérer les erreurs (contraintes temporelles) et les différents récepteurs acceptent les données telles quelles sont Service de diffusion de la télévision et de la radio Ce type de service ne nécessite aucun contrôle particulier et peut être mis en œuvre sans difficulté avec un grand groupe.

34 Fiabilité absolue Assure que les données perdues ou endommagées sont retransmises jusquà ce que lémetteur ait la certitude que tous les récepteurs les ont reçues correctement. Cette technique est très coûteuse Connaissance totale du groupe Gestion individuelles de chacun (adresse individuelle,…) Délai qui peut savérer très long pour certaines applications Réservée aux groupes très petits ou il est indispensable que chaque récepteur doit avoir lintégralité (et lintégrité) des données.

35 Fiabilité statistique ou k- fiabilité Suppose quun certain pourcentage seulement de récepteurs doit avoir les données correctes (éventuellement après retransmission) pour que lémetteur continue la diffusion. Cette technique approche une fiabilité absolue avec moindre coût. Lémetteur na pas besoin de maintenir létat individuel de tous les récepteurs.

36 Exemple Quand un émetteur envoie un message en multicast, il le garde dans une mémoire tampon pendant un certain temps T. Après cette période, lémetteur détermine sil doit retransmettre le message. Sa décision est basée sur lanalyse de létat des récepteurs accumulé durant T. La transmission de données multicast est terminée si une proportion donnée dutilisateurs a reçu les données correctement.

37 Fiabilité-clé Avec la fiabilité statistique, on peut définir des conditions (AGI) sur les participants qui ont correctement reçu les données, par exemple quil y ait k récepteurs parmi les k récepteurs : on parle de fiabilité-clé. Ces récepteurs clés sont à traiter avec une fiabilité absolue. Lors dune téléconférence le professeur est un membre clé, par exemple.

38 Comparaison des fiabilités La technique de fiabilité absolue a un effet négatif sur le débit de transmission Lémetteur ne peut envoyer un message que si tous les récepteurs ont reçu les paquets avec succès, ce qui fait que sa mémoire ne se vide lentement Le débit se dégrade de plus en plus quand le nombre de récepteurs augmente La fiabilité statistique savère très efficace pour les groupes dynamiques de grandes dimensions.

39 Contrôle derreurs Traditionnellement 2 approches sont utilisées pour la correction des erreurs Mécanismes de détection et de correction derreur et de retransmission (Automatic Repeat reQuest) Informations redondantes émises avec le flot de données (Forward Error Correction)

40 Politiques dacquittements 1 Acquittement positif Chaque unité de données est explicitement acquittée par chaque récepteur. Lémetteur retransmet si son acquittement nest pas reçu. Si taille du groupe est importante, il est rapidement submergé par les acquittements des membres du groupe.

41 Politiques dacquittements 2 Acquittement négatif Si un récepteur détecte la perte dune unité de données, il génère un acquittement négatif. Lémetteur garde en mémoire tampon pendant une période donnée la liste des unités de données transmises pour être en mesure de les restituer ultérieurement.

42 Politiques de retransmissions 1 La retransmission peut être à destination dun récepteur identifié ou du groupe entier. Unicast : lémetteur doit avoir connaissance individualisée de chacun des membres du groupe et de leur état. La retransmission Unicast nécessite louverture dune nouvelle connexion avec le distant, donc il y a gestion de nouveaux paramètres interne au niveau émetteur et récepteur du message

43 Politiques de retransmissions 2 Multicast : Ce mode de retransmission peut être utilisé dans le cas où un nombre important de récepteurs a perdu la même unité de données. Traitement supplémentaire au niveau du récepteur qui nont pas besoin de retransmission, mais lopération est simple au niveau de lémetteur ou de celui qui retransmet le message.

44 Politiques de retransmissions 3 Saturation : consiste à anticiper les retransmissions en envoyant plusieurs copies de la même unité de données pour augmenter la probabilité de réception. Elle peut générer un grand nombre de messages redondants et créer une congestion.

45 Politiques de retransmissions 4 Les retransmissions multicast peuvent être de type continu ou sélectif Continu (Go-Back-N) : lémetteur revient à la dernière unité de données non acquittée à défaut de recevoir un acquittement de tous les récepteurs durant une période donnée. Il retransmet alors toutes les unités de données depuis la dernière non acquittée. Sélectif : lémetteur retransmet uniquement lunité de données erronée.

46 Comparaison Les mécanismes de détection derreurs et de correction par retransmission sont intégrés par la majorité des protocoles, dans la mesure où: 1. Les codes de détection derreurs sont traités plus rapidement et nécessitent moins dinformations redondantes que les codes correcteurs. 2. Face à un taux derreurs binaires élevé, les codes auto-correcteurs savèrent inefficaces pour un multicast totalement fiable. Par ailleurs, ils gaspillent la bande passante si le réseau offre un taux derreurs binaires particulièrement faible. Les stratégies de retransmission sont inadaptées pour les applications temps réel lorsque lont veut une communication fiable.

47 IP Multicast

48 Le protocole IP Multicast Cest une extension du protocole réseau IP Il permet la transmission de datagramme IP à un ensemble dutilisateurs identifié par une adresse IP de classe D avec la fiabilité best effort. Adresse allant de à Pour échanger les informations entre les machines et les routeurs de groupes, les protocoles de couches supérieures utilisent les messages IGMP (Internet Group Management) qui sont mis dans des datagrammes IP.

49 Le protocole IGMP Il est employé par un routeur pour savoir si des membres dun groupe donné sont présents sur le sous-réseau qui lui est directement relié.

50 Gestion dun réseau au niveau IP Multicast MMM M M M M M M IGMP Protocole de routage Multicast Protocole de routage Multicast Protocole de routage Multicast

51 Engagement dans le groupe Pour recevoir des datagrammes destinés à un groupe particulier, une machine doit demander à se joindre au groupe sur une interface réseau donnée, elle utilise la commande : JoinHostGroup (Group address, interface)

52 … Le module IP maintient une liste de groupes associés à chaque interface, auxquels les applications des niveaux supérieurs appartiennent. Au départ, toutes les entrées de la table sont vides ; à chaque fois quun programme dapplication rejoint un groupe, IGMP lui alloue une entrée. Quand une machine rejoint un groupe, elle diffuse un message IGMP pour signaler aux routeurs Multicast voisins son appartenance au groupe JoinHostGroup (Group address, interface). De son côté, le module IP en utilisant la primitive JoinLocalGroup(Group address) demande au module réseau local de filtrer les trames Multicast et de délivrer les trames destinées au groupe.

53 Dialogue IGMP Ethernet Compatible IBM Routeur Internet Requête IGMP Rapport dappartenance au groupe

54 Connaissance du groupe Pour savoir quel groupe a encore des membres actifs sur le sous-réseau qui lui est directement relié, un routeur Multicast envoie le message IGMP, HostMemberQuery Dans la version IGMP v.1, ce message HostMemberQuery était adressé à tous les groupes. Dans la version IGMP v.2, le groupe sadresse à un groupe spécifique GroupSpecificQuery avec le drapeau TTL=1.

55 … À la réception dun message IGMP émis par un routeur Multicast, les machines appartenant à plusieurs groupes calculent un délai aléatoire pour chaque groupe auquel elle appartiennent (afin de ne pas exploser le routeur local). À lexpiration de ce délai, elles émettent leurs réponses (HostMemberReport) pour chaque groupe auquel elle appartiennent, si aucune machine appartenant au groupe na pas déjà répondu. Les routeurs nont pas besoin de maintenir une liste détaillée de toutes les machines des différents groupes, mais seulement savoir quil reste au moins une machine par groupe.

56 … Le logiciel IGMP gère un compteur par groupe qui enregistre les nombre des membres du groupe. Au fur et à mesure que les applications quittent le groupe, Il décrémente le compteur.

57 Départ dun groupe La machine quitte le groupe lorsque le compteur atteint 0, alors elle transmet un message IGMP v.2 (LeaveGroup) à tous les routeurs Multicast sur le sous-réseau ( : adresse de tous les routeurs Multicast sur le réseau) en indiquant ladresse du groupe duquel elle se retire. Pour savoir sil sagit du dernier membre appartenant à ce groupe sur ce sous-réseau, le routeur transmet le message (GroupSpecificQuery) sur linterface doù il a reçu le message. Sil na pas de réponse, alors cette partie (sous-réseau) est enlevé de larbre de diffusion (dacheminement) des messages.

58 Dialogue IGMP v.2 Ethernet Compatible IBM Routeur Internet LeaveGroup to GroupSpecificQuery to groupaddress Si pas de rapport alors quitter le groupe et couper cette partie de larbre Si réception des rapports alors rester dans le groupe

59 IGMP v.3 Possibilité dune machine de spécifier la source du trafic Multicast, donc choix dun groupe ayant comme source dinformation telle machine Ce contrôle est réalisé grâce aux messages: Inclusion Group-Source Report Message : permet à une machine de spécifier les adresses IP des sources doù elle accepte de recevoir. Exclusion Group-Source report : permet à une machine dexclure les sources doù elle ne veut pas recevoir. Ça permet de ne pas gaspiller la bande passante. Au départ, le message GroupSourceLeave a été ajouté pour permettre à une station de spécifier les adresses IP de chaque paire (Groupe,Source) quelle veut quitter.

60 import java.net.*; import java.io.*; public class MulticastPeer{ public static void main(String args[]){ // args give message contents and destination multicast group (e.g. " ") MulticastSocket s =null; try { InetAddress group = InetAddress.getByName(args[1]); s = new MulticastSocket(6789); s.joinGroup(group); byte [] m = args[0].getBytes(); DatagramPacket messageOut = new DatagramPacket(m, m.length, group, 6789); s.send(messageOut); byte[] buffer = new byte[1000]; for(int i=0; i< 3;i++) {// get messages from others in group DatagramPacket messageIn = new DatagramPacket(buffer, buffer.length); s.receive(messageIn); System.out.println("Received:" + new String(messageIn.getData())); } s.leaveGroup(group); }catch (SocketException e){System.out.println("Socket: " + e.getMessage()); }catch (IOException e){System.out.println("IO: " + e.getMessage()); }finally {if(s != null) s.close();} }


Télécharger ppt "Les algorithmes distribués dans un contexte Multicast Boucif AMAR BENSABER."

Présentations similaires


Annonces Google