A satellite communication network simulation system and method

By converting the satellite network configuration through software simulation and generating multi-dimensional visual charts and dynamic topology diagrams, the problems of high cost and low efficiency in existing technologies are solved, low-cost and efficient satellite communication simulation is achieved, and simulation effects and decision-making efficiency are improved.

CN120151214BActive Publication Date: 2025-10-10BEIJING UNIV OF POSTS & TELECOMM
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510400965.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-04-01
Publication Date
2025-10-10
Estimated Expiration
2045-04-01

AI Technical Summary

Technical Problem

Existing DTN deep space network simulation solutions rely on specific hardware equipment, which is complex and costly to configure. It is difficult to achieve low-cost, high-efficiency multi-dimensional simulation, and the simulation effect is not comprehensive enough.

Method used

A satellite communication network simulation system is provided, which includes a data processing module, a simulation module and a visualization module. The system converts the satellite network configuration through software simulation, generates multi-dimensional visualization charts and dynamic topology diagrams, lowers the technical threshold, and realizes low-cost and efficient simulation.

Benefits of technology

It achieves low-cost and efficient satellite communication simulation and provides multi-dimensional simulation results. Users can intuitively view changes in network performance indicators and improve decision-making efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120151214B_ABST
    Figure CN120151214B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of satellite communication simulation, and discloses a satellite communication network simulation system and method. The system comprises a data processing module, which is used for generating a contact plan based on a DTN satellite network configuration and constructing a configuration file according to user-specified configuration parameters; determining real-time positions and connection relationships of nodes in a simulation period and generating multi-dimensional visual charts based on simulation result data; a simulation module, which is used for performing software simulation in the simulation period according to the configuration file and the contact plan, simulating data transmission between the nodes in a satellite network topology and outputting simulation result data in real time; and a visualization module, which is used for creating multi-orbit animations and dynamic topology graphs based on the real-time positions and the connection relationships; and the multi-orbit animations, the dynamic topology graphs and the visual charts are displayed on a result interface. Through the system, low-cost, easy-to-operate, efficient and multi-dimensional DTN network satellite communication simulation can be realized, and the decision-making efficiency of technical personnel is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of satellite communication simulation technology, and in particular to a satellite communication network simulation system and method. Background Art

[0002] With continuous advancements in satellite navigation and deep space exploration, space exploration activities are rapidly increasing, and space mission requirements are becoming increasingly complex. Space networks are characterized by heterogeneous subnets, rapidly changing network topologies, high link latency, and high bit error rates. These characteristics significantly limit the application of traditional TCP / IP protocols in space networks. Delay-Tolerant Networking (DTN) is a network model specifically designed for high-latency and interruption-prone network scenarios. By introducing a "store-and-forward" mechanism between nodes, it can cope with sparsely populated and power-constrained space communication environments. Consequently, DTN networks have gradually become a common network protocol in space communication environments.

[0003] Before deploying a communication network in space, it is necessary to conduct preliminary multi-scenario simulations. This involves simulating and experimentally verifying test data for different application types, providing network performance indicators under different circumstances for technical personnel to use as a reference to determine the deployment strategy for the communication network. Current simulation solutions for deep space networks (DTNs) have limitations. The simulation process relies on specific hardware support, and the simulation configuration is overly complex, requiring high labor, time, and hardware costs, resulting in low simulation efficiency. Furthermore, current simulation solutions are limited to specific dimensions and indicators, making it difficult for technical personnel to conduct a comprehensive analysis of the communication performance of satellite networks, resulting in poor simulation results. Therefore, it is necessary to find a low-cost, multi-dimensional satellite communication simulation solution that meets user needs. Summary of the Invention

[0004] In view of this, the present application aims to propose a satellite communication network simulation system and method to achieve low-cost, high-efficiency, multi-dimensional DTN network satellite communication simulation.

[0005] To achieve the above objectives, the technical solutions of this application are as follows:

[0006] A first aspect of an embodiment of the present application provides a satellite communication network simulation system, the system comprising:

[0007] A data processing module is used to convert the satellite network configuration based on the DTN network into a connection plan and construct a configuration file according to the configuration parameters specified by the user; the connection plan is used to indicate the connection relationship and communication capability between nodes;

[0008] A simulation module, configured to perform software simulation within a simulation cycle according to the configuration file and the connection plan, simulate data transmission between nodes in the satellite network topology, and output simulation result data in real time;

[0009] The data processing module is further used to determine the real-time position and connection relationship of the nodes within the simulation period, and generate a multi-dimensional visual chart based on the simulation result data;

[0010] The visualization module is used to create a multi-track animation and a dynamic topology diagram based on the real-time position and connection relationship; and display the multi-track animation, the dynamic topology diagram and the visualization chart on the result interface.

[0011] Optionally, the simulation module includes:

[0012] a central configurator, configured to initialize a simulation entity according to the configuration file and the contact plan;

[0013] The application layer is used to simulate the creation, reception, and management of data packet events in each node;

[0014] The port layer is used to simulate the physical communication between node ports, including connection, storage, forwarding delay, and packet loss;

[0015] The DTN layer includes:

[0016] A scheduling module, configured to receive data packets sent by the application layer and determine a scheduling order for the data packets according to a scheduling policy in the configuration file; the scheduling policy is any one of the following: a priority policy, a queue length policy, or a FIFO policy;

[0017] a routing module, configured to determine a path for a data packet from a source node to a destination node based on a routing algorithm and a transmission protocol in the configuration file; and to send data packets that cannot be forwarded temporarily to a cache forwarding module; the routing algorithm being any one of the following: Dijkstra, CGR, CMR, or optimized CGR; and the transmission protocol being any one of the following: TCP, UDP, or LTP;

[0018] The cache forwarding module is used to schedule and send the data packet according to the path determined by the routing module; and cache the data packet to be sent.

[0019] Optionally, when the routing algorithm is optimized CGR, the routing module is specifically configured to perform the following steps:

[0020] executing a first routing algorithm based on the data packet to be transmitted, determining a first number of paths with the lowest delay from the current connection graph, and recording the paths in a feasible route list;

[0021] Determine the path with the lowest delay in the feasible route list as the preset route;

[0022] Determine whether the preset route is a valid route; if it is a valid route, determine a next hop node based on the valid route, and send information about the next hop node to the cache forwarding module; if it is an invalid route, traverse the remaining paths in the feasible route list and determine a valid route with the lowest latency to replace the preset route;

[0023] The cache forwarding module is specifically configured to add the data packet to a sending queue associated with the next hop node, and sequentially send the data packets in the sending queue within the associated time with the next hop node.

[0024] Optionally, the routing module is configured to execute a first routing algorithm based on the data packet to be transmitted, determine a first number of paths with the lowest latency from the current connection graph, and record the paths in a feasible routing list, specifically including:

[0025] Obtain all paths based on the source node and destination node of the data packet;

[0026] Determine the corresponding delay weight based on the one-way optical delay and transmission window between each node;

[0027] Calculate the overall delay of each path based on the delay weight;

[0028] All paths are sorted from low to high according to the overall delay, and the paths with the highest number of sorting are selected and added to the feasible routing list.

[0029] Optionally, the routing module is configured to determine whether the preset route is a valid route, specifically including:

[0030] Read the data header of the data packet to obtain the node information visited by the data packet;

[0031] Comparing the visited node information with the preset route to determine whether there is duplicate node information; if there is duplicate node information, determining that a loop exists;

[0032] If there is no duplicate node information, determining whether the data packet can be successfully sent within the contact duration based on the contact access repetition degree, contact duration, and remaining cache capacity of the nodes between the nodes in the preset route; if the data packet cannot be successfully sent, determining that a loop occurs;

[0033] If no loop exists and no loop is generated, the preset route is determined to be a valid route; if a loop exists or a loop is generated, the preset route is determined to be an invalid route.

