A A*+ grid routing calculation method

By introducing the A*+ grid routing calculation method based on heuristic rules in the spatial network, the problem that traditional direction routing algorithms cannot realize global shortest paths and complex link weight rules is solved, and more efficient routing calculation and forwarding performance is achieved.

CN118869059BActive Publication Date: 2025-03-14NANJING UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411340699.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-25
Publication Date
2025-03-14
Estimated Expiration
2044-09-25

AI Technical Summary

Technical Problem

In traditional spatial networks, directional routing algorithms cannot implement global shortest paths, cannot cope with complex link weight rules, and may not be able to route when links are interrupted, cannot support prefix routing, and forwarding performance cannot be improved.

Method used

A*+ grid routing calculation method based on the heuristic rule A* algorithm is proposed. By establishing a directed graph of global network connectivity, heuristic rules are introduced to optimize routing calculations, and the A* directed search algorithm is used to calculate the shortest path, reducing the complexity of routing calculations.

Benefits of technology

It improves the routing computing performance of satellite networks, can realize routing computing in grid-shaped satellite network topology faster, improves forwarding performance, and supports prefix routing.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118869059B_ABST
    Figure CN118869059B_ABST
Patent Text Reader

Abstract

The present invention provides an A*+ grid routing calculation method, which belongs to the field of communication technology. The method first establishes a directed connected graph for shortest path calculation based on a low-orbit satellite network, introduces heuristic rules, and directly derives the shortest path and cost for the node pairs that meet the rules. For the remaining node pairs that do not meet the rules, the A* search algorithm is used to calculate the shortest path; based on the obtained shortest path, network routing and prefix routing calculations are performed, and routing information tables of the two routes are output; the control plane sends the routing to the forwarding plane, and the forwarding plane forwards the message to the next hop. The present invention not only overcomes the defect of non-separation of directional routing and control, but also reduces the complexity of routing calculation by introducing heuristic rules. Compared with the traditional Dijkstra routing calculation method, the routing calculation performance of the satellite network is improved, and the routing calculation of the grid satellite network topology can be realized faster.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The invention belongs to the field of communication technology, and in particular relates to a grid routing calculation method based on a heuristic rule A* algorithm. Background Art

[0002] In the current space network low-orbit communication satellite system, inclined orbit constellations and polar orbit constellations are commonly used, and the entire system is built in a typical grid topology. In this connection mode, each satellite has four adjacent satellites, two in the same orbital plane and two in adjacent orbital planes.

[0003] In traditional space networks, the problem with directional routing algorithms is that they forward messages based on the forwarding rules defined in four directions, which can reduce the cost of routing calculations. However, due to the lack of a global topology view, directional routing can only achieve accessibility, but cannot achieve the global shortest path, nor can it cope with complex link weight rules, especially when a link is interrupted, routing may not be possible, and directional routing is only applicable to satellite network routing, and cannot support prefix routing; at the same time, directional routing is not a forwarding and control separation architecture, but after receiving a message, it first selects the outbound interface of the message according to the forwarding rules of directional routing, and then forwards the message, so each message needs to make a routing selection, and the forwarding performance of this architecture cannot be improved.

[0004] Modern routing switching equipment usually adopts a forwarding and control separation architecture. The control plane calculates the route and then sends it to the data forwarding plane. The data forwarding plane only needs to forward packets according to the calculated route. This architecture is a software-defined network architecture. The data forwarding plane can be implemented with ASIC chips, so the forwarding performance can be improved thousands of times.

[0005] In addition, modern routing switching equipment often uses the Dijkstra algorithm to calculate the shortest path in the network. The Dijkstra algorithm is a shortest path algorithm. The core idea is based on a greedy strategy. Each time, the node closest to the current starting node is selected, and the distance to the adjacent nodes is updated through this node. However, there are several problems with the Dijkstra algorithm when used in satellite networks:

[0006] 1. The network's mesh-like directional topology is not well utilized to simplify routing calculations;

[0007] 2. The essence of Dijkstra algorithm is breadth-first search, which is a divergent search, so the space complexity and time complexity are relatively high.

[0008] Another shortest path algorithm is the A* algorithm. The A* algorithm adds heuristic rules based on the Dijkstra algorithm, which can reduce the complexity of routing calculations, but has not yet been applied in network routing calculations. Summary of the invention

[0009] Purpose of the invention: Based on the topological characteristics of satellite networks, and in view of the problems existing in directional routing methods and Dijkstra routing calculation methods, the present invention discloses an A*+ grid routing calculation method based on a heuristic rule A* algorithm, which not only overcomes the defect of non-separation of directional routing control and transfer, but also reduces the complexity of routing calculation by introducing heuristic rules. Compared with the traditional Dijkstra routing calculation method, the routing calculation performance of the satellite network is improved, and the routing calculation in the grid satellite network topology can be realized more quickly.

