Vous êtes sur la page 1sur 26

Notes de cours (ENS Lyon, M1) Chapitre 1: Routage dans les rseaux e

Contents
1 Routage dans les rseaux e 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.2 Mtriques pour dterminer la performance dun routage . e e 1.1.3 Type de routage . . . . . . . . . . . . . . . . . . . . . . . 1.2 Notion de routage optimal . . . . . . . . . . . . . . . . . . . . . . 1.2.1 Algos centraliss . . . . . . . . . . . . . . . . . . . . . . . e 1.2.2 Routage par inondation (ooding) . . . . . . . . . . . . . 1.2.3 Calcul du plus court chemin . . . . . . . . . . . . . . . . . 1.2.4 Routage dynamique fond sur le calcul de la distance mine imum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2.5 Routage par tat de liaison (Link state routing) . . . . . . e 1.2.6 Routage optimal . . . . . . . . . . . . . . . . . . . . . . . 1.2.7 Faible cot de stockage . . . . . . . . . . . . . . . . . . . u 1.2.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Routage dans les arbres . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Routage par intervalles . . . . . . . . . . . . . . . . . . . 1.3.2 Un schma plus compact . . . . . . . . . . . . . . . . . . e 1.4 Routage dans des graphes quelconques . . . . . . . . . . . . . . . 1.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.2 Construction de A . . . . . . . . . . . . . . . . . . . . . . 1.4.3 Routage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.5 Congestion dans les rseaux . . . . . . . . . . . . . . . . . . . . . e 1.5.1 Dnition de la congestion . . . . . . . . . . . . . . . . . . e 1.5.2 Algorithmes de contrle de congestion . . . . . . . . . . . o 1.5.3 Max-Min Fairness . . . . . . . . . . . . . . . . . . . . . . 1.5.4 Algorithme de ot maximum . . . . . . . . . . . . . . . . 1 1 1 2 3 6 6 6 6 8 9 10 10 11 14 14 15 18 18 19 20 21 21 22 23 24

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Introduction gnrale e e
Objectifs du cours et prsentation du plan gnral et de lorganisation. e e e Cours dalgorithmique: algorithmes mis en oeuvre dans les rseau, noe tions assez thoriques. Notamment, un chapitre sur le routage dans les rseaux: e e tudier quelques algorithmes de routage classiques, leur caractristiques et ine e troduction de la notion de routage optimal. Aspect rseaux et tlcoms: plutt ax plateformes nouvelle technologie, les e ee o e rseaux pair ` pair, puis les rseaux ad-hoc et sans l. Algorithmes que lon e a e utilise pour le routage sur de telles plateformes, algorithmes de broadcast et multicast pour les rseaux sans l. e Derni`re partie sur Internet et le Web, o` lon sintressera aux probl`mes e u e e algorithmiques qui se posent dans ce contexte. Biblio La premi`re partie du cours est tr`s proche des problmatiques des rseaux, et e e e e on peut trouver de la lecture sur ce sujet dans les livres de rseaux classiques e (pour le routage dans les rseaux), que vous pouvez trouver ` la biblioth`que e a e de lENS. Andrew Tanenbaum. Rseaux. e Mischa Schwartz. Telecommunication Networks Protocols, Modeling and Analysis. G. Pujolle, D. Seret, D. Dromard, E. Horlait. Rseaux et Tlmatique. e ee D. Cali, G. Zany. Technologie de linterconnexion de rseaux. e Les algorithmes pour les plateformes nouvelle technologie sont vraiment des travaux dactualit, beaucoup de recherche en cours sur le domaine, confrences e e spcialises. Lectures et informations en recherchant sur internet des articles e e rcents sur le domaine. e Quelques livres sur les premiers protocoles de pair ` pair: a Andy Oram. Peer-to-Peer: Harnessing the power of disruptive technologies. OReilly, 2001. F. Berman, G.C. Fox, A.J.G. Hey. Grid computing: Making the Global Infrastructure a Reality. Wiley, 2003.

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

1
1.1
1.1.1

Routage dans les rseaux e


Introduction
Motivation

Principe Trouver sa route dans un rseau dentits interconnectes. e e e Pourquoi? On dispose souvent de rseaux locaux de types dirents (dans une universit, e e e une entreprise, ...), mis en place dans divers dpartements de faon indpendane c e te. Et les usagers des dirents rseaux ont besoin dchanger des donnes. e e e e Avantage ` garder des sous-rseaux physiquement disjoints mais communicants: a e limites du rseau local repousses e e changes lents si le rseau est trop tendu e e e le risque de collisions sur le rseau augmente avec le nombre de stations e relies e perturbations au sein dun sous-rseau limites au sous-rseau e e e probl`mes de scurit et condentialit adapt ` chaque sous-rseau e e e e ea e Comment? Routage: technique base sur des adresses de niveau rseau, qui permettent e e daiguiller une trame quelconque mise par un noeud dun sous-rseau vers un e e noeud de destination pouvant tre situ sur un autre sous-rseau. e e e Notion de Routeur = lment matriel (et logiciel) permettant deectuer la ee e tche de routage. a Exemple de graphe et exemple de routage: comment aller dun noeud N1 ` a un noeud Nk ? (dessiner un graphe). a e N1 demande comment aller ` Nk et on lui rpond N2 N2 demande comment aller ` Nk et on lui rpond N3 a e et ainsi de suite jusqu` trouver Nk . a De quoi a-t-on besoin localement pour prendre une dcision de routage? e (calculer la route). Doit on conna tout le rseau pour pouvoir router? tre e Probl`me complexe car distribu ` la fois dans le temps et dans lespace. e e a Calcul distribu de la route: on ne conna pas ` priori la route pour aller en Nk e t a et ce nest pas un probl`me. Plusieurs entits permettent de calculer la route. e e N1 ne conna pas ncessairement toute la route, mais au moins le dbut. t e e Comment prendre la dcision? Dpend des infos locales uniquement: e e ma propre identit e entte du message e port dentre du message (chaque entit a plusieurs ports) e e informations locales

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Dynamicit e Importance des probl`mes de reconguration des rseaux en cas de panne ou de e e congestion, fortement li aux algorithmes de routage. Algorithmes de routage e statiques ou dynamiques (adaptatifs). Algorithmes adaptatifs diciles ` contrler. a o Le rseau doit ragir promptement ` la moindre dfaillance. e e a e Routage centralis souvent ` exclure (long temps de rponse). e a e Adaptation dans lespace et dans le temps: chaque noeud doit avoir une connaissance aussi compl`te que possible de ltat global du rseau, mais e e e il faut limiter au maximum lchange dinformations. e 1.1.2 Mtriques pour dterminer la performance dun routage e e

But du routage: acheminer un paquet de lmetteur jusquau rcepteur, en e e utilisant si possible la meilleure route. Direntes mtriques ` considrer: nombre de sauts, capacit des liens, e e a e e trac, ... Une stratgie de routage doit alors tre un compromis entre facilit dadmine e e istration, robustesse, faisabilit... Comment valuer la complexit et la perfore e e mance du routage? Mesure des performances: crit`res de dlai, dbit, cot. e e e u Possibilit de mesures dynamiques: elles ont lavantage de tenir compte de e la charge du rseau. Cependant, cela risque de migrer continuellement la charge e entre deux lignes, sans jamais utiliser les deux (on utilise une des lignes, et quand elle devient charge, on utilise lautre car elle donne un meilleur routage...) (on e y reviendra en prsentant lalgo de routage par tat de liaison). e e On dsire que le routage ait les proprits suivantes: e ee Exactitude Simplicit e Robustesse - tolrance vis ` vis des dfaillances de tous types qui peuvent e a e survenir pendant la dure de vie du rseau: dfaillances matriel et logie e e e ciel, changement de topologie... Lalgorithme de routage doit prendre en compte les modications de topologie/trac sans devoir arrter tous les e ordinateurs et rinitialiser le rseau. On retrouve la notion de dynamicit e e e cite plus haut. e Stabilit - Lalgorithme de routage doit converger vers un quilibre. e e Justice (vis ` vis des usagers) - satisfaire tous les usagers... a Optimisation - contradictoire avec la justice par moment, il faut dcider ce e que lon veut optimiser et trouver un compromis entre justice (pour chaque connexion individuelle) et optimisation (ecacit globale de ce routage). e Solution de compromis, entre minimiser le dlai moyen de traverse des e e paquets (justice) et maximiser le ux total du rseau (optimisation), consiste ` e a minimiser le nombre de sauts (noeuds traverss) quun paquet doit faire, ce qui e amliore les dlais et rduit la capacit de transport consomme (et donc tend e e e e e a ` amliorer le dbit). Do` la notion de facteur dtirement. e e u e 2

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Facteur dtirement e Reprsentation du graphe du rseau: G = (V, E). e e Graphe connexe A priori, non orient e Statique pour commencer (topologie xe) e Poids des artes = temps pour transfrer un message de taille lmentaire. e e ee w : E Q+ On dnit ensuite une fonction de cot d qui dnit une mtrique, permete u e e tant dvaluer la qualit dun algo de routage. Par exemple, e e d(x, y) = min
chemin

w(e)
echemin

Cest une mtrique: d(x, z) d(x, y) + d(y, z). Chemin possible de x ` z en e a passant par y, de cot d(x, y) + d(y, z). u
chemin calcul par l'algorithme de routage

d(x,z)

Le chemin calcul par lalgorithme de routage a un cot (x, z). e u Comment dnir le facteur dtirement? e e s(x, z) = (x, z) d(x, z)

En gros, on cherche ` comparer la longueur du chemin calcul par notre a e algorithme de routage ` la distance entre les deux noeuds. a Cest un facteur de performance: trouver un algorithme de routage avec s = 1? Cest possible en calculant le chemin de poids minimal pour chaque couple de sommet. Par la suite on prsente plusieurs algos classiques, ` la recherche dun routage e a optimal. Mais avant, une petite rexion sur le type de routage... e 1.1.3 Type de routage

On peut distinguer deux grandes catgories de routage direntes, suivant que e e lon dsire tablir une connexion de type tlphonique, ou bien si notre rseau e e ee e fonctionne plutt comme la poste. Je prsente bri`vement les 2 approches et je o e e les compare. Etablir un circuit virtuel Orientation service avec connexion, pour viter davoir ` prendre une dcision e a e de routage pour chaque paquet. Lorsquune connexion est tablie, on choisit e

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

la route entre la source et la destination, puis on la mmorise. Cette route est e ensuite utilise pour tout le trac qui arrive. Cest lquivalent du tlphone, e e ee lorsque lon raccroche la connexion est rompue et la route coupe. Une route e est appele un circuit virtuel. e Chaque routeur doit tenir ` jour une table avec les informations sur comment a router pour chaque circuit virtuel, et les paquets doivent contenir le numro du e circuit virtuel. Quelques issues dans la numrotation... Pour les dtails cf e e Tannenbaum. Sous-rseau datagramme e Par opposition aux circuits virtuels, aucune route nest tablie ` lavance, et e a chaque paquet est rout de mani`re indpendante de son prdcesseur. Des e e e e e paquets successifs peuvent suivre une route dirente. Cest un peu lquivalent e e du syst`me postal. e Plus de travail dans lalgorithme (prise de dcision pour chaque paquet), e mais algorithmes plus robustes qui sadaptent mieux aux dfaillances et aux e congestions. Un paquet datagramme doit contenir ladresse compl`te de la destination e (alors que le paquet de circuit virtuel ne contient que le numro de circuit). e Comparaison des deux approches Chaque technique a des avantages/inconvnients, dpend du rseau et du type e e e de trac... CV: circuit virtuel et DG: datagramme. Etablissement dune connexion: ncessaire uniquement dans le cas du CV e Adressage: chaque paquet contient les adresses compl`tes de la source et e de la destination pour DG; numro de circuit pour CV. e Informations de routage: aucune information du routage des paquets pour DG; pour CV, chaque circuit requiert de la place dans les tables de routage. Routage: route initialise pour CV puis chaque paquet suit cette route; e route indpendante pour chaque paquet DG. e Dfaillance dun routeur: aucune consquence pour DG; tous les circuits e e virtuels traversant lquipement dfaillant sont dtruits. e e e Contrle de congestion: dicile et complexe pour DG; pour CV cest facile o si lon dispose de susamment de mmoire ` ltablissement du CV. e a e Conclusion et intro de la suite Objectif de la couche rseau: router les paquets de la machine source ` la e a machine destinataire. Sous-rseau: les paquets accomplissent de nombreux sauts e pour atteindre la destination. Rseau sans l: besoin galement de routage si e e la source et le destinataire ne sont pas dans le mme rseau. e e Algorithme de routage: dcide sur quelle ligne de sortie un paquet entrant e doit tre retransmis. Sous-rseau datagramme: cette dcision est prise pour e e e chaque paquet entrant. Circuits virtuels: dcision de routage prise une seule e

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

fois, lors de ltablissement du circuit, puis les paquets suivant ne font que e prendre la route tablie (routage de session). e Prochaine section: on prsente dirents algorithmes de routages et on anale e yse les direntes techniques et leur complexit. On essaie de dnir ce qui e e e correspondrait ` un routage optimal ` travers ces algorithmes. a a

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

1.2
1.2.1

Notion de routage optimal


Algos centraliss e

Il existe des algos de routage centraliss: le chemin est calcul par un routeur e e central. Ce type dalgos prsente lavantage dtre simple, mais il est peu able e e et vulnrable. En cas de dfaillance, le routeur central recalcule les tables de e e routage et renvoie la nouvelle information ` chaque noeud. Il est galement a e possible de mettre ` jour ` certains instants prcis les tables de routage, suivant a a e ltat des noeuds (et les noeuds envoient rguli`rement un compte-rendu de leur e e e tat). Enn, une troisi`me variante consiste ` procder aux adaptations de faon e e a e c asynchrone: un noeud envoie un recticatif sur son tat quand il a beaucoup e chang, et le routeur central envoie des nouvelles tables de routage quand la e dirence est signicative. e Les performances de ces mthodes dpendent de la topologie du rseau et e e e du trac. Il faut que ladaptation puisse se faire en temps rel. De plus, proe poser un algorithme plus sophistiqu comme la 3`me variante peut entra e e ner une surcharge du rseau par des paquets de contrle, ce qui peut empcher le fonce o e tionnement en temps rel. Pourtant, la 3`me variante semble tre la meilleure. e e e Les performances relatives de ces algorithmes vont vraiment dpendre. e Nous nous intressons maintenant aux techniques distribues. Dans ce cas, e e le chemin est labor par chaque routeur. Plusieurs stratgies existent: e e e 1.2.2 Routage par inondation (ooding)

Cet algorithme de routage consiste ` renvoyer tout paquet reu ` tous ses voisins, a c a mais ` viter denvoyer deux fois le mme paquet. Ceci est gnralement contrl ae e e e oe grce ` un compteur de sauts plac dans lentte du paquet. Compteur initialis a a e e e avec la longueur du chemin sparant la source du destinataire. Si cette longueur e est inconnu, plus grand diam`tre du rseau. e e Inondation slective: les paquets sont envoys sur toutes les lignes qui sont e e approximativement dans la bonne direction (expdier ` gauche ce qui vient de e a la droite...) sauf si la topologie est tr`s particuli`re. e e Algorithme simple, sil existe un chemin alors le paquet arrive ` destination, a et le paquet est livr le plus vite possible. Seulement, cela augmente la charge e du rseau de faon considrable. A noter que cet algorithme nest pas adaptatif, e c e cest un algorithme statique. Algorithme rarement utilis, mais peut savrer e e intressant dans certains cas pour sa grande robustesse. Etirement s = 1 vu e que lon emprunte le plus court chemin parmi tous les chemins essays. e 1.2.3 Calcul du plus court chemin

Un autre algorithme statique permettant dobtenir un tirement de 1 consiste ` e a calculer les plus court chemins d(x, y) pour chaque couple de noeuds du graphe. Un tel algorithme de routage se ram`ne donc ` un probl`me de calcul de plus e a e court chemin.

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Direntes mtriques envisageables pour les poids des arcs: nombre de sauts, e e distance gomtrique, temps moyen dattente et de transmission, ... En gnral, e e e e poids = fonction pondre de dirents facteurs, et on peut modier la fonction ee e de poids pour adapter lalgorithme ` divers facteurs doptimisation. a Utilisation par exemple de Dijkstra - rappel du cours dalgo L3. Tous les poids sont positifs. Au dbut, aucun chemin connu, noeuds tiquets avec la e e e valeur . Etiquettes modies au fur et ` mesure que lalgorithme progresse, e a indiquant le meilleur chemin. A chaque tape, le sommet avec la plus petite e tiquette est dcrt tiquet de faon permanente et il ne sera plus modi. e e ee e e c e Nous repartons de ce noeud pour modier ses voisins de faon temporaire, et c examinons ses voisins. Exemple sur ce graphe:
2 7 1 3 2 3 4 1 5 5 1 4

Etapes de lalgorithme: tape / i e 0 1 2 3 4 d(1,i) 1 (0,-) . . . . 0 2 (,-) (7,1) (5,3) (4,5) . 4 3 (,-) (2,1) . . . 2 4 (,-) (,-) (6,3) (6,3) (6,3) 6 5 (,-) (,-) (3,3) . . 3

Complexit en O(n2 ) pour un sommet, donc O(n3 ) en tout, sous rserve que e e tous les poids soient positifs ou nuls. Remarque: pour faire le routage, on consid`re le probl`me ` lenvers car on e e a a besoin de conna le successeur plutt que le prdcesseur sur un plus court tre o e e chemin. On inverse donc la source et la destination, et vu que le graphe nest pas orient, on obtient bien le rsultat voulu. e e Remarque 2: il nous sut, pour faire le routage au noeud i vers j, de conna un voisin de i sur un plus court chemin de i ` j. tre a Autre ide: Floyd-Warshall. e Pour chaque couple de noeuds (u, v), ` chaque tape k, a e d(k) (u, v) = min d(k1) (u, k) + d(k1) (k, v), d(k1) (u, v) Programmation dynamique, convergence en N 2 itrations maximum. On dit e ici quun plus court chemin de u ` v qui nutilise que des sommets intermdiaires a e k est 7

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

soit un chemin qui nutilise que des sommets intermdiaires < k dj` e ea calculs e soit un chemin de u ` k qui nutilise que des sommets < k et un chemin a de k ` v qui nutilise que des sommets < k. a Le cot est ici aussi en O(n3 ), et il nest pas tr`s dicile dadapter lalgo u e pour quil calcule le successeur pour aller en v depuis u. 1.2.4 Routage dynamique fond sur le calcul de la distance minimum e

Routage ` vecteur de distance: chaque routeur dispose dune table de routage a prcisant pour chaque destination la meilleure distance connue et par quelle e ligne latteindre (cest le vecteur de distance). Tables de routage mises ` jour a par concertation mutuelle entre routeurs voisins qui schangent rguli`rement e e e des listes de vecteurs. Algo de Bellman-Ford, apprentissage avec des routes en utilisant de linformation agrge et des changes locaux, et absence dtat global. La mtrique de e e e e e distance correspond au nombre de routeurs intermdiaires ou autre (cf discussion e prcdente). e e On suppose dans tous les cas quun routeur conna la distance qui le spare t e de tous ses voisins. Par exemple pour une mtrique de temps dacheminement, e il envoie un paquet test pour mesurer ce temps. Lemme des plus courts chemins qui dit que si u w v est un plus court chemin, alors w v est aussi un plus court chemin. Utilisation ensuite de Bellman-Ford: d(u, v) = minw c(u, w) + d(w, v) o` u les w sont les successeurs de u. Programmation dynamique, convergence en N 1 itrations maximum. e La version distribue est la suivante: le noeud w envoie sa valeur de d(w, v) e a ` ses voisins, et le noeud u calcule la meilleure estimation de d(u, v). Exemple: Une fois toutes les T ms, chaque routeur transmet ` ses voisins a la liste des longueurs estimes vers chaque destination. De mme, il reoit de e e c ses voisins leur propre liste des longueurs estimes (d(w, v)). Et il conna la e t distance au voisin (c(u, w)). Il peut donc, en faisant le min, conna la longueur tre minimale estime pour aller ` une destination donne. Il peut alors utiliser cette e a e estimation pour mettre ventuellement ` jour sa table de routage. e a Faire tourner un exemple: graphe et valeurs de mise ` jour des tables de a routage? Un noeud, ses voisins et les tables de routage de ses voisins, on fait le min ... Probl`mes de cet algo: propagation des mauvaises nouvelles. La convergence e se fait de faon beaucoup trop lente, surtout en cas de mauvaises nouvelles. c Exemple dun rseau linaire, distance=1 pour chaque noeud. e e ABCDE Si A est initialement en panne puis est rpar, en 4 tapes les autres noeuds e e e connaissent le meilleur chemin pour aller ` A. B va apprendre d`s que A change a e e ses vecteurs de distance, que A est ` sa gauche ` une distance 1. La propagation a a des bonnes nouvelles est rapide. 8

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Par contre, en cas de panne de A, cela va prendre du temps avant que tous ralisent que A est en panne. En eet, B saura quil ne peut pas envoyer de e paquet directement ` A, mais il croira par C que C conna un chemin pour A a t (sans raliser que ce chemin passe par B). On peut faire un tableau rcapitulant e e les distances apr`s chaque change, la mauvaise nouvelle met du temps ` se e e a propager. Ceci est appel le probl`me de la valeur innie. e e Il existe une solution, dite par horizon clat ou coup. Dans le vecteur de e e e distance, la distance vers X nest pas reporte sur la ligne darrive des paquets e e a ` faire suivre vers X (valeur innie). Ainsi, C va mentir ` B en dclarant que sa a e distance ` A est innie (car son chemin vers A passer par B). De faon similaire, a c D dit la vrit ` E mais ment ` C. Avec cette solution, la mauvaise nouvelle se e ea a propage vite. Cette solution a cependant des failles et ne marche pas pour certaines topologies.
A C B D