[0034] Optionally, the routing module is further configured to, when all paths in the feasible routing list are invalid routes, determine a next hop node based on the preset route, and send information of the next hop node to the cache forwarding module;

[0035] The cache forwarding module is further configured to add the data packet to a cache queue associated with the next hop node, wait for all data packets in the associated sending queue to be sent, and then send the data packets in the cache queue in sequence.

[0036] Optionally, the central configurator is further configured to set the priority of the data packet creation event according to the configuration file;

[0037] The application layer is further configured to create data packet events of different priorities within the simulation cycle;

[0038] The scheduling module is further configured to, when the scheduling policy is a priority policy, instruct the routing module to determine a corresponding route according to the priority of the data packet; and, based on the information of the next hop node determined by the routing module, instruct the cache forwarding module to schedule each data packet according to the priority of the data packet;

[0039] The cache forwarding module is further configured to cache data packets that are temporarily unable to be sent in a cache queue in descending order of priority;

[0040] The port layer is further configured to receive returned data packets and insert them into the sending queue of the corresponding connection in descending order of priority.

[0041] Optionally, the simulation result data includes: a Bundle Map and a sqlite database file; the Bundle Map is used to reflect the transmission information of the data packet of each node; the sqlite database file is used to reflect the data packet delay information and forwarding hop information;

[0042] The data processing module is further configured to generate a multi-dimensional visualization chart based on the simulation result data, specifically comprising: analyzing the SQLite database file and the Bundle Map at a first time interval to generate a multi-dimensional visualization chart; the multi-dimensional chart comprising: communication delay, network throughput, and packet loss rate;

[0043] The visualization module is specifically used to render the result interface through the Cesium.js library, so as to display the multi-dimensional visualization chart in real time.

[0044] Optionally, the data processing module is further configured to determine the real-time positions and connection relationships of the nodes within the simulation period, specifically comprising: determining orbital parameters of the Earth orbit, the Moon orbit, and the Earth-Moon orbit based on the connection plan, calculating the real-time position of each node in the orbit within the simulation period according to each orbital parameter, and recording the position in the corresponding orbital position list; determining the contact time between each node within the simulation period based on the connection plan, calculating the position and display status of the real-time connection line between each node based on the contact time and the orbital position list, and recording the position and display status in the connection line list;

[0045] The visualization module is also used to create multi-orbit animations and dynamic topology maps based on the real-time positions and connection relationships, specifically including: determining the animation duration based on the simulation cycle; creating a three-dimensional model of the earth and a three-dimensional model of the moon, and obtaining a three-dimensional satellite model specified by a user; rendering multiple orbital animations on the earth orbit, the moon orbit, and the earth-moon orbit respectively through the Cesium.js library according to the orbital position list, the animation duration, the three-dimensional model of the earth, the three-dimensional model of the moon, and the three-dimensional model of the satellite; superimposing the multiple orbital animations to obtain a multi-orbit animation; and rendering a dynamic topology map through the Cesium.js library according to the connection line list, the orbital position list, and the three-dimensional satellite model.

[0046] According to a second aspect of an embodiment of the present application, a satellite communication network simulation method is provided, which is applied to the system provided in the first aspect of the embodiment of the present application, and the method includes:

[0047] Converting the satellite network configuration based on the DTN network into a connection plan and constructing a configuration file based on the configuration parameters specified by the user; the connection plan is used to indicate the connection relationship and communication capabilities between nodes;

[0048] Performing software simulation within a simulation cycle according to the configuration file and the connection plan to simulate data transmission between nodes in the satellite network topology and output simulation result data in real time;

[0049] Determine the real-time position and connection relationship of the nodes within the simulation period, and generate a multi-dimensional visualization chart based on the simulation result data;

[0050] Based on the real-time position and connection relationship, a multi-track animation and a dynamic topology diagram are created; and the multi-track animation, the dynamic topology diagram and the visual chart are displayed on a result interface.

[0051] The satellite communication network simulation system provided in this application automatically converts the satellite network configuration of the DTN network generated by the STK tool into a contact plan that meets the simulation requirements through the data processing module, and constructs the configuration file required for the simulation based on the configuration parameters specified by the user in the front-end interface. The user does not need to have an in-depth understanding of the system's underlying operating technology and programming language expertise. The system automatically generates a configuration file that meets the requirements for subsequent use, thereby lowering the technical threshold for satellite communication simulation.

[0052] Based on the contact plan and configuration file, the simulation module executes software simulation operations for DTN network satellite communications within a user-specified simulation cycle and continuously outputs simulation result data during the simulation cycle. This solution uses the simulation module to simulate data communications between nodes in the satellite network topology, eliminating the need for deploying additional hardware and achieving low-cost, highly efficient satellite communication simulation. During the simulation, the data processing module processes the real-time simulation result data to generate multi-dimensional visualization charts. The visualization module displays these multi-dimensional visualization charts in real time on the results interface, allowing users to intuitively view the real-time behavior of nodes and changes in various performance indicators.

[0053] In addition, the visualization module integrates multi-orbit animations and satellite node dynamic topology diagrams in the simulation result interface based on the real-time positions and connection relationships of nodes during the simulation process output by the data processing module, allowing users to more intuitively understand the relationship between network behavior and space link dynamics, thereby providing comprehensive simulation reference information and improving decision-making efficiency. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following briefly introduces the drawings required for use in the description of the embodiments of the present application. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.

[0055] Figure 1 is a schematic diagram of a satellite communication network simulation system proposed in one embodiment of the present application;

[0056] Figure 2 is a schematic diagram of the architecture of a simulation module in one embodiment of the present application;

[0057] Figure 3 This is a schematic diagram of the architecture of the DTN layer in one embodiment of the present application;

[0058] Figure 4 This is a flow chart of a satellite communication network simulation method proposed in one embodiment of the present application;

[0059] Figure 5This is a box plot of the overall network delay distribution that compares the CGR algorithm and the customized optimized CGR algorithm.

[0060] Figure 6 This is a network jitter curve chart of the third node (lunar satellite) for simulation comparison of the CGR algorithm and the customized optimized CGR algorithm. DETAILED DESCRIPTION

[0061] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are part of the embodiments of this application, not all of them. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0062] It should be understood that references throughout this specification to "one embodiment" or "an embodiment" mean that a particular feature, structure, or characteristic associated with the embodiment is included in at least one embodiment of the present application. Therefore, the appearances of "in one embodiment" or "in an embodiment" throughout this specification do not necessarily refer to the same embodiment. Furthermore, these particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

[0063] In the various embodiments of the present application, it should be understood that the size of the serial numbers of the following processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0064] Exemplary embodiments will be described in detail herein, with examples illustrated in the accompanying drawings. When the following description refers to the drawings, identical numerals in different figures represent identical or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments are not intended to represent all embodiments consistent with the present application. Rather, they are merely examples of apparatuses and methods consistent with certain aspects as detailed herein.

[0065] It should be noted that, unless there is any conflict, the embodiments and features in the embodiments of this application can be combined with each other.

[0066] This application addresses the characteristics of space networks, such as heterogeneous subnets, rapidly changing network topologies, high link latency, and high bit error rates. This application proposes a simulation system for the DTN protocol stack. This system enables software simulation of multi-dimensional performance indicators, meeting user needs for comprehensive satellite network performance analysis. Simulation results are visualized with dynamic topology charts and real-time multi-orbit animations, allowing users to more intuitively view indicator changes during the simulation process. This application will be described in detail below with reference to the accompanying drawings and in conjunction with examples.

[0067] Figure 1 FIG. 1 is a schematic diagram of a satellite communication network simulation system proposed in one embodiment of the present application. Figure 1 As shown, the system includes:

[0068] A data processing module is used to convert the satellite network configuration based on the DTN network into a connection plan and construct a configuration file according to the configuration parameters specified by the user; the connection plan is used to indicate the connection relationship and communication capability between nodes;

[0069] A simulation module, configured to perform software simulation within a simulation cycle according to the configuration file and the connection plan, simulate data transmission between nodes in the satellite network topology, and output simulation result data in real time;

