OMNET++ : Etudes de Cas

PROJET DE COUR RESEAUX SANS FIL ET RESEAUX MOBILES : Etudes de Cas à l’aide des Logiciels NS3 & OMNET++

Master 1

Option : Réseaux et Services distribues

Rédigé et Présenté par :

NOMS ET PRENOMS

 

YANKAM NGUEGUIM JOEL STEPHANE

 

Introduction

En raison de la nature complexe des réseaux informatiques et de télécommunication, il est souvent difficile de prédire l'impact des différents paramètres sur les performances du système en particulier lors du déploiement de réseaux sans fil. 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 

Structureomnett

 

 

 

Figure 1 : Structure de Omnet++

1.1 Pré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 fichiers NED 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) ;
  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 .

Omnett

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 :

Classification pandacodeur

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 :

  • 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é.
  • Architecture inet png

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 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

Mobility framework

Figure 4 : architecture de mobility Framework

Archinoeudinterne 

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.

 

 

III : CAS PRATIQUE : SIMULATION D’UN ENSEMBLE D’OBJET CONNECTE AVEC UN FRAMEWORK OMNETT++

 Objetconnectes

Figure 6 : Ensemble d'objets connectés
  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

  1.  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.

 

  1. 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.

 
Accespoint
                          Figure 7 : Point d’Accès et WIFI

  1.  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.

Lauchpadkit

Figure 8 : CC3200-LAUNCHXL-CC3200 Launchpad Kit

  1. 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.

Raspberry

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.)

Nodered

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 :

  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.

Mongo

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.

Mosquitto

Figure 12 : Broker Mosquitto

  1. 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.

Heroku 1

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.

Rest api

Figure 14 : Rest API

  1. 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.

Bts

Figure 15 : Antennes Relais

  1. 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.
  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..

Phone

 

Figure 16 : Smartphone de Visualisation Analytique

Implémentation de chaque composant du Système sous OMNET++

  1. 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 :

  1. Fichier de configuration Package.ned

 

Accesspoint

Figure 17 : Fichier de configuration accessPoint.ned

 

 Package ned

Figure 18 : Fichier package.ned option Design

  • Aucune note. Soyez le premier à attribuer une note !

Ajouter un commentaire

Anti-spam