Upload
anis-nouri
View
92
Download
0
Embed Size (px)
Citation preview
Atelier Logiciel Libre Logiciel libre de simulation a évènement discret
TRT3 TD2 TP3 | Nouri Anis | Mahroug Rawia
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.
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.
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.
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.