[0070] The data processing module is further used to determine the real-time position and connection relationship of the nodes within the simulation period, and generate a multi-dimensional visual chart based on the simulation result data;

[0071] The visualization module is used to create a multi-track animation and a dynamic topology diagram based on the real-time position and connection relationship; and display the multi-track animation, the dynamic topology diagram and the visualization chart on the result interface.

[0072] Because satellite network simulation requires a large amount of parameter and configuration data, and configuration file writing and processing are challenging, this example builds a simulation system with a separate front-end and back-end architecture to allow users to focus on the network simulation process and test results. The front-end utilizes HTML5, CSS3, and the Bootstrap framework to create a responsive user interface. This interface interacts with back-end services via asynchronous JavaScript (AJAX) requests, enhancing the user experience with a non-blocking and fluid interface. The user interface provides a simulation configuration form, allowing users to select or enter configuration parameters (such as routing algorithms and transport protocols). Furthermore, the front-end provides interfaces for custom algorithms and protocols, enabling simulation of customized routing algorithms and transport protocols. This increases simulation flexibility and meets individual user needs.

[0073] The simulation module is built on the OMNeT++ framework. The data processing module automatically converts user-uploaded satellite network configuration files into contact plans that conform to the OMNeT++ framework, eliminating the need for users to understand the specifics of OMNeT++ network simulation. Users can upload satellite network configurations in various formats. For example, they can use the Ansys STK tool to create a satellite network configuration (e.g., a cis-lunar space network configuration) and export it as a .csv file. Once the .csv file is uploaded through the user interface, the data processing module converts it into a contact plan that the simulation module can parse. The data is then cleaned and standardized, generating a data format readable by the simulation engine and saving it as text. The contact plan consists of a contact message and a range message. The contact message contains the contact start and end time, the sending node, the receiving node, and the data rate (B / s). The range message contains the contact start and end time, the sending node, the receiving node, and the distance between the sending and receiving nodes.

[0074] The data processing module also constructs a configuration file (OMNet++ INI file) in the simulation module's standard input format based on the configuration parameters submitted by the user on the front end. The front end implements event handling based on jQuery, monitoring the simulation configuration form submission event, collecting configuration parameters, and constructing an HTTP request to send to the backend RESTful API. After the user submits the configuration, JavaScript is used for front-end verification and feedback to ensure data validity and integrity. Configuration parameters include routing algorithm, transport protocol, packet information, simulation cycle, and more. In the packet information section, you can customize the properties of the required number of packets, specify the sending and receiving nodes, and make detailed settings for the send time, number of bundles, size of a single bundle, priority, send cycle, and number of iterations.

[0075] Based on the connection plan and configuration files converted by the data processing module, the simulation module executes satellite data communication simulation within a specified simulation cycle and continuously outputs simulation result data. The data processing module processes the simulation result data and generates multi-dimensional visualization charts of communication performance indicators (e.g., network latency, throughput, packet loss rate, etc.). Furthermore, the data processing module calculates the real-time positions and connection relationships of nodes during the simulation, and the visualization module generates dynamic topology diagrams and multi-track animations of the simulation process. The visualization module integrates the dynamic topology diagram, multi-track animation, and multi-dimensional visualization charts into the simulation result interface, providing users with an intuitive and comprehensive understanding of the real-time behavior of nodes and the changes in various performance indicators.

[0076] Compared with the same satellite simulation tools (for example, distributed hardware simulation system or ns-3 type simulation tools) need to configure complex distributed hardware system, or need the user to learn complex software API and simulation system configuration format parameters in advance, the embodiment adopts a pure software simulation scheme to save the time cost and hardware device cost of deployment and maintenance, and automatically converts the configuration file and the contact plan through the data processing unit. The use threshold of the user is reduced, and the simulation efficiency is improved.

[0077] As an embodiment of the application, the simulation module comprises:

[0078] A central configuration device is configured to initialize the simulation entity according to the configuration file and the contact plan.

[0079] An application layer is configured to simulate the creation, reception and management of data packet events in each node.

[0080] A port layer is configured to simulate the physical communication between the ports of the nodes, including connection, storage, forwarding delay and packet loss.

[0081] A DTN layer comprises:

[0082] A scheduling module is configured to receive the data packet sent by the application layer, and determine the scheduling order of the data packet according to the scheduling strategy in the configuration file. The scheduling strategy is any one of the following: priority strategy, queue length strategy and FIFO strategy.

[0083] A routing module is configured to determine the path of the data packet from the source node to the destination node according to the routing algorithm and the transmission protocol in the configuration file, and send the data packet that cannot be temporarily forwarded to the cache forwarding module. The routing algorithm is any one of the following: Dijkstra, CGR, CMR and optimized CGR. The transmission protocol is any one of the following: TCP, UDP and LTP.

[0084] The cache forwarding module is configured to send the data packet according to the path determined by the routing module, and cache the data packet to be sent.

[0085] Figure 2 FIG. 1 is a schematic diagram of the architecture of the simulation module in an embodiment of the application. As shown in FIG. 1, the simulation module comprises a central configuration device, an application layer, a port layer, a DTN layer and a cache forwarding module. Figure 2As shown, the simulation module includes a central configurator, an application layer (APP Layer), an interface layer (COM Layer), and a DTN layer. The central configurator inherits from the cModule class of OMNeT++, and is used to parse a simulation configuration file, initialize a simulation entity, configure a network topology, and clean up a simulation environment. The application layer is used to generate, receive, and manage DTN bundles, and simulates the generation and management of bundles by nodes in a DTN network. The port layer simulates components of physical communication between ports of nodes, and specifically includes simulation of link states, delays, packet loss, and the like in an actual network environment. The DTN layer is used to buffer, transmit, and schedule DTN bundles, and simulates the transmission of bundles between nodes in a DTN network.

[0086] In an embodiment, the system front end provides multi-dimensional optional configuration parameters for a user to select, and specifically includes routing algorithms, transmission protocols, and scheduling strategies. Specifically, the system predefines multiple optional routing algorithms, including a Dijkstra algorithm, a CGR algorithm, a CMR algorithm, and an optimized CGR algorithm; multiple optional transmission protocols, including a TCP protocol, a UDP protocol, and an LTP protocol; and multiple optional scheduling strategies, including a priority strategy, a queue length strategy, and a FIFO (First-In-First-Out) strategy. In actual applications, a user can select appropriate routing algorithms, transmission protocols, and scheduling strategies for flexible combination simulation to adapt to different network requirements and application scenarios. The data processing module generates a corresponding simulation configuration file according to a configuration combination specified by the user, and the central configurator in the simulation module parses and initializes a simulation environment. The routing module calculates a transmission path of a bundle and determines a next-hop node according to a specified transmission protocol and routing algorithm, the scheduling module schedules a bundle to be transmitted according to a specified scheduling strategy, and the cache forwarding module transmits the bundle to the next-hop node according to a scheduling manner specified by the scheduling module, and caches a bundle that cannot be transmitted temporarily.

[0087] At the beginning of simulation, the central configurator executes an initialize( ) method to parse a configuration file and initialize a simulation environment, and parses a contact plan by a parseContactPlanFile( ) method to construct a simulated communication window and possible contacts between nodes. Furthermore, the central configurator initializes a contact object and a network topology object of the simulation based on the contact plan. The contact plan is a basis for a simulation behavior of a DTN network, and affects connection relationships between nodes during simulation. During simulation, contacts between nodes (i.e., communication capabilities between nodes) are dynamically changed. The network topology is used to define connection relationships and communication capabilities of the nodes.

[0088] The simulation is performed through the application layer in the order in which the packets are sent from each node. During the simulation, each node creates, receives, stores, forwards, and transmits packets, and the transmission of these packets constitutes network traffic. The central configurator uses the getTraffics() method to traverse all nodes and their application layer configurations, collecting and calculating the traffic data generated from the source node to the destination node within a specific time period. Specifically, it reads multiple parameters from the node application configuration, including the number of packets, destination node ID, packet size, and send time. Based on these parameters, the central configurator can calculate the total traffic from the source node to the destination node at each send time state.

