République Algérienne Démocratique et Populaire Ministère de l'Enseignement Superieur et de la Recherche Scientique Université d'Oran-Es Senia Faculté des sciences THESE DE MAGISTER discipline : Informatique présentée et soutenue publiquement par FOUROUR Said Octobre 2011 Modélisation et Optimisation dans les Réseaux MPLS Composition du Jury : Président BENHAMAMOUCHE Djilali Professeur, Université d'Oran, Es-senia Examinateur GUEZZOURI Mustapha Maitre de conférences, Université d'Oran, Es-senia Examinateur NOURINE Rachid Maitre de conférences, Université d'Oran, Es-senia Encadreur LEBBAH Yahia Professeur, Université d'Oran, Es-senia Remerciements Je remercie le professeur BENHAMAMOUCHE Djilali d'avoir accepté d'examiner ce travail et de présider le jury. Mes remerciements s'adressent aussi aux docteurs GUEZZOURI Mustapha et NOURINE Rachid qui ont accepté de faire partie du jury et d'évaluer le travail. Je tiens à remercier tout particulièrement le professeur Yahia LEBBAH pour son soutien permanent et infaillible, sans qui ce travail n'aurait jamais abouti. Je remercie enn tous ceux qui ont contribué de près ou de loin à la réalisation de ce travail. Résumé L'évolution des applications et des services de téléphonie de la vidéo et des données d'une part et des réseaux de télécommunications d'autre part ont fait naître chez les opérateurs le besoin d'unier l'infrastructure pour intégrer tous ces services avec la qualité requise pour chacune des applications. Cette convergence vers une plate-forme réseau unique dite de nouvelle génération(NGN) doit faire face à la multiplicité des protocoles existants. MPLS a été conçu pour apporter les mécanismes de la qualité de service qui manquaient à IP. Il est capable d'eectuer un routage(ou une commutation) basée sur les labels d'un paquet unique mais aussi de tout un ot(qu'il identie) sur un chemin prédéterminé (LSP). Il s'interface entre la couche IP et la couche deux du modèle OSI(ça peut être de l'ATM, du FrameRelay, Ethernet,....). Ces caractéristiques ont fait de lui un élément incontournable dans cette migration vers les réseaux NGN. Nous nous sommes intéressés dans ce mémoire à un problème d'optimisation de la topologie logique d'un réseau à base de routeurs MPLS. Notre contribution a consisté à linéariser la fonction objectif pour pouvoir appliquer une méthode de recherche de l'optimum global. Mots-clés : Réseaux Nouvelle génération , Qualité de service, MPLS, Branch And Bound, Linéarisation. Key words : New Network Generation, Quality Of Service , MPLS, Branch And Bound, Linearisation. Table des matières Introduction générale 1 I Etat de l'art 4 1 Migration Vers les Réseaux nouvelle génération 1.1 Réseaux nouvelle génération [38] . . . . . 1.2 Equipements spéciques des réseaux NGN 1.2.1 Softswitch . . . . . . . . . . . . . . 1.2.2 Media Gateway . . . . . . . . . . . 1.3 Architecture des réseaux NGN . . . . . . . 1.3.1 Modèle en couches . . . . . . . . . 1.4 Le coeur des réseaux NGN . . . . . . . . . 1.4.1 Réseau ATM [33] . . . . . . . . . . 1.4.2 WDM [30] . . . . . . . . . . . . . . 1.4.3 SDH/PDH [5] . . . . . . . . . . . . 1.4.4 FrameRelay [8] . . . . . . . . . . . 1.5 Architecture MPLS [15] . . . . . . . . . . 1.5.1 Introduction à MPLS . . . . . . . . 1.5.2 Les bases de MPLS [15] . . . . . . 1.6 La Qualité de service(QoS) [11, 18, 20] . . 1.6.1 Dénition . . . . . . . . . . . . . . 1.6.2 Critères de la Qualité de service . . 1.6.3 Types d'applications . . . . . . . . 1.6.4 Mécanismes de la qualité de service 1.6.5 Modèles de la Qualité de service . . 1.7 Ingénierie du trac . . . . . . . . . . . . . i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 8 8 8 9 9 11 12 15 15 16 17 17 19 27 27 27 28 28 29 32 ii 1.7.1 Ingénierie de trac sans MPLS . . . . . . . . . . . . . . . . . . 33 1.7.2 Ingénierie de trac avec MPLS . . . . . . . . . . . . . . . . . . 34 1.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2 Optimisation globale et les d'attente 35 2.1 Cas de la programmation linéaire en nombres entiers [10] . . 2.1.1 Problème du sac à dos . . . . . . . . . . . . . . . . . 2.1.2 Branch And Bound pour le problème du sac à dos . . 2.1.3 Application au problème du voyageur de commerce . 2.2 Cas de la programmation non linéaire mixte MINLP [28, 29] 2.3 Modélisation du délai par les les d'attente [21, 26, 34, 41] . . 2.3.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2 Processus d'arrivée . . . . . . . . . . . . . . . . . . . 2.3.3 Processus de service . . . . . . . . . . . . . . . . . . 2.3.4 Discipline de la le d'attente . . . . . . . . . . . . . . 2.3.5 Notation de KendallLee . . . . . . . . . . . . . . . . 2.3.6 Mesures de performance d'une le d'attente . . . . . 2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Modele de reseau 3.1 Eléménts du modèle . . . . . . . . . . . . . . . . . 3.1.1 Les liens . . . . . . . . . . . . . . . . . . . . 3.1.2 Les chemins . . . . . . . . . . . . . . . . . 3.1.3 Les coûts associés aux chemins . . . . . . . 3.1.4 Les demandes . . . . . . . . . . . . . . . . 3.1.5 Les ots par chemin . . . . . . . . . . . . . 3.1.6 La contrainte de satisfaction de la demande 3.1.7 La contrainte sur la capacité . . . . . . . . . 3.1.8 La contrainte sur le délai par chemin . . . . 3.1.9 La contrainte de débit maximal . . . . . . . 3.1.10 Domaines des variables . . . . . . . . . . . . 3.1.11 La fonction objectif . . . . . . . . . . . . . . 3.1.12 Les coûts des chemins . . . . . . . . . . . . 3.1.13 Formulation du problème . . . . . . . . . . 3.2 Nature du problème . . . . . . . . . . . . . . . . . 35 36 37 42 44 47 47 48 48 48 48 49 49 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 50 51 52 52 53 53 54 54 55 55 55 57 57 58 iii 3.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 II Contributions 60 4 Ranement du modèle et linéarisation 61 4.1 Le modèle nonlinéaire étudié . . . . . . . . . . . . . . 4.2 Linéarisation du modèle . . . . . . . . . . . . . . . . 4.2.1 Linéarisation du terme quadratique principal λ 4.3 Linéarisation du terme stochastique ci −x . . . . . . . i 4.3.1 Génération des matrices de trac . . . . . . . 4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Mise en oeuvre et expérimentation 61 62 63 64 66 67 68 5.1 Concepts du Langage AMPL [3] . . . . . . . . . . . . . . . 5.2 Mise en oeuvre du programme de génération des matrices de chiers AMPL . . . . . . . . . . . . . . . . . . . . . . . 5.3 Les réseaux physiques de test . . . . . . . . . . . . . . . . 5.4 Résolution des modèles linéaires et non linéaires . . . . . . 5.5 Expérimentation . . . . . . . . . . . . . . . . . . . . . . . 5.6 Résultats et analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . de ots et . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 . . . . . 72 72 74 74 81 Conclusion Générale 83 Annexe A 84 1 Eléments de base du langage AMPL [3] . . . . . . . . . . . . . . . . . . 84 Annexe B 1 2 3 4 Fichier Fichier Fichier Fichier Bibliographie 87 modèle AMPL du modèle non linéaire . . . modèle AMPL du modèle linéaire . . . . . . modèle AMPL du modèle relaxation linéaire Data AMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 88 89 90 92 Introduction générale Ce travail est né de la curiosité qu'a suscitée chez nous l'apparition de la technologie MPLS dans le domaine des réseaux. En s'intéressant de prés à ce protocole, On s'est rendu compte qu'il constituait la pierre angulaire des nouvelles architectures de réseaux dites de nouvelle génération qui intègrent voix, données et vidéo et supportent des applications multiples, xes ou mobiles, adaptables à l'utilisateur et aux capacités croissantes et variées des réseaux d'accès et des terminaux. L'idée était de voir dans quelle mesure la technologie MPLS [15] améliorerait le routage (commutation), par voie de conséquence la qualité de service se trouve améliorée, par rapport à la complexité de MPLS. Par la suite, notre véritable objectif est d'améliorer ses performances en exploitant les techniques récentes d'optimisation mathématique [37, 41]. En eet, la littérature [4] conrme la complexité de la qualité de service proposée par le protocole MPLS. Nous pensons que la thèse de Becker [4] a présenté le modèle le plus complet sur la problématique de dimensionnement et de reconguration des réseaux MPLS. La technologie Mpls (Multi Protocol Label Switching) a permis d'améliorer considérablement l'architecture et les protocoles de routage Ip. En eet, dans le routage IP classique, le relayage des paquets est eectué indépendamment au niveau de chaque routeur du réseau et il est basé uniquement sur l'adresse destination contenue dans l'entête. Le plus court chemin, au sens d'une certaine métrique, vers la destination est choisi en exploitant les protocoles de routage distribués. Par conséquent, quand les ressources disponibles sur le chemin le plus court ne sont pas susantes la qualité et la performance se dégradent. L'un des aspects clefs de MPLS est une abstraction de la connectivité : des chemins de routage point à point explicites peuvent être établis en utilisant des mécanismes de relayage (commutation) basés sur les étiquettes. Cela permet une sélection de chemins par ot et la prise en compte des paramètres de la qualité de service dans les algorithmes de routage. L'exigence de QOS d'une connexion peut être vue comme des contraintes sur un ensemble de liens, c.à.d. en exigeant par l'utilisateur, pour une connexion donnée qu'il y ait susamment de bande passante sur le chemin sélectionné. La capacité exigée au niveau de la couche Mpls est fournie par le réseau de transport sous-jacent qui peut éventuellement être basé sur SDH, WDM, Frame Relay ou ATM, selon le débit des liens. Le réseau peut être dédié entièrement à Mpls ou alors et c'est souvent le cas, il est partagé avec d'autres services tels que la téléphonie. Dans cette architecture de réseau, quelques noeuds ou tous doivent supporter à la fois 1 2 la technologie de transport du réseau et Mpls. Par conséquent un opérateur Télécom qui désire orir des services de commutation de paquet basé sur Mpls doit proposer des possibilités de commutation de label à de l'ordre d'arrivée et de la taille de la demand quelques noeuds du réseau de transport. Un noeud supportant Mpls est appelé LSR (Label Switched Router). Dans ce contexte, le problème posé aux opérateurs Télécom est le suivant : La topologie de réseau étant déja déployée de façon à optimiser les fonctions de coûts intervenants dans la phase de planication qui comporte la planication de la capacité(débit des liens) et le placement des noeuds. L'opérateur doit faire face à la question : comment concevoir une topologie virtuelle (L'ensemble des LSP) sur une topologie physique pour une matrice de demandes de trac donnée. Ce problème relève de l'ingénierie de trac et consiste à répartir la charge de la demande totale pour une paire de noeuds donnée sur les divers LSP reliant celle ci. Ainsi, le routage optimal répondant à quelques mesures de coûts d'opérations et de maintenance peut être eectivement implémenté en optimisant la manière avec la quelle la demande totale pour toutes les paires de noeuds dans le réseau est acheminée sur la topologie virtuelle. Le coût de maintenance et d'opérations du réseau est pris en considération , pour cela, on focalise sur le problème d'obtention du layout qui est optimal en nombre d'LSP requis. En fait le coût d'opération sur les réseaux larges est lié à la complexité du layout. On utilise un poids associé à chaque lien an de reéter la complexité et le coût associé du point de vue de l'opérateur. Deux fonctions de coût diérentes sont proposées : La première tend à minimiser la fonction du nombre total de chemins utilisés sous la contrainte du délai de bout en bout par chemin. La seconde tend à minimiser une fonction croissante du nombre total de chemins plus le délai total dans le réseau sous la contrainte du délai de bout en bout par chemin. La formulation obtenue aboutit à un problème de la classe MINLP(Mixed Integer Non Linear Programming) [37] que l'auteur s'est proposé d'appréhender avec une démarche de recherche locale de l'optimum. Notre contribution a consisté en la linéarisation [40] de la fonction objectif et d'une contrainte, an de pouvoir eectuer la résolution par un algorithme de recherche d'un minimum global [28] qui repose sur la relaxation linéaire d'une part et les techniques d'analyse par intervalles issues de la programmation par contraintes d'autre part. Nous avons également tenté de dresser un état de l'art exhaustif des réseaux NGN (New Génération Networks) [38] et du rôle voué à MPLS dans cette nouvelle architecture. Le mémoire est organisé en cinq chapitres dont trois sont consacrés à l'état de l'art et deux pour notre contribution : Le chapitre 1 est un exposé de l'architecture NGN et des protocoles impliqués dans cette architecture. L'exposé est plus ou moins détaillé selon les concepts. Nous avons particulièrement insisté sur le protocole MPLS et sur les modèles de la qualité de service. Dans le chapitre 2, nous décrivons la méthode de résolution par séparation et évaluation (branch and bound) dans le cas de la programmation linéaire en nombre entiers et dans le cas de la programmation mixte non linéaire. Nous présentons également quelques éléments sur les les d'attente qui permettent de modéliser le temps d'attente dans un routeur MPLS, une mesure importante dans le problème. Le chapitre 3 est consacré à la modélisation du problème de détermination d'une topologie 3 logique minimisant le nombre total de chemins LSP établis entre les routeurs MPLS et le délai global dans le réseau sous la contrainte de délai sur chaque chemin de bout en bout , une fois donnée la topologie physique du réseau. Le modèle de [4] y est expliqué avec détails. Et enn, Les chapitres 4 et 5, où l'on présente notre contribution : le processus de linéarisation d'un terme quadratique qui intervient dans la fonction objectif et dans l'une des contraintes du problème ainsi que la proposition d'une nouvelle fonction objectif. Le chapitre 5 présente une étude expérimentale des modèles mathématiques exposés. Enn, nous terminons ce mémoire avec une conclusion et des perspectives. Première partie Etat de l'art 4 Chapitre 1 Migration Vers les Réseaux nouvelle génération Au cours de ces dernières années, Internet a évolué et a inspiré le développement de nouvelles variétés d'applications. Ces applications ont des besoins grandissant en termes de bande passante et de sécurité de service. En plus des données traditionnelles, Internet doit maintenant transporter voix, video et données multimédia. Les ressources nécessaires pour ces nouveaux services, en termes de débit et de bande passante, ont entraîné une transformation de l'infrastructure d'Internet. Cette transformation du réseau, d'une infrastructure par paquets à une infrastructure en cellules, a introduit de l'incertitude dans un réseau jusque-là déterministe. L'augmentation de la connectivité des réseaux et l'intégration de plusieurs services dans un même système de communication (intégration de voix et données, téléphonie mobile, développements de la téléphonie sur plates-formes IP, etc.) a engendré une croissance signicative de la complexité du métier de concepteur d'architectures de réseaux : d'une part, sur des aspects de dimensionnement matériel puisque les structures de communication doivent fédérer un nombre croissant de points de raccordement ; D'autre part, la convergence des médias où l'on cherche à faire passer sur un méme support physique les données, la voix et la vidéo, entraîne l'ajout de nouveaux équipements. Ainsi, la migration des réseaux traditionnels vers un nouveau modèle de réseaux et de services appelé NGN (Next Generation Networks) apparaît comme un processus inévitable du fait de cette convergence voix, données et image d'une part et des terminaux xes et mobiles d'autre part. Avec l'évolution rapide des technologies de transports à haut débit, il devient évident qu'ATM n'est plus une solution d'avenir pour les coeurs de réseaux IP, d'une part parce qu'il est dicile d'intégrer d'autres technologies dans une signalisation ATM, et d'autre part parce que la taxe de cellule (cell tax) devient prohibitive lorsque le débit augmente et qu'on ne sait plus construire de cartes capables de segmenter et de réassembler des paquets en cellules à la vitesse des liens. IP quant à lui, malgré sa simplicité et son ouverture, qui lui ont valu d'être l'infrastructure de transport par excellence, il reste insusant pour répondre à la qualité de service exigée par les diérentes applications et est incapable de diérencier leurs ux. D'où la nécessité 5 1.1. Réseaux nouvelle génération [38] 6 de l'étendre avec des mécanismes capables de remédier à ces défauts majeurs. MPLS est donc une solution prometteuse parce qu'elle permet d'intégrer très facilement des nouvelles technologies dans un coeur de réseau existant. En eet, sa faculté à interagir avec la majorité des protocoles réseaux existants anciens et nouveaux fait de lui le meilleur allié pour assurer la transition vers les réseaux NGN. Dans ce chapitre, nous présenterons l'architecture des réseaux NGN, ainsi que celle du protocole MPLS et nous montrerons le rôle joué par ce protocole dans ce genre de réseaux. Nous présenterons les protocoles de l'ancienne génération et de la nouvelle génération qui sont impliqués dans les NGN. 1.1 Réseaux nouvelle génération [38] "Next Generation Network" ou "NGN" (littéralement "Réseau de Nouvelle Génération") est une expression fréquemment employée dans l'industrie des télécommunications, notamment depuis le début des années 1990. Il n'existe pas de dénition unique. Le sens varie en fonction du contexte et du domaine d'application. Toutefois, le terme désigne le plus souvent le réseau d'une compagnie de télécommunications dont l'architecture repose sur un plan de transfert en mode paquet, capable de se substituer au réseau téléphonique commuté et aux autres réseaux traditionnels. L'opérateur dispose d'un coeur de réseau unique qui lui permet de fournir aux abonnés de multiples services (voix, données, contenus audiovisuels...) sur diérentes technologies d'accès xes et mobiles. Autrement, "NGN" est également utilisé très souvent à des ns marketings par les opérateurs et les fabricants pour rendre compte de la nouveauté d'un réseau ou d'un équipement de réseau. 1.1. Réseaux nouvelle génération [38] 7 Application Server Application Server APPLICATION SIP SIP Softswitch CONTROL SIP xDSL SIP Cisco 7500 SERIES CiscoSystems SIP Cable Routeur UMTS Wifi Transport IP Media Gateway ACCES Figure 1.1 Les réseaux NGN Depuis quelques années, les laboratoires des constructeurs et les organismes de standardisation se penchent sur une nouvelle architecture réseau (NGN) pour répondre aux exigences suivantes : Un c÷ur de réseau unique pour tous types d'accès et de services. Une architecture de c÷ur de réseau décomposée en trois couches : Transport, Contrôle et Services. Une évolution du transport en mode paquet (transport des ux IP) en IP natif, ou sur ATM à court terme avec une convergence progressive vers IP. Des interfaces ouvertes et normalisées entre chaque couche, et notamment au niveau 1.2. Equipements spéciques des réseaux NGN 8 des couches Contrôle et Services an de permettre le développement et la réalisation par des tiers de services indépendants du réseau. Le support d'applications multiples, multimédia, temps réel, transactionnelles, en mobilité totale, adaptables à l'utilisateur et aux capacités croissantes et variées des réseaux d'accès et des terminaux. 1.2 Equipements spéciques des réseaux NGN SS7 Network Signaling Gateway SIP/H.323 Softswitch SIGTRAN SIP/H.323 Media Gateway POTS/Mobile Network MGCP/H.248 IP Network Figure 1.2 Les principaux équipements NGN 1.2.1 Softswitch Dans une infrastructure NGN, un softswitch n'est autre qu'un serveur informatique, doté d'un logiciel de traitement des appels vocaux. Le trac voix est en général paquetisé par le media Gateway, et pris en charge par les routeurs de paquets du réseau de l'opérateur. Un softswitch va identier les paquets voix, analyser leur contenu pour détecter le numéro vers lequel ils sont destinés, confronter ces numéros avec une table de routage (qui indique ce que le softswitch doit faire en fonction de chaque numéro), puis exécuter une tâche (par exemple transmettre ou terminer). 1.2.2 Media Gateway Les media Gateway constituent le deuxième élément essentiel déployé dans un réseau NGN. Un media Gateway peut par exemple se positionner entre le réseau de commu- 1.3. Architecture des réseaux NGN 9 tation circuit et le réseau de commutation de paquets. Dans ce cas, les media Gateway transforment le trac circuit TDM en paquets, la plupart du temps IF, pour que ce trac puisse ensuite être géré par le réseau NGN. 1.3 Architecture des réseaux NGN 1.3.1 Modèle en couches Les réseaux NGN doivent permettre d'atteindre au moins les objectifs suivants : Mettre à la disposition des opérateurs télécom et des fournisseurs de services une plate forme unique pour créer, déployer et gérer des services divers et variés. Permettre à l'utilisateur d'accéder à ces services et à des applications à partir de terminaux divers. Gérer la mobilité de l'utilisateur en lui permettant de recouvrer son environnement personnel et son contexte de manière transparente et adapté au terminal utilisé. Assurer une transition douce des infrastructures réseaux existantes vers les nouveaux réseaux et protocoles. An d'atteindre ces objectifs,une conception en couches avec des interfaces ouvertes s'impose, comme pour le modèle OSI et les diérentes architectures réseaux existantes. [38] préconise une architecture NGN constituée de trois couches : 1.3. Architecture des réseaux NGN 10 operator THIRD PARTY SERVICE LAYER NETWORK CORE OPEN AND NORMALIZED INTERFACES CONTROL LAYER OPEN AND NORMALIZED INTERFACES TRANSPORT LAYER FIXED ACCESS WIRELESS ACCESS MOBILE ACCESS TERMINALS Figure 1.3 Structure en couches des NGN Couche Transport les aspects considérés à ce niveau sont l'acheminement des paquets avec les fonctions de trac engineering associés. Le couple RNIS comme technologie d'acces et ATM comme technologie de transport a suscité beaucoup d'espoir au début, mais les services prévus autour de la technologie ATM sont conçus pour ne fonctionner que sur ATM comme technologie de transport, ce qui a freiné leur essort. En vertu des infrastructures existantes, IP est donc inévitable malgrés ses carences en trac engineering. MPLS est un moyen directe de palier à ces carences. Couche Contrôle Parmi les nombreux services à integrer dans l'infrastructure NGN, les services temps réels tels que les appels vocaux et les applications vidéo nécessitent des fonctions de contrôle avancées qui doivent être intégrées à l'architecture, précisement au niveau de la 1.4. Le coeur des réseaux NGN 11 couche contrôle. Trois composants essentiels permettent d'assurer ces fonctionnalités : Le Switch logiciel (SoftSwitch) : qui remplace le PABX classique. La passerelle inter-media (mediagateway) : cet élément réalise notemment l'interopérabilité avec les réseaux classiques existants ; Passerelle de signalisation : an de traiter convenablement les communications multimédia au niveau de la couche transport, divers protocoles de signalisation au niveau de la couche contrôle ont été préconisés. Couche Services L'évolution des technologies d'accés (plus de bande passante est mise à la disposition des clients) et des capcités des terminaux a rendu possible l'accés à des services de différentes nature(accées aux données traditionnelles tels que le web,mail, news,...etc d'une part et les accés audio et vidéo d'autre part). Ces préoccupations sont prises en charge au niveau de la couche services. Deux grandes tendances apparaissent pour la mise en oeuvre de services portables et adaptables sur des terminaux diérents : Services basés sur le Switch logiciel (SoftSwitch) : modèle adapté pour les services Télécom nécessitant un forte participation des entités de contrôle. Les "Web Serrvices" : Ce modèle est basé sur les protocoles utilisés dans l'internet XML et SOAP. 1.4 Le coeur des réseaux NGN Applications Application Helpers(UDP, TCP,RTP ..ETC) IP POS ATM GMPLS ETHERNET MPLS Frame Relay SDH/PDH WDM COPPER COAX OPTICAL FIBER Figure 1.4 Structure protocolaire des NGN 1.4. Le coeur des réseaux NGN 12 Transport Network TCP Voice Applications (Data,VoIP,...) Voice 1.4.1 Réseau ATM [33] UDP IP Data Link ETHERNET Physique Fiber Frame Relay AAL5 AAL1 AAL2 ATM UTP Sonet OC−3 T1 T3 Figure 1.5 ATM et modele OSI Principe L'ATM (Asynchronous Transfert Mode) est une technique de transmission commutée faisant appel à des paquets courts de taille xe appelées cellules. Dans les commutateurs, le traitement de ces cellules est limité à l'analyse de l'en tête pour permettre leur acheminement. L'ATM combine les avantages de la communication rapide de paquets et du multiplexage temporel synchrone : la station source et le réseau ne sont pas liés par la nécessité d'émettre ou de recevoir une quantité d'information en synchronisme avec une trame de durée xe ; la communication est indépendante de la nature des informations véhiculées (voix, données, images : VDI) et un débit minimum peut être garanti ; la cellule a une taille xe, ce qui permet de concevoir des commutateurs relativement simples et performants ; la cellule a une taille courte (53 octets), ce qui permet l'adaptation à diérents types de tracs avec une gigue réduite (variation des intervalles de temps entre cellules). Les cellules sont transmises au rythme du débit engendré par l'application. L'échange avec le réseau est donc asynchrone et la station source seule gère son débit, dans les limites d'un contrat déni en début de communication (bandwith on demand). De base ATM est orienté connexion. Les connexions sont établies pour toute la durée des échanges par l'allocation d'un chemin virtuel (voix virtuelle ou conduit virtuel). Les fonctions de contrôle de ux ou de traitement des erreurs ne sont pas eectuées dans le réseau ATM, mais laissées à la charge des applications utilisatrices ou des équipements d'accès. Ces caractéristiques permettent à l'ATM de répondre aux contraintes de tracs aussi diérents que la voix, la vidéo numérique ou les données. Ce mode de transfert universel rend possible l'intégration de tous types de services sur un accès unique au réseau. D'abord conçu et sélectionné par l'UIT-T pour être la solution technique des réseaux publics large bande (à la place des réseaux Transpac et RNIS en France), l'ATM est également utilisé dans les réseaux locaux. paragraphArchitecture La commutation de cellules est basée sur un modèle en trois couches : 1.4. Le coeur des réseaux NGN 13 Couches hautes Couches hautes AAL AAL ATM PMD ATM PMD PMD ATM PMD PMD ATM PMD Figure 1.6 Les couches d'ATM la couche AAL (ATM Adaptation Layer) adapte les ux d'informations à la structure des cellules et fait le lien avec les couches applicatives ; la couche ATM assure la communication et le multiplexage des cellules ; la couche Physique ou PMD (Physical Medium Dependent) assure l'adaptation au support utilisé. Le modèle est en trois dimensions, dénissant 3 plans : un plan utilisateur pour transférer les informations venant des applications des utilisateurs ; un plan de contrôle lié aux problèmes de signalisation ; un plan de gestion responsable de la gestion et de la coordination des diérents plans. Couche physique Cette couche a pour rôle de convertir les ux de données en cellules et de gérer la commutation et le multiplexage de celles-ci. Le trac utile (voix, vidéo, images et données) est encapsulé dans les cellules de 53 octets pour être véhiculé sur le réseau. La couche ATM est complètement indépendante du support physique utilisé pour transporter les cellules. 1. Structure des cellules La cellule a une longueur de 53 octets et contient 2 champs principaux : (a) l'en-tête sur 5 octets dont le rôle principal est d'identier les cellules appartenant à une même connexion et d'en permettre l'acheminement ; (b) le champ de données sur 48 octets correspondant à la charge utile. L'en-tête comporte les champs suivants : (c) un champ de contrôle de ux (GFC, Generic Flow Control) dont la dénition n'est pas arrêtée ; (d) trois octets sont utilisés pour l'identicateur logique (VPI, Virtual Path Identier et VCI, Virtual Channel Identier) ; 1.4. Le coeur des réseaux NGN 14 (e) trois bits sont consacrés à la dénition du type de la charge utile (PTI, Payload Type Identication) et permettent de dénir s'il s'agit d'informations utilisateur (indication de congestion, données de type 0 ou 1) ou de messages de service du réseau (maintenance, gestion des ressources du réseau) ; (f) un bit de référence à l'écartement (CLP, Cell Less Priority) mis à 1 dans les cellules transportant des données de moindre importance pouvant être rejetées en cas de congestion du réseau ; (g) un octet pour la détection des erreurs et la correction des erreurs simples portant sur l'en-tête (HEC, Header Error Check) et géré par la couche physique. 2. Fonctions de la couche ATM La couche ATM assure quatre fonctions essentielles : (a) la commutation consistant en un traitement sur l'en-tête de la cellule (champs VPI et VCI). Ces champs sont soit insérés soit extraits et traduits an d'aiguiller correctement la cellule ; (b) le multiplexage-démultiplexage des cellules consistant principalement en une gestion de les d'attente ; (c) l'extraction ou l'ajout de l'en-tête devant le champ d'information avant de la transmettre à la couche d'adaptation AAL ou à la couche physique ; (d) un mécanisme de contrôle de ux peut être implémenté par l'intermédiaire du champ GFC, pour l'interface utilisateur-réseau. 3. Routage des cellules Les informations sont transportées par des circuits virtuels (VC) regroupées dans des chemins virtuels (VP)Les chemins virtuels représentent des conduits reliant des commutateurs dans un réseau maillé. Le commutateur est l'élément de base permettant d'orienter correctement les cellules dans le réseau. Il agit en fonction des valeurs des indicateurs VPI et VCI contenus dans les cellules et à l'aide de tables de routage, an de modier en conséquence l'en-tête de la cellule et mettre en correspondance un port d'entrée avec un port de sortie . Couche d'adaptation AAL La couche d'adaptation (ATM Adaptation Layer) est chargée de fournir une qualité de service aux applications. Pour cela, elle assure : la mise en oeuvre des protocoles de bout en bout ; la segmentation/réassemblage des messages en cellules. Par ailleurs, la couche adaptation est structurée en deux sous-couches : la sous-couche SAR (Segmentation And Reassembly) qui assure la détection des cellules perdues ou dupliquées et le bourrage des cellules incomplètes ; la sous-couche CS (Convergence Sublayer) qui gère le traitement des erreurs détectées par la sous-couche SAR, par retransmission ou correction. 5 classes de service ont été dénies en fonction des ux : classe 1 pour les ux à débit constant de type voix ; classe 2 pour les ux à débit variable de type vidéo ; classe 3/4 pour les transmissions de données en mode connecté ou non ; classe 5 version simpliée de la classe 3/4. 1.4. Le coeur des réseaux NGN 15 Parmi les 5 classes prévues, 2 sont principalement implémentées dans les équipements la classe 1 pour l'émulation de circuit et la classe 5 pour les données informatiques et la vidéo numérique. 1. AAL type 1 Elle est utilisée pour les communications de type voix. Seul un octet de la charge utile est occupé par l'en-tête . Le bit CSI (Convergence Sublayer Information) est utilisé pour délimiter les blocs de données ou pour le calage de l'horloge du récepteur ; Les 3 bits SNC (Sequence Number Counter) servent à numéroter, modulo 8, les cellules ; Le CRC (Cyclic Redundancy Check) et le bit de parité Pty (Parity bit) permettent une détection des erreurs. 2. AAL type 5 Cette classe est employée pour transmission des données numériques, y compris la vidéo au format MPEG. Elle transporte des blocs de données jusqu'à 64 Koctets. Ceux-ci sont divisés en cellules de 48 octets (gure 8.44). 1.4.2 WDM [30] Le multiplexage en longueur d'onde (Wavelength Division Multiplexing en anglais) est une technique utilisée en communications optiques qui permet de faire passer plusieurs signaux de longueur d'onde diérentes sur une seule bre optique, en les mélangeant à l'entrée à l'aide d'un multiplexeur (MUX), et en les séparant à la sortie au moyen d'un démultiplexeur (DEMUX). Le multiplexage proposé par SDH est cependant un peu rigide de par la taille incrémentale des conteneurs ; on passe, par exemple, d'un débit de 622 Mbit/s (STM-4) à 2,5 Gbit/s (STM-16). Les nouvelles techniques de multiplexage sur bre optique monomode s'appellent WDM (Wavelength Division Multiplexing) et DWMD (Dense WDM) dont le principe consiste à générer plusieurs faisceaux lumineux dans la même bre, jusqu'à 256 actuellement. Chaque faisceau optique, indiéremment appelé canal, longueur d'onde ou lambda, transporte un ux de données de nature et de débit quelconque, alors que SDH multiplexe les données en entrée puis les transmet sur une seule longueur d'onde. Cependant, WDM ne prend que des signaux optiques en entrée, alors que SDH multiplexe des signaux d'entrée optique et non optique. WDM peut ainsi transporter en même temps des signaux optiques OC-3, ATM, Gigabit Ethernet et même SDH, puisque ce dernier génère un signal optique. WDM permet donc de multiplier aisément les capacités des bres optiques déjà existantes, sans remettre en ques- tion l'existant. toutes ces techniques de multiplexage peuvent s'imbriquer : ATM dans SDH ou dans WDM, SDH dans WDM, bien que nous soyons toujours au niveau physique, c'est-à- dire au niveau du multiplexage des signaux générés sur un câble. 1.4.3 SDH/PDH [5] Dès l'origine des télécommunications, le premier objectif a été de partager une même liai- son physique entre plusieurs ux comme le cas de xDSL. Ce principe, appelé multi- 1.4. Le coeur des réseaux NGN 16 plexage, consiste à découper en tranches de temps simples (multiplexage temporel), puis à structurer ces tranches de temps en des formats de plus en plus évolués pour créer des trames. La LS et la boucle locale ne concernent qu'un utilisateur, mais déjà sur cette portion de ré- seau, diérents ux sont multiplexés : téléphonie et Internet si l'on prend l'exemple d'une boucle ADSL. Si l'on avance au c÷ur des réseaux des opérateurs, les tuyaux deviennent de plus en plus gros et généralistes, c'est-à-dire qu'ils doivent véhiculer des ux aussi divers que de la téléphonie et des données (lignes spécialisées, ATM, Frame Relay, ADSL, etc.), et à des débits très variés, allant de 64 Kbit/s à plusieurs centaines de Mbit/s. La technique de multiplexage aujourd'hui utilisée par les opérateurs pour transporter tous ces ux à tous ces débits est SDH (Synchronous Digital Hierarchy), et son équivalent américain SONET (Synchronous Optical Network), sur de la bre optique. Et qui dit bre optique, dit distances importantes, de l'ordre de plusieurs dizaines de kilomè- tres. SDH permet donc de constituer des réseaux à haut débit à l'échelle d'une aggloméra- tion. Il permet ainsi de véhiculer des lignes téléphoniques , de créer des boucles locales (LS, ATM et Frame Relay, niveau 2), et de constituer des MAN (ré- seaux à haut débit). Les opérateurs mettent à prot cette technologie pour raccorder leurs grands clients à leur POP (points de présence). Des boucles à 155 Mbit/s, 622 Mbit/s ou à 2,5 Gbit/s sont commercialisées auprès des gran- des entreprises, leur permettant de réaliser ces mêmes fonctions pour leurs besoins propres, comme l'interconnexion à haut débit (2, 34, 45, 155 ou 622 Mbit/s) de leurs sites répartis autour d'une grande ville. 1.4.4 FrameRelay [8] La technologie des reseaux etendus reliant deux sites utilisait generalement le protocole X.25. Parmi ses applications, le traitement des autorisations de carte de credit et dans les guichets automatiques. Il a été une technologie de commutation de paquets très répandue car elle permettait d'obtenir une connexion très able sur des infrastructures câblees non ables. Ce resultat etait obtenu grâce à des contrôles de ux et d'erreur supplémentaires. Ces contrôles alourdissaient cependant le protocole. Le protocole Frame Relay demande moins de temps de traitement que le X.25, car il comporte moins de fonctionnalités. Par exemple, il ne fournit pas de correction d'erreur, sachant que les réseaux étendus actuels permettent d'obtenir des connexions plus ables que les anciens. Frame Relay permet un traitement ecace en volume et en vitesse, en reunissant les fonctions des couches liaison de donnees et reseau en un seul protocole simple. En tant que protocole de liaison de données, Frame Relay permet d'accéder à un réseau, il délimite et fournit les trames dans l'ordre approprié et détecte les erreurs de transmission par un contrôle de redondance cyclique standard. En tant que protocole de reseau, il fournit plusieurs liaisons logiques sur un même circuit physique et permet au reseau d'acheminer les données sur ces liaisons jusqu'à leurs destinations respectives. Le FR sert surtout à router des protocoles des réseaux LAN ("Local Area Network" - des réseaux à petite supercie comme Ethernet, Token-Ring) sur des plus grandes surfaces. 1.5. Architecture MPLS [15] 17 Par exemple, il pourra servir à connecter deux réseaux IPX qui sont distants géographiquement. À l'interne des réseaux, le protocole utilisé sera donc IPX mais FR servira pour véhiculer les données entre les réseaux. Le FR sert aussi à transporter du trac asynchrone, du SNA (protocole réseau inventé par IBM) associé au réseau de type Token-Ring ou encore de la voix. En Amérique du Nord, le FR prend rapidement la place du X25 du fait de la présence dans quasiment tous les réseaux informatiques du protocole SNA. C'est ensuite que le poids de l'Ethernet augmentant nous amène aujourd'hui à constater une quasi disparition du SNA. En Europe la montée du FR date du début des années 90. C'est le X.25 allégé qui permet de connecter plusieurs stations avec un lien ultra rapide et à petit prix. 1.5 Architecture MPLS [15] 1.5.1 Introduction à MPLS Site 1 L=18 12.3.2.125 Ingress LER LER LSR L=18 L=10921 L=21 LSR Domaine MPLS LSR LSR LSR L=3 LSR L=42 Site 2 12.3.2.125 LER Egress LER Figure 1.7 Fonctionnement du MPLS La caractéristique principale du routage classique est que la décision du prochain saut est prise indépendamment au niveau de chaque routeur parmi ceux composant le chemin de la source à la destination, en déroulant un algorithme de routage assez complexe et en analysant l'entête du paquet qui contient beaucoup plus d'informations que ne nécessiterait le choix du prochain saut. Ce processus de routage (ou relayage) se déroule en deux phases : La première consiste à classer l'ensemble de tous les paquets qui arrivent dans diérentes classes d'équivalence de relayage. Tous les paquets provenant d'un noeud 1.5. Architecture MPLS [15] 18 particulier et qui apprtiennent à la même FEC (Forward Equivalence Class = classe d'équivalence de relayage) suivront un chemin(ou un ensemble de chemins) associé(s) à cette classe d'équivalence. En eet, un routeur considère que deux paquets sont dans la même FEC si et seulement si il existe dans la table de routage de celui ci un prexe d'adresse n (/n : masque de sous réseau), tel que n soit le plus important préxe commun trouvé dans la table avec l'adresse du premier paquet et avec celle du deuxième. La seconde consiste à faire correspondre("mapper") chaque classe d'équivalence à un prochain saut qui n'est autre qu'un prochain routeur faisant partie du chemin à la destination. A chaque saut il faut réexaminer le paquet pour l'aecter à une autre classe d'équivalence. En revanche, Dans MPLS,l'aectation d'un paquet particulier à une FEC est faite une et une seule fois lors de son entrée dans le "backbone MPLS". La FEC est identiée par un nombre entier dont la longueur est xée à l'avance. Il s'agit de ce que l'on appelle "Label" ou étiquette. Quand un paquet est routé son label voyage avec lui, c'est cette information qui déterminera le saut suivant : en eet le label sert d'index dans une table qui spécie également le nouveau label à apposer sur le paquet. Hormis le routeur qui sert de point d'entrée au backbone MPLS, aucun autre routeur ne fait la moindre analyse de l'entête du paquet ni ne déroule un algorithme de routage. A partir du point d'entrée tout le routage(commutation en fait) est mené par cette permutation d'étiquettes jusqu'à la sortie du backbone MPLS. Cette commutation présente les avantages suivants : La commutation MPLS peut être eectuée par des Switchs capables d'interpréter des étiquettes et les permuter mais pas forcément capables d'analyser des entêtes de paquets de la couche réseau avec un temps de réponse borné. Dés qu'un paquet entre dans un backbone MPLS, le routeur de bordure qui le reçoit peut utiliser toute information utile extraite du paquet pour l'aecter à une FEC même si celle-ci ne provient pas de son entête. Ainsi, des paquets arrivant par des ports diérents peuvent être aectés à des FEC'S diérentes. Le routage conventionnel, lui, utilise une information et une seule extraite de l'entête. Un paquet qui entre dans un backbone MPLS par un routeur particulier peut être labellisé diéremment que si il entrait dans le même réseau par un autre routeur, par conséquent, la possibilité d'eectuer un routage suivant la source est oerte. Dans le routage IP, l'identité du routeur ne peut être inscrite dans l'entête et ne peut donc pas voyager avec le paquet. Les informations utilisées pour l'aectation d'un paquet à une peuvent être diverses et comliquées sans aucune incidence sur les routeurs qui ont la charge d'eectuer cette commutation. Parfois, il est souhaitable de forçer un paquet à suivre un chemin particulier déterminé au moment ou avant l'arrivé du paquet Dans le réseau MPLS. Ceci relève du "trac ingineering". Dans le routage conventionnel, on exige que le paquet transporte avec lui la route qu'il doit suivre. Dans MPLS on peut utiliser une étiquette sans exiger au paquet de porter avec lui l'identité du paquet de manière explicite. MPLS peut également être utilisé pour implémenter de la qualité de service ; Une étiquette sert à ce moment là à iddentier une FEC et Une classe de service. 1.5. Architecture MPLS [15] 19 1.5.2 Les bases de MPLS [15] L'architecture du réseau MPLS est construite autour des LSR (Label Switch Router) et des LER (Label Edge Router) : Les LSR le Label Switched Router est un routeur qui fait partie du domaine MPLS et qui est donc capable de fonctionner avec le protocolProtocoles de routage internee MPLS. On parle également de LER ( Label Edge Router) il s'git des routeurs de bordure, ceux par qui un paquet accède à ou quitte un domaine MPLS. Un LER est un Ingress LSR s'il est le premier routeur d'un chemin MPLS, c'est un Egress LSR s'il est le dernier d'un chemin MPLS. Les LSP le Label Switched Path est un chemin dans un domaine MPLS ; il est composé de LSR. Ces chemins sont établis grâce à protocole de distribution de labels Le Label (étiquette) Un label est un identiant qui a une siginication locale, utilisée pour identier une FEC. Un label apposé à un paquet particulier désigne la FEC à laquelle est aecté le paquet. Entête MPLS(Shim Header) PPP ETHERNET HDLC ATM ETHERNET HEADER PPP HDLC GFC MPLS HEADER HEADER HEADER VPI MPLS HEADER VCI MPLS HEADER PTI CLP HEC LABEL Figure 1.8 Entête MPLS Layer 3 Layer 3 Layer 3 DATA HEADER HEADER HEADER 1.5. Architecture MPLS [15] 20 L'entête MPLS se situe entre les entétes des couches liaison de données et réseau. Chaque paquet doit donc être capable de transporter un label. Il y a deux façons de réaliser ce transport : La première solution est celle qui est appliquée aux protocoles de la couche liaison qui peuvent transporter des labels à l'intérieur même de leur header. C'est le cas en particulier des protocoles ATM et Frame Relay (relais de trames). Dans le cas du protocole ATM , le label sera transporté dans le champ VPI/VCI du header, et dans le cas du Frame Relay, c'est le champ DLCI qui sera aecté à cette tâche. Pour les protocoles ne pouvant pas utiliser cette méthode, le label sera transporté dans le " Shim " label header qui sera inséré entre le header de la couche liaison et le header de la couche réseau. Cette technique permet de supporter la technique du label switching sur n'importe quel protocole de la couche liaison. Il est composé de quatre champs : Niveau 2 Liaison de données 20 bits Label Niveau 3 Réseau MPLS 3 bits CS 1 bit BS Niveaux supérieurs Transport et Application 8 bits TTL Figure 1.9 Entête MPLS 1. 2. 3. 4. Le champ Label (20 bits). Le champ Exp ou CoS (3 bits) pour la classe de service (Class of Service). Un bit Stack pour supporter un label hiérarchique (empilement de labels). Le champ TTL (Time To Live) pour limiter la durée de vie du paquet (8 bits). Architecture fonctionnelle D'un point de vue fonctionnement, MPLS repose sur deux plans princiaux : Plan contrôle : constitué d'un ensemble de protocoles qui contrôlent les informations de routage de niveau réseau en exploitant des protocoles tels que (OSPF, IS-IS ou BGP) et les labels grâce à des protocoles comme (LDP : Label Distribution Protocol), BGP (utilisé par MPLS VPN) ou RSVP (utilisé par MPLS TE) échangés entre les périphériques adjacents. Le plan de données : est indépendant des algorithmes de routage et d'échange de labels.Il repose sur l'utilisation d'une base appelée Label Forwarding Information Base (LFIB) pour forwarder les paquets avec les bons labels, Cette base est remplie par les protocoles d'échange de label. LIB (Label Information Base) La première table construite par le routeur MPLS est la table LIB. Elle contient pour chaque sous-réseau IP la liste des labels aectés par les LSR voisins. Il est possible de connaître les labels aectés à un sous-réseau par chaque LSR voisin et donc elle contient tous les chemins possibles pour atteindre la destination. 1.5. Architecture MPLS [15] 21 LFIB (Label Forwarding Information Base) A partir de la table LIB et de la table de routage IP, le routeur construit une table LFIB qui ne contient que les labels du meilleur prochain saut qui sera utilisé pour commuter les paquets labelisés. FIB (Forwarding Information Base) Elle appartient au plan de donnée, c'est la base de donnée utilisée pour acheminer les paquets non labelisés. Parcours d'un domaine MPLS Quand un paquet IP arrive à un ingress LER, il sera associé à une FEC. Puis, un protocole de routage sera mis en oeuvre pour découvrir un chemin jusqu'à l'egress LER . Ensuite, tous les paquets appartenant à la même FEC seront acheminés suivant ce chemin (LSP). Le routage se fait uniquement à la première étape. Ensuite tous les paquets appartenant à la même FEC subiront une commutation simple à travers ce chemin découvert. Pour que les LSR puissent commuter correctement les paquets, le Ingress LER aecte une étiquette à ces paquets (label imposition ou label pushing). Le LSR récepteur saura en consultant sa table de commutation que tout paquet entrant ayant le label L=l1 appartient à la FEC f1 et donc doit être commuté sur une sortie s1 en lui attribuant un nouveau label L=l2 (label swapping). Cette opération de commutation sera exécutée par tous les LSR du LSP jusqu'à aboutir à l'Egress LER qui supprimera le label (label popping ou label disposition) et routera le paquet dans le monde IP de façon classique L'acheminement des paquets dans le domaine MPLS sur la base de commutation de label, hormis aux extrémités. Cette commutation requiert la mise en oeuvre d'un protocole qui permet de distribuer les labels entre les LSR pour que ces derniers puissent constituer leurs tables de commutation et ainsi exécuter la commutation de label à chaque paquet entrant. Cette tâche est eectuée par "un protocole de distribution de label " tel que LDP (Label Distribution Protocol) ou RSVP-TE (ReSerVation Protocol-Trac Engineering). Construction des tables L'instruction des structures de données eectuée par chaque routeur LSR doit suivre l'algorithme ci dessous : 1.5. Architecture MPLS [15] 22 Plan de controle OSPF: 10.0.0.0/8 OSPF: 10.0.0.0/8 OSPF LDP: 10.0.0.0/8 Label 17 LDP: 10.0.0.0/8 Label 24 LDP Plan de donnes Paquet Labellise Label 17 Paquet Labellise Label 24 LFIB 24 17 Figure 1.10 élaboration des structures de données 1. élaboration des tables de routages par les protocoles de routage ; 2. allocation indépendamment d'un label à chaque destination dans sa table de routage par le LSR ; 3. enregistrement dans la LIB des labels alloués ayant une signication locale, 4. enregistrement dans la table LFIB avec l'action à eectuer de ces labels et leur prochain saut sont ; 5. Envoi par le LSR les informations sur sa LIB à ces voisins ; 6. enregistrement par chaque LSR des informations reçues dans sa LIB ; 7. Enregistrement des informations reçues des prochains sauts dans la FIB . 1.5. Architecture MPLS [15] 23 LFIB sur B Réseau Prochain saut Label Réseau Prochain saut Label 25 47 c 47 POP D 2 A IP:X LFIB sur C B Lab:25 Lab:47 C IP:X 3 D FIB sur A Réseau Prochain saut Label X B 25 E Réseau X 1 1 LIB sur B Réseau X LSR Local C Label 1 L’examen de L’IP est effectué dans la FIB; Le paquet est labéllisé. 2 L’examen du Label est effectué dans la LFIB; Le Label est commuté. 3 L’examen du Label est effectué dans la LFIB; Le Label est effacé. 25 47 Figure 1.11 Principe de fonctionnement MPLS Protocoles de distribution des Labels Nous avons vu que le label switching s'eectuait à partir des informations présentes dans les " Forwarding Tables ". Nous allons voir maintenant comment ces tables sont construites. Un protocole de distribution des labels est un ensemble de procédures par lesquelles un LSR en informe un autre des aectations label/FEC qu'il a faites. On dit que deux LSR sont en " label distribution peers " lorsqu'ils utilisent un protocole de distribution de label pour échanger leurs aectations label/FEC. L'architecture MPLS ne préconise pas l'utilisation d'un " Label Distribution Protocol " en particulier. En fait, plusieurs protocoles ont été standardisés : Protocoles existants et étendus an de supporter la distribution de labels : RSVP, RSVP-TE, BGP. Nouveaux protocoles dénis dans le but de " distribuer les labels " : Le protocole LDP LDP a été mis en place pour MPLS exclusivement dans le but de distribuer les labels entre les diérents LSR. Ce protocole présente deux grandes limitations : Contraintes posées par le protocole de routage Les Lsp établis par le protocole LDP sont contraints par le protocole de routage, car il est impossible de spécier des routes autres que celles dénies par le protocole de routage. Impossibilité de réaliser une réservation de ressources le protocole n'a aucun moyen de spécier des Paramètres pour l'agrégat de trac a acheminer sur le LSP. Il peut être souhaitable de rajouter d'autres fonctionnalités à un protocole de distribution des labels, comme par exemple le fait de pouvoir aussi sélectionner et réserver des ressources dans le réseau le long d'un LSP. Pour cela il y a deux manières de procéder : 1.5. Architecture MPLS [15] 24 Utiliser un protocole servant déjà à la réservation de ressources et l'étendre an qu'il puisse aussi faire de la distribution de labels(RSVP étendu en RSVP-TE). Utiliser un protocole servant à l'origine à la distribution de labels et l'étendre an qu'il puisse aussi faire de la réservation de ressources (LDP étendu en CR-LDP). Protocoles CR-LDP et RSVP-TE Voyons le principe des protocoles RSVP-TE et CR-LDP utilisés pour la distribution de labels. Selon le protocole utilisé, les messages transitant entre les LSR dièrent entre eux (format diérent, utilisation diérente), mais fondamentalement ces deux protocoles servent à la même chose, la distribution des labels. La demande d'établissement d'un nouveau LSP commence par l'envoi par le ELSR d'entrée d'un " Path Message " pour RSVP-TE et d'un " Label Request Message " pour CR-LDP. Ces messages sont transmis jusqu'au ELSR de sortie où le paquet est censé sortir. C'est à ce dernier ELSR que revient le choix du premier label, celui qui sera utilisé entre le dernier LSR et le ELSR de sortie. Le ELSR de sortie envoie alors le label retenu dans un " Resv Message " pour RSVP- TE et dans " Label Mapping " pour CR-LDP au LSR situé à amont. Ce dernier prend connaissance de ce message et décide à son tour du label il voudrait utiliser sur le lien le raccordant avec le LSR situé en amont. Il met à jour sa table de commutation, et envoie un " Resv Message " ou un " Label Mapping " contenant le label retenu. Et ainsi de suite, jusqu'à ce que le dernier message arrive au premier ELSR. A cet instant, le nouveau LSP est formé, car tous les LSR ont mis à jour leurs tables de commutations. Le protocole CR-LDP est une version étendue de LDP, où CR correspond à la notion de routage basé sur les contraintes des LSP . Tout comme LDP, CR-LDP utilise des sessions TCP entre les LSR, au cours desquelles il envoie les messages de distribution des étiquettes. Ceci permet en particulier à CR-LDP d'assurer une distribution able des messages de contrôle. Le constraint-Based Routing Limitation du routage classique Supposons que l'on veuille mettre en place un LSP entre A et E et un autre entre F et I. Pour ce faire, LDP et OSPF(Open Shortest Path First) seront utilisés. E C A D Routeur B Routeur Routeur Routeur F Routeur Routeur G Routeur H I Routeur Routeur Figure 1.12 Mise en place d'un LSP avec OSPF Le LSP entre A et E sera A-B-C-D-E(suivant OSPF). Le LSP entre F et I sera F-BC-D-I(suivant OSPF). La bande passante entre B et G, G et H, et H et D ne sera pas 1.5. Architecture MPLS [15] 25 utilisées. Les liens entre B et C et entre C et D, seront quant à eux sur-utilisés. Avec le routage OSPF, résultant de la minimisation des métriques, les LSP sont établis sans tenir compte de la charge du réseau. Explicit Routing Il peut être intéressant de forcer un paquet à suivre une route particulière qui est explicitement choisie au moment où le paquet entre dans le réseau (ou même avant), au lieu que cette route soit l'aboutissement du routage dynamique habituel. Ceci correspond au " Explicit Routing ". Avec " Explicit Routing ", il est possible de sélectionner une autre route pour le LSP entre F et I, celle passant par G et H. E C A D Routeur B Routeur Routeur Routeur Routeur F Routeur G Routeur H I Routeur Routeur Figure 1.13 Mise en place d'un LSP avec "Explicit Routing" Explicit Routing permet de spécier totalement ou partiellement le LSP et le problème à résoudre revient à mettre en place un LSP en minimisant les métriques et en prenant en compte les contraintes attachées à la route. Constraint-based Routing Ainsi, le problème général lié au Constraint-Based Routing est de prendre en compte toutes les contraintes attachées à chacun des LSP lors de leurs établissements. Les contraintes de route et de bande passante ne sont pas les seules contraintes pouvant être pris en compte, on trouve notamment : Anity :c'est un ensemble de contraintes administratives pour le LSP. Path Attributes : pour savoir si le LSP doit être spécié manuellement ou s'il doit être calculé dynamiquement par constraint-based routing. Set-Up Priority : pour choisir quel LSP aura les ressources si plusieurs LSP sont candidats. Holding Priority :pour décider si un LSP pourra être suspendu pour laisser les ressources qu'il utilisait pour l'établissement d'un autre LSP. Adapatability :pour permettre la commutation d'un LSP sur un chemin optimisé qui pourrait se libérer. Resilience : pour décider ou non de rerouter un LSP si le chemin emprunté devenait indisponible à la suite d'un incident par exemple. GMPLS [16] Le Generalized Multi-Protocol Label Switching (GMPLS) provient du MPLS et plus précisément des extensions portées au MPLS pour les réseaux optiques. GMPLS est destiné à traiter diérents types de technologies de transmission et de transport. Son but est donc d'intégrer les couches de transmissions au MPLS et d'obtenir une vision globale. Il fournira un plan de contrôle consolidé en étendant la connaissance de la topologie du réseau à toutes les couches et permet de réaliser le management de la bande passante. Le GMPLS consiste donc à faire converger le monde de l'optique et celui des 1.5. Architecture MPLS [15] 26 données. GMPLS est basé sur la notion de "label généralisé". Ainsi, Un label généralisé peut représenter . un brin unique de bre dans un faisseau, . une bande unique de longueurs d'ondes dans une bre, . une unique longueur d'onde dans une bande (ou une bre), . ou un ensemble de Time-slots dans une longueur d'onde (ou une bre). . Un label généralisé peut également porter un label qui représente un label MPLS générique, un label Frame Relay ou un label ATM. GMPLS est composé de trois principaux protocoles : . Un protocole de signalisation : Resource Reservation Protocol with Trac Engineering extensions (RSVP-TE) . Un protocole de routage : Open Shortest Path First with Trac Engineering extensions (OSPF-TE) . Un protocole de gestion des liens : Link Management Protocol (LMP). Les nouveaux types de commutation Les grands principes hérités du MPLS resteront les mêmes. Mais les protocoles de signalisation et de routage devront être étendus ou modiés an de supporter diérentes technologies (en particulier le besoin de s'adapter à la couche optique). Les réseaux de données et de transmission à venir seront généralement constitués des éléments suivants : . Des routeurs . Des commutateurs (switch) . Des ADM, brasseur SDH ou SONET . Des systèmes DWDM Ces réseaux et leurs éléments constitutifs pourront se servir du GMPLS comme d'un moyen d'allouer des ressources dynamiquement sur le réseau et de provisionner des connexions de bout en bout. Ils pourront obtenir un réseau optimisé en utilisant les techniques de protection, de restauration et le Trac Engineering. Le MPLS ne faisait que de la commutation de paquets sur des réseaux constitués essentiellement de routeurs et de commutateurs, MPLS ne comprenait que des interfaces Packet Switch Capable (PSC). Le GMPLS, quant à lui, pourra supporter d'autres types de commutations. Le GMPLS sera donc constitué des types d'interfaces suivants : Packet Switch Capable (PSC), reconnaît les limites des paquets et des cellules et prend ses décisions d'acheminement à partir du contenu de l'en-tête du paquet ou de la cellule Time Division Multiplex Capable (TDM), achemine les données des time slots Lambda Switch Capable (LSC), achemine les données à partir des longueurs d'onde sur lesquelles les données sont transportées Fiber Switch Capable (FSC), achemine les données à partir de la position réelle des données dans l'espace physique 1.6. La Qualité de service(QoS) [11, 18, 20] 27 1.6 La Qualité de service(QoS) [11, 18, 20] 1.6.1 Dénition La qualité de service peut être appréciée diéremment selon les acteurs intervenant dans une infrastructure de réseaux. Le besoin de la qualité de service est fortement ressenti par un utilisateur nal quand Une application X s'exécute lentement, quand la diusion d'une vidéo tourne au ralenti, quand la qualité des appels téléphoniques(voix sur IP) est mauvaise, peut être moins bonne que celle des appels via satellite. En eet,l'évolution actuelle des réseaux (débits, services, architecture) et l'arrivée des applications multimédia dans les foyers comme dans les entreprises (visioconférence, VoIP, audio, vidéo, jeux en réseaux, . . . ) ont démontré les limites du protocole IP qui ore un service au mieux (Best Eort), celui-ci étant devenu obsolète pour répondre aux exigences de ces applications en matière de débit et de délai et pour résoudre le problème de congestion(qui provoque de la gigue et la perte de paquets) en cas de trac intense. D'autre part, Les opérateurs réseau revendiquent la capacité de contrôler le partage de la bande passante sur un lien particulier pour plusieurs classes de trac. ils voudraient pouvoir diviser le tracFlorek2003 en plusieurs classes et assigner à chacune une part de la bande passante disponible sur ce lien dans un contexte de surcharge du réseau, et diérer l'usage de la bande passante non utilisée ; une certaine souplesse ,donc, dans la gestion de la bande passante. Les diérentes classes peuvent correspondre à des groupes d'utilisateurs diérents ou à des familles de protocoles diérentes par exemple. On peut distinguer deux grandes problématiques pour la gestion de la QoS dans un réseau IP : La gestion des phénomènes de congestion est un point fondamental pour garantir la QoS des ux. En eet, les mécanismes de gestion des QoS n'auront un impact eectif que lorsque le réseau sera chargé. L'ordonnancement (ou scheduling) des paquets est aussi un mécanisme fondamental pour garantir la QoS des ux transportés. Ceci est évident si on considère des ux hétérogènes, les rafales de certaines connexions pouvant perturber le trac temps réel même s'il n'y a pas congestion. De ce fait, bien que la mise en ÷uvre d'ordonnancements autres que FIFO soit dicile sur des routers à très haut débit, les équipementiers réseau fournissent de plus en plus des mécanismes plus sophistiqués réalisant un scheduling prenant en compte les classes de trac. 1.6.2 Critères de la Qualité de service Les principaux critères qui permettent de juger de la qualité de service d'un système sont : Débit (en anglais bandwidth), parfois appelé bande passante par abus de langage. Gigue (en anglais jitter) : elle représente la uctuation du signal numérique, dans le temps ou en phase. Latence, délai ou temps de réponse (en anglais delay) : elle caractérise le retard entre l'émission et la réception d'un paquet. Perte de paquet (en anglais packet loss) : lorsque les les d'attente sont pleines, les paquets sont tout simplement rejetés. 1.6. La Qualité de service(QoS) [11, 18, 20] 28 1.6.3 Types d'applications Les applications n'ont pas toutes les mêmes besoins en termes de qualité de service. L'IETF a proposé une classication dans son premier modèle de qualité de service : Applications "temps réel" Leur caractéristique est que les données reçues après un certain délai ne sont plus utilisables par l'application réceptrice. Parmi celles-ci, on distingue : Applications "temps réel" non tolérantes : pour celles-ci, lorsque des données sont perdues, le service ne peut être rendu (contrôle de procédé, vidéo haute qualité, etc.). Applications temps réel tolérantes : l'application peut supporter une perte de données au prix d'une perte de qualité. Deux comportements de l'application sont distingués : Applications temps réel adaptatives : l'application détecte la perte de données et s'adapte à celle-ci. Applications temps réel non adaptatives : l'application ne détecte pas la perte de données. Applications élastiques Elles peuvent toujours attendre des données arrivant en retard. Elles utilisent celles-ci immédiatement. On distingue trois catégories : Interactif par rafales, comme Telnet, Interactif par trains, comme FTP, Asynchrone par trains, comme SMTP. A titre d'exemple, le tableau ci-dessous présente quelques applications et leur exigence en qualité de service. débit délai perte gigue interactive bas bas aucun pas important batch bas bas aucun pas important fragile bas bas aucun pas important voix bas bas aucun pas important video bas bas aucun pas important 1.6.4 Mécanismes de la qualité de service La gestion de la QoS dans les réseaux IP un ensemble de traitements supplémentaires réalisés soit au niveau de la source de trac (terminal émetteur) soit dans diérents noeuds relais du réseau. Ces traitements peuvent être du : Mise en forme du trac(trac shaping) : Il consiste à introduire du délai entre les émissions de paquets de manière à éviter ou limiter les eets du trac en rafales. Le trac policing est une opération qui consiste à vérier que le trac émis est bien conforme à la description qui en a été faite par la source. Le mécanisme de buer management, ou gestion de buer, consiste à éliminer des paquets en cas de congestion du buer d'une interface de sortie de manière sélective, en fonction des paramètres de QoS associés aux ux. L'opération de trac scheduling consiste à ordonnancer la transmission des paquets 1.6. La Qualité de service(QoS) [11, 18, 20] 29 présents dans les buers de l'interface de sortie en fonction des paramètres de QoS associés aux ux. Cette opération peut être eectuée par diérents algorithmes tels que le Leaky bucket (le plus simple) ou le Token Bucket (Principe du Sceau à Jetons). Le traitement diérentié de paquets est un concept relativement ancien dans l'Internet. Il est présent dès l'origine du protocole IPv4 avec le champ ToS, mais une dénition trop vague a limité son déploiement. Ce concept a été re-déni pour orir un traitement adapté aux besoins très hétérogènes des applications. 1.6.5 Modèles de la Qualité de service L'ATM Forum (Asynchronous Transfer Mode), et le Frame-relay Forum ont établi un standard QoS de niveau liaison de données (couche deux du modèle OSI) dans les réseaux ATM et Frame-relay. l'IETF, l'IUT-T (International Union for Telecommunications, Telecommunication) lui s'est proposé de conserver le protocole IP et d'étudier son extension par des mécanismes de QoS. Modèle Best eort C'est le modèle qui a prédominé dans l'Internet jusqu'à ce jour, il désigne l'absence de qualité de service. Ce mode de fonctionnement a tout de même l'avantage : d'une grande souplesse puisqu'il n'y a besoin d'aucune correspondance avec les ux qui transitent. de permettre des applications très variées. d'être moins coûteux et plus facile à maintenir qu'un réseau orant de la qualité de service. dans ce modèle , la gestion du phénomène de congestion est faite de manière réactive par le mécanisme de fenêtre glissante du protocole TCP. Modèle "Integrated Services(INTSERV) [6, 39, 42] Il dénit des classes de service et propose d'assurer les qualités de service associées par la réservation de ressources dans le réseau.Le modèle IntServ dénit une architecture capable de prendre en charge la QoS sans toucher au protocole IP. IntServ utilise pour cela un protocole spécique de signalisation appelé RSVP (Resource ReSerVation Protocol) 1. Le modèle Le modèle est basé sur la dénition de classes de service et la réservation de ressources dans les diérents éléments du réseau. Ces ressources permettent d'assurer une certaine qualité de service pour les ots identiés ayant requis cette qualité de service. 2. classes de service Les classes de service dénies dans IntServ sont les suivantes : Guaranteed : débit et temps de transit étroitement dénis ; à destination des applications temps réel non tolérantes. 1.6. La Qualité de service(QoS) [11, 18, 20] 30 Controlled-load : performance équivalente à celle donnée par un réseau sans qualité de service non chargé, mais sans engagement sur les résultats ; pour les applications temps réel tolérantes. Best-eort : service normal ; pour les applications élastiques. 3. Les réservations Les réservations de ressources destinées à permettre d'assurer la qualité de service seront associées à des ots.Un ot est associé à une suite repérable de datagrammes qui résultent de l'activité d'un même utilisateur et qui demandent la même qualité de service, par exemple un ux vidéo circulant entre deux postes de travail. Les routeurs doivent donc maintenir des tables d'états associées à ces ots. Les réservations peuvent se faire de façon statique (par ex. conguration manuelle) ou dynamique. Dans ce dernier cas, on devra utiliser un protocole de réservation de ressources et RSVP constitue une proposition de protocole de ce type. 4. Fonctionnement du protocole RSVP RSVP est utilisé par une application pour demander au réseau d'assurer une certaine qualité de service pour un ot donné. Ce même protocole sera utilisé par les routeurs du réseau entre eux pour établir et maintenir les tables d'états liées au ot. RSVP comme identie des ots unidirectionnels et est conçu pour supporter les échanges multicast aussi bien que unicast. La réservation de ressources est initialisée par le site destinataire du ot. L'émetteur du ot envoie régulièrement des messages de contrôle "path" vers le ou les destinataires. Chaque destinataire répond par un message "resv" dans lequel il indique les critères de la qualité de service qui lui convient. Les ressources nécessaires, si disponibles, sont réservées par les routeurs sur le chemin destinataire vers l'émetteur. Dans le cas d'un ot multicast, les diérentes réservations concourantes sont agrégées. Dans le cas d'absence de message "path" pendant un certain temps, les ressources réservées sont libérées. Les messages "path" et "resv" sont transmis comme des datagrammes ordinaires en "best-eort". Modèle Dierentiated Services (DIFFSERV) [7, 9, 24, 25] L'avantage de DIFFSERV est qu'il n'y a plus nécessité de maintenir un état des sources et des destinations dans les core routers, d'où une meilleure montée en charge en nombre d'utilisateurs (scalabilité) Principes de fonctionnement Le modèle DiServ apporte une QoS diérenciée pour chaque classe de service (constituée d'une agrégation de micro-ux) selon un contrat prédéni (SLA, Service Level Agreement) avec l'émetteur des ux de données. Ce contrat dénit un ensemble de paramètres (bande passante garantie, pic de données acceptés, comportement en cas de non-respect du contrat. . . ) ainsi que les micro-ux associés à chaque classe de service. On associe ensuite une SLA à un domaine DiServ. Un 1.6. La Qualité de service(QoS) [11, 18, 20] 31 domaine DiServ dénit un ensemble de n÷uds réseau appliquant une politique de QoS commune. Le modèle DiServ s'articule autour de deux types de traitements : 1. les traitements complexes eectués dans les n÷uds d'extrémité. 2. les traitements simples des n÷uds intermédiaires. Les n÷uds d'extrémité sont les premiers équipements réseau auxquelles sont reliés les ux. Chacun d'eux comporte un ensemble de modules appliquant des mécanismes complexes de QoS (classication, marking, metering, shaping, dropping). Les n÷uds intermédiaires ont des comportements plus statiques mais aussi plus simples que l'on regroupe sous le terme de PHB (Per-hop behaviour). Architecture Les éléments de l'architecture DiServ sont : Le champ DSCP Le modèle DiServ a été conçu pour être utilisé avec la couche réseau IP. Il utilise le champ TOS (Type Of Service) déni initialement dans le protocole IPV4 mais peu utilisé jusqu'à présent et fait partie intégrante du protocole IPV6 (champs Trac Class). Le champ TOS a été renomé en DSCP (Dierentiated Service Code Point) lors du passage au modèle diServ. La signication des bits est la suivante 1. Les bits 0 à 2 : Class Selector 2. Les codes DSCP de type xxx000 (ou x a la valeur 1 ou 0) correspondent aux classes de services principales. Ceux-ci seront associées aux PHB qui permettront le traitement diérencié des ux dans les routeurs intermédiaires. Plus la valeur de codepoint est élevée, plus le ux correspondant sera prioritaire. 3. Les bits 0 à 5 : DSCP (Dierentiated Service CodePoint) Ce champ étend les sélecteurs de classes (bits 0 à 2) via 3 bits supplémentaires. On obtient ainsi une granularité supplémentaire (8 sous-classes par sélecteur de classe). 4. Les bits 5 à 7 : CU (Currently Unused) Ce champ est actuellement inutilisé et donc ignoré par les routeurs intermédiaires. Il a pour but de faciliter les extensions futures du protocole. SLA (Service Level Agreement) Le but de la QoS est d'orir un service approprié pour chaque classe. Ce service est déni au sein d'un contrat appelé SLA entre un client (l'émetteur des ux de la classe ou un autre domaine DiServ) et un opérateur. Lors d'un contrat SLA pour une classe donnée, on dénit le type de service oert ainsi qu'un ensemble de règles pour le conditionnement du trac . Les domaines DiServ Un domaine DiServ correspond à une zone contigue de n÷uds conforme à au modèle DiServ et ayant une politique commune de policing et de PHB. 1.7. Ingénierie du trac 32 Domaine Diffserv X Domaine Diffserv Y Routeurs d’extrmite Routeurs intermediaires Routeurs intermediaires Figure 1.14 Principe de fonctionnement MPLS On associe généralement un domaine DiServ à un opérateur de service ou un intranet. L'organisation responsable du domaine est aussi la garante du respect du contrat SLA établi avec les émetteurs des ux. Ceci implique une adéquation entre les ressources mises à disposition par l'organisation et les besoins (bande passante, latence. . . ) du contrat SLA. Si des n÷uds réseau à l'intérieur d'un domaine ne sont pas conformes à DiServ, les résultats sont alors imprévisibles. Les régions DiServ Ce terme regroupe un ensemble de domaines DiServ appliquant des contrats de services SLA prédénis. Ces domaines DiServ eectuent sur leurs n÷uds d'extrémité les conditionnements de trac nécessaires (TCA) à la correspondance entre leurs PHB et ceux des autres domaines. 1.7 Ingénierie du trac L'ingénierie de trac (Trac Engineering) est une collection d'objets de mécanismes et de protocoles utilsés conjointement sur un réseau an de le mettre dans un état de fonctionnement dit optimal. C'est un problème d'optimisation mathématique qui tend à réaliser les objectifs suivants : 1. veiller à assurer la qualité de service , régie par un contrat, pour les utilisateurs du réseau. 2. Pour les opérateurs : il s'agit de faire un usage optimal des ressources du réseau. Un système ingénierie de trac peut être vu comme un système de contrôle en boucle, et les ajustements apportés par ce système peuvent être considérés à diérentes échelles de temps : 1. Le long terme (de quelques semaines à quelques mois ) : L'estimation et la prévision du trac futur et la plannication de la capacité qui s'en suit se fait pour une période 1.7. Ingénierie du trac 33 relativement longue. En eet, la fourniture de routeurs et des liens entre ces routeurs est coûteuse et prend du temps. Ces mises à jour sont opérées par semaine, par mois ou voir par des années. 2. Le moyen terme (de quelques minutes à quelques jours ) : plusieurs cotrôles tombent dans cette catégorie, par exemple, l'ajustement des paramètres des protocoles de routage internes et/ou externes, l'établissement ou l'ajustement de LSP dans un réseau MPLS an d'éviter à des classes de ux des routes congestionnées...etc 3. Le court terme (de quelques picoseconds à quelques minutes) : Cette catégorie concerne les évenements et les traitements au niveau du paquet. L'observation se fait dans un intervalle de temps de l'ordre de quelques RTD (Round Trip Delay = le temps séparant l'émission d'un paquet et l'arrivée de son accusé de réception). Ces mécanismes sont utilisés pour contrôler et/ou signaler la congestion aux extrémités d'une communication de telle façon qu'elles puissent ajuster la vitesse du trac injecté dans le réseau. 1.7.1 Ingénierie de trac sans MPLS Il existe plusieurs méthodes d'ingénierie de trac dans les réseaux IP. Une solution consiste à manipuler les métriques des protocoles de routage IP. En eet, le routage IP repose sur le plus court chemin vers une destination donnée. Tout le trac vers une même destination ou un même point de sortie du réseau emprunte le même chemin. Il arrive que le chemin IP soit congestionné alors que des chemins alternatifs sont sous- utilisés. L'ingénierie de trac avec IP (IP-TE) représente une solution pour dépasser les limitations du routage IP. Elle calcule un ensemble de chemins pour répondre aux demandes de la matrice de trac sans saturer les liens, et calcule des métriques pour satisfaire ces chemins. Ensuite, un partage de charge oert par le protocole de routage peut être utilisé pour permettre à un routeur de partager équitablement la charge entre tous les chemins de coût égal. Un routage optimal (selon un critère d'optimisation donné) nécessite la détermination des coûts sur chaque lien qui répondent au critère d'optimisation. Un large ensemble de solutions a été proposé pour l'IP-TE .Toutes ces solutions consistent à optimiser les poids des liens utilisés par la suite par le protocole de routage. Cette ingénierie de trac basée sur l'optimisation des métriques IP peut bien fonctionner uniquement sur des petites topologies avec un faible nombre de routeurs d'accès. Changer les coûts des liens sur tous les chemins pour une grande topologie reste très dicile à mettre en oeuvre tenant compte des risques d'instabilité, des problèmes de convergence IGP et des problèmes liés aux boucles de routage. A n de gérer l'aspect dynamique du réseau, on a proposé des solutions qui prennent en compte les scénarios de cas de panne dans leréseau. on a considéré dans leur solution des cas de pannes panne qui peuvent se produire et également le changement de la matrice de trac. Cette solution simule des cas de changement périodique du trac qui se produisent pendant un jour. Cette solution reste limitée car un changement brusque de la matrice de trac, ainsi que les cas de pannes multiples, restent diciles à prédire. Aussi les solutions d'IP-TE ne s'appliquent généralement pas lorsque l'on a des chemins 1.8. Conclusion 34 de capacités diérentes. En eet, les routeurs ne sont pas capables de faire un partage de charge tenant compte de la capacité des liens. 1.7.2 Ingénierie de trac avec MPLS L'application de MPLS à l'ingénierie de trac, appelée MPLS-Trac Engineering (MPLSTE), représente une alternative pour répondre aux limitations de l'IP-TE. Elle Ore essentiellement un routage explicite entre deux points du réseau. Ceci consiste à Laisser une entité spécialisée décider des chemins et procéder à leur établissement dans le réseau. Le routage explicite assure une bonne souplesse pour optimiser l'utilisation des ressources. En plus de cette propriété fondamentale (le routage explicite), MPLS-TE ore aussi la fonctionnalité de re-routage rapide (MPLS Fast Re-route). Gette fonctionnalité, permet, en cas de panne dans le réseau, de garantir un temps de réparation très court (moins de 100 ms). MPLS-TE permet d'établir des LSP pour l'ingénierie de trac, appelés TE-LSP. Les TE-LSP sont routés de façon explicite en prenant compte des contraintes de trac (bande passante, etc.) et les ressources disponibles dans le réseau. Ges TE-LSP peuvent être utilisés par la suite pour transporter du trac entre les routeurs d'accès du réseau. MPLS-TEassure des fonctions d'ingénierie de trac telles que l'optimisation de l'utilisation des ressources, la garantie de la qualité de service (QoS) et le re-routage rapide après une panne de noeud ou de lien dans le réseau. MPLS-TE permet de résoudre le problème de partage de charge. 1.8 Conclusion Cette étude nous a permis d'aborder les principales technologies participant ou susceptibles de participer à la mise en oeuvre D'un un réseau NGN. Nous avons notamment insisté sur le protocole MPLS et ses capacités d'interopérabilité avec les techonologies de coeur de réseau (ATM,FRAME RELAY, WDM, SDH,..etc.). Nous avons également insisté sur la carence de l'IP en matière d'ingénierie de trac et le rôle de MPLS pour pallier à ce défault. Chapitre 2 Optimisation globale et les d'attente Nombreux sont ceux parmi la communauté de la recherche opérationnelle qui se sont intérêssé et s'intérêssent toujours à la résolution des problèmes d'optimisation par des méthodes de recherche locale [4,13,31,32]. L'inconvénient de ces méthodes c'est de ne pas pouvoir armer que l'optimum trouvé est bien l'optimum global. On peut même être loin de celui-ci. Nous nous intérêssons dans ce chapitre à la recherche de l'optimum global par des méthodes "Branch and Bound"(ou algorithme par séparation et évaluation). Un algorithme par séparation et évaluation, est une méthode générique de résolution de problèmes d'optimisation, et plus particulièrement d'optimisation combinatoire ou discrète. C'est une méthode d'énumération implicite : toutes les solutions possibles du problème peuvent être énumérées mais, l'analyse des propriétés du problème permet d'éviter l'énumération de larges classes de mauvaises solutions. Dans un bon algorithme par séparation et évaluation, seules les solutions potentiellement bonnes sont donc énumérées. Dans ce chapitre, nous allons d'abord expliquer le fonctionnement des méthodes par séparation et évaluation dans le cas de la programmation en nombres entiers à l'aide des problèmes du sac à dos et celui du voyageur de commerce, ensuite nous expliquerons le fonctionnement de la méthode dans le cas général et nous présenterons un algorithme (QUADOPT) basé sur les techniques de relaxation linéaire et d'analyse par intervalles. Nous terminons le chapitre par un exposé succint des notions les plus importantes des les d'attente, notamment celles liées à la modélisation du temps d'attente dans un routeur MPLS. 2.1 Cas de la programmation linéaire en nombres entiers [10] Un problème de programmation linéaire en nombres entiers est un problème de programmation linéaire standard avec des contraintes d'intégrité, c'est à dire qu'on exige aux variables d'être entières. Formellement, si n désigne le nombre de variables, c'est un problème de la forme : 35 2.1. Cas de la programmation linéaire en nombres entiers [10] 36 Maximiser (ou minimiser) C.X Ax ≤ b x≥0 Sous les contraintes x∈N Alors qu'il existe des algorithmes polynomiaux pour résoudre les problèmes de programmation linéaire en variables réelles (l'algorithme du simplexe n'en est pas un), ce qui établit que ces problèmes sont polynomiaux, le problème de décision associé au problème de programmation linéaire en variables entières précédent est NP-complet. Parmi les conséquences du fait qu'un problème est NP-complet gurent les propositions suivantes : 1. On ne connait pas d'algorithme polynomial pour résoudre ce problème. 2. Si l'on connaissait un tel algorithme, alors on aurait automatiquement des algorithmes polynomiaux pour résoudre tous les problèmes de la classe NP, c'est à dire à l'heure actuelle un trés grand nombre de problèmes répertoriés, venant d'horizons divers et pour certains trés étudiés. 3. Avoir prouvé qu'un problème est NP-complet a des conséquence sur la façon dont on cherche à le résoudre. 4. Lorsque l'on doit traiter des problèmes de grande dimension, on peut s'attendre à ce que les algorithmes exactes ne reussissent pas à donner la solution optimale faute de temps. On applique alors des méthodes dites heuristiques, qui sont censées donner, en un temps raisonnable, une approximation de la solution ( sans que l'on puisse parfois dire beaucoup sur la façon dont elles approchent l'optimum). 5. Pour les algorithmes exactes, on fera appel à des méthodes par séparation et évaluation, appelées aussi méthodes arborescentes ou encore branch and bound. 2.1.1 Problème du sac à dos Supposons que nous désirions constituer le contenu d'un sac à dos et que nous ayons envie d'y mettre n objets de volumes respectifs v1 , v2 , ..., vn . Ayant constaté que la somme des volumes des n objets était supérieure au volume V du sac à dos, nous aectons à chaque objet une utilité u1 , u2 , ..., un . Nous modélisons alors le problème en introduisant n variables de décision x1 , x2 , ..., xn , à valeurs dans {0, 1}, la valeur 0 attribuée à la variable xi signiant que nous n'emporterons pas l'objet i, la valeur 1 que nous le prenons. Si nous voulons avoir le sac le plus utile, nous voyons que nous sommes amenés à résoudre le problème suivant : Max n X uj xj j=1 avec les contraintes Pn vj .xj ≤ V xj ∈ {0, 1} pour 1 ≤ j ≤ n j=1 Il s'agit là d'un problème de programmation linéaire en variables bivalentes (on dit aussi en "0 − 1") à une seule contrainte connu sous le nom de problème du sac à dos 2.1. Cas de la programmation linéaire en nombres entiers [10] 37 (knapsack problem en anglais). Cependant,par abus de langage, on parlera encore de problème de sac à dos (ou parfois de problème de sac à dos généralisé) lorsque la contrainte reste unique mais que les variables peuvent être entières positives ou nulles et non plus nécessairement bivalentes. Première heuristique Pour résoudre le problème du sac à dos (généralisé) on peut avoir l'idée de "relâcher les contraintes d'intégrité" ; c'est à dire résoudre le problème en variables réelles, puis d'arrondir les solutions obtenues en prenant leurs parties entières par défault. Nous allons voir que cette méthode ne peut être considérée que comme une heuristique sur l'exemple suivant : Maximiser 10x1 + 8x2 + 5x3 aveclescontraintes 6x1 + 5x2 + 4x3 ≤ 9 i, j ∈ N pour 1 ≤ j ≤ 3 La relaxation des contraintes d'intégrité conduit à un problème de programmation linéaire dont la résolution immédiate par la méthode du simplexe donne x∗1 = 1.5, x∗2 = 0, x∗3 = 0, etz ∗ = 15. La méthode des arrondis donne x∗1 = 1, x∗2 = x∗3 = 0, etz ∗ = 10. alors que le problème admet la solution x∗1 = 0, x∗2 = 1, x∗3 = 1, etz ∗ = 13 dont nous verrons qu'elle est optimale. Seconde heuristique Une approche de style qualité/prix incite à un classement des variables dans l'ordre décroissant des rapports utilité/volume. On peut alors examiner les variables dans cet ordre et choisir de donner, à la variable examinée, la plus grande valeur entière permettant de satisfaire la contrainte conte tenu des choix déjà faits. Un tel algorithme est dit "glouton" parcequ'on traite les variables les unes aprés les autres en prenant des décisions que l'on ne remet pas en cause. Pour notre exemple, les rapports en question sont 5/3 pour x1 , 8/5 pour x2 et 5/4 pour x3 . L'ordre induit par l'examen des rapports est donc x1 , x2 , x3 Compte tenu de la contrainte. La plus grande valeur possible pour x1 est 1. Ayant donné la valeur 1 à x1 , on voit qu'on doit donner la valeur 0 à x2 et à x3 . On retrouve ici la même solution que celle fournie par la méthode précédente( mais c'est un hasard). Nous voyons aussi que pour l'une comme pour l'autre on ne peut parler que d'heuristique. 2.1.2 Branch And Bound pour le problème du sac à dos Ce type de méthode s'applique à la résolution de problèmes d'optimisation combinatoire avec un grand nombre de solutions envisageables et, en particulier, à la résolution de problèmes de programmation linéaire en nombre entiers où l'on peut dénir la notion de solution réalisable, c'est à dire de solution satisfaisant les contraintes. Nous allons associer à cette méthode une arborescence dont les sommets correspondent à des ensembles de solutions réalisables, la racine de l'arborescence contenant l'ensemble de toutes ces solutions réalisables. L'expansion de cette arborescence est régie selon quatre directionss : 2.1. Cas de la programmation linéaire en nombres entiers [10] 1. 2. 3. 4. 38 un principe de séparation, un principe d'évaluation, l'utilisation d'une borne , et une stratégie de développement. Principe de séparation Le mot séparation représente le fait que nous partageons, en fonction d'un certain critère, l'ensemble des solutions réalisables contenues dans un sommet de cette arborescence (ensemble que nous ne connaissons pas explicitement) en sous ensembles, ceux -ci devenant dans l'arborescence les ls du sommet considéré. La seule exigence dans ce partage est que nous ne perdions ni n'ajoutions de solutions(autrement dit, l'union des sous-ensembles associés aux ls d'un sommet doit être égale à l'ensemble associé à ce sommet). Si on n'appliquait que le principe de la séparation, celle-ci serait eectuée pour tout sommet contenant plus d'une solution. Nous allons illustrer le principe de séparation seul à partir du problème du sac à dos. Pour cet exemple nous pouvons appliquer les critères de branchement suivants : 1. Une première séparation sera eectuée selon les valeurs de x1 ; comme d'aprés la contrainte , x1 ne peut prendre que les valeurs 0 ou 1, nous séparons l'ensemble de toutes les solutions associées à la racine en deux sous-ensembles : l'un contient toutes les solutions pour lesquelles x1 vaut 1 ; 2. une deuxième séparation sera faite de la même façon suivant les valeurs possibles de x2 , à savoir 0 ou 1 ; 3. enn une troisième séparation aura lieu selon les valeurs possibles de x3 , 0, 1 ou 2 , sauf pour le sommet vide correspondant aux choix x1 = x2 = 1. Le dessin suivant montre ce qu'est l'arborescence obtenue pour notre exemple. Les carrés y représentent les cas pour lesquels les trois variables sont entièrement déterminées. Les sommets de l'arborescence barrés d'une croix en sont les sommets vides. Il sut pour connaître la solution optimale, de calculer la valeur de la fonction objectif pour toutes les feuilles non vides de l'arborescence obtenue. Cette méthode peut être améliorée pour éviter l'examen de certaines branches. Il existe, en eet, deux raisons qui permettent de ne pas développer un sommet de l'arborescence : lorsque l'on sait résoudre directementle problème correspondant à ce sommet. Le principe d'évaluation et la borne peuvent fournir de telles indications. 2.1. Cas de la programmation linéaire en nombres entiers [10] X1=1 X1=0 X2=0 X3=0 X3=1 X3=2 X2=1 X3=0 X3=1 X3=2 39 X2=0 X3=0 X2=1 X3=1 X3=2 impossible: contrainte violée Figure 2.1 Principe de séparation Principe d'évaluatin et utilisation de la borne Dans un problème d'optimisation écrit sous forme de maximisation d'un certain objectif,la borne correspond à une valeur qu'on sait atteindre pour l'objectif, à l'aide d'une certaine solution réalisable et qui est donc par dénition un minorant du maximum. Ainsi, pour le problème du sac à dos abordé plus haut, les heuristiques précédentes ont montré que 10 est une borne inférieure du maximum cherché. Toujours dans le cas où on cherche un maximum, évaluer un sommet, c'est déterminer un majorant de l'ensemble des valeurs de l'objectif correspondant aux solutions contenues en ce sommet. Ainsi, ayant évalué un sommet S , on saura que pour l'ensemble des solutions correspondant à S , on ne peut pas faire mieux que la valeur de l'évaluation. Une évaluation d'un sommet est dite exacte si la valeur donnée par l'évaluation est atteinte par un élément de l'ensemble associé au sommet. Pour l'exemple précédent, la relaxation des contraintes d'intégrité avait permis d'obtenir la valeur 15. Ceci est donc un majorant du maximum cherché en valeurs entières( en eet, quand on relâche les contraintes d'intégrité, le domaine des solutions réalisables grandit et le maximum dans ce domaine ne peut être que supérieur ou égal à celui du domaine en valeurs entières) et on peut attribuer cette valeur comme évaluation de la racine. Cette évaluation n'est pas exacte, car la solution qui donne 15 n'est pas à composantes entières. La borne et l'évaluation permettent de ne pas développer un sommet S dans les deux cas suivants (toujours pour une maximisation) qui viennent donc s'ajouter au cas précé- 2.1. Cas de la programmation linéaire en nombres entiers [10] 40 dent (les contraintes ne sont pas satisfaites) : 1. L'évaluation de S est inférieure ou égale à la borne, 2. l'évaluation de S est exacte ; dans ce cas, si cette évaluation est strictement supérieure à la borne(si non on est dans le cas précédent), on a exhibé une solution meilleure que celle associée à la borne : on modie donc la borne et on se retrouve dans le cas précédent. On voit qu'on a interêt à calculer une bonne borne et à concevoir une fonction d'évaluation assez ne an d'éliminer le plutôt possible le plus de branches possible. Mais en même temps, ces calculs doivent pouvoir être eectués en un temps raisonnable. Dans deux cas on ne peut pas séparer S 1. On sait que toutes les solutions contenues dans S sont au plus aussi bonnes qu'une solution que l'on connait déjà (par comparaison entre l'évaluation de S et la borne courante). 2. S est vide ou on connait la meilleure des solutions contenues dans S , soit parce que l'évaluation est exacte, soit parcequ'une méthode directe a permis de conclure pour ce sommet. Stratégie de développement Le quatrième ingrédient consiste à déterminer la façon dont on va construire l'arborescence, c'est à dire dans quel ordre on va appliquer le critère de séparation aux sommets de l'arborescence. Dans une première stratégie appelée "en profondeur", on peut faire une construction en profondeur d'abord en descendant dans les branches jusqu'à ce que l'on trouve un sommet que l'on peut éliminer, auquel cas on remonte pour redescendre dans une autre direction (s'il en reste). Si l'arborescence était connue explicitement, cette construction correspondrait à l'application d'un parcours en profondeur à cette arborescence. Cette façon de procéder présente plusieurs avantages, principalement au niveau de la place mémoire : l'encombrement en place mémoire est souvent relativement peu important, puisqu'il ne faut conserver que la description de la branche qu'on explore(il n'est pas nécessaire de conserver la description complète de l'arborescence) ; elle possède également des avantages au niveau des accés disques(en eet bien souvent on ne peut traiter tout le problème, vu sa taille en mémoire centrale) ; enn elle permet plus facilement d'exploiter, quand il y'en a, des informations disponibles au niveau du sommet qu'on examine et au moins partiellement utilisables pour les ls de celui-ci. On peut aussi commencer par séparer les sommets qui ont l'évaluation la plus grande(pour une maximisation) en suspectant que ce sont eux qui contiennent la solution optimale ; cest dans le sommet de plus grande évaluation qu'on a l'espoir, justié ou non, de trouver la meilleure solution. Cette stratégie de type "meilleur d'abord", peut, pour certains problèmes, être plus rapide du fait qu'on essaie, à chaque itération, d'exploiter la direc tion qui semble la plus prometteuse ; en revanche, la gestion de l'arborescence n'est pas triviale et consomme généralement beaucoup de place mémoire. 2.1. Cas de la programmation linéaire en nombres entiers [10] 41 Enn, on peut envisager une exploration en largeur d'abord, mais cette méthode est trés rarement implémentée pour des questions d'ecacité et d'encombrement de la mémoire. Application au problème de sac à dos : Nous pouvons reprendre l'étude de l'ar- borescence précédente en utilisant comme fonction d'évaluation la résolution du simplexe en variables réelles, qui est immédiate à eectuer dans le cas d'une seule contrainte : en eet , il est facile de se convaincre que, lorsque l'on applique l'algorithme du simplexe à un problème à une seule contrainte, si on choisit comme variable entrante la variable de choix de plus petit indice, les variables étant indicées dans l'ordre décroissant des rapports utilité/volume, on obtient l'optimum en une itération . La stratégie retenue sera celle du parcours en profondeur d'abord. Enn, On rappelle que la borne obtenue à l'aide des heuristiques vaut 10. On obtient alors l'arborescence ci-dessous, en supposant que l'on a procédé à l'évaluation du sommet x1 = 0, x2 = 1 avant d'entamer la séparation du sommet x1 = x2 = 0, ce qui nous a permis d'améliorer la borne grâce à une évaluation de 13, qui était exacte. Les sommets de l'arborescence sont numérotés dans l'ordre selon lequel on les rencontre lors du développement en profondeur d'abord. S1 15 X1=1 X1=0 S5 S2 X2=1 X2=0 X2=1 X2=0 S3 S6 S4 13 évaluation exacte 11.25 13.75 évaluation < borne impossible: contrainte violée 10 X3=0 X3=1 X3=2 Figure 2.2 Application au problème du sac à dos L'évolution du sommet S3 est obtenue par la solution x3 = 1, en plus des choix x1 = 0 et x2 = 1 . c'est donc une évaluation exacte. Par conséquent, il est inutile de développer ce sommet et on interrompt l'exploration de cette branche . De plus, la valeur obtenue , réalisable , est meilleure que la borne ;on change donc celle-ci , qui passe de 10 à 13. Renonçant au développement de S3, on remonte à S2 pour examiner, s'il en existe, les autres choix relatifs à x2 , ce qui nous conduit à S4 avec x2 = 0 . on obtient alors 2.1. Cas de la programmation linéaire en nombres entiers [10] 42 11.25 comme évaluation de S4. Celle-ci étant inférieure ou égale à la nouvelle borne, on ne développe pas S4 et on remonte en S2 puis en S1, puisque aucun autre choix n'est possible pour x2 au niveau de S2. Quand on arrive en S5, la contrainte fait qu'il n'y a qu'une seule possibilité viable pour x2 : 0, ce qui donne S6. Les choix pour x3 , au niveau de S6, conduisent soit à des solutions non réalisables, soit à un sommet S7 d'évaluation exacte mais moins bonne que la borne actuelle. On interrompt donc l'exploration de S6, on remonte en S5 où il n'y a plus de prolongement réalisable ,puis en S1 où, de même, il n'y a plus de prolongement à envisager. On a donc terminé : le maximum cherché vaut 13 et est atteint par x2 = x3 = 1 . 2.1.3 Application au problème du voyageur de commerce Rappelons que le problème du voyageur de commerce est la recherche, dans un graphe complet valué, d'un cycle hamiltonien (c'est-à-dire passant une fois et une seule par tous les sommets ) de valuation totale minimum. Ce problème est NP-dicile (plus précisément, le problème de reconnaissance associé est NP-complet). Nous allons montrer qu'il fait partie de la classe des problèmes de programmation linéaire en variables 0 − 1, dont il est d'ailleurs un représentant extrêmement célèbre. Nous décrirons ensuite une méthode par séparation et évaluation permettant de le résoudre. Forme linéaire en 0 − 1 du problème du voyageur de commerce Considérons le graphe complet Kn = (X, E) à n sommets , c'est-à-dire le graphe d'ordre n où tous les sommets sont adjacents deux à deux. On suppose de plus qu'on a déni une valuation sur l'ensemble E des arêtes de ce graphe, autrement dit une application P de E dans R que l'on appelle poids , le poids d'une arête (u, v) étant noté P uv . Associons à chaque arête (u, v) de Kn une variable bivalente Xuv qui vaut 1 si on garde l'arête (u, v) pour constituer le cycle hamiltonien, 0 sinon. On peut représenter la contrainte de constituer un cycle hamiltonien à l'aide des contraintes suivantes : 1. Pour tout sommet v , la somme des valeurs des variables associées aux arêtes ayant v comme extrémité est égale à deux ,ceci traduisant le fait que dans un cycle hamiltonien tout sommet est de degré deux ; 2. Pour tout sous-ensemble Y de X autre que X ,le nombre d'arêtes ayant ses deux extrémités dans Y est strictement plus petit que |y| ; cette condition implique que L'ensemble des arêtes gardées ne se décompose pas en plusieurs cycles. Toutes ces contraintes s'expriment bien linéairement par rapport à l'ensemble des variables du problème ,comme le montre la forme suivante : M ax X (u,v)∈E Puv .Xuv 2.1. Cas de la programmation linéaire en nombres entiers [10] 43 P ∀u ∈ X, Pv∈X Xuv = 2 avec les contraintes ∀Y ⊂ X avec Y 6= X, (u,v)∈E,u∈Y,v∈Y Xuv = 2 ∀(u, v) ∈ E, Xuv ∈ {0, 1} Dénition d'une fonction d'évaluation Soit G un graphe dans le quel on cherche un cycle hamiltonien de poids minimum . une évaluation possible d'un sommet de l'arborescence d'une procédure par séparation et évaluation est justiée par les remarques triviales suivantes : Une chaîne constitue un arbre particulier ; la chaîne obtenue en supprimant d'un cycle hamiltonien de G un sommet quelconque x0 et les deux aêtes qui lui sont adjacentes est un arbre couvrant de G − x0 : elle est donc de poids supérieur ou égale au poids d'un arbre minimum couvrant G − x0 ; dans un cycle hamiltonien , tout sommet à un degré égal à 2 ; la somme des poids des deux arêtes d'un cycle hamiltonien adjacentes à un sommet x0 xé est supérieure ou égale à la somme des poids des deux arêtes les plus légères incidentes à x0 dans G. Choisissant de façon arbitraire un sommet x0 ,le poids d'un cycle hamiltonien quelconque est donc supérieur ou égal à la somme des poids des deux arêtes les plus légères adjacentes à xo plus le poids d'un arbre de poids minimum couvrant G − x0 . cette quantité constitue un minorant du poids d'un cycle hamiltonien optimal et pourra par conséquent constituer une fonction d'évaluation pour l'arborescence (l'évaluation doit en eet fournir un tel minorant puisque le problème de départ est un problème de minimisation) . Description d'une méthode par séparation et évaluation Nous pouvons mainte- nant décrire, parmi d'autres, une méthode par séparation et évaluation utilisant l'évaluation déni ci-dessus. On suppose qu'une borne a été calculée au préalable, par exemple à l'aide d'une des méthodes exposée dans les deux derniers chapitre de ce livre (faute de mieux on peut toujours partir d'un cycle hamiltonien choisis au hasard ,mais la borne qui en découlera risque d'être assez mauvaise). Choisissons une fois pour toutes un sommet x0 , an de procéder à l'évaluation décrite ci-dessus. Comme toujours, la racine de l'arborescence contient toutes les solutions réalisables possibles, c'est-à-dire ici l'ensemble de tous les cycles hamiltoniens du graphe. Arrivés à un sommet S de l'arborescence (y compris la racine), évaluons-le. Si l'évaluation de S est supérieure ou égale à la borne (attention, nous sommes en train de résoudre un problème de minimisation..), nous ne développons pas S et S est abandonné : nous savons déjà faire au moins aussi bien. Sinon, construisons le graphe partiel H correspondant à l'évaluation en ajoutant les deux arêtes adjacentes à x0 de moindre poids dans le graphe courant G à celles d'un arbre de poids minimum couvrant G − x0 : H est un graphe connexe d'ordre n possédant n arêtes. Si H est un cycle hamiltonien , par dénition l'évaluation de S est exacte ; on peut alors abandonner S : on ne fera pas mieux, en ce qui concerne les solutions contenues dans S , que ce qu'on vient d'obtenir ; en outre, si cette évaluation exacte est inférieure à la valeur actuelle de la borne, on remet celle-ci à jour. Si H n'est pas hamiltonien , puisqu'il est 2.2. Cas de la programmation non linéaire mixte MINLP [28, 29] 44 connexe et comporte 2 arêtes, c'est qu'il contient au moins un sommet de degré strictement supérieur à deux. Considérons un tel sommet et les i(i ≤ 3) arêtes e1 , e2 , ei auxquelles il est adjacent dans H . Pour dénir le critère de séparation , remarquons , puisqu'un cycle hamiltonien est un graphe dans lequel tous les sommets ont un degré égal à 2 , qu'on ne perd aucune solution en considérant successivement celles qui ne contiennent pas e1 , puis celles qui ne contiennent pas e2 ,..et ainsi de suite jusqu'à l'arête ei ; le sommet S de l'arborescence sera donc séparé selon i branches. Chacune d'entre elles correspondant à l'interdiction d'une des i arêtes ek (1 ≤ k ≤ 1). On traduit la contrainte " ne pas contenir l'arête ek " par le fait de mettre le poids de ek à l'inni dans le graphe courant G . 2.2 Cas de la programmation non linéaire mixte MINLP [28, 29] Dans ce genre de problèmes les variables prennent leurs valeurs Dans R. La fonction objectif et les contraintes d'égalité et d'inégalités sur les variables sont quelconques(pas forcément linéaires). De manière formelle, un problème P peut être exprimé sous la forme : P ≡ M inimiser Sous les contraintes f (x) gj (x) = 0, j = 1..k gj (x) ≤ 0, j = k + 1..m b ≤ x ≤ b̄ où f : Rn → R est la fonction objectif et gj : Rn → R représentent les contraintes du problème. L'ensemble des points (x1 , x2 , ..., xn ) satisfaisant les m contraintes gj est appelé espace faisable. La résolution de P consiste à trouver un minimum global. C'est à dire un point x∗ de l'espace faisable pour lequel la relation f (x∗ ) ≤ f (x) est vériée pour tous les points faisables x. Un point faisable x = (x1 , x2 , ..., xn ) est un minimum local (ou solution locale) s'il existe un ε petit tel que 0 0 0 0 0 0 ∀x = (x1 , x2 , ..., xn ), ∀i, |xi − xi | < ε, f (x) ≥ f (x ) Malgrés l'intérêt indiscutable du principe "Branch and Bound" sa mise en oeuvre dans les problèmes continus présente des dicultés majeurs. Son application dans ce genre de problèmes est qusiment prohibitive. Cependant, ce principe resuscite l'intérêt de nouveau grâce aux progrés récents enregistrés dans les techniques de relaxation linéaire et dans les techniques d'analyse par intervalles. En eet, l'association de "Branch and Bound" à ces nouvelles techniques a permis de 2.2. Cas de la programmation non linéaire mixte MINLP [28, 29] 45 développer des méthodes trés ecaces de résolution globale. QUADOPT [28] est un algorithme basé sur l'association de ces techniques. Principe de l'algorithme 1. A partir d'un problème P , On détermine une relaxation linéaire R qui contient forcément toutes les solutions de P . 2. La relaxation linéaire est construite de manière à simplier la résolution (on peut par exemple utiliser l'algorithme du simplexe). 3. La solution L obtenue de R représente un minorant pour le minimum global O (L ≤ O). 4. Un algorithme de recherche locale est utiisé pour déterminer un minimum local U qui est un majorant de l'optimum O (U ≥ O). La gure 2.3 est une illustration graphique de l'encadrement de l'optimum par L et U . y 0 x Figure 2.3 Illustration d'une étape de résoulution par BB 5. Lorsque U − L est aussi petit que l'on veut ou ne peut être rendu plus petit, on considère l'optimum global atteint. Dans le cas contraire, l'espace de recherche courant est séparé en deux sous espaces qui vont correspondre à deux sous problèmes indépendants P1 et P2 . Le test d'arret qui permet de donner la solution globale risque de nous induire en erreur lorsqu'on travaille sur les ottants. La gure 2.3 est une illustration de ce problème expliqué dans [28]. La communauté d'analyse par intervalles travaille sur la rigueur de la résolution et s'est plus particulièrement intéressée au développement de méthodes pour prouver la faisabilité des solutions. cet aspect est pris en charge dans l'algorithme détaillé ci-dessous. 2.2. Cas de la programmation non linéaire mixte MINLP [28, 29] 46 Figure 2.4 Principe de fonctionnement MPLS Algorithm 1 L'algorithme QUADOPT Function QUADOPT(IN X , ε ; OUT S , [f ∗ , f¯∗ ]) ; L ← X; S ← φ; (f ∗ , f¯∗ ) ← (−∞, +∞); while w([f ∗ , f¯∗ ]) > ε do 00 0 0 00 X ← X tel que f X 00 = min(f X 00 : X ∈ L); L ← L − X ; f X 0 ← min(f¯X 0 , f¯∗ ); 0 0 X ← Reduce(X ) ; 0 f X 0 ← LowerBound(X ) ; 0 (f¯X 0 , Xp , P roved) ← U pperBox(X ) ; if Proved then S ← S ∪ Xp ; end if if X 6= φ then 0 0 0 0 0 0 (X1 , X2 ) ← Split(X ); L ← L ∪ (X1 , X2 ); end if if L = φ then (f ∗ , f¯∗ ) ← (+∞, −∞); else 00 00 (f ∗ , f¯∗ ) ← (min(f X 00 : X ∈ L), min(f¯X 00 : X ∈ S)) end if end while L'algorithme reçoit, en entrée, l'ensemble X de tous les domaines de toutes les variables du problème d'optimisation ainsi que la précision ε souhaitée pour le calcul de l'optimum global. En sortie, il délivre un encadrement [ f ∗ , f¯∗ ] de l'optimum et l'ensemble S des boites qui encadrent les solutions prouvées faisables. Dans la partie initialisation, l'ensemble des boites à traiter L recçoit la boite X (le domaine des variables tout entier), l' encadrement de l'optimum c'est R tout entier,alors que les solutions prouvées faisables ne sont pas encore connues. Le traitement suivant est répété tant que la précision ε n'est pas encore atteinte : 0 (ligne 6) On choisit dans la liste L des boites à traiter la boite X ayant la plus petite borne inférieure de la fonction objectif, et on l'élimine de cet ensemble. 2.3. Modélisation du délai par les les d'attente [21, 26, 34, 41] 47 (ligne 7) La borne supérieure de la fonction objectif dans le domaine X est calculée 0 en évaluant l'expression : min( f¯X 0 , f¯∗ ) (ligne 8) La fonction Reduce(X 0 ) permet de réduire le domaine (la boite X 0 ) en utilisant les techniques de ltrage provenant de la programmation par contraintes. (ligne 9) la fonction LowerBound( X 0 ) 0 détermine une borne inférieure rigoureuse de la fonction objectif dans le domaine X en utilisant un programme linéaire obtenu de la relaxation linéaire du problème initial dans ce domaine. 0 (ligne 10) La fonction UpperBox( X ) correspond à la recherche d'un minimum 0 local dans X en utilisant les techniques de Hansen pour manipuler les systèmes sous-déterminés. Si celui-ci existe, la nouvelle boite située entre la borne inf trouvée précédemment et la borne sup(le minimum local trouvé) est ajoutée dans l'ensemble des solutions prouvées faisables. (lignes 11,12,13,14) si la recherche du minimum local échoue, ça veut dire qu'il 0 n' existe pas de solutions faisables dans X , auquel cas cette boite est éliminée. On 0 élimine également la boite X si sa borne inf est supérieure à f¯∗ . 0 si non, l'espace de recherche X est scindé en deux sous espaces en choisissant l'une des variables du problème et en divisant son domaine en deux sous domaines donnant naissance à deux nouvelles boites qui seront ajoutées à l'ensembles des boites à traiter L. (ligne 18) à chaque ronde de traitement (choix et traitement d'une boite), l'algorithme met à jour les deux bornes de l'intervalle susceptible de contenir le minimum global : f ∗ reçoit la plus petite borne inférieure des boites restantes L(min(f X 00 : 00 X ∈ L)), f¯∗ reoitlapluspetitebornesuprieuredesboitesprouvesf aisablesS(min(f¯X 00 : 00 X ∈ S)) L'algorithme s'arrête lorsque la précision ε est atteinte. 2.3 Modélisation du délai par les les d'attente [21,26, 34, 41] 2.3.1 Dénition Un système le d'attente peut être décrit par : Un ensemble de clients qui arrivent dans un service, attendent(généralement) que le service leur soit rendu et quittent le service enn. Dans le cas d'un réseau, le service est assuré par un routeur MPLS et les clients sont des paquets IP de taille variablequi attendent leur routage sur le chemin LSP approprié. La description formelle d'une le d'attente consiste à spécier trois parties : le processus aléatoire qui régit l'arrivée des clients, le mécanisme du service (nombre de serveurs, processus aléatoire régissant le temps de service,..) et une discipline pour la gestion du service en fonction de l'arrivée des clients.. 2.3. Modélisation du délai par les les d'attente [21, 26, 34, 41] 48 2.3.2 Processus d'arrivée on suppose que les arrivées ne dépendent pas du nombre de clients présents dans la le, on le caractérise alors par une distribution de probabilité qui régit le temps qui sépare deux arrivées succéssives. Dans le cas des paquets qui arrivent dans un routeur MPLS leur taille est diérente, on considère alors une taille moyenne de paquets λqui représentra le paramètre λ (fréquence des arrivées) de la loi de Poisson. La capacité de la le peut être limitée auquel cas les clients peuvent ne pas pouvoir rejoindre la le d'attente si non elle est considérée de capacité innie. C'est un paramètre qui caractérise également les les d'attente. Les valeurs possibles de ce paramètre sont [1, ∞] . 2.3.3 Processus de service Le processus de service est également décrit par une distribution de probabilté. l'hypothèse d'indépendance par rapport au nombre de clients présents dans la le est également maintenue. La loi de probabilité qui régit le service est une loi exponentielle de paramètre µ qui représente la vitesse moyenne à la quelle le service est eectué. Dans le cas d'un routeur MPLS ce paramètre est le débit moyen disponible pour l'acheminement d'un paquet. Le serveur peut ne pas être unique, cette valeur fait partie du modèle décrivant la le d'attente et elle varie dans [1, ∞] . 2.3.4 Discipline de la le d'attente Nous devons également décrire la discipline de la le d'attente, c'est à dire la manière avec laquelle les clients rejoignent et quittent cette le d'attente. Nous distinguons les politiques suivantes : FCFS : First Come First Served LCFS : Larst Come First Served SIRO : Service in Random Order PR : Priority ... 2.3.5 Notation de KendallLee Pour spécier les les d'attentes avec leurs paramètres décrits ci-dessus on adopte la notation suivante : A/B/X/Y /Z A : est la distribution des arrivées dans le système B : est la distribution du temps de service X : Le nombre de serveurs Y : Restriction sur la capacité du serveur (en nombre de clients) si non c'est l'inni Z : La discipline dans la le d'attente. quand Y = ∞ et Z = F CF S ils sont omis tous les deux. Exemple : au lieu de M/M/1/∞/F CF S on écrit M/M/1 2.4. Conclusion 49 2.3.6 Mesures de performance d'une le d'attente La performance des les d'attente est est évaluée selon l'un es paramètres suivants : Temps moyen d'attente d'un client le nombre moyen de clients dans le système temps d'occupation du serveur/temps d'inoccupation du serveur Pour ce qui est du réseau, Nous nous intéressons particulièrement aux les d'attente gérées au niveau des routeurs. Il s'agit de les d'attentes de la forme M/M/1 : M indique que le processus qui régit les arrivées est un processus markovien (loi de poisson) identique à celui qui régit le temps de service (loi exponentielle). La mesure qui nous intéresse particulièrement est le délai. Délai (engendré par un routeur) =délai dans la le d'attente + délai de propagation(dépend de la distance du lien)+ temps de traitement (calcul du CRC,...)+ 2.4 Conclusion Les problèmes connus dits de "sac à dos" et de "voyageur de commerce" nous ont permis de présenter la méthode par séparation et évaluation dans le cas de la programmation linéaire en nombre entiers. Nous avons ensuite présenté la méthode dans le cadre de l'optmisation globale et de variables continues. En n de chapitre, nous avons présenté les les d'attentes. C'est l'essentiel des outils de modélisation et d'optimisation auquels on a eu recours dans ce travail. Dans le chapitre suivant nous aborderons le modèle de réseau objet de l'optimisation. Chapitre 3 Modele de reseau Introduction Dans ce chapitre nous étudions le modèle mathématique pour l'optimisation de "layout" dans un réseau à base de routeurs MPLS décrit dans [4]. Nous avons apporté plus d'explications et d'enrichissements là où nous avons jugé utile de le faire. Le réseau physique est un coeur de réseau (Backbone) MPLS fournissant des lignes de transmissions reliant des noeuds. Ces lignes de transmission ont des capacités physiques associées. conformément aux techniques de trac ingeneering dans le cadre du MPLS, nous identions les noeuds par des LSR (Label Switched Router) débutant et nissant des LSP (Label Switched Path) à travers lequel le trac est mené de la source à la destination. Les LSP peuvent être établis manuellement ou en utilisant des protocoles de signalisation tels que CR-LDP ou RSVP-TE. Les LSP sont établis au dessus des lignes de transmission reliant les noeuds, une part de la capacité disponible leur est allouée. [4] 3.1 Eléménts du modèle De manière formelle, le réseau physique est représenté par un graphe orienté G = (X, U ) où X est l'ensemble des sommets 1, 2, 3........., N (lequels sommets représentent des routeurs capables de fonctionner avec le protocole MPLS dans le réseau physique)net U est l'ensemble des arcs orientés 1, 2, 3.........., M correspondant aux liens dans ce réseau( c'est à dire des lignes de transmission de quelque nature que ce soit : bre optique, paire torsadée ou autre). 3.1.1 Les liens Le lien i est une ligne de transmission qui a une capacité Ci , qui correspond à la bande passante ou le débit maximal sur ce lien. C est donc une matrice unicolonne (vecteur de dimension M ) représentant le vecteur capacité. Il représente les débits maximaux supportés par l'ensemble des liaisons. 50 3.1. Eléménts du modèle 51 C= c1 c2 ··· ··· cM (3.1) 3.1.2 Les chemins On suppose que chaque paire de noeuds est reliée par un ou plusieurs chemins correspondant aux diérents LSP pouvant être établis entre les deux routeurs (LSR) correspondant dans la technologie MPLS. Les paires de noeuds (m, n) sont indexés par i = 1, 2......Q avec Q = N (N − 1) le nombre total de paires de noeuds. Pour chaque paire de noeuds q = (m, n) on identie une ressource demandée par la variable dq , qui consiste, en fait, en le débit requis (ou devant être alloué) pour cette paire de noeuds. Cette demande peut être satisfaite via dirents chemins acycliques kq qui est le nombre total de chemins LSP potentiels reliant m à n. le débit demandé sera donc réparti sur un sous ensemble des diérents chemins LSP qui convergeront vers la même destination( une partie des chemins est utilisée seulement, suivant le résultat de l'optimisation). Ces chemins sont indexés par a1q , a2q , ......., akq q . Chaque chemin akq peut être représenté par un vecteur indéxé par les arcs dont les composantes sont akq,i tels que akq,i = 1 si le chemin akq contient l'arc i et akq,i = 0 sinon. Nous ne considérons que les chemins acycliques ; aucun d'entre eux ne doit traverser plus d'une fois le même noeud ou lePmême arc. On peut représenter les K = Q q=1 kq chemins entre toutes les paires de noeuds comme une matrice a11,1 · · · ak1 ··· 1,1 a1 · · · ak1 · · · 1,2 1,2 A= . . .. .. .. .. . . k1 1 a1,1 · · · a1,M · · · ··· ··· ··· ··· ... .. . a1Q,1 a1Q,1 .. . · · · · · · a1Q,M akQ Q,1 akQ Q,1 .. ... . kQ · · · aQ,M ··· ··· (3.2) Cette matrice peut être représentée de manière plus compacte par : A= A1 .. . . . . . A2 .. · · · .. Aq .. · · · · · · .. AQ (3.3) où Aq est la matrice d'incidence arcs-chemins correspondant aux Kq chemins reliant la paire de noeuds q . 3.1. Eléménts du modèle 52 3.1.3 Les coûts associés aux chemins W est la matrice unicolonne representant le vecteur de dimension K contenant les poids(coûts) wqk associés aux chemins akq . Ces poids représentent des coûts, laissés à l'appréciation des opérateurs Télécom. Ca peut correspondre au nombre de liens constituant le chemin si on veut associer le coût à la complexité du réseau. En eet, on considère que le "layout" est d'autant plus complexe que ne le sont les chemins qui composent celui-ci W = w11 ··· w1k1 .. . wi1 ··· wiki .. . 1 wQ ··· k wQQ (3.4) 3.1.4 Les demandes Le trac IP peut être considéré à deux niveaux de granularité diérents : paquet et ot [1, 23]. L'étude du processus stochastique décrivant l'arrivée des paquets a montré une forte disparité suivant les diérentes échelles de temps : court terme, moyen terme et long terme. Par conséquent l'utilisation du sceau à jetons pour décrire son comportement n'est pas adapté. D'où le recours à considérér le trac entre une paire de noeuds plutôt au niveau des ots de paquets ou des agrégats de ots. Un ot peut être déni comme une suite de paquets générés par la même application entre une paire de noeuds(source-destination) et proches les uns des autres temporellement. Des mesures dans le backbone Internet ont montré que le trac sur ses liens est plus ou moins prévisible : L'intensité du trac présente des cycles de longues périodes d'utilisation intense suivies de longues périodes de faible utilisation. Cette périodicité suggère une modélisation de l"intensité du trac par un processus stochastique. L'utilisation des ots permet de mieux caractériser la demande et la QOS requise. la demande est donc représentée par le vecteur : d1 d2 . D = .. . .. dQ (3.5) 3.1. Eléménts du modèle 53 3.1.5 Les ots par chemin Un arc (lien) donné est traversé par des chemins LSP pouvant être établis entre des paires de noeuds diérentes ; ces ots convergents sur cet arc ne doivent pas dépasser la capacté de l'arc. Autrement dit la somme des ots alloués à chacun de ces chemins (traversant ce lien) doit être inférieure ou égale à la capacité de cet arc. Le dimensionnement du réseau conformément à une fonction objectif fournie par l'opérateur fera,en général, usage de plusieurs chemins reliant chaque paire de noeuds pour satisfaire la demande. Chaque chemin de l'ensemble des chemins reliant une paire de noeuds particulière se verra attribuer une partie de la demande (débit) requise pour cette paire de noeuds. Cette valeur est le résultat de l'optimisation de la topologie virtuelle étant donnée la topologie physique. La somme des ots alloués aux diérents chemins reliant une paire de noeuds donnée doit être égale à la demande. Supposons que le ot alloué au chemin akq est noté fqk . le vecteur représentant le ot global est une matrice unicolonne : F = f11 ··· f1k1 .. . fi1 ··· fiki .. . fQ1 ··· k fQQ (3.6) Soit R = (rq,i ) la matrice d'incidence demande-chemin de dimension QxK telle que : rq,i = 1 si i ∈ [k1 + k2 + ..... + kq−1 + 1, k1 + k2 + ..... + kq−1 + kq ] 0 si non (3.7) avec 1 ≤ q ≤ Q et 1 ≤ i ≤ K 3.1.6 La contrainte de satisfaction de la demande La somme des ots traversant les chemins reliant la paire de noeuds q doit être égale à la demande. ce qui s'écrit : 3.1. Eléménts du modèle 54 R.F = D c'est la contrainte sur la demande. 3.1.7 La contrainte sur la capacité Un arc (lien) donné est traversé par des chemins reliant des paires de noeuds diérentes ; la somme des ots alloués à chacun de ces chemins (incluant cet arc) doit être inférieure ou égale à la capacité de cet arc. c'est la contrainte sur la capacité des liens. Soit xi la valeur de la somme des ots traversant le lien i pour 1 ≤ i ≤ M et X la matrice unicolonne de dimension M. x1 x2 . X = .. . .. (3.8) xM Cette contrainte s'écrit alors : X = A.F ≤ C 3.1.8 La contrainte sur le délai par chemin Aucun chemin k parmi l'ensemble de tous les chemins reliant une paire de noeuds donnée q qui se voit attribuer un ot fqk > 0 ne doit dépasser un délai ( θq ) de bout en bout autorisé pour cette paire de noeuds. hkq M X λakq,i ≤ θq , 1 ≤ q ≤ Qet1 ≤ k ≤ Kq c − xi i=1 i où hkq est une variable binaire indiquant si le chemin akq est utilisé ou pas. H est une matrice unicolonne dénie par : 3.1. Eléménts du modèle 55 H= h11 ··· hk11 .. . h1i ··· hki i .. . h1Q ··· k hQQ (3.9) avec hkq = 1 0 si fqk > 0 si non 3.1.9 La contrainte de débit maximal Une borne sup est prévue pour une paire de noeuds donnée q , on n'autorise pas plus de bande passante que δq . La contrainte s'écrit alors : fqk ≤ hkq .δq 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq 3.1.10 Domaines des variables hkq indique si un chemin k reliant une paire de noeuds q correspondant à un LSP est utilisé ou non, lacontrainte sur cette variable s'écrit : hkq ∈ {0, 1} 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq fqk indique le ot(le débit) alloué sur un chemin k reliant une paire de noeuds q correspondant à un LSP si celui-ci est utilisé. Cette variable est trés liée à hkq . lacontrainte sur cette variable s'écrit : fqk ≥ 0, 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq 3.1.11 La fonction objectif Le coût d'opérations pour de larges réseaux est lié à la complexité de celui-ci. On dénit la complexité d'un "Layout" comme le nombre de liens nécessaire au transport d'une certaine matrice de demandes D. Autrement dit, les coûts des opérations et de la maintenance liés à la quantité de chemins à établir et maintenir lorsque le "layout" est en place. 3.1. Eléménts du modèle 56 D'habitude, les fonctions objectifs utilisées pour l'optimisation du "layout" tendent à minimiser certaines mesures pour la performance du réseau (généralement des fonctions du délai total sur le réseau ou la charge sur les liens). Les "layout" obtenus par ces fonctions vont tenter de distribuer les ots sur les chemins de manière à équilibrer les charges sur ceux-ci menant à une variation faible du délai d'un lien à un autre. Les modèles proposant ces fonctions objectifs [14,22,27] supposent un coût proportionnel à l'utilisation de la capacité. Ce qui n'est pas de l'avis des opérateurs qui considèrent que les coûts de déploiement de la capacité ont été déja pris en compte dans la phase de plannication. La question réelle est donc : une fois la topologie du réseau physique est donnée, quel dimensionnement pour le réseau en termes de "layout" et de ots. Il s'agit donc de réduire la complexité, on doit alors minimiser une fonction objectif de la forme : Q kq X X Minimiser ! hkq wqk q=1 k=1 Cette fonction objectif tendra à minimiser la somme des variables binaires (relatives au choix ou non des diérents chemins entre les paires de noeuds) pondérée par les coûts de ces chemins. La conguration (ou l'établissement) de ces chemins engendrent donc un coût pour l'opérateur et qui est justement représenté par les valeurs de wqk . Par conséquent, l'optimisation va aller dans le sens de minimiser le nombre de chemins qui receveront les ots constituant la matrice de demandes. Ceci aura pour eet de voir le délai de bout en bout des chemins reliant diérentes paires de noeuds présenter une disparité élevée par rapport à la moyenne. ce qui va accentuer le déséquencement des paquets à l'arrivée (au niveau du noeud récepteur). En eet, dans une stratégie par paquet,ceux-ci vont emprunter des chemins ,avec des délais de bout en bout trés diérents, ils vont arriver dans le désordre total, ce qui impose un reséquencement des paquets. L'eet est moindre dans une stratégie par ot. An de minimiser cette disparité, la fonction objectif suivante fait apparaître un terme qui prend en compte le délai de bout en bout global du layout. Minimiser α Q kq X X hkq wqk + β q=1 k=1 Q kq X X q=1 M X λakq,i k hq c − xi i=1 i k=1 ! Le deuxième terme de la somme en l'occurence Q kq X X q=1 k=1 hkq M X λakq,i c − xi i=1 i provient de la modélisation du délai d'attente global dans le réseau par la théorie des les d'attente. En eet, le délai nécessaire pour traverser un lien donné reliant deux noeuds est modélisé par une le d'attente de type M/M/1 [21, 26, 41]. 3.1. Eléménts du modèle 57 Il est obtenu de la manière suivante : pour chaque paire de noeuds et pour tous les chemins LSP retenus pour cette paire, on comptabilise les délais moyens sur chaque arc composant ce LSP. La minimisation de ce deuxième terme permet de tenir compte de la charge sur l'ensemble des liens du réseau et permet de produire des "layouts" qui tendent à équilibrer la distribution de la charge sur le réseau tout en gardant une complexité réduite. α et β permettent de contrôler l'importance des deux termes l'un par rapport à l'autre. Le paramètre λ quant à lui représente une taille moyenne des paquets. 3.1.12 Les coûts des chemins Les coûts associés aux chemins wqk peuvent être utilisés par les opérateurs pour aner l'évaluation le "layout". En particulier, les coûts évalués en nombre de sauts minimisent une fonction du nombre de liens utilisés. En mettant les coûts des arcs à 1, on minimise le nombre de chemins et on favorise les chemins ayant le moins d'arcs. wqk = M X akq,i , 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq i=1 3.1.13 Formulation du problème Etant donné un réseau physique constitué de routeurs MPLS et une matrice de trac (des paquets ou des ots d'octets nécessitant un certain débit entre chaque paire de noeuds). Le problème est de trouver un ensemble de chemins et une allocation de ots sur ces chemins de façon à optimiser un certain coût en garantissant une certaine qualité de service( en particulier le délai de bout en bout et la disponibilité d'un débit minimum pour chaque paire de noeuds). En plus de la matrice de trac D, on suppose donnés les éléments suivants : A La matrice indiquant tous les chemins du réseau et les arcs leur appartenant. C Vecteur capacité décrivant la capacité maximale de chaque arc du réseau. ∆ Vecteur débit maximum autorisé sur chaque chemin reliant toutes les paires de noeuds. Θ Vecteur délai maximum autorisé sur chaque chemin reliant toutes les paires de noeuds. W les poids(coûts) associés aux diérents chemins. Le problème d'optimisation se resume alors de la manière suivante : Minimiser α W.H + β t Q kq X X q=1 k=1 Sous les contraintes : A.F ≤ C R.F = D hkq M X λakq,i c − xi i=1 i 3.2. Nature du problème hkq 58 M X λakq,i ≤ θq , 1 ≤ q ≤ Qet1 ≤ k ≤ Kq c − xi i=1 i fqk ≤ hkq .δq 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq hkq ∈ {0, 1} 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq fqk ≥ 0, 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq Dans la partie expérimentation, ce problème sera référencé par : PNL 3.2 Nature du problème Les matrices A et R et les vecteurs unicolonnes D et C sont des constantes : A représente l'ensemble des chemins possibles entre toutes les paires de noeuds possibles du réseau, R indique quels chemins relient quelles paires de noeuds, D est la matrice des demandes et C le vecteur capacité. Les variables du problème sont : hkq (qui indiquent si un chemin donné (k) reliant une paire de noeuds donnée (q) est utlisé dans la solution optimale ou pas) sont entières bivalentes. fqk (qui indiquent la quantité de ot alloué sur un chemin donné (k) reliant une paire de noeuds donnée (q) si celui-ci est retenu dans la solution optimale) sont continues. Les contraintes : L' ensembles des contraintes relatives au délai de bout en bout est non linéaire : hkq M X λakq,i ≤ θq , 1 ≤ q ≤ Qet1 ≤ k ≤ Kq c − xi i=1 i la contrainte sur le débit maximal autorisé par paire de noeuds fqk ≤ hkq .δq 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq est linéaire. la contrainte de positivité et de bivalence des hkq hkq ∈ {0, 1} 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq est linéaire la contrainte de positivité des fqk Gressier − Soudan − 1995fqk ≥ 0, est linéaire 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq 3.3. Conclusion 59 La fonction objectif : Le terme t W.H c.a.d Q kq X X ! hkq wqk est linéaire q=1 k=1 Le terme Q kq X X q=1 k=1 hkq M X λakq,i c − xi i=1 i ! est non linéaire globalement, la fonction objectif est non linéaire. La fonction objectif et une partie des contraintes sont non linéaires, une partie des variables est continue l'autre est entière ; il s'agit donc d'un probmlème MINLP(Mixed Integer Non Linear Programing). Le nombre de variables total du problème est de 2K , où K est le nombre de chemins total du réseau. Ce nombre augmente exponentiellement avec la taille de celui-ci. 3.3 Conclusion Le modèle mathématique développé dans ce chapitre correspondant au problème de détermination d'un "layout" optimisé sur un réseau physique, montre qu'il s'agit d'un problème NP-Complet. Le problème inhérent est de trouver l'optimum en un temps borné. Les solutions envisageables dans ce cas, sont des solutions approchées qui font l'impasse sur diérents aspects du modèle. Les solutions obtenues sont plus ou moins acceptables selon l'interprétation qu'on en fait dans le problème réel modélisé. Dans le chapitre quatre nous discuterons les solutions proposées dans [4] ainsi que celles que nos propositions. Deuxième partie Contributions 60 Chapitre 4 Ranement du modèle et linéarisation Cette partie est consacrée à notre conribution, d'une part en proposant une alternative pour la fonction objecif, d'autre part dans la méthode de résolution. En eet, au lieu de chercher un minimum local par des méthodes de recherche approchées, la linéarisation de la fonction objectif va nous permettre d'améliorer le temps de recherche en appliquant l'algorithme QUADOPT [28] qui est un algorithme de recherche du minimum global, La linéarisation permettant d'améliorer considérablement le temps de recherche. Nous présentons les deux démarches de linéarisation que nous avons adoptées ainsi que le modèle stochastique implémenté pour la génération de matrices de test. 4.1 Le modèle nonlinéaire étudié Dans le chapitre précédent, la problématique de dimensionnement du réseau MPLS a été formulée comme suit : Minimiser α W.H + β t Q kq X X q=1 k=1 hkq M X λakq,i c − xi i=1 i (4.1) A.F ≤ C R.F = D hkq M X λakq,i ≤ θq , 1 ≤ q ≤ Qet1 ≤ k ≤ Kq c − xi i=1 i fqk ≤ hkq .δq 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq hkq ∈ {0, 1} 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq fqk ≥ 0, 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq Ce modèle est nonlinéaire. Les travaux de Becker ont porté sur l'utilisation du solveur MINLP [17] permettant de résoudre ce modèle en fournissant une solution approchée. 61 4.2. Linéarisation du modèle 62 L'inconvénient évident de cette résolution réside dans la qualité de la solution fournie qui peut être éloignée de la solution optimale. Justement, on propose ici de faire appel à des solveurs d'optimisation globale garantissant l'optimalité de la solution. Dans le chapitre suivant, nous ferons appel au solveur BARON [36]. Problème de référence la fonction objectif la plus utilisée traditionnellement dans l'optimisation des réseaux est celle qui minimise le délai de bout en bout exclusivement. An de voir comment varie l'optimum aprés avoir introduit un deuxième terme dans la fonction objectif, Nous avons également traité ce problème pour s'en servir comme référence. Le modèle est donc le suivant : Minimiser Q kq X X hkq q=1 k=1 M X λakq,i c − xi i=1 i A.F ≤ C R.F = D hkq M X λakq,i ≤ θq , 1 ≤ q ≤ Qet1 ≤ k ≤ Kq c − x i i i=1 fqk ≤ hkq .δq 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq hkq ∈ {0, 1} 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq fqk ≥ 0, 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq 4.2 Linéarisation du modèle La non linéarité du modèle (4.1) est dûe au terme Q kq X X hkq q=1 k=1 M X λakq,i c − xi i=1 i qui intervient à la fois dans la fonction objectif et dans la contrainte du délai entre chaque paire de noeuds. 0 ≤ x i ≤ ci 0≤ λ <∞ ci − x i On peut poser yi = λ ci − x i (4.2) 4.2. Linéarisation du modèle 63 4.2.1 Linéarisation du terme quadratique principal Linéarisation de hkq M X akq,i yi i=1 Qu'on peut réécrire rqk = hkq zqk où zqk = M X akq,i yi i=1 On en déduit que rqk = [if (hkq = 1) then zqk else 0] Cette expression a l'avantage de garder toute la sémantique du terme quadratique d'origine. C'est idéalement ce qu'on cherche dans tout processus de linéarisation. hkq prend ses valeurs dans {0, 1}. On peut d'ores et déjà écrire que : 1 si zqk > 0 k hq = 0 si non En eet zqk représente le délai d'attente sur le chemin LSP akq qui est certainement nul si le hemin n'est pas utilisé et certainement positif dans le cas contraire. Cette dépendance entre les variables zqk et hkq peut être exprimée dans les deux contraintes suivantes : k k hq ≤ zq .M & k zqk hq ≥ M où M est un nombre trés grand trés grand. En eet, hkq = 0 va être exprimé dans hkq ≤ zqk .M quant à hkq = 0 il va être exprimé dans hkq zqk ≥ M Ainsi le terme hkq .zqk se trouvera simplié en zqk dans l'expression de la fonction objectif et dans la contrainte sur le délai. Il en resulte que : zqk = rqk 4.3. Linéarisation du terme stochastique 64 λ ci −xi La linéarisation nale obtenue est alors : Minimiser α Q kq X X hkq wqk q=1 k=1 +β Q kq X X zqk q=1 k=1 Sous les contraintes : A.F ≤ C R.F = D zqk ≤ θq , hkq ≤ zqk .M, hkq zqk ≥ , M 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq fqk ≤ hkq .δq , 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq hkq ∈ {0, 1}, 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq fqk ≥ 0, 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq zqk ≥ 0, 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq Dans la partie expérimentation, ce problème sera référencé par : PL λ 4.3 Linéarisation du terme stochastique ci−x i Soit le terme stochastique yi = λ ci − x i (4.3) qui exprime le temps d'attente dans un routeur MPLS. On rappelle que : λ est la taille moyenne des paquets, exprimée en bits. ci est la capacité du lien i, exprimée en bps . xi est la somme des ots traversant le lien i. | yi exprime nalement le temps d'attente. La formulation (4.3) a la vertu d'exprimer le temps d'attente en tenant compte des paramétres spéciques au lien i. L'utilisation de la variable xi dans ce terme, permet de préciser le temps d'attente en fonction de la réalité du lien, à savoir la somme des ots le travesant. Contrairement à la sous-section précédente où on a réussi à produire une linéarisation qui maintient toutes les variables du terme quadratique, le terme (4.3) est plus délicat à linéariser tout en gardant ses variables. En eet, la forme fractionnaire du terme complique toute tentative de reformulation mathématique équivalente. 4.3. Linéarisation du terme stochastique 65 λ ci −xi Justement, au lieu d'essayer de reformuler d'une façon équivalente ce terme, on fera appel à une relaxation. Cette dernière consiste à reformuler en simpliant le terme en question, ici (4.3), en essayant de garder le plus de sémantique. Dans la fonction objectif globale, le terme β Q kq X X hkq q=1 k=1 M X λakq,i c − xi i=1 i est contrôlé par le coecient β . Ce terme est antagoniste au premier terme, dans la mesure ou le premier tend à obtenir un "layout" moins complexe, c'est à dire contenant le moins de chemins LSP possibles ce qui aura pour eet de surcharger le peu de chemins utilisés et, par conséquent, les liens les composant ; Alors que La minimisation du second terme tendra à produire des solutions qui réduiront la charge sur les LSP et par voie de conséquence sur les liens composant ces chemins. En faisant l'hypothèse que ce terme pourrait varier linéairement, nous pouvons produire le raisonnement suivant : (4.4) 0 ≤ xi < ci λ λ < ci − x i ci 0≤ M M X X λ.akq,i λ.akq,i 0≤ < c − xi ci i=1 i i=1 ou encore 0≤ M X λ.akq,i .yi < i=1 M X λ.akq,i i=1 Posons tkq = M X ci λ.akq,i .yi i=1 λ.akq,i Le domaine de tkq est alors : [0, i=1 ci [ Nous proposons la relaxation suivante : PM Minimiser α Q kq X X hkq wqk +β Q kq X X q=1 k=1 tkq q=1 k=1 Sous les contraintes : A.F ≤ C R.F = D 0≤ tkq < M X λ.akq,i i=1 ci , 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq 4.3. Linéarisation du terme stochastique λ ci −xi fqk ≤ hkq .δq , 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq hkq ∈ {0, 1}, 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq fqk ≥ 0, 66 1 ≤ q ≤ Q et 1 ≤ k ≤ Kq Dans la partie expérimentation, ce problème sera référencé par : PRL Cette relaxation suppose que le débit maximal n'est jamais atteint, hypothèse qui nous semble être réaliste. On note que la formulation de la variable yi n'utilise pas xi , rendant le temps d'attente dépendant seulement de la capacité du lien et la taille moyenne des paquets. On ignore ainsi les ots courants. Dans le chapitre expérimental, nous évaluerons la pertinence de ce modèle linéaire. On note que MINLP trouve souvent un minimum local très rapidement. Cependant, il existe plusieurs instances où les solveurs globaux améliorent nettement la solution proposée par MINLP. 4.3.1 Génération des matrices de trac La génération de la matrice du trac suit un processus aléatoire inspiré de [4]. Nous l'avons implémenté de la manière suivante : Algorithm 2 Algorithme pour la génération aléatoire de la matrice de trac Etant donné un graphe dont les arcs sont valués représentant le réseau physique : saisie des noeuds, des arcs et des valuations(capacités) On calcule tous les chemins possibles du graphe On aecte à une proportion p de paires de noeuds une demande de ot calculée à partir d'une variable aléatoire suivant une loi uniforme dans l'intervalle [0, Caq ] Nous aectons au reste des paires de noeuds, la proportion restante (1-p), une demande de ot calculée à partir d'une variable aléatoire suivant une loi uniforme dans l'intervalle [0, Y aCq ] Génération des chiers AMPL (modèle et data) Cq représente la capacité totale dispnible pour la paire de noeuds q lorsqu' aucune activité n'est enregistrée dans le réseau. a est un facteur d'echelle, qui nous permet de réduire graduellement la capacité dsiponible pour la paire de noeuds q , ce qui est équivalent à injecter du trac dans le réseau, c'est à dire de plus en plus de noeuds partciperont à ce trac, ce qui augmente la probabilité d'être proche de matrices de trac réelles. aximumq Cq On dénit Y comme le rapport M , c'est le rapport entre la capacité de la M inimumq Cq paire de noeuds la mieux connectée sur celle qui est la moins connectée. cette valeur permet d'introduire un degré d'asymétrie dans le modèle. 4.4. Conclusion 67 4.4 Conclusion An de rendre possible le calcul de l'optimum global dans un temps borné, nous avons tenté de raner le modèle de [4] de deux manières : en linéariusant le terme non linéaire λakq,i ci − x i ensuite en faisant une relaxation linéaire qui élimine qui la variable xi . Dans le chapitre suivant, nous évaluerons cette linéarisation et cette relaxation en appliquant des solveurs connus dans le domaine. Chapitre 5 Mise en oeuvre et expérimentation Nous présentons d'abord, le laguage AMPL et le principe de fonctionnement de celui là, les réseaux physiques qui ont servi de platforme de test et également l'implémentation du modèle stochastique pour la génération de matrices de trac inspiré de [4] ainsi que la génération des chiers AMPL correspondant aux instances du problème étudié. On décrira,ensuite, les structures internes du programme de génération des matrices de ots. Puis, on abordera en détail l'expérimentation des deux démarches que nous avons proposées. 5.1 Concepts du Langage AMPL [3] Avant tout algorithme d'optimisation à appliquer (tout solveur) à un problème, un eort important doit être fourni dans la formulation du modèle sous-jacent et de générer les structures de données nécessaires. Si les algorithmes devaient se comporter avec les problèmes d'optimisation comme le font les humains, les phases de génération et de formulation de modèles seraient relativement simples. En réalité, cependant, il y' a beaucoup de diérences entre la forme du problème formulée par un être-humain et la forme dans la quelle le problème est résolu par un algorithme. Une translation entre la première forme vers la deuxième forme nécessite des eorts considérables. Dans l'approche traditionnelle, Le travail est divisé entre l'être-humain et l'ordinateur. D'abord, une personne comprenant les modèles écrit un programme dont les sorties représentent les structures de données requises. Ensuite un ordinateur compile et exécute le programme pour créer la forme algorithmique. Cette méthode et souvent coûteuse et sujette aux erreurs ; plus contraignant encore, le programme doit être debuggé par une personne maîtrisant les modèles même si ses sorties (la forme algorithmique) ne sont pas destinées à être lues par un humain. Dans le cas particulier de l'optimisation linéaire et non linéaire la plus grande partie de la forme de l'algorithme est la représentation matricielle des coecients des contraintes. Typiquement, c'est une matrice non homogène dont le nombre de lignes et de colonnes se chire en milliers et dont les éléments non nuls apparaissent dans des formes imprévisibles. 68 5.1. Concepts du Langage AMPL [3] 69 Un programme informatique qui produit une représentation de ces coecients dans une forme compacte est appelé un générateur de matrices. Plusieurs langages de programmation ont été conçus spéciquement pour écrire des générateurs de matrices [19], ainsi que des langages généralistes ont été utilisés dans cette perspective. Plusieurs des dicultés inhérentes à la translation du modèle mathématique vers la forme algorithmique peuvent être surmontées par l'utilisation directe d'un langage de modélisation pour la programmation mathématique. Un langage de modélisation est conçu pour exprimer un modèle mathématique dans une forme pouvant être soumise directement à un ordinateur pour être traitée entièrement par celui-ci sans avoir à écrire le moindre programme. Les avantages des langages de modélisations sur les générateurs de matrices ont été abordés en détail dans [19]. Nous décrivons Dans cette section un langage de modélisation trés utilisé dans la communauté de la recherche opérationnelle, il s'agit du langage AMPL [35]. AMPL (Mathematical Programming Language) est un langage de modélisation algébrique pour exprimer des problèmes d'optimisation linéaires et non-linéaires sur des variables discrètes ou continues. Ce langage a été développé dans les laboratoires Bell, il consiste en une notation commune et des concepts familiers proches de la forme algébrique. Comparé aux langages précédents, AMPL est remarquable par la généralité de sa syntaxe et par la similarité de ces expressions à la notation algébrique utilisée dans la rédaction des modèles mathématiques. Ampl en lui même ne peut être utilisé que pour spécier des classes de modèles de programmation mathématique. Pour une utilisation courante du langage, il doit être intégré dans un système qui gère les données, les modèles et les solutions. Principe de fonctionnement [2] L'utilisateur du langage AMPL rédige son modèle dans la syntaxe AMPL en utilisant un éditeur de texte de son choix et sauvegarde dans un chier modèle de type texte dont l'extension est, en général .mod . , Il rédige également un chier Data dans un chier d'extension .dat . La première tâche du translateur AMPL est de lire ces deux chiers et d'écrire une représentation de ce problème(linéaire ou non linéaire) dans une forme adaptée à la résolution par les algorithmes d'optimisation(Solveurs). Il doit également garder des informations pour lister la solution optimale dans une forme appropriée. 5.1. Concepts du Langage AMPL [3] Model File 70 DATA File 1 DATA File 2 AMPL Interaction d’AMPL avec Le serveur Neos MPS(text) or Binary File Solution File loqo E−Mail Internet Neos Solvers Minos Solvers Cplex Interface Web Server Internet Figure 5.1 Principe de fonctionnement d'AMPL Le translateur réalise ce travail en sept phases : analyse syntaxique, lecture des données, génération, collection, presolve et sortie. 1. Analyse La phase d'analyse lit le chier modèle et le transforme en un arbre des expressions. Elle utilise un programme LEX pour l'analyse lexicale et un analyseur produit par le générateur d'analyseur YACC. LEX t YACC simplient considérablement le développement de langage. 2. Lecture La phase de la lecture des données permet de contrôler et de vérier la conformité de celles-ci, comme les paramètres et les ensembles peuvent apparaître dans un ordre quelconque dans le chier DATA. Les données ne peuvent être contrôlées que lorsque tout a été lu. Ainsi, on vérie les doubles dénitions, les ensembles contenant des éléments dupliqués, les membres sont à la bonne dimension, et les valeurs saisies pour les paramètres sont bien des nombres ...etc. 3. Compilation La phase de compilation transforme l'arbre des expressions (généré dans la phase précédente) an de permettre une évaluation ecace des ensembles, 5.1. Concepts du Langage AMPL [3] 71 paramètres, variables et les autres entités dérivées. Elle déplace les invariants de l'intérieur des boucles par exemple. Comme le contenu des ensembles d'index dépend du chier Data, la compilation doit donc suivre la lecture des données. 4. Génération Dans la phase de génération qui suit immédiatement, Les Data sont minutieusement contrôlées et toutes les entités dérivées sont calculées. On vérie toutes les conditions imposées par le modèle ( les restrictions de l'intégralité et la non négativité sur les paramètres) et que les indices sont valides pour les composants du modèle qu'ils indexent. 5. A la conclusion de l'étape précédente, le translateur aura créé une liste de tous les termes linéaires et non linéaires) dans le modèle. Une variable peut,cependant, apparaître dans deux ou plus de termes dans la même fonction objectif ou la contrainte. La phase de collection combine ces diérentes apparences en une seule et classe les coecients de chaque variable de façon à correspondre à l'ordre donné aux contraintes. 6. Presolve Aprés l'accomplissement des cinq phases précédentes, on envisage dans cette phase de rendre le problème moins important ou plus facile à résoudre en procédant aux éventuelles transformation suivantes : (a) élimination des variables qui n'apparaissent ni dans la fonction objectif ni dans les contraintes (b) eacement des variables xées à une valeur, soit parce que la borne sup et la borne inf sont égales soit par des contraintes d'égalité qui impliquent une seule variable. Dans ce cas, même les contraintes sont éliminées. Ces actions peuvent produire elles mêmes des situations de variables uniques dans une contraintes, on le fait, alors sur plusieurs passages. (c) conversion en bornes de toute contrainte d'inégalité impliquant une seule variable. Ces bornes sont combinées avec celles spéciées dans la déclaration de la variable. Plusieurs passages également sont nécessaires puisque des contraintes de ce type peuvent emerger aprés chaque passage. (d) conversion des doubles contraintes d'inégalité en contrintes d'égalité ou en bornes (e) Suppression des contraintes d'inégalité qui peuvent être lâches dans des solutions faisables. Ce genre de contraintes est détecté en remplaçant les variables par la valeur de la borne (sup ou inf). Ce test permet également de détecter des contraintes qui ne seront jamais satisfaites, auquel cas l'utilisateur est averti de la non validité de son modèle. 7. Sortie La phase nale de sortie consiste à produire une forme du modèle translaté susceptible d'être traitée par un optimiseur(solveur). Cette sortie est conforme à la forme standard MPS [12] . Collection 5.2. Mise en oeuvre du programme de génération des matrices de ots et de chiers AMPL 72 5.2 Mise en oeuvre du programme de génération des matrices de ots et de chiers AMPL Il s'agit d'une application écrite en java. Essentiellement trois classes ont été dénies : la classe graph, objet principal de l'application ; la classe arc et la classe demande(qui exprime une demande de débit entre une paire de noeuds donnée). En entrée on reçoit un graphe ( sommets , arcs et valuation sur les arcs qui représentent la capacité du lien associé à cet atc). On extrait les éléments essentiels de ce graphe, notamment les chemins élementaires entre toutes les paires de noeuds en utilisant la structure de "List". Le modèle stochastique de génération de matrices de trac précédent exige de calculer Cq que nous avons interprété comme le ot maximum pouvant être acheminé entre la paire de noeuds q. Nous avons implémenté pour celà, l'algorithme de Ford-Fulkerson qui s'applique à un graphe simple valué. Ce qui n'est pas le cas de nos graphes qui sont forcément des 2graphe, car les liens dans le réseau sont bidirectionnels. Pour surmonter cet obstacle, On extrait des sous graphes partiels. Une fois la matrice de trac générée, nous créons les deux chiers AMPL (modèle et Data) correspondants qui vont être soumis aux diérents solveurs. 5.3 Les réseaux physiques de test An d'étudier notre problème, nous avons eu recours aux réseaux physiques des gures (5.2,5.3). les tailles des problèmes représentés dans ces gures sont relativement modestes. Les solveurs connus dans le domaine peuvent donc en venir à bout et aboutir à l'optimum en un temps acceptable. Première topologie physique de test C'est un graphe de 4 sommets et 6 arcs(liens). Capacité des liens 2.5 Gbps Nombre total de chemins 24 Nombre de variables 48 Nombre de contraintes 68 5.3. Les réseaux physiques de test 73 2 GBPS Noeud 1 Noeud 2 2 GBPS 2 GBPS 2 GBPS 2 GBPS 2 GBPS 2 GBPS Noeud 4 Noeud 3 2 GBPS Figure 5.2 Réseau de test1 Deuxième topologie physique de test C'est un graphe de 4 sommets et 8 arcs(liens). Capacité des liens 2.5 Gbps Nombre total de chemins 38 Nombre de variables 76 Nombre de contraintes 98 5.4. Résolution des modèles linéaires et non linéaires 74 2 GBPS Noeud 1 Noeud 2 2 GBPS 2 GBPS 2 GBPS 2 GBPS 2 GBPS 2 GBPS 2 GBPS 2 GBPS Noeud 3 Noeud 4 2 GBPS Figure 5.3 Réseau de test2 5.4 Résolution des modèles linéaires et non linéaires Pour la résolution des diérents modèles, en l'occurence le modèle non linéaire proposé dans [4] ainsi que les modèles linéaires obtenus par les deux démarches de linéarisation présentées dans le chapitre précédent, nous avons opté pour les solveurs suivants : CPLEX Solveur linéaire global. BARON Solveur global développé dans la communauté d'optimisation globale, utilisant des techniques de programmation par contraintes, et d'analyse par intervalles. 5.5 Expérimentation L'expérimentation a été faite sous Linux Debian 11.2. Le processeur est un CoreI3. L'application que nous avons réalisée et qui interagit avec l'environnement AMPL et le serveur Neos (sur internet) a été développée avec le langage Java. Pour chaque expérience, vingt cinq matrices de demandes(qui représentent une demande de trac à un instant donné) ont été générées avec l'algorithme 2 et ont servi pour expérimenter les diérents modèles. Globalement, les étapes de l'expérimentation sont les suivantes : 1. On saisit le réseau physique. 2. On xe les paramètres liés aux limites physiques du réseau, au modèle stochastisque et à la charge du réseau. 3. On calcule les chemins, leurs coûts et les ots max pouvant être acheminés entre les diérentes paires de noeuds. 5.5. Expérimentation 75 Réseau1 : sauts et chemins Matrice 1 1 2 3 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 M oyenne α = 4 et p = 2 PL P NL P RL P NL α = 3 et p = 2 PL P RL Chem sauts Chem sauts Chem sauts Chem sauts Chem sauts Chem sauts 12 12 14 13 12 13 13 14 15 12 12 13 12 14 12 12 13 13 12 13 14 14 16 13 15 14 13 12 16 14 14 15 14 14 15 13 16 18 17 16 13 14 16 14 14 15 16 15 18 16 18 16 16 17 18 16 12 13 12 12 12 12 12 13 12 15 12 13 12 12 12 12 12 12 12 12 12 14 12 14 12 12 12 12 16 14 14 16 16 16 16 14 16 16 16 14 16 16 14 16 16 16 16 16 16 17 16 17 16 16 16 16 12 14 12 12 14 12 12 14 12 12 15 12 12 14 12 12 14 12 12 14 12 12 12 12 12 12 12 12 16 18 16 14 18 16 16 18 16 16 16 16 16 17 16 14 17 16 16 17 16 16 16 16 16 16 16 16 12 12 12 13 12 12 NR 12 12 12 14 15 12 12 12 13 12 15 12 13 12 13 14 12 14 12 12 12 16 16 16 17 14 16 NR 16 16 16 18 16 16 16 14 15 16 17 16 14 16 13 16 15 17 15 14 16 12 12 13 15 12 13 NR 13 12 14 12 14 15 13 12 12 14 12 12 12 12 12 14 13 14 12 12 12 16 16 15 18 16 15 NR 15 16 16 16 16 18 16 14 16 17 16 16 15 16 13 14 15 16 16 16 16 12 12 13 13 12 14 NR 15 12 14 16 13 14 15 13 14 12 12 15 13 12 16 12 15 14 13 12 12 16 14 15 17 15 16 NR 16 16 17 16 15 16 16 15 16 14 16 17 15 14 18 16 17 16 15 12 16 Figure 5.4 Expérimentation des modèles sur Net1(Solveurs Baron-Baron) 4. On génère les trois chiers modèles AMPL pour PNL,PL et PRL. 5. On génère un chier Data AMPL 6. On sélectionne un solveur de l'une des deux manières : On choisit un solveur local parmi ceux proposés. On en choisit un parmi ceux disponibles dans le serveur Neos disponible sur Internet, auquel cas les resultats sont communiqués par Mail. La section suivante présente l'analyse des resultats obtenus. Les tableaux ci-dessous représentent les performances des solveurs Cplex et Baron sur le modèle non linéaire (PNL)et les modèles linéaires(PL et PRL). 5.5. Expérimentation 76 PNL PL 14.00 X PRL 12.00 x 10.00 x x x x microsecondes 8.00 x x x x 6.00 x x x x x 4.00 x x x x x x x 2.00 x x x x .00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Matrices Figure 5.5 delai global dans le réseau Net1 pour a = 4 PNL PL 14.00 X PRL 12.00 10.00 x microsecondes 8.00 x x x x x x x x 6.00 x x x x x 4.00 x x x x x x x 2.00 x x x x .00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Matrices Figure 5.6 delai global dans le réseau Net1 pour a = 3 5.5. Expérimentation 77 Réseau1 : sauts et chemins Matrice 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 19 20 21 22 23 24 25 M oyenne α = 4 et p = 2 PL P NL P RL α = 3 et p = 2 PL P NL P RL Chem sauts Chem sauts Chem sauts Chem sauts Chem sauts Chem sauts 13 13 14 15 12 14 13 12 14 12 12 13 13 12 13 14 12 12 13 12 15 14 13 14 16 13 12 14 15 13 16 14 14 15 14 14 16 14 14 15 16 15 18 18 17 16 13 16 17 18 16 18 16 16 12 12 13 12 13 12 12 12 12 12 12 12 12 12 12 12 15 12 13 12 12 12 12 14 12 14 12 16 16 14 16 14 14 16 16 16 14 16 16 16 16 16 16 16 16 14 16 16 16 16 17 16 17 16 12 12 14 12 14 12 12 14 14 12 12 14 12 12 14 12 12 15 12 12 12 12 12 12 12 12 12 16 16 18 16 18 16 14 18 17 16 14 17 16 16 17 16 16 16 16 16 16 16 16 16 16 16 16 12 14 12 12 12 12 13 12 12 12 13 12 15 12 13 12 NR 14 15 12 14 12 NR 13 14 12 12 16 18 16 16 16 16 17 14 16 14 15 16 17 16 14 16 NR 18 16 16 17 15 NR 13 16 15 16 13 12 13 12 12 13 15 12 13 12 12 14 12 12 12 12 NR 12 14 15 14 12 NR 12 14 13 12 15 16 15 16 16 15 18 16 16 14 16 17 16 16 15 16 NR 16 16 18 16 16 NR 13 14 15 16 14 12 15 12 12 13 13 12 15 13 14 12 12 15 13 12 NR 16 13 14 14 13 NR 16 12 15 12 16 13 16 16 14 15 17 15 16 15 16 14 16 17 15 14 NR 16 15 16 16 15 NR 18 16 17 16 Figure 5.7 Expérimentation des modèles sur Net1(Solveurs Baron-Cplex) PNL PL 14.00 X PRL 12.00 10.00 x x microsecondes 8.00 x x x x x x 6.00 x x x x x x 4.00 x x x x x x x 2.00 x x x x .00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Matrices Figure 5.8 delai global dans le réseau Net1 pour a = 4 5.5. Expérimentation 78 Réseau1 : sauts et chemins Matrice 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 M oyenne α = 4 et p = 2 PL P NL P RL α = 3 et p = 2 PL P NL P RL Chem sauts Chem sauts Chem sauts Chem sauts Chem sauts Chem sauts 14 16 13 15 14 13 12 14 13 12 13 14 12 12 13 13 12 13 14 13 14 15 12 12 13 12 16 18 16 16 17 18 14 14 15 14 14 14 16 14 14 15 16 15 18 15 13 16 18 17 16 16 14 12 14 12 12 12 13 12 12 12 12 12 12 12 12 12 12 12 12 12 13 12 15 12 13 12 17 16 17 16 16 16 14 14 16 16 16 16 14 16 16 16 16 16 16 16 14 16 16 16 14 16 12 12 12 12 12 12 14 12 12 14 12 14 12 12 14 12 12 14 12 12 14 12 12 15 12 12 16 16 16 16 16 16 18 16 14 18 16 17 16 14 17 16 16 17 16 16 18 16 16 16 16 16 13 14 12 14 12 12 NR 12 13 12 12 12 NR 13 12 15 12 13 12 14 12 12 NR 14 15 12 13 16 15 17 15 14 NR 16 17 14 16 16 NR 15 16 17 16 14 16 18 16 16 NR 18 16 16 12 14 13 14 12 12 NR 13 15 12 13 13 NR 12 14 12 12 12 12 12 13 12 NR 12 14 12 13 14 15 16 16 16 NR 15 18 16 15 16 NR 16 17 16 16 15 16 16 15 16 NR 16 16 16 16 12 15 14 13 12 NR 13 13 12 14 15 NR 14 12 12 15 13 12 12 15 12 NR 16 13 12 18 16 17 16 15 12 NR 15 17 15 16 16 NR 16 14 16 17 15 14 13 16 16 NR 16 15 16 Figure 5.10 Expérimentation des modèles sur Net2(Solveurs Baron-Baron) PNL PL 14.00 X PRL 12.00 10.00 microsecondes 8.00 x x x x x x 6.00 x x x x x 4.00 x x x x x 2.00 x x x x x x x .00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Matrices Figure 5.9 delai global dans le réseau Net1 pour a = 3 5.5. Expérimentation 79 PNL PL 14.00 X PRL 12.00 10.00 x x x microsecondes 8.00 x x x x x 6.00 x x x x 4.00 x x x x x x x x 2.00 x x x x .00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Matrices Figure 5.11 delai global dans le réseau Net2 pour a = 6 PNL PL 14.00 X PRL 12.00 10.00 x x microsecondes 8.00 x x x x x x 6.00 x x x x x x 4.00 x x x x x x x 2.00 x x x x .00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Matrices Figure 5.12 delai global dans le réseau Net2 pour a = 5 5.5. Expérimentation 80 Réseau1 : sauts et chemins Matrice 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 M oyenne α = 4 et p = 2 PL P NL P RL α = 3 et p = 2 PL P NL P RL Chem sauts Chem sauts Chem sauts Chem sauts Chem sauts Chem sauts 12 14 14 12 12 13 13 13 14 13 12 12 13 12 16 13 15 14 13 12 13 14 14 15 13 12 14 14 14 16 14 14 15 15 13 14 18 17 16 13 18 16 16 17 18 16 15 18 16 16 15 16 13 12 12 12 12 12 12 12 13 12 15 12 13 12 12 14 12 12 12 12 12 12 14 12 12 12 14 14 16 14 16 16 16 16 14 16 16 16 14 16 16 17 16 16 16 16 16 16 17 16 16 16 14 12 14 12 12 14 12 12 14 12 12 15 12 12 12 12 12 12 12 12 14 12 12 12 12 12 18 16 17 16 14 17 16 16 18 16 16 16 16 16 16 16 16 16 16 16 17 16 16 16 14 16 12 12 12 12 13 12 15 14 12 12 12 14 15 12 14 12 14 NR 12 12 13 12 13 12 13 12 16 16 16 14 15 16 17 18 16 16 16 18 16 16 16 15 17 NR 14 16 14 16 13 16 17 16 12 13 13 12 12 14 12 12 13 13 14 12 14 15 14 13 14 NR 12 12 12 12 12 12 15 12 16 15 16 14 16 17 16 16 15 15 16 16 16 18 14 15 16 NR 16 16 15 16 13 16 18 16 12 13 15 13 14 12 12 12 15 14 14 16 13 14 12 15 14 NR 12 15 13 12 16 12 13 12 14 15 16 15 16 14 16 13 16 16 17 16 15 16 16 17 16 NR 12 17 15 14 18 16 17 16 Figure 5.13 Expérimentation des modèles sur Net2(Solveurs Baron-Cplex) PNL PL 14.00 X PRL 12.00 10.00 x microsecondes 8.00 x x x x x 6.00 x x x x x x x x 4.00 x x x x x x x x x 2.00 x x .00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Matrices Figure 5.14 delai global dans le réseau Net2 pour a = 6 5.6. Résultats et analyse 81 PNL PL 14.00 X PRL 12.00 x 10.00 x x x x microsecondes 8.00 x x x x 6.00 x x x x x x x x 4.00 x x x x x x 2.00 x x .00 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Matrices Figure 5.15 delai global dans le réseau Net2 pour a = 5 5.6 Résultats et analyse Une étude comparative a été réalisée pour les modèles PNL,PL et PRL sur les réseaux de test présentés ci-dessus, en utlisant les mêmes paramètres et les mêmes topologies. Pour les trois modèles, nous avons associé des couts aux chemins ( wqk ) correspondant au nombre d'arcs composant chaque chemin(des valeurs typiques de wqk pour les réseaux Net1 et Net2 sont 1,2 et 3), les autres paramètres sont instanciés de la manière suivante : δq = 2.5 Gbps, Les ots sur les chemins peuvent aller jusqu'au maximum de la capcité disponible. θq = 30 µS (microsecondes) , c'est le délai maximum autorisé pour une paire de noeuds. α = 1 et β = 1, On attribue la même importance aux deux termes constituant la fonction objectif (le terme représentant la complexité du "layout" et le terme représentant le délai global dans le réseau). a = 3 et a = 4, respectivement pour rééter une charge moyenne dans le réseau Net1 et une surcharge dans celui-là. a = 5 et a = 6, respectivement pour rééter une charge moyenne dans le réseau Net2 et une surcharge dans celui-là. Dans le cas du réseau Net1, toutes les paires de noeuds sont reliées de manière équivalente : deux chemins existent entre toute paire de noeud et le ot maximum aximumq Cq =1 que l'on peut véhiculer entre toute paire de noeuds vaut 5 Gbps. Y = M M inimumq Cq Dans le cas du réseau Net2, quelques paires de noeuds peuvent véhiculer un ot maximum allant jusqu'à 7.5 Gbps, alors que d'autres ne peuvent véhiculer que 5 Gbps. le rappaort est alors de Y = 1.5. Les tables ( 5.4,5.7,5.10,5.13 ) donnent 5.6. Résultats et analyse 82 des solutions pour les problèmes posés pour les deux réseaux et pour des charges moyennes (a=4 pour Net1 et a=6 pour Net2) mais également pour une surcharge des réseaux(a=3 pour Net1 et a=5 pour Net2). les solutions sont données sous forme de nombres de chemins utilisés et de nombre de sauts total pour ces chemins. La mention NR représente une solution non réalisable. Conclusion Générale Le travail eectué dans ce mémoire constitue une exploration trés fructueuse dans le domaine des réseaux nouvelle génération qui intègrent dans une même plateforme réseau des services et des applications divers longtemps déployés dans des infrastructures séparées. Ce qui constitue un interêt majeur pour les opérateurs de télécommuncation (coût d'opérations et de maintenance) d'une part, et pour les utilisateurs naux, d'autre part, qui ont accés à des applications et services de plus en plus diversiés sur un même terminal. Nous avons mis l'accent sur le protocole MPLS qui joue un rôle prépondérant dans la cohabitation de ces applications de caractéristiques diérentes dans le même réseau, malgrés leurs exigences qui dièrent en matière de qualité de service. En eet, Le protocole MPLS est à même de travailler le routage ou la commutation sur des ots de données plutôt que sur des paquets, il peut déterminer, alors, quels chemins sont à même d'assurer la qualité de service exigée par ces diérents ots de données. Nous avons étudié le modèle d'un réseau à base de routeurs implémentant MPLS exposé dans [4]en vue d'optimiser l'établissement des LSP (constitution de chemins logiques entre les diérentes paires de noeuds) sachant que l'établissement et la conguration de ceux-ci engendrent un coût pour l'opérateur qu'il voudrait minimiser. Le problème s'est avéré être non linéaire mixte (NP-complet), problème résolu dans [4] par des méthodes approchées de recherche locale. Notre démarche était d'aller vers une résolution golabale. Pour assurer le calcul de l'optimum dans un délai acceptable, nous avons opté pour la simplication du terlme qui est responsable de la non linéarité du modèle. Nous l'avons fait de deux manières : La première consiste à linéariser ce terme qui pose problème et qui apparaît à la fois dans la fonction objectif et dans l'une des contraintes. c'est un terme quadratique dont le passage à une forme linéaire n'est pas du tout évident. Le deuxième ranement opéré a consisté en une relaxation linéaire qui tient du modèle stochastique M/M/1 lui même, puisque à notre avis les paramètres dont il faut tenir compte sont les λet Ci seulement. Ce qui nous permettra d'éliminer xi . Les résultats expérimentaux ont plus ou moins conrmé nos hypothèses. Dans le volet perspectives, nous pensons que le modèle de le d'attente ne traduit pas toute la réalité des les d'attentes engendrées dans les routeurs MPLS. En eet, les ots ne sont pas tous égaux en matière d'exigence en (bande passante, délai,...) c'est à dire la qualité de service. Les ots doivent être servis diéremment, ils doivent, alors se trouver dans des les diérentes ou la même ile avec plusieurs serveurs, ce qui traduit mieux la réalité. Le modèle se trouvera alors modié. 83 Annexe A - 1 Eléments de base du langage AMPL [3] Les cinq grandes parties d'un modèle algébrique sont : les ensembles, les paramètres, les variables, la fonction objectif et les contraintes. Ils sont aussi les cinq types de composants dans un modèle AMPL. Le reste de cette section présente brièvement chaque composante et sa représentation AMPL. Ensembles Un ensemble est un groupement de plusieurs éléments distincts, mais de même type. En particulier, tous les éléments doivent avoir le même nombre de composantes (tous des paires, des triplets,...). La denition d'un ensemble commence par { et ni par }. Un ensemble peut être n'importe quelle collection non ordonnée d'objets pertinents à un modèle. Par exemple, le modèle de planication de la production optimise la production d'un ensemble de produits qui sont fabriqués à partir d'un ensemble de matières premières. AMPL groupe les produits et les matières premières en utilisant les déclarations : set P; # Produits set R; # mateiéres premières Un autre type de jeu est une suite d'entiers. Dans le modèle de l'échantillon, la séquence de toute période allant de 1 à T est un tel ensemble. Il est représenté dans AMPL par l'expression 1..T , où T est un paramètre dont la valeur est le nombre de périodes. Paramètres Un paramètre est une valeur pertinente à un modèle. Le type le plus simple d'un paramètre est une valeur unique, telle que le nombre de périodes dans notre exemple. On déclare un paramètre selon le format général suivant : param nom [ index ] [ attribs ] ; La partie index est une partie optionnelle pour dénir la taille de l'ensemble. 84 1. Eléments de base du langage AMPL [3] attribs : 85 binary, integer, symbolic, le paramètre doit être binaire, le paramètre doit être entier, le paramètre peut prendre une valeur alphanumérique (par exemple le nom d'un élément d'un autre ensemble). relop expr, où relop peut être < <= = == ! = <> > >=. in setxpr, vérifie si le paramètre appartient à un ensemble donné. := expr, définition du paramètre. default expr même chose que pour la déclaration d'un ensemble. La plupart des déclarations AMPL qui déclarent des paramètres spécie également certaines restrictions sur ces paramètres. Par exemple, le nombre de périodes est déclaré par : param T > 0 integer ; Variables Les variables d'un programme linéaire sont déclarées comme les paramètres. La seule diérence est que les valeurs des variables doivent être déterminées par optimisation, tandis que les valeurs des paramètres sont xes, c'est-à-dire fournies à l'avance. Le format général de délaration des variables est le suivant : var nom [ index ] [ attribs ] ; attribs : binary, integer, >= expr, <= expr, := expr, la variable est binaire la variable est entière si la variable est inférieurement borné si la variable est supèrieurement borné valeur xée Une déclaration typique de la variable "matières premières" dans l'exemple ci-dessus est donnée comme suit : var x {P,1..T} >= 0; # unités de produits fabriqués dans la période Contraintes Une contrainte peut être une égalité ou une inégalité linéaire sur les paramètres et les variables. En prenant l'exemple de planication de production, une contrainte de solde relative à l'inventaire d'une période à l'autre serait : stock {i in R, t in 1..T }: s [i,t+1] = s [i,t] - sum {j in P} a [i,j] * x [j,t] ; # stock pendant la prochaine période = période actuelle - matières premières 1. Eléments de base du langage AMPL [3] 86 Objectif Une fonction objectif est une expression linéaire sur les paramètres et les variables. La déclaration de la fonction objectif est de la forme suivante : maximize name [alias] [index] : expression ; ou minimize name [alias] [index] : expression ; À titre d'exemple, considérons la fonction objectif : maximize profit: sum {t in 1..T } sum {j in P} c [j,t] * x [j,t] - sum {i in R} d [i] *s [i,t] + sum {i in R} f [i] * s [i,T+1] # total sur toutes les périodes du profit estimé # - le coût de stockage + coûts de la valeur des # matières premières après la dernière période Annexe B Les chiers modèles générés ci-dessous correspondentrespectivement à la formulation non linéaire, linéaire et la relaxation linéaire : 1 Fichier modèle AMPL du modèle non linéaire param param param param param param param N > 0 integer; M > 0 integer; K > 0 integer; lambda > 0; alpha > 0; beta > 0; epsilone > 0; # # # # # # # nombre de noeuds nombre de d'arcs (liens) nombre maximun de chemins possibles. taille moyenne des paquets facteur d'importance (nombre de chemins) facteur d'importance (délai de bout en bout) infiniment petit ################################ ### Definition des ensembles ### ################################ set set set set set noeuds := 1..N; # ensemble de noeuds arcs := 1..M; # ensemble d'arcs couples := {n1 in noeuds, n2 in noeuds : n1 <> n2}; # ensemble de couples source-destination indice_chemins := 1..K; # k est l'ensemble des indices qui parcourent tous les chemins possibles incidence_chemin_arc within {(m,n) in couples, k in indice_chemins, i in arcs};# matrice d'incidence chemins_arcs set chemins := setof {(m,n,k,i) in incidence_chemin_arc} (m,n,k);# liste des chemins dans la matrice d'incidence chemins_arcs set chemins_par_lien {i in arcs} := {(m,n,k,j) in incidence_chemin_arc: i = j};# liste des chemins traversant l'arc i set liens_par_chemin {(m,n,k) in chemins} := {j in arcs : (m,n,k,j) in incidence_chemin_arc}; # arcs utilises par le chemin (m,n,p) ################## ### Parametres ### ################## param C {arcs} >= 0; # capacite des liens param d {couples} >= 0; # matrice des demandes param cout_du_chemin {(m,n,k) in chemins} := card{liens_par_chemin[m,n,k]}; # cout par chemin = nombre de sauts param delta {couples} >= 0; # une limite dans les flux par chemin ( pour assurer chemin_utilise = 0 ou 1) param teta {couples} >= 0; # delai maximum a admettre entre source_destination ################# ### Variables ### ################# var h {chemins} binary; # chemin utilise = 1, chemin non utilise = 0 87 2. Fichier modèle AMPL du modèle linéaire 88 var flux_sur_chemin {chemins} >= 0; var flux_sur_lien {i in arcs} = sum{(m,n,k,i) in chemins_par_lien[i]} flux_sur_chemin[m,n,k]; # flux total su le lien i var delai_sur_lien {i in arcs} = 1/(C[i]-flux_sur_lien[i]); # delai sur le lien var delai_sur_chemin{(m,n,k) in chemins} = sum{i in liens_par_chemin[m,n,k]} delai_sur_lien[i]; # delai associe a un chemin ########################## ### Fonction Ojectif ### ########################## minimize cout_total : (alpha*sum {(m,n,k) in chemins} cout_du_chemin[m,n,k]*h[m,n,k]) +(beta*sum {(m,n,k) in chemins} h[m,n,k]*sum {i in arcs} lambda*delai_sur_lien[i]); ################### ### Contraintes ### ################### subject to contrainte_de_capacite {i in arcs} : flux_sur_lien[i] <= C[i]; # contrainte_de_capacite subject to contrainte_de_demande {(m,n) in couples} : sum {(m,n,k) in chemins} (flux_sur_chemin[m,n,k]) = d[m,n]; # contrainte demande subject to contrainte_de_delai {(m,n,k) in chemins} : delai_sur_chemin[m,n,k]*h[m,n,k] <= teta[m,n]; # contrainte_delai par lien subject to contrainte_de_flux_sur_chemin {(m,n,k) in chemins} : flux_sur_chemin[m,n,k] <= delta[m,n]*h[m,n,k]; 2 Fichier modèle AMPL du modèle linéaire param param param param param param param N > 0 integer; M > 0 integer; K > 0 integer; lambda > 0; alpha > 0; beta > 0; epsilone > 0; # # # # # # # nombre de noeuds nombre de d'arcs (liens) nombre maximun de chemins possibles. taille moyenne des paquets facteur d'importance (nombre de chemins) facteur d'importance (délai de bout en bout) infiniment petit ################################ ### Definition des ensembles ### ################################ set noeuds := 1..N; # ensemble de noeuds set arcs := 1..M; # ensemble d'arcs set couples := {n1 in noeuds, n2 in noeuds : n1 <> n2}; # ensemble de couples source-destination set indice_chemins := 1..K; # k est l'ensemble des indices qui parcourent tous les chemins possibles set incidence_chemin_arc within {(m,n) in couples, k in indice_chemins, i in arcs};# matrice d'incidence chemins_arcs set chemins := setof {(m,n,k,i) in incidence_chemin_arc} (m,n,k);# liste des chemins dans la matrice d'incidence chemins_arcs set chemins_par_lien {i in arcs} := {(m,n,k,j) in incidence_chemin_arc: i = j};# liste des chemins traversant l'arc i set liens_par_chemin {(m,n,k) in chemins} := {j in arcs : (m,n,k,j) in incidence_chemin_arc}; # arcs utilises par le chemin (m,n,p) ################## ### Parametres ### ################## 3. Fichier modèle AMPL du modèle relaxation linéaire param C {arcs} >= 0; # capacite des liens param d {couples} >= 0; # matrice des demandes 89 param cout_du_chemin {(m,n,k) in chemins} := card{liens_par_chemin[m,n,k]}; # cout par chemin = nombre de sauts param delta {couples} >= 0; # une limite dans les flux par chemin ( pour assurer chemin_utilise = 0 ou 1) param teta {couples} >= 0; # delai maximum a admettre entre source_destination ################# ### Variables ### ################# var h {chemins} binary; # chemin utilise = 1, chemin non utilise = 0 var flux_sur_chemin {chemins} >= 0; var flux_sur_lien {i in arcs} = sum{(m,n,k,i) in chemins_par_lien[i]} flux_sur_chemin[m,n,k]; # flux total su le lien i var delai_sur_lien {i in arcs} = 1/(C[i]-flux_sur_lien[i]); # delai sur le lien var delai_sur_chemin{(m,n,k) in chemins} = sum{i in liens_par_chemin[m,n,k]} delai_sur_lien[i]; # delai associe a un chemin ########################## ### Fonction Ojectif ### ########################## minimize cout_total : (alpha*sum {(m,n,k) in chemins} cout_du_chemin[m,n,k]*h[m,n,k]) +(beta*sum {(m,n,k) in chemins} h[m,n,k]*sum {i in arcs} lambda*delai_sur_lien[i]); ################### ### Contraintes ### ################### subject to contrainte_de_capacite {i in arcs} : flux_sur_lien[i] <= C[i]; # contrainte_de_capacite subject to contrainte_de_demande {(m,n) in couples} : sum {(m,n,k) in chemins} (flux_sur_chemin[m,n,k]) = d[m,n]; # contrainte demande subject to contrainte_de_delai {(m,n,k) in chemins} : delai_sur_chemin[m,n,k]*h[m,n,k] <= teta[m,n]; # contrainte_delai par lien subject to contrainte_de_flux_sur_chemin {(m,n,k) in chemins} : flux_sur_chemin[m,n,k] <= delta[m,n]*h[m,n,k]; 3 Fichier modèle AMPL du modèle relaxation linéaire param param param param param param param N > 0 integer; M > 0 integer; K > 0 integer; lambda > 0; alpha > 0; beta > 0; epsilone > 0; # # # # # # # nombre de noeuds nombre de d'arcs (liens) nombre maximun de chemins possibles. taille moyenne des paquets facteur d'importance (nombre de chemins) facteur d'importance (délai de bout en bout) infiniment petit ################################ ### Definition des ensembles ### ################################ set noeuds := 1..N; # ensemble de noeuds 4. Fichier Data AMPL 90 set arcs := 1..M; # ensemble d'arcs set couples := {n1 in noeuds, n2 in noeuds : n1 <> n2}; # ensemble de couples source-destination set indice_chemins := 1..K; # k est l'ensemble des indices qui parcourent tous les chemins possibles set incidence_chemin_arc within {(m,n) in couples, k in indice_chemins, i in arcs};# matrice d'incidence chemins_arcs set chemins := setof {(m,n,k,i) in incidence_chemin_arc} (m,n,k);# liste des chemins dans la matrice d'incidence chemins_arcs set chemins_par_lien {i in arcs} := {(m,n,k,j) in incidence_chemin_arc: i = j};# liste des chemins traversant l'arc i set liens_par_chemin {(m,n,k) in chemins} := {j in arcs : (m,n,k,j) in incidence_chemin_arc}; # arcs utilises par le chemin (m,n,p) ################## ### Parametres ### ################## param C {arcs} >= 0; # capacite des liens param d {couples} >= 0; # matrice des demandes param cout_du_chemin {(m,n,k) in chemins} := card{liens_par_chemin[m,n,k]}; # cout par chemin = nombre de sauts param delta {couples} >= 0; # une limite dans les flux par chemin ( pour assurer chemin_utilise = 0 ou 1) param teta {couples} >= 0; # delai maximum a admettre entre source_destination ################# ### Variables ### ################# var h {chemins} binary; # chemin utilise = 1, chemin non utilise = 0 var flux_sur_chemin {chemins} >= 0; var flux_sur_lien {i in arcs} = sum{(m,n,k,i) in chemins_par_lien[i]} flux_sur_chemin[m,n,k]; # flux total su le lien i var delai_sur_lien {i in arcs} = 1/(C[i]-flux_sur_lien[i]); # delai sur le lien var delai_sur_chemin{(m,n,k) in chemins} = sum{i in liens_par_chemin[m,n,k]} delai_sur_lien[i]; # delai associe a un chemin ########################## ### Fonction Ojectif ### ########################## minimize cout_total : (alpha*sum {(m,n,k) in chemins} cout_du_chemin[m,n,k]*h[m,n,k]) +(beta*sum {(m,n,k) in chemins} h[m,n,k]*sum {i in arcs} lambda*delai_sur_lien[i]); ################### ### Contraintes #$12$& $16$## ################### subject to contrainte_de_capacite {i in arcs} : flux_sur_lien[i] <= C[i]; # contrainte_de_capacite subject to contrainte_de_demande {(m,n) in couples} : sum {(m,n,k) in chemins} (flux_sur_chemin[m,n,k]) = d[m,n]; # contrainte demande subject to contrainte_de_delai {(m,n,k) in chemins} : delai_sur_chemin[m,n,k]*h[m,n,k] <= teta[m,n]; # contrainte_delai par lien subject to contrainte_de_flux_sur_chemin {(m,n,k) in chemins} : flux_sur_chemin[m,n,k] <= delta[m,n]*h[m,n,k]; 4 Fichier Data AMPL # Nombre de noeuds = 4 4. Fichier Data AMPL # Nombre de liens(arcs) = 8 # Nombre de chemins = 24 ###########################################; data; data; param N := 4; param M := 8; param K := 24; param lambda := 6400.0; param alpha := 1.0; param beta := 1.0; param epsilone := 1.0E-4; param C := 1 2500.0 2 2500.0 3 2500.0 4 2500.0 5 2500.0 6 2500.0 7 2500.0 8 2500.0 ; set incidence_chemin_arc := (1,2,1,*) 1 (1,2,2,*) 4 6 8 (1,3,1,*) 1 3 (1,3,2,*) 6 8 (1,4,1,*) 1 3 5 (1,4,2,*) 8 (2,1,1,*) 2 (2,1,2,*) 3 5 7 (2,3,1,*) 2 6 8 (2,3,2,*) 3 (2,4,1,*) 2 8 (2,4,2,*) 3 5 (3,1,1,*) 2 4 (3,1,2,*) 5 7 (3,2,1,*) 4 (3,2,2,*) 1 5 7 (3,4,1,*) 2 4 8 (3,4,2,*) 5 (4,1,1,*) 2 4 6 (4,1,2,*) 7 (4,2,1,*) 4 6 (4,2,2,*) 1 7 (4,3,1,*) 6 (4,3,2,*) 1 3 7 ; param d default 0.0 : 1 2 3 4 1 . 1540.2426472710936 122.90583907910177 1599.0144277247834 2 1335.9640592222725 . 1252.227012148573 828.2704345221038 3 560.5691615615908 1047.897802264371 . 707.0037517846724 4 664.6726070816178 1244.7372558239117 405.0838235336888 . ; param delta default 0 : 1 2 3 4 := 1 . 2500.0 2500.0 2500.0 2 2500.0 . 2500.0 2500.0 3 2500.0 2500.0 . 2500.0 4 2500.0 2500.0 2500.0 . ; param teta default 0 : 1 2 3 4 := 1 . 3.0E-5 3.0E-5 3.0E-5 2 3.0E-5 . 3.0E-5 3.0E-5 3 3.0E-5 3.0E-5 . 3.0E-5 4 3.0E-5 3.0E-5 3.0E-5 . ; 91 := Bibliographie [1] P. Huang A. Feldman, A.C. Gibert and W. Willinger. Dynamics of ip trac : A study of the role of variability and the impact of control. SIGCOM, 1999. [2] R. A. Fourer, Gay, D.M., and Kernighan B.W. AMPL : A Mathematical Programming Language. University of Michigan, 1995. [3] R. A. Fourer, Gay, D.M., and Kernighan B.W. AMPL : A Modeling Language for Mathematical Programming . Duxbury Press / Brooks/ Cole Publishing Company, 2002. [4] S. Beker. Techniques d'Optimisation pour le Dimensionnement et la Reconguration Des Réseaux MPLS. PhD thesis, ENST, Ecole Nationale Supérieure des Télécommunications, 2004. [5] Gérard Bouyer. La hiérarchie numérique synchrone . ENSEA, 1997. [6] R. Braden, L. Zhang, S. Berson, S. Herzog, and S. Jamin. Resource reservation protocol (rsvp). Technical Report 2205, Network Working Group, 1997. [7] Octavio Napoleón MEDINA CARVAJAL. Algorithmes d'attribution de priorité du modèle DiServ. PhD thesis, ENST, Ecole Nationale Supérieure des Télécommunications, 2001. [8] Laura Chapell. Introduction à la conguration de routeurs Cisco . CampusPress, 1999. [9] Laura Chapell. Implémentation du modèle DiServ dans les routeurs Cisco . CampusPress, 2002. [10] I. Charon and A. Germa. Méthodes d'optimisation combinatoire . Masson, 1996. [11] Claudine Chassagne. Etude générale de la qos. Technical report, CNRS UREC, 1998. [12] Robert G. Batson Der-San Chen and Yu Dan. Applied Integer Programming : Modeling and Solution. Whiley, 1981. [13] Isabelle Devarenne. Études en recherche locale adaptative pour l'optimisation combinatoire. PhD thesis, Université DE Technologie DE Belfort-Monbeliard, 2007. [14] T. Jimenez E. Altman, T. Basar and N. Shimkin. Competitive routing in networks with polynomial costs. INFOCOM, 2000. [15] R. Callon E. Rosen, A. Viswanathan. Multiprotocol label switching architecture. Technical Report 3031, Network Working Group, 2001. [16] Adrian Farrel and Igor Bryskin. GMPLS : Architecture and Applications . Elsevier Inc, 2006. 92 BIBLIOGRAPHIE 93 [17] R. Fletcher and S. Leyer. Numerical experience with lower bounds for miqp branch and bound. SIAM Journal of Optimization , 8(2) :604616, 1998. [18] Sébastien Florek. Qualité de service sur réseau IP . ENSEA, 2003. [19] Robert Fourer. Modeling languages versus matrix generators for linear programming. Journal ACM Transactions on Mathematical Software (TOMS , 9(2), 1983. [20] Eric Gressier-Soudan. Réseaux et QoS. CNAM, 1999. [21] D. Gross and C. M. Harris. Fundamentals of Queueing Theory . Wiley, 1998. [22] F. Yeang-Sung Lin H. Hsu. Near-optimal constrained routing in virtual circuit networks,. INFOCOM, 2001. [23] Roberts J.W. Self-similar network trac and performance evaluation, chapter engineering for quality of service. Wiley-Interscience, 2000. [24] S. Blake K. Nichols, F. Baker, and D. Black. Dénition des champs ds dans les en-têtes d'ipv4 et ipv6. Technical Report 2474, Network Working Group, 1998. [25] S. Blake K. Nichols, F. Baker, and D. Black. Dénition des champs ds dans les en-têtes d'ipv4 et ipv6. Technical Report 2475, Network Working Group, 1998. [26] Leonard Kleinrock. Queueing Systems Theory . Wiley, 1975-1976. [27] P. Georgatsos L. Georgiadis, K. Floros and S. Sartzetakis. Lexicographically optimal balanced networks. INFOCOM, 2001. [28] Yahia Lebbah, Claude Michel, and Michel Rueher. An ecient and safe framework for solving optimization problems. Journal of Computational and Applied Mathematics , 199 :372377, 200. [29] Yahia Lebbah, Michel Rueher, and Claude Michel. A global ltering algorithm for handling systems of quadratic equations and inequations. Lecture Notes in Computer Science, 2470 :109123, 2002. [30] Jean Luc Montagnier. Les Réseaux d'entreprise par la pratique . Eyrolles, 2003. [31] J. Nocedal and S.J. Wright. Numerical optimisation. Springer, 42(5) :20762097, 2004. [32] LAI Hien Phuong, PHAM Quang Dung, Yves Deville, and HO Tuong Vinh. Modèles heuristiques et metaheuristiques en comet pour le problème bin packing. Technical Report 27, Institut de la francophonie pour l'informatique, 2008. [33] Guy Pujolle. Les Réseaux. Editions Eyrolles, 2006. [34] Philppe Robert. Réseaux et les d'attente : méthodes probabilistes . Springer, 2000. [35] David M. Gay Robert Fourer and Brian W. Kernighan. A modeling language for mathematical programming. Management Science , 36 :519554, 1990. [36] V. Sahinidis and M. Twarmalani. Baron 5.0 : Global optimisation of mixed-integer nonlinear programs. Technical report, University of Illinois at Urbana-Champaign, Department of Chemical and Biomolecular Engeneering, 2002. [37] V. Sahinidis and M. Twarmalani. Convexication and Global Optimization in Continuous and Mixed-Integer Nonlinear Programming . Kluwer Academic Publishers Group, 2002. BIBLIOGRAPHIE 94 [38] A. Sayeed and M.J. Morrow. MPLS and Next-Generation Networks : Foundations for NGN and Enterprise Virtualization . Cisco Press, 2006. [39] S. Shenker and J. Wroclawski. General characterization parameters for integrated service network elements. Technical Report 2215, Network Working Group, 1997. [40] H.D. Sherali and W.P. Adams. A Reformulation-Linearization Technique for Solving Discrete and Continuous Nonconvex Problems . Kluwer Academic Publishing, 1999. [41] W.L. Whinston. Operations Research : Applications and Algorithms , pages 569574. Duxbury Press, Boston, USA, second edition, 2003. [42] J. Wroclawski. The use of rsvp with ietf integrated services. Technical Report 2215, Network Working Group, 1997.