[0010] The A*+ grid routing calculation method proposed in the present invention specifically includes the following steps:

[0011] S1. According to the given grid routing link weight setting method, establish a global network connectivity directed graph:

[0012] S1.1 Establish a global network connectivity topology based on the low-orbit satellite network. The entire satellite constellation network is considered as a mesh topology with satellites as vertices and intersatellite links as edges. Each satellite has a host address that can be used as the next hop of the network routing. The outbound interfaces of each satellite in the four directions of up, left, down, and right are numbered as Oif1, Oif2, Oif3, and Oif4 respectively.

[0013] Since the topological changes of satellite networks are spatially periodic, we can divide the regions by the geographical location of the satellite mapping points on the ground, and each region is represented by a binary array Assign a logical address, where Represents the track number, Represents the satellite number in orbit; the manager of the area is the satellite closest to the center point. When a satellite leaves the area, the subsequent satellite will take over the position of the current satellite.

[0014] S1.2 Establish a directed graph based on the global network connectivity topology. The nodes in the directed graph represent satellite nodes, using the logical address of the region. The edges represent the links between satellites. The following grid topology link weight setting method is given to assign link weights. In particular, both directions of the intersatellite links between the same pair of satellites need to be assigned values ​​and the same value is used by default. When the intersatellite link is disconnected, the weight value is infinite:

[0015] In constellations that use a grid topology connection method, such as polar orbit constellations and inclined orbit constellations, the length of the inter-satellite link established by adjacent satellites on the same orbital plane is a fixed value, and the length of the inter-satellite link established by adjacent satellites on adjacent orbital planes changes spatially periodically with latitude during satellite movement. Assuming that the inter-satellite link length of two satellites on the same orbital plane is 1, the normalized inter-satellite link length of adjacent satellites in adjacent orbits at different latitudes can be calculated according to the relationship between the link lengths within the orbital plane and between orbital planes. This normalized inter-satellite link length is used as the link cost in the subsequent path search, that is, the link weight value in the directed graph, thereby unifying the number of hops and the propagation distance.

[0016] S2. Based on the directed graph established in step S1, the following heuristic rule is introduced to directly establish the shortest path for the node pairs that meet the rule, and calculate the ordered arrangement of the nodes through which the shortest path passes:

[0017] S2.1 Establish the shortest path directly between adjacent nodes within a track and between tracks;

[0018] S2.2 When both intra-track and inter-track links exist, intra-track links are preferred, i.e. the paths between all pairs of nodes on the same track are defined as the shortest paths established.

[0019] S3. For the remaining node pairs that do not meet the heuristic rules set in S2, the A* directed search algorithm is used to calculate the shortest path and the ordered arrangement of the nodes through which the shortest path passes. For the current point on the path, the A*+ method not only records its cost to the starting node, but also calculates the expected cost from the current point to the target point. The characteristics of the grid-like directional topology can be used to reduce the complexity of routing calculations and improve routing calculation performance.

[0020] Moving expenses f The calculation process is as follows:

[0021] ,

[0022] in, g is the actual cost of the required node from the starting node, that is, the sum of the costs of the directed edges along the path from the node to the starting node. h is the estimated cost of the node from the end point, determined by a given heuristic function. In order to ensure the correctness of the shortest path found by the algorithm, it is necessary to satisfy ,in is the actual cost, and the heuristic function is set to the number of hops * coefficient. The value of the coefficient is based on g The value is adjusted to ensure that the correct shortest path can be found and the value of the heuristic function is close to the actual cost of the optimal path.

[0023] For each node, the steps to use the A* algorithm to calculate the shortest path from that node to all other nodes are as follows:

[0024] S3.1 establish two state tables, OpenList table and CloseList table, wherein the OpenList table consists of nodes to be examined, and the CloseList table consists of nodes that have been examined;

[0025] S3.2 adds the start node to the OpenList table;

[0026] S3.3 Repeat the following process:

[0027] S3.3.1 Traverse the OpenList table and find f The node with the smallest value is selected as the node to be processed currently.

[0028] S3.3.2 Perform the following operations on all adjacent nodes of the node to be processed:

[0029] ① If the adjacent node is unreachable or already exists in the CloseList table, ignore the node and do not process it;

[0030] ② If the adjacent node is not in the OpenList table, add the node to the OpenList table, and use the current node as its parent node, and calculate the adjacent node newly added to the OpenList table. f , g , h Value, note that g The value is calculated via the current node path g value;