[0089] Centrality is a concept used in social network analysis to measure how close a node is to the center of the network. The quantitative representation of this degree is called centrality. The central configurator also uses the getCentralityContactIds() method to identify and remove the nodes with the highest centrality in the simulated network, thereby assessing the robustness and fault tolerance of a particular network design.

[0090] During data transmission, the central configurator creates a BundlePkt object for each node pair, representing the data packet from the source node to the destination node. This packet contains all the basic information required for routing calculation, such as the source node ID, destination node ID, time to live (TTL), and creation timestamp. Based on this information, the routing module executes the user-specified routing algorithm to find a feasible transmission path for each node pair. After the simulation concludes, the central configurator performs simulation settlement to save the network topology and network flow information, which the data processing module then reads and processes to generate simulation results.

[0091] The application layer inherits from the OMNeT++ cSimpleModule class. After the central configurator is initialized, the application layer configures the traffic generator based on the initialization parameters of the central configurator and schedules the TrafficGeneratorMsg event to trigger the packet generation event. This event carries information such as the number of packets, destination node ID, and packet size. This information is then used to generate and configure the actual DTN simulation packets. The application layer creates a BundlePkt object, configures the packet to be sent, and sets basic packet properties such as the source node ID, destination node ID, size, priority, and time-to-live (TTL) by calling corresponding set methods. The application layer then initializes the packet metadata, including the hop count, next-hop node ID, and custodian node ID. The BUNDLE event indicates that the packet has arrived at the scheduled node. After data transmission is complete, the application layer records the packet's total transmission delay and the number of hops it traverses from the source node to the destination node. This information is used to subsequently calculate the real-time topology and network flow structure to evaluate the efficiency of the simulation routing algorithm. The application layer provides a get method to obtain the configuration parameters of the data packet, including the number of bundles in the configuration data packet, the EID of the transmission destination node, the data packet size, the scheduling priority, and the start time information of the APP layer data packet sending.

[0092] The port layer inherits from the OMNeT++ cSimpleModule class. After the central configurator is initialized, the port layer configures the network ports, setting the necessary initial parameters for the simulated node ports by initializing the node's unique identifier (EID) and packet loss probability (packetLoss). Furthermore, the port layer configures the node's network connection topology, setting its communication range and reachability information to facilitate the subsequent scheduling and transmission of packets through the connection queue. During simulation, the port layer determines whether to directly store, forward, or transmit with a certain delay based on the packet type and destination node. Furthermore, the port layer simulates packet loss and port forwarding link latency, thereby emulating the network behavior of physical ports in actual satellite communication equipment. The port layer communicates with the DTN layer. When receiving messages from other nodes, the port layer first determines whether the packet needs to be forwarded based on the link status, connection map, and priority. If forwarding is required, the packet is forwarded to the DTN layer via the output port for processing. Furthermore, the port layer simulates node packet loss behavior based on a preset packet loss rate. When forwarding packets, the port layer discards forwarded packets with a certain probability (preset packet loss rate) and records the packet in the simulation log.

[0093] Figure 3 This is a schematic diagram of the architecture of the DTN layer in one embodiment of the present application. Figure 3As shown in Figure 1, the DTN layer consists of a DTN configurator, a scheduling module, a routing module, and a cache and forwarding module. The DTN configurator receives configuration parameters from the central configurator and initializes the scheduling module, routing module, and cache and forwarding module based on these parameters. It manages connection establishment and disconnection through the handleMessage method, processes packet events, and executes the scheduling, storage, and forwarding functions of each module one by one.

[0094] The scheduling module works in conjunction with the routing module and the cache forwarding module to receive data packets from the application layer and schedule them according to the specified scheduling policy. The routing module calculates the optimal path for data packets from the source node to the destination node. Upon receiving a data packet event from a port at the DTN layer, the routing module calculates the data packet's transmission path based on the routing algorithm specified in the user's configuration file. The routing module also works in conjunction with the cache forwarding module to submit data packets that cannot be forwarded to the cache forwarding module for processing, ensuring that data packets can be efficiently transmitted from the source node to the destination node.

[0095] The cache-forwarding module manages node storage resources and the actual forwarding of packets, including packet caching and storage. Specifically, it caches packets when no connections are available, ensuring they are not lost during forwarding between nodes, and forwards packets based on the next-hop node calculated by the routing module. Furthermore, the cache-forwarding module monitors and manages node cache space, ensuring efficient use of storage resources and preventing packet loss or transmission delays due to insufficient storage space.

[0096] During the simulation, each module uses the ofstream object bundlemap to record parameters such as the simulation time, sending and receiving nodes, source and destination nodes, and the size of the transmission bundle data segment during the transmission event scheduling process. At the end of the simulation, the DTN configurator stores the recorded data by sending node, allowing the data processing and visualization modules to read and perform subsequent simulation visualization operations.

[0097] As an implementation manner of the present application, when the routing algorithm is optimized CGR, the routing module is specifically configured to perform the following steps:

[0098] executing a first routing algorithm based on the data packet to be transmitted, determining a first number of paths with the lowest delay from the current connection graph, and recording the paths in a feasible route list;

[0099] Determine the path with the lowest delay in the feasible route list as the preset route;

[0100] Determine whether the preset route is a valid route; if it is a valid route, determine a next hop node based on the valid route, and send information about the next hop node to the cache forwarding module; if it is an invalid route, traverse the remaining paths in the feasible route list and determine a valid route with the lowest latency to replace the preset route;

[0101] The cache forwarding module is specifically configured to add the data packet to a sending queue associated with the next hop node, and sequentially send the data packets in the sending queue within the associated time with the next hop node.

[0102] This embodiment provides an optimization algorithm based on the CGR routing algorithm to improve data transmission efficiency between satellite nodes. The CGR routing strategy is based on a connection graph model, in which each node in the network has a set of predefined connections. The connection information includes the connection start time, end time, transmission capacity, and one-way optical delay. The connection graph model provides timing information of the network topology, enabling the CGR algorithm to calculate the optimal path in a dynamically changing network environment. The CGR routing strategy is executed in three steps. The first stage reads the connection information, receives the data packet, and performs a path search through the cgrEnqueue function to determine the shortest path and verify the validity of the route. The second stage determines the packet transmission timing and corresponding connections based on the selected routing table, and schedules the packet transmission order according to priority. The third stage is loosely coupled with the packet cache forwarding module through an interface. The scheduled data packet is placed in the node's transmission queue and sent according to priority within the corresponding connection time.

[0103] In this embodiment, the routing module is designed using an object-oriented approach, defining a universal base class, Routing, and a data structure, CgrRoute, for storing routing information. Different routing algorithms are implemented through inheritance, allowing users to flexibly modify, update, and switch routing algorithm configurations. Users simply set the routing algorithm ID and specify the required input parameters on the front-end. This allows users to flexibly program and use different simulation routing algorithms based on simulation requirements and network structure. Specifically, routing algorithms inherit from the base class "RoutingDeterministic," which provides selectable input parameters through the routing interface. During simulation configuration, users can use the "Routing" field to specify the routing algorithm to be used by the DTN layer during simulation. The user-specified routing algorithm is uniformly configured by the DTN configurator during DTN layer initialization. Furthermore, the front-end user interface provides an interface for customizing routing algorithms. To customize routing algorithms, users must inherit from the routing algorithm base class, RoutingDeterministic, and override the routing virtual function, routeAndQueueBundle, defined therein. This approach simplifies the implementation of user-defined routing algorithms and makes the expansion of new routing strategies intuitive and efficient.

