25
Compte rendu des TP réalisés avec QNAP Les séances de TP en réseaux que nous avons eu cette année rentrent dans le cadre de l’étude de performances. Vaste domaine qui permet de tester les différentes applications avant la mise en place des solutions, de vérifier les réactions face aux congestions, etc. Il nous a été proposé trois mécanismes à étudier. Nous avons commencé par un mécanisme de surveillance de trafic, permettant d’éviter les congestions, il s’agit du mécanisme à fenêtre sautante. Nous nous sommes ensuite penchés sur des mécanismes de contrôle de trafic, à rejet sélectif, dans des réseaux hauts débits permettant d’apporter une solution lorsque la congestion arrive. Il s’agit du push-out (PO) et du partial buffer sharing (PBS). Le compte rendu de ces TP présentera les différentes implémentations en QNAP, langage de simulation que nous décrirons succinctement, puis les résultats obtenus via les différentes simulations avant leur interprétation. Une comparaison sera faite entre les deux mécanismes de même type que sont PBS et PO. 1. QNAP 2 1.1. L’OUTIL 2 1.2. STRUCTURE DUN PROGRAMME QNAP 2 2. FENETRE SAUTANTE 2 2.1. IMPLEMENTATION 3 2.2. RESULTATS 4 2.3. INTERPRETATION 4 2.4. CONCLUSION 5 3. PO ET PBS, DEUX MECANISMES DE REJET SELECTIF 5 3.1. IMPLEMENTATION DU MODELE 6 3.2. PUSH-OUT 6 3.2.1. IMPLEMENTATION DU MECANISME 6 3.2.2. RESULTATS 7 3.2.3. INTERPRETATION 7 3.3. PARTIAL BUFFER SHARING 8 3.3.1. IMPLEMENTATION DU MECANISME 8 3.3.2. RESULTATS 8 3.3.3. INTERPRETATION 9 3.4. CONCLUSIONS SUR CES DEUX MECANISMES A REJET SELECTIF 9 4. ANNEXES 10 ADJIDO Idjiwa, KEMEHLO Estelle

Compte rendu des TP raliss avec QNAP

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Compte rendu des TP raliss avec QNAP

Compte rendu des TP réalisés avec QNAP Les séances de TP en réseaux que nous avons eu cette année rentrent dans le cadre de l’étude de performances. Vaste domaine qui permet de tester les différentes applications avant la mise en place des solutions, de vérifier les réactions face aux congestions, etc. Il nous a été proposé trois mécanismes à étudier. Nous avons commencé par un mécanisme de surveillance de trafic, permettant d’éviter les congestions, il s’agit du mécanisme à fenêtre sautante. Nous nous sommes ensuite penchés sur des mécanismes de contrôle de trafic, à rejet sélectif, dans des réseaux hauts débits permettant d’apporter une solution lorsque la congestion arrive. Il s’agit du push-out (PO) et du partial buffer sharing (PBS). Le compte rendu de ces TP présentera les différentes implémentations en QNAP, langage de simulation que nous décrirons succinctement, puis les résultats obtenus via les différentes simulations avant leur interprétation. Une comparaison sera faite entre les deux mécanismes de même type que sont PBS et PO.

1. QNAP 2

1.1. L’OUTIL 2 1.2. STRUCTURE D’UN PROGRAMME QNAP 2

2. FENETRE SAUTANTE 2

2.1. IMPLEMENTATION 3 2.2. RESULTATS 4 2.3. INTERPRETATION 4 2.4. CONCLUSION 5

3. PO ET PBS, DEUX MECANISMES DE REJET SELECTIF 5

3.1. IMPLEMENTATION DU MODELE 6 3.2. PUSH-OUT 6 3.2.1. IMPLEMENTATION DU MECANISME 6 3.2.2. RESULTATS 7 3.2.3. INTERPRETATION 7 3.3. PARTIAL BUFFER SHARING 8 3.3.1. IMPLEMENTATION DU MECANISME 8 3.3.2. RESULTATS 8 3.3.3. INTERPRETATION 9 3.4. CONCLUSIONS SUR CES DEUX MECANISMES A REJET SELECTIF 9

4. ANNEXES 10

ADJIDO Idjiwa, KEMEHLO Estelle

Page 2: Compte rendu des TP raliss avec QNAP

1. QNAP

1.1. L’outil QNAP, pour Queueing Network Analysis Package, est un langage de simulation. Il permet de décrire des systèmes et d’étudier des files d’attente. QNAP2, le produit que nous utiliserons est un outil commercial (propriétaire, payant et malheureusement non accessible aux étudiants à domicile en version démonstration☺) qui est utilisé par plusieurs centres de recherches et centres universitaires pour modéliser et effectuer une étude des performances de nombreux systèmes.

1.2. Structure d’un programme QNAP Un programme QNAP est composé de quatre parties principales :

- Une partie déclaration, située après l’expression « /DECLARE/ », où se font les déclarations des différents types d’objets et variables utilisées dans le programme ;