[0031] ③If the node is already in the OpenList table, use g The value is used as a reference to check whether the path through the current node is better. g A smaller value indicates that the path is a better path, so the current node is set as its parent node and recalculated. g Value and f value.

[0032] S3.3.3 After processing all adjacent nodes of the current node in the OpenList table, move the node into the CloseList table.

[0033] S3.4 For each node, repeat S3.3 until one of the following conditions is met, and the calculation terminates:

[0034] ① Add the destination node to the OpenList table, indicating that the path has been found;

[0035] ② The search for the destination node fails and the OpenList table is empty, indicating that there is no path.

[0036] S3.5 If the destination node has been found, then record the path from the destination node to the start node along the parent node for each node. This path is the shortest path sought. The nodes passing through the shortest path are put into a list in sequence, which is an ordered arrangement of the nodes passing through the shortest path.

[0037] S4. After calculating the shortest path from each satellite node to all other nodes, perform network routing calculation. For each node, reverse the next hop of each path from the shortest path and extract the outbound interface information. Add the next hop and corresponding outbound interface information of each node to the routing table of the source node to calculate the network routing of the satellite network.

[0038] S5. Based on the satellite network route calculated in step S4, perform iterative calculation of the prefix route:

[0039] S5.1 in satellite node Get the import node of a prefix route ;

[0040] S5.2 for satellite nodes , get the introduced node in the network route The next hop IP address and outgoing interface Oif of the prefix route are iterated, and the next hop of the prefix route is the IP address and the outgoing interface is the Oif.

[0041] S5.3 Repeat S5.1 and S5.2 until a satellite node is iterated out All prefix routes of , the iteration terminates;

[0042] S5.4 Repeat steps S5.1, S5.2, and S5.3 for the next satellite node, and perform prefix routing iteration for the next satellite until the routes of all routing prefixes on all satellite nodes are calculated, and the calculation is terminated.

[0043] S6. Output the routing information table of network routing and prefix routing between node pairs:

[0044] S6.1 outputs the table entry of each route, including the network prefix, mask or prefix length, next hop IP address, and outgoing interface Oif;

[0045] S6.2 further converts the calculated shortest path through the ordered arrangement of nodes into an ordered arrangement of source routes (Segment List), encapsulates the Segment List in the SRH header of the source node, and the forwarding plane can perform segment-by-segment forwarding of the segment routes according to the ordered arrangement, thereby realizing the control of the explicit path.

[0046] S7. The control plane sends the calculated routing information table to the data forwarding plane to form a forwarding information table.

[0047] S8. The data forwarding interface directly searches the forwarding information table for the packet message, obtains the outgoing interface of the message, and forwards the message to the next hop.

[0048] Beneficial effects:

[0049] 1. The time complexity of the A* algorithm is lower than that of the Dijkstra algorithm. Even in the worst case, the A* algorithm will degenerate into the Dijkstra algorithm with the same complexity. For the A* algorithm, the accuracy of the algorithm depends on the heuristic function. , The closer to the actual cost, the better the algorithm effect. The A*+ algorithm proposed in the present invention is implemented based on the A* algorithm, with low time complexity; at the same time, a heuristic function close to the actual cost of the optimal path is designed, and the routing calculation time is better than the Dijkstra routing calculation method commonly used in existing routing switching devices.

[0050] 2. Compared with the traditional A* algorithm, the A*+ method proposed in the present invention further improves the routing calculation efficiency by adding heuristic rules and reducing the number of network nodes to be explored.

[0051] 3. In addition to realizing the calculation of the shortest route, the A*+ method proposed in the present invention can also be associated with source routing (Segment Routing, SR), converting the node sequence passed by the shortest path into an ordered arrangement of segments and network nodes, and directly obtaining the Segment List of SR routing on the control plane. The data forwarding plane can perform segment-by-segment forwarding of the segment routing according to this ordered arrangement.

[0052] 4. The A*+ method proposed in the present invention realizes the separation of forwarding and control, which can significantly improve the forwarding performance compared with traditional directional routing. BRIEF DESCRIPTION OF THE DRAWINGS

[0053] Figure 1 This is the Iridium system constellation configuration diagram;

[0054] Figure 2 This is a schematic diagram of satellite distribution on the same hemisphere for each orbit of an ideal polar orbit constellation;

[0055] Figure 3Calculate the flow chart for the A*+ method;

[0056] Figure 4 This is the directed graph of the simplified constellation;

[0057] Figure 5 is the directed graph of the simplified constellation with link outage;

[0058] Figure 6 Flowchart for prefix route calculation. DETAILED DESCRIPTION