[0104] During the simulation, the routing module is called to execute the specified routing algorithm, making dynamic routing decisions based on the specific instantaneous network topology and link status. Specifically, the DTN layer receives a packet from the application layer or port layer, calls the routing module to execute the user-specified routing algorithm, determines the next hop node for the packet, and then sends the packet to the next hop node through the cache forwarding module.

[0105] In one embodiment, if the routing algorithm selected by the user is the optimized CGR algorithm, the routing module will execute the first path-finding algorithm based on the source node and destination node of the data packet to determine the first number of paths with the lowest latency from the current connection graph, and further determine a path with the lowest latency and valid from these paths to determine the next hop node. Specifically, the first number of paths with the lowest latency are added to the feasible routing list, and starting from the path with the lowest latency, it is determined whether there is a valid route according to the latency from low to high. The path with the lowest latency is used as the preset route. If the preset route is a valid route, the next hop node is determined based on the preset route; if the preset route is an invalid route, the search for the valid route with the lowest latency in the feasible routing list continues. If a valid route is found, the current preset route is replaced, and the next hop node is determined based on the valid route.

[0106] The routing module sends the information of the next hop node to the cache forwarding module, and the cache forwarding module forwards the data packet according to the scheduling strategy within the contact time with the next hop node.

[0107] In one embodiment, the number of connections between nodes reflects the centrality of the connection. A high centrality means that the connection carries more data transmission tasks in the network, significantly impacting the network's communication performance. Therefore, to balance the load across nodes, routes with high centrality need to be removed when calculating the optimal route. Therefore, if the routing algorithm calculates multiple routes with the same arrival time, the centrality of each connection is further calculated, and the route containing the contact with the highest centrality is removed. This balances the load across nodes and improves overall network transmission performance.

[0108] As an embodiment of the present application, the routing module is configured to execute a first path-finding algorithm based on the data packet to be transmitted, determine a first number of paths with the lowest latency from the current connection graph, and record them in a feasible route list, specifically including:

[0109] Obtain all paths based on the source node and destination node of the data packet;

[0110] Determine the corresponding delay weight based on the one-way optical delay and transmission window between each node;

[0111] Calculate the overall delay of each path based on the delay weight;

[0112] All paths are sorted from low to high according to the overall delay, and the paths with the highest number of sorting are selected and added to the feasible routing list.

[0113] In one embodiment, the routing module executes a first path-finding algorithm to calculate and determine a first number of paths with the lowest latency. The specific steps are as follows:

[0114] (1) Obtain all paths based on the source and destination nodes of the data packet;

[0115] (2) Determine the corresponding delay weight based on the connection between nodes and the one-way optical delay (OWLT) and calculate the overall path delay;

[0116] (3) Sort all paths by latency from low to high, select the first number of paths with the highest ranking (i.e., the lowest latency), and add them to the feasible routing list. In actual applications, the value of the first number can be customized as needed. In this embodiment, the first number is set to 5.

[0117] As an implementation manner of the present application, the routing module is used to determine whether the preset route is a valid route, specifically including:

[0118] Read the data header of the data packet to obtain the node information visited by the data packet;

[0119] Comparing the visited node information with the preset route to determine whether there is duplicate node information; if there is duplicate node information, determining that a loop exists;

[0120] If there is no duplicate node information, determining whether the data packet can be successfully sent within the contact duration based on the contact access repetition degree, contact duration, and remaining cache capacity of the nodes between the nodes in the preset route; if the data packet cannot be successfully sent, determining that a loop occurs;

[0121] If no loop exists and no loop is generated, the preset route is determined to be a valid route; if a loop exists or a loop is generated, the preset route is determined to be an invalid route.

[0122] In the above embodiment, loops may exist in the paths in the feasible routing list, that is, data packets are transmitted in a circular manner in the network and cannot reach the predetermined destination, wasting bandwidth resources and affecting transmission efficiency. Based on the CGR routing algorithm, loops mainly come from its prior reliance on predefined contact plans, because the contact plan assumes that the contact time and duration between nodes are known and fixed, while there may be deviations in actual application scenarios. In addition, network bandwidth also affects the formation of loops. For example, the amount of transmitted data occupies too much bandwidth, resulting in the unavailability of the predetermined transmission path. In this case, the data packet may be mistakenly forwarded back to the node that has already been visited, or the routing change caused by the unavailability of the original path may form a loop.

[0123] To prevent data packet loops during transmission, this embodiment implements a loop avoidance strategy based on the feasible route list, further screening for routes that can complete transmission within the contact time, have the lowest latency, and do not form loops. In this embodiment, the routing module combines a TTL packet loss retransmission strategy to compress and store the node information / contact data visited by the data packet in the data packet header. Specifically, the steps for finding a valid route are as follows:

[0124] (1) Traverse the feasible route list and first detect the first path in the list as the preset route. Read the node information / contact data that the packet has visited from the packet header and compare it with the node information in the currently selected path in the feasible route list to determine whether there are duplicate nodes. If there are duplicate nodes, it means that there is a loop in the current route. If there are no duplicate nodes, it means that there is no loop in the path, and further analysis is required to determine whether a loop will occur during the packet transmission process;

[0125] (2) Analyze whether the data packet can be successfully transmitted based on the connection duration, remaining cache capacity, and node contact access repetition between each node in the route. Specifically, determine whether the data packet can be completely sent to the next node within the connection duration, whether the remaining cache capacity of the next node can meet the requirements of caching the data packet, and remove the path where the node with the highest repetition rate in the network is located, so as to alleviate the load pressure of a single node and balance the load of each node;

[0126] (3) If the preset route does not have a loop and will not generate a loop, it is determined to be a valid path. The routing module determines the next hop node of the data packet based on the valid path. If the preset route has a loop, or a loop is generated when transmitting the data packet, it continues to traverse the next hop path in the feasible route list.

[0127] In this embodiment, the first path-finding algorithm is combined with a loop avoidance strategy to further improve the overall data transmission efficiency of the network and save bandwidth resources.

[0128] As an embodiment of the present application, the routing module is further configured to, when all paths in the feasible routing list are invalid routes, determine a next hop node based on the preset route and send information of the next hop node to the cache forwarding module;

[0129] The cache forwarding module is further configured to add the data packet to a cache queue associated with the next hop node, wait for all data packets in the associated sending queue to be sent, and then send the data packets in the cache queue in sequence.

[0130] In the above embodiment, if all paths in the feasible route list are invalid, it means that there is no non-looping path that can complete the transmission within the contact duration. Therefore, the path with the lowest latency (i.e., the pre-set path) is determined as the transmission route for the data packet, and the next hop node is determined.

[0131] Since there is no feasible and effective route, the data packet cannot be sent temporarily. The routing module notifies the cache forwarding module of the information of the next node. The cache forwarding module puts the data packet to be sent into the cache queue according to the scheduling rules indicated by the scheduling module, and waits for all the data in the sending queue currently being sent to be sent before forwarding the data packet in the cache queue.

[0132] As an implementation manner of the present application, the central configurator is further configured to set the priority of the event of creating a data packet according to the configuration file;

[0133] The application layer is further configured to create data packet events of different priorities within the simulation cycle;

[0134] The scheduling module is further configured to, when the scheduling policy is a priority policy, instruct the routing module to determine a corresponding route according to the priority of the data packet; and, based on the information of the next hop node determined by the routing module, instruct the cache forwarding module to schedule each data packet according to the priority of the data packet;

[0135] The cache forwarding module is further configured to cache data packets that are temporarily unable to be sent in a cache queue in descending order of priority;

[0136] The port layer is further configured to receive returned data packets and insert them into the sending queue of the corresponding connection in descending order of priority.

[0137] In one embodiment, when the user specifies a priority scheduling policy, the scheduling module instructs the routing module to determine the corresponding route based on the priority of the data packet and, based on the next hop node of the route, instructs the cache forwarding module to forward and store the data packets in the queue according to the priority. In this embodiment, different priorities are set during simulation to meet the requirements of different types of data transmission tasks in the cis-lunar satellite network, thus addressing the simulation needs of sudden and urgent tasks.