Ici, quand CD tombe en panne, A et B disent ` C quils ne peuvent pas a atteindre D. C en conclut que D est inaccessible. Par contre, A apprend que B est ` distance 2 de D, il en conclut quil est ` distance 3 en passant par B, a a et vice versa. Ainsi, la distance de A et B vers D va aller progressivement vers linni. Il ny a aucune solution qui fonctionne vraiment bien car lorsque X indique a ` Y quil dispose dune route, Y na aucun moyen de savoir sil se trouve ou non sur cette route. 1.2.5 Routage par tat de liaison (Link state routing) e

Cet algo remplace le prcdent, de convergence trop lente. Utilis avec diverses e e e variantes. Tout routeur doit: Dcouvrir ses voisins: envoie dun paquet par chaque routeur ` ses voisins e a au dmarrage, et les voisins rpondent avec leur identiant/adresse rseau. e e e Mesurer le temps dacheminement (la distance) vers chaque voisin. Construire un paquet dinformation disant ce quil vient dapprendre (voisins et distance) Le paquet dinformation est envoy ` tous les autres routeurs ea Chaque routeur calcule le plus court chemin vers tous les autres routeurs, avec laide de Dijkstra (marque le noeud racine comme dnitif, met ` e a jour les voisins, trouve le noeud non dnitif adjacent ` un noeud dnitif e a e qui a le plus court chemin avec la racine; le marque comme dnitif, le e met ` jour et met ` jour ses voisins). a a

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Mesure du temps dacheminement: faut il prendre en compte la charge de la ligne, ou bien se baser uniquement sur le dbit? Probl`me possible: e e deux sous-rseaux relis par deux lignes, et la charge va passer dune ligne ` e e a lautre (lorsquune ligne commence ` tre charge, lalgorithme dit de passer a e e par lautre...). Construction des paquets: dcider quand les laborer. Construction ` intere e a valle rgulier ou bien lors dune coupure de ligne ou dfaillance dun routeur. e e Diusion de linfo: date et frquence de diusion des paquets dinfo locale. e Diusion par inondation: utilisation de numro de squences pour viter de e e e diuser 2 fois le mme paquet. Information avec Timeout pour lliminer si elle e e nest pas remise ` jour (en cas de plantage dun routeur). a Place mmoire ncessaire: proportionnelle ` kn, n tant le nombre de roue e a e teurs et k le nombre de voisins du routeur. Temps de calcul des routes: n2 . Algorithme de routage tr`s utilis dans les rseaux modernes, dans divers e e e protocoles (OSPF - Open Shortest Path First; version modie dans IP). e 1.2.6 Routage optimal

On sait donc faire un routage avec s = 1: routage optimal? Probl`mes: e Le temps de calcul est un peu coteux au dpart, et le probl`me est u e e assez centralis avec certaines techniques (lorsquun noeud doit conna e tre la topologie enti`re du rseau). e e la taille des informations ` stocker est importante a Taille globale? En chaque noeud, pour chaque destination, il faut conna tre le noeud successeur. Tableau ` n lignes. Cot du stockage du nom: si on a a u n noeuds, au moins n noms dirents, donc un stockage en au moins log(n) e bits par noms, ou mme log(k), k tant le nombre de voisins, comme on lavait e e voqu dans la section prcdente. k est le degr du noeud, et on applique une e e e e e numrotation locale des voisins. La taille totale est donc en n2 log(n). e Notation. O(nk ) = O(nk log(n)): on ne retient que les termes en puissance. On sait donc faire un stockage global en O(n2 ) avec s = 1. 1.2.7 Faible co t de stockage u

