5
Atelier Logiciel Libre Logiciel libre de simulation a évènement discret TRT3 TD2 TP3 | Nouri Anis | Mahroug Rawia

Logiciel libre de simulation a événement discret

Embed Size (px)

Citation preview

Page 1: Logiciel libre de simulation a événement discret

Atelier Logiciel Libre Logiciel libre de simulation a évènement discret

TRT3 TD2 TP3 | Nouri Anis | Mahroug Rawia

Page 2: Logiciel libre de simulation a événement discret

Qu'est-ce que le logiciel libre ?

Définition du logiciel libre

L'expression « logiciel libre » veut dire que le logiciel respecte la liberté de l'utilisateur et de la communauté. En gros, les utilisateurs ont la liberté d'exécuter, de copier, de distribuer,

d'étudier, de modifier et d'améliorer le logiciel. Avec ces libertés, les utilisateurs (à la fois individuellement et collectivement) contrôlent le programme et ce qu'il fait pour eux.

Quand les utilisateurs ne contrôlent pas le programme, c'est le programme qui les contrôle. Le développeur contrôle le programme, et par ce biais contrôle les utilisateurs. Ce programme

non libre, ou « privateur » devient donc l'instrument d'un pouvoir injuste.

Ainsi, « logiciel libre » [free software] fait référence à la liberté, pas au prix. Pour comprendre ce concept, vous devez penser à « liberté d'expression », pas à « entrée libre ».

Un programme est un logiciel libre si vous, en tant qu'utilisateur de ce programme, avez les

quatre libertés essentielles :

la liberté d'exécuter le programme, pour tous les usages (liberté 0) ; la liberté d'étudier le fonctionnement du programme, et de le modifier pour qu'il

effectue vos tâches informatiques comme vous le souhaitez (liberté 1) ; l'accès au code source est une condition nécessaire ;

la liberté de redistribuer des copies, donc d'aider votre voisin (liberté 2) ;

la liberté de distribuer aux autres des copies de vos versions modifiées (liberté 3) ; en faisant cela, vous donnez à toute la communauté une possibilité de profiter de vos

changements ; l'accès au code source est une condition nécessaire.

« Logiciel libre » ne signifie pas « non commercial ». Un logiciel libre doit permettre l'usage commercial, le développement commercial et la distribution commerciale. Le développement

commercial de logiciel libre n'est plus l'exception ; de tels logiciels libres commerciaux sont très importants. Vous pouvez avoir payé pour obtenir une copie d'un logiciel libre ou vous pouvez l'avoir obtenu gratuitement. Mais quelle que soit la manière dont vous vous l'êtes

procuré, vous avez toujours la liberté de copier et de modifier le logiciel et même d'en vendre des copies.

Au-delà du logiciel

Les manuels des logiciels doivent être libres, pour les mêmes raisons que les logiciels doivent être libres, et parce que les manuels font en fait partie des logiciels.

Les mêmes arguments peuvent aussi s'appliquer à d'autres types d'œuvres à finalité pratique, c'est-à-dire des œuvres qui intègrent de la connaissance utile, tels que le matériel pédagogique

et les ouvrages de référence. Wikipedia en est l'exemple le plus connu.

Tout type d'œuvre peut être libre : la définition du logiciel libre a été étendue à la définition

des œuvres culturelles libres, applicable à tout type d'œuvre.

Page 3: Logiciel libre de simulation a événement discret

Open Source ?

Un autre groupe a commencé à utiliser le terme « open source » pour exprimer quelque chose de proche, mais pas identique au « logiciel libre ». Nous préférons le terme « logiciel libre ».

En effet, une fois qu'on a compris que ce terme se rapporte à la liberté plutôt qu'au prix, il appelle la notion de liberté. Le mot « open » ne renvoie jamais à la liberté.

La simulation a évènement discret

Intérêt de la simulation

La simulation permet d’appréhender le comportement de systèmes complexes, en fonctionnemen t

