Вы находитесь на странице: 1из 5

1.

Présentation de la plateforme OMNET++ :


OMNET++ est un environnement de simulation à évènements discrets orienté objet, basé sur
C++. Son grand avantage qu’il est open source (projet a débuté depuis 1992). Il est utilisé
pour la simulation des réseaux de communication, les systèmes multiprocesseurs, et d'autres
systèmes distribués. Grace à son architecture modulaire, OMNET++ est très largement
répandu dans divers domaines d'applications tel que :
 La modélisation des protocoles de communications,
 La modélisation des réseaux filaires et sans fils,
 La modélisation des systèmes repartis,
 Les architectures Hardware,
 En général, il peut être utilise pour n'importe quel système évènements discrets pouvant
être modélise selon des entités communiquant par envoient de messages OMNET++ est
basé sur la plateforme Eclipse. Il fournit des outils pour la création et la configuration des
modèles de réseaux (les fichiers NED et INI) et des outils pour l'exécution des
programmes ainsi que pour l'analyse des résultats de simulation.
2. Architecture de l’OMNET++
L'architecture de l’OMNET++ est basée sur les modules. Ces modules (composants) sont
organisés hiérarchiquement. Un module de base est un module simple, alors qu’un module
composé est groupe de modules simples. Ces composants modules peuvent eux-mêmes être
regroupés en compound modules. Le nombre de niveau hiérarchique n'est pas limité. Ces
modules communiquent entre eux par le biais de messages. Les feuilles de cette architecture
sont les modules simples qui représentent les classes C++. Pour chaque module simple
correspond un fichier .cc et un fichier .h. Les paramètres, les sous modules et les ports de
chaque module sont spécifiés dans un fichier .ned.
L'architecture est construite de telle sorte que les simples modules sont à la fois les émetteurs
et destinataires des messages. Les Composants modules se contentent de relayer les messages
aux simples modules de façon transparente. On peut attribuer différent paramètre aux
connections reliant les modules: des délais de propagation, des débits de données, des taux
d'erreur, etc.
La communication entre les différents modules se fait à travers les échanges de messages. Les
messages peuvent représenter des paquets, des trames d'un réseau informatique, des clients
dans une file d'attente ou bien d'autres types d'entités en attente d'un service. Les messages
sont envoyés et reçus à travers des ports qui représentent les interfaces d'entrer et de sortie
pour chaque module.
La conception d'un réseau se fait dans un fichier .ned et les différents paramètres de chaque
module sont spécifiés dans un fichier .ini. OMNET++ génère à la fin de chaque simulation
deux nouveaux fichiers omnet.vec et omnet.sca qui permettent de tracer les courbes et
calculer des statistiques.
3. Les principaux fichiers d’OMNET++ :
Les différents fichiers sont :
Fichier (. Ned): (Network descriptor file). La topologie d’un modèle d’un modèle OMNeT++
est décrite à l’aide du langage NED (Network Description). Il permet à l’utilisateur de
déclarer des modules simples, de les connecter et de les assembler dans des modules
composés. Il spécifie encore au simulateur le module composé final à simuler en lui attribuant
le mot clé network.
NED est un langage déclaratif. Il se base, comme présenté précédemment, sur une structure
hiérarchique, ce qui permet conjointement avec son fonctionnement orienté-composants
d’alléger le degré de complexité des modules implémentés et de favoriser le déploiement de
plusieurs bibliothèques comme INET et MiXiM.
NED définit seulement la structure d’un modèle sans se soucier de son comportement et laisse
un sous-ensemble de ses paramètres ouvert. Le comportement sera fixé, ensuite, à l’aide
d’une implémentation C++ des modules simples. Quant aux paramètres, ils recevront leurs
valeurs à partir d’un fichier ini dit de configuration.
Fichier (.ini): Est lié étroitement avec le fichier NED. Permet à l’utilisateur d’initialisé les
paramètres des différents modules ainsi la topologie du réseau.
Fichier (.msg) : Les modules communiquent en échangeant des messages. Ces derniers
peuvent être déclarés dans un fichier dont l’extension est (.msg) où l’on peut ajouter des
champs de données. OMNeT++ traduira les définitions de messages en classes C++.
4. Bibliothèques
On peut classer les bibliothèques en OMNeT++ en deux catégories : une première regroupant
les bibliothèques de modèles, la deuxième englobe les bibliothèques de simulation.
4.1 Bibliothèques de modèles
Ces bibliothèques ne sont pas incluses initialement à l’environnement OMNeT++, c’est à la
charge de l’utilisateur de les installer. Elles sont développées par des groupes indépendants de
professionnels et de chercheurs et sont assimilées à des contributions à OMNeT++. Les
bibliothèques de modèles font souvent partie de grands projets multi-domaines appelés
frameworks et offrent une large panoplie de modèles de protocoles, de modèles d’applications
et de sources de trafics, ainsi que d’autres composants réutilisables et respectant le paradigme
modulaire d’OMNeT++.
Chaque framework suit son propre cycle de publication indépendamment d’OMNeT++.
Parmi les plus connus d’OMNeT++, on peut citer INET framework et les frameworks de
mobilité (MiXiM, Castalia, …)
4.1.1. INET framework
INET est considéré comme la bibliothèque de modèles standard d’OMNeT++. Elle était basée
initialement sur le paquetage IPSuite développé à l’université Karlstuhe puis maintenu par
l’équipe d’OMNeT++ en lui ajoutant des correctifs et de nouveaux modèles.
Elle contient actuellement des modèles de protocoles pour la suite TCP/IP (IPv4, IPv6,
TCP,SCTP, UDP, …), des modèles de la couche liaison pour les réseaux filaires et sans fils
(Ethernet, PPP, IEEE802.11, …), des modèles MPLS avec signalisation RSVP et LDP, un
support à la mobilité et plusieurs autres protocoles et composants.
Ses modules sont organisés dans des paquetages qui sont à leurs tours organisés selon les
couches du modèle OSI (exemple : inet.applications, inet.transport, …).
Du point de vue architectural, INET respecte le concept modulaire d’OMNeT++ : les
protocoles sont représentés par des modules simples dont les interfaces externes sont décrites
par des fichiers NED et le comportement est implémenté à l’aide de classes C++. Les nœuds
sont construits par composition de plusieurs modules simples.
D’autres modules (qui n’implémentent pas de protocoles) sont utilisés pour assurer des tâches
spécifiques au cours de la simulation : On en trouve côté nœud, le module InterfaceTable qui
contient la table des interfaces réseau (eth0, wlan0, …), les tables de routage RoutingTable et
RoutingTable6 pour IPv4 et IPv6 respectivement et le module NotificationBoard qui facilite
la communication entre les différents modules.
Au niveau réseau, on cite le module FlatNetworkConfigurator qui sert à attribuer les adresses
IP aux différents noeuds et de configurer un routage statique, le module ScenarioManager qui
contrôle les expériences de simulation et la planification d’évènements et le module
ChannelControl requis pour les simulations sans fil et permet de garder la trace des nœuds à
l’intérieur d’une zone d’interférences avec d’autres nœuds.
En ce qui concerne l’interaction entre ses différents éléments, INET gère la communication
entre les différentes couches de protocoles via un processus d’encapsulation/décapsulation
avec Control Info comme un objet attaché au message pour véhiculer une information
additionnelle à la couche prochaine.
Un mode d’appel direct est suivi pour lier les autres modules, souvent en communication.
Cela, est assuré par son module NotificationBoard qui joue le rôle d’intermédiaire entre le
module où les évènements apparaissent et les modules qui sont intéressés par ces évènements.
Son fonctionnement est basé sur le concept publication/abonnement selon lequel les modules
peuvent s’abonner à des catégories de changements (exemple : un tableau de routage change
d’état, un canal de communication devient libre). Quand l’un des changements se produit, le
module hôte (exemple : Table de routage, couche physique) informe le module
NotificationBoard, qui à son tour, diffuse l’information vers tous les modules à cette catégorie
de changement.
INET constitue aujourd’hui un framework incontournable pour OMNeT++. La richesse de ses
modèles et la réutilisabilité de ses composants lui ont garanti un large déploiement chez la
communauté OMNeT++ et lui ont permis d’être le socle sur lequel se basent plusieurs
extensions telle que CoRE4INET l’extension INET implémentant le protocole TTEthernet.
4.1.2. Les frameworks de mobilité
On distingue actuellement les deux frameworks : Castalia et MiXiM. Ils sont désignés pour
les réseaux mobiles et sans fils (réseaux de capteurs, BAN, ad-hoc, réseaux de véhicules, …)
et visent généralement les dispositifs réseaux embarqués à faible puissance.
Ils offrent des modèles pour la propagation des ondes radio, l’estimation d’interférence, la
consommation en énergie des émetteurs/récepteurs radios et les protocoles MAC sans fils. Les
chercheurs les utilisent pour tester les protocoles distribués avec des contextes de modèles
radio, canaux sans fils et comportement de nœuds réalistes. Le fait qu’ils sont hautement
paramétrables leurs permet aussi d’évaluer les caractéristiques d’une grande variété de
plateformes pour des applications spécifiques.
TP N°1
Installation de l’OMNET++