- Une partie description de la topologie, des objets et des différentes relations entre ces objets. Cette description est effectuée à l’aide de la commande « /STATION/ » où une station décrit une file d’attente de capacité paramétrable. Une station stocke des clients durant un temps donné, simulant un temps de traitement, puis transfère ces clients vers une autre station ou vers la sortie ;

- Ensuite vient une partie « /CONTROL/ » qui permet de paramétrer le déroulement de la simulation en fixant, par exemple, la durée de la simulation ;

- Enfin la partie /EXEC/ est l’endroit où se situent toutes les initialisations, la gestion de l’affichage des résultats, l’enchaînement des simulations, etc.

2. Fenêtre sautante L’objectif de l’étude était de mettre en place un mécanisme de surveillance de trafic. La modélisation du mécanisme à fenêtre sautante nous a été fournie. Nous devions construire le programme de simulation correspondant au modèle ci-dessous.

La source alterne entre deux états on / off. Les trames émises pendant la période on sont transmises au mécanisme de la fenêtre sautante. Ce mécanisme ne doit laisser passer que Bc trames à chaque intervalle de temps dont la période est fixée. Le principe de régulation est le suivant : les Bc premières trames sont considérées comme étant prioritaires, conformes. Les autres trames arrivant dans ce même intervalle seront considérées non prioritaires, non conformes.

2

Page 3: Compte rendu des TP raliss avec QNAP

2.1. Implémentation La première étape a été de construire le programme QNAP décrivant le modèle présenté ci-dessus. Le modèle nécessitant une source, une station de ce type est mise en place. Il faut pour la paramétrer, déterminer le nombre de trames par secondes qu’elle doit fournir. Pour ce faire, on calcul le temps d’émission fonction du débit et du temps Ton alloué. Ainsi, on obtient :

4.01125

1084.0

11011

3

6

×=×

××=

×=

LTon

moyon

λλ Trames / s.

Le temps de service exponentiel de la source sera deonλ1 .

Afin de gérer les intervalles on / off et les intervalles iTc, (i + 1)Tc, nous avons créé deux stations « virtuelles ». L’interrupteur on / off met à jour un booléen à intervalle régulier que la station source consulte. Selon la valeur de ce booléen, la station envoie les trames émises vers la fenêtre sautante ou vers la sortie. La seconde station réinitialise le compteur Bc tous les Tc. Compteur, qui permet à la station modélisant la fenêtre de marquer les trames comme étant conformes ou non. Une fois les trames marquées, la station statistique se charge de compter les trames non conformes et celles conformes. Nous avons deux moyens de « marquer » les trames. Soit en fixant un attribut au client puis en filtrant selon la valeur de l’attribut lors du décompte, soit en orientant les trames dans deux stations différentes selon que la trame soit conforme ou non. Nous avons d’abord opté pour la seconde solution pour la simple raison qu’au moment de coder, nous ne maîtrisions pas assez QNAP et nous n’avions pas intégré qu’il était possible de mettre des attributs! Finalement, deux compteurs permettent de comptabiliser les trames prioritaires et non prioritaires perdues lorsqu’elles sont transitées vers la sortie. La totalité du code commenté est consultable en annexe pour plus de précision.

Interrupteur on /off

Intervalle Tc

Source

Toff

out

Ton Mécanisme à fenêtre sautante

Incrémente Compteur cf

Incrémente Compteur ncf

Statistiques

3

Page 4: Compte rendu des TP raliss avec QNAP

2.2. Résultats Une fois le programme rédigé, nous l’avons exécuté avec succès, après de nombreuses corrections, pour différentes valeurs de Tc. Les valeurs à tester nous ont été fournies : 1, 3, 10, 20 et 30. A chaque exécution, nous obtenons un nombre différent pour les compteurs cf et ncf. A partir de ces valeurs, nous calculons le taux de conformité comme suit :

cfncfcfconformitéTaux+

=

Nous obtenons différentes valeurs selon les Tc qui nous permettent de tracer la courbe suivante :

Taux de conformité en fonction de Tc

0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1

1 3 10 20 30

Tc

Taux

de

conf

orm

ité

clients prioritaires

2.3. Interprétation Plus l’on augmente Tc, plus le produit Bc = 125 x Tc augmente. Et avec, le nombre de trames pouvant être classées prioritaires (conformes). Le débit restant le même durant toutes les simulations, on peut s’attendre à ce que le taux de conformité augmente avec Tc. Lorsque nous regardons l’évolution de la courbe, c’est en effet ce que l’on constate. Le taux de conformité évolue bien dans ce sens. Par contre, nous constatons également que le taux arrive à être constant à partir d’un certain Tc. Nous pouvons l’expliquer par le fait qu’un Tc suffisamment grand permet un Bc englobant la majorité des trames : la plupart des trames sont considérées comme conformes donc. Nous n’expliquons pas cependant pourquoi ce taux ne monte pas à 100% et se contente des 90%.

4

Page 5: Compte rendu des TP raliss avec QNAP