[0059] In order to make the purpose, technical solution and advantages of the present invention more clearly understood, the embodiments of the present invention are described in detail below in conjunction with the accompanying drawings: This embodiment is implemented under the premise of the technical solution of the present invention, and a detailed implementation method and a specific operation process are given. The specific examples described here are only used to explain the present invention, but the protection scope of the present invention is not limited to the following embodiments.

[0060] One practical application scenario of the present invention is a polar orbit constellation. In a polar orbit constellation, there are intra-orbit inter-satellite links and inter-orbit inter-satellite links. The intra-orbit links maintain a stable connection at all times, and the inter-orbit links are disconnected in the following two special cases: the area between two orbits with opposite running directions is called a reverse seam, and no inter-orbit links are established at the reverse seam; at the same time, when the satellite enters the polar region, the inter-orbit links will not be established due to the rapid change in the relative positions between the satellites.

[0061] Attached Figure 1 The Iridium system is a typical polar orbit constellation with 6 orbits, 11 satellites on each orbit, and an orbital inclination of 86.4 degrees. To better illustrate how the present invention is used in an actual network, an ideal polar orbit constellation with 6 orbits and 22 satellites on each orbit is established. The constellation orbital inclination is 90°, and the satellites on each orbit are evenly distributed. The polar region with disconnected links is between 70° and 90° north and south latitudes. The left side of Orbit0 and the right side of Orbit5 are reverse seam regions where no links are established. The satellite distribution on the same hemisphere of each orbit of the ideal constellation is shown in the attached figure. Figure 2 Based on this constellation, the A*+ method is used to calculate the route. The calculation process is shown in the attached Figure 3 shown.

[0062] 1. Directed graph creation

[0063] The entire satellite constellation network is considered as a mesh topology structure with satellites as vertices and intersatellite links as edges. Each satellite has a host address that can be used as the next hop of network routing. Assuming that the satellite moves upward, the outbound interfaces of each satellite in the four directions of up, left, down, and right are numbered as Oif1, Oif2, Oif3, and Oif4, respectively. Figure 2As shown in the satellite node A in the figure. The geographical location of the satellite mapping point on the ground is divided into regions, and each region is represented by a binary array. Assign a logical address, where Represents the track number, Represents the satellite number in the orbit.

[0064] Based on the above topology diagram, we build Figure 4 The directed graph shown in Figure 1. The nodes in the directed graph represent satellite nodes, using the logical address of the region. The edges represent the connection relationship between satellites. The following link weight setting method of the grid topology is given to assign link weights:

[0065] For an orbit with a radius of R The number of orbits is N , the number of satellites in each orbit is M For a polar orbit constellation, the intersatellite link length between adjacent satellites on the same orbital plane is , the intersatellite link length between adjacent satellites in the adjacent orbital plane changes with the flight latitude of the satellite. Without considering the phase difference between neighboring satellites in different orbital planes, the link latitude can be calculated as The inter-satellite link distance between adjacent satellite nodes in orbit is approximately .

[0066] Similarly, for an orbit with a radius of R The number of orbits is N , the number of satellites in each orbit is M The total number of satellites is T The phase factor is P For an inclined orbit constellation, the intersatellite link length between adjacent satellites on the same orbital plane is , the intersatellite link length between adjacent satellites in the adjacent orbital plane The calculation formula is as follows:

[0067] ,

[0068] in, is the phase of the satellite with the smaller phase among the satellites connected at both ends of the inter-orbit inter-satellite link, and , .

[0069] Assuming that the inter-satellite link length between two adjacent satellites on the same orbital plane is 1, the normalized inter-orbital link lengths at different latitudes can be calculated according to the relationship between the link lengths within the orbital plane and between orbital planes. This normalized inter-satellite link length is used as the link cost for subsequent path search, that is, the link weight value in the directed graph.

[0070] For polar orbit constellations, assuming that the inter-satellite link length between two satellites on the same orbital plane is 1, the normalized inter-orbital link length at different latitudes can be calculated based on the relationship between the link lengths within the orbital plane and between the orbital planes: Attached Figure 2 The number of orbits in the ideal polar orbit constellation shown N =6, Number of satellites per orbit M =22, substituting into the above formula, we can calculate the additional Figure 4 In the directed graph shown, the weight values ​​of the edges at the equator, 15°, 30°, 45°, and 60° north and south latitudes are 1.82, 1.76, 1.57, 1.28, and 0.91, respectively.

[0071] 2. Shortest path calculation

[0072] The following heuristic rule is introduced to directly establish the shortest path for the node pairs that meet the heuristic rule. The heuristic rule is as follows:

