Les contraintes de simulation concernent les conditions à respecter pour que les modèles IP
puissent être correctement exécutés par les simulateurs. Elles sont à prendre à considération au
moment de la conception du multi-modèle, pour définir les différents réseaux (qui pourront en
réalité représenter des fragments d’un plus grand réseau, dans le cadre des couplages spatiaux)
qui seront à modéliser.
5.4.1 Cas des demi-liens
Une façon de couper un réseau en deux, qui peut sembler intuitive de prime abord, est de
couper au milieu d’un lien. Dans ce cas, en considérant un lien de longueur L à modéliser,
un premier modèle représentera un morceau de lien de longueur L/2, et un second modèle
représentera l’autre morceau, de même longueur. Ces deux (demi-)liens seront reliés en série,
via le multi-modèle.
La modélisation d’un lien consiste principalement à être capable de déterminer le temps qui
serait nécessaire pour qu’un message (i.e. une certaine quantité de bits) passe d’une extrémité
à l’autre. Ce temps est qualifié de latence, et sa formule est donnée dans l’Équation5.1.
latence
message= (taille
message/débit
lien) + (longueur
lien/vitesse_propagation
lien) (5.1)
La première partie de l’équation correspond au temps de transmission, tandis que la seconde
partie correspond au temps de propagation. La longueur du lien n’intervient que dans le calcul
du temps de propagation. Or, celui-ci est souvent considéré comme négligeable, tant son impact
est faible en comparaison avec le temps de transmission (exception faite de cas particuliers
comme les connexions satellites). Le temps infime qu’il représente n’est souvent pas non plus
représentable par les simulateurs IP. Par conséquent, les modèles de lien n’incluent généralement
pas la longueur des liens dans leurs propriétés. Ainsi, par exemple, le code utilisé pour modéliser
un lien pair-à-pair dans NS-3 estbits/m_bps, ce qui correspond à un simple calcul de temps
de transmission. La notion de longueur de lien n’étant pas utilisée dans le modèle, il n’est donc
pas possible de représenter un demi-lien.
Il n’est pas non plus possible de considérer qu’un lien de débitD pourrait être équivalent à
deux (demi-)liens de débitD/2 mis bout à bout.
Un lien doit donc être considéré comme un élément atomique et ne peut être représenté que
dans son intégralité, dans un seul modèle.
5.4.2 Réseaux complets
Les simulateurs IP ne permettent généralement pas de représenter des morceaux isolés de
réseau, comme c’est nécessaire dans le cas de la conception de modèles dans le cadre d’un
couplage spatial. Ainsi, par exemple, représenter un lien qui n’est relié à aucun nœud, comme
dans le cas de la Figure5.5(premier exemple de couplage spatial, page68), n’est généralement
pas possible. L’exemple de la Figure 5.6 (premier exemple de modèle à la fois spatialement
et structurellement couplé, page 68), avec d’un côté une carte réseau qui n’est connectée à
aucun lien et de l’autre côté un lien qui n’est attaché qu’à une seule carte réseau, n’est pas
non plus possible. De la même façon, le concept de demi-couche, ou de demi-nœud, comme
proposé dans la Figure5.9(second cas de découpe dans les contraintes de modélisation, page72),
n’est pas simulable en l’état. Des contraintes de simulation s’ajoutent alors aux contraintes de
modélisation.
Nous partons du postulat que chaque modèle doit obligatoirement représenter un segment
de réseau complet et cohérent, pour que le simulateur puisse l’exécuter. Pour pouvoir adapter
les modèles théoriques des Figures 5.5, 5.6 et 5.9 à cette nouvelle contrainte, il est nécessaire
d’adapter les modèles, de façon à « compléter » les fragments de réseau. Les ajouts minimum à
effectuer sont visibles dans la Figure5.10. On constate qu’il a été nécessaire d’ajouter deux types
d’éléments : des nœuds supplémentaires (dans les trois exemples), et des liens supplémentaires
(Figure5.10b). La modification de la Figure5.10c consiste à remplacer un concept qui n’est pas
réalisable (un demi-nœud), par le concept le plus proche qui est susceptible d’être disponible
(un nœud complet).
(a) Ajout de nœuds supplémentaires, dans l’un des modèles utilisés par l’exemple de la Figure5.5page68.
(b) Ajout de nœuds et d’un lien, dans les modèles IP utilisés par l’exemple de la Figure5.6page68.
(c) Utilisation d’un nœud complet, dans le premier modèle utilisé par l’exemple de la Figure5.9page72
(le second modèle devant être complété de la même façon).
Figure 5.10 – Adaptation de modèles représentant des morceaux de réseau IP, de façon à ce
qu’ils représentent chacun un réseau IP complet et cohérent, et donc simulable. Les éléments
ajoutés sont dessinés en pointillés.
Les éléments en pointillés de la Figure5.10sont autant d’éléments, qui n’existent pas dans le
système, et qui n’ont été ajoutés que pour respecter les contraintes de simulation. La conséquence
est que, dans le multi-modèle, les nœuds du système par exemple, sont représentés deux fois.
Dans la Figure5.10a, les deux nœuds qu’on ajoute correspondent aux nœuds A et B de l’exemple
de la Figure5.5(page68), qui continuent pourtant d’être représentés individuellement dans les
modèles séparés. Il convient donc de modéliser ces appendices aux réseaux de façon particulière,
de façon à ce qu’ils soient « transparents » vis-à-vis des résultats de simulation.
Ainsi, les appendices ne doivent :
1. avoir aucun impact sur les trames ou paquets qui arriveraient jusqu’à eux (aucune
mo-dification des données, quelle que soit la couche) ;
2. être à l’origine d’aucun événement de simulation, qui ferait avancer l’horloge du
simula-teur (consommation de temps de simulation) ;
3. avoir aucun rôle particulier dans le réseau simulé (routage, proxy, etc), puisqu’ils ne sont
pas censés exister.
Par commodité, on qualifiera ces appendices de « faux ». Ainsi, on ajoutera de faux nœuds
et de faux liens, de façon à compléter les réseaux.
5.4.3 Lookahead nul
La notion de lookahead est été abordée dans la Section5.4.3. Nous avons également vu dans
la Section 2.5.5que certains algorithmes de synchronisation du temps, comme celui utilisé par
MECSYCO, n’étaient pas capables d’accepter des modèles configurés avec un lookahead nul (i.e.
à zéro).
Il est possible d’éviter les modèles à configurer avec un lookahead nul, en anticipant cet
aspect dès leur conception. Le premier modèle, dans sa version corrigée, de l’exemple de la
Figure5.10b (en haut à droite), pourrait par exemple poser un problème. En effet, sur les trois
principaux éléments composants le modèle (le nœud A, le faux lien et le faux nœud), deux
n’auront aucun impact sur le temps de simulation (les appendices), par définition. Le calcul du
lookahead ne dépendra donc que de l’application simulée qui est installée sur le nœud A. S’il
s’agit, par exemple, d’un serveur ICMP qui renvoie immédiatement un paquet lorsqu’il en reçoit
un, l’action est censée être tellement rapide qu’il est fort probable que le modèle de l’application
ne consomme aucun temps de simulation. Le lookahead du modèle complet sera donc nul.
La seule solution pour éviter ce type de cas de figure, c’est de prendre en compte cette
contrainte dès la conception des modèles : lorsqu’on sépare une topologie de réseau en plusieurs
modèles dans le but de faire des couplages spatiaux entre eux, il faut prévoir d’avoir au moins
un élément dans chaque modèle qui consomme à coup sûr du temps de simulation (traitement
applicatif ou traversée d’un lien), entre l’arrivée d’une trame ou d’un paquet externe et la
transmission de la réponse.
Dans le cadre des couplages structurels, cette contrainte peut être encore plus forte. Dans
l’exemple de la Figure5.1, avec des couplages structurels entre chaque couche, certains modèles
se contenteront d’encapsuler ou de désencapsuler les données reçues, avant de les transmettre au
modèle de la couche suivante. Ces opérations sont tellement rapides dans le système, qu’elles ne
peuvent pas représenter de temps de simulation dans les modèles. Ainsi, un modèle de couche
de la suite Internet qui se contente d’encapsuler ou de désencapsuler, doit être configuré avec
un lookahead nul. De la même façon, c’est au modélisateur de faire en sorte que ses modèles ne
soient pas dans cette situation, quitte à devoir en rassembler quelques-uns, pour s’assurer qu’il
y aura toujours au moins une action qui consommera du temps de simulation.
Dans le document
Intégration de modèles de réseaux IP à un multi-modèle DEVS, pour la co-simulation de systèmes cyber-physiques
(Page 97-100)