[0138] DTN packet transmission corresponds to a connection. Packet scheduling first uses a routing algorithm to determine the connection node (i.e., the next hop node) corresponding to the packet transmission path. Then, a connection-based send queue is implemented. Nodes send packets according to the order of the send queue, ensuring that packets sent by the same connection are scheduled according to priority. In this embodiment, packet priority scheduling is mainly applied in the following modules:

[0139] (1) When determining the corresponding connection for data packet transmission, the routing module schedules data packet events from high to low priority. For example, there are multiple valid paths with different delays between source node A and destination node B. Based on the priority of the data packet, the high-priority data packet is instructed to match the route with the lower delay;

[0140] (2) The cache forwarding module schedules data packets within the same node connection from high to low priority. For example, if node A has 5 data packets to send to node B, it constructs a sending sequence from high to low priority, giving priority to sending data packets with higher priority.

[0141] (3) The port layer sorts the packets to be sent and the packets returned to the port from high to low priority. The returned packets are then inserted into the corresponding position in the send queue according to the priority order. For example, packet M fails to be sent and is returned to the port. At this point, the port layer's send queue has been sorted from high to low priority and contains three packets to be sent. The priority of the returned packet is obtained and, based on the priority order, packet M is inserted into the corresponding position in the send queue.

[0142] In practical applications, when a user specifies a priority policy for scheduling, the central configurator first adds packet priority settings during simulation configuration, defines Set and Get methods for setting and retrieving priorities, and adds priority settings when creating packets at the application layer. The routing module at the DTN layer selects the appropriate route based on packet priority and, through the cache forwarding module, places the packet in the next-hop connection queue. The cache forwarding module uses the SdrModel class to cache and schedule packets across all nodes in the simulation environment, ensuring efficient packet transmission in networks with high latency and interrupted connections. The SdrModel can be scheduled by routing algorithms or other modules to dynamically optimize packet transmission based on available storage space. When a priority policy is implemented, the packet storage and forwarding logic in the SdrModel is modified, creating a send queue and cache queue based on priority. Finally, the port layer is configured so that each node port that supports priority scheduling obtains packet priority using the Get method and sends packets in descending order.

[0143] In this embodiment, optional priority scheduling strategies are pre-installed in the system to meet users' simulation needs for sudden emergency tasks or extreme scenarios. Users can flexibly combine different transmission protocols and routing algorithms and test the network's communication performance under the priority scheduling strategy. This allows for a multi-dimensional comparison of spatial link and communication performance indicators for different communication methods in emergency environments, improving user decision-making efficiency. For example, a comprehensive comparison of communication indicators across multiple dimensions, such as dynamic link status, packet delay, network throughput, and packet loss rate, is conducted between a communication solution that "uses the CGR routing algorithm, TCP transmission protocol, and priority scheduling strategy" and a communication solution that "uses the optimized CGR routing algorithm, LTP transmission protocol, and priority scheduling strategy."

[0144] As an embodiment of the present application, the simulation result data includes: a Bundle Map and a sqlite database file; the Bundle Map is used to reflect the transmission information of the data packet of each node; the sqlite database file is used to reflect the data packet delay information and forwarding hop information;

[0145] The data processing module is further configured to generate a multi-dimensional visualization chart based on the simulation result data, specifically comprising: analyzing the SQLite database file and the Bundle Map at a first time interval to generate a multi-dimensional visualization chart; the multi-dimensional chart comprising: communication delay, network throughput, and packet loss rate;

[0146] The visualization module is specifically used to render the result interface through the Cesium.js library, so as to display the multi-dimensional visualization chart in real time.

[0147] In this embodiment, the simulation module continuously outputs simulation result data, and the data processing module processes the simulation result data at a first time interval to obtain a multi-dimensional visualization chart. The simulation result data includes: Bundle Map, SQLite database file, network topology, and data flow chart.

[0148] The Bundle Map is exported in CSV format and used to store packet forwarding information for each node, including simulation time, current sending and receiving nodes, source nodes, destination nodes, as well as packet size and transmission duration. A SQLite database stores result data such as packet delay and forwarding hop count. Specifically, the data processing module connects to the SQLite database via Python to further process the Bundle Map charts. It also utilizes data analysis and visualization libraries such as numpy, pands, and matplotlib to process simulation data, automatically generating visualization charts for multiple dimensions such as packet delay, network throughput, and packet loss rate to further analyze network performance.

[0149] The system can generate visualization charts including network flow diagrams, delay box plots, delay scatter plots, network jitter plots, and network throughput. Network flow diagrams can show the data transmission status of each node under different connection diagrams. Delay box plots, which separate the transmission node pairs that establish connections between nodes during simulation, reflect the overall delay of data packet transmission between different nodes. Network throughput reflects the overall network load capacity of the system and the bandwidth pressure under the current network simulation, helping users analyze the network load limit of different network configurations.

[0150] As an embodiment of the present application, the data processing module is further configured to determine the real-time positions and connection relationships of the nodes within the simulation period, specifically including: determining the orbital parameters of the Earth orbit, the Moon orbit, and the Earth-Moon orbit based on the connection plan, calculating the real-time position of each node in the orbit within the simulation period according to each orbital parameter, and recording the position in the corresponding orbital position list; determining the contact time between each node within the simulation period based on the connection plan, calculating the position and display status of the real-time connection line between each node based on the contact time and the orbital position list, and recording the position and display status in the connection line list;

[0151] The visualization module is also used to create multi-orbit animations and dynamic topology maps based on the real-time positions and connection relationships, specifically including: determining the animation duration based on the simulation cycle; creating a three-dimensional model of the earth and a three-dimensional model of the moon, and obtaining a three-dimensional satellite model specified by a user; rendering multiple orbital animations on the earth orbit, the moon orbit, and the earth-moon orbit respectively through the Cesium.js library according to the orbital position list, the animation duration, the three-dimensional model of the earth, the three-dimensional model of the moon, and the three-dimensional model of the satellite; superimposing the multiple orbital animations to obtain a multi-orbit animation; and rendering a dynamic topology map through the Cesium.js library according to the connection line list, the orbital position list, and the three-dimensional satellite model.

[0152] In this embodiment, the data processing module also determines the orbital parameters of the Earth orbit, the Moon orbit, and the Earth-Moon orbit based on the connection plan. Based on the parameters of each orbit, the real-time position of each node in the orbit during the simulation period is calculated. The visualization module creates a multi-orbit animation based on the real-time node positions.

[0153] The visualization module uses the Cesium.js visualization rendering interface to display information such as satellite orbits, latency, throughput, and packet loss rate in real time, providing comprehensive monitoring and intuitive visualization of satellite system status. During the initialization phase, the simulation module configures the animation duration based on the simulation cycle to ensure real-time synchronization of dynamic rendering with simulation data. The data processing module calculates orbital positions based on the orbital center and radius, calculates the satellite's mean anomaly, and then calculates the satellite's orbital coordinates. In this embodiment, the data processing module calculates satellite coordinates for multiple orbits, including geosynchronous satellite orbits, lunar orbits, and Earth-Moon transfer orbits. The real-time coordinates of each node are recorded in the corresponding orbital position list and stored as satellite(time, position). The visualization module supports the creation of 3D models of the Earth and Moon, as well as the import of user-defined 3D models of the Moon and satellites. 3D files are stored in a designated read location in glb format. The visualization module loads models through the CesiumJS model entity interface and renders real-time satellite orbit animations based on the position information of each node in the orbital position list. If multiple orbital animations exist, the visualization module overlays all of them to achieve a multi-layered orbital animation effect. For example, the geosynchronous satellite orbit and the Earth-Moon transfer satellite orbit animation are superimposed and displayed on the result interface.

