Algorithmes de routage

Transcription

Algorithmes de routage
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Algorithmes de routage
J.-F. Lalande
ENSI de Bourges
1
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Table des matières I
1
Introduction
Le principe du routage
Objectifs du routage ?
2
Algorithmes de routage statiques
Arbre couvrant
Plus court chemin
Inondation
K-plus courts chemins
3
Programmation linéaire et routage
Le routage vu comme un flot
Avec un ensemble de chemins
4
Algorithmes de routage dynamiques
Routage à vecteur de distance
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Table des matières II
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
5
Routage dans les réseaux ad-hoc
Réseaux ad-hoc
Algorithmes de routage
3
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Le principe du routage
Objectifs du routage ?
Principe
Le routage :
Partie logicielle de la couche réseau
Assure la ligne de sortie du paquet
Circuits virtuels (décision antérieure)
Paquets suivants utilise la route prédéfinie
Caractéristiques sympathiques :
Exactitude
Simplicité
Robustesse
Stabilité
Equité (vis à vis des usagers)
Optimisation
4
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Le principe du routage
Objectifs du routage ?
Optimisation VS Equité
Maximise trafic ssi Minimise le trafic entre X et X’
5
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Le principe du routage
Objectifs du routage ?
Optimisation
Optimiser, oui, mais quoi ?
Minimiser le délair moyen ?
Maximiser le flux total du réseau ?
Minimiser le nombre de sauts ? (classique, quasi
compromis)
Différents routages
Non adaptatifs (routge statique) : route est calculée, puis
implémentée dans le routeur
Adaptatif : décision du routage pendant l’utilisation du
réseau
Prise en compte de la charge, des voisins
Difficulté de stabilité et de robustesse !
6
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Le principe du routage
Objectifs du routage ?
Robustesse
Prise en compte des modifications du réseau
Algo adaptatifs : routeur décide localement une alternative
Algo non adaptatifs : prévoir des nouvelles routes
Prévoir plusieurs routes pour un même flux
Algo non adaptatifs
Capacité perdue
La robustesse du routage : notion “topologique”.
7
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Arbre couvrant
Plus court chemin
Inondation
K-plus courts chemins
Arbre couvrant
Premier algo naif : arbre couvrant
Plusieurs arbres couvrants
Pas du tout “optimal” en terme de charge
La racine est surchargée
Multicast : excellent !
Rappel de l’algorithme Prim :
à l’étape n, ayant déjà construit un arbre A contenant n
sommets et n-1 arêtes
liste de toutes les arêtes liant un sommet de A à un
sommet de 6 A
choix de l’arête de poids minimal
La complexité de l’algorithme est O((A + S)logS) avec A le
nombre d’arêtes et S le nombre de sommets.
8
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Arbre couvrant
Plus court chemin
Inondation
K-plus courts chemins
Plus court chemin
Deuxième algo très utilisé :
Matrice des communications statiques
Graphe G = (V , E) représentant le réseau
Choisir une métrique sur les arcs (temps, distance, . . .)
Calculs de PCC entre les pairs de communications
Ex : dijkstra
Rappel de l’algo :
Etiquettage initial des nœuds à ∞
Parcourt à partir de la source des voisins : MAJ des
distances
Cas général : nœud v, MAJ des distances
Enregistrer le père du nœud v
9
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Arbre couvrant
Plus court chemin
Inondation
K-plus courts chemins
Algorithme de Dijkstra I
Initialisation(G,sdeb)
1 pour chaque point s de G
2 faire d[s] := infini
3 predecesseur[s] := 0 /∗car on ne connait au depart aucun chemin
entre s et sdeb∗/
4 d[sdeb] := 0 /∗sdeb est le point le plus proche de sdeb!∗/
10
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Arbre couvrant
Plus court chemin
Inondation
K-plus courts chemins
Algorithme de Dijkstra II
La fonction principale de l’algorithme :
Dijkstra(G,Poids,sdeb):
1 Initialisation(G,sdeb)
2 P := ensemble vide
3 Q := ensemble de tous les noeuds
4 tant que Q n’est pas un ensemble vide
5 faire s1 := Trouve_min(Q)
6 P := P union {s1}
7 pour chaque noeud s2 voisin de s1
8 faire maj_distances(s1,s2)
11
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Arbre couvrant
Plus court chemin
Inondation
K-plus courts chemins
Algorithme de Dijkstra III
où Trouve_min(Q) recherche dans l’ensemble des nœuds Q
celui qui a la plus faible valeur d[v]. Ce nœud est effacé de
l’ensemble Q et est alors retourné comme valeur résultat de la
fonction.
La mise à jour des distances entre sdeb et s2 :
maj_distances(s1,s2):
1 si d[s2] > d[s1] + Poids(s1,s2)
2 alors d[s2] := d[s1] + Poids(s1,s2)
3 predecesseur[s2] := s1 /∗on fait passer le chemin par s1∗/
12
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Arbre couvrant
Plus court chemin
Inondation
K-plus courts chemins
Inondation ou Flooding
Algo glouton : par inondation
Diffusion du paquet sur chaque voisin
Limitation du processus : compteur de saut dans l’entête
Utilisation du diamètre du réseau
Longueur du plus court chemin entre s et t
Eviter de retransmettre un paquet déjà transmis
Liste des paquets déjà vus dans les routeurs
Très robuste (applications militaires, sensors network)
Variante : inondation sélective (vers les routeurs “intéressants”).
13
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Arbre couvrant
Plus court chemin
Inondation
K-plus courts chemins
K-plus courts chemins
Caractéristiques principales :
Algorithme qui reprend l’idée de dijkstra
Idée : pour chaque nœud pivot, on calcule un plus court
chemin
Attention : plus courts chemins “non disjoints”
14
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Le routage vu comme un flot
Avec un ensemble de chemins
Multiflot sommet-arc
Programme linéaire (multiflot sommet-arc)
∀e ∈ E,
X
xe,z
≤
c(e)
xe− ,z − xe+ ,z
=
drop(v , z) − add(v , (2)
z)
∀e ∈ E, ∀z ∈ Z , xe,z
X
Min
xe,z
≥
0
(1)
z∈Z
∀v ∈ V , ∀z ∈ Z ,
X
e− ∈δ − (v ), e+ ∈δ + (v )
(3)
(4)
z∈Z , e∈E
Variable : flux sur une arrête et pour une requête donnée
Contraintes : capacité du réseau
Optimisation : charge totale, temps de traversée, . . .
15
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Le routage vu comme un flot
Avec un ensemble de chemins
Multiflot arc-chemin
Programme linéaire (multiflot arc-chemin)
∀z ∈ Z ,
X
xp,z
=
size(z)
(5)
xp,z
≤
c(e)
(6)
∀z ∈ Z , ∀p ∈ Pz , xp,z
X
Min
xp,z
≥
0
(7)
p∈Pz
∀e ∈ E,
X
z∈Z , p∈Pz , e∈p
(8)
z∈Z , p∈Pz , e∈p
Z : requêtes
p chemin de Pz
c(e) : capacité
xp,z : variable de décision
size(z) : taille de requête
16
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Routage à vecteur de distance
Routeur : table de routage
Table : routeur, distance
Connaissance : métrique par rapport à chaque voisin
Algo :
Transmettre sa propre liste à ses voisins
Quand on recoit toutes les listes de ses voisins, choisir la
meilleure route pour sa propre table
Inconvénients/Avantages :
Evolution dynamique des routes
Propagation “lente” de nouvelles valeurs
17
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Exemple sur la ligne
18
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Problème de la valeur infinie
En cas de panne de A : divergence des distances. . .
19
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Solution : problème de l’horizon éclaté
On suppose toujours que A est en panne
C “ment” B en disant que A est à l’infini
Ainsi, B déduit directement qu’il est à une distance infinie
de A
Point crucial : quand on déduit une distance par son voisin, on
doit mentir à celui-ci.
Malheureusement, contre exemple (A en panne) :
20
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Routage par état des liens
Séquence d’opérations :
Découvrir ses voisins et apprendre leur adresse
Mesurer le temps d’acheminement avec ses voisins
Constuire un paquet d’information
Envoyer ce paquet aux autres routeurs
Calculer le pcc avec les autres routeurs
Principale différence avec vecteur de distances :
Diffusion se fait par inondation
Propagation très rapide
21
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Routage par état des liens I
Le paquet diffusé contient :
Routeur source
Numéro de séquence (incrémenté à chaque envoi)
Age ou date : décrémenté par les routeurs avec le temps
distance entre voisins et source
Ce qui permet :
détection des nouvelles infos (numéro de séquence)
détection des infos déjà connues (numéro de séquence)
Problèmes :
Numéro de séquence au max ? (codé sur 32 bits : 137 ans)
Routeur reboote : numéro de séq = 0. . . (utiliser l’age)
22
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Routage par état des liens II
Calcul des routes :
On reconstruit ainsi le graphe correspondant au réseau
Calcul de PCC
Limites :
Pour des milliers de routeurs : panne non negligeable
Erreur de transmission
Déclaration de liens incorrect
Exemples : Open Shortest Path First (OSPF), Intermediate
System-Intermediate Sysem (IS-IS)
23
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Routage hiérarchique
Au bout d’un certain nombre de routeurs. . .
Tables de routage explosent
Temps CPU trop important
On réduit donc la visibilité des routeurs :
Chaque routeur ne “voient” qu’une région
Chaque région ne voient qu’une “sur-région”
Etc. . . récursivement
24
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Routage à vecteur de distance
Routage par horizon éclaté
Routage par état des liens
Routage hiérarchique
Multicast : Quelques algorithmes
Multicast
But : atteindre plusieurs destinataires
Inondation : gourmand. . .
Diffusion : chaque routeur envoie aux destinataires en
dupliquant
Arbre couvrant : 1 arbre par multicast donné
Arbre couvrant élagué
...
25
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Réseaux ad-hoc
Algorithmes de routage
Réseaux ad-hoc ?
Caractéristiques générales :
Pas d’infrastructure fixe
Pas de point d’accès (GSM : pas un réseau ad-hoc)
Collision du medium
Non fiabilité de l’infrastructure dynamique
Routage :
Algorithme distribué
Forcément dynamique (pas de routage “statique” possible)
Modèle : graphe dynamique (position des noeuds dépend
du temps)
Bande passante, énergie, sécurité : limitées
26
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Réseaux ad-hoc
Algorithmes de routage
Algorithmes de routage
DDSV : Dynamic Destination-Sequenced Distance-Vector
Adaptation de l’algo de Vecteur de Distance
Transmission fréquente des tables de routage
Total ou incrémental, et surtout : lent
GSR : Routage à état des liens. . .
Basé sur l’état des liens
Vue “globale” transmise seulemnt aux voisins
FSR : Routage à Etat de l’Oeil
Basé sur l’état des liens
Fréquene d’inondation différente au “centre” de l’oeil
27
Introduction
Algorithmes de routage statiques
Programmation linéaire et routage
Algorithmes de routage dynamiques
Routage dans les réseaux ad-hoc
Réseaux ad-hoc
Algorithmes de routage
Bibliographie
Tayeb Lemlouma.
Le routage dans les réseaux mobiles ad hoc, septembre
2002.
Andrew Tanenbaum.
Réseaux.
Dunod.
3ème édition.
28