REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON
Paix-Travail-Patrie Peace-Work-Fatherland
********* *********
MINISTERE DE L’ENSEIGNEMENT MINISTERY OF HIGHER EDUCATION
SUPERIEUR *********
********* UNIVERSITY OF DSCHANG
UNIVERSITE DE DSCHANG *********
********* FACULTY OF SCIENCES
FACULTE DES SCIENCES *********
********* DEPARTMENT DE MATHEMATICS
DEPARTEMENT DE MATHEMATIQUES &
& COMPUTER SCIENCES
INFORMATIQUE *********
*********
PROJET I
Niveau et spécialité: Master I RSD
RESEAUX SANS FIL ET RESEAUX MOBILES :
Etudes de Cas à l’aide des Logiciels
Rédigé par :
NS3 &
OMNET++
Noms et prénoms Matricules
DIPENE MESSACK SORELLE BLANDINE CM-UDS-23SCI1306
Sous La supervision de : Pr FUTE Elie
Année académique : 2023-2024
2 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
INTRODUCTION
La simulation informatique est devenue une méthodologie populaire pour l'étude des
performances de l'informatique et des télécommunications réseaux. Cette popularité résulte
de la disponibilité de divers outils sophistiqués et puissants progiciels de simulation, et aussi
en raison de la flexibilité du modèle construction et validation offertes par la simulation.
Alors que divers simulateurs de réseau existent pour construire une variété de modèles de
réseau, choisir un bon simulateur de réseau est très important dans la modélisation et l'analyse
des performances des réseaux sans fil. Un bien le simulateur est facile à utiliser ; plus flexible
dans le développement de modèles, la modification et validation ; et intègre une analyse
appropriée des données de sortie de la simulation, générateurs de nombres pseudo-aléatoires
et précision statistique des résultats de simulation. OMNeT++ devient l'un des simulateurs de
réseau les plus populaires car il a tous les caractéristiques d'un bon simulateur. Ce document
vise à fournir une description de quelques simulateurs existants, présenter les frameworks de
OMNET++ et l’implémentation d’un cas pratiques de réseaux sans fil et mobiles.
I : ETUDE ET DESCRIPTION DE QUELQUES SIMULATEURS
RÉSEAUX
Dans les réseaux informatiques, il est très couteux de valider et vérifier un protocole
ou un certain algorithme spécifique, c’est pour cela que les simulateurs de réseaux sont
utilisés. Les simulateurs du réseau offrent beaucoup d’économie, de temps et d’argent pour
l’accomplissement des taches de simulation et sont également utilisés pour que les
concepteurs des réseaux puissent tester les nouveaux protocoles ou modifier les protocoles
déjà existants d’une manière contrôlée et productrice. La mise en œuvre d’une simulation
nécessite une étape qui décrit la topologie du réseau et le comportement prévu de ses
composants, une seconde étape de simulation proprement dite qui permet enfin la récolte et
l'interprétation des résultats. Le but de ce chapitre est de présenter les caractéristiques de
quelques simulateurs, à titre comparatif. Il existe une multitude de simulateurs pour le réseau
informatique nous avons entre autre :
OPNET (Optimum Network Performance)
Simulateur Packet Tracer
Simulateur NS2
Simulateur NS3
Simulateur OMNET++
Etc
Dans le cadre de ce travail nous nous intéresserons uniquement sur Omnet++, et partiellement
de NS2 et NS3.
1. SIMULATEUR OMNET++
OMNet ++ pour Objective Modular Network Test bed in C++ , l'un des plus réussis
parmi les simulateurs proposant une amélioration de NS-2. Pour pallier les problèmes de
scalabilité de NS2, OMNet ++ utilise une approche orientée composant. Son plus bas niveau
de granularité pour l'abstraction reste les classes d'objets, les interactions se font donc à partir
de la spécification des interfaces fournies. Il se présente comme un ensemble de modules
interconnectés et organisés de façon hiérarchique. Les modules définis sont extensibles et
réutilisables. Son outil de visualisation, très puissant, permet une description complète des
scénarios basée sur le langage NED, ce qui lui confère une très bonne facilité d’utilisation. Sa
facilité de prise en main, sa disponibilité en licence libre pour les plateformes Windows et
Unix expliquent son gain croissant de popularité. De nouveaux outils s’inspirant de lui ont
donc été proposés, dans le but de remédier à ses faiblesses. Parmi eux nous avons:
L'outil de développement dans le projet européen EYES pour la
prise en compte de la mobilité et une modélisation de la
consommation d'énergie.
Le simulateur CASTALLIA pour l'ajout de fonctionnalités dédiées
aux réseaux.
1.1Présentation de OMNET
OMNET++ est un environnement de simulation d’évènements discrets. Utilisé pour la
simulation des réseaux de communications et d’autres systèmes discrets, grâce à son
architecture modulaire OMNET++ est très répandu dans divers domaines d’applications tels
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 Hardwares ;
En général il peut être utilisé pour tout système a évènements discrets pouvant
être modélisé selon les entités communicantes par envoi de messages.
OMNET++ est basé sur la plateforme éclipse. Il fournit des outils pour la création et la
configuration des modèles de réseaux (les fichiersNED et INI) et les outils pour l’exécution
d’un lot de programme ainsi que pour l’analyse des résultats de simulation
1.2 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 dans l’ordinateur sont les suivants :
1 Une bibliothèque de simulation interne ;
2 Un compilateur du langage descriptif de la topologie
NED(nedc) ;
4 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
3 Un éditeur de réseaux graphiques pour les fichiers NED ;
4 Un exécutable OMNET++ ;
5 Une interface graphique de
simulation IDE ;
6 Un outil de documentation du
modèle ;
7 Etc…
1.3 Procédure d’installation
Téléchargez l' archive OMNeT ++ 6.0.1 ( https://omnetpp.org/omnetpp) .
Extrayez l'archive dans un nouveau dossier.
Tapez. /configure et après ce type make .
Ajoutez votre répertoire path/to/OMNeT/build dans votre variable
d'environnement PATH
Assurez-vous que votre installation fonctionne en tapant omnetpp.
L'environnement de développement OMNeT ++ devrait démarrer.
Vous trouverez d'autres instructions d'installation à l’adresse :
https://omnetpp.org/doc/omnetpp/InstallGuide.pdf .
Figure 2 : interface de démarrage d'omnet
1.4 Les principaux fichiers d’OMNET++
Les différents fichiers sont :
Le fichier (.ned): utilise le langage NED de description de réseau. Il peut utiliser en
02 modules : mode graphique ou mode texte qui permettent de décrire les ports du
module. Les erreurs commises sont indiquées en temps réel par un point rouge situé à
la gauche du code.
Le fichier (.init): il est étroitement lié avec le fichier NED .Permet à l’utilisateur
d’initialiser les paramètres des différents modules ainsi que la topologie du réseau .
Le fichier (.msg) : les modules communiquent échangeant les messages. Ces derniers
peuvent être déclarés dans un fichier dont l’extension est (.msg)où l’on peut rajouter
les champs données.OMNET++ traduira les définitions de messages en classes C++
1.5 Les plates formes d’OMNET++
Elles sont entre autre :
- Mobility FrameWork : cette plateforme assure la mobilité des hôtes dans le réseau,
leurs connectivités ainsi qu’un canal sans fil. Elle supporte la simulation des réseaux
sans fil, les réseaux mobiles et mêmes les capteurs sans fil.Le cœur de Mobility
FrameWork est composé de : la mobility controller ,channel control. Elle est réalisé
avec des modules de base, donc l’utilisateur peut les utilisés afin de créer et
implémenter de nouveaux protocoles pour la simulation.
- Mixim: est un simulateur qui intègre et développe plusieurs cadres existants pour la
simulations sans fil et mobiles dans OMNET++ .Mixim fournit des modèles detaillés
de canal sans fil ,la connectivité sans fil, la mobilité , les obstacles et les protocoles
Mqc comme IEEE 802.11b et IEEE 802.15.4 .
-Castalia : est également un simulateur de niveau pour les réseaux de capteurs basé sur
OMnet++.il s’agit d’un simulateur générique avec un canal sans fil et un model de
radio basé sur des données les mesurées.
2.SIMULATEUR NS3
IL Vise à remplacer son prédécesseur NS2, écrit en C++ et OTcl, pour tenter de remédier
à ses limites. Cependant, contrairement à NS2, il peut être utilisé sur les plateformes
Linux/Unix, OS X (Mac) et Windows. Les développeurs de NS3 ont décidé suite à
l’expérience tirée de NS2 d’associer les progrès des langages de programmation et du génie
logiciel au développement de l’architecture de NS3. C’est pourquoi, l’idée de la
rétrocompatibilité avec NS2 a été abandonné dès le départ. Cela libère NS3 de contraintes
héritées de NS2 et permet la construction d’un simulateur qui est bien conçu depuis le
début.NS3 fournit différents modules qui peuvent être modifiés et effectivement utilisés.
L'organisation du simulateur NS3.
3.COMPARAISON ENTRE LES SIMULATEURS NS3 ET OMNET++
Après avoir brièvement décrit les deux simulateurs réseau (NS3 et OMNET ++), nous
allons faire une étude comparative des deux simulateurs dans cette section. Les résultats de
cette étude sont présentés dans le tableau :
6 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
II : LES FRAMEWORK D’OMNET++
OMNeT ++ ( Objective M odular Network Testbed in C ++ est une bibliothèque pouvant
intégrer de nombreux frameworks de simulation C++ extensible, modulaire et basé sur des
composants,
principalement pour la construction de simulateurs de réseau. Ces Framework sont entre autre
: INET,
CASTALIA, MOBILITY FRAMEWORK, SIMULTE, MIXIM CORE4INET
1.FRAMEWORK INET
Qu'est-ce que le cadre INET ?
INET Framework est une bibliothèque de modèles open source pour l'environnement de
simulation OMNeT++. Il fournit des protocoles, des agents et d'autres modèles pour les
chercheurs et les étudiants travaillant avec des réseaux de communication. INET est
particulièrement utile lors de la conception et de la validation de nouveaux protocoles ou de
l'exploration de scénarios nouveaux ou exotiques. NET prend en charge une large classe de
réseaux de communication, y compris les réseaux câblés, sans fil, mobiles, ad hoc et de
capteurs. Il contient des modèles pour la pile Internet (TCP, UDP, IPv4, IPv6, OSPF, BGP,
etc.), des protocoles de couche liaison (Ethernet, PPP, IEEE 802.11, divers protocoles MAC
de capteur, etc.), un support affiné pour la couche physique sans fil, protocoles de routage
MANET, DiffServ, MPLS avec signalisation LDP et RSVP-TE, plusieurs modèles
d'application et de nombreux autres protocoles et composants. Il prend également en charge
la mobilité des nœuds, la visualisation avancée, l'émulation de réseau, etc.Plusieurs autres
cadres de simulation prennent INET comme base et l'étendent dans des directions
spécifiques, telles que les réseaux de véhicules, les réseaux superposés/peer-to-peer ou LTE.
1.1 MODE DE FONCTIONNEMENT
Conçu pour l'expérimentation, INET est construit autour du concept de modules qui
communiquent par passage de messages. Les agents et les protocoles réseau sont représentés
par des composants, qui peuvent être librement combinés pour former des hôtes, des routeurs,
des commutateurs et d'autres périphériques réseau. De nouveaux composants peuvent être
programmés par l'utilisateur et les composants existants ont été écrits de manière à être faciles
à comprendre et à modifier. NET bénéficie de l'infrastructure fournie par OMNeT++. Au-delà
de l'utilisation des services fournis par le noyau et la bibliothèque de simulation OMNeT++
(modèle de composants, paramétrage, enregistrement des résultats, etc.), cela signifie
également que les modèles peuvent être développés, assemblés, paramétrés, exécutés et leurs
résultats évalués dans le confort de l'IDE de simulation OMNeT++ ou depuis la ligne de
commande.INET Framework est maintenu par l'équipe OMNeT++ pour la communauté, en
utilisant des correctifs et de nouveaux modèles apportés par les membres de la communauté.
1.2 INSTALLATION D’INET
Il existe plusieurs façons d'installer INET Framework : Laissez l'IDE OMNeT++ ,le
télécharger et l'installer pour vous. C'est le moyen le plus simple. Acceptez simplement l'offre
d'installer INET dans la boîte de dialogue qui s'affiche lorsque vous démarrez l'EDI pour la
première fois, ou choisissez Aide Installer les modèles de simulation ultérieurement.
À partir du site Web INET Framework, http://inet.omnetpp.org. L'IDE installe toujours la
dernière version stable compatible avec votre version d'OMNeT++. Si vous avez besoin d'une
autre version, elles sont disponibles en téléchargement sur le site Web. Les instructions
d'installation y sont également fournies. De GitHub. Si vous avez de l'expérience avec git,
clonez le projet INET Framework (inet-framework/inet), consultez la révision de votre choix
et suivez le fichier INSTALL à la racine du projet.
1.3 INSTALLATION DES EXTENSIONS D’INET
Si vous envisagez d'utiliser des extensions INET (par exemple Veins ou SimuLTE), suivez
les instructions d'installation fournies avec celles-ci.En l'absence d'instructions spécifiques, la
procédure suivante fonctionne généralement :
Tout d'abord, vérifiez si la racine du projet contient un fichier nommé
«’’project’’.
Si c'est le cas, le projet peut être importé dans l'IDE (utilisez Fichier ‣
Importer ‣ Général ‣ Projet existant dans l'espace de travail).
Assurez-vous que le projet est reconnu comme un projet OMNeT++ (la
boîte de dialogue Propriétés du projet contient une page intitulée OMNeT+
+) et qu'il répertorie le projet INET en tant que dépendance (vérifiez la
page Références du projet dans la boîte de dialogue Propriétés du projet).
S'il n'y a pas de fichier .project, vous pouvez créer un projet OMNeT++ vide
à l'aide de l'assistant Nouveau projet OMNeT++ dans Fichier ‣ Nouveau,
ajouter le projet INET en tant que dépendance à l'aide de la page
Références du projet dans la boîte de dialogue Propriétés du projet et copier
les fichiers source dans le projet.
1.4 USAGE
Le framework INET s'appuie sur OMNeT++ et utilise le même concept : des modules qui
communiquent par transmission de messages. Les hôtes, routeurs, commutateurs et autres
périphériques réseau sont représentés par des modules composés OMNeT++. Ces modules
composés sont assemblés à partir de modules simples qui représentent des protocoles, des
applications et d'autres unités fonctionnelles. Un réseau est à nouveau un module composé
OMNeT++ qui contient un hôte, un routeur et d'autres modules. Les modules sont organisés
dans une structure de répertoires qui suit à peu près les couches OSI :
8 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
src/inet/applications/ – générateurs de trafic et modèles d'application
src/inet/transportlayer/ – protocoles de la couche transport
src/inet/networklayer/ – protocoles et accessoires de la couche réseau
src/inet/linklayer/ – protocoles et accessoires de la couche liaison
src/inet/physicallayer/ – modèles de couche physique
src/inet/routing/ – protocoles de routage (internet et ad hoc)
src/inet/mobility/ – modèles de mobilité
src/inet/power/ – modélisation de la consommation d'énergie
src/inet/environment/ – modèle de l'environnement physique
src/inet/node/ – modèles de nœuds de réseau préassemblés
src/inet/visualizer/ – composants de visualisation (2D et 3D)
src/inet/common/ – divers composants utilitaires
Le langage OMNeT++ NED utilise des noms de packages hiérarchiques. Les packages
correspondent aux répertoires sous src/, donc par ex. le répertoire src/inet/transportlayer/tcp
correspond au package NED inet.transportlayer.tcp. Pour la modularité, le framework INET a
environ 80 fonctionnalités de projet (parties de la base de code qui peuvent être désactivées
en tant qu'unité) définies. Toutes les fonctionnalités du projet ne sont pas activées dans la
configuration par défaut après l'installation.
1.5 ARCHITECTURE D’INET
L’architecture d’INET est constitué de nœuds de réseau intégrés et autres modules de
niveau supérieur. INET fournit plusieurs nœuds de réseau pré-assemblés avec des
composants soigneusement sélectionnés. Ils prennent en charge la personnalisation via des
paramètres et des types de sous-modules paramétriques, mais ils ne sont pas destinés à être
universels. Parfois, il peut être nécessaire de créer des modèles de nœuds de réseau spéciaux
pour des scénarios de simulation particuliers. Dans tous les cas, la liste suivante donne un
avant-goût des nœuds de réseau intégrés.Nœuds de réseau intégrés et autres modules de
niveau supérieur. INET fournit plusieurs nœuds de réseau pré-assemblés avec des
composants soigneusement sélectionnés. Ils prennent en charge la personnalisation via des
paramètres et des types de sous-modules paramétriques, mais ils ne sont pas destinés à être
universels. Parfois, il peut être nécessaire de créer des modèles de nœuds de réseau spéciaux
pour des scénarios de simulation particuliers. Dans tous les cas, la liste suivante donne un
avant-goût des nœuds de réseau intégrés :
StandardHost : contient les protocoles Internet les plus courants : UDP, TCP, IPv4,
IPv6, Ethernet, IEEE 802.11. Il prend également en charge un modèle de mobilité
optionnel, des modèles énergétiques optionnels et un nombre quelconque
d'applications entièrement configurables à partir de fichiers INI.
EthernetSwitch : modélise un commutateur Ethernet contenant une unité de relais et une
unité MAC par port.Le routeur fournit les protocoles de routage les plus courants :
OSPF, BGP, RIP, PIM.
AccessPoint : modélise un point d'accès Wifi avec plusieurs interfaces réseau IEEE
802.11 et plusieurs ports Ethernet.
WirelessHost : fournit un nœud de réseau avec une interface réseau IEEE 802.11 (par
défaut) en mode infrastructure, adaptée à une utilisation avec un point d'accès.
AdhocHost : est un WirelessHost avec l'interface réseau configurée en mode ad hoc et le
transfert activé.
Les nœuds du réseau communiquent au niveau du réseau en échangeant des messages
OMNeT++ qui sont les représentations abstraites des signaux physiques sur le support de
transmission. Les signaux sont soit envoyés via des connexions OMNeT++ dans le cas câblé,
soit envoyés directement à la porte du nœud de réseau récepteur dans le cas sans fil. Les
signaux encapsulent des paquets spécifiques à INET qui représentent les données numériques
transmises. Les paquets sont en outre divisés en blocs qui fournissent des représentations
alternatives pour les petits morceaux de données (par exemple, les en-têtes de protocole, les
données d'application). De plus, certains composants se produisent au niveau du réseau, mais
ce ne sont pas des modèles de nœuds de réseau physiques. Ils sont nécessaires pour modéliser
d'autres aspects. Certains d'entre eux sont:
Un module de support radio tel que Ieee80211RadioMedium,
ApskScalarRadioMedium et UnitDiskRadioMedium (il y en a quelques-
uns) est un composant requis des réseaux sans fil.
PhysicalEnvironment modélise l'effet de l'environnement physique (c'est-
à-dire les obstacles) sur la propagation du signal radio. C'est un composant
facultatif.
Des configurateurs tels que Ipv4NetworkConfigurator,
L2NetworkConfigurator et NextHopNetworkConfigurator :configurent
divers aspects du réseau. Par exemple, Ipv4NetworkConfigurator attribue
des adresses IP aux hôtes et aux routeurs et configure le routage statique. Il
est utilisé lorsque la modélisation de l'attribution dynamique d'adresses IP
(par exemple via DHCP) ou lorsque le routage dynamique n'a pas
d'importance.
L2 NetworkConfigurator : permet de configurer des LAN 802.1 et de
fournir des paramètres liés à STP/RSTP tels que le coût de la liaison, la
priorité des ports et l'indicateur "is-edge".
ScenarioManager : permet des scénarios scénarisés, tels qu'une panne
temporisée et la récupération des nœuds du réseau.
Des coordinateurs de groupe sont nécessaires pour le fonctionnement de
certains modèles de mobilité de groupe. Par exemple, MoBanCoordinator
est le module coordinateur du modèle de mobilité MoBAN.
Des visualiseurs comme PacketDropOsgVisualizer : fournissent un rendu
graphique de certains aspects de la simulation en 2D (canvas) ou en 3D (en
utilisant OSG ou osgEarth). Le choix habituel est IntegratedVisualizer qui
regroupe une instance de chaque type de visualiseur spécifique dans un
module composé.
10 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
Figure 3 : Architecture d’INET
2.CORE4INET
Les outils de simulation sont d'une importance vitale pour explorer la faisabilité
technique et faciliter le processus distribué de conception d'infrastructures de véhicules.
CoRE travaille sur des modèles de simulation pour la simulation événementielle de réseaux
Ethernet en temps réel. Nos modèles de simulation sont publiés sous forme de module open-
source.Modèle de CoRE4INET :Ce modèle se base sur la plateforme OMNeT++ ainsi que
INET framework qui implémente les principales fonctionnalités de réseaux. Sa réalisation
passe par plusieurs modifications et extensions apportées au modèle Ethernet de base d’INET
framework.. Il fournit des protocoles Ethernet en temps réel comme AS6802 et AVB. Il a été
créé par le groupe de recherche CoRE (Communication over Realtime Ethernet) de la HAW-
Hamburg (Hamburg University of Applied Sciences). Actuellement, CoRE4INET prend en
charge :
TTEthernet (AS6802) IEEE 802.1 ;
Audio Video Bridging (AVB) / Mise en réseau sensible au temps (TSN)
VLAN ;
Priorités IEEE 802.1Q / IEEE P802.1p
3.MIXIM
OMNET++ MIXIM est un cadre de modélisation OMNeT++ créé pour les réseaux mobiles et
fixes sans fil (réseaux de capteurs sans fil, réseaux corporels, réseaux ad hoc, réseaux
véhiculaires, etc.). MiXiM Simulator est actuellement le cadre recommandé pour les
simulations sans fil détaillées. Il propose des modèles détaillés de propagation des ondes
radio, d'estimation des interférences, de consommation d'énergie des émetteurs-récepteurs
radio et des protocoles MAC sans fil (par exemple, Zigbee). Le framework MiXiM se
compose de fichiers de configuration qui définissent l’environnement mixnet, un simulateur
d'événements discrets qui instancie et exécute le réseau, produisant des observations qui sont
enregistrées aux fichiers, et des scripts d'analyse pour traiter les fichiers journaux et extraire
les résultats empiriques.
4.CASTALIA
Castalia : est un simulateur pour les réseaux de capteurs sans fil (WSN), les réseaux
corporels et généralement les réseaux d'appareils embarqués à faible consommation. Il est
basé sur la plate-forme OMNeT++ et utilisé par les chercheurs et les développeurs pour tester
leurs algorithmes et/ou protocoles distribués dans un modèle de canal et de radio sans fil
réaliste, avec un comportement de nœud réaliste, notamment en ce qui concerne l'accès à la
radio. Castalia utilise le modèle d'ombrage log normal comme l'un des moyens de modéliser
la perte de trajet moyenne, ce qui s'est avéré expliquer les données empiriques dans WSN.Il
modélise également la variation temporelle de la perte de trajet dans le but de capturer les
phénomènes d'évanouissement dans des environnements changeants (c'est-à-dire que les
nœuds ou des parties de l'environnement se déplacent). La modélisation des variations
temporelles de Castalia est conçue pour être ajustée aux données mesurées au lieu de faire
des hypothèses spécifiques sur la création d'évanouissements rapides. Les autres
fonctionnalités de Castalia incluent : la modélisation des processus physiques, la polarisation
et le bruit des dispositifs de détection, la dérive de l'horloge des nœuds et plusieurs protocoles
MAC et de routage mis en œuvre.OMNET ++ CASTALIA pour les réseaux de capteurs sans
fil (WSN), les réseaux corporels (BAN). OMNET ++ CASTALIA peut également être utilisé
pour évaluer différentes caractéristiques de plate-forme pour des applications spécifiques, car
il est hautement paramétrique et peut simuler une large gamme de plates-formes.
5.SIMULTE
Qu'est-ce que SimuLTE ?
Simulateur pour les réseaux LTE ;SimuLTE est un outil de simulation innovant permettant
une évaluation complexe des performances au niveau du système des réseaux LTE et LTE
Advanced (3GPP Release 8 et au-delà) pour le framework OMNeT++. SimuLTE est écrit en
C++ et est entièrement personnalisable avec une interface enfichable simple. On peut
également développer de nouveaux modules implémentant de nouveaux algorithmes et
protocoles. SimuLTE est un projet open source basé sur OMNeT++ et INET Framework. La
participation et les contributions sont les bienvenues.
6. MOBILITY FRAMEWORK
Ce cadre est destiné à prendre en charge les simulations sans fil et mobiles au sein
d'OMNeT++. Le cadre d e base implémente la prise en charge de la mobilité des nœuds, la
gestion dynamique des connexions et un modèle de canal sans fil. De plus, le cadre de base
fournit des modules de base qui peuvent être dérivés afin d'implémenter ses propres modules.
Avec ce concept, un programmeur peut facilement développer ses propres implémentations
12 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
de protocole pour Mobility Framewoek (MF) sans avoir à gérer les éléments d'interface et
d'interopérabilité nécessaires.
Le framework peut être utilisé pour simuler :
Réseaux fixes sans fil ;
Réseaux sans fil mobiles ;
Réseaux distribués (ad-hoc) et centralisés ;
Réseaux de capteurs ;
Réseaux sans fil multicanaux ;
6.1 ARCHITECTURE DE MOBILITY FRAMEWORK
Cette plateforme assure la mobilité des hôtes dans le réseau, leurs connectivités ainsi qu’un
canal sans fil. Elle supporte la simulation des réseaux sans fil, les réseaux mobiles et mêmes
les capteurs sans fil.Le cœur de Mobility FrameWork est composé de :
La mobility
controller Channel
control
Elle est réalisée avec des modules de base, donc l’utilisateur peut les utilisés afin de créer et
implémenter de nouveaux protocoles pour la simulation
Figure 4 : architecture de mobility Framework
Figure 5 : Architecture d’un nœud interne
Simuler c’est reproduire le fonctionnement d’un système réel à partir de la
modélisation des éléments qui le constitue et de leur fonctionnement. L’observation réelle de
ces systèmes est généralement complexe, à risques ou couteuse. Il s’agit d’une approche
permettant de représenter le fonctionnement d’un système réel constitué de plusieurs entités,
de modéliser les différentes interactions entre elles, et enfin d’évaluer le comportement global
du système et son évolution dans le temps afin de prévoir son comportement dans le monde
réel ou d’en définir les meilleurs paramètres de fonctionnement. Dans ce document, nous
avons présenté quelques outils de simulation et leurs caractéristiques principales. Ces
simulateurs, qui sont entre autre NS2, NS3, OMnet. Pour conclure le choix d’un simulateur
dépend du problème qu’on a en face de soi.
14 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
III :CAS PRATIQUE : SIMULATION D’UN ENSEMBLE D’OBJET CONNECTE
AVEC UN FRAMEWORK OMNETT++
Figure 6 : Ensemble d'objets connectés
Question 1:
1 Conception formelle du système.
Le système d'objets connectés comprend un réseau de plusieurs composants interconnectés. Il
comprend des Access Points pour la connectivité sans fil, un Local Hub composé de
Raspberry Pi, Node-RED, Mosquitto et une base de données MongoDB pour la collecte, le
traitement et le stockage des données. L'Access Point est connecté à Heroku, qui héberge une
API REST pour interagir avec le système. L'antenne relais est utilisée pour transmettre les
données du système à un smartphone de visualisation analytics via le protocole HTTP.
L'ensemble du système permet la collecte, le traitement, le stockage et la visualisation des
données provenant des objets connectés et des clients IoT. Source PandaCodeur.com
2 Description de chaque composant du système.
La norme IEEE 802.11 est un standard international décrivant les caractéristiques d'un
réseau local sans fil (WLAN). La norme IEEE 802.11 est en réalité la norme initiale offrant
des débits de 1 ou 2 Mbps. Des révisions ont été apportées à la norme originale afin
d'optimiser le débit (c'est le cas des normes 802.11a, 802.11b, 802.11g et 802.11p, appelées
normes 802.11physiques) ou bien préciser des éléments afin d'assurer une meilleure sécurité
ou une meilleure interopérabilité .Par rapport au modèle OSI, l’IEEE 802.11 ne concerne
qu’une partie de la couche de liaison de données et la couche physique et reste donc
entièrement compatible avec les couches supérieures.
Point d'accès (Access Point) : Il s'agit d'un périphérique réseau qui
permet à d'autres dispositifs de se connecter à un réseau sans fil. Dans
cette simulation, le point d'accès est responsable de la communication
avec les nœuds de la simulation via WiFi.
Figure 7: Point d’Accès et WIFI
q Le CC3200-LAUNCHXL:est un kit de développement pour l'Internet des Objets (IoT) de
Texas Instruments. Il est basé sur le microcontrôleur SimpleLink Wi-Fi CC3200 de Texas
Instruments, qui combine une unité centrale de traitement (CPU) ARM Cortex-M4 avec une
puce Wi-Fi intégrée. Le kit de développement CC3200-LAUNCHXL est conçu pour
faciliter la création d'applications IoT sans fil en fournissant des exemples de code, des
outils de développement et des ressources en ligne. Il est livré avec un émetteur-récepteur
Wi-Fi intégré et une variété d'interfaces, y compris une carte microSD, une interface USB,
un port série et des broches d'E/S.
Figure 8 : CC3200-LAUNCHXL-CC3200 Launchpad Kit
16 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
q Local Hub :C'est un point central du système qui regroupe plusieurs
composants pour la collecte, le traitement et le stockage des données.
L'Access Point est un nœud sans fil capable de fournir un point d'accès Wi-
Fi pour les clients se connectant à Internet. La Raspberry Pi est connectée
à l'Access Point via Wi-Fi et sert de passerelle pour les messages entre
l'Access Point et les services cloud (Heroku, nous allons parler aborder cet
environnement cloud juste après). Mosquitto est un courtier de messages
MQTT utilisé pour publier et souscrire des messages dans l'ensemble du
système. MongoDB est une base de données NoSQL utilisée pour stocker
des données collectées à partir des nœuds et des clients IoT. Node-RED est
une plateforme de programmation visuelle utilisée pour créer des
workflows pour la collecte, la transformation et la visualisation de données.
Voici une description des différents éléments qui compose ce Local HUB :
Le Raspberry Pi est un ordinateur monocarte de petite taille, basé sur une architecture
ARM, qui a été développé dans le but de favoriser l'apprentissage de la programmation et
l'accès à l'informatique à bas coût. C'est un mini-ordinateur utilisé pour exécuter des
applications et des services dans le système IoT. Il est devenu extrêmement populaire en
raison de sa polyvalence, de sa faible consommation d'énergie et de son large éventail
d'applications possibles.
Voici une de quelques caractéristiques et fonctionnalités clés du Raspberry Pi :
1 Processeur et mémoire : Le Raspberry Pi est équipé d'un processeur ARM,
généralement de la famille Broadcom, et dispose de différentes variantes
avec des vitesses de processeur variables. Il est doté de mémoire vive
(RAM) intégrée, qui varie également selon le modèle.
2 Système d'exploitation : Le Raspberry Pi est compatible avec plusieurs
systèmes d'exploitation, notamment Raspbian (basé sur Linux), Ubuntu,
Windows IoT Core, et d'autres distributions Linux. Cela permet aux
utilisateurs de choisir l'environnement logiciel qui convient le mieux à leurs
besoins.
Figure 9 : Raspberry-pi
Node-RED est une plateforme de programmation visuelle open-source conçue pour
créer des applications IoT (Internet des objets) et des workflows de manière intuitive. Elle
offre une interface graphique conviviale qui permet aux utilisateurs, même sans compétences
de programmation avancées, de connecter des nœuds prédéfinis pour automatiser des tâches,
traiter des données et créer des interactions entre différents systèmes. Voici quelques
caractéristiques et fonctionnalités clés de Node-RED :
1 Approche de programmation basée sur les flux : Node-RED adopte une
approche de programmation basée sur les flux, dans laquelle les utilisateurs
peuvent créer des workflows en connectant des nœuds ensemble. Les nœuds
représentent des blocs de fonctionnalités qui peuvent être configurés pour
effectuer des actions spécifiques.
2 Interface graphique conviviale, Large gamme de nœuds prédéfinis,
Connectivité étendue (Node-RED offre une connectivité avec de nombreux
protocoles et services couramment utilisés dans l'écosystème IoT. Il prend
en charge des protocoles tels que MQTT, HTTP, WebSocket, ainsi que des
services cloud tels que Amazon Web Services (AWS), Microsoft Azure,
Google Cloud Platform, et bien d'autres. Cela permet l'intégration
transparente de différents systèmes et la collecte de données à partir de
sources variées.)
Figure 10 : Node-Red
MongoDB est une base de données NoSQL open-source, orientée document, conçue pour
stocker et gérer de grandes quantités de données non structurées ou semi-structurées. Elle
offre une flexibilité, une évolutivité et une performance élevées, ce qui en fait un choix
populaire pour les applications modernes, y compris dans le domaine de l'Internet des objets
(IoT). Voici quelques des caractéristiques et fonctionnalités clés de MongoDB :
18 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
1 Modèle de données flexible : MongoDB utilise un modèle de données basé
sur des documents JSON (JavaScript Object Notation). Les données sont
stockées sous forme de documents, qui sont des structures flexibles
similaires à des objets JSON. Les documents peuvent contenir des champs
de différentes structures et tailles, ce qui permet une grande flexibilité dans
la gestion des données.
2 Pas de schéma rigide : Contrairement aux bases de données relationnelles
traditionnelles, MongoDB n'impose pas de schéma rigide. Cela signifie que
les documents stockés dans une collection peuvent avoir des structures
différentes, ce qui facilite l'ajout, la modification et la suppression de
champs sans nécessiter une modification de schéma préalable. Cela permet
une évolutivité et une agilité accrues lors du développement d'applications.
Figure 11 : MongoDB
Mosquitto est un courtier de messages MQTT (Message Queuing Telemetry Transport) open
source qui facilite la communication entre les dispositifs de l'Internet des objets (IoT). Un
courtier (ou broker) est un composant logiciel qui facilite l'échange de messages entre
différents dispositifs d'un système. MQTT est un protocole de messagerie léger et simple
conçu pour les réseaux à faible bande passante et à haute latence. Mosquitto est écrit en
langage C et est disponible sur différentes plateformes, y compris Windows, Linux, macOS,
et d'autres systèmes d'exploitation. Il fournit un courtier MQTT qui permet aux clients de
publier et de souscrire des messages sur des sujets spécifiques. Les clients peuvent être des
dispositifs IoT, des applications ou des services qui communiquent entre eux via Mosquitto.
Voici quelques caractéristiques clés de Mosquitto :
1 Protocole MQTT : Mosquitto implémente le protocole MQTT version 3.1 et
3.1.1, qui est largement utilisé dans l'IoT pour la communication entre les
dispositifs.
2 QoS (Quality of Service) : Mosquitto prend en charge trois niveaux de
qualité de service pour garantir la livraison des messages : QoS 0 (au plus
une fois), QoS 1 (au moins une fois) et QoS 2 (exactement une fois).
3 Authentification et contrôle d'accès : Mosquitto permet d'authentifier les
clients lors de la connexion et de mettre en place des règles de contrôle
d'accès pour restreindre les actions des clients sur les sujets spécifiques.
4 Sécurité : Mosquitto prend en charge le chiffrement SSL/TLS pour sécuriser
la communication entre les clients et le courtier MQTT.
Figure 12 : Broker Mosquitto
Heroku:c’est une plateforme en tant que service (PaaS) qui permet aux
développeurs de déployer, gérer et mettre à l'échelle leurs applications
web facilement. Elle est basée sur le cloud et offre un environnement
d'exécution pour héberger des applications en ligne. Heroku permet
l'hébergement d'applications et de services web, y compris les API
REST. Cela permet une communication bidirectionnelle entre le
système IoT et Heroku.
Voici une description détaillée d'Heroku :
1 Déploiement facile : Heroku simplifie le processus de déploiement des
applications web en fournissant une interface conviviale et des outils de
ligne de commande pour gérer le déploiement. Les développeurs peuvent
facilement déployer leurs applications en quelques étapes simples, sans
avoir à se soucier de la configuration des serveurs ou de l'infrastructure
sous-jacente.
2 Support multi-langages : Heroku prend en charge plusieurs langages de
programmation populaires tels que Ruby, Node.js, Python, Java, PHP, Go,
etc. Cela permet aux développeurs de choisir le langage avec lequel ils sont
à l'aise et de développer des applications dans leur langage préféré.
3 Intégration avec des services tiers : Heroku offre une intégration
transparente avec de nombreux services tiers populaires tels que des bases
de données (PostgreSQL, MySQL, MongoDB), des systèmes de
messagerie (RabbitMQ, Redis), des services de cache, des outils de suivi et
de gestion des erreurs, etc. Cela permet aux développeurs d'utiliser ces
services sans avoir à gérer l'infrastructure sous-jacente.
20 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
Figure 13 : Heroku Cloud PlatForm
Une API REST (Representational State Transfer) est un style d'architecture logicielle utilisé
pour créer des services web qui peuvent être consommés par d'autres applications. Elle
permet l'échange de données entre les applications de manière flexible et sans état.
Lorsqu'il s'agit d'Heroku, une plateforme en tant que service (PaaS), il est courant d'utiliser
des API REST pour exposer des fonctionnalités spécifiques ou des données d'une application
hébergée sur Heroku. Voici quelques points importants à comprendre sur l'utilisation des API
REST avec Heroku:
1 Exposition de fonctionnalités : Les API REST sont utilisées pour exposer les
fonctionnalités d'une application hébergée sur Heroku. Cela permet aux
développeurs de créer des points d'accès (endpoints) qui peuvent être
appelés par d'autres applications pour accéder à des données, effectuer des
opérations ou interagir avec l'application.
2 Communication HTTP : Les API REST utilisent le protocole HTTP pour la
communication. Elles reposent sur les méthodes HTTP standard telles que
GET, POST, PUT, DELETE pour effectuer des opérations sur les
ressources exposées par l'API. Par exemple, pour récupérer des données, on
utilise la méthode GET, pour ajouter ou mettre à jour des données, on
utilise POST ou PUT, et pour supprimer des données, on utilise DELETE.
Figure 14 : Rest API
q Antenne Relais : Il s'agit d'un élément de transmission/réception sans fil qui
assure la connectivité entre Heroku et un smartphone distant. Elle utilise
un protocole HTTP pour établir la communication entre les deux.
Egalement appelée station de base ou tour de télécommunication, est un
équipement utilisé dans les réseaux de télécommunication sans fil pour
étendre la portée du signal et permettre la communication entre les
dispositifs mobiles et les réseaux cellulaires.
L'antenne relais joue un rôle crucial dans la transmission des signaux sans fil. Voici quelques
uns de ses composants et fonctionnalités :
1 Antenne : L'antenne est l'élément principal de l'antenne relais. Elle est
conçue pour émettre et recevoir les signaux radiofréquences. L'antenne est
généralement placée en hauteur pour assurer une couverture maximale.
2 Émetteur-récepteur : C'est l'appareil électronique qui gère la transmission et
la réception des signaux. Il convertit les signaux électriques en signaux
radiofréquences pour la transmission et effectue l'opération inverse pour la
réception.
3 Équipement de traitement des signaux : Cet équipement traite les signaux
transmis et reçus, notamment en amplifiant les signaux faibles et en filtrant
les interférences indésirables. Il joue un rôle important dans la qualité et la
fiabilité de la communication.
4 Connectivité réseau : L'antenne relais est connectée à un réseau de
télécommunication, tel qu'un réseau cellulaire, via des connexions filaires ou
sans fil. Cela permet d'acheminer les signaux vers d'autres stations de base
ou vers les infrastructures de communication plus larges.
Figure 15 : Antennes Relais
q Smartphone de visualisation analytique utilisant le MIT App Inventor :
C’est un appareil mobile qui joue le rôle d'interface utilisateur pour afficher
et interagir avec les données collectées et traitées par le système IoT. Voici
une description plus détaillée de ses caractéristiques et fonctionnalités :
1 Interface utilisateur : Le smartphone dispose d'un écran tactile qui permet
aux utilisateurs d'interagir avec l'application de visualisation analytics.
L'interface utilisateur est conçue à l'aide de MIT App Inventor, une
plateforme de développement d'applications mobiles visuelle et conviviale.
22 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
2 Application de visualisation : L'application développée avec MIT App
Inventor affiche les données collectées et traitées par le système IoT de
manière conviviale et compréhensible. Elle peut utiliser différents types de
graphiques, tableaux ou visualisations personnalisées pour présenter les
informations pertinentes.
3 Connexion au système IoT : Le smartphone se connecte au système IoT en
utilisant des protocoles de communication appropriés, tel qu’une connexion
à distance via Internet en utilisant les protocoles appropriés (http).
4 Réception de données en temps réel : Le smartphone est capable de recevoir
les données en temps réel provenant des différents capteurs et dispositifs
connectés. Il peut recevoir des mises à jour périodiques ou des notifications
instantanées lorsque de nouvelles données sont disponibles.
5 Interaction avec les données , Personnalisation et configuration,Partage et
exportation..
Figure 16: Smartphone de Visualisation Analytique
Question 2 :
IMPLÉMENTATION DE CHAQUE COMPOSANT DU SYSTÈME SOUS
OMNET++
Nous allons commencer par créer le projet, comme tout projet ordinaire sur OMNeT,
nous allons importer le framework INET dans notre projet, pour pouvoir utiliser
toutes ses bibliothèques.
Une fois le projet créé avec succès, nous nous dirigeons dans les
fichiers : simulations»results-»omnetpp.ini (c’est ici que nous allons ecrire le code de
chaque module de notre projet, il nous permet de pouvoir exécuter les simulations), et le
fichier simulations-»results»package.ned (c’est ici que nous allons créer notre
architecture de réseau)
Dans omnetpp.ini :
##description= simulation entre tout les composants objtet connectes
##network = essaie.simulations.WirelessNetwork
Cette commande permet de specifier que nous allons faire une simulation de réseau sans fil
##sim-time-limit = 60s cette commande permet de spécifier que notre temps de simulation
limite est de 60 secondes
##*.host*.ipv4.arp.typename = ‘’GlobalArp’’
Cette commande permet de specifier que les adresses Ipv4 sont attribuées aux modules. Les
hôtes ont également besoin de connaître les adresses MAC des autres pour communiquer,
ce qui, dans ce modèle, est pris en charge en utilisant des modules GlobalArp par hôte au
lieu d'un véritable ARP.
Configuration
Voici les différents fichiers permettant de réaliser notre projet :
-Fichier de configuration Package.ned
Figure 17 : Fichier de configuration accessPoint.ned
24 RÉSEAUX SANS FIL ET RÉSEAUX MOBILES
Figure 18 : Fichier package.ned option Design
Question 3:
Pour trouver le temps de transmission moyen pour réussir l'envoi d'un paquet, nous devons
considérer plusieurs aspects :
Le temps de transmission du paquet de gauche à droite (LR).
Le temps de transmission de l'accusé de réception de droite à gauche (RL).
Le temps d'attente pour que l'accusé de réception arrive dans le sens opposé.
Tout d'abord, calculons le temps de transmission du paquet de gauche à droite (LR).
Temps de transmission du paquet (LR):
Maintenant, calculons le temps de transmission de l'accusé de réception de droite à gauche
(RL).
Temps de transmission de l'accusé de réception (RL):
Maintenant, calculons le temps d'attente pour que l'accusé de réception arrive dans
le sens opposé.
Temps d'attente pour l'accusé de réception:
Probabilité de succès dans les deux sens:
Maintenant, nous pouvons calculer le temps de transmission moyen pour réussir l'envoi d'un
paquet.
Temps de transmission moyen:
Donc, le temps de transmission moyen pour réussir l'envoi d'un paquet est
d'environ 1.374 millisecondes.