[0073] (1) Establish the shortest path directly between adjacent nodes within a track and between tracks;

[0074] (2) When both intra-track and inter-track links exist, intra-track links are preferred, that is, the paths between all node pairs on the same track are defined as the shortest paths established.

[0075] For the remaining node pairs that do not satisfy the heuristic rule, the A* directed routing search algorithm is used to calculate the shortest path, and the ordered arrangement of the nodes through which the shortest path passes is calculated:

[0076] Moving expenses f The calculation process is as follows:

[0077] ,

[0078] in, g is the actual cost of the required node from the starting node, that is, the sum of the costs of the directed edges along the path from the node to the starting node. h is the estimated cost of the node from the end point, determined by a given heuristic function. In order to ensure that the correct shortest path can be found and the value of the heuristic function is close to the actual cost of the optimal path, g The size of the heuristic function is set to the number of hops * 0.91, where 0.91 is the actual cost, that is, the minimum value of the link weight in the directed graph.

[0079] In the attached Figure 4 In the directed graph shown, the starting node (0,0) is marked as S, and the destination node (2,4) is marked as D. The calculation process of the shortest path from S to D is used to illustrate the shortest path calculation method.

[0080] First, for nodes S and D, determine whether the relationship between the two nodes satisfies the two given heuristic rules. Since D is not an adjacent node or a node on the same track of S, the shortest path cannot be directly established according to the heuristic rules. The shortest path from S to D needs to be calculated using the A* algorithm.

[0081] Add node S to the OpenList table. Among its adjacent nodes, node F is located in the polar region where the link is disconnected, so there is no intersatellite link between node S and node F. Node T is located at the other end of the reverse seam region where no link is established, so there is no intersatellite link between node S and node T. The remaining two adjacent nodes A and B that can establish intersatellite links are not in the OpenList table. Then first add nodes A and B to the OpenList table, and use node S as the parent node to calculate the intersatellite links of these two nodes. f , g , h The results are listed in Table 1:

[0082] Table 1 Evaluation function values ​​of node S’s neighboring nodes

[0083] Expenses Node A Node B value 7.37 5.55 value 1 1 value 6.37 4.55

[0084] choose f Node B with the smallest value is selected as the next node to be processed. At this time, all adjacent nodes of node S have been processed, and node S is added to the CloseList table.

[0085] For node B, among the three nodes that are adjacent to it and can establish intersatellite links, node S is already in the CloseList table and is not processed; the other two nodes C and E are not in the OpenList table, so nodes C and E are first added to the OpenList table, and node B is used as the parent node to calculate the f , g , h The results are listed in Table 2:

[0086] Table 2 Evaluation function values ​​of node B’s neighboring nodes

[0087] Expenses Node C Node E value 5.55 5.64 value 1.91 2 value 3.64 3.64

[0088] choose f Node C with the smallest value is used as the next node to be processed. At this time, all adjacent nodes of node B have been processed, and node B is added to the CloseList table.

[0089] For node C, node B among its four adjacent nodes is already in the CloseList table, so no processing is done; the other three nodes F, G, and H are not in the OpenList table, so first add nodes F, G, and H to the OpenList table, and calculate the parent node of these three nodes. f , g , h The results are listed in Table 3:

[0090] Table 3 Evaluation function values ​​of node C’s adjacent nodes

[0091] Expenses Node F Node G Node H value 7.46 5.55 5.64 value 2.91 2.82 2.91 value 4.55 2.73 2.73

[0092] choose f The node G with the smallest value is used as the next node to be processed. At this time, all adjacent nodes of node C have been processed, and node C is added to the CloseList table.

[0093] For node G, node C among its four adjacent nodes is already in the CloseList table and is not processed; the other three nodes M, N, and P are not in the OpenList table, so first add nodes M, N, and P to the OpenList table, and calculate the parent node of these three nodes. f , g , h The results are listed in Table 4:

[0094] Table 4 Evaluation function values ​​of node G’s adjacent nodes

[0095] Expenses Node M Node N Node P value 7.46 7.37 5.64 value 3.82 3.73 3.82 value 3.64 3.64 1.82

[0096] choose f The node P with the smallest value is used as the next node to be processed. At this time, all adjacent nodes of node G have been processed, and node G is added to the CloseList table.

[0097] For node P, among its four adjacent nodes, node G is already in the CloseList table and is not processed; among the other three nodes, H is already in the OpenList table and does not get a smaller node through the current node P. g Value, that is, when C is originally used as the parent node g =2.89, and if P is used as the parent node g =5.03, indicating that reaching node H via the current node P is not a better path, so node H is not processed, and its parent node remains unchanged as node C; the remaining two nodes Q and R are not in the OpenList table, so nodes Q and R are added to the OpenList table, and node P is used as the parent node to calculate the two nodes. f , g, h The results are listed in Table 5:

