Agrégation des communications multicast
Soutenance de thèse Joanna MOULIERAC
Encadrement : Miklós MOLNẢR
Direction : Gerardo RUBINO
Le multicast
Proposé par Steve Deering en 1991
Communication de groupes sur Internet Une seule copie du message par lien
Applications : vidéoconférences, jeux vidéos en ligne, diffusion de vidéos…
Le multicast
bb33
bb44 bb22
b b11 source
@g
(g)
(g)
(g)
Le multicast
bb33
bb44 bb22
b b11 source
@g@g
@g
(g)
(g)
(g)
Le multicast
bb33
bb44 bb22
b b11 source
(g)
(g)
(g)
O1 I1
O2
(source,@g) : I1Æ{O1,O2}
Passage à l’échelle du multicast IP
Un groupe g ↔ un arbre t ↔ |t| entrées de routage
Le nombre d’entrées de routage croît linéairement avec le nombre de groupes
Le nombre important d’entrées de routage implique :
Mémoire des routeurs saturée
Routage ralenti, temps d’accès aux entrées de routage Nombre de messages de contrôle important
Plan de la soutenance
I. L’agrégation multicast
• Principe et fonctionnement
• Algorithme d’agrégation
II. DMTA : l’agrégation multicast distribuée dans un petit domaine
III. TALD : l’agrégation multicast dans un grand domaine IV. Bilan et perspectives
Agrégation multicast
Entrée de routage pour g1 Entrée de routage pour g2 Entrée de routage pour g3
Table de routage
b b11
bb22
bb33
(g1, g2, g3)
bb44 (g1, g2, g3)
g1 g2 g3
Avec le multicast traditionnel
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4)
(g1, g2, g3)
b1
b b33
bb44 Table de routage
(g1, g2, g3)
(g1, g2, g3) bb22
Entrée de routage pour t1
(g1, g2, g3) bb11
Avec l’agrégation multicast
t1
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4)
Agrégation multicast
Entrée de routage pour g1 Entrée de routage pour g2 Entrée de routage pour g3
Table de routage
b b11
bb22
bb33
(g1, g2, g3)
bb44 (g1, g2, g3)
g1 g2 g3
b1
b b33
bb44 Table de routage
(g1, g2, g3)
(g1, g2, g3) bb22
Entrée de routage pour l1
(g1, g2, g3) g1 Æ l(t1) g2 Æ l(t1) g3 Æ l(t1)
bb11
t1 Table groupes-labels
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4)
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4)
Avec le multicast traditionnel Avec l’agrégation multicast
(g1, g2, g3)
Agrégation avec pertes
b1
bb33
bb44
Table de routage
(g1, g2, g3) bb22
Entrée de routage pour t1
b b11
t1
Table groupes-labels
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4)
Un nouveau groupe g4 arrive
g1 Æ l(t1 ) g2 Æ l(t1) g3 Æ l(t1 )
(g1, g2, g3) (g1, g2, g3)
(g1, g2, g3, g4)
(g1, g2, g3, g4)
Agrégation avec pertes
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4)
b1
bb33
bb44
Table de routage
(g1, g2, g3) bb22
Entrée de routage pour t1 Entrée de routage pour g4
b b11
t1
Table groupes-labels
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4) g4 = (b1,b4)
(g1, g2, g3, g4)
(g1, g2, g3, g4)
Deux possibilités :
1. Un nouvel arbre est construit
g1 Æ l(t1 ) g2 Æ l(t1) g3 Æ l(t1 )
g1 Æ l(t1 ) g2 Æ l(t1) g3 Æ l(t1 )
Agrégation avec pertes
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4)
b1
bb33
bb44
Table de routage
(g1, g2, g3) bb22
Entrée de routage pour t1 g1 Æ l(t1 )
g2 Æ l(t1 ) g3 Æ l(t1 )
g4 Æ l(t1) bb11
t1
Table groupes-labels
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4) g4 = (b1,b4)
(g1, g2, g3, g4)
(g1, g2, g3, g4) Deux possibilités :
1. Un nouvel arbre est construit
g1 Æ l(t1 ) g2 Æ l(t1) g3 Æ l(t1 )
Agrégation avec pertes
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4)
b1
bb33
bb44
Table de routage
(g1, g2, g3) bb22
Entrée de routage pour t1 g1 Æ l(t1 )
g2 Æ l(t1 ) g3 Æ l(t1 )
g4 Æ l(t1) bb11
t1
Table groupes-labels
g1 = (b1,b2,b4) g2 = (b1,b2,b4) g3 = (b1,b2,b4) g4 = (b1,b4)
(g1, g2, g3, g4)
(g1, g2, g3, g4) Perte de bande-passante sur ce lien pour les messages du groupe g4
Agrégation avec pertes
bb33
bb44 bb22
bb11
@g4 g1 Æ l(t1)
g2 Æ l(t1 ) g3 Æ l(t1 ) g4 Æ l(t1 )
Table groupes-labels
Le paquet pour g4 arrive au routeur b1
Agrégation avec pertes
bb33
bb44 bb22
bb11
@t1 @g4
@t1 @g4 g1 Æ l1
g2 Æ l1 g3 Æ l1 g4 Æ l1
Table groupes-labels
Le paquet est encapsulé avec @t1 g1 Æ l(t1)
g2 Æ l(t1 ) g3 Æ l(t1 ) g4 Æ l(t1 )
Agrégation avec pertes
bb33
bb44 bb22
bb11
@g4
@g4
Table groupes-labels
Le routeur b2 détruit le paquet car il n’a pas de membres appartenant à g4 g1 Æ l(t1)
g2 Æ l(t1 ) g3 Æ l(t1 ) g4 Æ l(t1 )
Algorithme d’agrégation
Algorithme AM [Cui et al., 2001] centralisé géré par une entité d’agrégation
Données :
Topologie du domaine G=(V,E) Un groupe g
Tolérance de bande-passante tb (0%, 10%, 20%...)
Un ensemble d’arbres déjà configurés MTS (Multicast Tree Set)
Résultat :
Trouver un arbre t dans MTS couvrant le groupe g dont le coût respecte le seuil tb
Algorithme d’agrégation
Calcul d’un arbre natif tg pour le groupe g Pour chaque arbre t dans MTS
• Si (t couvre g) et si ( )
• Alors t est candidat pour l’agrégation
Choisir pour g l’arbre t de coût minimum parmi les candidats Si pas de candidat, ajout de tg dans MTS
Entrée g → label(t) dans les tables groupes-labels des routeurs de bordures
b g
g t
t c
t c t
c − ≤
) (
) ( ) (
Nombre d’entrées de routage
0 5000 10000 15000 20000 25000 30000 35000
0 10000 20000 30000 40000 50000
Nom bre de groupe s concurre nts
Nombre d'entrées de routage
tb = 0%
tb = 10%
tb = 20%
Sans agrégation
Réduction de 36%
Simulations dans le réseau Eurorings (43 nœuds, 55 arêtes) pour 45000 groupes dynamiques
STA (Scalable Tree Aggregation) [Guitton et al, 2004]
rapidité d’agrégation
● Évaluer un sous-ensemble d’arbres
Q-STA (QoS Scalable Tree Aggregation) [Moulierac et al, 2004]
agrégation sous contraintes de bande-passante
● Utiliser au mieux les ressources du réseau
DMTA (Distributed Multicast Tree Aggregation) [Moulierac et al, 2005]
agrégation distribuée
● Agrégation robuste avec peu de messages de contrôle
● Configuration initiale d’un ensemble d’arbres
TALD (Tree Aggregation in Large Domains) [Moulierac et al, 2006]
agrégation dans les grands domaines
Contributions principales
Plan de la soutenance
I. L’agrégation multicast
II. DMTA : l’agrégation multicast distribuée dans un petit domaine
• L’algorithme distribué BEAM
• Notre algorithme distribué DMTA
• Configuration d’un ensemble d’arbres
III. TALD : l’agrégation multicast dans un grand domaine
L’agrégation multicast distribuée
Distribuer la charge d’agrégation Robustesse en cas de pannes
Algorithme BEAM
[Cui et al. 2003] :Les entités d’agrégation gardent une copie partielle du MTS
⋃
i∈entités MTSi = MTSL’agrégation multicast distribuée
bb33
bb44 bb22
b b11
1. Join message pour le groupe g
@entité = modulo(@g,#entités) MTS1
MTS2
MTS4
MTS3
MTS1 ⋃ MTS2 ⋃ MTS3 ⋃ MTS4 = MTS
L’agrégation multicast distribuée
bb33
bb44 bb22
b b11
1. Join message pour le groupe g
2. Requête d’agrégation
MTS1
MTS2
MTS4
MTS3
L’agrégation multicast distribuée
bb33
bb44 bb22
b b11
1. Join message pour le groupe g
3. Choix d’un arbre pour le groupe g 2. Requête d’agrégation
MTS1
MTS2
MTS4
MTS3
L’agrégation multicast distribuée
bb33
bb44 bb22
b b11
1. Join message pour le groupe g
2. Requête d’agrégation
MTS1
MTS2
MTS4
MTS3
4. Requête d’agrégation
3. Choix d’un arbre pour le groupe g
L’agrégation multicast distribuée
bb33
bb44 bb22
b b11
1. Join message pour le groupe g
3. Choix d’un arbre pour le groupe g 2. Requête d’agrégation
5. Choix d’un arbre pour le groupe g
MTS1
MTS2
MTS4
MTS3
4. Requête d’agrégation
L’agrégation multicast distribuée
bb33
bb44 bb22
b b11
1. Join message pour le groupe g
3. Choix d’un arbre pour le groupe g 2. Requête d’agrégation
5. Choix d’un arbre pour le groupe g
6. Arbre trouvé
MTS1
MTS2
MTS4
MTS3
4. Requête d’agrégation
L’agrégation multicast distribuée
Problèmes de l’algorithme BEAM :
Nombreuses requêtes entre les entités d’agrégation
Temps de latence pour l’agrégation Nombreux messages de contrôle
Problème de robustesse (panne des entités)
L’agrégation multicast distribuée
Proposition de l’algorithme DMTA :
Pré-configuration d’un ensemble d’arbres
Les entités d’agrégation stockent le même ensemble d’arbres
Requêtes d’agrégation supprimées entre les entités
L’agrégation multicast distribuée
bb33
bb44 bb22
b b11
1. Join message pour le groupe g
3. Choix d’un arbre pour le groupe g 2. Requête d’agrégation
MTS
MTS
MTS
MTS
L’agrégation multicast distribuée
Changement de groupes (arrivée ou départ d’un membre)
Choix d’un nouvel arbre sans reconfiguration
Changement d’entrées dans les tables groupes-labels
Panne d’une des entités d’agrégation
Détection de pannes puis entité de remplacement Le MTS est conservé
L’agrégation multicast distribuée
Algorithme DMTA :
Robustesse
Temps de latence diminué
Moins de messages de contrôle
Pré-configuration de l’ensemble d’arbres
Nombre d’arbres dans un domaine
Agrégation multicast
Elimination des arbres redondants
Nombre d’arbres différents << 2n
Dépend de la topologie et de l’algorithme de routage Nombre d’arbres ~ Espace d’adressage multicast
228 pour IPv4 et 2112 pour IPv6
Nombre d’arbres ~ Combinaison de tous les groupes possibles 2n (n = nombre de routeurs)
Nombre d’arbres dans un domaine
Algorithme de routage connu et fixé : CBT, PIM-SM, MST…
Trouver un ensemble d’arbres de cardinalité
minimale couvrant n’importe quel des 2n groupes multicast
Problème d’optimisation NP-Difficile : Minimum Set Cover
MTS ← ∅
Pour i ← 1 à 2n
Générer le ième groupe gi
Construire avec l’algorithme A l’arbre ti couvrant gi Si (ti∉ MTS) alors ajouter ti dans MTS
Si tb >0% :
Considérer les arbres dans l’ordre décroissant de leur coût
Si ∃t tel que t est couvert par ti et c(t)≤c(ti)*(1+tb)) Alors Éliminer t de MTS
Données : Domaine avec n routeurs, algorithme de routage A, seuil tb
Résultat : L’ensemble MTS des arbres couvrant tous les groupes possibles:
Nombre d’arbres dans un domaine
Nombre d’arbres dans un domaine
C A B
D
11 groupes différents, 6 arbres différents Groupes Æ Arbres
1. (AB) Æ AB
2. (AC) Æ AC
3. (AD) Æ ABD
4. (BC) Æ ABC
5. (BD) Æ BD
6. (CD) Æ ABCD
7. (ABC) Æ ABC
8. (ABD) Æ ABD
9. (ACD) Æ ABCD
10. (BCD) Æ ABCD
11. (ABCD) Æ ABCD
Il y a n*(n-1)/2 arbres différents dans une chaîne de n routeurs
Nombre d’arbres dans un domaine
C A B
D
Il y a 2n-n-1 arbres différents dans un graphe complet de n routeurs
11 groupes différents, 11 arbres différents Groupes Æ Arbres
1. (AB) Æ AB
2. (AC) Æ AC
3. (AD) Æ AD
4. (BC) Æ BC
5. (BD) Æ BD
6. (CD) Æ CD
7. (ABC) Æ ABC
8. (ABD) Æ ABD
9. (ACD) Æ ACD
10. (BCD) Æ BCD
11. (ABCD) Æ ABCD
Nombre d’arbres dans un domaine
La topologie influe sur le nombre total d’arbres
Sur un réseau de n routeurs : Chaîne : n*(n-1)/2
Graphe complet : 2n - n -1 Roue : 2n-1 - 1
Arbre : ∀i∈fils(racine), (∏(#arbresracine i (arbrei)+2) +∑#arbres(arbrei) -1)
L’algorithme de routage utilisé influe aussi sur le nombre d’arbres
Nombre d’arbres total dans un domaine
20%
0%
20%
0%
20%
0%
tb
23449 4126
2486 549
230 104
48942 8222
262125
Geant
18 routeurs, 30 liens
4785 958
16369
Nsfnet
14 routeurs,21 liens
370 131
Abilene 2036
11 routeurs, 14 liens
MST CBT
Nombre de groupes possibles
Nombre d’entrées de routage par routeur
Nombre d’entrées de routage par routeur
CBT-Fixe CBT-Premier CBT-Aléa MST
Réseau Abilene
Nombre d’arbres dans un domaine
Pour les petits domaines :
Le nombre d’arbres différents est relativement faible Æ configuration de tous les arbres possible
Nombre d’entrées de routage par routeur faible
Pour les grands domaines : Deux possibilités :
1.Configuration d’un sous-ensemble d’arbres
2.Proposition d’un nouvel algorithme
Plan de la soutenance
I. Le multicast et l’agrégation multicast
II. L’agrégation multicast distribuée dans un petit domaine
III. L’agrégation multicast dans les grands domaines
• Problématique
• Algorithme TALD
• Simulations
IV. Bilan et perspectives
Dans les grands domaines
Quand le réseau contient plus de 40 routeurs de bordure Æ
très peu d’agrégation Dans ce cas-là, même comportement que les
protocoles traditionnels de multicast
Réseau Exodus de 200 routeurs
Pour 10000 groupes dans le domaine :
Nombre de routeurs de bordure
Taux d’agrégation
23% d’agrégation 61% d’agrégation
Dans les grands domaines
Algorithme TALD :
Découper le domaine principal en plusieurs sous- domaines
Algorithme de découpage proposé
Agréger séparément les groupes dans chacun des sous-domaines
Relier les sous-arbres par des tunnels
Dans les grands domaines
bb33
bb44 bb22 bb11
bb77
bb88 b b66 bb55
b b1212
bb1111 bb1010
bb99
Un groupe multicast Æ un ensemble d’arbres et des tunnels
Dans les grands domaines
Une entité supérieure est responsable de l’établissement des tunnels :
1. Pour chaque groupe, choix des représentants par les entités locales
2. Les entités locales envoient ces informations à l’entité supérieure
3. Ajout des entrées nécessaires à la configuration
Pas de connaissance globale de la topologie
Simulations
Réseau Exodus : 201 routeurs et 434 liens
STA : protocole de référence sans division du domaine TALD-2 : 2 sous-domaines
TALD-4 : 4 sous-domaines
Membres des groupes : choisis aléatoirement parmi 101 routeurs multicast
Taille des groupes : entre 2 et 20 membres
TALD-4 0%
TALD-4 20%
TALD-2 0%
TALD-2 20%
STA 0%, 20%
Réduction de 41%
Réduction de 52%
Nombre de groupes concurrents
Nombre d’entrées de routage
TALD-4 0%
TALD-4 20%
Nombre d’entrées de routage
TALD-4 0%
TALD-4 20%
Nombre de routeurs multicast
STA 0%, 20%
TALD-4 0%
TALD-4 20%
TALD-2 0%, 20%
Pourcentage d’agrégation
Pourcentage d’agrégation
TALD-4 0%
TALD-4 20%
30% d’agrégation 22% d’agrégation
Coût moyen des arbres
TALD-4 0%, 20%
STA 0%, 20%
TALD-2 0%, 20%
Nombre de groupes concurrents
Coût des arbres (nombre de liens)
TALD-4 0%, 20%
STA 0%, 20%
Arbres 30% plus gros
L’agrégation dans un grand domaine
Algorithme de découpage du domaine
Nombre de sous-domaines pour avoir un bon taux d’agrégation
Nombre de routeurs par sous-domaine
Connexion des sous-arbres
Choix des représentants pour les tunnels Connexion des sous-arbres par un arbre
Déploiement inter-domaine
Plan de la soutenance
I. Le multicast et l’agrégation multicast
II. L’agrégation multicast distribuée dans un petit domaine
III. L’agrégation multicast un grand domaine
IV. Bilan et perspectives
Bilan
Proposition d’algorithmes pour l’agrégation multicast selon plusieurs contraintes
Comparaison de nos algorithmes avec les algorithmes existants
Développement d’un outil de simulation pour les graphes disponible sur
http://www.irisa.fr/armor/lesmembres/Moulierac/outil.html
Bilan
Découpage du domaine en plusieurs sous domaines
Utilisation de tunnels Les grands domaines
TALD
Construction de tous les arbres possibles
Messages de contrôle enlevés Algorithme distribué
DMTA
Arbres maximisant la bande-passante disponible sur les liens
Contraintes de bande-passante Q-STA
Tri des arbres
Fonction de sélection des candidats rapide
Rapidité de l’agrégation STA
Problématique Idées principales
Perspectives
• Découpage du domaine
• Connexion des arbres (arbres ou tunnels ?)
• Inter-domaine TALD
• Étude dans les plus grands domaines
• Configuration d’un sous-ensemble d’arbres DMTA
• Plusieurs contraintes de QoS : proposition mQMA Q-STA
• Expérimentation de l’algorithme
• Étude du surcoût dû à l’encapsulation STA