Simulation
La simulation est la méthode la plus utilisée pour l’évaluation des performances des réseaux et systèmes informatiques. Ceci est surtout lié à sa grande flexibilité. Cette partie présente les caractéristiques essentielles de cette méthode d’évaluation de performances, l’accent étant mis sur la simulation à évènements discrets qui reste la technique que nous avons adoptée.
Principe de la simulation
Le principe fondamental de la simulation est d’étudier le comportement d’un système en l’imitant (en le simulant) par un modèle à étudier. Elle comporte la conception artificielle du système et l’observation de celui-ci pour en déduire des caractéristiques du système. La simulation représente donc u n ensemble de techniques permettant d’approcher l e comportement d’un système quelconque. C’est une méthode stochastique dans la mesure où un simulateur est basé sur l’utilisation de variables aléatoires. L’état du système est représenté par un vecteur de variables aléatoires. Bien que la plupart des idées développées ici soient applicables à la simulation de systèmes en général, notre modèle de référence reste la simulation de réseaux de grande taille.
L’approche par simulation permet de bénéficier de la plupart des avantages de la modélisation. La simulation permet donc de réaliser des expérimentations multiformes dans le système réel. Par exemple :
• elle permet d’estimer le comportement du s ystème sous des conditions d’opérations extrêmes sans remettre en cause l’intégrité du système réel ;
• si l’on veut modifier le système, on peut évaluer et comparer plusieurs scénarios afin d’identifier les composants les plus sensibles à l a modification ; en d’autres termes, elle permet de faire varier facilement les paramètres du système et d’évaluer l’impact de ces changements ;
• pendant l’étape de conception d’un système, celui-ci peut être visualisé et son comportement étudié, bien avant sa construction ;
• elle permet de commettre des erreurs (et de les rectifier) sur le modèle plutôt que dans la réalité. Etc.…
Par ailleurs, certains avantages sont plus spécifiques de la simulation :
elle permet l’évaluation de systèmes pour lesquels on ne dispose pas de solutions analytiques et pour lesquels la simulation constitue donc la seule approche disponible ;
les modèles de simulation sont souvent « visualisables », parfois même avec des possibilités d’animation graphique, ce qui les rend plus acceptables et convaincants aux yeux du décideur que les modèles analytiques plus abstraits.
Mais bien évidemment, la simulation connaît certains inconvénients :
chaque exécution du modèle est généralement le résultat d’une expérience aléatoire et ne produit donc qu’une estimation des paramètres étudiés (temps moyen passé dans la file, probabilité de congestion, délai, …). Ceci est en contraste avec les modèles analytiques (par exemple les modèles de files d’attente M/M/C) lesquels, produisent la valeur exacte de ces p aramètres (sous les hypothèses du modèles et pour autant que le modèle soit résoluble analytiquement).
le développement de modèles de simulation requiert beaucoup de temps et des ressources considérables,…).
Nous allons nous intéresser à la simulation assistée par ordinateur, c’est-à-dire celle où l’ordinateur est utilisé pour imiter et pour manipuler le modèle du système à étudier.
Quelques définitions
Un Système est défini comme l’objet, réel ou planifié, que l’on souhaite étudier. Le système évolue et agit avec d’autres systèmes qui constituent son environnement. Quand on modélise le système, c’est-à-dire lorsqu’on le représente dans un autre milieu (par exemple un langage compréhensible par l’ordinateur) on doit prendre en compte aussi bien ses car actéristiques internes que celles de l’interaction entre le système et son environnement.
La méthode de simulation la plus développée jusqu’ici est celle de la simulation à évènements discrets où chaque objet représenté est une entité définie par un ensemble de variables aléatoires. La valeur de ces variables à un instant précis décrit l’état du système.
Il existe des variables qui peuvent admettre, en théorie, un ensemble infini non dénombrable de valeurs ; elles sont dites variables continues. Un exemple est le temps d’aller et retour d’un paquet dans le réseau. D’autres variables, appelées variables discrètes, peuvent avoir seulement un ensemble fini dénombrable de valeurs. Un exemple est le nombre de nœuds que le paquet traverse.
Selon le type de variables aléatoires utilisées pour décrire le système, on parle de modèle à états continus si ses variables sont continues, de modèle à états discrets lorsque ses variables sont à ét ats discrets et de modèle hybride ou mixte si le système est décrit avec une combinaison de variables continues et discrètes.
Par principe, la simulation est liée à une certaine incertitude qui permet de modéliser convenablement le comportement du système. Par exemple, les délais entre les instants d’émissions successives de paquets d’une certaine application réseau, peuvent être modélisés par une variable aléatoire (v.a) dont les valeurs qu’elle peut prendre suivent une certaine distribution de probabilité. Au cours de la simulation, ces distributions sont souvent produites à travers un générateur de nombres pseudo aléatoires.
Simulation de réseaux de grande taille
Le déploiement de nouvelles applications sur un r éseau étendu appelle toujours son lot d’incertitudes :
– l’application supporterait-elle les contraintes de mon infrastructure ?
– la bande passante est-elle suffisante ?
– la sécurité est-elle garantie ?
– la qualité de service est-elle optimale ?
L’inquiétude provoquée par ce type de projet est tout à fait normale. Les applications développées avec la plus grande rigueur peuvent se révéler inefficaces dans le cadre d’un réseau étendu (WAN : Wide Area Network). La principale raison de cet échec potentiel réside dans le fait que ces applications sont développées, testées et validées dans un environnement de réseau local (LAN : Local Area Network) présentant des caractéristiques complètement différentes de celles rencontrées en environnement WAN.
En plus des considérations purement techniques, les aspects économiques et financiers sont en prendre en considération. Une application non adaptée à un environnement de réseau étendu, détectée suffisamment tôt, sera retournée à la conception ou au développement sans surcroît prohibitif.
Le même scénario, mais après déploiement de l’application sur plusieurs sites, se transforme en catastrophe économique.
La solution de simulation de réseaux de grande taille permet essentiellement de répondre à deux problématiques :
– le système informatique existe et une nouvelle application doit prochainement être déployée.
– une nouvelle application doit être déployée, l’infrastructure n’existe pas et doit être dimensionnée.
Dans le premier cas, le système d’information existant possède son lot de contraintes (débit des lignes, bande passante, temps de latence, gigue, taux de perte des paquets, …), l’application déployée doit être en adéquation avec les contraintes de l’infrastructure. Il devient donc impératif de connaître les caractéristiques pour développer une application suffisamment robuste. La solution de simulation de réseaux WAN permet dans ce cas d e reproduire un environnement de développement et de validation fidèle à l’environnement réel.
Dans le cas où l’infrastructure n’existe pas, la méthode de simulation de réseau étendu permet de réaliser le dimensionnement des liens destinés à v éhiculer les données relatives à l’application.
Les développeurs ne sont pas suffisamment confrontés aux contraintes d’un environnement étendu. L’environnement de développement constitué de clients et de serveurs gravite autour d’un domaine de réseau de 100 Mbps alors qu’il n’est pas rare que ces applications soient au travers des lignes à 64 kbps . La solution de réseau WAN permet alors de sensibiliser les développeurs aux contraintes de l’environnement réel.
Simulation continue
Si le modèle contient en grande partie des variables continues qui évoluent dans le temps, ce modèle conduit à un système d’équations différentielles. Souvent, il se trouve que le système d’équations ne peut pas être résolu analytiquement. On utilise alors la simulation dite continue, où des combinaisons de méthodes numériques essaient d’aboutir à la solution du modèle. Les physiciens et les chimistes, par exemple, font appel à ce type de simulation pour étudier des problèmes comme la prévision météorologique ou l ’analyse des dynamiques de fluides. En télécommunications, cette technique est parfois utilisée pour évaluer des modèles fluides de réseaux de communication.
Simulation à évènements discrets
Cette technique de simulation utilise un modèle à états discrets du système. Un évènement e possède un instant te d’exécution (ou d’activation) indiquant le moment où il doit se produire.
Les variables du système changent dans le temps, à des instants ti, i ε N, où les évènements ont lieu. L’exécution d’un évènement peut générer d’autres évènements. Par exemple, l’évènement « un paquet arrive dans un r outeur à l’instant ti », peut produire un autre évènement de retransmission du paquet en tj = ti + W + δ, W ≥ 0 étant le temps d’attente et δ étant le temps de service (c’est-à-dire de transmission) du paquet.
Le temps est représenté par une variable appelée l’horloge de simulation.
Dans une simulation discrète, une variable particulière, appelée horloge, indique en permanence le temps écoulé depuis le début de la simulation. L’unité de temps utilisée correspond à l’unité implicite utilisée pour décrire les paramètres du système (temps écoulé entre arrivées successives, temps de service,…). Il faut veiller à conserver la même unité de temps pour tous les paramètres. Il faut aussi remarquer que le temps indiqué par l’horloge de simulation n’a, en général, aucune relation directe avec le temps réellement écoulé pendant le déroulement de la simulation
Dans le noyau du s imulateur, on t rouve une liste où l es évènements en attente d’exécution sont ordonnés par ordre croissant selon leur instant d’exécution. Ce calendrier d’évènements avec leur date d’occurrences est appelé échéancier. En général, au cours d’une expérience de simulation, le noyau extrait de l’échéancier un évènement prêt à êt re simulé (plus précisément, celui ayant l’instant d’exécution le plus petit) et l’exécute. L’architecture minimale du noyau d’un simulateur à évènements discrets est illustrée dans la figure ci-dessous.
Progression à pas fixes
Cette technique est le plus souvent utilisée pour étudier des systèmes synchrones dans lesquels il y a une unité de temps de référence, tels que les systèmes numériques synchrones.
Dans cette approche, l’horloge de simulation avance à intervalles fixes de longueur Δt appelés cycles. À la fin de chaque cycle on regarde si des événements se sont produits durant l’intervalle [ i Δt, (i+1) Δt]. S’il y en a, ils sont simulés comme s’ils avaient eu lieu à la date (i+1) Δt (où à la date i Δt).
Cette approche présente quelques inconvénients, comme par exemple :
– il est difficile de bien choisir la longueur Δt des cycles ;
– des erreurs sont introduites du fait de retarder l’exécution des événements jusqu’à la fin de l’intervalle ;
– on perd des contraintes temporelles entre les événements qui tombent dans le même intervalle.
De plus, cette méthode est parfois peu efficace car il peut y avoir beaucoup d’intervalles vides où l’on recherche des événements inutilement.
Progression par événements
Dans ces s imulateurs, d’ailleurs les plus populaires dans le domaine des réseaux de communication, le noyau extrait de l’échéancier l’événement qui se trouve à la tête de la liste, c.-à-d., celui qui a le temps te le plus petit. L’horloge de simulation est actualisée à t e et l’événement en question est exécuté. Ainsi, l’horloge de simulation progresse ici par sauts irréguliers . On remarque que cette technique peut être beaucoup plus efficace car le système n’est évalué que quand il y a eu un changement d’état.
En ce qui concerne la dynamique du modèle, c.-à-d., la représentation et la codification des entités du système, on peut distinguer trois techniques : l’approche orientée événements, l’approche orientée processus et celle orientée activité.