ou en projet, dont l’évolution serait difficile à prévoir et évaluer par toute autre méthode. Largement

utilisée en recherche opérationnelle, elle poursuit par conséquent les mêmes objectifs : proposer un

modèle, nécessairement simplifié, de la réalité, et permettre, à partir de celui-ci l’obtention

d’informations utiles sur le système réel ou virtuel.

La simulation d’un système réel devient utile dès lors que la réalisation d’un modèle mathématique

de ce système est, soit trop coûteuse en temps de conception ou de calcul, soit trop simplificatrice

de la réalité, de sorte que le modèle obtenu ne permet plus d’appréhender les informations utiles sur le système à étudier.

Toute étude de simulation suppose que l’on ait identifié clairement les caractéristiques du système

qui sont nécessaires à la détermination des performances recherchées. La simulation est très utile dans les cas suivants :

• Le système n’existe pas encore et une étude préliminaire (phase de conception) est en cours. Par

exemple, pour préciser le dimensionnement d’un atelier de fabrication de pièces mécaniques, il faut

évaluer les performances que doivent réaliser les machines à utiliser, leur nombre, leur

emplacement, les transporteurs nécessaires, puis il faut vérifier le fonctionnement correct du système en projet, son adéquation aux performances attendues…

• Les expériences sur le système réel coûtent cher, ou sont impossibles à réaliser pendant son

fonctionnement. Par exemple, modifier le rythme cardiaque dans le système circulatoire pour en mesurer l’impact est une expérience peu recommandée.

• Le système est inaccessible : le système circulatoire en est un excellent exemple.

• Les temps d’observation nécessaires sur le système réel sont incompatibles avec les besoins :

l’évolution du système est très rapide, de sorte que, à l’échelle humaine, les changements d’état du

système semblent continus, ou cette évolution est au contraire très lente, de sorte que le système

n’évolue pas à l’échelle de temps dont on dispose pour mener l’étude (c’est généralement le cas d’un

système écologique, qui évolue très lentement à l’échelle humaine).

• Faire des expériences sur le système réel est dangereux ou peut avoir des conséquences graves :

pensons au système circulatoire, ou au danger que peut représenter la mise en œuvre d’une

expérimentation dans une raffinerie de pétrole… Rappelons que la catastrophe de Tchernobyl s’est

produite au cours d’un entraînement de sécurité pendant lequel est survenu un véritable incident…

si cet entraînement avait été réalisé sur un modèle de simulation les conséquences auraient été moins dramatiques.

Page 4: Logiciel libre de simulation a événement discret

Logiciels de simulation

Omnet ++

OMNet++ est un simulateur d'évènement basé sur le langage C++, destiné principalement à simuler

les protocoles réseau et les systèmes distribués. Il est totalement programmable, paramétrable et

modulaire. C'est une application open source et sous licence GNU, developpée par Andras Varga, chercheur à l'université de Budapest.

OMNet++ est destiné avant tout à un usage académique et est l'intermédiaire entre des logiciels de

simulation comme NS, destiné principalement à la recherche et OPNET qui est une alternative

commerciale de OMNet++.

Le but de ce site est de présenter les possibilités et les limitations de cette application. Pour ce fa ire,

nous allons notamment nous appuyer sur un exemple, basé sur le framework INET. Ce framework

implémente dans Omnet++ les protocoles IPv4, IPv6, TCP, UDP et de nombreuses modélisations de

protocoles applicatifs (HTML, FTP, SMTP...). Il implémente aussi des modèles de couche liaison de donnée (Ethernet, PPP, 802.11...).

NS2Introduction▲

Le simulateur NS est un outil logiciel de simulation de réseaux informatiques, développé

dans le cadre du projet VINT, ce dernier est un projet en cours de développement avec la

collaboration de plusieurs acteurs (USC/ISI, Xerox parc, LBNL et UCB) dans l'objectif

principal de construire un simulateur multiprotocole pour faciliter l'étude de l'interaction entre les protocoles et le comportement d'un réseau à différentes échelles.

