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