[0154] The data processing module calculates the real-time position of the connection lines between nodes based on the connection plan, determines the display status of the connection lines in combination with the occlusion detection algorithm, and records them in the connection line list. The visualization module uses the updateSatelliteConnection function to implement real-time updates and rendering of the connection lines between satellites based on the connection line list. The color and dashed line style of the connection lines change to reflect the status and reliability of the communication link. The position and shape of the connection line endpoints are updated in real time based on the pre-calculated satellite position points and simulation time. A solid line represents the existence of an inter-satellite connection and data flow transmission, a dotted line represents the existence of an inter-satellite connection but no connection is established, and the absence of a connection line indicates that the satellites are not connected due to celestial obstruction or antenna angle reasons. In this embodiment, the real-time update frequency of the connection lines rendered by the simulation module is synchronized with the simulation clock to ensure the smoothness and real-time performance of dynamic changes.

[0155] The visualization module also displays current network performance metrics in a news box on the results screen, including real-time packet loss rate, throughput, and inter-satellite communication latency. During initialization, the visualization module reads the corresponding performance parameters from the configuration file and dynamically updates these metrics during the simulation, providing users with real-time insights into network performance.

[0156] In this embodiment, the CGR algorithm and the optimized CGR algorithm are simulated and compared. The STK tool is used to establish a geosynchronous-earth-moon four-node satellite network topology, and the corresponding satellite orbit and antenna parameters are set to derive the inter-satellite distance. The routing algorithm is set to CGR, the transmission protocol is set to LTP, the number of nodes is set to 4, and the upper limit of the simulation time is set to 150000s. The four nodes are node 1-geosynchronous satellite, node 2-geosynchronous satellite, node 3-lunar satellite, and node 4-geosynchronous-lunar satellite. Under the default data packet size, the four nodes perform 100000s network simulation with an average throughput of more than 50bps in less than 5s, which greatly improves the simulation efficiency compared with similar satellite simulation tools. In order to compare the limit performance of the routing algorithm, the size of all data packets is increased by 10 times based on the default data packet size, and a multi-dimensional visualization chart is generated, as shown in Figure 5 、 Figure 6 The comparison chart of part of the communication performance is shown. According to the simulation results, the following conclusions are obtained:

[0157] The packet loss rate of the CGR routing algorithm system is 72.49%, and the average network delay is 37807s; while the packet loss rate of the optimized CGR routing algorithm system is 71.77%, and the average network delay is 36748s. Compared with the general CGR algorithm, the optimized CGR routing algorithm has higher network performance under high network load pressure. As shown in Figure 5 The comparison of the overall network delay distribution chart shows that the data packet delay of the CGR routing algorithm simulation has a long tail effect. In the overall delay box plot, the upper boundary of the data packet delay sent by each CGR node is significantly higher than that of the optimized CGR routing algorithm, and the lower quartile point and the lower boundary have no obvious difference. As shown in Figure 6 Observing the network jitter curve of the third node (lunar exploration satellite), it can be found that when the network bandwidth resource is insufficient, the network jitter of the node transmission will jump at a certain moment. The network jitter of the CGR routing algorithm is much higher than that of the customized routing algorithm at the simulation time of 22000s. Due to the queuing and retransmission mechanism of the data packets, the CGR algorithm cannot guarantee the scheduling of the data packets according to the set priority and sending order when the network is congested, while the scheduling mechanism of the optimized CGR routing algorithm ensures the stable and orderly scheduling of the data packets, resulting in stable network jitter during the entire simulation process and making it more difficult to appear long tail delay.

[0158] Based on the same inventive concept, an embodiment of the present application provides a satellite communication network simulation method. Figure 4 The flowchart of the satellite communication network simulation method according to an embodiment of the present application is shown in Figure 4 The method comprises:

[0159] S1: Convert the satellite network configuration based on the DTN network into a connection plan and build a configuration file based on the configuration parameters specified by the user; the connection plan is used to indicate the connection relationship and communication capabilities between nodes;

[0160] S2: performing software simulation within a simulation cycle according to the configuration file and the connection plan, simulating data transmission between nodes in the satellite network topology and outputting simulation result data in real time;

[0161] S3: Determine the real-time positions and connection relationships of the nodes within the simulation period, and generate a multi-dimensional visualization chart based on the simulation result data;

[0162] S4: creating a multi-track animation and a dynamic topology diagram based on the real-time position and connection relationship; and displaying the multi-track animation, the dynamic topology diagram, and the visualization chart on a result interface.

[0163] Regarding the method in the above embodiment, the specific operation of each step has been described in detail in the embodiment of the system and will not be elaborated here.

[0164] The above description is only a preferred embodiment of the present application and is not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the scope of protection of the present application.

[0165] For the sake of simplicity, the method embodiments are described as a series of action combinations. However, those skilled in the art should be aware that this application is not limited by the order of the actions described, because according to this application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in this specification are all preferred embodiments, and the actions and components involved are not necessarily required by this application.

[0166] Those skilled in the art will appreciate that the embodiments of the present application can be provided as methods, devices, or computer program products. Therefore, the embodiments of the present application can adopt the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the embodiments of the present application can adopt the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0167] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams of the methods, terminal devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each process and / or box in the flowchart and / or block diagram, as well as the combination of the processes and / or boxes in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processing terminal device generate instructions for implementing the steps in the process. Figure 1 a process or multiple processes and / or boxes Figure 1 A device that provides the functions specified in a block or multiple blocks.

[0168] These computer program instructions may also be stored in a computer readable memory that can direct a computer or other programmable data processing terminal device to operate in a specific manner, so that the instructions stored in the computer readable memory produce a manufactured product including an instruction device, which implements the process Figure 1 a process or multiple processes and / or boxes Figure 1 The function specified in one or more boxes.

[0169] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal device so that a series of operating steps are executed on the computer or other programmable terminal device to produce a computer-implemented process, thereby providing instructions for executing on the computer or other programmable terminal device to implement the process. Figure 1 a process or multiple processes and / or boxes Figure 1 The steps for the function specified in one or more boxes.

[0170] Although preferred embodiments of the present invention have been described, those skilled in the art may make additional changes and modifications to these embodiments once they become aware of the underlying inventive concepts. Therefore, this application is intended to include the preferred embodiments and all changes and modifications that fall within the scope of the embodiments of the present invention.

[0171] Finally, it is to be understood that the phraseology or terminology such as "first" and "second" etc. used herein is merely intended to differentiate one entity or operation from another entity or operation, without necessarily requiring or implying any actual such relationship or order between such entities or operations. Moreover, the terms "comprises", "comprising", or any other variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises... a" does not, without more constraints, exclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.

[0172] The satellite communication network simulation system and method provided by the present application are described in detail above, and the principles and implementation manners of the present application are described by using specific examples. The above description of the embodiments is only used to help understand the method of the present application and its core idea; meanwhile, for those skilled in the art, the specific implementation manners and application ranges can be changed according to the idea of the present application. In summary, the content of the specification should not be understood as a limitation of the present application.

Claims