[0098] Table 5 Evaluation function values ​​of node P’s neighboring nodes

[0099] Expenses Node R Node Q value 5.73 7.83 value 4.82 5.10 value 0.91 2.73

[0100] choose f The node R with the smallest value is used as the next node to be processed. At this time, all adjacent nodes of node P have been processed, and node P is added to the CloseList table.

[0101] For node R, node P among its four adjacent nodes is already in the CloseList table, so no processing is done; the other three nodes are not in the OpenList table, so these three nodes are first added to the OpenList table. Since the three adjacent nodes include the destination node D, the condition of adding the destination node D to the CloseList table is met, indicating that the path has been found at this time, and the calculation is completed.

[0102] The record starts from the destination node D, and each node moves along the path D→R→P→G→C→B→S from the parent node to the start node S. This path is the shortest path required. The path cost is the sum of the normalized link lengths along the way. The passed nodes are put into the list in sequence, which is the ordered arrangement of the nodes passed by the shortest path.

[0103] If a link is interrupted, for example, the link between node C and node G is interrupted, the weight value of the edge in the directed graph will be deleted, which is equivalent to infinity, and the weight value of the edge will be reset according to the attached Figure 3 The corresponding process of the A*+ network routing calculation method shown in the figure calculates the shortest path after node C. The calculation results are shown in the attached figure. Figure 5 As shown in the figure, the shortest path is D→R→P→H→C→B→S. Figure 4 and attached Figure 5 It can be seen from the results in that, according to the given link weight setting method, since the intersatellite link length is shorter at high latitudes, high-latitude paths are preferred when searching for the shortest path.

[0104] 3. Network routing calculation

[0105] After calculating the shortest path from each satellite node to all other nodes, perform network routing calculation. For each node, reverse the next hop of each path from the shortest path and extract the outbound interface information. Add the next hop and corresponding outbound interface information of each node to the routing table of the source node to calculate the network routing of the satellite network.

[0106] Attached Figure 4The loopback host addresses of the main nodes in the are assigned as follows:

[0107] Node S: 192.168.1.1 / 24

[0108] Node B: 192.168.2.1 / 24

[0109] …

[0110] Node D: 192.168.3.1 / 24

[0111] From the shortest path D→R→P→G→C→B→S from node S to node D, we can infer that the next hop is node B and the outbound interface is the interface below, namely Oif3. Add the next hop from node S to all other nodes and the corresponding outbound interface information to the routing table of node S to obtain the network route of node S.

[0112] A network route of node S is listed in Table 6:

[0113] Table 6 A network route of node S

[0114] Destination network segment Next hop Outbound interface Expenses 192.168.3.1 / 24 192.168.2.1 Oif3 5.82

[0115] 4. Iterative calculation of prefix routing

[0116] Based on the calculated satellite network route, the prefix route can be iteratively calculated. The specific calculation process is as follows: Figure 6 As shown in the figure, take the example of introducing a prefix route 10.10.0.1 / 24 on node D(2,4) and iterating the prefix route on S(0,0) as an example:

[0117] Step 1: On the satellite node Get the import node of a prefix route ;

[0118] Step 2: Target satellite nodes , get the introduced node in the network route The next hop IP address of node S is 192.168.2.1 and the outgoing interface is Oif3. The next hop of the prefix route is 192.168.2.1 and the outgoing interface is Oif3. A prefix route of node S is listed in Table 7:

[0119] Table 7 A prefix route of node S

[0120] Destination network segment Next hop Outbound interface Expenses 10.10.0.1 / 24 192.168.2.1 Oif3 5.82

[0121] Step 3: Repeat steps 1 and 2 until a satellite node is iterated. All prefix routes of , the iteration terminates;

[0122] Step 4: Repeat steps 1, 2, and 3 for the next satellite node to iterate the prefix routing of the next satellite until all routing prefixes introduced on all satellite nodes are calculated and the calculation is terminated.

[0123] 5. Output the routing information table of Network routing and prefix routing between satellite network node pairs:

[0124] Step 1: Output the table entry of each route, including the network prefix, mask or prefix length, next hop IP address and outgoing interface Oif;

[0125] Step 2: Further, the ordered arrangement of nodes through which the shortest path is calculated is converted into an ordered arrangement of source routes (Segment List), and the Segment List is encapsulated in the SRH header of the source node. The forwarding plane can then forward the segment routes segment by segment according to the ordered arrangement, thereby achieving explicit path control.