2.4. Conclusion De l’étude, nous avons intégré le fait qu’un Tc faible va marquer une grande partie de trames comme étant non conformes. Inversement, un Tc élevé va marquer quasiment toutes les trames comme étant prioritaires. En conclusion, le Tc est un paramètre à choisir avec précaution : trop élevé, il considère toutes les trames comme prioritaires, ce qui n’a plus son intérêt ; trop faible il peut créer une « surpopulation » de trames classées non conformes.

3. PO et PBS, deux mécanismes de rejet sélectif Le modèle utilisé ici met en œuvre deux sources de débits différents. L’une envoie des trames prioritaires, l’autre des trames non prioritaires. Ces sources sont de types on / off, tantôt actives, tantôt inactives. Le commutateur auquel sont reliées les deux sources est modélisé par une file d’attente à capacité limitée K. Le modèle est similaire pour les deux mécanismes étudiés et peut se schématiser comme suit :

5

Page 6: Compte rendu des TP raliss avec QNAP

3.1. Implémentation du modèle Dans notre implémentation, l’activité et l’inactivité des sources est gérée par deux stations « virtuelles » mettant à jour deux variables différentes (débits des sources différents) indiquant aux stations sources si les trames vont vers le mécanisme (PO, PBS) ou vers la sortie. Le fonctionnement des deux interrupteurs est le même que celui utilisé pour la source dans le mécanisme Fenêtre Sautante.

3.2. Push-Out Ce mécanisme de rejet sélectif fonctionne sans seuil (contrairement au PBS présenté plus loin). La file est accessible pour tout type de trame, prioritaire ou non, tant qu’il y a de la place disponible. Lorsque la capacité est atteinte, le trafic prioritaire prend la place du trafic non prioritaire et l’échange se fait selon la politique « last in, first out ». Le trafic non prioritaire arrivant lorsque la file est pleine est rejeté, de même que le trafic prioritaire si il n’y a pas de trafic non prioritaire à remplacer dans la file.

3.2.1. Implémentation du mécanisme Nous avons implémenté une station pour simuler le PO. Elle se contente de traiter les clients en un temps constant, fonction du débit du commutateur, puis de les envoyer vers une station destination lorsque la file n’est pas pleine. Le mécanisme se met réellement « en marche » lorsque la file est pleine et que d’autres clients arrivent. Lorsque le client est prioritaire, dans le cas contraire il est simplement routé vers la sortie, nous parcourons la file de la station (suivant la politique LIFO) tant que nous ne trouvons pas de trame non prioritaire. Si une trame non prioritaire existe nous la transitons vers la sortie et nous permettons à la trame prioritaire de prendre place dans la file. Le temps de service constant se calcul comme suit :

stramesn /2504

10108102 3

3

6

==××

=

