• Aucun résultat trouvé

Algorithmes de calcul de chemins dans les réseaux multicouches

4.5 Problèmes similaires

5.2.2 Algorithmes de calcul de chemins dans les réseaux multicouches

Le problème du calcul de chemins dans les réseaux hétérogènes s’est d’abord posé au niveau optique. En effet, différentes longueurs d’onde coexistent dans les réseaux optiques, certains nœuds ayant la capacité de convertir certaines longueurs d’onde en d’autres. Une des contraintes posées étant lacontinuité de longueur d’onde : le long d’un chemin, tout nœud traversé doit l’être avec une longueur d’onde qu’il peut traiter, et un changement de longueur n’intervient à un nœud que si ce nœud a la capacité de conversion nécessaire. Cette contrainte est proche de la continuité protocolaire (et des contraintes de compatibilité qu’elle induit). Dans les deux cas, il s’agit de convertir une longueur d’onde (qui peut-être vue comme un protocole de couche1) en une autre au bon endroit, de façon à ce que tous les nœuds du chemin puissent traiter les longueurs d’onde qu’ils reçoivent. La principale différence est qu’il n’y a pas d’encapsulation, une fois le changement de longueur d’onde opéré, il n’est pas nécessaire d’effectuer la conversion inverse plus loin dans le chemin.

Chlamtacet al.[30] ont proposé un nouveau modèle et différents algorithmes permettant de calculer des chemins sous contrainte de continuité de longueur d’onde dans un réseau optique. Leur modèle, appeléWavelength Graph Model, permet d’exprimer les différentes contraintes liées aux longueurs d’onde

Figure5.2 – Chemin faisable contenant une boucle dans un réseau multicouche.

qu’un graphe classique modélisant la topologie du réseau ne peut pas exprimer. Zhu et al. [122] ont traité le même problème dans les réseaux optiques mais en y ajoutant des contraintes liées au traffic grooming32, ainsi que des contraintes de compatibilité sur deux couches (la couche optique et la couche accès). Là encore, un nouveau modèle, appelé Auxiliary Graph Model est proposé. Ce modèle permet également d’exprimer des contraintes de continuité de longueurs d’onde et de compatibilité qu’un graphe représentant la topologie du réseau ne peut pas exprimer. Yao et Ramamurthy [120] ont simplifié ce modèle et proposé d’autres approches pour le traffic grooming.

Le point commun de ces travaux est qu’ils proposent de nouveaux modèles où un équipement réseau (nœud physique) n’est plus modélisé par un seul nœud dans un graphe. De fait, le graphe ne représente plus simplement la topologie du réseau, mais également les différentes technologies et protocoles employés. Un équipement réseau correspond à différents nœuds dans le modèle, chaque nœud étant indexé par une technologie ou un protocole. L’existence d’un lien entre deux nœuds ne dépend pas uniquement de l’existence d’un lien physique entre eux, mais dépend également de la compatibilité des technologies ou protocoles utilisés par ces nœuds. Ainsi, un simple algorithme de calcul de chemin dans ce modèle permet de connaître la liste des nœuds traversés par ce chemin, mais également la liste des protocoles et technologies utilisés.

5.2.2.2 Calcul de chemins dans les réseaux multicouches

Le fait de gérer des contraintes de continuité sur plusieurs couches complique la tâche de calcul de chemins. En effet, il faut assurer la continuité de longueur d’onde (couche optique), la continuité de label MPLS (couche «2,5»)33, etc. De plus, n’importe quelle technologie de couche2(Ethernet, par exemple), ne peut pas être transportée sur n’importe quelle technologie de la couche 1. Gong et Jabbari [51] ont proposé un modèle appeléChannel Graph Model qui permet de modéliser ces différentes contraintes et calculer le plus court chemin. Là encore, un équipement physique est modélisé par plusieurs nœuds, chacun indexé d’une technologie ou d’un protocole. Les liens horizontaux dans le graphe représentent des changements de technologies sur une même couche (conversion de longueur d’onde sur la couche optique,

32. Letraffic groomingest l’opération de regrouper plusieurs petits flux de communication au sein d’unités plus grandes, ces unités étant traitées plus tard comme des blocs indivisible. Le but de cette opération est de minimiser le traitement des données en augmentant leur granularité.

par exemple). Les liens verticaux représentent des changements de couche (ajout d’un label MPLS sur une trame Ethernet, par exemple). Si un coût est attribué aux liens, alors l’application d’un algorithme de calcul du plus court chemin sur ce graphe permet de calculer un chemin de coût minimum. Cette approche ne permet cependant pas de résoudre notre problème. D’abord, elle ne permet de modéliser que des encapsulations classiques (couche2 dans couche1 par exemple), et ne permet pas de modéliser les encapsulations de type Pseudo-Wire (où l’on ne prend pas en compte la hiérarchie des couches ni le modèle OSI, et où les protocoles de couches basses peuvent être encapsulés dans des protocoles de couches plus hautes) car le modèle est statique et chaque niveau correspond à une couche bien définie. De plus, cette méthode nécessite un nombre de couches fixé à l’avance, ce qui implique un nombre d’encapsulations imbriquées fixé. Elle ne permet pas de modéliser une situation où un protocolexest encapsulé dans un protocole y, lui-même de nouveau encapsulé dans le protocole x car il faudrait représenter la même couche deux fois dans le modèle, ce qui n’est pas permis. De plus, la structure statique du modèle impose un ordre dans les encapsulations (les protocoles de couches hautes sont encapsulés dans des protocoles de couches plus basses. Faire une encapsulation dans l’autre sens est impossible).

