Ce projet explore la modélisation et la simulation d’un réseau de communication complexe, inspiré du fonctionnement réel d’Internet. Il met en évidence des concepts tels que le transit IP, le backbone, les niveaux d’opérateurs (Tier 1, Tier 2, Tier 3) ainsi que le peering.
Dans ce modèle, le réseau peut être vu comme un système hiérarchique où chaque nœud joue un rôle dans la transmission des données, à la manière d’un vaste système nerveux numérique.
- Transit IP : service de transport des données entre différentes parties du réseau, assimilé aux grandes autoroutes de l’information.
- Backbone : infrastructure principale reliant les grandes zones du réseau.
- Tier 1 / Tier 2 / Tier 3 :
- Tier 1 : opérateurs de niveau supérieur avec un accès global au réseau
- Tier 2 : opérateurs intermédiaires connectés aux Tier 1
- Tier 3 : opérateurs locaux accédant au réseau via les niveaux supérieurs
- Peering : accord entre opérateurs permettant l’échange de trafic sans facturation directe
L’objectif principal est de concevoir une application capable de :
- Générer un réseau de 100 nœuds
- Répartir les nœuds en trois niveaux hiérarchiques
- Construire la table de routage de chaque nœud
- Déterminer les plus courts chemins entre nœuds
-
Graphes (NetworkX)
Le réseau est modélisé sous forme de graphe où :- les nœuds représentent les sommets
- les connexions représentent les arêtes
-
Listes et dictionnaires Python
Utilisés pour stocker :- les informations des nœuds
- les connexions
- les tables de routage
La classe Reseau génère un réseau de 100 nœuds répartis selon une structure hiérarchique et des probabilités de connexion.
Un parcours en largeur est utilisé pour vérifier que tous les nœuds sont accessibles depuis un point de départ.
Utilisé pour calculer les plus courts chemins entre les nœuds et construire les tables de routage.
La classe ReseauGraphique permet :
- l’affichage graphique du réseau avec Matplotlib
- la sélection de deux nœuds
- l’affichage du chemin le plus court entre eux
Lors de l’exécution :
Un réseau de 100 nœuds est généré La connexité du graphe est vérifiée automatiquement Si le graphe n’est pas connexe, un nouveau graphe est généré jusqu’à obtenir un réseau valide L’utilisateur peut ensuite : entrer deux nœuds pour afficher le plus court chemin interagir avec le graphe affiché cliquer sur un nœud pour afficher ses connexions dans le terminal
Le programme guide l’utilisateur via des messages affichés dans le terminal.
Ce projet met en œuvre des notions essentielles de théorie des graphes et de réseaux, notamment :
- la modélisation de réseaux complexes
- les algorithmes de parcours de graphe
- le calcul de plus courts chemins
- la visualisation de structures réseau
Il permet de simuler de manière simplifiée le fonctionnement des réseaux de communication modernes et de leurs mécanismes de routage.