1. A satellite communication network simulation system, characterized in that: include: A data processing module is used to convert the satellite network configuration based on the DTN network into a contact plan and build a configuration file according to the configuration parameters specified by the user; The connection plan is used to indicate the connection relationship and communication capabilities between nodes; A simulation module, configured to perform software simulation within a simulation cycle according to the configuration file and the connection plan, simulate data transmission between nodes in the satellite network topology, and output simulation result data in real time; The data processing module is further used to determine the real-time position and connection relationship of the nodes within the simulation period, and generate a multi-dimensional visual chart based on the simulation result data; A visualization module for creating multi-track animations and dynamic topology maps based on the real-time locations and connection relationships; Displaying the multi-track animation, the dynamic topology diagram, and the visualization chart on a result interface; The simulation module includes: a DTN layer; the DTN layer includes: a routing module for determining the path of a data packet from a source node to a destination node according to the routing algorithm and transmission protocol in the configuration file; and sending data packets that cannot be forwarded temporarily to a cache forwarding module; the routing algorithm is any one of the following: Dijkstra, CGR, CMR, optimized CGR; the transmission protocol is any one of the following: TCP, UDP, LTP; When the routing algorithm is optimized CGR, the routing module is specifically configured to perform the following steps: executing a first routing algorithm based on the data packet to be transmitted, determining a first number of paths with the lowest delay from the current connection graph, and recording the paths in a feasible route list; Determine the path with the lowest delay in the feasible route list as the preset route; Determine whether the preset route is a valid route; if it is a valid route, determine a next hop node based on the valid route, and send information about the next hop node to the cache forwarding module; if it is an invalid route, traverse the remaining paths in the feasible route list and determine a valid route with the lowest latency to replace the preset route; The routing module is configured to execute a first routing algorithm based on the data packet to be transmitted, determine a first number of paths with the lowest latency from the current connection graph, and record the paths in a feasible routing list, specifically including: Obtain all paths based on the source node and destination node of the data packet; Determine the corresponding delay weight based on the one-way optical delay and transmission window between each node; Calculate the overall delay of each path based on the delay weight; All paths are sorted from low to high according to the overall delay, and the paths with the highest number of sorting are selected and added to the feasible routing list.

2. The satellite communication network simulation system according to claim 1, characterized in that: The simulation module also includes: a central configurator, configured to initialize a simulation entity according to the configuration file and the contact plan; The application layer is used to simulate the creation, reception, and management of data packet events in each node; The port layer is used to simulate the physical communication between node ports, including connection, storage, forwarding delay, and packet loss; The DTN layer also includes: A scheduling module, configured to receive data packets sent by the application layer and determine a scheduling order for the data packets according to a scheduling policy in the configuration file; the scheduling policy is any one of the following: a priority policy, a queue length policy, or a FIFO policy; The cache forwarding module is used to schedule and send the data packet according to the path determined by the routing module; and cache the data packet to be sent.

3. The satellite communication network simulation system according to claim 2, characterized in that: When the routing algorithm is optimized CGR, the cache forwarding module is specifically configured to add the data packet to a sending queue associated with the next hop node, and sequentially send the data packets in the sending queue within the contact time with the next hop node.

4. The satellite communication network simulation system according to claim 1, characterized in that: The routing module is used to determine whether the preset route is a valid route, specifically including: Read the data header of the data packet to obtain the node information visited by the data packet; Comparing the visited node information with the preset route to determine whether there is duplicate node information; if there is duplicate node information, determining that a loop exists; If there is no duplicate node information, determining whether the data packet can be successfully sent within the contact duration based on the contact access repetition degree, contact duration, and remaining cache capacity of the nodes between the nodes in the preset route; if the data packet cannot be successfully sent, determining that a loop occurs; If no loop exists and no loop is generated, the preset route is determined to be a valid route; if a loop exists or a loop is generated, the preset route is determined to be an invalid route.

5. The satellite communication network simulation system according to claim 4, characterized in that: The routing module is further configured to determine a next hop node based on the preset route when all paths in the feasible routing list are invalid routes, and send information of the next hop node to the cache forwarding module; The cache forwarding module is further configured to add the data packet to a cache queue associated with the next hop node, wait for all data packets in the associated sending queue to be sent, and then send the data packets in the cache queue in sequence.

6. The satellite communication network simulation system according to claim 2, characterized in that: The central configurator is further configured to set the priority of the event of creating a data packet according to the configuration file; The application layer is further configured to create data packet events of different priorities within the simulation cycle; The scheduling module is further configured to, when the scheduling policy is a priority policy, instruct the routing module to determine a corresponding route according to the priority of the data packet; and, instructing the cache forwarding module to schedule each data packet according to the priority of the data packet based on the information of the next hop node determined by the routing module; The cache forwarding module is further configured to cache data packets that are temporarily unable to be sent in a cache queue in descending order of priority; The port layer is further configured to receive returned data packets and insert them into the sending queue of the corresponding connection in descending order of priority.

7. The satellite communication network simulation system according to claim 1, characterized in that: The simulation result data includes: Bundle Map and SQLite database file; the Bundle Map is used to reflect the transmission information of the data packet of each node; the SQLite database file is used to reflect the data packet delay information and forwarding hop information; The data processing module is further configured to generate a multi-dimensional visualization chart based on the simulation result data, specifically comprising: analyzing the SQLite database file and the Bundle Map at a first time interval to generate a multi-dimensional visualization chart; the multi-dimensional chart comprising: communication delay, network throughput, and packet loss rate; The visualization module is specifically used to render the result interface through the Cesium.js library, so as to display the multi-dimensional visualization chart in real time.

8. The satellite communication network simulation system according to claim 1, characterized in that: The data processing module is further configured to determine the real-time positions and connection relationships of the nodes within the simulation period, specifically comprising: determining orbital parameters of the Earth orbit, the Moon orbit, and the Earth-Moon orbit based on the connection plan, calculating the real-time position of each node in the orbit within the simulation period based on each orbital parameter, and recording the position in the corresponding orbital position list; determining the contact time between each node within the simulation period based on the connection plan, calculating the position and display status of the real-time connection line between each node based on the contact time and the orbital position list, and recording the position and display status in the connection line list; The visualization module is also used to create multi-orbit animations and dynamic topology maps based on the real-time positions and connection relationships, specifically including: determining the animation duration based on the simulation cycle; creating a three-dimensional model of the earth and a three-dimensional model of the moon, and obtaining a three-dimensional satellite model specified by a user; rendering multiple orbital animations on the earth orbit, the moon orbit, and the earth-moon orbit respectively through the Cesium.js library according to the orbital position list, the animation duration, the three-dimensional model of the earth, the three-dimensional model of the moon, and the three-dimensional model of the satellite; superimposing the multiple orbital animations to obtain a multi-orbit animation; and rendering a dynamic topology map through the Cesium.js library according to the connection line list, the orbital position list, and the three-dimensional satellite model.

9. A satellite communication network simulation method, characterized in that: The system according to any one of claims 1 to 8 comprises: Converting the satellite network configuration based on the DTN network into a connection plan and constructing a configuration file based on the configuration parameters specified by the user; the connection plan is used to indicate the connection relationship and communication capabilities between nodes; Performing software simulation within a simulation cycle based on the configuration file and the connection plan to simulate data transmission between nodes in a satellite network topology and outputting simulation result data in real time, including: determining a path for a data packet from a source node to a destination node based on a routing algorithm and a transmission protocol in the configuration file; and sending data packets that cannot be forwarded temporarily to a cache forwarding module; wherein the routing algorithm is any one of the following: Dijkstra, CGR, CMR, or optimized CGR; and the transmission protocol is any one of the following: TCP, UDP, or LTP; Determine the real-time position and connection relationship of the nodes within the simulation period, and generate a multi-dimensional visualization chart based on the simulation result data; Based on the real-time position and connection relationship, a multi-track animation and a dynamic topology diagram are created; and the multi-track animation, the dynamic topology diagram and the visual chart are displayed on a result interface; When the routing algorithm is optimized CGR, perform the following steps: executing a first routing algorithm based on the data packet to be transmitted, determining a first number of paths with the lowest delay from the current connection graph, and recording the paths in a feasible route list; Determine the path with the lowest delay in the feasible route list as the preset route; Determine whether the preset route is a valid route; if it is a valid route, determine a next hop node based on the valid route, and send information about the next hop node to the cache forwarding module; if it is an invalid route, traverse the remaining paths in the feasible route list and determine a valid route with the lowest latency to replace the preset route; Executing a first routing algorithm based on the data packet to be transmitted, determining a first number of paths with the lowest latency from the current connection graph, and recording them in a feasible routing list, specifically including: Obtain all paths based on the source node and destination node of the data packet; Determine the corresponding delay weight based on the one-way optical delay and transmission window between each node; Calculate the overall delay of each path based on the delay weight; All paths are sorted from low to high according to the overall delay, and the paths with the highest number of sorting are selected and added to the feasible routing list.