D’où un temps le temps de service )2501(CSTt =

Interrupteur on /off n°1

Source prioritaire

Toff

out

Ton Mécanisme à rejet sélectif (PO ou PBS)

Interrupteur on /off n°2

out

Ton

Toff

Destination

Source non prioritaire

6

Page 7: Compte rendu des TP raliss avec QNAP

3.2.2. Résultats Deux compteurs ont été créés afin de calculer le nombre de trames arrivées au commutateur et le nombre de trames perdues. Nous pouvons calculer ainsi le taux de perte :

rcommutateulepargéréestramesdenombreperduestramesnombrepertedetaux =

Nous avons fait varier la capacité de la file entre 500, 1000, 1500, 2000, 2500 et obtenons les courbes suivantes :

Taux de perte en fonction de l'évolution de la taille de la fenêtre

0

0,01

0,02

0,03

0,04

0,05

0,06

0,07

0,08

0,09

0,1

500 1000 1500 2000 2500

taille de la fenêtre

taux

de

perte

trames non prioritairestrames prioritaires

3.2.3. Interprétation Le mécanisme implique que le taux de perte des trames prioritaires est moins élevé que celui des trames non prioritaires. C’est bien ce que nous pouvons constater sur l’évolution générale des courbes. Cependant, nous pouvons nous interroger sur le fait que ce taux de perte soit décroissant lorsque la taille de la fenêtre croît. Cela s’explique par le fait que les débits des sources ne sont pas modifiés. Nous avons alors le même nombre de trames pour une capacité d’accueil plus importante, il est donc normal que moins de trames soient rejetées : il y a une place disponible plus importante. D’après la simulation et les différentes données de notre problème (la solution suivante serait différente avec des débits des sources différents par exemple), une valeur de la taille de la fenêtre satisfaisante, donnant un taux de perte des trames prioritaires compris entre 0.001 et 0.01 est K > 1500. Nous constatons en effet que dès une taille de fenêtre supérieure à cette valeur, le taux est inférieur à 0.006. Par contre, pour obtenir un taux de perte de trames toutes classes confondues dans cette même fourchette, la taille de notre fenêtre doit être alors plus proche de 2500.

7

Page 8: Compte rendu des TP raliss avec QNAP

3.3. Partial Buffer Sharing Avec ce mécanisme à seuil, les trafics prioritaires et non prioritaires sont acceptés jusqu'au seuil Spbs, au-delà, seul le trafic prioritaire est accepté jusqu’à ce que la fenêtre soit pleine ; le reste est rejeté. Le choix du seuil semble donc être déterminant.

3.3.1. Implémentation du mécanisme Une station modélise le mécanisme PBS. Lorsqu’un client arrive dans la file d’attente et qu’il est de classe non prioritaire, nous vérifions que le nombre de clients (celui qui vient d’arriver compris) soit inférieur ou égale au seuil. Si ce n’est pas le cas, le client est transité vers la sortie. Cette vérification consiste donc en un parcours de liste respectant la politique LIFO et une conditionnelle que vous pourrez consulter dans le code joint en annexe. Le temps de service est déterminé de la même façon que présentée dans la section de l’implémentation du PO.

3.3.2. Résultats Deux compteurs ont été créés afin de calculer le nombre de trames arrivées au commutateur et le nombre de trames perdues. Nous pouvons calculer ainsi le taux de perte :

rcommutateulepargéréestramesdenombreperduestramesnombrepertedetaux =

Après avoir fait varier K, nous nous sommes rendus compte que les valeurs nous intéressant (taux de perte avoisinant les 0.01) se trouvaient pour un K = 2000. Nous présentons ici donc les variations du seuil pour une capacité de la file égale à 1000 puis 2000. Nous avons fait varier le seuil à 20, 40, 60 et 80% de K. Nous obtenons les courbes suivantes :

taux de perte en fonction du seuil pour K = 1000

0

0,02

0,04

0,06

0,08

0,1

0,12

400 800 1200 1600

seuil

taux

de

pert

e trames non prioritaires pourk=1000

trames prioritaires pourk=1000

Figure 1

8

Page 9: Compte rendu des TP raliss avec QNAP

taux de perte en fonction du seuil pour K = 2000

0

0,0005

0,001

0,0015

0,002

0,0025

400 800 1200 1600

seuil

taux

de

pert

e

trames prioritaires, les non prioritairesne sont pas perdues pour unecapacité de 2000

Figure 2

3.3.3. Interprétation De la même façon que dans le mécanisme précédent, le taux de perte des trames prioritaires doit être inférieur au taux de perte des trames non prioritaires. Ce que nous montre bien la figure 1. En revanche la figure 2 ne nous présente qu’une seule courbe présentant les taux de pertes des trames prioritaires. Aucune trame non prioritaire n’est perdue. Cela peut s’expliquer par le fait que pour une capacité de 2000, le débit de la source des trames non prioritaires étant deux fois moins important que celui de la source de trames prioritaires, toutes les trames ont pu être placées dans le buffer. Lorsque le seuil est petit, la proportion partagée de la file est moins grande. La perte des trames prioritaires devrait donc être petite. De façon inverse, la perte de trames non prioritaires est plus importante à mesure que la valeur du seuil diminue. C’est bien ce que nous montre le tracé de la figure 1 puis de la figure 2 : la courbe est nettement décroissante pour un seuil croissant en ce qui concerne les trames non prioritaires de la figure 1 (K=1000) et elle est nettement croissante pour un seuil croissant pour ce qui concerne le taux de trames prioritaires de la figure 2 (K = 2000). C’est pour cette dernière capacité K que nous avons noté les valeurs du couple (K, Spbs) satisfaisant où le taux de perte des trames est compris entre 0.001 et 0.01. Nous pouvons donc conclure que si l’on veut minimiser la perte des trames prioritaires, le paramètre seuil doit être le plus petit possible pour permettre une proportion allouée aux trames prioritaires uniquement plus grande.

3.4. Conclusions sur ces deux mécanismes à rejet sélectif Nous avons vu que ces deux mécanismes garantissent un taux de perte des trames prioritaires faible. Nous avons montré, dans le cas du PSB, qu’il fallait paramétrer un seuil petit afin que la proportion non partageable soit grande. Le mécanisme PBS, contrairement au PO est sensible à la charge du trafic de trames de classe non prioritaire. Lorsqu’une trame prioritaire arrive dans le cas du PO, toute trame non prioritaire lui cède la place. En revanche, dans le cas PBS, le seuil est fixe ce qui implique que le mécanisme peut perdre en performance si ce paramètre est mal choisi et que la quantité de trafic non prioritaire est importante. Dans ce TP, nous nous sommes intéressés aux taux de perte, il serait également intéressant de se pencher sur deux autres critères de performances comme le débit moyen et le délai de transit moyen.

9

Page 10: Compte rendu des TP raliss avec QNAP

4. Annexes Les fichiers *.qnp comportent les implémentations des différents mécanismes présentés. Les fichiers *resultats.txt sont les résultats des exécutions de ces fichiers *.qnp Les fichiers disponibles sont :

- fs.qnp et fsresultats.txt pour le mécanisme « fenêtre sautante » ; - po.qnp et poresultats.txt pour le mécanisme « push out » ; - pbs.qnp et pbsresultats.txt pour le mécanisme « partial buffer sharing »

10

Page 11: Compte rendu des TP raliss avec QNAP

fs.qnp

/DECLARE/ REAL BC,TC; QUEUE S,fenetre,onoff,inter; REAL cf, noncf; & compteur trame conforme et non conforme REAL Ton, Tc, Toff, tsimul; REAL on, lambdaOn; /STATION/ NAME=S; TYPE=SOURCE; SERVICE=BEGIN EXP(1/lambdaOn); IF (on = 1) THEN TRANSIT(fenetre) ELSE TRANSIT(OUT); END; /STATION/ NAME=fenetre; SERVICE= WHILE (TRUE) DO BEGIN IF (BC > 0) THEN BEGIN BC:=BC-1; cf := cf + 1; TRANSIT(OUT); END ELSE BEGIN noncf := noncf + 1; TRANSIT(OUT); END; END; /STATION/ NAME=onoff; INIT = 1; SERVICE= BEGIN WHILE (TRUE) DO BEGIN on:=1; EXP(Ton); on:=0; EXP(Toff); END; END; /STATION/ NAME=inter; INIT = 1; SERVICE= BEGIN WHILE (TRUE) DO BEGIN CST(Tc);BC:=125*Tc; END; END;

11

Page 12: Compte rendu des TP raliss avec QNAP

/CONTROL/ TMAX=tsimul; ACCURACY=ALL QUEUE; /EXEC/ BEGIN tsimul := 2500; Ton:=0.4; Toff:=0.6; on:=1; lambdaOn := 125 * (1/0.4); cf :=0.; noncf :=0.; Tc:=1; BC:=125*TC; SIMUL; PRINT(" nombre de clients prioritaires : ",cf); PRINT(" nombre de clients non prioritaires : ",noncf); PRINT(" taux de conformite :"); PRINT(cf/(cf+noncf));

[...]

12

Page 13: Compte rendu des TP raliss avec QNAP

fsresultats.txt ***SIMULATION WITH SPECTRAL METHOD *** ... TIME = 2500.00 , NB SAMPLES = 512 , CONF. LEVEL = 0.95 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *S *0.3221E-02* 1.000 * 1.000 *0.3221E-02* 776162* * +/- *0.2099E-04*0.0000E+00*0.0000E+00*0.2099E-04* * * * * * * * * *fenetre *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 318142* * +/- *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* * * * * * * * * *onoff *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * *inter *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 7405 WORDS OF 4 BYTES ( 0.05 % OF TOTAL MEMORY) nombre de clients prioritaires : 0.2164E+06 nombre de clients non prioritaires : 0.1018E+06 taux de conformite : 0.6801 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *S *0.3204E-02* 1.000 * 1.000 *0.3204E-02* 780288* * +/- *0.1712E-04*0.0000E+00*0.0000E+00*0.1712E-04* * * * * * * * * *fenetre *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 319575* * +/- *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* * * * * * * * * *onoff *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * *inter *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 7945 WORDS OF 4 BYTES ( 0.05 % OF TOTAL MEMORY) nombre de clients prioritaires : 0.2557E+06 nombre de clients non prioritaires : 0.6386E+05 taux de conformite : 0.8002

13

Page 14: Compte rendu des TP raliss avec QNAP

******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *S *0.3186E-02* 1.000 * 1.000 *0.3186E-02* 784748* * +/- *0.5981E-05*0.0000E+00*0.0000E+00*0.5981E-05* * * * * * * * * *fenetre *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 314763* * +/- *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* * * * * * * * * *onoff *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * *inter *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 8529 WORDS OF 4 BYTES ( 0.06 % OF TOTAL MEMORY) nombre de clients prioritaires : 0.2797E+06 nombre de clients non prioritaires : 0.3503E+05 taux de conformite : 0.8887 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *S *0.3203E-02* 1.000 * 1.000 *0.3203E-02* 780567* * +/- *0.1924E-04*0.0000E+00*0.0000E+00*0.1924E-04* * * * * * * * * *fenetre *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 314999* * +/- *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* * * * * * * * * *onoff *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * *inter *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 9109 WORDS OF 4 BYTES ( 0.06 % OF TOTAL MEMORY) nombre de clients prioritaires : 0.2889E+06 nombre de clients non prioritaires : 0.2612E+05 taux de conformite : 0.9171

14

Page 15: Compte rendu des TP raliss avec QNAP

******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *S *0.3195E-02* 1.000 * 1.000 *0.3195E-02* 782499* * +/- *0.1197E-04*0.0000E+00*0.0000E+00*0.1197E-04* * * * * * * * * *fenetre *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 315145* * +/- *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* * * * * * * * * *onoff *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * *inter *0.0000E+00* 1.000 * 1.000 *0.0000E+00* 0* * +/- *----------*0.0000E+00*0.0000E+00*----------* * * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 9683 WORDS OF 4 BYTES ( 0.06 % OF TOTAL MEMORY) nombre de clients prioritaires : 0.2897E+06 nombre de clients non prioritaires : 0.2541E+05 taux de conformite : 0.9194 131 /END/

15

Page 16: Compte rendu des TP raliss avec QNAP

po.qnp /DECLARE/ QUEUE tp, tnp, po, dest, isp, isnp; REAL Tt, Ts; & temps de d'emission (Tt) et de silence (Ts) des deux sources. REAL onp, onnp; & interrupteurs on/off REAL k; & capacité du tampon REAL lop,lonp; & lambda on, différent selon le debit REF CUSTOMER client; & client spécifique REAL temises; & trames arrivant à la fenetre REAL tperdues; & trames perdues par la fenetre REAL trnpdest,trpdest; & trames sorties de la fenetre CLASS cp, cnp; & classes prioritaire et non prioritaire BOOLEAN continue; & boolean && traitement des sources && /STATION/ NAME=tp; & trafic prioritaire TYPE=SOURCE; SERVICE=BEGIN EXP(1/lop); BEGIN IF (onp = 1) THEN BEGIN temises := temises + 1; TRANSIT(po,cp); END ELSE TRANSIT(OUT,cp); END; END; /STATION/ NAME=tnp; & trafic non prioritaire TYPE=SOURCE; SERVICE=BEGIN EXP(1/lonp); BEGIN IF (onnp = 1) THEN BEGIN temises := temises + 1; TRANSIT(po,cnp); END ELSE TRANSIT(OUT,cnp); END; END; && fin de traitement des sources && && traitement des interrupteurs && /STATION/ NAME=isp; &interrupteur source prioritaire INIT = 1; SERVICE= BEGIN WHILE (TRUE) DO BEGIN onp:=1; EXP(Tt); & temps "on" pour les non prioritaires onp:=0; EXP(Ts); END; END;

16

Page 17: Compte rendu des TP raliss avec QNAP

/STATION/ NAME=isnp; &interrupteur source non prioritaire INIT = 1; SERVICE= BEGIN WHILE (TRUE) DO BEGIN onnp:=1; EXP(Tt); & temps "on" pour les prioritaires onnp:=0; EXP(Ts); END; END; && fin de traitement des interrupteurs && && traitement du mécanisme push-out && /STATION/ NAME=po; CAPACITY = k; REJECT = BEGIN tperdues := tperdues + 1; IF (CUSTOMER.CCLASS = cp) THEN BEGIN continue := TRUE; & remplacement des non prioritaires par les prioritaires client := po.LAST ; & on avance tant qu'on a pas de cnp et qu'il reste des clients WHILE ((client <> NIL) AND continue) DO BEGIN IF (client.CCLASS = cp) THEN continue := FALSE ELSE client := client.PREVIOUS; END; IF (client <> NIL) THEN & alors le client est de classe cnp BEGIN TRANSIT(client,OUT); & on l'ejecte TRANSIT(CUSTOMER,po); & on ajoute le client courant END ELSE & deja tous prioritaire BEGIN TRANSIT(CUSTOMER,OUT); & on route la trame vers la sortie END; END ELSE & trame non prioritaire BEGIN TRANSIT(CUSTOMER,OUT); END; END; SERVICE= BEGIN CST(1./250.); & 2 mega => 250 tr/s => 1 / 250 TRANSIT(dest); END;

17

Page 18: Compte rendu des TP raliss avec QNAP

&& destination && /STATION/ NAME = dest; SERVICE = BEGIN IF (CUSTOMER.CCLASS = cp) THEN trpdest := trpdest + 1 ELSE trnpdest := trnpdest + 1; TRANSIT(CUSTOMER,OUT); END; /CONTROL/ TMAX=2000.; /EXEC/ BEGIN Ts := 3.0; Tt := 1.5; k := 100.; & capacité de la file temises := 0.; tperdues := 0.; trpdest := 0.; trnpdest := 0.; lop := 125 * ((Tt + Ts) / Tt); & theorique : nbr de trames / s = 125 => lambda = 125 * (1 / Tt) lonp := 63 * ((Tt + Ts) / Tt); & 62.5 arrondi a 63 SIMUL; PRINT(" taille de la fenetre : ",k); PRINT(" Nombre de trames emises : ",temises); PRINT(" Nombre de trames prioritaires reçues : ",trpdest); PRINT(" Nombre de trames non prioritaires reçues : ",trnpdest); PRINT(" Nombre de trames perdues : ",tperdues); PRINT(" Taux de perte : "); PRINT( tperdues / temises);

[ …]

18

Page 19: Compte rendu des TP raliss avec QNAP

poresultats.txt *** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2682E-02* 1.000 *0.1154E+05* 29.94 * 745801* * * * * * * * *tnp *0.5312E-02* 1.000 * 3488. * 18.16 * 376524* * * * * * * * *dest *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 328917* * * * * * * * *po *0.4000E-02*0.6578 * 144.9 *0.8476 * 341820* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 1271643 WORDS OF 4 BYTES ( 8.48 % OF TOTAL MEMORY) taille de la fenetre : 500.0 Nombre de trames emises : 0.3601E+06 Nombre de trames prioritaires perdues : 0.1832E+05 Nombre de trames non prioritaires perdues : 0.1290E+05 Taux de perte des trames prioritaires : 0.5087E-01 Taux de perte des trames non prioritaires : 0.3583E-01 *** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2663E-02* 1.000 * 5418. * 14.20 * 751041* * * * * * * * *tnp *0.5272E-02* 1.000 * 1697. * 8.863 * 379374* * * * * * * * *dest *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 352391* * * * * * * * *po *0.4000E-02*0.7048 * 255.5 * 1.415 * 360848* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 1271649 WORDS OF 4 BYTES ( 8.48 % OF TOTAL MEMORY) taille de la fenetre : 1000. Nombre de trames emises : 0.3679E+06 Nombre de trames prioritaires perdues : 6385. Nombre de trames non prioritaires perdues : 8457. Taux de perte des trames prioritaires : 0.1736E-01 Taux de perte des trames non prioritaires : 0.2299E-01

19

Page 20: Compte rendu des TP raliss avec QNAP

*** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2669E-02* 1.000 * 2898. * 7.661 * 749321* * * * * * * * *tnp *0.5280E-02* 1.000 * 656.0 * 3.444 * 378795* * * * * * * * *dest *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 356757* * * * * * * * *po *0.4000E-02*0.7135 * 350.9 * 1.941 * 361699* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 1271710 WORDS OF 4 BYTES ( 8.48 % OF TOTAL MEMORY) taille de la fenetre : 1500. Nombre de trames emises : 0.3650E+06 Nombre de trames prioritaires perdues : 3318. Nombre de trames non prioritaires perdues : 4942. Taux de perte des trames prioritaires : 0.9090E-02 Taux de perte des trames non prioritaires : 0.1354E-01 *** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2662E-02* 1.000 * 943.2 * 2.504 * 751186* * * * * * * * *tnp *0.5271E-02* 1.000 * 170.2 *0.8949 * 379424* * * * * * * * *dest *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 371051* * * * * * * * *po *0.4000E-02*0.7421 * 372.2 * 1.975 * 373448* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 1271716 WORDS OF 4 BYTES ( 8.48 % OF TOTAL MEMORY) taille de la fenetre : 2000. Nombre de trames emises : 0.3759E+06 Nombre de trames prioritaires perdues : 497.0 Nombre de trames non prioritaires perdues : 2397. Taux de perte des trames prioritaires : 0.1322E-02 Taux de perte des trames non prioritaires : 0.6376E-02

20

Page 21: Compte rendu des TP raliss avec QNAP

*** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2668E-02* 1.000 * 2349. * 6.240 * 749656* * * * * * * * *tnp *0.5285E-02* 1.000 * 766.2 * 4.038 * 378397* * * * * * * * *dest *0.0000E+00*0.0000E+00*0.0000E+00*0.0000E+00* 394328* * * * * * * * *po *0.4000E-02*0.7887 * 523.8 * 2.634 * 397736* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 1271764 WORDS OF 4 BYTES ( 8.48 % OF TOTAL MEMORY) taille de la fenetre : 2500. Nombre de trames emises : 0.3994E+06 Nombre de trames prioritaires perdues : 1646. Nombre de trames non prioritaires perdues : 3408. Taux de perte des trames prioritaires : 0.4121E-02 Taux de perte des trames non prioritaires : 0.8532E-02

21

Page 22: Compte rendu des TP raliss avec QNAP

pbs.qnp /DECLARE/ QUEUE tp, tnp, pbs, isp, isnp; REAL Tt, Ts; &temps de d'emission (Tt) et de silence (Ts) des deux sources. REAL onp, onnp; & interrupteurs on/off REAL k; & capacité du tampon REAL seuil; & seuil de la fenetre REAL lop,lonp; & lambda on différent selon le debit REAL tpp, tnpp; & nombre de trames prioritaires, non prioritaires perdues REAL temises; & nombre de trames traitées par la fenetre CLASS cp, cnp; & classes prioritaire et non prioritaire && traitement des sources && /STATION/ NAME=tp; & trafic prioritaire TYPE=SOURCE; SERVICE=BEGIN EXP(1/lop); IF (onp = 1) THEN TRANSIT(pbs,cp) ELSE TRANSIT(OUT,cp); END; /STATION/ NAME=tnp; & trafic non prioritaire TYPE=SOURCE; SERVICE=BEGIN EXP(1/lonp); IF (onnp = 1) THEN TRANSIT(pbs,cnp) ELSE TRANSIT(OUT,cnp); END; && fin de traitement des sources && && traitement des interrupteurs && /STATION/ NAME=isp; &interrupteur source prioritaire INIT = 1; SERVICE= WHILE (TRUE) DO BEGIN onp:=1; EXP(Tt); & temps "on" pour les prioritaires onp:=0; EXP(Ts); END; /STATION/ NAME=isnp; &interrupteur source non prioritaire INIT = 1; SERVICE= WHILE (TRUE) DO BEGIN onnp:=1; EXP(Tt); & temps "on" pour les non prioritaires onnp:=0; EXP(Ts); END; && fin de traitement des interrupteurs &&

22

Page 23: Compte rendu des TP raliss avec QNAP

&& traitement du mécanisme partial buffer sharing && /STATION/ NAME=pbs; CAPACITY = k; REJECT = BEGIN temises := temises + 1; IF (CUSTOMER.CCLASS = cnp) THEN tnpp := tnpp + 1 ELSE tpp := tpp + 1; TRANSIT(CUSTOMER,OUT); END; SERVICE= BEGIN temises := temises + 1; IF (CUSTOMER.CCLASS = cnp) THEN IF (pbs.NB > seuil) THEN BEGIN tnpp := tnpp + 1; TRANSIT(OUT); END; CST(1./250.); TRANSIT(OUT); END; /CONTROL/ TMAX=2000.; /EXEC/ BEGIN Ts := 3.0; Tt := 1.5; lop := 125 * ((Tt + Ts) / Tt); & theorique : nbr de trames / s = 125 => lambda = 125 * ((Ts + Tt) / Tt) lonp := 63 * ((Tt + Ts) / Tt); & 62.5 arrondi a 63 k := 1000; seuil := (k / 100) * 20; & 20 % de K. temises := 0.; tpp := 0.; tnpp := 0.; SIMUL; PRINT(" taille de la fenetre : ",k); PRINT(" seuil fixé à ",seuil); PRINT(" Nombre de trames prioritaires perdues : ",tpp); PRINT(" Nombre de trames non prioritaires perdues : ",tnpp); PRINT(" Nombre de trames emises : ",temises); PRINT(" Taux de perte :"); PRINT( (tnpp + tpp) / temises); PRINT(" taux de perte trames prioritaires : ",tpp/temises); PRINT(" taux de perte trames non prioritaires : ",tnpp/temises);

23

Page 24: Compte rendu des TP raliss avec QNAP

pbsresultats.txt *** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2682E-02* 1.000 * 393.3 * 1.054 * 745801* * * * * * * * *tnp *0.5312E-02* 1.000 * 162.8 *0.8641 * 376524* * * * * * * * *pbs *0.3596E-02*0.6459 * 140.9 *0.7847 * 359224* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 78341 WORDS OF 4 BYTES ( 0.52 % OF TOTAL MEMORY) taille de la fenetre : 1000. seuil fixé à 200.0 Nombre de trames prioritaires perdues : 918.0 Nombre de trames non prioritaires perdues : 0.0000E+00 Nombre de trames emises : 0.3601E+06 Taux de perte : 0.2549E-02 taux de perte trames prioritaires : 0.2549E-02 taux de perte trames non prioritaires : 0.0000E+00 *** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2663E-02* 1.000 * 2006. * 5.321 * 751041* * * * * * * * *tnp *0.5272E-02* 1.000 * 736.9 * 3.872 * 379374* * * * * * * * *pbs *0.3710E-02*0.6722 * 194.7 * 1.074 * 362377* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 239627 WORDS OF 4 BYTES ( 1.60 % OF TOTAL MEMORY) taille de la fenetre : 1000. seuil fixé à 400.0 Nombre de trames prioritaires perdues : 4947. Nombre de trames non prioritaires perdues : 0.0000E+00 Nombre de trames emises : 0.3673E+06 Taux de perte : 0.1347E-01 taux de perte trames prioritaires : 0.1347E-01 taux de perte trames non prioritaires : 0.0000E+00

24

Page 25: Compte rendu des TP raliss avec QNAP

*** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2669E-02* 1.000 * 2065. * 5.477 * 749321* * * * * * * * *tnp *0.5280E-02* 1.000 * 531.1 * 2.791 * 378795* * * * * * * * *pbs *0.3776E-02*0.6783 * 214.3 * 1.193 * 359262* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 272683 WORDS OF 4 BYTES ( 1.82 % OF TOTAL MEMORY) taille de la fenetre : 1000. seuil fixé à 600.0 Nombre de trames prioritaires perdues : 5755. Nombre de trames non prioritaires perdues : 0.0000E+00 Nombre de trames emises : 0.3650E+06 Taux de perte : 0.1577E-01 taux de perte trames prioritaires : 0.1577E-01 taux de perte trames non prioritaires : 0.0000E+00 *** SIMULATION *** ... TIME = 2000.00 ******************************************************************* * NAME * SERVICE * BUSY PCT * CUST NB * RESPONSE * SERV NB * ******************************************************************* * * * * * * * *tp *0.2662E-02* 1.000 * 1991. * 5.268 * 751186* * * * * * * * *tnp *0.5271E-02* 1.000 * 882.6 * 4.628 * 379424* * * * * * * * *pbs *0.3850E-02*0.7096 * 240.6 * 1.302 * 368611* * * * * * * * *isp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * *isnp *0.0000E+00* 1.000 * 2.000 *0.0000E+00* 0* * * * * * * * ******************************************************************* ... END OF SIMULATION ... MEMORY USED: 298249 WORDS OF 4 BYTES ( 1.99 % OF TOTAL MEMORY) taille de la fenetre : 1000. seuil fixé à 800.0 Nombre de trames prioritaires perdues : 6394. Nombre de trames non prioritaires perdues : 0.0000E+00 Nombre de trames emises : 0.3750E+06 Taux de perte : 0.1705E-01 taux de perte trames prioritaires : 0.1705E-01 taux de perte trames non prioritaires : 0.0000E+00

25