Exemple de routage sur une grille avec numros: on arrive ` un tirement de 1 e a e et un faible cot de stockage. u
(0,0) (0,1)

(1,0)

(k,k)

10

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

On utilise lalgo suivant (au noeud (i, j), pour router le paquet (x, y)): si x > i, aller en (i + 1, j) sinon, si x < i, aller en (i 1, j) sinon, si y > j, aller en (i, j + 1) Route(i,j) (x, y) = sinon, si y < j, aller en (i, j 1) sinon, trouv e Linformation ` stocker au sommet (i, j) est uniquement son numro, en a e O(log(n)). Le routage se fait en O(1): dcision en au plus 4 tests. Etirement e sur une grille parfaite: s = 1. Cependant, probl`me pour grille incompl`te ou bien avec sauts: e e

Algorithmes adapts ` des rseaux sociaux, comme on verra plus tard dans e a e le cours, rseaux petit monde, Kleinberg. Grille multidimensionnelle, avec relae tions logiques (voisin, boulot, activits extra professionnelles...). Routage avec e distance= distance dans la grille. Situation comme celle de la gure prcdente e e avec sauts. On transmet au voisin le plus proche de lobjectif dans la grille (on prend les grands sauts pour se rapprocher au plus vite). Routage de longueur polylogarithmique, on gagne beaucoup. Cas dune grille avec noms quelconques: dnir les coordonnes pour chaque e e destination possible: i (xi , yi ). xi cod en log X e e yi cod en log Y Si X = Y (grille carre), X = Y = n, cot en log(n). e u en chaque noeud, n log(n) (coordonnes de chaque destination). e en tout, cot de stockage en O(n2 ), donc on na pas gagn grand chose u e (sauf que cest la mme table ` chaque noeud, donc on pourrait utiliser e a un syst`me de partage...) e 1.2.8 Conclusion

Plusieurs facteurs concurrents pour calculer le routage: Facteur dtirement e Taille des tables locales Taille des enttes des paquets e Temps de calcul du routage Si lon accepte un facteur dtirement grand et/ou de gros enttes, on peut e e avoir des tables locales plus petites (envoyer tout ` un noeud donn, le noeud a e renvoie tout en mettant la route dans lentte). Si chaque noeud sait router vers e

