This algorithm is a dynamic load balancing routing algorithm for GEO/LEO hybrid satellite networks. It is based on congestion prediction, and improve QoS(quality of service) by classifying network traffic. And this algorithm is implemented by Hypatia
framework.
Keyworks: :GEO/LEO hybrid network, congestion prediction, load balancing, traffic classification, traffic detour
Algorithm overview:
Congestion prediction: This algorithm declares the network congestion area as the congestion area, and the low-orbit satellite moving to the area can predict the congestion in advance.
Traffic detour: This algorithm divides network traffic into three categories according to the sensitivity to delay, and executes different detour strategies for different traffic when the network is congested.
Details about this algorithm can be found here
.
The paper proposing this algorithm is:
{
title: Load Balancing and QoS Provisioning Based on Congestion Prediction for GEO/LEO Hybrid Satellite Networks
author: Hiroki Nishiyama, Daigo Kudoh, Nei Kato and Naoto Kadowaki
booktitle: IEEE
year: 2011
}
(In addition, I am not the author of this algorithm, I just implemented the algorithm in code and modified some details)
-
System setup:
- Python version 3.8+
- Recent Linux operating system (e.g., Ubuntu 20+)
-
Install Hypatia dependencies:
bash hypatia_install_dependencies.sh
-
Build ns3 modules:
bash hypatia_build.sh
-
Generate GEO/LEO satellite network data:
bash generate_satellite_network_data.sh
(On machine with 4 cores and 4G memory, it takes about 1 hour)
-
Run ns3 to simulate:
bash run_simulate.sh
All simulation results and log are in
paper_routing/ns3_experiments/traffic_matrix/runs
Algorithm performance picture are inpaper_routing/ns3_experiments/traffic_matrix/figures
(On machine with 4 cores and 4G memory, it takes about 5~7 hour) -
(optional) Cesium Visualization:
Before generate Cesium visualization, you need:
- Obtain a Cesium access token at https://cesium.com/
- Edit
paper_routing/ns3_experiments/traffic_matrix/satviz/static_html/top.html
, and insert your Cesium access token at line 10:Cesium.Ion.defaultAccessToken = '<CESIUM_ACCESS_TOKEN>';
After that:
bash generate_cesium_visualization.sh
It will generate
.html
file inpaper_routing/ns3_experiments/traffic_matrix/figures
. You should open it with a linux browser(e.g. Firefox) -
Change Parameter
If you want to change the parameter of this algorithm, you can readhere