Available nodes

 Simulation à temps discret d'un coeur de réseau

Les opérateurs réseau (Orange, SFR, Free, Numericable, Bouygues...) sont confrontés au problème du dimensionnement de leur réseau (on parle en anglais de network provisioning). Il s'agit d'un problème de décision de la taille de différents paramètres du réseau pour fournir un "bon" service aux clients (il existe plusieurs critères pour définir la qualité d'un service rendu). D'une part, si l'opérateur exploite un réseau sur-dimensionné, le coût des infrastructures est trop grand: l'opérateur risque d'augmenter les tarifs, de devenir non-concurrentiel et même de gaspiller des ressources. D'autre part, si le réseau exploité est sous-dimensionné, le service offert est médiocre et les clients sont mécontents.
Face à ce problème, les opérateurs ont besoin d'évaluer les performances de leur réseau avant même de le déployer car il est souvent difficile de faire évoluer un système déjà existant. L'objectif de ce projet consiste à créer un simulateur de réseau pouvant aider à dimensionner correctement un réseau. Une méthode consiste à créer un simulateur "à temps discret" qui échantillonne le temps. Ce simulateur prend en compte la topologie physique du réseau et les capacités des liens entre les différents équipements. Il permet de détecter d'éventuels goulots d'étranglement du trafic des clients, de taux de pertes trop importants, voire même de donner une indication sur le comportement du réseau en cas de panne de certains équipements.

 Planning de développement (indicatif)

Afin de mettre en place ce simulateur, il s'agira de :
  • Définir clairement les éléments qui constituent le réseau (les équipements, les interfaces, les paquets ...), ainsi que la façon de les représenter en C.
A ce stade, vous devrez avoir une idée claire du fonctionnement du réseau, et en particulier prévoir la manière dont vont intervenir les capacités des liens et des routeurs, les tables de routage, ainsi que les pertes de paquets dans votre réseau.
  • Permettre de définir la topologie du réseau à travers des fichiers de configuration représentant les arêtes du réseau et les tables de routage, et de le visualiser. La topologie et le routage seront représentés par des fichiers dont la syntaxe sera prédéfinie.
  • Fournir des outils de diagnostique simple du réseau, comme un équivalent de la fonction traceroute (8). Il s'agit du minimum requis pour atteindre la moyenne.
  • Permettre de simuler le réseau, à travers un envoi de paquet basique avec simulation temporelle. Les injecteurs de trafic fonctionneront avec des lois de probabilité d'arrivée (déterministes, poissoniennes...).
  • Mesurer la performance du réseau, en permettant de visualiser la charge des noeuds, les taux de perte de paquets, les temps moyens de transfert pour les clients, et ce pour différentes tailles de fichiers.
  • Calculer automatiquement des tables de routage, en prenant en compte les performances calculées ci-dessus pour le calcul, voire en suggérant de meilleures topologies.
  • Vérifier la rationnalité du routage du réseau, en détectant les boucles dans le routage, dans la topologie physique ...
Les outils collaboratifs seront utilisés: une forge est mise à disposition avec un accès SVN pour chaque équipe, un bugtracker et un wiki. L'évaluation prendra en compte l'utilisation de ces outils collaboratifs ainsi que la qualité globale du projet: création d'un Makefile, d'une documentation utilisateur et développeur (le format doxygen est recommandé), lisibilité et commentaires dans le code.

 Contact

Encadrants : Julien ALLALI, Emmanuel JEANNOT, Rémi SHARROCK, Corentin TRAVERS