Dans sa thèse, Freek Dikstra34[40] a étudié le problème de calcul de chemins dans un réseau multi-couche. Cette thèse traite différentes architectures, mais pas l’architecture Pseudo-Wire. L’auteur définit les fonctions d’encapsulation et de désencapsulation dans le contexte de la recommendation ITU-T G.805, où les encapsulations se font uniquement d’une couchen+ 1dans une couchen. Néanmoins, les solutions qu’il propose peuvent être généralisées aux encapsulations telles que nous les définissons (indépendam-ment de la hiérarchie des couches). Il affirme que les modèles classiques de graphes (représentant les topologies) ne peuvent correctement exprimer le problème. Il propose donc plusieurs modèles de graphes représentant les protocoles et technologies sur chaque couche. Certains de ces modèles ont une taille exponentielle en fonction de la topologie du réseau (ce qui explique que les algorithmes utilisés ensuite soient polynomiaux en fonction de la taille des nouveaux graphes). Cette thèse contient de nombreux exemples où le chemin le plus court dans un réseau multicouche comporte des boucles. Contrairement à notre travail, le problème traité par Dijkstra l’est uniquement sous contrainte de bande passante. Ainsi, dans un travail conjoint avec Kuipers [67], les auteurs montrent que le problème estNP-complet et pro-posent un algorithme de recherche en largeur qui explore tous les chemins jusqu’à en trouver un faisable et respectant une contrainte de bande passante donnée. Notre solution est beaucoup plus générale car elle traite le calcul de chemins sans contrainte de bande passante, avec contrainte de bande passante et avec contraintes de QoS. De plus, nous traitons plusieurs fonctions objectifs : nombre de liens, nombre d’encapsulations et mesure additive sur les liens et les fonctions d’adaptation.

5.2.2.3 Calcul de chemins sous contraintes de langages

Les travaux de Barrettet al.[21] sont l’approche théorique qui se rapproche le plus de la nôtre. Bien que la motivation pratique de ce travail et son domaine d’application soient les systèmes et modes de transport, la formalisation du problème se rapproche fortement du calcul de chemins dans les réseaux multicouches. En effet, leur modèle est un graphe dont les arêtes sont étiquetées par les symboles d’un alphabet donné Σ. On définit l(C) comme étant la concaténation des étiquettes des arêtes le long du cheminC. Le problème est de trouver le plus court cheminC entre deux nœuds donnés dans le graphe tel quel(C)appartient à un certain langage formelL.

Leurs résultats montrent que si le chemin doit être simple (sans répétition de nœuds ni d’arêtes), le problème est NP-difficile quelque soit la nature du langage L, sauf si c’est un langage fixe fini (auquel cas le problème est polynomial). Ce cas se rapproche du problème de calcul de chemins sous contrainte de bande passante et est à mettre en parallèle avec laNP-complétude de ce dernier. En effet, dans les réductions montrant laNP-complétude de ce dernier problème, la contrainte de bande passante impose généralement un chemin simple pour ne pas passer plusieurs fois par un même lien (et ainsi épuiser sa bande passante).

Cependant, si le chemin n’est pas forcément simple, le problème est polynomial pour plusieurs classes de langages (donnés par leur grammaire) : langages réguliers, langages à contexte libre, etc. Vu notre caractérisation des chemins faisables par un langage à contexte libre, le cas oùLest donné par une gram-maire à contexte libre se rapproche de notre problème (sans contrainte de bande passante). L’algorithme de calcul est un programme dynamique qui utilise les propriétés récursives des grammaires à contexte libre sous forme normale de Chomsky.

Bien que proche de la nôtre, cette approche n’est cependant pas totalement similaire et ne peut être appliquée à notre problème. En effet, dans le problème de Barrett et al.[21], la grammaire à contexte libre donnée est totalement indépendante du graphe. Ce qui reviendrait à dire qu’il suffirait qu’un chemin

C ait la bonne suite d’étiquettes l(C) pour qu’il soit faisable. Cette condition n’est pas suffisante car les fonctions d’encapsulation et de désencapsulation sont placées sur des nœuds bien spécifiques et ne peuvent être utilisées n’importe où dans le réseau. Dans notre approche, le réseau lui-même est converti en automate à pile, puis en grammaire à contexte libre. Cette grammaire dépend du langage qui caractérise les chemins faisables, mais également de la topologie du réseau.