Simulation Réseau Routage & Circuits Virtuels - C / Java
Simulateur graphique de réseau de commutateurs : construction interactive de topologies, calcul de plus court chemin par Dijkstra, tables de routage et gestion complète de circuits virtuels avec attribution de VCI.
Démonstration
Hybride C / Java
Le projet découple intentionnellement le moteur de calcul (C) de l'interface graphique (Java Swing), reliés par un protocole texte sur stdin/stdout. La classe CBridge encapsule entièrement cette communication et maintient un cache réseau synchronisé côté Java.
core/
Calcul bas niveau, algorithmes de graphe, gestion d'état des commutateurs.
stdout
ui/ — MVC
Rendu graphique riche, interaction utilisateur, affichage des tables.
Ce que permet le simulateur
Construction interactive
Ajout de switches (1–16 ports), liens pondérés, machines — avec glisser-déposer.
Dijkstra animé
Calcul du plus court chemin entre deux machines avec animation progressive sur le graphe.
Tables de routage
Tableau HTML par commutateur avec distances, prochains sauts et meilleure route surlignée.
Circuits virtuels
Ouverture / fermeture de VC avec attribution automatique de VCI et ports IN/OUT par commutateur.
Simulation de panne
Désactivation d'un commutateur prise en compte dans les calculs Dijkstra et tables de routage.
Placement intelligent
Algorithme de maximisation d'angle pour positionner automatiquement les machines autour des switches.
Interface texte C / Java
Le moteur C expose une interface texte lue sur stdin, chaque commande retournant OK ou ERR sur stdout. La classe CBridge encapsule entièrement ce protocole.
| Commande | Effet |
|---|---|
| ADD_SWITCH <id> <ports> | Ajoute un commutateur avec N ports |
| REMOVE_SWITCH <id> | Supprime un commutateur et ses liens |
| ADD_LINK <id1> <id2> <w> | Ajoute un lien pondéré |
| REMOVE_LINK <id1> <id2> | Supprime un lien |
| ADD_MACHINE <mId> <swId> | Attache une machine à un switch |
| DIJKSTRA <src> <dst> | Calcule le plus court chemin |
| ROUTING_TABLE <swId> | Calcule la table de routage |
| SET_ACTIVE <id> <0|1> | Active ou désactive un commutateur |
| QUIT | Termine le processus C |
Technologies
Voir le code source
Architecture hybride C/Java, MVC strict et rendu graphique interactif.
Voir sur GitHub