Routage M1/M2 ISV M2 IPS Neilze Dorta UFR Mathématiques et Informatiques - Crip5 Routage Trouver un chemin entre une source et une destination Protocoles de routage Tables de routages Routeurs (et commutateurs) Protocoles de routage Router les paquets À l'établissement d'un circuit virtuel Pour chaque paquet dans un réseau datagramme Réseau maillé : multitudes de chemins Meilleur chemin Le moins coûteux (opérateur ou client) Le plus rapide Le plus sûr Tables de routage Au moins 2 colonnes L'adresse destination L'adresse correspondant au «saut» Prochain noeud Catégories de routage Routage non adaptatif Choix du chemin fixé à l'avance Routage adaptatif Le chemin varie selon l'état du réseau Panne de liaisons ou de commutateurs Trafic écoulé par le réseau Algorithmes de routage Algorithme de routage centralisé Un organe dédié à cette fonction Interrogé par les commutateurs à chaque routage Algorithme de routage isolé Si adaptatif => connaître en permanence l'état du réseau Chaque commutateur détermine le chemin en fonction de son état Algorithme de routage distribué Chaque noeud diffuse à ses voisins des indications sur son état 6 Routage par inondation Un paquet reçu par un commutateur est réémis sur toutes les liaisons hormis celle où ce paquet a été reçu Type isolé Simplicité et fiabilité (réseaux militaires) Multiplication du nombre de paquets (infinie?) Détruire les paquets pour éviter une congestion Compteur dans l'en-tête de chaque paquet Décrémenté par les commutateurs à chaque réémission Algorithmes a vecteur de distance Chaque noeud est supposé connaître la « distance » (le coût) qui le sépare de chacun de ses voisins (une liaison hors service a un coût infini). Périodiquement, chaque noeud envoie à chacun de ses voisins la liste des distances estimées vers chaque noeud du réseau : vecteur de distance. Il reçoit en retour une liste similaire de chacun de ses voisins. Chaque noeud peut déterminer l'estimation qui lui semble la meilleure pour atteindre chaque destination, et inscrire cette estimation ainsi que la liaison correspondante dans sa table de routage. Algorithme de Dijkstra DIJKSTRA (G, s) pour chaque sommet v S[G] faire (* initialisation des attributs *) d[v] = pred[v] = NIL d[s] = 0 E= R= S tant que R ? faire u = sommet avec l'estimation de pondération minim um de R E = E {u} pour chaque sommet v adjacent[u] faire (* relâcher les arcs *) si d[v] > d[u] + (u,v) alors d[v] = d[u] + (u,v) pred[v] = u R = R {u} Exercice 3.2.1 A 5 E 2 10 B 4 C 2 2 3 1 3 D 1 F Exercice 3.2.1 (inf, —) (5, A) A 5 E 2 10 B (1 0, A) 4 C 2 2 3 1 3 D (inf, —) 1 F (inf, —) Exercice 3.2.1 (5, A) A 5 E 2 10 B (7, E) (9, E) 4 C 2 2 3 1 3 D (inf, —) 1 F (inf, —) Exercice 3.2.1 (5, A) A 5 E 2 10 B (7, E) (9, E) 4 C 2 2 3 1 3 D (1 0, B) 1 F (inf, —) Exercice 3.2.1 (5, A) A 5 E 2 10 B (7, E) (9, E) 4 C 2 2 3 1 3 D (10, B) 1 F (1 0, C) Exercice 3.2.1 destination B C D E F prochain nœud E E E E E coût 7 9 10 5 10 chemin AEB AEC AEBD AE AECF