Routage compact. 1 Préambule. 2 Détail du sujet. Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr. 2.1 Un modèle de routage



Documents pareils
Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Les structures de données. Rajae El Ouazzani

Chp. 4. Minimisation d une fonction d une variable

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Cryptographie et fonctions à sens unique

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Programmation linéaire

MIS 102 Initiation à l Informatique

Big Data et Graphes : Quelques pistes de recherche

ARBRES BINAIRES DE RECHERCHE

COURS SYRRES RÉSEAUX SOCIAUX INTRODUCTION. Jean-Loup Guillaume

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

BACCALAUREAT GENERAL MATHÉMATIQUES

Introduction à la théorie des graphes. Solutions des exercices

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Chapitre 5 : Flot maximal dans un graphe

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Resolution limit in community detection

Chapitre 11 : Le Multicast sur IP

Application 1- VBA : Test de comportements d'investissements

Big Data et Graphes : Quelques pistes de recherche

Master d'informatique 1ère année. Réseaux et protocoles. Architecture : les bases

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

La NP-complétude. Johanne Cohen. PRISM/CNRS, Versailles, France.

Plus courts chemins, programmation dynamique

FIMA, 7 juillet 2005

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Parallélisme et Répartition

Plan du Travail. 2014/2015 Cours TIC - 1ère année MI 30

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Cours des réseaux Informatiques ( )

Pourquoi l apprentissage?

Polytech Montpellier IG PROJET C Réseaux sociaux : recherche de composantes fortement connexes

Chapitre VI - Méthodes de factorisation

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

Sommaire. Introduction. I. Notions de routage a) Technologies actuelles b) Avantages et désavantages

LE PROBLEME DU PLUS COURT CHEMIN

Réseaux grande distance

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Transmission d informations sur le réseau électrique

TCP/IP, NAT/PAT et Firewall

Plateforme de capture et d analyse de sites Web AspirWeb

Conception de réseaux de télécommunications : optimisation et expérimentations

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

EP A1 (19) (11) EP A1 (12) DEMANDE DE BREVET EUROPEEN. (43) Date de publication: Bulletin 2011/26

Le service IPv4 multicast pour les sites RAP

La gestion de données dans le cadre d une application de recherche d alignement de séquence : BLAST.

Plateforme Systempay. Correspondance entre SP PLUS et SYSTEMPAY Paiement Simple et en plusieurs fois

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Les Difficultés Inhérentes aux Réseaux Sans Fil. Des Solutions aux Scénarios de Problèmes

Programmation Linéaire - Cours 1

Rétablissement d un réseau cellulaire après un désastre

BACCALAURÉAT GÉNÉRAL SÉRIE SCIENTIFIQUE

Arbres binaires de recherche

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Algorithmique et Programmation, IMA

IFT3245. Simulation et modèles

1 Recherche en table par balayage

Gestion des Clés Publiques (PKI)

INF601 : Algorithme et Structure de données

Modélisation multi-agents - Agents réactifs

Architecture des Systèmes d Information Architecture des Systèmes d Information

Une introduction aux codes correcteurs quantiques

Analyse empirique et modélisation de la dynamique de la topologie de l Internet

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Systèmes et Réseaux (ASR 2) - Notes de cours Cours 14

Protocoles réseaux. Abréviation de Binary Digit. C'est la plus petite unité d'information (0, 1).

Eléments de Théorie des Graphes et Programmation Linéaire

Scanner intra-oral Lava C.O.S. numérique. au cabinet dentaire

Cours de Recherche Opérationnelle IUT d Orsay. Nicolas M. THIÉRY. address: Nicolas.Thiery@u-psud.fr URL:

L exclusion mutuelle distribuée

Cryptographie. Cours 3/8 - Chiffrement asymétrique

Réseaux IUP2 / 2005 IPv6

TP 2 Réseaux. Adresses IP, routage et sous-réseaux

CAHIER DES CLAUSES TECHNIQUES

