Distribution d`une interface de modélisation pour ns-2
Transcription
Distribution d`une interface de modélisation pour ns-2
UFR Sciences et Technologies Université de la Réunion Distribution d'une interface de modélisation pour ns-2 Master 1 Sciences et Technologies de l'information et de la Communication (STIC) LAROSE Cedrik ANELLI Pascal Université de la Réunion Laboratoire d'Informatique et de Mathématiques(LIM) 2009/2010 1 Sommaire 1. Introduction 2 2. Etat de l'art 3 2.1 NS WorkBench . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2 TCP eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.3 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.Travaux réalisées 7 3.1 Documentation utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2 Documentation développeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.3 Amélioration du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.4 Publication des travaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.Conclusion 10 2 1. Introduction Ce travail d'étude et de recherche à été réalisé sous la tutelle de M. Pascal ANELLI du laboratoire d'informatique et de mathématiques (LIM) de l'UFR des sciences et technologies de l'université de la Réunion. L'objectif de ce TER était de faire la distribution d'une interface de modélisation de ns2 développé à l'Université de la Réunion par M. Anelli. Network Simulator ou ns-2 est un logiciel libre de simulation par événements discrets très largement utilisé dans la recherche académique et dans l'industrie. Il est considéré par beaucoup de spécialistes des télécommunications comme le meilleur logiciel de simulation par événements discrets, en raison de son modèle libre, permettant l'ajout très rapide de modèles correspondant à des technologies émergentes. Il est basé sur l'utilisation de langages de scripts pour la commande des simulations (OTcl) alors que le cœur des simulations est implémenté avec le langage C++. OTcl est un langage orienté objet qui est une extension de Tcl qui fut créé par David Wetherall au MIT. C'est un langage qui tourne principalement sur les environnements Unix. De nombreux chercheurs effectuent des simulations ns-2 pour tester leurs idées dans le stade précoce du protocole de conception. En règle générale, chaque chercheur écrit ses propres scripts ns-2 qui servent à dupliquer des topologies réseaux et modèles de trafic et à effectuer les mesures de performance. Le logiciel NS est fourni avec une interface graphique (NAM) permettant de démontrer le fonctionnement des réseaux. Ce qui en fait un outil à valeur pédagogique très intéressante. Ce logiciel est notamment utilisé en Licence 3 et Master 1 à l'Université de La Réunion pour les simulations en travaux pratiques des modules de « Réseaux Informatiques ». L'utilisation de ns-2 peut se révéler parfois très compliqué. L'écriture d'un modèle de simulation est un travail long, qui demande une bonne connaissance de l'interface OTcl de ns-2 et avec une documentation partielle, ce travail d'écriture de script est fastidieux. Lorsque des conditions changent, le modèle de simulation peut évoluer en une multitude de fichiers qui devient complexe à gérer. Il faut aussi savoir que les données et les instructions sont mélangés. Les données correspondent aux paramètres qui décrivent le modèle de simulation et les traitements d'analyses à réaliser sur les traces de simulations. Nous proposons donc une bibliothèque de scripts qui permet à tout utilisateur de pouvoir constituer rapidement et sans connaissance du Tcl, un modèle de simulation pour ns-2. L'idée de base est de séparer les données des instructions. Ce rapport détail la mise en oeuvre du TER qui avait été découpé en plusieurs phases, notamment: – le développement la documentation de l'utilisateur à partir d'une documentation existante – l'élaboration d'une documentation du développeur – une amélioration d'un point de vue de la conception objet – la publication des travaux 3 2. Etat de l'art La communauté de développeur ns-2 ne dispose pas toujours d'un ensemble de repères qui peut servir à faire des comparaisons valables entre les schémas proposés par les différents groupes de recherche. Cependant, il est possible de trouver des travaux de recherche qui se rapproche de ce qui été fait dans le cadre de ce projet. Nous allons faire un bref bilan de ce qui à été réalisé par les différents groupes dans ce domaine, avec notamment: – le projet NS-2 WorkBench, – l'outil TCP eval. 2.1 NS-2 WorkBench Le projet NS-2 WorkBench (nsBench) a été developpé à l'université de DePaul à Chicago. L'objectif du projet était de développer des outils d'aide qui permettent automatiquement de créer, d'analyser et de visualiser les scripts et traces de simulation ns-2. Le nsBench fonctionne avec une interface utilisateur graphique fonctionnant en mode cliquer-glisser. nsBench est utilisé a l'université de DePaul par les étudiants du premier cycle et des cycles supérieurs pour les cours de réseaux. L'ajout de nouveaux composants tel que les noeuds ou les liens, le paramétrage de ces composants ainsi que la définition des scénarios de simulation se font via l'interface utilisateur. nsBench rend le développement et l'analyse de simulation ns-2 à la fois plus rapide et plus facile. Le logiciel a été developpé en Java et distribué sous forme d'un fichier jar. Le logiciel permet aussi de générer les scripts OTcl correspondant aux différents objets crées ainsi 4 que les scénarios de simulation. Dans un même registre que le nsBench, il existe aussi le logiciel nscript developpé à l'université de George Washington aux Etats-Unis. Le nscrpit a aussi été developpé en Java , fonctionne en mode interface utilisateur graphique et permet la géneration automatique de scripts. Toutefois, la possibilité est donnée à l'utilisateur d'étendre le modèle en créant ses porpres librairies dans les 2 cas. 2.2 TCP eval Le TCP eval est un outil d'évaluation ns-2 des performances de TCP qui a été developpé par les laboratoires NEC en Chine. Cet outil comprend plusieurs topologies typiques et les modèles de trafic et il mesure quelques-uns des metriques les plus couramment utilisées, et il peut générer automatiquement des statistiques et des graphiques de simulation. Grâce à cet outil, il suffit simplement de définir les scénarios de simulation (la topologie du réseau, le modèle de trafic et les indicateurs de performance). L'outil est très facile à utiliser et à étendre. Il permet d'économiser beaucoup de temps passé dans l'écriture de scripts de simulation ns-2. L'outil est distribué sous forme de patch pour la version 2.31 de ns-2 et se lance en ligne de commande. 2.3 Comparaison Nous proposons une interface de modélisation ainsi qu'une bibliothèque de scripts visant à constituer rapidement des modèles de simulations sans une grande connaissance de Tcl. Elle offre des fonctions d'analyse des traces produites par la simulation. Ces fonctions de post-process calculent les métriques pour évaluer le service perçu par un flot comme le taux de perte, le débit écoulé, etc. Le modèle de simulation ainsi que le post-process sont spécifiés dans un fichier dit de ressources. Les fichier ressources comportent l'ensemble des paramètres de description d'une étude: le modèle de simulation et les analyses . Des exemples de fichiers ressources sont aussi fournis. L'utilisateur pourra ainsi modifier les fichiers ressources en fonction du scénario qu'il souhaite établir, les mesures qu'il souhaite effectuer et les traces qu'il veut obtenir. Il pourra s'aider de la documentation utilisateur(Annexe) qui détaille le fonctionnement de chaque composant du fichier ressources. Par exemple, dans un fichier ressource, le code suivant indique les métriques à mesurer sur un flot TCP, notamment: l'activité, le débit utile total et le débit utile. set conf(pkt) { \ 5 {Flow { \ { {*} {activity goodputT goodput}} \ }\ }\ } Les simulation se lancent en ligne de commande comme pour le TCP eval. ns <nom du script> <nom du test> -f <nom du fichier ressources> [options] Les graphiques correspondant à aux métriques indiquées peuvent être obtenues en lançant la simulation en fonction des options choisies. La documentation fournie (Annexe) comprend aussi un guide du développeur destiné à ceux qui voudront étendre le modèle. Cela correspond à écrire de nouveax fichiers de scripts. Les outils fournies par les différents équipes ont tous pour objectif de faciliter l'utilisation de ns-2. Les outils nsBench et nscript privilégient le fonctionnement automatique. Ce qui fait que 6 l'utilisateur peut partir de rien, et arriver à créer un modèle de simulation et générer les scripts qui correspondent. Cette approche est d'une part intéressante car elle évite a l'utilisateur de devoir écrire des script en OTcl s'il ne maîtrise pas ce langage. Mais d'autre part elle retire la possibilité a l'utilisateur de pouvoir programmer un minimum. De plus, même si l'utilisateur réalise son objectif, qui est de faire un modèle de simulation, rien ne garantit le fait qu'il ait compris le mécanisme qui existe dèrriere la création des différents composants de son modèle. L'approche utilisé par l'équipe des laboratoires NEC ressemble le plus à celui que nous avons adopté. C'est un outil qui fournissant des topologies et des modèles typiques qui peuvent être utilisé pour créer un scénario de simulation. Le TCP eval lance aussi en ligne de commandes. Cependant elle a l'inconvénient de n'etre fonctionnelle que sur la version 2.31 de ns-2, qui est une ancienne version, contrairement à la bibliothèque que nous proposons qui fonctionne su la version 2.34, qui est la dernière version, ainsi que les version antérieurs. Ceci dût au fait que l'outil proposé utilise seulement des formats génériques de traces. 7 3. Travaux réalisés Afin de pouvoir mener à bien l'objectif à atteindre, le TER avait été divisé en plusieurs phases, notamment: – le développement la documentation de l'utilisateur à partir d'une documentation existante – l'élaboration d'une documentation du développeur – une amélioration d'un point de vue de la conception objet – la publication des travaux 3.1 Documentation utilisateur La première phase du TER fût de réaliser la documentation utilisateur de l'outil de simulation. A savoir qu'une partie de cette documentation utilisateur existait déjà mais n'était pas complète car il y manquait les évolutions et les améliorations apportés à la bibliothèque de scripts. Il fallait donc completer la documentation. D'autre part la documentation avait été écrit en français Dans un soucis d'atteindre une plus grande partie de la communauté des utilisateurs ns-2, il était donc plus judicieux de publier une documentation en anglais. La documentation utilisateur présente en détails différents aspects de l'interface de modélisation, dont: – la structure et syntaxe des fichiers ressources – la définition des composants (topologies du réseau, systèmes d'extrémités) – l'implémentation du modèle d'erreur – l'analyse de traces – le contrôle de l'éxécution La documentation à été réalisé avec LaTeX qui est particulièrement utilisé dans les domaines techniques et scientifiques pour la production de documents de taille moyenne ou importante. 3.2 Documentation développeur La deuxième phase du TER consistait à développer une documentation du développeur pour aider ceux qui ne voudront pas s'arrêter à l'utilisation seulement. Le but étant de donner à ceux qui auront envi de développer leur propre modèle ou d'étendre ceux existant, le moyen de la faire en se basant sur la bibliothèque de scripts proposé. La documentation présente en détails la structure d'un modèle de simulation en donnant des exemples de codes pouvant servir à: – initialiser un modèle, – définir une topologie, – créer les souces, le trafic et la connexion entre les noeuds, 8 – définir les traitements à effectuer après la simulation, – tracer les courbes des paramètres après le traitement. Cette phase consistait concrètement à faire du reverse engineering afin de comprendre le fonctionnement de l'interface de modélisation, pour être en mesure d'expliquer son implémentation et les différents modules qui ont été developpés. Le code des différents composants d'un modèle de simulation ns-2 sont écrits en OTcl. Il a donc fallu apprendre les bases de ce langage, pour mieux comprendre l'implémentation des composants et pouvoir détailler le fonctionnement de chaque composants dans la documentation. 3.3Amélioration du code Les codes de l'interface de modélisation ont été écrite par M. Anelli. La troisième phase consistait à devoir améliorer une partie du code effectuant les traitements d'un point de vue conception objet. A savoir qu'au départ, l'analyse des traces de simulation et les calculs mathématiques étaient réalisés dans la même classe. L'objectif était de faire un découplage pour avoir une classe dédiée aux calculs. Au final, on se retouve avec une classe Metric et une classe Math. L'objectif de la classe Metric étant d'analyser les traces de simulations sur un certains nombres de propriétés charactérisant un chemin de routage. La classe Metric fait appel à la classe Math et définit ainsi une relation d'association avec cette classe. L'interet de cette adaptation était de simplifier la classe Metric et aussi dans un soucis de la réutilisabilité de la classe Math, pour qu'elle puisse être appelé par d'autre classes ou des versions modifiées de la classe Metric. Math Metric makeData() average() mean() statistics() cdf() 9 3.4 Publication des travaux La dernière phase du projet consiste à mettre en ligne les travaux réalisés. Il s'agira ici de faire le packaging et la communication pour la communauté des utilisateurs ns-2. La distribution sera faite sous une licence publique et la mise en ligne sera effectué sur le site web personnel de M. Pascal Anelli. 10 4. Conclusion Ce TER a été très enrichissant sur le plan académique et m'a permis d'acquérir certains techniques de travail. D'un point de vue académique, le TER a requis l'apprentissage des bases de nouveaux langages tels que OTcl qui est utilisé dans la définitions des objets en ns-2 et aussi LaTeX pour la structuration de document scientifique. Le TER m'a permis de mettre en oeuvre et mieux comprendre le mécanisme de reverse engineering car dans une phase du projet, il a fallu analyser du code pour comprendre l'implémentation de différents objets et par la suite décrire ce fonctionnement dans un documentation destinée aux développeurs. De plus, comme j'envisage de m'orienter dans l'administration de système, un domaine ayant très aux réseaux, ce TER m'a permis d'acquérir des connaissances et compétences qui me seront certinement utiles à l'avenir. La principale difficulté rencontré fût de pouvoir comprendre le codes et techniques et de programmation utilisés par un développeur aguéri, avec une connaissance limité du langage. 11 Remerciements Mes remerciements vont à M. Pascal Anelli qui a été d'un grand soutien et m'a poussé à perfectionner le travail accompli dans le cadre de ce TER Bibliographie George Washington University website: http://home.gwu.edu/~ecamposn/software.html NS-2 Workbench Project page: http://www.mnlab.cs.depaul.edu/projects/nsbench/ NS2 TCP Evaluation Tool page: http://labs.nec.com.cn/tcpeval.htm 12