380 likes | 552 Views
Projet Master 1. Méthode incitative de coopération dans les réseaux Ad Hoc Tuteur : Hayel Yezekael Etudiants : Moure Jonathan – Rozier Jérémy – Tecles Patrick. Projet Master 1. Sommaire I) Ad Hoc, Nuggets II) Organisation III) Implémentation sous NS IV) Bilan. I) Ad Hoc, Nuggets.
E N D
Projet Master 1 Méthode incitative de coopération dans les réseaux Ad Hoc Tuteur : Hayel Yezekael Etudiants : Moure Jonathan – Rozier Jérémy – Tecles Patrick
Projet Master 1 Sommaire I) Ad Hoc, Nuggets II) Organisation III) Implémentation sous NS IV) Bilan
I) Ad Hoc, Nuggets Plan 1) Réseau Ad Hoc 2) Nuggets 3) Modèle PPM
I) Ad Hoc, Nuggets 1) Réseau Ad Hoc - Un réseau Ad Hoc est un réseau sans fil et sans infrastructure. - Terminode : terminal + noeud du réseau.
I) Ad Hoc, Nuggets 1) Réseau Ad Hoc Problèmes : - Pour un bon fonctionnement, il faut une coopération entre tous les mobiles. - Indisponibilité des services et surcharge du réseau.
I) Ad Hoc, Nuggets 2) Nuggets Solution : - Les nuggets, monnaie virtuelle. - Coût du service de transmission.
I) Ad Hoc, Nuggets 2) Nuggets - Relayer des paquets = gain de nuggets. - Nuggets nécessaires pour envoyer des paquets. -> Retransmission des paquets indispensable.
I) Ad Hoc, Nuggets 3) Modèle PPM PPM « Packet Purse Model » - Principe : émetteur paye avec « x » nuggets pour envoyer son paquet, chaque intermédiaire prend « y » nuggets. - Avantage : dissuade du flooding, empêche de surcharger le réseau.
I) Ad Hoc, Nuggets 3) Modèle PPM PPM « Packet Purse Model » - Inconvénients : * estimation du nombre de nuggets à envoyer. * nombre de nuggets pris par les intermédiaires.
I) Ad Hoc, Nuggets 3) Modèle PPM PPM « Packet Purse Model » - Solutions : * mécanisme pour estimer les nuggets suffisants. * obligation de prendre un seul nugget pour chaque intermédiaire.
II) Organisation Plan 1) Présentation 2) Plateforme 3) NS
II) Organisation 1) Présentation - Phase de rechercheconcernant la réalisation de la plateforme - Familiarisation avec NS (Network Simulator) - Élaboration de scénarios “ad hoc” - Implémentation des nuggets - Simulations
II) Organisation 2) Plateforme - Impossibilité d’implémenter entre les couches 2 et 3 ( liaison de données et réseau) - Impossibilité d’implémenter à la 3ème couche (au niveau de l’en-tête IP)
II) Organisation 3) Network Simulator - Simulation d’un grand nombre d’applications, de protocoles, de types de réseau... - 2 parties : * simulateur, codé en C++ * interprète Otcl, pour lire et éxécuter les scripts en tcl - Visualisation avec NAM
II) Organisation 3) Network Simulator - Implémentation des nuggets à un niveau applicatif (abstraction des étapes d’encapsulation et désencapsulation) - Création du script de simulation
III) Implémentation sous NS Plan 1) Création et dérivation de ping 2) Création d’un protocole de routage 3) Dérivation de DSDV 4) Dérivation de CBR 5) Création d’un script de simulation
III) Implémentation sous NS 1) Création et dérivation de ping - Création de ping à l’aide d’un tutorial - Puis modification pour y ajouter les nuggets - Création ok mais besoin d’accéder aux données de la table de routage Création de notre propre protocole de routage
III) Implémentation sous NS 2) Création d’un protocole de routage - Création d’un type de paquet spécifique à notre protocole - Création de l’agent de routage - Création de la table de routage - Modifications nombreuses des fichiers “systèmes” pour l’intégrer a NS Problèmes lors de l’utilisation (NAM, traces)
III) Implémentation sous NS 3) Dérivation de DSDV - Protocole de routage le moins complexe à modifier - Confusion de notre part nous ne pouvons pas intégrer les nuggets dans DSDV car sa fonction est de créer des tables de routages et non pas de décider du forwarding des paquets
III) Implémentationsous NS 4) Dérivation de CBR - Application simple qui utilise UDP - Génère du trafic constant - Plus simple à modifier que FTP par exemple - Modification de cbr_traffic.cc (fonction start()) - Stock de nuggets stocké dans un fichier
III) Implémentation sous NS 4) Dérivation de CBR - Ouvrir le fichier de stock du noeud émetteur et décrémenter ce stock du nombre de « nuggets » que l'on va «mettre» dans le paquet - Gérer les noeuds intermédiaires qui relaient les paquets (forwarding)
III) Implémentation sous NS 4) Dérivation de CBR - Ce forwarding s’effectue dans la classe Classifier - Commute le paquet vers la bonne interface de sortie
III) Implémentation sous NS 4) Dérivation de CBR Classifier: - Composant propre à chaque noeud - Role de démultiplexeur - Modification de la fonction recv() de classifier.cc
III) Implémentation sous NS 4) Dérivation de CBR Comment savoir si un paquet “contient” encore des nuggets? - Récupérer le champ num_forwards_ du paquet qui donne le nombre de noeuds traversés. - Chaque noeud relais prend un nuggets, nbre de nuggets du paquet = coût initial – num_forwards_
III) Implémentation sous NS 4) Dérivation de CBR Choix du coût initial (nbre de nuggets à inclure dans un paquet): - Noeuds répartis de manière aléatoire uniforme sur un carré. Pour une topologie de 50 noeuds nombre de relais maxi ≈ √50 – 2 ≈ 5 Choisir un coût de 3 ou 4 (meilleurs résultats)
III) Implémentation sous NS 5) Création du script de simulation - Script en tcl - Création et positionnement de 50 noeuds répartis uniformément de manière aléatoire - Génération de trafic aléatoire - Gestion du niveau d’énergie
IV) Bilan Plan 1) Analyse et exploitation des résultats 2) Problèmes rencontrés 3) Apports personnels 4) Perspectives
IV) Bilan 1) Analyse et exploitation des résultats Préambule : - 50 nodes. - 200 communications CBR (1 paquet). - Émission toutes les 2 secondes. - Stock initial de 20 nuggets. - Forfait d’émission (tests avec 3 ou 4 nuggets). - Mobilité (tests effectués avec et sans).
IV) Bilan 1) Analyse et exploitation des résultats • Immobilité, coût de 4 nuggets - Répartition géographique des nodes en fonction de leur stock final de nuggets.
IV) Bilan 1) Analyse et exploitation des résultats Résultats Immobilité, coût de 4 nuggets : - 12 drops en moyenne. - 6% de paquets dropés. - 520 nuggets au total à la fin. - 10% “rouges”, 30% “bleus”, 60% “marrons”.
IV) Bilan 1) Analyse et exploitation des résultats Résultats Immobilité, coût de 3 nuggets : - 36 drops en moyenne. - 18% de paquets dropés (3 fois plus qu’avec 4). - 760 nuggets au total à la fin (240 de plus). - 20% “rouges”, 50% “bleus”, 30% “marrons”.
IV) Bilan 1) Analyse et exploitation des résultats • Mobilité, coût de 4 nuggets - Répartition géographique des nodes en fonction de leur stock final de nuggets.
IV) Bilan 1) Analyse et exploitation des résultats Résultats Mobilité, coût de 4 nuggets : - 5 drops en moyenne. - 2.5% de paquets dropés. - 490 nuggets au total à la fin. - 15% “rouges”, 35% “bleus”, 50% “marrons”.
IV) Bilan 1) Analyse et exploitation des résultats Résultats Mobilité, coût de 3 nuggets : - 12 drops en moyenne. - 6% de paquets dropés (2 fois plus qu’avec 3). - 620 nuggets au total à la fin (130 de plus). - 15% “rouges”, 55% “bleus”, 30% “marrons”.
IV) Bilan 1) Analyse et exploitation des résultats Conclusions : - Coût > 4 : nombre de nuggets restant trop faible. - Coût < 3 : nombre de drops trop important. - Coût = 3 : privilégie la durée, pas l’acheminement - Coût = 4 : + d’acheminement, - de nuggets totaux - Mécanisme adapté aux réseaux mobiles ad hoc
IV) Bilan 2) Problèmes rencontrés - Techniques, organisationnels, “logistiques”. - Différence entre théorie et pratique. - Comprendre NS, l’installer, installer Linux, plusieurs réinstallations. - Trouver des informations exploitables.
IV) Bilan 3) Apports personnel - Technique : NS (C++, tcl), Linux, ad hoc… - Professionnel : futurs enjeux, contraintes… - Humain : travail d’équipe, comptes rendus… - Personnel : persévérance, motivation, sens des responsabilités, remise en question. - Progression des compétences, du savoir, du savoir-faire, du savoir être. - Amélioration de l’autonomie, prise de recul.
IV) Bilan 4) Perspectives - Exploitations des résultats (variations des paramètres). - Ajout d’un critère d’énergie pour le forwarding. - Gestion plus fine du coût d’envoi de paquets. - Création module NUGGETS pour NS (add on).