Routing protection method based on double completely independent spanning trees
By building a double completely independent spanning tree topology in the network, the problem of difficult routing protection in the existing technology is solved, and the efficient fault tolerance and stability of the network is achieved, and it is suitable for large-scale network systems.
Patent Information
- Application Number
- CN202411696406.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-25
- Publication Date
- 2025-02-28
- Estimated Expiration
- 2044-11-25
AI Technical Summary
In the face of complex topology and large-scale networks, it is difficult for the prior art to effectively implement routing protection, resulting in the inability to provide sufficient routing stability and recovery capabilities in the event of node or link failure.
By building a dual completely independent spanning tree topology in the network, ensuring that each node and link have independent failure protection paths, thereby improving the network's fault tolerance and routing protection capabilities.
It realizes the maintenance of communication capabilities under multiple failure points, significantly improves the fault tolerance and stability of the network, reduces the demand for hardware resources, and is suitable for large-scale and high-reliability network systems.
Smart Images

Figure CN119544584A_ABST
Abstract
Description
Technical Field
[0001] The invention relates to the technical field of network communication and computer network, in particular to a protection routing method based on dual completely independent spanning trees, which is used to improve the fault tolerance of the network and realize routing protection in the design of routing network topology structure. Background Art
[0002] In modern network communication systems, with the continuous expansion of network scale and diversification of application scenarios, network stability and fault tolerance have become particularly important. Especially in applications with high reliability requirements such as data center networks, industrial control networks and the Internet of Things, any failure of network nodes or links may cause communication interruption and affect the normal operation of key businesses. In order to ensure that the network can still maintain stable routing and data transmission functions when a failure occurs, researchers and engineers have proposed a variety of topology designs and routing protection methods.
[0003] Traditional routing protection methods usually rely on redundant hardware resources or backup paths, but these methods are costly when faced with complex topologies and have the problem of wasting resources when implemented in large-scale networks. In addition, although some existing methods can achieve routing protection to a certain extent, they often cannot provide sufficient routing stability and recovery capabilities in the event of node or link failures. Therefore, how to provide an efficient and reliable fault-tolerant routing protection scheme under limited resource conditions has become an important research direction in the current field of network communications. Kwong et al. [IEEE / ACM Transactions Networking 19(5) 1543–1556, 2011] defined a protection route that is considered protected if there is an alternative path with loop-free forwarding when a single link or node fails. Soon after, Tapolcai [Optimization Letters 7(4) 723–730, 2013] proved that a network with two completely independent spanning trees is sufficient to achieve protection routing.
[0004] The topology design based on dual completely independent spanning trees provides a new idea. By building two completely independent spanning trees in the network, it ensures that each node and link has an independent fault protection path, thereby improving the fault tolerance and routing protection capabilities of the network. When a node or link in the network fails, this structure can quickly switch to the backup path to achieve rapid recovery from the fault and ensure the stability and continuity of the route. This method is not only suitable for network systems with high reliability requirements, but also has the advantages of low implementation cost and high resource utilization. Therefore, the protection routing method based on dual completely independent spanning trees has significant application value in current network fault tolerance and routing protection technologies.
[0005] In previous studies, the main focus was on specific graph classes and a class of graphs obtained by restricting the degree to obtain the existence of two completely independent spanning trees. This either has high requirements on the minimum degree (a node must be connected to at least half of the nodes to operate, and for less than n / 2, it may not be possible to obtain completely independent spanning trees), or requires a certain specific graph structure, which is not applicable to some occasions and has poor versatility.
[0006] Explanation of terms Dual completely independent spanning trees: A completely independent spanning tree is a spanning tree whose node sets and edge sets do not overlap with other spanning trees except for the root node. In network topology design, completely independent spanning trees are used to improve the fault tolerance and redundancy design of the network. Dual completely independent spanning trees are two completely independent spanning trees in a graph.
[0007] Network robustness: Network robustness refers to the ability of the network to maintain normal operation or recover quickly in the event of node or link failure. The robustness of the network can be improved by using a completely independent spanning tree design method.
[0008] CIST-partitioning: In a graph, there are two completely independent spanning trees if and only if the vertex set of the graph can be partitioned into two parts {V1, V2} such that the following two conditions are satisfied: (1) G[V1] and G[V2] are connected; (2) B(V1, V2, G) does not contain tree branches. The graph B(V1, V2, G) satisfies V(B(V1, V2, G)) = V(G) and E(B(V1, V2, G)) = {uv|uv E(G),u V1,v V2} Network fault tolerance: Network fault tolerance is the ability of a network to maintain basic functions or resume normal operation when encountering faults, errors, or failure of some nodes or links. The goal of network fault tolerance is to ensure that network connectivity and data transmission will not be completely interrupted in the event of inevitable hardware damage, software failure, or network attacks.
[0009] Degree: For a node u in a graph G, the degree of u is the number of edges connected to u in G.
[0010] Induced subgraph: An induced subgraph is a set of vertices in a graph that includes these vertices and all the edges between them. In other words, the edge set of the induced subgraph only includes those edges connecting the selected vertices. Let V1 be a set of vertices in the graph G, and let G[V1] represent the induced subgraph of V1 in the graph G.
[0011] Edge-induced subgraph: An edge-induced subgraph is a set of edges in a graph that contains all the vertices of these edges and the edges themselves. That is, the vertex set of the edge-induced subgraph is all the vertices connected to the selected edges, and the edge set is the selected edges. Let E1 be a set of vertices in the graph G, and use G[E1] to represent the edge-induced subgraph of E1 in the graph G. Summary of the invention
[0012] In view of the deficiencies in the prior art, the technical problem to be solved by the present invention is to provide a protection routing method based on dual completely independent spanning trees.
[0013] The technical solution of the present invention to solve the technical problem is: In a first aspect, the present invention provides a protection routing method based on dual completely independent spanning trees, the method comprising the following steps: Step 1: Establish a routing network topology structure, and use n to represent the number of all nodes in the graph, and n ≥ 14. The number of edges in the network topology structure is greater than (n-2)(n-3) / 2+4. At this time, the number of nodes x with a degree less than n / 2 ranges from 0≤x≤4. G represents the graph, V(G) represents the node set, and E(G) represents the edge set. The nodes with a degree less than n / 2 are denoted as u1, u2, and u3 respectively. 2, …,u x , and the degree of these nodes increases as the subscript number increases; Step 2: If the number of nodes x with degree less than n / 2 is 4, find the CIST-partition by following the specific steps below: From V(G) Put the nodes with degree greater than or equal to n / 2, plus the two nodes with degree less than n / 2, into an empty point subset V1, and then put the remaining nodes into another point subset V2, and get {V1, V2}, which is CIST-partitioning; Step 3: If the number of nodes with degree less than n / 2 is 3, find the CIST-partition according to the following specific steps: Select any two different nodes from u1's neighbors, denoted as and ; Choose any two different nodes from u2's neighbors, denoted as and ; Choose any two different nodes from u3's neighbors, denoted as and ;from{ , , }, and take out a point with the smallest degree, denoted as u ; and find u of Non-{ , , , , , }neighboring points, denoted as point subset S; let V1=S { , , }, V2=V(G)\V1; in this case, {V1, V2} is the CIST-partition; Step 4: If the number of nodes with degree less than n / 2 is 2, find the CIST-partition according to the following specific steps: Step 4-1: If there is a node w in V(G) such that {w, The edge between these three points is greater than or equal to 2 and all the neighboring points of u1 also contain all the neighboring points except {w, }, follow step 4-2, otherwise follow step 4-3; Step 4-2: Find two nodes from V(G) and , so that (G) and (G); choose any point from the neighbors of w Not included in { , } nodes, denoted as subset U; find a node z from V(G) such that z satisfies U {w, } is adjacent to a node in , V2=V(G)\V1, go to step 4-6, and determine whether the derived subgraph of V2 is connected; Step 4-3: Select any two nodes from u1's neighbors, denoted as and ; Choose any two nodes from u2's neighbors, denoted as and ,at this time and and and do not overlap; if and If they are adjacent, go to step 4-4; otherwise, go to step 4-5; Step 4-4: From Find the neighboring points that are not included in { , , , }of nodes, denoted as point subset S; let V1=S { , }, V2=V(G)\V1; go to step 4-6; Step 4-5: Find Not included in { , , }, denoted as u ;from Find the neighboring points that are not included in { , }of nodes, denoted as point subset P; let V1=P { , }, V2=V(G)\V1; go to step 4-6; Step 4-6: If the induced subgraph G[V2] of V2 is disconnected, go to step 4-7; otherwise, go to step 4-8; Step 4-7: Find a non-cut point node from the node subset V1 Make }; Let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 4-8: If the bipartite graph B(V1, V2, G) generated by V1 and V2 does not contain a tree branch, go to step 4-9, otherwise go to step 4-10; Step 4-9: At this point, {V1, V2} is the CIST-partition; Step 4-10: Let H be a list containing only B(V1{ }, V2, G-{ }); find a node from V2 that does not belong to H, denoted as ; Let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5: If the number of nodes with degree less than n / 2 is 1, find the CIST-partition according to the following specific steps: Step 5-1: Select two different nodes from u1's neighbors, denoted as and ,in is the node with the smallest degree among all the neighbors of u1; Find the neighboring points that do not contain {u1, }of nodes, denoted as node subset S; let V1=S { }, V2=V(G)\V1; if the induced subgraph G[V2] of V2 is not connected, go to step 5-2, otherwise go to step 5-3; Step 5-2: Pick any non-{ }, denoted as w; let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5-3: If B(V1, V2, G) does not contain a tree branch, go to step 5-4, otherwise go to step 5-5; Step 5-4: At this point, {V1, V2} is the CIST-partition; Step 5-5: Let H be a list containing only B(V1{ }, V2, G-{ }); if V1 contains a leaf node of H, go to step 5-6, otherwise go to step 5-7; Step 5-6: Pick any non And the node not included in H is denoted as z; let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5-7: Pick any non- And it is not a node of H, denoted as w; let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 6: If the number of nodes with degree less than n / 2 is 0, find the CIST-partition according to the following specific steps: Step 6-1: Find a Hamiltonian cycle of G, set C= … ; Let V1 = { ,… }, V2=V(G)\V1; go to step 6-2; Step 6-2: If the bipartite graph B(V 1, V2, G) does not contain a tree branch, go to step 6-3, otherwise go to step 6-4; Step 6-3: At this point, {V1, V2} is the CIST-partition; Step 6-4: Let H be a subgraph containing only all tree branches of B(V1, V2, G); if V1 contains a leaf node of H, go to step 6-5, otherwise go to step 6-8; Step 6-5: Take any node from V1 that is not in graph H, record it as z1; if B(V1\{z1}, V2 {z1}, G) If there is no tree branch, go to step 6-6, otherwise go to step 6-7; Step 6-6: Let U1=V1{ 1}, U2=V(G)\U1; in this case, {U1, U2} is the CIST-partition; Step 6-7: Pick any node in V1 that is not included in H, record it as 2; Let U1=V1{ 2}, U2=V(G)\U1; in this case, {U1, U2} is the CIST-partition; Step 6-8: Pick any node in V2 that is not included in H, and record it as ; Let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 7: Find two completely independent spanning trees in the network through CIST-division, which are uniformly recorded as {U1, U2}. Based on the two completely independent spanning trees, configure the communication routing of the network.
[0014] Furthermore, the specific process of step 7 is: Step 7-1: Based on the obtained CIST-partition, first find a spanning tree H1 of G[U1], and then find a spanning tree H2 of G[U2]; Step 7-2: Find any edge connecting each node in U1 and H2, and record these edges as edge subset E1; find any edge connecting each node in U2 and H1, and record these edges as edge subset E2; any edge in E1 and E2 does not overlap; Step 7-3: Obtain dual completely independent spanning trees T1=H1∪G[E2] and T2=H2∪G[E1], where G[E1] and G[E2] represent edge-induced subgraphs.
[0015] Furthermore, in the routing network topology, routers and switching nodes are used as nodes in the network, and connections between nodes are network edges; The number of edges connected to the initial routing network topology is determined. If the number of edges is not greater than (n-2)(n-3) / 2+4, the number of edges is randomly increased to make it greater than (n-2)(n-3) / 2+4, and the network topology G=(V(G), E(G)) is updated to obtain two completely independent spanning trees with the updated network topology.
[0016] In a second aspect, the present invention provides a computer-readable storage medium having a computer program stored thereon, which can implement the steps of the method when executed by a processor.
[0017] Compared with the prior art, the present invention has the following beneficial effects: (1) The present invention proposes for the first time to use the edge number condition to construct the topological structure in the network, which means that the present invention is applicable to more complex and diverse graph structures and has application potential in a wide range of graph topologies, overcoming the limitation that the prior art cannot be applied to general graphs. When studying independent spanning trees, the prior art usually has complex requirements on the overall structure and minimum degree of the graph, which limits its wide application. The present invention simplifies and optimizes the construction process, and improves the universality and ease of use of the construction of completely independent spanning trees.
[0018] (2) The present invention not only proves the existence of two completely independent spanning trees in theory, but also can effectively find two completely independent spanning trees. It can be executed in a large-scale routing network and has high computational efficiency and feasibility. The prior art often requires highly complex computing resources when processing large-scale graphs. The present invention reduces the computational complexity and can quickly find the target spanning tree, thus having important implementation value in practical applications.
[0019] (3) The present invention enables the network to maintain communication capabilities in the case of multiple failure points by finding dual completely independent spanning trees, which significantly improves the fault tolerance and stability of the network. Compared with the existing technology that relies on hardware redundancy and backup, the method of the present invention achieves efficient network protection and reduces the demand for hardware resources. This has significant advantages for designing large-scale, high-reliability network systems, especially in the case of limited resources, and can better demonstrate its application value.
[0020] (4) The present invention constructs two completely independent spanning trees through pure graph theory, without the need for additional hardware redundancy. This can significantly improve the system's fault tolerance and communication reliability while saving resources. This feature makes the present invention more cost-effective and scalable in practical applications. BRIEF DESCRIPTION OF THE DRAWINGS
[0021] Figure 1 is the graph structure in Embodiment 2 of the present invention, wherein T1 and T2 are two completely independent spanning trees of Figure (a); Figure 2 is the graph structure in Embodiment 3 of the present invention, wherein T1 and T2 are two completely independent spanning trees of Figure (a); Figure 3 It is a flow chart of the present invention. DETAILED DESCRIPTION
[0022] The specific embodiments of the present invention are given below. The specific embodiments are only used to further illustrate the present invention in detail and do not limit the protection scope of the claims of this application.
[0023] The present invention provides a method for protecting routing, so that in a network topology structure, two completely independent spanning tree structures are established to find CIST-division, thereby finding two completely independent spanning trees.
[0024] The working principle and workflow of the present invention are: In a network topology structure with a node number not less than 14 and an edge number greater than (node number - 2) (node number - 3) / 2+4, a network with dual completely independent spanning trees is obtained, which broadens the restriction on the minimum degree.
[0025] Example 1 A protection routing method based on dual completely independent spanning trees, the method comprising the following steps: Step 1: Establish a routing network topology structure, use n to represent the number of all nodes in the graph, n ≥ 14; detect the number of edges connected in the network topology structure, if the number of edges is not greater than (n-2)(n-3) / 2+4, then randomly increase the number of edges to make it greater than (n-2)(n-3) / 2+4, then the number of nodes x with a degree less than n / 2 has a value range of 0≤x≤4, and update the network topology structure G=(V(G), E(G)), V(G) represents the node set, E(G) represents the edge set; In the updated network topology, the nodes with a certainty less than n / 2 are denoted as u1, u 2, …,u x , and the degree of these nodes increases as the subscript number increases; Step 2: If the number of nodes x with degree less than n / 2 is 4, find the CIST-partition by following the specific steps below: From V(G) Put the nodes with degree greater than or equal to n / 2, plus the two nodes with degree less than n / 2, into an empty point subset V1, and then put the remaining nodes into another point subset V2, we can get {V1, V2} which is CIST-partitioning; Step 3: If the number of nodes with degree less than n / 2 is 3, find the CIST-partition according to the following specific steps: Select any two different nodes from u1's neighbors, denoted as and ; Choose any two different nodes from u2's neighbors, denoted as and ; Choose any two different nodes from u3's neighbors, denoted as and ;from{ , , }, and take out a point with the smallest degree, denoted as u ; and find u of Non-{ , , , , , }neighboring points, denoted as point subset S; let V1=S { , , }, V2=V(G)\V1. At this time, {V1, V2} is the CIST-partition; Step 4: If the number of nodes with degree less than n / 2 is 2, find the CIST-partition according to the following specific steps: Step 4-1: If there is a node w in V(G) such that {w, The edge between these three points is greater than or equal to 2 and all the neighboring points of u1 also contain all the neighboring points except {w, }, follow step 4-2, otherwise follow step 4-3; Step 4-2: Find two nodes from V(G) and , so that (G) and (G); choose any point from the neighbors of w Not included in { , } nodes, denoted as subset U; find a node z from V(G) such that z satisfies U {w, } is adjacent to a node in , V2=V(G)\V1, go to step 4-6, and determine whether the derived subgraph G[V2] is connected; Step 4-3: Select any two nodes from u1's neighbors, denoted as and ; Choose any two nodes from u2's neighbors, denoted as and ,at this time and and and do not overlap; if and If they are adjacent, go to step 4-4; otherwise, go to step 4-5; Step 4-4: From Find the neighboring points that are not included in { , , , }of nodes, denoted as point subset S; let V1=S { , }, V2=V(G)\V1; go to step 4-6; Step 4-5: Find Not included in { , , }, denoted as u ;from Find the neighboring points that are not included in { , }of nodes, denoted as point subset P; let V1=P { , }, V2=V(G)\V1; go to step 4-6; Step 4-6: If the derived subgraph G[V2] of V2 is disconnected (any two nodes are connected if there is an edge connecting them), go to step 4-7; otherwise, go to step 4-8; Step 4-7: Find a non-cut point node from the node subset V1 Make }; Let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 4-8: If the bipartite graph B(V1, V2, G) generated by V1 and V2 does not contain a tree branch, go to step 4-9, otherwise go to step 4-10; Step 4-9: At this point, {V1, V2} is the CIST-partition; Step 4-10: Let H be a list containing only B(V1{ }, V2, G-{ }); find a node from V2 that does not belong to H, denoted as ; Let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5: If the number of nodes with degree less than n / 2 is 1, find the CIST-partition according to the following specific steps: Step 5-1: Select two different nodes from u1's neighbors, denoted as and ,in is the node with the smallest degree among all the neighbors of u1; Find the neighboring points that do not contain {u1, }of nodes, denoted as node subset S; let V1=S { }, V2=V(G)\V1; if the induced subgraph G[V2] of V2 is not connected, go to step 5-2, otherwise go to step 5-3; Step 5-2: Pick any non-{ }, denoted as w; let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5-3: If B(V1, V2, G) does not contain a tree branch, go to step 5-4, otherwise go to step 5-5; Step 5-4: At this point, {V1, V2} is the CIST-partition; Step 5-5: Let H be a list containing only B(V1{ }, V2, G-{ }); if V1 contains a leaf node of H, go to step 5-6, otherwise go to step 5-7; Step 5-6: Pick any non And the node not included in H is denoted as z; let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5-7: Pick any non- And it is not a node of H, denoted as w; let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 6: If the number of nodes with degree less than n / 2 is 0, find the CIST-partition according to the following specific steps: Step 6-1: Find a Hamiltonian cycle of G, set C= … ; Let V1 = { ,… }, V2=V(G)\V1; go to step 6-2; Step 6-2: If the bipartite graph B(V 1, V2, G) does not contain a tree branch, go to step 6-3, otherwise go to step 6-4; Step 6-3: At this point, {V1, V2} is the CIST-partition; Step 6-4: Let H be a subgraph containing only all tree branches of B(V1, V2, G); if V1 contains a leaf node of H, go to step 6-5, otherwise go to step 6-8; Step 6-5: Take any node from V1 that is not in graph H, record it as z1; if B(V1\{z1}, V2 {z1}, G) If there is no tree branch, go to step 6-6, otherwise go to step 6-7; Step 6-6: Let U1=V1{ 1}, U2=V(G)\U1; in this case, {U1, U2} is the CIST-partition; Step 6-7: Pick any node in V1 that is not included in H, record it as 2; Let U1=V1{ 2}, U2=V(G)\U1; in this case, {U1, U2} is the CIST-partition; Step 6-8: Pick any node in V2 that is not included in H, and record it as ; Let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 7: Find two completely independent spanning trees in the network through CIST-division, uniformly recorded as {U1,U2}: Step 7-1: Based on the obtained CIST-partition, first find a spanning tree H1 of G[U1], and then find a spanning tree H2 of G[U2]; Step 7-2: Find any edge connecting each node in U1 and H2, and record these edges as edge subset E1; find any edge connecting each node in U2 and H1, and record these edges as edge subset E2; any edge in E1 and E2 does not overlap; Step 7-3: At this point, we can find dual completely independent spanning trees T1=H1∪G[E2] and T2=H2∪G[E1], where G[E1] and G[E2] represent edge-induced subgraphs; Configure the communication routing of the network based on dual fully independent spanning trees.
[0026] Example 2 In this embodiment, the specific application scenario of data center network is considered. In a data center network, there are usually multiple physical routers and switching nodes to ensure the efficiency and reliability of data transmission. However, if some key routers or connections fail due to faults, data packets may be lost or transmission interrupted. The present invention proposes a routing protection method based on dual completely independent spanning trees. First, through topology analysis, dual completely independent spanning trees in the network are constructed. In this structure, routers and switching nodes serve as nodes in the network, and the connections between nodes are network edges. The dual completely independent spanning trees ensure that the network can continue to route data through another independent path in the event of the failure of any single node or edge. In this embodiment, only network topologies with a number of nodes greater than or equal to 14 and a number of edges greater than (number of nodes - 2) (number of nodes - 3) / 2+4 are considered. When the method of the present invention is applied in a data center network, it is observed that Figure 1 The number of nodes in (a) is 15, the number of edges is greater than 82, and there are 4 nodes with degrees less than 15 / 2, which are denoted as nodes 1, 2, 3, and 4. Nodes with degree greater than or equal to n / 2, plus any two nodes with degree less than n / 2, are put into an empty point subset, and the remaining nodes are assigned to another point subset. We can get {{1, 2, 10, 11, 12, 13, 14, 15}, {3, 4, 5, 6, 7, 8, 9}}, which is the CIST-partition. Let U1 = {1, 2, 10, 11, 12, 13, 14, 15} and U2 = {3, 4, 5, 6, 7, 8, 9}. Based on the obtained CIST-partition, first find a spanning tree H1 of G[U1], and then find a spanning tree H2 of G[U2]. Find any edge connecting each node in U1 with H2, and record these edges as edge subset E1; find any edge connecting each node in U2 with H1, and record these edges as edge subset E2, where any edge of E1 is not in E2. At this point, we can find dual completely independent spanning trees T1=H1∪G[E2] and T2=H2∪G[E1], that is, Figure 1(b) and (c) in the figure. This construction ensures that each node in the network has two independent data transmission paths. In practical applications, even if a switching device or link fails, data can still be transmitted smoothly through another path, thus ensuring that network communication is not interrupted. By constructing dual completely independent spanning trees in the network topology structure by only increasing the number of edges, the fault resistance of the data center network is significantly improved, the risk of data loss and transmission interruption is reduced, and the stability and reliability of the data center network are improved.
[0027] According to the method of the present invention, in this embodiment, any two nodes in {1, 2, 3, 4} and half of the vertices of the remaining nodes can be put into a node subset U1, and the remaining vertices can be put into a node subset U2. There can be multiple combinations.
[0028] Example 3 This embodiment proposes a routing protection method based on dual completely independent spanning trees. First, through topology analysis, dual completely independent spanning trees are constructed in the network. In this structure, routers and switching nodes are nodes in the network, and the connections between nodes are network edges. The dual completely independent spanning trees ensure that the network can continue to route data through another independent path in the event of failure of any single node or edge. In this embodiment, only network topologies with a number of nodes greater than or equal to 14 and a number of edges greater than (number of nodes - 2) (number of nodes - 3) / 2+4 are considered. When the method of the present invention is applied in a data center network, it is observed that Figure 2 The number of nodes in (a) is 14, the number of edges is greater than 70, and there are 2 nodes with degrees less than 7, which are recorded as nodes 1 and 2. By executing the method of the present invention, {{1, 2, 3, 4, 5, 6, 14}, {7, 8, 9, 10, 11, 12, 13}} can be obtained, which is the CIST-partition, and U1={1, 2, 3, 4, 5, 6, 14} and U2={7, 8, 9, 10, 11, 12, 13} are recorded. According to the obtained CIST-partition, first find a spanning tree H1 of G[U1], and then find a spanning tree H2 of G[U2]. Find any edge connecting each node in U1 with H2, and record these edges as edge subset E1; find any edge connecting each node in U2 with H1, and record these edges as edge subset E2, where any edge of E1 is not in E2. At this point, we can find dual completely independent spanning trees T1=H1∪G[E2] and T2=H2∪G[E1], that is, Figure 2(b) and (c) in the figure. This construction ensures that each node in the network has two independent data transmission paths. In practical applications, even if a switching device or link fails, data can still be transmitted smoothly through another path, thus ensuring that network communication is not interrupted. By constructing dual completely independent spanning trees in the network topology structure by only increasing the number of edges, the fault resistance of the data center network is significantly improved, the risk of data loss and transmission interruption is reduced, and the stability and reliability of the data center network are improved.
[0029] According to the method of the present invention, in this embodiment, any node adjacent to nodes 1 and 2 can be put into node subset U1, and any other two nodes adjacent to nodes 1 and 2 can be put into node subset U2. Therefore, there are multiple ways to select {U1, U2} in CIST partitioning.
[0030] Example 4 The process of the method in this embodiment is shown in Figure 3 First, establish a network graph topology structure, so that the number of edges in this structure is greater than (number of nodes - 2) × (number of nodes - 3) / 2 + 4. The structure that meets this condition must contain two completely independent spanning trees; By executing the method proposed in this application, the CIST-partition of the two trees can be found; through the CIST-partition, the required dual independent complete spanning trees can be found as a key step in network design or fault tolerance mechanism; based on the dual completely independent spanning trees, the network communication routing is configured to enhance the network fault tolerance capability.
[0031] Any matters not described in the present invention are applicable to the prior art.
Claims
1. A protection routing method based on dual completely independent spanning trees, characterized in that: The method comprises the following steps: Step 1: Establish a routing network topology structure, and use n to represent the number of all nodes in the graph, and n ≥ 14. The number of edges in the network topology structure is greater than (n-2)(n-3) / 2+4. At this time, the number of nodes x with a degree less than n / 2 ranges from 0≤x≤4. G represents the graph, V(G) represents the node set, and E(G) represents the edge set. The nodes with a degree less than n / 2 are denoted as u1, u2, and u3 respectively. 2, …,u x , and the degree of these nodes increases as the subscript number increases; Step 2: If the number of nodes x with degree less than n / 2 is 4, find the CIST-partition by following the specific steps below: From V(G) Put the nodes with degree greater than or equal to n / 2, plus the two nodes with degree less than n / 2, into an empty point subset V1, and then put the remaining nodes into another point subset V2, and get {V1, V2}, which is CIST-partitioning; Step 3: If the number of nodes with degree less than n / 2 is 3, find the CIST-partition according to the following specific steps: Select any two different nodes from u1's neighbors, denoted as and ; Choose any two different nodes from u2's neighbors, denoted as and ; Choose any two different nodes from u3's neighbors, denoted as and ;from{ , , }, and take out a point with the smallest degree, denoted as u ; and find u of Non-{ , , , , , }neighboring points, denoted as point subset S; let V1=S { , , }, V2=V(G)\V1; in this case, {V1, V2} is the CIST-partition; Step 4: If the number of nodes with degree less than n / 2 is 2, find the CIST-partition according to the following specific steps: Step 4-1: If there is a node w in V(G) such that {w, The edge between these three points is greater than or equal to 2 and all the neighboring points of u1 also contain all the neighboring points except {w, }, follow step 4-2, otherwise follow step 4-3; Step 4-2: Find two nodes from V(G) and , so that (G) and (G); choose any point from the neighbors of w Not included in { , } nodes, denoted as subset U; find a node z from V(G) such that z satisfies U {w, } is adjacent to a node in , V2=V(G)\V1, go to step 4-6, and determine whether the derived subgraph of V2 is connected; Step 4-3: Select any two nodes from u1's neighbors, denoted as and ; Choose any two nodes from u2's neighbors, denoted as and ,at this time and and and do not overlap; if and If they are adjacent, go to step 4-4; otherwise, go to step 4-5; Step 4-4: From Find the neighboring points that are not included in { , , , }of nodes, denoted as point subset S; let V1=S { , }, V2=V(G)\V1; go to step 4-6; Step 4-5: Find Not included in { , , }, denoted as u ;from Find the neighboring points that are not included in { , }of nodes, denoted as point subset P; let V1=P { , }, V2=V(G)\V1; go to step 4-6; Step 4-6: If the induced subgraph G[V2] of V2 is disconnected, go to step 4-7; otherwise, go to step 4-8; Step 4-7: Find a non-cut point node from the node subset V1 Make }; Let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 4-8: If the bipartite graph B(V1, V2, G) generated by V1 and V2 does not contain a tree branch, go to step 4-9, otherwise go to step 4-10; Step 4-9: At this point, {V1, V2} is the CIST-partition; Step 4-10: Let H be a list containing only B(V1{ }, V2, G-{ }); find a node from V2 that does not belong to H, denoted as ; Let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5: If the number of nodes with degree less than n / 2 is 1, find the CIST-partition according to the following specific steps: Step 5-1: Select two different nodes from u1's neighbors, denoted as and ,in is the node with the smallest degree among all the neighbors of u1; Find the neighboring points that do not contain {u1, }of nodes, denoted as node subset S; let V1=S { }, V2=V(G)\V1; if the induced subgraph G[V2] of V2 is not connected, go to step 5-2, otherwise go to step 5-3; Step 5-2: Pick any non-{ }, denoted as w; let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5-3: If B(V1, V2, G) does not contain a tree branch, go to step 5-4, otherwise go to step 5-5; Step 5-4: At this point, {V1, V2} is the CIST-partition; Step 5-5: Let H be a list containing only B(V1{ }, V2, G-{ }); if V1 contains a leaf node of H, go to step 5-6, otherwise go to step 5-7; Step 5-6: Pick any non And the node not included in H is denoted as z; let U1=V1{ }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5-7: Pick any non- And it is not a node of H, denoted as w; let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 6: If the number of nodes with degree less than n / 2 is 0, find the CIST-partition according to the following specific steps: Step 6-1: Find a Hamiltonian cycle of G, set C= … ; Let V1 = { ,… }, V2=V(G)\V1; go to step 6-2; Step 6-2: If the bipartite graph B(V 1, V2, G) does not contain a tree branch, go to step 6-3, otherwise go to step 6-4; Step 6-3: At this point, {V1, V2} is the CIST-partition; Step 6-4: Let H be a subgraph containing only all tree branches of B(V1, V2, G); if V1 contains a leaf node of H, go to step 6-5, otherwise go to step 6-8; Step 6-5: Take any node from V1 that is not in graph H, record it as z1; if B(V1\{z1}, V2 {z1}, G) If there is no tree branch, go to step 6-6, otherwise go to step 6-7; Step 6-6: Let U1=V1{ 1}, U2=V(G)\U1; in this case, {U1, U2} is the CIST-partition; Step 6-7: Pick any node in V1 that is not included in H, record it as 2; Let U1=V1{ 2}, U2=V(G)\U1; in this case, {U1, U2} is the CIST-partition; Step 6-8: Pick any node in V2 that is not included in H, and record it as ; Let U1=V1 { }, U2=V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 7: Find two completely independent spanning trees in the network through CIST-division, which are uniformly recorded as {U1, U2}. Based on the two completely independent spanning trees, configure the communication routing of the network.
2. The method according to claim 1, characterized in that: The specific process of step 7 is: Step 7-1: Based on the obtained CIST-partition, first find a spanning tree H1 of G[U1], and then find a spanning tree H2 of G[U2]; Step 7-2: Find any edge connecting each node in U1 and H2, and record these edges as edge subset E1; find any edge connecting each node in U2 and H1, and record these edges as edge subset E2; any edge in E1 and E2 does not overlap; Step 7-3: Obtain dual completely independent spanning trees T1=H1∪G[E2] and T2=H2∪G[E1], where G[E1] and G[E2] represent edge-induced subgraphs.
3. The method according to claim 1, characterized in that: In the routing network topology, routers and switching nodes are used as nodes in the network, and the connections between nodes are network edges; The number of edges connected to the initial routing network topology is determined. If the number of edges is not greater than (n-2)(n-3) / 2+4, the number of edges is randomly increased to make it greater than (n-2)(n-3) / 2+4, and the network topology G=(V(G), E(G)) is updated to obtain two completely independent spanning trees with the updated network topology.
4. The method according to claim 1, characterized in that: The method is used for network fault tolerance design in a data center network.
5. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the steps of any method described in claims 1-3 can be implemented.
Citation Information
Patent Citations
Parallel transmission method of data on data center network BCCC
CN111917652A
Global reduction method based on multiple spanning trees
CN117081944A
Intelligent social protection routing method based on dual independent spanning tree and Hamiltonian circle
CN117834521A
Graph construction for computed spring multicast
US20170201451A1
Cable network regional connectivity planning method and apparatus
US20230118359A1