11

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

0 et seul 0 sait comment router vers les autres, on a un stockage compact. Mais le facteur dtirement est arbitrairement mauvais. e Autre solution: stocker le graphe G = (V, E) - cot en O(|V |+|E|), et graphe u creux (peu dartes car en gnral beaucoup de noeuds ont un petit degr). On e e e e calcule ensuite le meilleur chemin ` chaque fois, et on le tra dans lentte. a ne e Il faut donc faire des compromis entre les direntes quantits mises en jeu. e e En gnral, les schmas ecaces sont bass sur deux grandes ides: e e e e e On ne veut pas savoir router vers tout le monde (sinon n2 ), on choisit donc des noeuds particuliers vers lesquels on sait router. A partir de ces noeuds l`, on sait router ecacement. a Bornes connues (non dmontr ici) e e Si s < 3 alors il faut stocker au moins O(n) bits par sommet (au moins O(n2 ) en tout). (O(nk ) = O(nk log(n))). Inversement, si stocke moins que O( n) par sommet (O(n n) en tout), alors on ne pourra pas faire mieux que s 5. En gnral on consid`re que s 5 correspond ` un algorithme pas assez e e e a ecace, et O(n2 ) correspond ` de trop gros besoins de stockage. a On cherche typiquement des algos avec s = 3 et un stockage en O( n) par sommet (ce qui est mieux que de dire O(n n) en tout pour viter que certains e noeuds aient des tables grandes). Ceci est un compromis optimal vu les contraintes. Il est admissible dans la pratique, et on peut eectivement latteindre. Thorup et Zwick Lalgorithme de Thorup et Zwick marche pour tout graphe, et cest un algorithme optimal dans le sens des bornes prcdentes: e e Information en O( n) bits par sommets, mme si le degr du sommet est e e plus grand que n; Etirement s 3; Enttes et adresses en O(log n) bits. e Avant dtudier cet algorithme (et pour pouvoir ltudier), on sintresse au e e e routage dans les arbres. Algorithme dans le papier de Thorup et Zwick, lien sur ma page web? Un point sur ce quon sautorise On suppose que si une machine veut communiquer avec une autre, elle poss`de e des informations sur cette machine, et donc elle est capable de construire un entte pour la contacter. Attention, les noeuds avec lesquels une machine come munique est dirent de lensemble des noeuds du rseau, on conna les infos e e t sur les machines avec lesquelles on communique car on les a rcuprs. e ee On dsire minimiser: e

