Tous les projets
Réseaux L3 INFO

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.

Moteur C

core/

Calcul bas niveau, algorithmes de graphe, gestion d'état des commutateurs.

modules/graph/ — Dijkstra O(n²) modules/switch/ — liens & ports modules/machine/ — terminaux main.c — boucle de commandes
stdin/
stdout
Interface Java

ui/ — MVC

Rendu graphique riche, interaction utilisateur, affichage des tables.

ui.model — Network, Switch, VCI ui.view — canvas & renderers ui.controller — interactions ui.bridge — CBridge

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

C Java Java Swing Dijkstra MVC IPC stdin/stdout Makefile

Voir le code source

Architecture hybride C/Java, MVC strict et rendu graphique interactif.

Voir sur GitHub