Atelier Transversal AT11. Activité «Fourmis» Pierre Chauvet.

TP1 Méthodes de Monte Carlo et techniques de réduction de variance, application au pricing d options

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Jean-Philippe Préaux

H.323. Internet Multimédia. Sommaire

Ebauche Rapport finale

REALISATION d'un. ORDONNANCEUR à ECHEANCES

données en connaissance et en actions?

Quelques tests de primalité

Spécifications de raccordement au service de Téléphonie sur IP (ToIP) de RENATER

III- Raisonnement par récurrence

Introduction à l étude des Corps Finis

Efficacité énergétique des réseaux de cœur et d accès

HYBIRD 120 GE POUR LES NULS

Algorithmique et langages du Web

Transcription:

Routage compact Sujet proposé par Gilles Schaeffer Gilles.Schaeffer@lix.polytechnique.fr URL de suivi : http://www.enseignement.polytechnique.fr/profs/informatique/ Gilles.Schaeffer/INF431/projetX06.html 1 Préambule On s intéresse à la programmation des routeurs dans un réseau de communication : en chaque nœud du réseau, un routeur reçoit les messages et choisi en fonction de leur destination un voisin auquel les retransmettre ; quelle information donner à chaque routeur pour lui permettre de faire son travail, sans forcément lui demander de connaître tout le réseau. Si on est sur une grille, on peut facilement donner au routeur un sens de l orientation : il lui suffit de comparer les coordonnées du point courant à celle de la destination pour savoir par où envoyer le message... Attention : du point de vue de la programmation il s agit essentiellement d un projet d algorithmique sur les graphes, ne nécessitant aucune compétence particulière en réseau (pas de sockets ou autres). 2 Détail du sujet 2.1 Un modèle de routage On modélise un réseau de communication point à point par un graphe non orienté connexe dans lequel on veut pouvoir faire circuler un message d un sommet à un autre à l aide de routeurs indépendants placés sur les sommets. L objectif de ce projet est d implanter et de comparer des politiques de routage dans un tel réseau. Une politique de routage est constituée de : L algorithme de routage qui sera appliqué par chaque routeur pour décider lorsqu un message lui arrive à quel voisin le renvoyer. L algorithme d initialisation du réseau qui, étant donné un graphe G = (V, E), construit un annuaire : chacun des n sommets du graphe est renuméroté par un entier de {1,..., n}, et ces étiquettes seront utilisées dans l entête des messages pour indiquer la destination ; 1

et initialise les routeurs en donnant à chacun l information sur G dont il a besoin. L algorithme de routage est le même pour tous les routeurs mais chaque routeur reçoit à l initialisation une information différente, qu il utilise par la suite pour faire son travail. Lorsqu on veut envoyer un message à partir d un point du réseau, il faut payer l accès à l annuaire pour connaître l étiquette de la destination, inscrire cette étiquette dans l entête du message, et donner le message à un premier routeur. Celui ci applique l algorithme local de routage et le message part alors vers un voisin qui a son tour, en fonction de l entête, le transmettra à un de ces voisins, et ainsi de suite jusqu à ce que le message rejoigne la destination. L entête n est jamais modifié et l annuaire n est consulté qu une fois au début par l expéditeur. 2.2 Routage par tables de routage Une première méthode de routage consiste à donner à chaque routeur la connaissance de tout le graphe et à lui faire calculer un plus court chemin vers la destination pour choisir le voisin auquel transmettre un message. Plutôt que de refaire ce calcul à chaque fois qu un message arrive il paraît naturel de le faire une bonne fois pour toute au début, ou autrement dit de faire faire le calcul à l initialisateur et de stocker au niveau de chaque noeud une table de routage qui indique pour chaque destination possible, le numéro du voisin. Cette méthode est appelée routage par tables de routage. 2.3 Compacité du routage et routage par intervalles Dans le routage par tables de routage, on fabrique une table à n entrée pour chaque sommet, soit au total un espace Õ(n2 ) (le tilde indique qu on travaille aux facteurs logarithmiques près : il faudrait tenir compte du fait qu il faut log n bits pour indiquer un voisin, soit une table de taille Θ(n log n) en chaque sommet). Le problème du routage compact consiste à chercher une politique dans laquelle on stocke moins d information au niveau de chaque routeur. Une première idée pour compacter l information de routage est d essayer de regrouper sur chaque sommet les étiquettes qui partagent une même arête de sortie en intervalles et d étiqueter les arêtes par ces intervalles au lieu de stocker la table explicitement. On peut appliquer cette méthode à n importe quel étiquetage, il y aura alors plusieurs intervalles pour chaque arête de sortie, et la compacité effective de cette méthode dépend du fait que les étiquettes soient bien choisies (pour que le nombre d intervalles soit petit). 2.4 Routage par intervalles le long d un arbre et élongation Si le graphe du réseau est un arbre il existe un routage par intervalle tel qu il y ait exactement un intervalle sur chaque arête incidente à un sommet (on considère des intervalles modulo n). En effet enracinons l arbre en un sommet x et numérotons les sommets par un parcours préfixe en profondeur d abord de sorte à avoir la propriété fondamentale suivante. Si les fils 2

