Cours réseau: Réseaux AD HOC Plan
Transcription
Cours réseau: Réseaux AD HOC Plan
Cours réseau: Réseaux AD HOC 1 Plan 1 Context et Motivations 1.1 Caractéristiques 1.2 Manet 2 Le routage dans Ad hoc 2.1 unicast 2.2 multicast 3 TCP sur Ad hoc 2 1 caractéristiques: Mobile Networks Networks with Infrastructure Networks without Infrastructure Cellular Networks : GSM, Mobile IP Ad hoc Networks 3 caractéristiques: "Réseaux de mobiles" – GSM, UMTS, … – GSM : seuls les terminaux sont mobiles, les stations de base, commutateurs, BD : fixes Réseaux ad-hoc = réseaux "mobiles" – Nœuds capables d'échanger de l'information, à peine initialisés – Pas besoin d'infrastructure – Avantages non négligeables (en coût par ex) 4 2 caractéristiques: Applications des réseaux ad-hoc – Mise en place très rapide de réseaux de communication – Aeroports, hôtels : espaces peu équipés en infrastructures de communication lourdes GSM : dispersion de l'infrastructure pour une couverture globale – Non sans difficulté – Espaces contraignants pour les réseaux : restaurants, lignes de métro, etc. Ad-hoc adapté dans ce cas – besoin d'une bande de fréquences – de programmes logiciels 5 caractéristiques: Ad-hoc : solution de réseau cellulaire pour les zones très peu peuplées – Couverture partielle des opérateurs – Les terminaux peuvent servir de relais Système de communication : d'une source vers une destination Support de transmission : sans-fil – Hertzien :principal support des réseaux ad-hoc existants – Infra-rouge Transmission hertzienne : 2 types d'acheminement – Envoi direct – routage 6 3 caractéristiques: Envoi direct – Mobiles suffisamment proches – Signal peu atténué Envoi par routage – Nœuds relativement éloignés – Affaiblissement des signaux émis – Les nœuds jouent à la fois le rôle de client et de serveur : relais . 7 caractéristiques: Liens asymétriques – Communications à sens unique entre un émetteur et un récepteur Interférences – Accroissement du nombre d'erreurs sur la transmission – Amoindrissement des performances du lien radio Mobilité des nœuds – Modification de la topologie du réseau – Transformation du tracé des routes lors des échanges de paquets 8 4 caractéristiques: En théorie, les liens sont symétriques – Affaiblissement inversement proportionnel à la distance entre l'émetteur et le récepteur En pratique, liens asymétriques – Déphasage dû aux multiples réflexions du signal sur différents obstacles – Évanouissement (fading) – Bonne réception dans un sens, mauvaise dans l'autre Route inverse pas forcément la même que la route directe – Mise en place d'une signalisation beaucoup plus importante que celle des réseaux fixes 9 caractéristiques: Interface radio partagée – Chaque donnée est réceptionnée par tous les nœuds, à des puissances variables + Les interférences s'ajoutent au bruit et détériorent les communications + Augmentation du taux d'erreur + La transmission des paquets non récupérables diminue le débit de la liaison Redondance - Diffusion à tous les voisins + Paramètre inséré volontairement dans les réseaux filaires – Contournement des nœuds en panne ou défaillants + Réseaux ad-hoc : facteur parasitaire 10 5 caractéristiques: Topologie du réseau : dynamique – Route modifiée assez fréquemment Routage dynamique – Demande d'énormes ressources pour véhiculer la signalisation indispensable aux mouvements des nœuds Jusqu'à présent, la plupart des routages ad-hoc se sont montrés plutôt inaptes à faire face à une forte mobilité – Problématique au cœur des travaux de recherche 11 . Mobile Ad-Hoc Network (MANET) heterogeneous mobile nodes autonomous, instantly deployable if no preexisting infrastructure exists stand-alone or incorporated in a larger network re-configurable infrastructure (due to node mobility) heterogeneous communication (audio, video, data traffic…) limited power constraint (batteries, solar power…) 12 6 Mobile Ad-Hoc Network (MANET) routes multi-hop (transmission radius < network span) No base station (decentralized) function of coordination relies on the routing protocol 13 MANET: Application Collaborative computing (conferences, exhibitions…) Sensor networks Military (battlefield, rescue missions) Recovery from disasters (earthquake, fire…) Law enforcement (crowd control, border patrol) 14 7 Résumé: Ad hoc networks are distinguished from the other forms of wireless networks by the absence of fixed infrastructure They are created and used anywhere at any time and selfself-creating, selfself-organizing and selfselfadministering They are Their topology can change: it is dynamic 15 Résumé: 16 8 Plan 1 Context et Motivations 1.1 Caractéristiques 1.2 Manet 2 Le routage dans Ad hoc 2.1 unicast 2.2 multicast 3 TCP sur Ad hoc 17 Le Routage dans Ad Hoc: De nouveaux protocoles: - Information sur topologie complète n’est pas forcément indispensable - Forte mobilité forte convergence - Limiter le nombre de messages de signalisation - Utiliser des algos. Scalables (introduction de clusters) 18 9 Le Routage dans Ad Hoc: Le choix de l’algorithme en fonction de plusieurs paramètres : - Taille du réseau - connectivité - topologie - trafic utilisateur - énergie - régulations de la couche physique - métrique de performances - coût 19 Le Routage dans Ad Hoc: Unicast Ad hoc Routing Protocols Proactive Reactive Hybrid 20 10 Le Routage dans Ad Hoc: Protocoles réactifs – Aucun échange de paquets de contrôle pour construire des tables de routage – Inondation – Consommation d'une grande quantité de ressources pour découvrir une simple route entre 2 points du réseau Protocoles proactifs – Établissent des tables de routage par l'échange régulier de messages de contrôle – Des tables de routage dynamiques permettent de tracer la route optimale Performances – Réseau dense : protocole réactif très coûteux – Réseau fluide : échange abusif d'informations pour le protocole proactif, pour des tables de routage de faible taille 21 Le Routage dans Ad Hoc Techniques de routage utilisées - Vecteur de Distance (DV) - Etat du lien (LS) - Routage à la source Exemples des protocoles de routage - Reactive : TORA, AODV, DSR - Proactive : OLSR, GSR, DSDV - HYBRID : ZRP,CBRP 22 11 Le Routage dans Ad Hoc: DSR DSR (Dynamic Source Routing) [Johnson96] : - Protocole simple et efficace qui permet au réseau d’être auto-structurable et auto-configurable. - Développé à Canergie-Mellon dans le cadre du projet Monarch (Mobile Network Architecture) - 2 mécanismes sont proposés : découverte de routes : mise en place quand le besoin apparaît. maintenance des routes : utilisation de “caches” pour le maintien d’une route de S vers D. Ce mécanisme permet de détecter lorsqu’une route n’est plus valide et d’en informer la source. 23 Le Routage dans Ad Hoc: DSR Hypothèses retenues par DSR : - tous les nœuds participent à la conception du réseau - le diamètre est petit (5 à 10 nœuds) - tous les nœuds sont susceptibles de se mouvoir, n’importe quand mais à une vitesse modérée - utilisation de réception en mode promiscuous - liens généralement bidirectionnels. - Quelque soit son nombre d’interfaces physiques, chaque nœud ne dispose que d’une adresse IP 24 12 Le Routage dans Ad Hoc: DSR Les mécanismes sont mis en place uniquement en cas de besoin Les mécanismes d’établissement et de maintenance des routes ne repose pas sur l’envoi périodique de paquets Les routes peuvent être asymétriques (liensunidirectionnels) Les réseaux adhocs utilisant DSR peuvent être couplés à l’Internet classique via une gateway Le couplage avec Mobile IP est défini. 25 Le Routage dans Ad Hoc: DSR la source S regarde dans son cache de route, s’il existe un chemin vers la destination D - OUI : Les données sont envoyées en untilisant un algorithme de source routing - NON : Mise en place d’un mécanisme de découverte de route. + S diffuse un paquet ROUTE REQUEST, RREQ(S,D,L) où L est la liste des nœuds traversés pour atteindre D On a L=? + Sur réception d’un de RREQ(S,D,L), un nœud N va vérifier si N=D * NON : il vérifie qu’il ne l’a pas déjà reçu. si Oui, rien, sinon N diffuse RREQ(S,D,L=L+N). * OUI : Envoi d’une réponse (ROUTE REPLY) 26 13 Le Routage dans Ad Hoc: DSR 27 Le Routage dans Ad Hoc: DSR 28 14 Le Routage dans Ad Hoc: DSR 29 Le Routage dans Ad Hoc: DSR 30 15 Le Routage dans Ad Hoc: DSR 31 Le Routage dans Ad Hoc: DSR 32 16 Le Routage dans Ad Hoc: DSR 33 Le Routage dans Ad Hoc: DSR D, pour envoyer le ROUTE REPLY, regarde s’il existe un chemin vers S dans son cache : - OUI : + Il fait un source routing pour le paquets de retour, en se basant sur les valeurs de sa table - NON mais la L2 utilise des liens unidirectionnels : + inversion de la route contenue dans L - Sinon : + lance une découverte de route vers S en «piggybackant» l’acquittement du RREQ(S,D,L) reçu. 34 17 Le Routage dans Ad Hoc: DSR 35 Le Routage dans Ad Hoc: DSR Sur réception d’un RREP, S «cache» la liste des nœuds traversés puis peut envoyer ses données en mettant dans l’entête la liste des nœuds à traverser. 36 18 Le Routage dans Ad Hoc: DSR Mémorisation d’autres routes - Chaque nœud stocke les nouvelles routes qu’il voit - Les informations sur les routes sont apprises par les nœuds entendant les paquets RREP, RREQ et ceux de données, même s’il ne sont pas sur le chemin. Mais il faut faire attention aux liens unidirectionnels. 37 Le Routage dans Ad Hoc: DSR Accelération de la découverte de routes - Ex : C veut envoyer une nouveau msg à A. Accélération si chaque nœud ayant une route envoie un RREP - Problème ? Autre problème Une diffusion peut potentiellement atteindre tous les nœuds (utilisation de compteurs de noeuds) 38 19 Le Routage dans Ad Hoc: DSR Si un lien se «casse», le mécanisme de maintenance de route est utilisé : - Si pas de réponses sur un paquet de données, le long du chemin on tente n fois de retransmettre. Au bout de n une erreur est détectée et répercutée : Envoi de ROUTE ERROR (RERR [lien]). RERR [J-D] S F E C G J K D 39 Le Routage dans Ad Hoc: DSR Optimisations possibles - J peut trouver une autre route pour les données - S informe ses voisins de la route «cassée» dans son nouveau paquet RREQ. Attention au stockage d’informations négatives 40 20 Le Routage dans Ad Hoc: AODV AODV (AdhOc Distance Vector) [Perkins99]: - Hypothèse : + liens bidirectionnels (symétriques) + fonctionne en unicast et multicast - Principe de l’établissement de la route : + des paquets Route Requests (RREQ) sont transmis de la même manière que pour DSR + Quand un nœud rediffuse une requête de route, il établit un chemin inverse qui pointe vers la source + Quand la destination reçoit le paquet “Route Request”, il y répond avec un paquet Route Reply + Le paquet Route Reply prend le chemin inverse et atteind la source. 41 Le Routage dans Ad Hoc: AODV Découverte de route : - Création du RREQ contenant : + @source, n°seq(source), ID de diffusion + @destination, n°seq(dest) + nb de sauts 42 21 Le Routage dans Ad Hoc: AODV Découverte de route : - Diffusion du RREQ - Log des RREQ reçu pendant un certain temps avec l’@source et l’ID de diffusion 43 Le Routage dans Ad Hoc: AODV Mise à jour des tables de routage pour aller à S - L’adresse S - le nombre de sauts pour atteindre S - une durée d’expiration de cette entrée - l’identifiant de diffusion - n° de séquence de la source 44 22 Le Routage dans Ad Hoc: AODV Sur réception d’un RREQ : - un nœud regarde s’il a déjà reçu le RREQ enregardant dans sa table de log. - Le retransmet sinon avec le nombre de sauts (vers la source) incrémenté 45 Le Routage dans Ad Hoc: AODV Propogation des RREQ tant que - D n’est pas atteint - un nœud intermédiaire + n’a pas D dans sa table de routage + a D mais avec un n°seq(dest) ? au n°seq(dest) du message RREQ 46 23 Le Routage dans Ad Hoc: AODV Propogation des RREQ tant que - D n’est pas atteint - un nœud intermédiaire + n’a pas D dans sa table de routage + a D mais avec un n°seq(dest) ? au n°seq(dest) du message RREQ 47 Le Routage dans Ad Hoc: AODV Destination trouvée - Etablissement du chemin inverse pour le transfert des données. - X envoi un msg RREP(@S,@D, n°seq(dest), cpt sauts X? D, TpsAvtExp) 48 24 Le Routage dans Ad Hoc: AODV Chemin de transfert est établi, les données peuvent être transférées 49 Le Routage dans Ad Hoc: AODV Expiration des routes si elles ne sont pas utilisées. Les données ne contiennent pas dans l’entête l’ensemble de nœuds à traverser (tables de routage) 50 25 Le Routage dans Ad Hoc: AODV Les mouvements des nœuds ne sont pris en compte que s’ils affectent une route active - S bouge : nouvelle procédure de découverte de route - Autre nœud : envoi de RERR Principe des RERR. - Quand un nœud détecte que le lien downstream n’est plus valide : + il incrémente la valeur du n° de séquence pour D contenu dans sa table de routage + il envoie un RERR à ses prédécesseurs dont le chemin passe par le lien défectueux avec distance à D=? et le n° de séquence incrémenté. - Sur réception du RERR, S initialise une découverte de route avec le n° de séquence reçu 51 Le Routage dans Ad Hoc: DSDV (Destination Sequence Distance Vector) L’un des premiers protocoles mis au point par le groupe MANET Protocole proactif Inspiré du protocole RIP (Routing Information Protocol) d’IP filaire – Appelé à disparaître au profit d’OSPF (Open Shortest Path First) On y a aujourd’hui complètement renoncé Repose sur un vecteur de distance – Chaque nœud possède une table de routage où chacune des lignes doit identifier • L’une des destinations possibles • Le nombre de sauts pour y parvenir • Le nœud voisin à traverser 52 26 Le Routage dans Ad Hoc: DSDV Principal défaut de DSDV : convergence des tables de routage – Hérité de RIP • Envoi des tables aux voisins • Comparaisons pour choisir la route la plus courte • La route ne converge pas toujours – Problème crucial dans les réseaux ad-hoc • Ralentissement de la convergence à cause de la mobilité des nœuds • Insertion de numéros de séquence dans DSDV pour rafraîchir les tables de routage – Interdit toute mise à jour antérieure Surplus de signalisation : autre imperfection de DSDV – Messages de rafraîchissement moins nécessaires pour des nœuds peu mobiles – Création d’un nouveau protocole (par les mêmes auteurs) • AODV : Ad-hoc On Demand Vector 53 • Suppression de tous les paquets de contrôle Le Routage dans Ad Hoc: (Optimized Link State Routing Protocole: OLSR) Protocole proactif Applique dans un contexte ad-hoc les règles de routage centrées sur l’état du lien – Ce type de routage devient une référence en matière de routage en IP filaire (avec OSPF) – Chaque nœud connaît parfaitement la position des autres dans le réseau – Choix du chemin le plus court ou le plus rapide = formalité • Algorithme de Dijkstra 54 27 Le Routage dans Ad Hoc: OLSR Pas d’inondation car elle générerait de la redondance – Les paquets parviennent aux nœuds 1 seule fois – Le nœud élit parmi ses proches un représentant • Rôle de relais multipoint : Multi-Protocol Router (MPR) • Condition pour devenir MPR : pouvoir atteindre tous les nœuds à une distance de 2 sauts, avec un lien symétrique • MPR communiqués à tout le réseau par des messages TC (Topology Control) périodiques • À la réception des TC, mise à jour des tables de routage 55 Le Routage dans Ad Hoc: OLSR Diffusion broadcast de message Diffusion broadcast de message avec MPR 56 28 Le Routage dans Ad Hoc: (Zone Routing Protocol ZRP) Le protocole Zone Routing Protocol [Haas98] combine à la fois : - une approche proactive à l’intérieur d’une zone restreinte, ce qui permet de mettre à jour l’état du réseau et de maintenir des routes qu’il y ait ou non des paquets de données qui circulent. - une approche réactive entre les zones restreintes, qui ne détermine une route que si le besoin de transmettre des paquets de données apparaît 57 Le Routage dans Ad Hoc: ZRP Routage intra-zone - l’étendue d’une zone est définie par rapport à un nœud central - tous les nœuds ayant une distance d’au plus d par rapport à un nœud X est considéré dans la zone de routage de X - le routage à l’intérieur d’une zone se fait proactivement à l’aide d’algorithme “link state” ou “vecteurs de distance” - les nœuds ayant une distance de d sont des nœuds périphériques de la zone. 58 29 Le Routage dans Ad Hoc: ZRP Le routage inter-zone - ZRP utilise dans ce cas une approche réactive. - Une route est établie si une station a des paquets de données à envoyer à l’extérieur de sa zone de routage - Utilisation de mécanismes de découverte de route pour trouver la localisation du destinataire. - Les paquets de découverte de route sont propagés sur le même principe que pour DSR, mais les échanges entre zones se fait uniquement au travers des nœuds périphériques 59 Routage dans Ad Hoc: Découverte de route avec ZRP (d=2) Le 60 30 Le Routage dans Ad Hoc: ZRP E connaît D, car il est dans sa zone de routage. C’est donc E qui va renvoyer le chemin à S 61 Le Routage dans Ad Hoc: ZRP Les paquets sont envoyés à D via les nœuds périphériques C et E 62 31 Plan 1 Context et Motivations 1.1 Caractéristiques 1.2 Manet 2 Le routage dans Ad hoc 2.1 unicast 2.2 multicast 3 TCP sur Ad hoc 63 Généralités: multicast Unicast ou multicast ? Unicast: Un (des) chemin(s) entre une source et une destination Multicast Un (des) chemin(s) entre une source et plusieurs destinations 64 32 Généralités: Principes Diffusion (multipoints) ? Niveau Physique: Technologie sur bus Le logiciel Exemple Ethernet (01:00:OO:OO:OO:OO) Niveau réseau Abstraction de la diffusion au niveau physique Caractéristiques: Adresse de groupe, nombre de groupes(2**28), adhésion au groupe, acheminement interréseaux,… 65 Généralités : un émetteur vers plusieurs récepteurs Multicast: un acte d’envoyer un datagramme au multiples rcepteurs avec une seule opération “transmit” analogiquement: un enseignant pour plusieurs étudiants Question: comment on accomplit le multicast Multicast via unicast source envoie N unicast datagrammes, un adressé à chacun de N recepteurs routers forward unicast datagrams multicast receiver (red) not a multicast receiver 66 33 Généralités : un émetteur vers plusieurs récepteurs (2) Réseau multicast Routeur participe Multicast routers (red) duplicate and forward multicast datagrams activement dans le multicast, faisant des copies des paquets et les forward vers les récepteurs multicast 67 Généralités: un émetteur vers plusieurs récepteurs (3) Couche Application multicast systemes terminaux inclus dans le multicast copient et forwardent des datagrammes unicast parmis eux-mêmes 68 34 Généralités: Modèle de Service Multicast Plan d’adressage multicast Mécanisme de remise Un acheminement efficace 69 Généralités: Plan d’adressage 2 types d’adresses - permanentes (well-known): services, routage - temporaires: des groupes multicast Exemples - 224.0.0.0: adresse de base (réservée) - 224.0.0.4: routeurs DVMRP - 224.0.0.5: routeurs OSPFIGP - 224.0.0.9: routeurs RIP2 - 224.0.0.251: DNS multicast 70 35 Généralités: Plan d’adressage Sémantique des adresses multicast - @multicast # @unicast (individuelles) pas @source, aucun message d’erreur généré par ICMP Correspondance des adresses multicast IP et d’Ethernet - 23 bits de poids faible de l’@multicast IP dans les 23 bits de poids faible de l’adresse Ethernet de multicast spéciale 01:00:5E:00:00:00 Hôtes et remise multicast - multicast sur un réseau physique unique - multicast sur internet routeurs muticast Portée de multicast relative à la dispersion des membres de groupe Adaptation logicielle pour supporter le multicast 71 Généralités: Mécanisme de remise propagation d’information d’appartenance aux groupes 128.59.16.12 128.119.40.186 multicast group 226.17.30.197 128.34.108.63 128.34.108.60 Le concept du groupe multicast: des adresses IP des machines du groupe multicast les routeurs forwardent des datagrammes multicast aux machines unies dans le groupe multicast 72 36 Généralités: Groupe Multicast sémantiques du groupe de machines: o N’importe qui peut “join” (reçoit) le groupe multicast o N’importe qui peut envoyer au groupe multicast nécessité: une infrastructure pour délivrer des datagrammes mcastà toutes les machines appartenants au groupe multicast 73 Généralités: adhésion au groupe mcast: deux-étapes locale: la machine informe le routeur mcast local de désir de joindre le groupe: IGMP (Internet Group Management Protocol) Globale (wide area): routeur local interagit avec les autres routeurs pour recevoir un flot mcast plusieurs protocoles (e.g., DVMRP, MOSPF, PIM) IGMP IGMP wide-area multicast routing IGMP 74 37 IGMP: Internet Group Management Protocol machine: envoie “une nouvelle:report” IGMP lorsque l’application rejoinds le groupe mcast IP_ADD_MEMBERSHIP socket option host need not explicitly “unjoin” group when leaving routeur: envoie “une question:query” IGMP à des intervalles du temps réguliers(125 s) La machine appartenant au groupe mcast devrait répondre à la question report query 75 IGMP IGMP version 1 routeur: la machine Membre diffuse msg sur le LAN à toutes les machines machine: la machine Membre répond par un msg pour indiquer un membre de groupe Delai aléatoire avant la réponse Quitte implicite (sans répondre à la question) RFC 1112 IGMP v2: additions include Demande de spécifier le groupe Msg de quitter le groupe Dernière machine répond à la question peut envoyer un message de “quitte” au groupe Le routeur accomplit la demande de spécification de groupe pour voir s’il y a des machines qui ont quitté le groupe RFC 2236 IGMP v3: sous développement 76 38 Le routage Multicast:principes Pourquoi le routage multicast est-il aussi difficile? Pourquoi ne pas étendre le routage classique pour prendre en compte le multicast ? Réseau 1 Réseau 1 R B C D E Réseau 2 A F G 77 Le routage Multicast:principes Nécessité d’un routage dynamique Les routes multicast changent plus rapidement Le multicast exige autre chose que l’@ dest. Un datagramme peut provenir d’un hôte ne faisant pas partie du groupe Insuffisances de routage selon la destination Emetteurs quelconques Modèles de routage multicast de base Les chemins inverses (RPF: Rverse Path Forwarding) L’acheminement tronqué selon RPF (TRPF: Truncated RPF) Conséquences de TRPF Arbres de multicast Un ensemble de chemins reliant une source à chacun des membres d’un groupe de multicast Un arbre par groupe de multicast 78 39 Le routage Multicast:principes Nature du routage multicast Un copromis entre le trafic des commandes de routage et l’inefficacité de la transmission des données L’acheminement selon les chemins inverses RPF est une stratégie de diffusion et de suppression Utilisation de RPM (Reverse Path Multicast) - gestion d’adhésion de façon ascendante Le programme mrouted Dans le noyau multicast La propagation des routes en utilisant le Distance Vector Fichier de configuration pour Encapsulation des datagrammes multicast dans des datagrammes classiques 79 Routage Multicast : Problème de déclaration But: trouver un arbre (or des arbres) connecter des routeurs membres dans un groupe macast local arbre: tous les chemins entre les routeurs ne sont pas utilisées source-based: differents arbres de chaque émetteur aux rcvrs shared-tree: même arbre utilisé par tous les members du groupe Shared tree Source-based trees 40 Approaches pour construire un arbre mcast Approaches: source-based tree: un arbre par source des arbres de plus court chemin Forward Chemin inverse (RPF) group-shared tree: le groupe utilise un arbre Couvrement minimal (colorés) Arbre de plus court chemin Un arbre de diffusion mcast : arbre de plus courts chemins de la source aux récepteurs Algorithme Dijkstra S: source LEGENDE R1 1 2 R4 R2 3 R3 routeur attaché à un membre de groupe 5 4 R6 routeur no attaché à un membre de groupe R5 6 R7 i lien utilisé pour forwarder, i indique l’ordre de lien ajouté par l’algorithme 41 Forwarding Chemin inverse Relie le routeur aux émetteurs par le plus court chemin chaque routeur a un simple comportement de diffusion: if (le datagramme mcast reçu sur le lien d’entrée sur le plus court chemin de retour) then innonder le datagramme sur tous les liens de sortie else ignore le datagramme Forwarding chemin inverse: exemple S: source LEGENDE R1 R4 routeur attaché à un membre de groupe R2 R5 R3 R6 R7 routeur no attaché à un membre de groupe datagram sera forwardé Datagramme ne sera forwardé • resultat est une inverse spécifique source SPT – Peut être un mauvais choix avec des liens assymétriques 42 Forwarding chemin inverse: pruning Arbre de diffusion contient des sous arbres avec un des non membres de groupe mcast Pas besoin de diffuser les datagrammes dans les sous arbres “prune” msgs envoyé en amont par le routeur avec “un non aval members groupe” LEGENDE S: source R1 routeur attaché à un membre de groupe R4 R2 P R5 R3 R6 P R7 P routeur no attaché à un membre de groupe prune message links with multicast forwarding Arbre-partagé : arbre coloré”steiner” Steiner Tree: arbre à coût minimum connecte tous les routeurs qui sont attachés aux membres de groupe Existe des excellentes heuristiques N’est pas utilisé en pratique: Évaluation de la complexité Nécessité de l’info sur le réseau entier 43 Le routage multicast dans Ad hoc 87 Le routage multicast: MOADV Le multicast - Un groupe multicast est défini par un unique identifiant du groupe - Les nœuds peuvent joindre et quitter le groupe n’importe quand - Il faut prendre en compte les changements de topologie. Plusieurs protocoles ont été développés dans le cadre des travaux du groupe MANET 88 44 MAODV AODV Multicasting [Royer00] - Principe + Responsable de groupe : * Chaque groupe multicast possède un responsable de groupe * Ce responsable gère le numéro de séquence du groupe. * Le premier nœud désirant joindre le groupe est élu responsable * Le responsable gère la diffusion de messages Group Hello 89 MAODV Un arbre existe, il dispose d’un responsable de groupe qui gère le numéro de séquence du groupe. - Envoi périodique de messages Group Hello 90 45 MAODV Un arbre existe, il dispose d’un responsable de groupe qui gère les numéros de séquence du groupe - Ces messages contiennentle n° de séquence du groupe qui est incrémenté à chaque diffusion Responsable du groupe L E C H J G K A Membre du groupe Et de l’arbre multicast B Membre de larbre mais du groupe D N Lien de l’arbre multicast 91 MAODV:joindre l’arbre multicast Si N veut joindre le groupe Multicast - envoi d’un RREQ(join) contenant : + Join-flag et Repair-flag + @ de N, le broadcast ID de N, le n°seq(N) + @grp-mc, n°seq(grp) + nb-sauts E - l’envoi est une diffusion C si N ne connaît pas le responsable H G groupe, une transmission unicast sinon. A B L J K D N Route Request RREQ 92 46 MAODV: joindre l’arbre multicast Peuvent répondre à ces messages : - le responsable du groupe - les routeurs de l’arbre dont le n°seq ? n°seq(N) Envoi de RREP en unicast vers N - dernier n°seq(grp) E - @ de L L C - nb de sauts pour aller à L - nb sauts au grp = 0 H G Mise à jour des tables K J D A B N Route Reply RREP 93 MAODV: joindre l’arbre multicast Création du forward path - Validation de la route choisie avec envoi de messages MACT (Multicast Activation). - Sur réception de ces messages les nœuds activent les entrées de leurs tables de routage E L C H J G K A B D N Multicast Avtivation MACT 94 47 MAODV: joindre l’arbre multicast N a rejoint le groupe multicast E L C H A Membre du groupe Et de l’arbre multicast J G K D B N Membre de larbre mais du groupe Lien de l’arbre multicast 95 MAODV: joindre l’arbre multicast Les données suivent les branches de l’arbre maintenues à l’aide de l’algorithme AODV Multicast Si un nœud qui n’appartient pas au groupe multicast désire difuser au groupe un paquet - Il envoie un non-join RREQ qui sera traité de la même manière qu’un join RREQ - L’émetteur trouvera ainsi une route vers l’arbre - Les données seront envoyées au membre du groupe. 96 48 MAODV: quitter l’arbre multicast J veut quitter le groupe E L C H J G K A B D N 97 MAODV: quitter l’arbre multicast J veut quitter le groupe - Il doit rester un membre du groupe car J n’est pas une feuille de l’arbre E L C H J G K A B D N 98 49 MAODV: quitter l’arbre multicast N veut quitter le groupe E L C H J G K A B N D MACT (Prune) 99 MAODV: quitter l’arbre multicast N veut quitter le groupe K devient une feuille, et K n’appartient pas au groupe E L C H J G A MACT K (Prune) B D N 100 50 MAODV:quitter l’arbre multicast N veut quitter le groupe K devient une feuille, et K n’appartient pas au groupe K est lui aussi retiré du groupe E L C H J G K A B D N 101 MAODV: ruptures de liens Quand un lien(X,Y) de l’arbre se “rompt”, le nœud X ou Y, le plus éloigné (dowstream) du responsable doit reconstruire l’arbre. Si X est ce nœud, il envoie un Route Request(RREQ) Seuls nœuds, plus proches du responsable que X, ont le droit de répondre à l’aide d’un RREP. Si X n’obtient pas de réponse, il suppose que le groupe s’est scindé. Un responsable pour le nouvel arbre doit être choisi. 102 51 MAODV: fusion des arbres Fusion de deux arbres. - Le responsable sera celui avec le plus grand identifiant 103 MAODV Fusion de deux arbres. - Le responsable sera celui avec la plus grande adresse IP 104 52 MAODV:fusion des arbres Fusion de deux arbres. - Le responsable sera celui avec la plus grande adresse IP - A retransmet l’acceptation de P au futur responsable de groupe 105 MAODV:fusion des arbres Fusion de deux arbres. - Le responsable sera celui avec la plus grande adresse IP - A retransmet l’acceptation de P au futur responsable de groupe - Q diffuse l’information à tout l’arbre 106 53 Source-Based tree: DVMRP DVMRP est le premier protocol déployé sur Internet; utilisé dans Mbone (Multicast Backbone) Initiallement, la source diffuse le paquet vers tous les routers (utilisant Rev Path Fwd) Les Routeurs sans machines actives dans (m-cast group), ils se déconnectent de l’arbre Les routeurs interieurs qui n’ont plus de descandants se détachent de l’arbre récursivement Problemes: peu de routeurs utilisent le mcast; solution: tunnels 107 PIM (Protocol Independent Multicast) PIM devient le protocole standard dans intra AS m- cast Independent parceque il peut opérer des infrastructures différentes de routage (difference avec DVMRP) PIM peut utiliser les deux modes: PIM Sparse Mode et PIM Dense Mode Initiallement, les members “join” l’arbre partagé centré par un Rendez Vous Point 108 54 ODMRP (On Demand Multicast Routing Protocol) Le concept Forwarding Group Multicast Arbre replace la maille Approche On-demand Soft state 109 AMRoute Adhoc Multicast Routing (AMRoute) shared tree bidirectionnel Relie sur unicast protocol pour fournir des routes entre les members et gérer la mobilité Souffre de formation de boucles et des arbres non optimaux 110 55 AMRIS et CAMP Ad hoc Multicast Routing protocol utilizing Increasing id-numberS (AMRIS) Un ID number attribué à chaque noeud pour construire l’arbre L’id esst utilisé dans l’arbre pour la maintenance et la localisation Beacons “balises” sont envoyées par chaque noeud aux voisins Core-Assisted Mesh Protocol (CAMP) Utilisation dans un réseau maillé each Cores sont utilisés pour limiter le flow des demandes de join 111 56