Skip to content

tkqdldk/starrynet-ospf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Évaluation du protocole OSPF dans une constellation LEO avec StarryNet

Description du projet

Ce projet vise à évaluer les performances du protocole de routage OSPF (Open Shortest Path First) dans une constellation de satellites LEO (Low Earth Orbit) de type Starlink, en utilisant le framework d’émulation StarryNet.

StarryNet permet de reproduire une topologie satellite réaliste à partir de données orbitales réelles. Chaque satellite est émulé sous forme de conteneur Docker, exécutant un démon de routage réel (BIRD Internet Routing Daemon), garantissant une implémentation fidèle d’OSPF.

L’objectif principal du projet est d’analyser l’impact de la forte mobilité orbitale sur le comportement d’OSPF à travers plusieurs métriques réseau clés.


Objectifs

Les objectifs de l’étude sont les suivants :

  • Évaluer le coût de contrôle (Overhead) induit par les messages OSPF (Hello, LSUpdate, LSAck, etc.).
  • Mesurer le temps de convergence après des changements de topologie ou des pannes.
  • Quantifier la perte de paquets durant les phases d’instabilité.
  • Analyser l’allongement des chemins (Path Stretch Ratio) par rapport à l’optimum théorique.
  • Observer l’évolution de la latence de bout en bout (RTT).

Architecture des fichiers

Note importante
L'émulation réseau en temps réel sur une constellation à grande échelle est extrêmement gourmande en ressources. Les scripts d'émulation originaux peuvent s'exécuter indéfiniment ou saturer la machine hôte.

Pour pallier cela, le projet propose deux approches complémentaires :

  • Scripts d'Évaluation (*_eval.py et .sh)
    Lancent l'émulation StarryNet et génèrent des données brutes (logs, pings, captures PCAP, tables de routage).

  • Scripts d'Interprétation (*_outputs_only.py)
    Conçus pour analyser les fichiers de sortie déjà générés sans relancer l'émulation complète, permettant un gain de temps considérable.


1. Fichiers de configuration et d'installation

  • config.json
    Définit les paramètres de la constellation (10 orbites × 25 satellites), l'altitude (550 km) et les politiques de handover.
    Contient également les identifiants de connexion SSH pour piloter l'émulation.

  • install.sh
    Script d'installation des dépendances système et du CLI StarryNet (sn).

  • setup.py
    Fichier standard pour l'installation du package Python starrynet.

  • tools/requirements.txt
    Liste des bibliothèques Python requises (paramiko, skyfield, sgp4, etc.).


2. Scripts d'émulation et de capture (génération des données)

  • OSPFOverhead.sh
    Script Bash automatisé utilisant tcpdump à l'intérieur des conteneurs Docker pour capturer le trafic OSPF.
    Les fichiers PCAP sont ensuite analysés avec tshark afin d’extraire :

    • Le nombre de messages Hello, LSUpdate et LSAck
    • Le volume de données échangées (en octets)
  • ospf_path_latency_eval.py
    Lance l'émulation et effectue des mesures de latence entre satellites et stations au sol.

  • ospf_loss_convergence_eval.py
    Provoque des pannes aléatoires (set_damage) afin d'observer la réaction d’OSPF et mesurer la convergence.


3. Scripts d'interprétation (analyse des résultats)

  • path_latency_outputs_only.py
    Analyse les résultats de ping afin de calculer le ratio entre la latence mesurée et la distance géodésique idéale.

  • ospf_packet_loss_convergence_time_outputs_only.py
    Calcule le temps de convergence à partir des interruptions de connectivité observées.

  • analyse_outputs_only.py
    Regroupe plusieurs analyses afin de fournir une vue d’ensemble des performances d’OSPF.

  • reliability_table.py
    Génère un tableau de fiabilité du réseau à partir des données de simulation.


Métriques extraites

Les résultats sont exportés sous plusieurs formats afin de faciliter l'analyse académique :

  • ospf_metrics.csv
    (Généré par OSPFOverhead.sh)
    Détaille, par satellite, le volume de trafic de contrôle et le nombre estimé de calculs SPF.

  • ospf_latency_stretch.csv
    Rapport sur l’allongement des chemins par rapport à l’algorithme de Dijkstra optimal.

  • plots/
    Contient les visualisations graphiques (PNG) de la latence et du path stretch.


Comment lancer l’évaluation ?

1. Préparation du serveur

  • Vérifier que Docker est installé et actif.
  • S'assurer que l’utilisateur appartient au groupe docker.
  • Vérifier que le serveur SSH accepte les connexions locales.

2. Lancement de l’émulation

python3 ospf_path_latency_eval.py

About

Used the StarryNet platform to investigate the OSPF routing protocol within a Starlink satellite constellation network.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors