• Aucun résultat trouvé

Partie II : Contributions

Chapitre 3 : Approche commande de réseau pour les SCR à contraintes temps-réel

3.6. Recherche des poids optimaux

« Contrôleur » et la station « Process ». La station « Contrôleur » envoie un paquet de 125 octets toutes les 10 ms à la station « Process ». Le trafic de fond est un flux envoyé depuis la station « Charge » vers la station « Process ». La station « Charge » comme son nom l’indique surcharge le réseau en envoyant des messages avec une période variant suivant une loi exponentielle autour de 1,7 ms et dont la taille varie aussi suivant une loi exponentielle autour de 1500 octets. Ce qui décrit en termes de charge une loi exponentielle autour de 7 Mb/s.

Dans le but d’implémenter la politique d’ordonnancement WRR, nous avons affecté à chaque type de flux un poids (respectivement ) qui représente le poids du trafic temps-réel (respectivement le poids du trafic de fond). Pour notre comparaison, nous avons considéré que et . Nous avons fixé la durée de simulation à 5 minutes et elle a été lancée 30 fois avec des tirages de variables aléatoires (« seed ») différents. Le délai maximal obtenu pour les trente simulations effectuées est de : . Le calcul réseau basé sur la courbe de service en escalier non uniforme donne : . Le calcul réseau basé sur la courbe de service de type rate-latency, quant à lui, donne : .

Ainsi pour cet exemple, l’écart entre le délai estimé par calcul réseau utilisant une courbe de service de type rate-latency et le délai maximum obtenu par simulation est de 56% et n’est plus que de 7% avec une courbe de service en escalier non uniforme.

Ainsi, pour les applications fortement contraintes temporellement, ce qui a été développé en termes de calcul réseau dans ce chapitre (courbe de service en escalier non uniforme) peut être appliqué avec un niveau de pessimisme acceptable.

Il est à noter que les messages dont les délais sont proches des maxima estimés par calcul réseau apparaissent rarement. En effet, pour l’une des trente simulations où le délai de

a été atteint : aucune valeur n’est supérieure à 95 % du délai maximal calculé ( ) et seulement 210 sur les 13966 valeurs de délai (soit à peu près 1,5 % des valeurs) obtenues sont supérieures à 90 % du délai maximal calculé. Le pessimisme porte donc plus sur la fréquence de l’apparition de ces maxima qui va avoir pour conséquence une surprotection plus que nécessaire dans la majeure partie du temps des messages temps-réel lorsque l’on va configurer les poids de l’ordonnanceur WRR.

3.6. Recherche des poids optimaux

Au chapitre précédent, nous avons montré que si le WRR peut contrôler le retard, il n’existe pas de méthode de détermination des poids pour un contexte SCR.

L’algorithme que nous allons alors proposer permet de déterminer la configuration des poids du WRR qui représentent en fait la bande passante allouée pour chaque type de trafic. Il s’agit

de trouver une configuration optimale des poids pour garantir une contrainte de délai pour le trafic temps-réel strict tout en offrant un maximum de ressources pour les trafics annexes.

L’algorithme qui suit s’applique au cas où on a ordonnanceurs et classes de trafic traversant ces ordonnanceurs. Pour des raisons de simplicité, nous allons considérer que le trafic temps-réel correspond à la première classe de trafic (classe de trafic n° ).

Remarque

On rappelle que dans le cas réel (c'est-à-dire sur les commutateurs existant sur le marché) la valeur maximale de est de 4.

L’algorithme de calcul des poids optimaux nous permet d’identifier les poids optimaux

tels que : 𝐿 𝐿 𝐿 𝐿 𝐿 𝐿

3.6. Recherche des poids optimaux 89

La stratégie consiste donc à précalculer tous les délais maximaux (obtenus avec toutes les combinaisons des poids) afin de retenir la combinaison de poids qui permette de maximiser le taux bande passante du trafic de fond. Ce taux de passante est obtenu selon :

/********************************************Calcul des poids optimaux****************************************************/ /* Procédure pour parcourir toutes les combinaisons des poids pour obtenir les poids optimaux maximisant les ressources pour le trafic de fond */ Procédure calcul_des_poids_optimaux

Début

Pour allant de 1 à 255 Faire ; Si Alors calcul_des_poids_optimaux ; Sinon ; ; Si Alors calcul_des_poids_optimaux ; Sinon

/* Ici on atteint la nouvelle combinaison des poids à tester */

/* Ici on calcule le délai maximal pour cette nouvelle combinaison des poids*/ calcul_ ; Si Alors Si (

Pour allant de à Faire

Pour l allant de à Faire

; Fin Pour Fin Pour ; Fin Si Fin Si FinSi FinSi FinPour Fin Procédure */ Programme principal */ Début

𝐿 Taille_du_paquet_du_trafic_temps_réel ; /*on considère que celui-ci correspond à )*/

Taux_arrivée_maximal_du_trafic_temps_réel ; Nombre_de_classes_de_trafic_des_ordonnanceurs_WRR ;

Nombre_ordonnanceurs_WRR_traversés_par_le_flux_étudié ; Rafale_maximale ;

Seuil_de_délai_de_bout_en_bout_à_ne_pas_dépasser_pour_le_trafic_temps_réel ; /* Initialisation des capacités des commutateurs*/

Pour allant de à Faire

Capacité_du_port_de_sortie_du_ _commutateur_traversé_par_le_paquet_du_trafic_étudié ;

Fin Pour

/*Initialisation de la taille maximale des paquets de la classe de service (avec ) */ Pour allant de à Faire

𝐿 Taille_maximale_des_paquets_de_la_ _classe_de_service ;

Fin Pour

/* Initialisation des poids des différents commutateurs et des poids optimaux*/ Pour allant de à Faire

Pour allant de à Faire

0 ;

0 ;

Fin Pour Fin Pour

/* Initialisation du délai maximal pour chaque configuration de poids */

0 ;

/* Initialisation du meilleur taux de bande passante offert aux trafics annexes pour un seuil de délai donné */

0 ;

/* En appelant la procédure calcul_des_poids_optimaux avec les paramètres i=1 et j=1, on parcours toutes les combinaisons des poids*/ calcul_des_poids_optimaux ;

𝐿 𝐿 𝐿