Le projet contient des bibliothèques pour la génération de topologies réseau, des trafics

ainsi que des outils de visualisation tels que l'animateur réseau NAM (network animator).

NS est un outil logiciel de simulation de réseaux informatiques. Il est essentiellement

élaboré avec les idées de la conception par objets, de la réutilisation du code et de

modularité. Il est aujourd'hui un standard de référence en ce domaine, plusieurs

laboratoires de recherche recommandent son utilisation pour tester les nouveaux

protocoles.

Le simulateur NS actuel est particulièrement bien adapté aux réseaux à commutation de

paquets et à la réalisation de simulations de grande taille (le test du passage à l'échelle).

Il contient les fonctionnalités nécessaires à l'étude des algorithmes de routage unicast ou

multicast, des protocoles de transport, de session, de réservation, des services intégrés,

des protocoles d'application comme FTP. A titre d'exemple la liste des principaux

composants actuellement disponibles dans NS par catégorie est :

application : Web, ftp, telnet, générateur de trafic (CBR...) ;

transport : TCP, UDP, RTP, SRM ;

routage unicast : Statique, dynamique (vecteur distance) ;

routage multicast : DVMRP, PIM ;

gestion de file d'attente : RED, DropTail, Token bucket.

Page 5: Logiciel libre de simulation a événement discret

NS3

ns-3 est un simulateur réseau à évènements discrets. Il vise à remplacer son prédécesseur ns-2,

écrit en C++ et OTcl (version orientée objet de Tcl), pour tenter de remédier à ses limites (mauvaise gestion des traces ou encore, plus gênant, de l'utilisation de multiples interfaces sur un nœud…).

ns-3 est écrit en C++ et Python, et peut être utilisé sur les plateformes Linux/Unix, OS X (Mac), et

Windows via l'émulateur Cygwin.

Cette page présente quelques généralités et contient quelques notes. Pour plus de détails sur le

fonctionnement et la mise en œuvre de certains éléments (réseaux Wifi et modèles associés, développement d'applications, etc.)

GNS3

GNS3 est un simulateur graphique de réseaux capable de charger des vraies images de l’IOS de Cisco

permettant ainsi d’émuler entièrement des routeurs ou firewalls Cisco. Pour cela GNS3, s’appuie

principalement sur deux autres programmes: Dynamips , l’émulateur d’IOS, et Dynagen, interface texte pour Dynamips.

Au lieu d’installer ces trois outils séparément sur son ordinateur, je vais plutôt vous présentez un outil tout-en-un: GNS3 WorkBench !

C’est une machine virtuelle entièrement dédié à GNS3. Elle intègre tous les outils nécessaires à son

bon fonctionnement ainsi que plusieurs petits bonus.

Avantages : C’est de l’émulation, donc vous aurez tous les protocoles disponibles en fonction de l’ios

ajouté contrairement au logiciel Cisco Packet Tracer ou certains protocoles ne sont pas implémentés

(HSRP, VRF …), vous pourrez même ajouter à votre architecture une machine hôte ou une machine

virtualbox.

Inconvénients : La ou le logiciel est un peu faiblard, c’est qu’il ne propose aucun switch de niveau 2

digne de ce nom, aucun switch de la gamme Catalyst type 2950 et ça manque; Nous devons nous

contenter d’un switch de niveau 2 générique permettant uniquement la configuration des ports en mode access, dot1q et qinq.

L'outil permettant la virtualisation de ces outils de commutation se compose de 3 éléments :

Dynamips : il s'agit de l'outil de virtualisation à proprement parler. Il est en charge d'émuler

les composants du matériel Cisco.

Dynagen est "l'interface" en mode texte développée en python et facilitant l'administration et

la gestion et l'inter-connectivité des équipements émulés.

GNS3 : il s'agit cette fois d'une interface graphique permettant de faciliter la conception de

topologies réseaux complexes.