Workshop MOCOSY Automatique et réseaux: contrôle de
Transcription
Workshop MOCOSY Automatique et réseaux: contrôle de
Workshop MOCOSY Automatique et réseaux: contrôle de congestion d’un routeur Yassine Ariba encadrants: F. Gouaisbaut et Y. Labit (MAC et OLC) Université Paul Sabatier, LAAS-CNRS Toulouse III Workshop MOCOSY, 26 mars 2009 1 / 16 Introduction Problème de congestion d’un routeur: • TCP est un mécanisme de contrôle de congestion de bout en bout. • Sur réception d’un paquet → le receveur renvoit un acquitement. • Sur réception d’un acq (ou pas) → la source augmente (ou diminue) son taux d’envoi. • Si le trafic est trop intense → le buffer du routeur se remplit. ./%))%#&- '*+%,)%#&'(#)%#& !"#$$%& 0%&)%-!-1!"#$$%& -2)#&*3!4&(,5216 • Les paquets sont éjectés quand le buffer est plein → mécanisme du Drop tail. ! ! Workshop MOCOSY, 26 mars 2009 2 / 16 Introduction Simulations du mécanisme de Drop tail sur NS-2 400 ,')* '()* !"#$%#& +(-./* !"#$%#& 0')* '()* +'()* ,')* '()* taille de la file d’attente (pkts) 350 300 250 200 150 100 50 ! ! 0 0 50 100 150 temps (s) Lorsque le buffer est saturé (taille: 400pqts) → pertes: • grandes oscillations, • proche de la saturation du buffer, • délai d’attente important. ! Objectif: Réguler la taille de file d’attente du routeur. Workshop MOCOSY, 26 mars 2009 3 / 16 Introduction Active queue management (AQM): • AQM aide TCP pour le contrôle de congestion. • Idée: anticiper la saturation de buffer. • AQM est un mécanisme qui force la perte de paquets. • Sur éjection d’un paquet, AQM agit implicitement sur les taux d’envoi des sources. 56&''&%-( 7)+&,'&%-( 012 3%44&- !"#$%&'(!)*&+')( !,#-!./012 ! ! But: Améliorer la Qualité de Service (QdS) ! délai → applications intéractives, temps-réel, gigue → flux multimédias. Workshop MOCOSY, 26 mars 2009 4 / 16 Modélisation Modèle fluide de l’ensemble TCP/AQM 8 > < ẋi (t) ḃ(t) > : τi b i (t−τi ) = xx(t)τ 2 (1 − pi (t − τi )) − i i (t)P = −C + N xi (t − τif ) = b(t) + Tpi = τif + τib C xi (t−τi )xi (t) pi (t 2 − τib ) + xi (t) τi (t) − xi (t) τi (t)C P N xk (t − τkf ) !"#$$#%& avec: 4. 0 . • xi = taux d’envoi (paquets/s) 560*7$232 . +%..#& +,$- • b = taille de la file d’attente (paquets) . • τi = round trip time (RTT) (secondes) /0*1$232 . • τif = forward delay (secondes) 4+ . • τib = backward delay (secondes) 0 . • C = capacité du lien (paquet/s) . • N = nombre de sessions TCP ! '()#*$#%& ! . • pi = probabilité d’éjection d’un paquet Workshop MOCOSY, 26 mars 2009 5 / 16 Modélisation Linéarisation Equilibre: 8 > < Modèle linéaire: 2 ẋ1 (t) 6 . . 6 . 6 4 ẋN (t) ḃ(t) 3 τi∗ ḃ(t) > : ẋi (t) 2 δx1 (t) 7 6 . .. 7 6 7 = A6 5 4 δx (t) N δb(t) 3 = Tpi + b ∗ /C P ∗ =0 → N xi = C = 0 → pi∗ = 2+(x ∗2 τ ∗ )2 7 7 7 + Ad 5 i 2 δx1 (t − τ1f ) 6 . . 6 . 6 4 δx (t − τ f ) N N δb(t) i 3 2 3 δp1 (t − τ1b ) 7 7 6 7 . . 7+B4 5 . 5 b δpN (t − τN ) • Approximation linéaire du modèle de TCP autour d’un point d’équilibre, • δxi et δb sont valeurs des débits et file d’attente autour du point d’équilibre, • il faut “jouer” sur les taux de pertes δpi pour contrôler le trafic. Workshop MOCOSY, 26 mars 2009 6 / 16 Contrôle de congestion du routeur Calcul du taux de perte δpi (t) appliqué par l’AQM: *(#&+%, A.<)BC$.= '(#)%#& -%,)./0)0.&%, !!!!!!!!!!123 !!4&("0".5.)6!7869%+).(/ :4;<)=>!!?@.!:A.<)BC$.= !!!!!!!!!!!D?E.!:"<)= "<)= !!"#$$%& F0G#%),!69%+)6, ! ! Système interconnecté obtenu: 2 6 6 6 4 δ ẋ1 (t) . . . δ ẋN (t) ḃ(t) 3 2 7 6 7 6 7 = A6 5 4 δx1 (t) . .. δxN (t) δb(t) 3 7 7 7+Ad 5 2 6 6 6 4 δx1 (t − τ1f ) . . . δxN (t − τNf ) δb(t) 3 2 3 2 3 δb(t − τ1b ) δx1 (t − τ1 ) 7 6 7 6 7 7 . . .. .. 7+BK1 4 5+BK2 4 5 5 δxN (t − τN ) δb(t − τNb ) ! Objectif: Synthétiser K1 et K2 tels que l’interconnexion soit stable Workshop MOCOSY, 26 mars 2009 7 / 16 Analyse de stabilité Approche par séparation quadratique (analyse robuste): + z w w + z Théorème Le système incertain représenté sur la figure ci dessus est stable si et seulement s’il existe une matrice Θ = Θ∗ satisfaisant les conditions ˆ ˜⊥∗ ˆ ˜⊥ E −A Θ E −A >0 ˆ 1 ∇∗ ˜ Θ » 1 ∇ – ≤ 0. ⇒ Transformer notre modèle sous la forme d’une interconnexion. Workshop MOCOSY, 26 mars 2009 8 / 16 Analyse de stabilité Construction de la matrice incertaine ∇: z 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 2 6 avec D♦ = 4 w }| X (t) x1 (t − τ1f ) .. . xN (t − τNf ) b(t − τ1b ) .. . b(t − τNb ) x1 (t − τ1 ) .. . xN (t − τN ) e −♦ 1 s 7 7 7 7 7 z 7 2 −1 7 s 1N+1 7 7 6 7=6 7 4 7 7 7 7 7 7 7 5 0 .. 0 { 3 . e −♦ N s 3 z 2 ∇ }| Dτ f 2 6 7 6 5 et X (t) = 6 4 Dτ b x1 (t) .. . xN (t) b(t) Dτ 3 7 7 7. 5 6 6 6 6 6 { 36 6 6 76 76 56 6 6 6 6 6 6 6 4 z }| Ẋ (t) x1 (t) .. . xN (t) b(t) .. . b(t) x1 (t) .. . xN (t) { 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 Workshop MOCOSY, 26 mars 2009 9 / 16 Modélisation Construction des matrices E et A: z 2 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 4 avec E1 = ˆ 1N z }| Ẋ (t) x1 (t) .. . xN (t) b(t) .. . b(t) x1 (t) .. . xN (t) 0N×1 z 2 { 3 7 7 7 7 7 z 7 2 7 7 7 6 7=6 7 4 7 7 7 7 7 7 7 5 ˜ A A E1 E2 E1 2 Ād 0 0 0 6 et E2 = 4 0N }| BK2 0 0 0 1 .. . 1 3 6 6 6 6 6 3{ 6 BK1 6 6 6 0 7 76 0 56 6 6 0 6 6 6 6 6 4 w }| X (t) x1 (t − τ1f ) .. . xN (t − τNf ) b(t − τ1b ) .. . b(t − τNb ) x1 (t − τ1 ) .. . xN (t − τN ) { 3 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 5 7 5. Workshop MOCOSY, 26 mars 2009 10 / 16 Analyse de stabilité Définition du séparateur Θ satisfaisant la 2nd inégalité du théorème: ∗ ∀s −1 ∈ C+ : − s −1 P − s −1 P ≤ 0, P > 0, » –» – ˆ ∗ ˜ 1 0 −P ≤ 0. 1 s −1 −P 0 s −1 ∀s −1 ∈ C+ :|e −τ s | ≤ 1, » ˆ ∗ ˜ −Q 1 e −τ s 0 0 Q –» 1 e −τ s – ≤0 La 1iere inégalité constitue la condition de stabilité. ˆ E −A ˜⊥∗ Θ ˆ E −A ˜⊥ >0 On en déduit les valeurs de K1 et K2 de notre correcteur. Workshop MOCOSY, 26 mars 2009 11 / 16 Contrôle de congestion du routeur: exemple Considérons la topologie: ,')* '()* !"#$%#& +(-./* !"#$%#& 0')* '()* +'()* ,')* '()* 12)* Modèle: 2 3 2 ẋ1 (t) 6 ẋ2 (t) 7 6 4 ẋ (t) 5 = 4 3 ḃ(t) ! a1 0 0 0 0 a2 0 0 ! 0 0 a3 0 32 3 δx1 (t) h1 h2 7 6 δx2 (t) 7 h3 5 4 δx3 (t) 5 0 ḃ(t) 2 6 +4 2 6 +6 4 32 δx1 (t − τ1f ) f1 f1 f1 0 f2 f2 f2 0 7 6 δx2 (t − τ2f ) 6 f3 f3 f3 0 5 4 δx3 (t − τ3f ) 1 1 1 0 δb(t) 3 g1 δp1 (t − τ1b ) g2 δp2 (t − τ2b ) 7 7 g3 δp3 (t − τ3b ) 5 0 3 7 7 5 ! Objectif: Réguler la file d’attente b(t) à une valeur désirée: 100pqts. Workshop MOCOSY, 26 mars 2009 12 / 16 Simulations: NS-2 Simulations de notre AQM sur NS-2 400 taille de la file d’attente (pkts) 350 300 250 200 150 100 50 0 0 50 100 150 temps (s) Régulation de la file d’attente à 100 paquets. • Le temps de file d’attente est fixé à une valeur désirée (ici ∼ 38ms), • peu d’oscillations entraine une gigue faible, • en jouant sur le point d’équilibre, on peut effectuer un service différencié. Workshop MOCOSY, 26 mars 2009 13 / 16 Emulation: 2 approches possibles Configuration du noyau: Emulation avec NS temps-réel: pong 19 • émuler les caractéristiques du réseau en utilisant les outils linux route, tc, netem... • créer la discipline de la file d’attente du routeur, Environnement Simulé Modèle NS pong 17 pong 20 Environnement réel Paquet réel • ajouter le code de notre AQM dans l’utilitaire tc, • recompiler le noyau. ! Implémentation réel de l’AQM. • Pong19 crée un environnement simulé, • Capture et génération des paquets d’un réseau physique: récupérés dans NS par les “Network object”, • Liaison avec l’environnement NS via des “Tap agent”. Workshop MOCOSY, 26 mars 2009 14 / 16 Emulation Régulation de la file d’attente à 80 paquets. 400 '()* '()* !"#$%#& -./0* ,()* 300 (+)* ,()* 2+()* queue size b(t) (pkts) 1()* (+)* 350 !"#$%#& 250 200 150 100 50 ! ! 0 0 20 40 60 80 100 time (s) 120 140 160 180 200 Test avec NS en temps réel de notre correcteur K • Régulation de réels flux TCP. • erreur en régime permanent: pb de modèle, pb d’implémentation, pb de précision des paramétres réseaux ? • travaux en cours ... Workshop MOCOSY, 26 mars 2009 15 / 16 Conclusion Théorie • condition de stabilité et synthèse de l’AQM, ⇒ à améliorer (réduction du conservatisme, pertinence de la loi de commande) • simulations Matlab/Simulink ⇒ OK, • traffic monitoring: estimation de flux, détection d’anomalies, ⇒ théorie des observateurs. Expérimentation • simulations NS ⇒ OK • emulation caractéristiques du réseau (retards, capacité... ) • implémentation de l’AQM • NS émulation avec un ordonnanceur temps réel, ⇒ AQM émulé, • ajout de code et recompilation du noyau ⇒ AQM réel. Workshop MOCOSY, 26 mars 2009 16 / 16