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