L’objectif de ce TP est la familiarisation avec le simulateur OMNET++ et la prise en main de


la conception, de l’implémentation et de la simulation d’un système distribué.

1. Installation du simulateur OMNET++


L'installation d'OMNET++ se fait en différentes étapes suivant une procédure d'installation
décrite dans le package téléchargé selon le système d'exploitation installé. Les éléments
installés sur l'ordinateur seront les suivants:
 Une bibliothèque de simulation interne.
 Un compilateur du langage descriptif de la topologie NED (nedc).
 Un éditeur de réseaux graphiques pour les fichiers NED (GNED).
 Un exécutable OMNET++.
 Une Interface graphique de simulation IDE.
 Un outil de documentation de module (opp_neddoc).
 Autres utilitaires (l'outil de création makefile, etc.).
 Une documentation, des simulations types, etc.
1.1 Installation De l’IDE sous Windows
 Ouvrez le répertoire OMNET
 Cherchez le programme Mingwenv.cmd et double-cliquez dessus pour le démarrer,
une console devrait s’afficher.
 Tapez la commande suivante : ./configure et attendez que la configuration soit
terminée.
 Tapez ensuite la commande suivante : make et attendez que la compilation se termine.
 Tapez la commande suivante : omnetpp . Ceci va démarrer le simulateur OMNET++.
 Pour pouvoir démarrer OMNET à partir du bureau, vous devez faire les configurations
suivantes :
 Fermez OMNET++
 Fermez mingwenv.cmd
 Repérez l’exécutable omnetpp.exe dans le répertoire IDE
 Double-cliquez dessous et choisissez : envoyer vers bureau pour créer un raccourci sur
le bureau.
 Allez sur les paramètres avancés du système Windows, cliquez sur Variables
d’environnement, choisissez la variable PATH et ajouter lui le chemin suivante
:<repertoire omnet>/bin . <repertoire omnet> représente le nom exacte du répertoire
OMNET.
 A présent, vous pouvez démarrer OMNET++ directement à partir du bureau.
1.2 Installation du simulateur OMNET++ sous Linux :

Pour installer OMNET++ sous Ubuntu, nous procédons comme suit:

1- Actualisez la base de données des packages disponibles. Vous devez exécuter la


commande suivante:
$ sudoapt-get update
2- Installez tous les paquets nécessaires pour compiler et exécuter OMNet++ : Vous pouvez
exécuter la commande suivante pour installer tous les paquets pour de multiples
plateformes:

$ sudoapt-getinstallbuild-essential gcc g++ bison flex perl tcl -devtk-dev libxml2-dev zlib1g-
dev default-jredoxygengraphviz libwebkitgtk -1.0-0

3- Pour utiliser Qtenv avec le support de visualisation 3D, installez les packages de
développement pour OpenSceneGraph(3.2 ou version ultérieure) et les packages
osgEarth(2.7 ou version ultérieure). ++ : Vous pouvez exécuter la commande suivante :
4- Pour activer le support de simulation parallèle optionnel, vous devez installer les packages
MPI par l’exécution de la commande suivante :

$ sudo apt-get install openmpi -bin libopenmpi-dev

5- Télécharger omnetpp-4.6-src.tgz à partir de : http://omnetpp.org,


6- Décompresser le fichier :
$ tar xvfz omnetpp-4.6-src.tgz

7- Définir les variables d'environnement de façon non permanente à travers la commande


suivante : $. Setenv

ou de façon permanente à travers la modification de fichier .bashrc


$ gedit ~/.bashrc

dans le répertoire home en ajoutant la ligne suivante :


Export PATH=$PATH:$HOME/omnetpp -4.6/bin puis enregistrer-le.
PATH=$PATH:$HOME/omnetpp-4.6/bin

8- Dans le répertoire omnetpp-4.6 taper la commande suivante : $ ./configure

9- Lorsque. /configure se termine, vous pouvez compiler OMNeT ++ à travers la


commande : $ make

Вам также может понравиться