Multi-path routing methods and systems based on location and path quality differences
By combining path space deviation and link reliability in military mobile ad hoc networks, and selecting non-intersecting or partially non-intersecting multi-path routes, the problems of local military strikes and transmission path performance differences are solved, and stable transmission and throughput requirements of service flows are achieved.
Patent Information
- Application Number
- CN202311352408.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-10-19
- Publication Date
- 2026-03-06
- Estimated Expiration
- 2043-10-19
AI Technical Summary
Existing multi-path routing methods do not fully consider local military strikes and differences in transmission path performance in military mobile ad hoc networks, leading to communication interruptions and increased pressure on the receiving end buffer, which cannot meet the throughput requirements of service flows.
The multi-path routing method based on location and path quality differences calculates the spatial deviation of paths and link reliability, selects non-intersecting or partially non-intersecting multi-paths for load balancing, and uses latitude, longitude and altitude information to map into three-dimensional coordinates to redefine link reliability to meet the throughput requirements of business flows.
Without migrating other service traffic or changing the bottleneck bandwidth of the path, the impact of local military strikes on service flow transmission is reduced, system resource utilization efficiency is improved, and stable service flow transmission is ensured.
Smart Images

Figure CN117440464B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer network routing technology, and in particular to a multi-path routing method and system based on location and path quality differences. Background Technology
[0002] Mobile ad hoc networks are multi-hop, temporary, self-organizing network systems. Their flexibility and ease of deployment make them stand out among various network types, and they are widely used in the military field. Since tactical military networks primarily employ wireless transmission mechanisms, their bandwidth limits are generally much lower than those of traditional wired networks. Therefore, for military traffic flows with large data volumes and long durations, if a single path with bottleneck bandwidth that meets the traffic throughput requirements cannot be found, routing algorithms initiate multi-path routing to select multiple sub-flow paths for load balancing. This allows the throughput requirements of the traffic flow to be met as much as possible without migrating other traffic flows or changing the bottleneck bandwidth of the paths.
[0003] When a service flow requires multiple paths for data transmission, it's essential to find as many non-overlapping paths as possible to ensure fault tolerance. For example, if multiple paths selected by a service flow share the same intermediate forwarding node or transmission link, then if this common network node or transmission link fails, the service flow will be completely interrupted, waiting for the activation of a backup path or a rerouting. This will undoubtedly severely impact the transmission quality of the service flow. Traditional non-overlapping multi-path routing schemes fall into three modes:
[0004] mode1: Multipath routing where all nodes on each transmission path are non-intersecting.
[0005] mode2: Multipath routing where all links in each transmission path are non-intersecting.
[0006] mode3: Multipath routing where some links in each transmission path do not intersect.
[0007] Mode 1, the all-node-disjoint scheme, means that the multiple paths involved in transmission have no intersection in terms of network nodes and transmission links. When a failure occurs at any point on one path, the sub-streams being transmitted on other paths will not be affected. Therefore, affected service sub-streams can selectively migrate to other unaffected paths to continue transmission before the system executes backup paths or rerouting. Mode 2, the all-link-disjoint scheme, means that the multiple paths involved in transmission do not share transmission links but may share network nodes. Therefore, when these shared network nodes fail, it may affect the transmission of other sub-streams or even cause an interruption of the overall service flow. In situations where link resources are scarce or in systems with a sparse number of nodes, it may not be possible to find multiple transmission paths that satisfy the all-link-disjoint requirement. In this case, the Mode 3, partially-link-disjoint multi-path routing scheme, is used. That is, it only needs to find paths with as few shared links as possible to maximize multi-path fault tolerance.
[0008] However, due to the different application scenarios compared to the military field, two issues in multipath routing in previous mobile ad hoc networks have been overlooked: (1) Only focusing on selecting multipaths with low correlation, neglecting to consider potential localized military attacks. For example, if two lines with low correlation are selected as multipath transmission lines, and these two lines are spatially close, the possibility of both being destroyed is high, and communication will still be interrupted. Therefore, it is better to select two lines with high correlation but greater spatial distance to ensure a certain degree of resilience. (2) When performing multipath parallel transmission, a data stream needs to be divided into sub-streams and transmitted through different paths, and finally reassembled at the receiving end. If the performance differences between the various transmission paths are too large, it will put additional pressure on the buffer of the receiving end and ultimately affect the transmission quality of the service stream. In short, in addition to the degree of spatial deviation, the performance deviation between the various paths should also be considered when selecting multipath routes.
[0009] Therefore, it is necessary to study a new multipath routing method that takes into account node spatial deviation and link performance deviation, so as to meet the requirements of military networks to improve system resource utilization efficiency and reduce the impact of local military strikes on transmission. Summary of the Invention
[0010] To address the aforementioned problems, this invention aims to provide a multi-path routing method based on spatial location and path quality differences. It utilizes latitude, longitude, and altitude information to map to three-dimensional coordinates to calculate deviation, redefining link reliability. This solves the problems of localized military attacks and transmission path performance differences in existing routing methods. Furthermore, it meets the throughput requirements of service flows as much as possible without migrating other service traffic or changing the bottleneck bandwidth of the path, further reducing the impact of widespread military attacks on service flow transmission.
[0011] To achieve the above objectives, the technical solution adopted by the present invention is as follows:
[0012] A multi-path routing method based on location and path quality differences is characterized by the following steps:
[0013] S1: Based on the military service traffic requesting network access, determine the upper limit N of the number of iterations for the disjoint multipath routing method, and find the minimum bandwidth path from the source to the destination node. a Simultaneously update the bandwidth usage on the undirected graph G, and use depth-first traversal to solve for the set of acyclic candidate paths alt_paths that meet the bandwidth requirements;
[0014] S2: Path a The centroid deviation of each intermediate node set is calculated by pairwise combination of path elements in alt_paths and stored in the deviation set. The elements in the deviation set are then reordered from largest to smallest based on the key values in the deviation set. Finally, the overall performance difference data of all path combinations is obtained, and the median ava of these data is calculated.
[0015] S3: Traverse the reordered deviations from step S2, and find the first path combination A whose path difference is above the median ava: (path a path b If there exists such a path combination A and the required number of paths k = 2, the route selection ends; if there exists such a path combination A but the required number of paths k > 2, the bandwidth usage of the path on the undirected graph G is updated, and step S4 continues.
[0016] S4: Based on the two paths obtained in step S3 a path b Perform another node and edge removal operation on the undirected graph G, and then use depth-first traversal to solve for new candidate path combinations new_alt_paths = [path1, ..., path2]. i ,...];
[0017] S5: Calculate the set of centroid coordinates new_centers corresponding to new_alt_paths obtained in step S4, and then calculate the centroid of each path in new_centers and the two selected paths path respectively. a and path b The sum of the degrees of deviation of the center of gravity D i =D i,a +D i,bThis yields a new set of deviations from the center of gravity, new_deviation;
[0018] S6: Based on the new_centers obtained in step S5, repeat steps S2 and S3 to find the final required path combination B: (path a path b path c ).
[0019] Furthermore, the specific operations for determining the upper limit N of the iteration count for the non-intersecting multi-path routing method in step S1 include the following steps:
[0020] S101: Determine the set of edges in the undirected graph G, initial_edges, and initialize a set of historical search paths, initial_historical_path, an index set, initial_index, and a set of solutions, initial_results.
[0021] S102: Set the sending node as the current node, and traverse the set initial_edges to search for edges that contain the current node variable but have not yet appeared in the set initial_historical_path of historical search paths;
[0022] S103: Take a node from the end of the index set initial_index as the new current node, repeat step S102 until an edge containing the destination node is accessed, or there are no more links in initial_edges that are not included in the historical search path set initial_historical_path but contain the current node.
[0023] S104: Store the destination node as a solution element in initial_results, delete the last link in the historical path set initial_historical_path, and take the destination node X from the end of the index set initial_index as the new current node;
[0024] S105: Repeat steps S102-S104 until the index set initial_index is empty;
[0025] S106: Take the smaller value between the number of path elements stored in initial_results and the maximum number of transmission paths when considering cost balance as the upper limit N of the iteration number of the disjoint multipath routing method, i.e., min(len(initial_results), 3).
[0026] Furthermore, the method for calculating the bandwidth from the source to the destination node in step S1 is as follows:
[0027]
[0028] In the formula, cost is the bandwidth from the source to the destination node; Tp need To meet the throughput requirements of the service flow, Bw prov and Bw use These represent the nominal bandwidth of a link and the bandwidth occupied by the data traffic currently being transmitted on the link, respectively.
[0029] Furthermore, the calculation process for the degree of center of gravity deviation in step S2 includes the following steps:
[0030] S201: Obtain the latitude, longitude, and altitude information (θ1, θ2, h0) of each individual combat unit that serves as a network node, where θ1 is the latitude, θ2 is the longitude, and h0 is the altitude.
[0031] S202: Map the latitude, longitude, and altitude information of each individual combat unit that serves as a network node into a three-dimensional coordinate system to obtain the corresponding three-dimensional coordinates (x, y, z).
[0032] S203: Let path i The nodes on the [s, r1, r2, ..., r] are... n ,d], where s is the source node, d is the target node, and r i Let SW be the intermediate node. i = [r1, r2, ..., r n ] represents the path i Given the set of intermediate nodes, SW can be calculated using the centroid formula for a point set in space. i center of gravity
[0033] S204: Change path a and path b Spatial deviation distance (path) a path b ) represents the distance between the centroids of the two middle node sets.
[0034] Furthermore, the calculation process for the overall performance difference data of all path combinations in step S2 includes the following steps:
[0035] S205: Introducing the link reliability parameter Lr to measure path performance, the overall reliability Pr for a path containing num (links) is expressed as:
[0036] Here, Lr refers to the success rate of the link when transmitting data packets. In the formula, Tn is the number of data packets transmitted by the network port at one end of the link within a certain period of time, and Rn is the number of data packets correctly received by the network port at the other end of the link within that period of time.
[0037] S206: Calculate the reliability Pr of each path;
[0038] S207: For the reliability of each path, Pr1, Pr2, ..., Pr n The path set [path1, path2, ..., path n ], calculate mathematical expectation Use variance This indicates the overall performance difference across all path combinations.
[0039] Furthermore, if path combination A cannot be obtained in step S3, the required number of paths k is increased by 1, a new candidate path is recalculated, and steps S2 and S3 are repeated according to the updated candidate path and link bandwidth requirements.
[0040] Furthermore, the specific operations for performing another node and edge removal operation on the undirected graph G in step S4 include the following steps:
[0041] If a route selection process where all nodes are disjoint is being performed, then the paths obtained in step S3 will be combined (path). a path b Nodes that have been used are removed from the undirected graph G;
[0042] If routing is being performed where all links are disjoint, then the paths obtained in step S3 will be combined (path). a path b Used edges are removed from the undirected graph G;
[0043] If routing with partially disjoint links is being performed, edges in the undirected graph G that do not meet the bandwidth requirements will be removed.
[0044] Furthermore, the specific operations for performing another node and edge removal operation on the undirected graph G in step S6 include the following steps:
[0045] S601: Sort the elements in new_deviation from largest to smallest based on the key values in new_deviation according to the degree of deviation between the centers of gravity;
[0046] S602: Calculate the overall performance difference data set new_alt_paths_var for all path combinations in new_deviation, and calculate the median new_ava of this data, denoted as [var(path1, path...]. a path b ), ..., var(path) i path a path b ), ...];
[0047] S603: Traverse the reordered new_deviation from step S601, and find the first path combination B whose path difference is at the median new_ava: (path a path b path c );
[0048] S604: If a path combination B as shown in step S603 can be obtained, then path combination B is the required path;
[0049] S605: If a path combination B as described in step S603 cannot be obtained, decide whether to exit the program or continue executing other non-intersecting path selection modes based on the currently executed non-intersecting path selection mode.
[0050] Furthermore, the specific operation of step S605 includes the following steps:
[0051] If multipath routing with all nodes not intersecting is being performed, then jump to multipath routing with all links not intersecting; if multipath routing with all links not intersecting is being performed, then jump to multipath routing with some links not intersecting; if multipath routing with some links not intersecting is being performed, then exit the routing procedure and reject subsequent traffic flows.
[0052] Furthermore, the multi-path routing system based on location and path quality differences is characterized in that: when performing multi-path routing, the multi-path routing system executes the method described above.
[0053] The beneficial effects of this invention are:
[0054] This invention addresses two issues in existing multipath routing algorithms: the failure to consider localized military attacks and differences in transmission path performance. Combining the characteristics of military networks, it proposes a non-intersecting multipath routing method capable of withstanding localized military attacks. This method utilizes latitude, longitude, and altitude information to map to three-dimensional coordinates, calculates deviation, and redefines link reliability to solve the above two problems. Furthermore, this routing method can analyze relevant information to select one or more sub-flow paths for load balancing, thereby satisfying the throughput requirements of the service flow as much as possible without migrating other service traffic or changing the bottleneck bandwidth of the path, further reducing the impact of widespread military attacks on service flow transmission. Attached Figure Description
[0055] Figure 1 This is a flowchart of the multi-path routing method in this invention;
[0056] Figure 2 This is a code diagram of the non-intersecting multi-path routing method in this invention;
[0057] Figure 3 The following is a continuation of the code diagram for the non-intersecting multi-path routing method in this invention;
[0058] Figure 4 This is a topology diagram of a military mobile ad hoc network example scenario in the simulation experiment of this invention. Detailed Implementation
[0059] To enable those skilled in the art to better understand the technical solutions of the present invention, the technical solutions of the present invention will be further described below in conjunction with the accompanying drawings and embodiments.
[0060] Example 1:
[0061] As attached Figure 1 As shown, the multi-path routing method based on location and path quality differences includes the following steps:
[0062] S1: Based on the military service traffic requesting network access, determine the upper limit N of the number of iterations for the disjoint multipath routing method, and find the path with the minimum bandwidth cost from the source to the destination node. a Simultaneously update the bandwidth usage on the undirected graph G, and use depth-first traversal to solve for the set of acyclic candidate paths alt_paths that meet the bandwidth requirements;
[0063] Specifically, the upper limit N of the iteration count for the disjoint multipath routing method actually means the maximum number of parallel transmission paths that the undirected graph G can provide for military service flows. If no path satisfying mode1 (multipath routing where all nodes of each transmission path are disjoint) is found after N iterations, the algorithm then searches for a path satisfying mode2 (multipath routing where all links of each transmission path are disjoint). If mode2 still cannot satisfy the requirement, the algorithm then searches for a path satisfying mode3 (multipath routing where some links of each transmission path are disjoint). If the algorithm still cannot satisfy the requirement, the algorithm exits directly and the service flow is rejected from entering the network.
[0064] Based on the military service traffic requested for network access, the node location information and the overall network topology information need to be updated first to ensure that both the origin (source node) and destination node are in the undirected graph G. After determining the upper limit N of the number of iterations for the disjoint multipath routing method, links in the undirected graph G whose remaining bandwidth does not meet the service throughput requirements need to be removed. Then, Dijkstra's algorithm is used to find the minimum cost path from the source to the destination node. a .
[0065] More specifically, the specific steps for determining the upper limit N of the iteration count for the disjoint multipath routing method include the following:
[0066] S101: Determine the set of edges in the undirected graph G, initial_edges, and initialize a set of historical search paths, initial_historical_path, an index set, initial_index, and a set of solutions, initial_results.
[0067] S102: Set the sending node as the current node, traverse the set initial_edges to search for edges that contain the current node variable but have not yet appeared in the set initial_historical_path; for example, if the first edge found is (s1, s2), then the program will add (s1, s2) to the set of historical search paths and add s1 and s2 to the set initial_index.
[0068] S103: Take a node from the end of the index set initial_index as the new current node, repeat step S102 until an edge containing the destination node is accessed, or there are no more links in initial_edges that are not included in the historical search path set initial_hstorical_path but contain the current node.
[0069] S104: Store the destination node as a solution element in initial_results, delete the last link (X node, destination node) in the historical path set initial_historica_path, and take the X node from the end of the index set initial_index as the new current node;
[0070] S105: Repeat steps S102-S104 until the index set initial_index is empty;
[0071] S106: Since Peter P. Pham and Sylvie Perreau et al. quantified the overhead of on-demand routing mechanism in mobile ad hoc networks through problem modeling and mathematical derivation, and concluded that the overhead increases significantly when there are more than 3 transmission paths, the smaller value between the number of path elements stored in initial_results and the maximum number of transmission paths considering overhead balance can be taken as the upper limit N of the number of iterations of the disjoint multipath routing method, i.e., min(len(initial_results), 3).
[0072] In summary, the logic code for determining the upper limit N of the iteration count for the non-intersecting multi-path routing method is shown in Table 1 below.
[0073] Table 1. Algorithm for calculating the upper limit N of iterations in the disjoint multi-path routing method.
[0074]
[0075] Furthermore, in this step, the method for calculating the bandwidth cost from the source to the destination node is as follows:
[0076]
[0077] In the formula, cost is the bandwidth from the source to the destination node; Tp need To meet the throughput requirements of the service flow, Bw prov and Bw use These represent the nominal bandwidth of a link and the bandwidth occupied by the data traffic currently being transmitted on the link, respectively.
[0078] Furthermore, in this step, the calculation steps for the candidate path set `alt_paths` are almost identical to the steps for solving `initial_results` in calculating the upper limit of the iteration count `N`. The only point to note is that before calculation, edges corresponding to links in the undirected graph G whose remaining bandwidth does not meet the service throughput requirements must be removed. The specific logic code is shown in Table 2 below.
[0079] Table 2 Algorithm for Candidate Path Selection
[0080]
[0081] Furthermore, step S2: [The path is...] a The deviation of the centroid of the intermediate node set of each path element in alt_paths is calculated by pairwise combination and stored in the set deviation, where deviation = {(path a ,path1): distance(path a ,path1); ...;(path a path i ): distance(path) a path i ); ...}; Based on the degree of deviation (i.e., the value of the key-value pairs in deviation), the elements in the deviation set are reordered from largest to smallest; Finally, the overall performance difference data of all path combinations is obtained by using the var function. alt_var = [var(path a ,path1), ...,var(path) a path i ), ...], and calculate the median ava of these data;
[0082] Specifically, when combining path elements in pairs, the following points should be noted: If mode 1, where all nodes are non-intersecting, is being executed, then it is necessary to ensure that there are no common nodes between the paths combined in pairs; if mode 2, where all links are non-intersecting, is being executed, then it is necessary to ensure that there are no common links between the paths combined in pairs; if mode 3, where some links are non-intersecting, is being executed, then it is only necessary to ensure that the paths combined in pairs are not duplicated.
[0083] Furthermore, the degree of deviation of the center of gravity is calculated using the distance() function, where path... i The nodes on the [s, r1, r2, ..., r] are... n ,d], where s is the source node, d is the target node, and r i Let SW be an intermediate node, and each node have its own 3D coordinates. i = [r1, r2, ..., r n ] represents the path i Given the set of intermediate nodes, SW can be calculated using the centroid formula for a point set in space. i center of gravity path a and path bSpatial deviation distance (path) a path b ) represents the distance between the centroids of the set of intermediate nodes.
[0084] In actual combat scenarios, each individual combat unit, acting as a network node, obtains its latitude, longitude, and altitude information (θ1, θ2, h0) via the Global Positioning System (GPS) (where θ1 is latitude, θ2 is longitude in degrees, and h0 is altitude in kilometers). Therefore, a three-dimensional coordinate system mapping is required. Based on this idea, the Earth is treated as a sphere with radius R, and a three-dimensional spatial coordinate system is established with the Earth's center as the origin, the equatorial plane as the xy plane (the positive x-axis points to longitude 0°, and the positive y-axis points to longitude 90°), and the Earth's axis pointing towards the North Pole as the z-axis. The formula is then used to... Map the latitude and altitude information (θ1, θ2, h0) into the required three-dimensional coordinates (x, y, z).
[0085] Furthermore, the specific process of obtaining the overall performance difference data for all path combinations using the var function includes:
[0086] Introducing the link reliability parameter Lr to measure path performance, the overall reliability Pr for a path containing num (links) is expressed as: That is, the product of the reliability of all links on the path;
[0087] Here, Lr refers to the success rate of the link when transmitting data packets. In the formula, Tn is the number of data packets transmitted by the network port at one end of the link within a certain period of time, and Rn is the number of data packets correctly received by the network port at the other end of the link within that period of time.
[0088] To calculate the performance difference between two paths, you can first calculate the reliability Pr of each path, then calculate the expected value μ of these two Pr values, and finally obtain the variance σ. 2 Since variance is generally used to measure the degree of deviation or closeness between several values, then σ here... 2 The smaller the value, the smaller the performance difference between the two paths; conversely, the larger the value, the greater the performance difference.
[0089] The reliability of each path is Pr1, Pr2, ..., Pr n The path set [path1, path2, ..., path n In terms of computational mathematical expectation Use variance This indicates the overall performance difference across all path combinations.
[0090] Furthermore, step S3: Traverse the reordered deviations from step S2, and find the first path combination A whose path difference is above the median ava: (path a path b If such a path combination A exists and the required number of paths k = 2, the routing process ends; if such a path combination A exists but the required number of paths k > 2, the bandwidth usage of that path on graph G is updated, and step S4 continues; if path combination A cannot be obtained in step S3, the required number of paths k is increased by 1 (at this time, the bandwidth requirement of each link is expected to decrease accordingly), and new candidate paths are recalculated. Then, steps S2 and S3 are repeated according to the updated candidate paths and link bandwidth requirements.
[0091] Specifically, the goal of multipath routing is to find as few disjoint transmission paths as possible to distribute the load of service flows. This is because more transmission paths inevitably involve more storage space, packet reordering and reassembly, and additional overhead in route maintenance. Furthermore, more transmission paths also mean more network nodes participating in the transmission, thus increasing the number of attack points exposed to adversaries. Therefore, multipath routing is necessarily a process of determining the number of target transmission paths from few to many.
[0092] If a bottleneck bandwidth-compatible transmission path cannot be provided for a certain military service flow, and calculations show N=3, then initially the target number of non-intersecting paths is k=2. The expected bandwidth shared by each link naturally becomes half of the original throughput requirement of the service flow. Of course, it may eventually be impossible to find two such non-intersecting paths. In this case, k++ is executed, reducing the expected bandwidth shared by each link to one-third of the original throughput requirement of the service flow. If three such non-intersecting paths still cannot be found, the algorithm with less constraint (non-intersecting all links) restarts the iteration with k=2. If the algorithm with the least constraint (partially non-intersecting all links) also fails to find multiple transmission paths that meet the requirements within N iterations, the routing algorithm is abandoned, and the service flow is rejected from entering the network.
[0093] Furthermore, step S4: Based on the two paths obtained in step S3... a path b Perform another node and edge removal operation on the undirected graph G, and then use depth-first traversal to solve for new candidate path combinations new_alt_paths = [path1, ..., path2]. i ,...];
[0094] Specifically, when performing another node and edge culling operation on the undirected graph G, if a path selection process where all nodes are disjoint is being performed, the path combination obtained in step S3 (path) will be used. a path b Nodes that have been used are removed from the undirected graph G;
[0095] If routing is being performed where all links are disjoint, then the paths obtained in step S3 will be combined (path). a path b Used edges are removed from the undirected graph G;
[0096] If routing with partially disjoint links is being performed, edges in the undirected graph G that do not meet the bandwidth requirements will be removed.
[0097] Further, in step S5: calculate the set of centroid coordinates new_centers corresponding to new_alt_paths obtained in step S4, and then calculate the centroid of each path in new_centers and the two selected paths path respectively. a and path b The sum of the degrees of deviation of the center of gravity D i =D i,a +D i,b This yields a new set of deviations from the center of gravity, new_deviation;
[0098] Further, step S6: Based on the new_centers obtained in step S5, repeat the operations of steps S2 and S3 to find the final required path combination B: (path a path b path c );
[0099] Specifically, S601: Sort the elements in new_deviation from largest to smallest based on the key values in new_deviation according to the degree of deviation between the centroids;
[0100] S602: Calculate the overall performance difference data set new_alt_paths_var for all path combinations in new_deviation, and calculate the median new_ava of this data, denoted as [var(path1, path...]. a path b ), ..., var(path) i path a path b ), ...];
[0101] S603: Traverse the reordered new_deviation from step S601, and find the first path combination B whose path difference is at the median new_ava: (path a path b path c );
[0102] S604: If a path combination B as shown in step S603 can be obtained, then path combination B is the required path;
[0103] S605: If a path combination B as described in step S603 cannot be obtained, decide whether to exit the program or continue executing other non-intersecting routing modes based on the currently executed non-intersecting routing mode; if multi-path routing with all nodes non-intersecting is being executed, jump to multi-path routing with all links non-intersecting; if multi-path routing with all links non-intersecting is being executed, jump to partial multi-path routing with some links non-intersecting; if multi-path routing with some links non-intersecting is being executed, exit the routing program and reject subsequent service flows.
[0104] The pseudocode for the multi-path routing method based on location and path quality differences in this invention is attached. Figure 2-3 As shown.
[0105] Simulation experiment:
[0106] As attached Figure 4 In the local three-dimensional coordinate system of a certain theater of operations, the specific coordinates of the ten individual combat nodes, S1 to S10, are marked on the figure. The wireless signal coverage of each node is a sphere with itself as the center and a radius of 4 units. Assume that S1 is currently transmitting wartime information to target S10 via two non-intersecting paths [S1, S2, S3, S4, S10] and [S1, S5, S6, S10], with a small hop count. If the enemy discovers any of the intermediate nodes involved in the transmission and launches a range-based military strike centered on that node with a radius of 3 units, both transmission paths will be forced to shut down. However, two partially non-intersecting paths [S1, S5, S6, S10] and [S1, S5, S7, S8, S9, S10], which are traditionally considered less non-intersecting, can still maintain the normal operation of one transmission path even when the three intermediate nodes S7, S8, and S9 are subjected to the aforementioned range-based military strike.
[0107] according to Figure 4In the example shown, the set of edges in the undirected graph G, initial_edges, is: [(S1, S2), (S1, S5), (S2, S3), (S2, S5), (S5, S6), (S5, S7), (S3, S4), (S3, S6), (S4, S6), (S4, S10), (S6, S10), (S10, S9), (S7, S8), (S8, S9)]. Simultaneously, a set of historical search paths, initial_historical_path, an index set, initial_index, and a set of solutions, initial_results, are initialized.
[0108] The sending node S1 is recorded as the current node variable. The set initial_edges is traversed to search for edges that contain the current node variable but have not yet appeared in the historical search path set variable initial_historical_path. The first edge found is (S1, S2), so the program will add (S1, S2) to the historical search path variable historical search path, and add S1 and S2 to the index set initial_index.
[0109] Take S2 from the end of the index set initial_index as the new current node, and repeat the previous step. Continue until an edge containing the destination node is visited, or there are no more links in initial_edges that are not in the historical search path set initial_historical_path but contain the current node. Then find the four links (S2,S3), (S3,S4), (S4,S6), and (S6,S10) in sequence, and add these edges to the historical path set initial_historical_path. At this time, the index set initial_index is updated to [S1, S2,S3,S4,S6,S10].
[0110] Since S10 is the target node, the historical path is stored as a solution element in `initial_results`. Finally, the last link (S6, S10) in the historical path set `initial_historical_path` is deleted, and S6 is taken from the end of the index set `initial_index` as the new current node. If S10 in this step was found in the previous step as a node in a link that is not included in the historical search path set variable `initial_historical_path` but contains the current node, then it is not necessary to store the historical path in the solution set `initial_results`.
[0111] Repeat the entire process until the index set `initial_index` is empty, and no new node can be retrieved as the current node. This results in `initial_results` containing 18 path elements. Finally, according to `N = min(len(initial_results), 3)`, we know that N = 3.
[0112] Still attached Figure 4 Taking the mobile military ad hoc network topology as an example, assuming that the bandwidth provided by links (S2, S5) and (S3, S6) cannot meet the throughput requirements of the service flow, they are removed from the undirected graph G. Finally, through the same steps, the set of loop-free candidate paths that meet the bandwidth requirements, alt_paths, is obtained, with the following value:
[0113] [[1, 2, 3, 4, 6, 5, 7, 8, 9, 10], [1, 2, 3, 4, 6, 10], [1, 2, 3, 4, 10], [1, 5, 6, 4, 10], [1, 5, 6, 10], [1, 5, 7, 8, 9, 10]].
[0114] Example 2:
[0115] Example 2 provides a multi-path routing system based on location and path quality differences. When performing multi-path routing, this system executes the multi-path routing method described in Example 1.
[0116] The foregoing has shown and described the basic principles, main features, and advantages of the present invention. Those skilled in the art should understand that the present invention is not limited to the above embodiments. The embodiments and descriptions in the specification are merely illustrative of the principles of the invention. Various changes and modifications can be made to the invention without departing from its spirit and scope, and all such changes and modifications fall within the scope of the present invention as claimed. The scope of protection of this invention is defined by the appended claims and their equivalents.
Claims
1. A method of multi-path routing based on location and path quality difference, characterized in that, The method comprises the following steps, S1: According to the military business traffic of application access network, determine the upper limit N of the number of iterations of disjoint multi-path routing routing method, find the minimum bandwidth path path from the source to the destination node a ; At the same time, update the bandwidth usage on the undirected graph G, and solve the acyclic candidate path set alt_paths that meet the bandwidth demand by using depth traversal; S2: Calculate the deviation of the center of gravity of each intermediate node set of the path elements in alt_paths in a pairwise manner and store them in the set deviation. According to the deviation of the center of gravity, the key values in the set deviation are reordered from large to small. Finally, the overall performance difference data of all path combinations is calculated, and the median ava of these data is calculated. a S2: Calculate the deviation of the center of gravity of each intermediate node set of the path elements in alt_paths in a pairwise manner and store them in the set deviation. According to the deviation of the center of gravity, the key values in the set deviation are reordered from large to small. Finally, the overall performance difference data of all path combinations is calculated, and the median ava of these data is calculated. S3: traverse the reordered deviations in step S2, find the first path combination A: (path a , path b ) whose path difference is above the median ava, if such a path combination A exists and the required path number k = 2, end the routing; if such a path combination A exists but the required path number k > 2, update the bandwidth usage of the paths on the undirected graph G and continue to step S4; S4: Perform node and edge pruning operation on the undirected graph G according to the two paths (path a , path b ) obtained in step S3, and then solve new candidate path combinations new_alt_paths = [path1,..., path i ,...] by using depth-first search. i ,...] by using depth-first search. S5: Calculate the set of centroid coordinates new_centers corresponding to new_alt_paths obtained in step S4, and then calculate the centroid of each path in new_centers and the two selected paths path respectively. a and path b The sum of the degrees of deviation of the center of gravity D i =D i,a +D i,b This yields a new set of deviations from the center of gravity, new_deviation; S6: Based on the new_centers obtained in step S5, repeat the operations of steps S2 and S3 to find the final required path combination B: (path a , path b , path c ).
2. The method of claim 1, wherein: The specific operation of determining the upper limit N of the iteration number of the disjoint multi-path routing method in step S1 comprises the following steps, S101: Determine the set of edges initial_edges in the undirected graph G, and initialize a set of historical search paths initial_historical_path, an index set initial_index, and a set of solution sets initial_results; S102: Set the sending node as the current node, and traverse the set initial_edges to search for edges containing the current node variable but not appearing in the historical search path set initial_historical_path; S103: Take a node from the tail of the index set initial_index as a new current node, and repeat step S102 until the edge containing the destination node is accessed, or there is no link in initial_edges that does not include the historical search path set initial_historical_path but contains the current node; S104: Store the destination node as a solution element in initial_results, and delete the last link in the historical path set initial_historical_path, and take the destination node X from the tail of the index set initial_index as a new current node; S105: Repeat steps S102-S104 until the index set initial_index is empty; S106: Take the smaller value of the number of path elements stored in initial_results and the maximum number of transmission paths considering the cost balance as the upper limit N of the iteration number of the disjoint multi-path routing method, that is, min(len(initial_results), 3).
3. The method of claim 2, wherein, The bandwidth calculation method from the source to the destination node in step S1 is: where cost is the bandwidth from the source to the destination node; Tp need is the throughput requirement of the traffic flow for the transmission, Bw prov and Bw use are the nominal bandwidth size of a certain link and the bandwidth size of the data traffic that has been transmitted on the link, respectively.
4. The method of claim 3, wherein: The calculation process of the center of gravity deviation in step S2 comprises the following steps, S201: Obtain the latitude, longitude and altitude information (θ1, θ2, h0) of each individual combat unit serving as a networking node, wherein θ1 is the latitude, θ2 is the longitude, and h0 is the altitude; S202: Perform mapping processing on the latitude, longitude and altitude information of each individual combat unit serving as a networking node in a three-dimensional coordinate system to obtain the corresponding three-dimensional coordinates (x, y, z); S203: Let the nodes on path path i be [s, r1, r2, …, r n , d], where s is a source node, d is a target node, r i is an intermediate node, let SW i = [r1, r2, …, r n ] be the set of intermediate nodes of path path i , then the center of gravity of SW i is calculated according to the center of gravity formula of the point set in space S204: Calculate the spatial deviation distance (distance(path a , path b ) of path path a and path path b is expressed as the distance between the barycenters of the two intermediate node sets 5. The method of claim 4, wherein: The calculation process of the overall performance difference data of all path combinations in step S2 comprises the following steps, S205: Introduce link reliability Lr parameter to measure the performance of the path, then for the path containing num(link) links, the overall reliability Pr of the path is expressed as Wherein, Lr refers to the success rate of the link when transmitting data packets In the formula, Tn is the number of data packets transmitted by the network port at one end of the link within a certain period of time, and Rn is the number of packets correctly received by the network port at the other end of the link within the time period. S206: Calculate the reliability Pr of each path; S207: For each path reliability is Pr1, Pr2, …, Pr n The path set [path1, path2, …, path n ] is calculated mathematically expected The overall performance difference of all path combinations is represented by variance 6. The method of claim 5, wherein: If the path combination A cannot be obtained in step S3, increase the required path number k by 1, recalculate the new candidate path, and repeat steps S2 and S3 according to the updated candidate path and link bandwidth requirement.
7. The method of claim 6, wherein: The specific operation of performing the node and edge elimination operation on the undirected graph G again in step S4 comprises the following steps, If all-node-disjoint routing is being performed, the nodes used by the paths obtained in step S3 are removed from the undirected graph G; otherwise, the nodes used by the paths obtained in step S3 are removed from the directed graph G. a , path b ) are removed from the undirected graph G; otherwise, the nodes used by the paths obtained in step S3 are removed from the directed graph G. If all link disjoint routing is being performed, the edges used by the paths (path a , path b ) obtained in step S3 are removed from the undirected graph G. If all link disjoint routing is being performed, the edges used by the paths (path a , path b ) obtained in step S3 are removed from the undirected graph G. If partial link disjoint routing is being performed, the edges in the undirected graph G that do not meet the bandwidth requirement are removed.
8. The method of claim 7, wherein: The specific operation of the node and edge removal operation on the undirected graph G in step S6 includes the following steps, S601: Sort the elements in new_deviation in descending order according to the key values in new_deviation based on the degree of deviation between the barycenters; S602: Calculate the overall performance difference data set new_alt_paths_var for all path combinations in new_deviation, and calculate the median of these data new_ava, expressed as [var(path1, path2), var(path1, path3), var(path1, path4), var(path2, path3), var(path2, path4), var(path3, path4)]. a b i a b ; S603: traverse the reordered new_deviation in step S601 to find the first path combination B: (path a , path b , path c ) whose path difference degree is on the median new_ava. S604: If such a path combination B in step S603 can be obtained, the path combination B is the required path; S605: If such a path combination B in step S603 cannot be obtained, it is determined according to the currently performed disjoint routing mode whether to exit the program or continue to perform disjoint routing of other modes.
9. The method of claim 8, wherein: The specific operation of step S605 includes the following steps, If all node disjoint multi-path routing is being performed, jump to all link disjoint multi-path routing; If all link disjoint multi-path routing is being performed, jump to partial link disjoint multi-path routing; If partial link disjoint multi-path routing is being performed, exit the routing program and reject the subsequent service flow.
10. A multi-path routing system based on location and path quality difference, characterized by: The multi-path routing system performs the method of any one of claims 1-9 when performing multi-path routing.
Citation Information
Patent Citations
Business-oriented quantitative evaluation method for network route difference
CN109327388A
Multipath weighted scheduling (OLSR) routing method for load balancing
CN113891399A