12

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

La taille de lentte pour ne pas gnrer un cot de transport trop impore e e u tant (O(log n)) (et on a vu quil faut au minimum log n). Les infos stockes dans les routeurs pour pouvoir transformer le message. e En eet, cest l` que les ressources matrielles sont critiques. a e Le temps ncessaire pour traiter un paquet qui arrive. e Attention aussi au fait que lorsquon compte la mmoire, on compte les bits e utiliss, mais toutes les oprations sur un mot machine se font en temps constant e e O(1) (addition, lecture, multiplication de mots mmoire). e

13

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

1.3

Routage dans les arbres

On se limite dans un premier temps aux algorithmes de routage dans les arbres, pour introduire lalgo de Thorup et Zwick. 1.3.1 Routage par intervalles

Pas de routage indpendant des noms: on sautorise ` changer les noms des e a noeuds. Arbre: on numrote les noeuds selon un parcours en profondeur ` partir e a dune racine choisie au hasard. Les messages sont destins ` un noeud de numro e a e entre (1 et n) correspondant au noeud dans lordre de profondeur du graphe (cest l` quon perd lindpendance des noms). a e
1

10

11

v1

5 v2

6 7

v3

12 14

13 15

fu

Probl`mes: e Comment router dans cet arbre? Quelles proprits utiliser? ee Quelles informations stocker au noeud u? On stocke au noeud u les numros de ses ls (v1 , ..., vk ) et le numro du plus e e grand de ses descendants (fu ). On a u = v1 1. Ainsi, - les noeuds de [v1 , v2 1] sont joignables par v1 - les noeuds de [v2 , v3 1] sont joignables par v2 - ... - les noeuds de [vk , fu ] sont joignables par vk - les noeuds de [1, u 1] [fu + 1, n] sont joignables par le p`re e La table de routage contient une adresse pour chaque ls et pour le p`re, e donc au noeud u on a une table de taille (deg(u) + 1) log(n). Algo de routage en u: on doit aller en v. On recherche lintervalle dans lequel se trouve v, en eectuant une dichotomie sur le tableau suivant: [1, u 1, v1 , v2 , ..., vk , fu + 1]. Le cot du routage est en O(log(deg(u))) (cot non constant). u u Ltirement de lalgo est 1. e Cot de stockage global en ( deg(u)) log n = n log n: cot acceptable, sauf u u que certains noeuds peuvent tre tr`s chargs si leur degr est important, comme e e e e dans le cas dun serveur centralis en toile, donc ce nest pas acceptable. e e 14

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

1.3.2

Un schma plus compact e

Technique pour limiter les probl`mes lis ` un nombre de ls important: clase e a sication des noeuds en fonction de leur poids et dun param`tre x b (b = 2 e e dans la suite mais on peut gnraliser). e e En un noeud v, sv est le nombre de descendants de v dans larbre (v inclus). v Soit v un ls de v. v est un noeud lourd si sv sb , et lger sinon. e Lemme: un noeud ne peut pas avoir plus de b 1 ls lourds. En eet, supposons que v ait b ls lourds. Alors v FilsLourds sv sv , or v Fils sv = sv 1, do` la contradiction qui prouve le lemme. u Racine de larbre = noeud lourd (par convention). On suppose que dans le parcours en profondeur on numrote toujours les noeuds lgers avant les noeuds e e lourds (on rordonne larbre au besoin). e u En chaque noeud v on stocke linformation (v, fv , hv , Pv ) o` v est le numro du noeud; e e fv est le numro du plus grand descendant (comme dans le routage par intervalle); hv est le numro du (premier) ls lourd ventuel, sinon hv = fv + 1; e e Pv contient le numro de port correspondant ` larte allant de v ` son e a e a e a e p`re (Pv [0]), ainsi que le numro de port pour aller de v ` lventuel ls e lourd (sil en a un): Pv [1]. Information stocke sur le routeur en O(log n) (nombre constant de mots). e

Pv[0] v Pv[1] v+1 hv

fv

On regarde le chemin de la racine vers un noeud, et les ls lgers rencontrs e e en route. Combien peut on avoir de noeuds/ls lgers sur ce chemin? e

15

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

r=v0 Lv[1] v1=vi1 lger

v2 Lv[2] v3=vi2 Lv[lv] v4=vilv=v lger lger

r Au noeud lger, sv1 < sbr , puis sv3 < v1 < s2 , et sr = n. En partant de la e b b racine jusqu` une feuille, apr`s lv noeuds lgers on a sv = 1 < bn do`, pour a e e u lv b = 2, lv < log2 (n). Dans lentte dun paquet destin au noeud v, on stocke linformation suive e ante: (v, Lv ) et Lv indique tous les chemins que lon ne peut pas calculer facilement, ` savoir tous les numros de port pour arriver sur un noeud lger sur la a e e route de r ` v. Il y a au plus log n noeuds lgers sur cette route et linformation a e est de taille log n (numro de port, et au plus n voisins), donc entte de taille e e log2 (n). e e lv : nombre de noeuds lgers au dessus de v (incluant v si v est lger), et Lv = (port(vi11 , vi1 ), ..., port(vilv 1 , vilv )) o` les vik reprsentent, pour k = 1..lv , les sommets lgers sur la route {r = u e e v0 , v1 , ..., vk = v} (cf gure prcdente). e e

Algorithme: Routage du paquet (v, Lv ) au noeud u. 1. Si u = v on a trouv e 2. Si v [u, fu ], le paquet est transmis au p`re en utilisant le port Pv [0] / e 3. Si v [hu , fu ], le paquet doit tre transmis au ls lourd (si u na pas de e ls lourd cet intervalle est vide), sur le port Pv [1]. 4. Sinon, v est le descendant dun des ls lgers, et on dispose de linformation e de routage dans la table Lv (entte du message): Lv [lu ]. lu nous indique e le nombre de noeuds lgers au dessus de u, et donc permet de retrouver e e dans le tableau Lv le port pour aller au ls lger juste en dessous de u. Ce choix se fait donc en temps constant. On peut coder ecacement en C pour b = 2: le numro de port sexprime e par la formule: ((v>=u && v<h) ? L[l] : P[v>=h && v<=f]) (Routage en u dun paquet v, et on supprime les indices pour la lisibilit). Ici, e L[lv] reprsente par convention le numro de port du lien connectant le routeur e e v ` son hte. Je rappelle ici quune machine est suppose conna les noeuds a o e tre avec lesquels elle veut communiquer. En rsum: e e 1. Routage en temps constant 2. Taille stocke en chaque noeud: O(log n) e 16

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

3. Taille de lentte: O(log2 (n)), et cette taille peut tre rduite ` O(log n) e e e a avec quelques optimisations. Dtail et optimisation dans larticle de Thorup et Zwick: compact routing e schemes (cf page web du cours). On sintresse maintenant ` tendre ce principe pour un algorithme de e a e routage dans des graphes quelconques, en relchant un peu ltirement (toua e jours de 1 pour linstant).

17

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

1.4

Routage dans des graphes quelconques

Principe de Thorup et Zwick (cf article). 1.4.1 Principe

Pour faire du routage avec des plus court chemins, il faudrait avoir pour chaque noeud larbre des plus courts chemins, donc n arbres. (Les plus courts chemins sont dirents si la source du message change). Or, avec lalgo de Thorup et e Zwick, on a vu quil fallait stocker O(log n) informations en chaque noeud, do` u O(n log n) au total pour les n arbres. On cherche un stockage en O( n) en chaque noeud, donc on ne peut pas stocker tous les arbres de plus court chemin. On accepte un facteur dlongation e de 3, ce qui permet dobtenir le rsultat voulu. e On choisit un sous-ensemble des sommets A V , appels centres (centers e pour Thorup, landmarks pour Cowen). (u, v): distance (pondre) entre u et v dans le graphe. ee (A, v) = min{(u, v)|u A}: distance entre v et lensemble de sommets A. Pour chaque w V , on note CA (w) = {v V |(w, v) < (A, v)}: ensemble des sommets plus proches de w que de nimporte quel sommet de A. Cet ensemble est appel le cluster de w pour lensemble A. e Si w A alors CA (w) = , et CA (w) A = . centA (v) reprsente un sommet de A le plus proche de v. On a donc e (centA (v), v) = (A, v). Principe du routage: on sappuie sur les noeuds centres (de A). Routage de u ` v: a 1. Si v CA (u), v est dans le cluster de u donc on utilise un plus court chemin de u ` v (routage par arbre). Llongation est de 1. a e 2. Sinon on passe par centA (v), on calcule un plus court chemin de u vers centA (v) puis un plus court chemin de centA (v) vers v. On a alors (centA (v), v) = (A, v) (u, v). Par ingalit triangulaire et symtrie, e e e (u, centA (v)) (u, v) + (centA (v), v), do` nalement u (u, centA (v)) + (centA (v), v) (u, v) + 2(centA (v), v) 3(u, v).
C(u) C(v)

cent(v)

18

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

En choisissant A, on dispose alors dun algorithme dtirement 3 utilisant e cette technique. Cependant, Si A est tr`s grand, il faut stocker en chaque noeud larbre des plus courts e chemins pour tout a A, ce qui est trop cher (en gros, O(|A| log n) par noeud). Si A est trop petit, alors pour certains noeuds u, CA (u) risque dtre tr`s e e grand et on doit stocker en u tous les plus courts chemins vers tous les v CA (u), ce qui est en gros en O(|CA (u)| log n). La dicult consiste donc construire A de la bonne taille, pour avoir |A| e a ` en O( n) et CA (u) en O( n) pour chaque sommet. 1.4.2 Construction de A

On utilise lalgorithme de Thorup et Zwick suivant. Algorithme center(G, s) A ; W V ; tant que W = faire A A sample(W, s); w V , C(w) {v V | (w, v) < (A, v)} ; W {w V | |C(w)| > 4n/s} ; n retourner A Cet algorithme prend en param`tre un graphe pondr non orient G = e ee e (V, E) et un param`tre s [1, n]. Le rsultat est un ensemble A V de taille e e (en moyenne) O(s log n), tel que tous les clusters CA (w), pour tout w V , sont de taille au plus 4n/s. Cet algorithme utilise la sous-procdure sample(W, s), qui renvoie un souse ensemble de W obtenu en slectionnant chaque lment de faon indpendante, e ee c e avec la probabilit s/|W | dtre retenu. Ainsi, si |W | s, tous les lments sont e e ee retenus et la procdure renvoie W . En moyenne on renvoie s lments alatoires e ee e de W (si |W | s). Lalgorithme rajoute dans lensemble A des sommets choisis de faon alatoic e re dans lensemble W , calcule ensuite les CA (w), puis recommence en prenant comme ensemble des sommets W les sommets avec un trop grand cluster (de taille > 4n/s). A la n de lalgorithme center, W = donc pour tout sommet w V on a |CA (w)| 4n/s, (CA (w) reprsente les noeuds pour lesquels on doit conna e tre un plus court chemin depuis w). A prouver: Terminaison de lalgo? Nombre dtapes de lalgorithme? A chaque tape, on ajoute environ s e e noeuds ` A. a Notons par Wi lensemble W au dbut de ltape i. e e ee e a e A =sample(Wi , s) est lensemble des lments rajouts ` A durant cette tape.

19

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

La dmonstration nest pas faite formellement ici mais elle est disponible e dans le papier de Thorup et Zwick (lien sur la page web du cours). On montre nalement quavec une probabilit 1/2 on a ` la n de ltape i e a e e |Wi+1 | |Wi |/2, et on peut en dduire que lon termine en moyenne en moins de 2 log n tapes. e Vu que lon rajoute s lments dans A par tape, on obtient A de cardinal ee e 2s log n. En prenant s = n/ log n, on obtient: 4n n/ log n <4 n log n

w V CA (w) < |A| = O(2 log n et mme A 2 n log n e 1.4.3 Routage

n/ log n) = O( n log n)

Taille en chaque routeur: au point u, on conna t v CA (u), le voisin de u dans un plus court chemin vers v. On stocke donc en chaque noeud u un arbre en O(log n) pour chaque soit un cot v, u de stockage en O(log n) |CA (u)|, ce qui revient ` O(log n n log n). a a A, on a comme information: mon numro dans larbre de a Ta , mon e plus grand ls dans Ta , lindice de mon ls lourd dans Ta , et le nombre de noeuds lgers entre a et moi. Cest donc en O(log n), et pour chaque e ce lment de A, do` une taille en O(log n) |A| = O(log n n log n) ee u 3 Do` un total en O( n(log n) 2 ) = O( n). u Taille des enttes des messages: message de u ` v e a Si v CA (u), entte [0, v] e cent (v) Sinon, [1, centA (v), vcentA (v) , Lv A ] o` centA (v) est lindice du centre u de v, ce qui indique larbre ` utiliser, vcentA (v) est le numro de v dans cet a e centA (v) est la suite des ports ` utiliser pour passer dun noeud a arbre, et Lv lourd ` un noeud lger dans cet arbre. a e Globalement une taille de lentte en log n + log n + log2 n, mais on a vu e quen optimisant le log2 n peut tre ramen ` log n. Donc une taille des e ea enttes en O(log n). e Algorithme de routage: Si v CA (u), sur tout le chemin de u ` v, on se rapproche de v, et donc a pour tout w sur ce plus court chemin, v CA (w) et donc w sait router au plus court. Sinon, on peut router vers v dans larbre des plus courts chemins de centA (v). Le routage se fait en temps constant, avec une longation 3. e Tous les crit`res doptimalit sont donc runis. e e e 20

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

1.5

Congestion dans les rseaux e

On aborde maintenant quelques probl`mes lis aux routages, lis ` la congestion e e e a dans les rseaux. On propose aussi des nouveaux algorithmes bass sur ces ides. e e e 1.5.1 Dnition de la congestion e

Nombreux paquets prsents dans le sous-rseau dgradation des performane e e ces: phnom`ne de congestion. Si le trac augmente trop vite, les routeurs e e ne peuvent pas faire face, ils perdent des paquets. Li ` la le dattente des e a routeurs, et ` la technologie de transport utilise (TCP...). Le probl`me tend a e e a ` empirer, et avec un trac lev les performances scroulent compl`tement, la e e e e quasi-totalit des paquets ne sont plus dlivrs ` leur destinataire. e e e a
Trac idal Nombres de paquets remis aux destinataires

Trac souhait

Trac congestionn

Nombres de paquets transmis

Principal facteur de congestion: saturation de la le dattente sur un routeur. Paquets dtruits sil ny a pas la place de les stocker. Solution: agrandir la e le dattente. Cependant, le dattente de longueur innie empire encore le phnom`ne de congestion, car le temps mis par un paquet pour atteindre la e e tte de le devient trop important. Paquets non acquitts retransmis, ce qui e e augmente la charge sur le rseau et la congestion. e Autres sources de congestion: processeurs internes aux routeurs de faible performance. La le dattente grandit alors mme si le routeur a une capacit de e e transmission susante. Mme probl`me pour les lignes ` faible bande passante. e e a La congestion sentretient elle mme et devient de plus en plus forte. Ainsi, e si un routeur ne dispose pas de buer libre, il ignore les nouveaux paquets qui arrivent, et lmetteur du paquet dpasse le temps limite dattente dun accus e e e de rception. Il retransmet donc systmatiquement le paquet, ventuellement e e e plusieurs fois de suite. Il ne peut donc pas librer de place de son ct pour e oe recevoir de nouveaux paquets, et la congestion se propage en amont, comme un embouteillage de voitures. Principes du contrle de congestion o Rsolution du probl`me lors de la conception du syst`me, pour sassurer quil e e e ny aura pas congestion. Aucune correction possible lorsque le syst`me est en e cours de fonctionnement.

21

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Contrle bas sur une rtroaction: surveiller le syst`me pour dtecter quand o e e e e et o` la congestion appara puis envoyer cette information l` o` les actions u t, a u doivent tre prises. Le comportement du syst`me est alors ajust pour corriger e e e le probl`me. Probl`me: paquets de contrle que lon envoie pour signaler la e e o congestion amplient le phnom`ne de congestion en augmentant le trac juste e e au moment o` lon cherche ` le rduire... Autre probl`me: viter loscillation u a e e e du syst`me en trouvant la bonne frquence de rtroaction (il ne faut pas ragir e e e e trop vite, mais pas trop lentement non plus). Raction ` une congestion: augmenter les ressources ou diminuer le trac. e a Circuits virtuels: contrle de congestion dans la couche rseau. Rseaux o e e datagrammes: contrle ` la fois dans la couche rseau et dans la couche transo a e port. 1.5.2 Algorithmes de contrle de congestion o

Prvention de la congestion e Elle peut se faire ` dirents niveaux. La couche liaison de donnes se situe a e e juste au dessus de la couche physique, mais en dessous de la couche rseau. la e couche transport est au dessus de la couche rseau. e
transport rseau liaison de donnes physique

La couche liaison de donnes fractionne les donnes dentre de lmetteur e e e e en trames de donnes, transmet les trames en squence et g`re les trames e e e dacquittement. Elle se sert de la couche physique, et doit orir ` la couche a rseau une liaison exempte derreurs. Le contrle de congestion peut se faire e o a ` ce niveau, au niveau de la politique de retransmission: vitesse de raction e et comportement de lmetteur face ` des paquets transmis dont les accuss e a e de rception sont hors dlais. Direntes politiques au niveau de laccus de e e e e rception peuvent aussi inuer la congestion, si chaque paquet est acquitt e e immdiatement les paquets dacquittement crent une surcharge de trac. La e e politique de contrle de ux peut aussi inuer. o Au niveau de la couche rseau, le choix entre circuit virtuel et datagramme e inue sur la congestion, certains algos ne marchent que pour le cas du circuit virtuel. On peut inuer ici sur la politique de mise en attente des paquets, la gestion des les dattente des routeurs, le mode de distribution (priorits, e circulaire), la destruction des paquets (le pleine). Lalgorithme de routage

22

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

joue galement un rle primordial en talant de faon optimale le trac. Il faut e o e c galement bien grer la dure de vie des paquets (combien de temps on conserve e e e un paquet avant de le dtruire). e Enn, on peut galement trouver des voies daction au niveau de la couche e transport, qui se charge de dcouper les donnes, les passer ` la couche rseau, e e a e et sassure que tous les morceaux arrivent correctement de lautre ct. Protooe coles de transport: TCP, UDP... Les voies daction sont les mmes que pour e la couche liaison, sauf quil est plus dicile destimer les intervalles de temps hors dlais dans la gestion des paquets. En eet, le temps de transit dans un e rseau est beaucoup moins prvisible que celui sur un support de transmission e e entre deux routeurs. Trop court: paquets inopportuns retransmis. Trop long: congestion rduite mais temps de rponse plus long ` chaque paquet perdu. e e a Canalisation du trac Probl`me de congestion li au fait que le trac est alatoire et souvent par rafales e e e ou saccades incontrles. Une mthode pour prvenir la congestion consiste ` oe e e a pousser les ordinateurs source ` fournir leurs donnes ` un rythme uniforme. a e a Algorithme du seau perc: seau deau dont le fond est perc dun trou, leau e e scoule goutte ` goutte. Peu importe le dbit darrive de leau dans le seau, e a e e lcoulement se fait ` vitesse constante. Plus deau dans le seau: lcoulement e a e sarrte. En revanche, si le seau dborde, leau dborde (et se perd) mais e e e lcoulement par le trou reste contant. e 1.5.3 Max-Min Fairness

Partage quitable des demandes des ressources: e Les petits utilisateurs ont tout ce quils veulent Les gros utilisateurs se partagent ventuellement ce quil reste e Plus formellement, les ressources sont alloues aux utilisateurs dans lordre e grandissant des demandes. Personne ne reoit plus que ce quil a demand, c e et les utilisateurs avec des demandes non satisfaites se partagent les ressources restantes. Exemple:
Non satisfaite Requtes Compltement satisfaite

clients (classs suivant le nombre de requtes)

23

Algorithmique des rseaux et des tlcoms - 2006 e ee

Anne Benoit

Max-min pondr, qui rajoute des priorits aux clients. ee e Regarder ventuellement plus dinfos sur e http://www.cs.berkeley.edu/~kfall/EE122/lec26/ 1.5.4 Algorithme de ot maximum

Cest trait en cours/TD de graphe en L3, et dans le Cormen: mthode de Forde e Fulkerson. Ce sont des techniques algorithmiques qui servent pour les rseaux. e

24