d un sommet x numéroté a ont les étiquettes a 1,..., a k (a 1 = a + 1), alors les étiquettes des sommets du i-ème sous-arbre de x forment l intervalle [a i, a i+1 1] pour 1 i < k et [a k, b] pour le dernier sous-arbre, où b est l étiquette du premier frère de x après lui. De plus les sommets qui ne sont pas dans le sous-arbre enraciné en x forment l intervalle cyclique [b, a 1] (autrement dit [b, a 1] = [b, n] [1, a 1]). Avec cet étiquetage, l arête qu il faut emprunter à partir du sommet x pour rejoindre un sommet z d étiquette k est donnée par l intervalle contenant k. Puisqu il y a un unique chemin entre toute paire de sommets sur un arbre ce schéma donne un routage par plus court chemin. On peut montrer cependant qu il n existe pas pour les graphes quelconque de politique utilisant ainsi des plus courts chemins et un espace total significativement plus faible que les tables de routages. Pour compacter l information de routage on décide donc d autoriser l utilisation de chemins non optimaux. La méthode du routage par intervalles sur les arbres s étend alors immédiatement à un graphe quelconque en effectuant le routage sur le long d un arbre couvrant. Étant donné une politique de routage, on mesure la qualité des chemins qu elle utilise par son facteur d élongation : le maximum du rapport entre (longueur du chemin utilisé de u à v) et (distance de u à v), le maximum étant pris sur toutes les paires de sommets dans tous les graphes possibles. Le but est alors de trouver les meilleurs compromis possibles entre la mémoire utilisée par les routeurs et le facteur d élongation. Le routage le long d un arbre est à un extrème du spectre : il n y qu un intervalle par arête (c est donc très compact), mais il n y a pas de borne sur l élongation (on cherchera des exemples). 2.5 Routage par intervalles avec pivots Il s agit d un algorithme basé sur la notion de pivot qui fournit un étiquetage et des intervalles garantissant un facteur d élongation de 5 pour un nombre d intervalle par sommet qui est Õ( n). Cet algorithme est décrit dans l article Compact rooting schemes with low stretch factor de T. Eilam, C. Gavoille et D. Peleg, paru à la revue Journal of Algorithms en 2003, et disponible à l adresse http://dept-info.labri.fr/~gavoille/article/egp03. 3 Travail demandé L implantation d un schéma de routage prendra la forme de 2 exécutables : un initialiseur, qui prend en entrée le nom d un fichier où sera donné le graphe décrivant le réseau et qui construit l annuaire et les données fournies à chaque routeur un routeur, qui prend en entrée l étiquette du routeur courant et l étiquette de la destination, et qui renvoit l étiquette du routeur suivant auquel le message est envoyé. Il est demandé d implanter en premier lieu deux schémas de routage qui feront une renumérotation triviale lorsque les étiquettes des sommets sont déjà les entiers {1,..., n} (et qui numérote les sommets arbitrairement sinon) : d une part le routage par tables de routage, 3

