Simulating Satellite Networks. Satellite networks, composed of… | by James Wanderer | MediumSitemapOpen in appSign up<br>Sign in
Medium Logo
Get app<br>Write
Search
Sign up<br>Sign in
Simulating Satellite Networks
James Wanderer
13 min read·<br>Jul 1, 2024
Listen
Share
Satellite networks, composed of thousands of inter-connected satellites in low earth orbit (about 500 km above sea level), are providing broadband network connectivity over much of the world. As discussed in draft-li-arch-st-04 and Network topology design at 27,000 km/hour, these networks are a unique and interesting environment for network design.<br>With each satellite orbiting the earth about every 90 minutes, they quickly overfly ground stations and end users, resulting in frequent hand-offs and changes to packet forwarding rules in the network. Due to the nature of the orbits, some of the inter-satellite links are not usable at high latitudes causing a predictable but continuous stream of inter-satellite link state change events.<br>It is interesting to ask, what type of networking protocols are needed to deliver reliable, scalable, and high performance broadband services with these networks? Are standard protocols able to support the demands of the network, or are special extensions required to deal with the unique environment? Is applying software defined networking technology a good approach, or is a hybrid of custom and standard networking the way to go?<br>With these questions in mind, I wondered what would be involved in building a simulation that could help in understanding the problems and evaluating protocols in a satellite network. This article describes my efforts in taking some initial steps assembling a simulator and some initial results. The code for the simulation can be found at http://github.com/jmwanderer/satellites, along with additional information in the README.md files.<br>Physical Properties<br>The modeled satellite network has a set of evenly spaced and almost circular orbits inclined at 53 degrees to the equator. Each orbit has an equal number of satellites spaced evenly around the orbit. All satellites fly at similar elevations. For more details, see another article, Visualizing Satellite Systems.
Orbits of a Satellite NetworkEach satellite has four laser network links which connect to nearby satellites. Two ports connect with the next and previous satellites on the same orbital ring, and the other two ports connect to satellites on adjacent orbital rings forming a world-wide mesh. The logical network topology is a series of interconnected rings that forms a torus. Because the orbits cross paths at the extreme north and south latitudes, the side facing links lose connectivity twice during each orbit.
Satellite Network TopologySatellites connect via radio links to ground stations and end hosts in the region below the satellite’s location. These links last as long as the satellite has good visibility to the station on earth. The satellites provide network connectivity for end hosts, and the ground stations function to traffic traffic to and from the internet.<br>Simulator Design<br>There are many options available for network simulation and emulation. With a focus on the simulation of network protocols and packet forwarding, I chose to use Mininet. Primarily targeted for use with SDN related development, Mininet can also support a virtual network that includes traditional network protocol software running in Linux network containers.<br>Network Simulation<br>I selected FRRouting for standard routing protocols such as OSPF. From a networking perspective, the protocols and applications running in the Linux containers function as if they were running on an independent system. (Information on an integrated Mininet/FRR VM image can be found here).<br>To simulate the satellite network, a Mininet node is created for each satellite, ground station, and end user. Each satellite has a name that includes the number of the orbit and the number of the satellite in the orbit. For example, R0_0 is the first satellite in the first orbit. A selected subset of the FRR protocol daemons are run for each satellite node. The mininet nodes are extended to support a loopback IP that is stable and always up regardless of the state of the network interfaces. The satellite nodes are connected via Mininet links configured for a 1 millisecond delay in a mesh pattern. Links between the ground stations and the satellites are created dynamically when the satellites are in range of the ground station.
Ground Station LinksWhile satellite networks may contain thousands of nodes, this simulation doesn’t work well at more than seven hundred nodes when running on a single high performance desktop system. I selected 26 orbits with 26 satellites per orbit for a total of 676 satellites running on a VM configured with 26 CPUs and 32GB of RAM. While a more realistic satellite network would likely contain 1600 to 3000 satellites, this smaller number is a reasonable starting point....