Ce projet simule un réseau de communication à commutation de paquets afin d’étudier les stratégies de gestion de flux à l’entrée d’un réseau. Il modélise le comportement de paquet générés par des sources, leur stockage dans des buffers, ainsi que leur transmission vers un lien de communication, tout en analysant les performances du système.
Le projet vise à :
- simuler l’arrivée de paquets selon un processus de Poisson (λ)
- gérer des files d’attente (buffers) de capacité limitée
- analyser le taux de perte de paquets
- comparer différentes stratégies de gestion de flux
Le projet est composé de deux parties principales :
partie1.py: structures abstraites de données et simulation de basepartie2.py: stratégies avancées de gestion des files d’attente
Chaque partie repose sur trois classes principales :
Source: génération des paquetsBuffer: file d’attente de stockagePaquet: unité de données du réseau
Le système permet de comparer les stratégies en fonction :
- du taux de perte des paquets
- du temps moyen d’attente
- de l'efficacité globale du réseau
Le réseau est composé d’une source et d’un buffer :
- La source génère des paquets selon une loi de Poisson
- Les paquets sont stockés dans le buffer de capacité limitée
- Si le buffer est plein, les paquets entrants sont perdus
- Les paquets présents dans le buffer sont ensuite transmis vers le lien
Les paramètres du système sont modifiables via l’interface graphique Flet.
Lors de l’exécution de partie1.py, une interface graphique s’ouvre avec :
- Démarrer : lance la simulation
- Arrivée : ajoute manuellement un paquet dans le buffer
- Slider : ajuste le taux d’arrivée des paquets (λ)
- Transmission : envoie un paquet du buffer vers le lien
- Quitter : arrête la simulation
Dans cette deuxième partie, trois stratégies sont implémentées afin de limiter le nombre de paquets perdus :
- File la plus remplie
- sélection du buffer secondaire contenant le plus de paquets
- Tour à tour
- sélection alternée entre les buffers
- Aléatoire
- sélection d’un buffer secondaire de manière aléatoire
Le réseau fonctionne avec plusieurs sources, plusieurs buffers secondaires, et un buffer principal :
- Les sources génèrent des paquets selon une loi de Poisson, qu'elles transmettent à leurs buffers secondaires
- Les paquets sont stockés dans des buffers secondaires de capacité limitée
- Si un buffer secondaire est plein, les paquets qu'il reçoit sont perdus
- Les paquets des buffers secondaires sont ensuite transmis vers le buffer principal de capacité limité, puis vers le lien
Les paramètres modifiables sont situés dans le code (lignes 300 à 325).
Lors du lancement de partie2.py, la stratégie doit être choisie dans le terminal :
1: file la plus remplie2: tour à tour3: aléatoire
Puis appuyer sur Entrée.
La simulation se déroule ensuite automatiquement sur l'interface graphique Tkinter.
Lors de l'arrêt de la simulation, les résultats sont affichés dans le terminal :
- temps moyen d'attente
- taux de perte des paquets