et d autre part le routage par intervalles. Il faut donc ici écrire 2 paires (initialiseur, routeur). Dans un deuxième temps on utilisera la possibilité de renuméroter les sommets pour implanter le routage par intervalles le long d un arbre couvrant. Enfin, optionnellement on écrira un routeur par intervalles avec pivot. Dans les 2 cas, il doit suffire ici de réécrire un initialiseur, le routeur par intervalles restant inchangé. Ces algorithmes seront complétés par 2 exécutables nécessaires au test des schémas de routage : un générateur qui construit des graphes aléatoires : de type Erdös-Renyi : étant donné un entier n et un réel 0 < p < 1, le graphe aléatoire G n,p a n sommets étiquetés {1,..., n} et contient l arête (i, j) avec probabilité p, indépendamment pour tous i < j dans {1,..., n} et de type attachement préférentiel : le graphe est construit en ajoutant les sommets un à un ; chaque nouveau sommet est connecté à un sommet déjà existant ; pour déterminer où on s attache on choisit uniformément une arête déjà existante et on s attache à l une des 2 extrémités avec proba 1/2 pour chaque côté. (Ces deux types de graphes sont les modèles de réseaux aléatoires les plus célèbres.) un simulateur, qui prend un sommet origine et un sommet destination et qui simule le trajet d un message dans le graphe à l aide d appels successifs à l exécutable routeur ; La sortie de la simulation est laissée à votre appréciation. 3.1 Format d entrée et sortie Les formats d entrée et de sortie seront normalisés de façon à ce que les schémas de routage puissent être testés avec d autres graphes et simulateurs que celui du binôme. Ainsi l initialisateur doit pouvoir être invoqué en ligne de commande par un appel du type initialiseur mongraphe.graphml où le fichier mongraphe.graphml décrit le graphe du réseau au format graphml disponible à l adresse http://graphml.graphdrawing.org/primer/graphml-primer.html (ce format est très complet mais il n est demandé que de savoir gérer les balises <graph>, <node> et <edge>) L initalisateur doit créer différents fichiers dans le répertoire courant : Le fichier annuaire : une ligne par sommet : identifiant-graphml ; numéro. Pour chaque i dans {1,..., n}, un fichier table-i.data contenant les données fournies au routeur numéro i (format à votre convenance). Le routeur doit pouvoir être invoqué en ligne de commande (ou par un appel système) du type routeur numero message où numero est le numero du routeur appelé et message est le numéro du sommet destination (pour les besoins de la simulation on a bien sûr pas besoin de donner un contenu au message). Le routeur utilisera le numero pour accéder à son fichier table-numero.data (et n a le droit d accéder à aucun autre fichier). 4

3.2 Critères d évaluation En plus des critères standards d évaluation du projet rappelés sur la page web des projets, on sera attentif aux critères suivants : Compacité du schéma : la somme de la taille des fichiers mis à disposition des routeurs ; c est l information qu on doit distribuer dans le réseau. Simplicité du code routeur : ce code va être implanté sur plein de petits routeurs. Élongation des chemins : mesure l efficacité du schéma de routage. 4 Extensions possibles Comme déjà dit plus haut, une extension bienvenue mais pas obligatoire est d implanter la politique d Eilam, Gavoille et Peleg donnant un schéma de routage par intervalle avec élongation au plus 5 et mémoire totale en Õ(n3/2 ) (aux facteurs logarithmiques près). Cet algorithme fournit un schéma de routage par intervalle : si le routeur par intervalle a bien été écrit, il n y a donc qu à réécrire un nouvel initialisateur. 5