[0126] 6. The control plane sends the calculated routing information table to the data forwarding plane to form a forwarding information table.

[0127] 7. Data forwarding directly searches the forwarding information table for the packet message, obtains the outgoing interface of the message, and forwards the message to the next hop.

[0128] Use the attached Figure 4 For the directed graph shown in the figure, the number of nodes traversed and the algorithm running time when the Dijkstra algorithm, A* algorithm and A*+ method are calculated for the shortest path are tested, and the performance of the three methods is compared and verified.

[0129] Test environment: Windows 10 version, CPU is 13th Gen Intel(R) Core(TM) i7-13700, CPU frequency is 2.10 GHz, memory is 16.0 GB, 64-bit operating system. All three algorithms are implemented in Python programming language.

[0130] When testing the algorithm running time, in order to eliminate the measurement error, the total time of each repetition of 10 times was recorded, and the algorithm was run 5 times. Some results are listed in Tables 8 and 9. It can be seen that for the same directed graph, the number of traversed nodes and the running time of the A*+ algorithm are both less than those of the A* algorithm and the Dijkstra algorithm, indicating that the A*+ method proposed in the present invention has low complexity and better performance.

[0131] Table 8 Comparison of the number of traversed nodes

[0132] starting point end Dijkstra traversal nodes A* traversal of nodes A*+ traversal of nodes (0,0) (0,1) 66 2 0 (0,0) (0,2) 66 3 0 (0,0) (1,0) 66 4 4 (0,0) (1,1) 66 3 3 (0,0) (2,0) 66 6 6 (0,0) (2,1) 66 4 4 (0,0) (2,2) 66 7 7

[0133] Table 9 Comparison of total time of running the algorithm 5 times, with 10 repetitions each time

[0134] frequency Dijkstra algorithm running time (seconds) A* algorithm running time (seconds) A*+ method running time (seconds) A*+ is a percentage improvement over A* A*+ improves the ratio of Dijkstra 1 2.496534 1.145553 1.117391 2.46% 55.24% 2 2.491822 1.148458 1.120641 2.42% 55.02% 3 2.501487 1.150836 1.118630 2.80% 55.28% 4 2.492997 1.145013 1.116008 2.53% 55.23% 5 2.494989 1.144825 1.116214 2.50% 55.26%

Claims

1. An A*+ grid routing calculation method, characterized in that: The method comprises the following steps: S1. Establish a global network connectivity directed graph; S2. Directly derive the shortest path for the node pairs that satisfy the given heuristic rules, and calculate the ordered arrangement of the nodes through which the shortest path passes; the heuristic rules include: (1) Establish the shortest path directly between adjacent nodes within a track and between tracks; (2) When both intra-track and inter-track links exist, intra-track links are preferred, i.e., the paths between all pairs of nodes on the same track are defined as the shortest paths established; S3, for the node pairs that do not satisfy the heuristic rule, the A* search algorithm is used to calculate the shortest path and the ordered arrangement of the nodes through which the shortest path passes; S4. Perform network routing calculation based on the shortest path obtained in steps S2-S3. For each node, reverse the next hop of each path from the shortest path and extract the outbound interface information. Add the next hop and corresponding outbound interface information of each node to the routing table of the source node to calculate the network route. S5. Perform iterative calculation of prefix routing based on the network routing calculated in step S4; S6, output the routing information table of the network routing and prefix routing between the node pairs; S7, the control plane sends the calculated routing information table to the data forwarding plane to form a forwarding information table; S8. The data forwarding interface directly searches the forwarding information table for the packet message, obtains the outgoing interface of the message, and forwards the message to the next hop.

2. The A*+ grid routing calculation method according to claim 1, characterized in that: The step S1 of establishing a global network connectivity directed graph includes: S1.1 A global network connectivity topology is established based on the low-orbit satellite network. The entire satellite constellation network is considered as a mesh topology structure with satellites as vertices and intersatellite links as edges. Each satellite has a host address that can be used for the next hop of network routing. The satellite's moving direction is assumed to be upward. The outbound interfaces of each satellite in the four directions of up, left, down, and right are numbered as Oif1, Oif2, Oif3, and Oif4, respectively. At the same time, based on the spatial periodicity of the satellite network topology changes, the regions are divided by the geographical location of the satellite mapping point on the ground. Each region is represented by a binary array [Orbit m ,Sate n ] is assigned a logical address, where Orbit m Represents the track number, Sate n Represents the satellite number in orbit; S1.2 A directed graph is established based on the global network connectivity topology graph. The nodes in the directed graph represent satellite nodes and the logical addresses of the regions are [Orbit m ,Sate n ] is represented by edges, where the edges represent the links between satellites. The following link weight setting method for grid routing is given to assign link weights: Assume that the inter-satellite link length between two satellites on the same orbital plane is 1. According to the relationship between the link lengths within the orbital plane and between orbital planes, the normalized inter-satellite link lengths between adjacent orbits at different latitudes are calculated. This normalized inter-satellite link length is used as the link cost for subsequent path search, that is, the link weight value in the directed graph.

3. The A*+ grid routing calculation method according to claim 2, characterized in that: When assigning the link weight, both directions of the intersatellite link between the same pair of satellites need to be assigned and the same value is assumed by default. When the intersatellite link is disconnected, the link weight value is infinite.

4. The A*+ grid routing calculation method according to claim 1, characterized in that: The step S3 uses the A* search algorithm to calculate the shortest path and the ordered arrangement of nodes through which the shortest path passes for the node pairs that do not satisfy the heuristic rule, including: The calculation formula of the mobile cost f is: f=g+h Among them, g is the actual cost of the node to be found from the starting node, that is, the sum of the costs of the directed edges along the path from the node to the starting node, and h is the estimated cost of the node from the end point, which is determined by a given heuristic function. The number of hops between the two nodes is selected * the coefficient. The value of the coefficient is adjusted according to the value of g to ensure that the correct shortest path can be found and the value of the heuristic function is close to the actual cost of the optimal path; For each node, use the A* algorithm to calculate the shortest path from that node to all other nodes: S3.1 establish two state tables, OpenList table and CloseList table, wherein the OpenList table consists of nodes to be examined, and the CloseList table consists of nodes that have been examined; S3.2 adds the start node to the OpenList table; S3.3 Repeat the following process: S3.3.1 traverse the OpenList table, find the node with the smallest f value, and use it as the current node to be processed; S3.3.2 Perform the following operations on all adjacent nodes of the node to be processed: ① If the adjacent node is unreachable or already exists in the CloseList table, ignore the node and do not process it; ② If the adjacent node is not in the OpenList table, add the node to the OpenList table, take the current node as its parent node, and calculate the f, g, and h values; ③ If the node is already in the OpenList table, use the g value as a reference to check whether the path through the current node is better. A smaller g value indicates that the path is a better path. Then set the current node as its parent node and recalculate the g value and f value. S3.3.3 After processing all adjacent nodes of the current node, move the node into the CloseList table; S3.4 For each node, repeat S3.3 until one of the following conditions is met, and the calculation terminates: ① Add the destination node to the OpenList table, indicating that the path has been found; ② The search for the destination node fails, and the OpenList table is empty, indicating that there is no path; S3.5 If the destination node has been found, then record the path from the destination node to the start node along the parent node for each node. This path is the shortest path sought. Put the nodes passing through the shortest path into a list in sequence, which is the ordered arrangement of the nodes passing through the shortest path.

5. The A*+ grid routing calculation method according to claim 2, characterized in that: The iterative calculation of prefix routing based on the network routing calculated in step S4 described in step S5 includes: S5.1 In the satellite node S (Orbit i ,Sate j ) to obtain a prefix route import node [Orbit m ,Sate n ]; S5.2 For satellite node S (Orbit i ,Sate j ), get the introduced node [Orbit m ,Sate n ]'s next hop IP address and outgoing interface Oif, so that the next hop of the prefix route is iterated to be the IP address and the outgoing interface is the Oif; S5.3 Repeat S5.1 and S5.2 until the satellite node S (Orbit i ,Stae j ) all prefix routes, the iteration terminates; S5.4 Repeat steps S5.1, S5.2, and S5.3 for the next satellite node, and perform prefix routing iteration for the next satellite node until the routes of all routing prefixes on all satellite nodes are calculated, and the calculation is terminated.

6. The A*+ grid routing calculation method according to claim 1, characterized in that: The routing information table of the network routing and prefix routing between the output node pairs described in step S6 specifically includes: S6.1 outputs the table entry of each route, including the network prefix, mask or prefix length, next hop IP address, and outgoing interface Oif; S6.2 further converts the ordered arrangement of nodes through which the shortest path is calculated into an ordered arrangement Segment List of the source route, and encapsulates the Segment List in the SRH header of the source node. The forwarding plane can then perform segment-by-segment forwarding of the segment route according to the ordered arrangement, thereby achieving explicit path control.

Citation Information

Patent Citations

  • LEO satellite network reliability routing method based on QoS guarantee

    CN112566142A

  • Multicast routing with service-level guarantees between ingress egress-points in a packet network

    US6778531B1