A protection routing method based on double completely independent spanning trees

By using the edge-number conditions to construct CIST-divisions in the network topology structure, the double completely independent spanning tree is found, which solves the problems of limitations in the application of graphics topology and high computational complexity in the existing technology, and achieves efficient network fault tolerance and stability improvement.

CN119544584BActive Publication Date: 2025-07-08NANKAI UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411696406.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-11-25
Publication Date
2025-07-08
Estimated Expiration
2044-11-25

AI Technical Summary

Technical Problem

When building dual completely independent spanning trees, the existing technology usually has complex requirements for the overall structure and minimumness of the graph, which limits its application in general graph topology, and has high computational complexity in large-scale networks, which cannot effectively improve the fault tolerance and stability of the network.

Method used

By using edge-number conditions to construct CIST-divisions in the network topology, two completely independent spanning trees are found, which simplifies the construction process of spanning trees and is suitable for more complex and diverse graph structures, reducing the computational complexity.

Benefits of technology

It realizes the rapid find of dual completely independent spanning trees in large-scale networks, improves the fault tolerance and stability of the network, reduces the demand for hardware resources, and is cost-effective and scalable.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119544584B_ABST
    Figure CN119544584B_ABST
Patent Text Reader

Abstract

The present invention relates to a protection routing method based on a double completely independent spanning tree. In a network topology with no less than 14 nodes and the number of edges greater than (the number of nodes - 2)(the number of nodes - 3) / 2 + 4, a network with a double completely independent spanning tree is obtained, broadening the limitation on the minimum degree. Using the edge number condition to construct the topological structure in the network 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 in general graphs. The present invention simplifies and optimizes the construction process, improving the universality and usability of the construction of completely independent spanning trees.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical fields of network communication and computer network, and in particular to a protection routing method based on a double completely independent spanning tree, which is used to improve the fault tolerance of a network and achieve routing protection in the design of a routing network topology structure. Background Art

[0002] In modern network communication systems, with the continuous expansion of network scale and the diversification of application scenarios, the stability and fault tolerance of the network 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 lead to communication interruption and affect the normal operation of critical services. To ensure that the network can still maintain stable routing and data transmission functions when a failure occurs, researchers and engineers have proposed various topology design and routing protection methods.

[0003] Traditional routing protection methods usually rely on redundant hardware resources or backup paths, but these methods are costly when facing complex topology structures and there are problems of resource waste in implementation 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 case 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 network communication field. Kwong et al. [IEEE / ACM Transactions Networking 19(5) 1543–1556, 2011] defined a protection routing. When a single link or node fails, if there is an acyclic forwarding alternative path, the routing is considered to be protected. Soon after, Tapolcai [Optimization Letters 7(4) 723–730, 2013] proved that a network with a double completely independent spanning tree is sufficient to achieve protection routing.

[0004] The topological structure design based on the Completely Independent Spanning Tree provides a new idea. By constructing two completely independent spanning trees in the network, it ensures that each node and link has an independent fault protection path, thereby improving the network's fault tolerance and routing protection capabilities. When a node or link in the network fails, this structure can quickly switch to the backup path to achieve rapid fault recovery and ensure the stability and continuity of routing. This method is not only applicable to 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 the double completely independent spanning tree has significant application value in current network fault tolerance and routing protection technologies.

[0005] In previous studies, the existence of two completely independent spanning trees was mainly obtained for specific graph classes and a class of graphs obtained by restricting the degree. This either has a high requirement for the minimum degree (a node must be connected to at least half of the nodes to operate, and it may not be possible to obtain a completely independent spanning tree for those less than n / 2), or requires a specific graph structure, which is not applicable to some occasions and has poor generality.

[0006] Term Explanation

[0007] Double Completely Independent Spanning Tree: A completely independent spanning tree is a spanning tree whose node set and edge set 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 network's fault tolerance and redundant design. A double completely independent spanning tree is two completely independent spanning trees in a graph.

[0008] Network Robustness: Network robustness refers to the ability of a network to still maintain its normal operation or quickly recover in the event of node or link failures. By using the design method of completely independent spanning trees, the network's robustness can be improved.

[0009] CIST - Partition: In a graph, this graph has a double completely independent spanning tree if and only if the vertex set of this 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 a tree branch. Among them, 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}

[0010] Network fault tolerance: Network fault tolerance refers to the ability of a network to maintain its basic functions or resume normal operation when encountering failures, errors, or the failure of some nodes or links. The goal of network fault tolerance is to ensure that in the event of inevitable hardware damage, software failures, or network attacks, etc., the connectivity of the network and data transmission will not be completely interrupted.

[0011] Degree: For a node u in graph G, the degree of u is the number of edges connected to u in G.

[0012] Induced subgraph: An induced subgraph is obtained by selecting a set of vertices in a graph, including these vertices and all the edges between them. That is, the edge set of the induced subgraph only includes those edges that connect the selected vertices. Let V1 be a set of vertices of graph G, and G[V1] is used to represent the induced subgraph of V1 in graph G.

[0013] Edge-induced subgraph: An edge-induced subgraph is obtained by selecting a set of edges in a graph, including all the vertices connected to 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 of graph G, and G[E1] is used to represent the edge-induced subgraph of E1 in graph G. Summary of the Invention

[0014] Aiming at the deficiencies of the prior art, the technical problem to be solved by the present invention is to provide a protection routing method based on two completely independent spanning trees.

[0015] The technical solution of the present invention to solve the above technical problem is:

[0016] In the first aspect, the present invention provides a protection routing method based on two completely independent spanning trees, and the method includes the following steps:

[0017] Step 1: Establish a routing network topology structure. Let n represent the total 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 value range of the number x of nodes with degree less than n / 2 is 0≤x≤4. Let G represent the graph, V(G) represent the node set, and E(G) represent the edge set; determine that the nodes with degree less than n / 2 are respectively denoted as u1, u 2, …, u x , and the degrees of these nodes increase with the increase of the subscript number;

[0018] Step 2: If the number x of nodes with degree less than n / 2 is 4, then find the CIST-partition according to the following specific steps:

[0019] Arbitrarily select from V(G) Nodes with a degree greater than or equal to n / 2, plus two nodes with a degree less than n / 2, are placed in an empty subset of nodes V1, and the remaining nodes are placed in another subset of nodes V2. The resulting {V1, V2} is the CIST-partition;

[0020] Step 3: If the number of nodes with a degree less than n / 2 is 3, then find the CIST-partition according to the following specific steps:

[0021] Arbitrarily select two different nodes from the neighbors of u1, denoted as and ; Arbitrarily select two different nodes from the neighbors of u2, denoted as and ; Arbitrarily select two different nodes from the neighbors of u3, denoted as and ; Select a node with the minimum degree from { , , }, denoted as u ; And find the non-{ , , , , , , } neighbors of u, denoted as the subset of nodes S; Let V1 = S { , }, V2 = V(G)\V1; At this time, {V1, V2} is the CIST-partition;

[0022] Step 4: If the number of nodes with a degree less than n / 2 is 2, then find the CIST-partition according to the following specific steps:

[0023] Step 4-1: If there exists a node w in V(G) such that the number of edges between the three points {w, } is greater than or equal to 2 and all the neighbors of u1 also include nodes other than {w, }, then execute according to step 4-2, otherwise execute according to step 4-3;

[0024] Step 4-2: Find two nodes and in V(G) such that (G) and (G); Arbitrarily select nodes from the neighbors of w that are not included in { , }, denoted as the subset U; Find a node z in V(G) such that z satisfies the condition with U​ {w, } is adjacent to one of the nodes; let , V2 = V(G)\V1, go to Step 4-6 to determine whether the induced subgraph of V2 is connected;

[0025] Step 4-3: Arbitrarily select two nodes from the neighbors of u1, denoted as and ; Arbitrarily select two nodes from the neighbors of u2, denoted as and . At this time, and do not coincide with and ; If and are adjacent, go to Step 4-4, otherwise go to Step 4-5;

[0026] Step 4-4: Find the nodes in the neighbors of , , , } that are not included in the set, denoted as the subset of nodes S; let V1 = S { { , }, V2 = V(G)\V1; go to Step 4-6;

[0027] Step 4-5: Find a common neighbor of that is not included in the set , , }, denoted as u ; Find the nodes in the neighbors of , } that are not included in the set, denoted as the subset of nodes P; let V1 = P { { , }, V2 = V(G)\V1; go to Step 4-6;

[0028] Step 4-6: If the induced subgraph G[V2] of V2 is not connected, go to Step 4-7; otherwise, go to Step 4-8;

[0029] Step 4-7: Find a non-cut point node from the node subset V1 such that }; let U1 = V1{}, U2 = V(G)\U1; at this time, {U1, U2} is the CIST-partition;

[0030] Step 4-8: If the bipartite graph B(V1, V2, G) generated by V1 and V2 contains no tree branches, go to Step 4-9; otherwise, go to Step 4-10;

[0031] Step 4-9: At this time, {V1, V2} is the CIST-partition;

[0032] Step 4-10: Let H be a subgraph that only contains all the tree branches of B(V1{}, V2, G-{ }); find a node in 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;

[0033] Step 5. If the number of nodes with degrees less than n / 2 is 1, then find the CIST-partition according to the following specific steps:

[0034] Step 5-1: Arbitrarily take two different nodes from the neighbors of u1, denoted as and , where is the node with the smallest degree among all the neighbors of u1; find nodes from the neighbors of that do not contain {u1, }, denoted as the 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;

[0035] Step 5-2: Arbitrarily take a node from V1 that is not { }, denoted as w; let U1 = V1{}, U2 = V(G)\U1; at this time, {U1, U2} is the CIST-partition;

[0036] Step 5-3: If B(V1, V2, G) contains no tree branches, go to Step 5-4; otherwise, go to Step 5-5;

[0037] Step 5-4: At this time, {V1, V2} is the CIST-partition;

[0038] Step 5-5: Let H be a subgraph that only contains B(V1{}, V2, G-{ Subgraphs of all tree branches of (}); If V1 contains a leaf node of H, go to Step 5-6; otherwise, go to Step 5-7;

[0039] Step 5-6: Arbitrarily select a node from V1 that is not and not contained in H, denoted as z; Let U1 = V1{}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0040] Step 5-7: Arbitrarily select a node from V2 that is not and not a node of H, denoted as w; Let U1 = V1 { }, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0041] Step 6. If the number of nodes with degree less than n / 2 is 0, then find the CIST-partition according to the following specific steps:

[0042] Step 6-1: Find a Hamiltonian cycle of G, denoted as C = … ; Let V1 = { , … }, V2 = V(G)\V1; Go to Step 6-2;

[0043] Step 6-2: If the bipartite graph B(V 1, V2, G) generated by V1 and V2 has no tree branches, go to Step 6-3; otherwise, go to Step 6-4;

[0044] Step 6-3: At this time, {V1, V2} is the CIST-partition;

[0045] Step 6-4: Let H be a subgraph that only contains 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;

[0046] Step 6-5: Arbitrarily select a node from V1 that is not in graph H, denoted as z1; If B(V1\{z1}, V2 {z1}, G) has no tree branches, go to Step 6-6; otherwise, go to Step 6-7;

[0047] Step 6-6: Let U1 = V1{ 1}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0048] Step 6-7: Arbitrarily select a node from V1 that is not contained in H, denoted as 2; Let U1 = V1{ 2}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0049] Steps 6 - 8: Arbitrarily select a node in V2 that is not included in H, denoted as ; Let U1 = V1 { }, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0050] Step 7: Through the CIST-partition, uniformly denoted as {U1, U2}, find two completely independent spanning trees in this network, and based on the double completely independent spanning trees, configure the communication routes of the network.

[0051] Furthermore, the specific process of Step 7 is as follows:

[0052] Step 7 - 1: 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];

[0053] Step 7 - 2: Find any one edge connected by each node in U1 to H2, and denote these edges as edge subset E1; find any one edge connected by each node in U2 to H1, and denote these edges as edge subset E2; Any edge in E1 does not coincide with any edge in E2;

[0054] Step 7 - 3: Obtain the double completely independent spanning trees T1 = H1 ∪ G[E2] and T2 = H2 ∪ G[E1], where G[E1] and G[E2] represent edge-induced subgraphs.

[0055] Furthermore, in the routing network topology structure, use routers and switching nodes as nodes in the network, and the connections between nodes are network edges;

[0056] For the initial routing network topology structure, judge the number of edges it is connected to. If the number of edges is not greater than (n - 2)(n - 3) / 2 + 4, randomly increase the number of edges to make it greater than (n - 2)(n - 3) / 2 + 4, and update the network topology structure G = (V(G), E(G)), and use the updated network topology structure to obtain two completely independent spanning trees.

[0057] In a second aspect, the present invention provides a computer-readable storage medium, on which a computer program is stored, and when the program is executed by a processor, the steps of the method can be implemented.

[0058] Compared with the prior art, the beneficial effects of the present invention are as follows:

[0059] (1) The present invention first proposes to construct the topological structure in the network by using the edge number condition, 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 in general graphs. When studying the independent spanning tree, the prior art usually has complex requirements for the overall structure and minimum degree of the graph, restricting its wide application. The present invention simplifies and optimizes the construction process, improving the universality and usability of the construction of the completely independent spanning tree.

[0060] (2) The present invention not only proves the existence of two completely independent spanning trees theoretically and can effectively find the double completely independent spanning tree, but also can be executed in a large-scale routing network, with high computing efficiency and realizability. When dealing with graphs of larger scale, the prior art often requires high-complexity computing resources. The present invention reduces the computing complexity and can quickly find the target spanning tree, thus having important implementation value in practical applications.

[0061] (3) By finding the double completely independent spanning tree, the present invention enables the network to maintain communication capabilities in the case of multiple fault points, significantly improving the fault tolerance and stability of the network. Compared with the prior art that relies on hardware redundancy and backup, the method of the present invention realizes efficient network protection and reduces the demand for hardware resources. This has significant advantages for designing large-scale and highly reliable network systems, especially in the case of resource constraints, and can better demonstrate its application value.

[0062] (4) By purely using graph theory to construct two completely independent spanning trees, the present invention does not require additional hardware redundancy, can save resources while significantly improving the fault tolerance and communication reliability of the system. This feature makes the present invention have stronger cost-effectiveness and scalability in practical applications. BRIEF DESCRIPTION OF THE DRAWINGS

[0063] Figure 1 It is the graph structure in Embodiment 2 of the present invention, where T1 and T2 are two completely independent spanning trees of the graph in (a);

[0064] Figure 2 It is the graph structure in Embodiment 3 of the present invention, where T1 and T2 are two completely independent spanning trees of the graph in (a);

[0065] Figure 3 It is the flowchart of the present invention. DETAILED DESCRIPTION OF THE INVENTION

[0066] The following gives specific embodiments of the present invention. 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.

[0067] The present invention provides a method for protecting a route, enabling the establishment of two completely independent spanning tree structures in a network topology to find the CIST-partition, and thus, finding two completely independent spanning trees.

[0068] The working principle and process of the present invention are as follows: In a network topology with no less than 14 nodes and the number of edges greater than (the number of nodes - 2)(the number of nodes - 3) / 2 + 4, a network with two completely independent spanning trees is obtained, broadening the limitation on the minimum degree.

[0069] Embodiment 1

[0070] A protection routing method based on two completely independent spanning trees, the method comprising the following steps:

[0071] Step 1: Establish a routing network topology, use n to represent the total number of nodes in the graph, n ≥ 14; detect the number of edges connected in the network topology. If the number of edges is not greater than (n - 2)(n - 3) / 2 + 4, randomly increase the number of edges to make it greater than (n - 2)(n - 3) / 2 + 4. At this time, the value range of the number x of nodes with degree less than n / 2 is 0 ≤ x ≤ 4, and update the network topology G = (V(G), E(G)), where V(G) represents the node set and E(G) represents the edge set;

[0072] In the updated network topology, determine the nodes with degree less than n / 2 and denote them as u1, u 2, …, u x , and the degrees of these nodes increase with the increase of the subscript number;

[0073] Step 2: If the number x of nodes with degree less than n / 2 is 4, then according to the following specific steps, find the CIST-partition:

[0074] Randomly select nodes with degree greater than or equal to n / 2 from V(G), add two nodes with degree less than n / 2, and put them into an empty subset of nodes V1, and then put the remaining nodes into another subset of nodes V2. Then {V1, V2} is the CIST-partition;

[0075] Step 3: If the number of nodes with degree less than n / 2 is 3, then according to the following specific steps, find the CIST-partition:

[0076] Randomly select two different nodes from the neighbors of u1, and denote them as and ; Randomly select two different nodes from the neighbors of u2, and denote them as and ; Randomly select two different nodes from the neighbors of u3, and denote them as and ; Take out a vertex with the minimum degree from { , , }, and denote it as u ; And find the non-{ , , , , , , } adjacent vertices of u, and denote them as the vertex subset S; Let V1 = S { , , }, V2 = V(G)\V1. At this time, {V1, V2} is the CIST-partition;

[0077] Step 4: If the number of vertices with degree less than n / 2 is 2, then find the CIST-partition according to the following specific steps:

[0078] Step 4-1: If there exists a vertex w in V(G) such that the number of edges between {w, } is greater than or equal to 2 and all adjacent vertices of u1 also contain vertices other than {w, }, then execute according to step 4-2, otherwise execute according to step 4-3;

[0079] Step 4-2: Find two vertices and from V(G) such that (G) and (G); Arbitrarily take vertices from the adjacent vertices of w that are not included in { , }, and denote them as the subset U; Find a vertex z from V(G) such that z is adjacent to one of the vertices in U {w, }; Let , V2 = V(G)\V1, and go to step 4-6 to determine whether the induced subgraph G[V2] is connected;

[0080] Step 4-3: Arbitrarily take two vertices from the adjacent vertices of u1, and denote them as and ; Arbitrarily take two vertices from the adjacent vertices of u2, and denote them as and , at this time and do not coincide with and ; If and If they are adjacent, go to Step 4-4; otherwise, go to Step 4-5;

[0081] Step 4-4: Find nodes from the adjacent points of , , , } that are not included in the set, and denote them as the subset of points S; Let V1 = S { , }, V2 = V(G)\V1; Go to Step 4-6; }

[0082] Step 4-5: Find a common adjacent point of that is not included in the set { , , }, and denote it as u ; Find nodes from the adjacent points of , } that are not included in the set, and denote them as the subset of points P; Let V1 = P { , }, V2 = V(G)\V1; Go to Step 4-6; }

[0083] Step 4-6: If the induced subgraph G[V2] of V2 is not connected (it is connected if there is an edge between any two nodes), go to Step 4-7; otherwise, go to Step 4-8;

[0084] Step 4-7: Find a non-cut point node from the subset of nodes V1 such that }; Let U1 = V1{}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0085] Step 4-8: If the bipartite graph B(V1, V2, G) generated by V1 and V2 does not contain tree branches, go to Step 4-9, otherwise go to Step 4-10;

[0086] Step 4-9: At this time, {V1, V2} is the CIST-partition;

[0087] Step 4-10: Let H be a subgraph that only contains all the tree branches of B(V1{}, V2, G - { }); Find a node from V2 that does not belong to H, and denote it as ; Let U1 = V1 {}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0088] Step 5: If the number of nodes with degree less than n / 2 is 1, then find the CIST-partition according to the following specific steps:

[0089] Step 5-1: Arbitrarily take two different nodes from the neighbors of u1, denoted as and , where is the node with the smallest degree among all the neighbors of u1; Find nodes from the neighbors of that do not contain {u1, }, denoted as the 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;

[0090] Step 5-2: Arbitrarily take a node from V1 that is not { }, denoted as w; Let U1 = V1{}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0091] 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;

[0092] Step 5-4: At this time, {V1, V2} is the CIST-partition;

[0093] Step 5-5: Let H be a subgraph that only contains all the tree branches of B(V1{}, V2, G - { }); If V1 contains a leaf node of H, go to Step 5-6, otherwise go to Step 5-7;

[0094] Step 5-6: Arbitrarily take a node from V1 that is not and is not contained in H, denoted as z; Let U1 = V1{}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0095] Step 5-7: Arbitrarily take a node from V2 that is not and 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;

[0096] Step 6. If the number of nodes with degree less than n / 2 is 0, then find the CIST-partition according to the following specific steps:

[0097] Step 6-1: Find a Hamiltonian cycle of G, denoted as C = … ; Let V1 = { ,… }, V2 = V(G)\V1; Go to Step 6-2;

[0098] Step 6-2: If the bipartite graph B(V 1, V2, G) generated by V1 and V2 has no tree branches, go to Step 6-3; otherwise, go to Step 6-4;

[0099] Step 6-3: At this time, {V1, V2} is the CIST-partition;

[0100] Step 6-4: Let H be a subgraph that only contains all the 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;

[0101] Step 6-5: Arbitrarily take a node from V1 that is not in graph H, denoted as z1; if B(V1\{z1}, V2 {z1}, G) has no tree branches, go to Step 6-6; otherwise, go to Step 6-7;

[0102] Step 6-6: Let U1 = V1{ 1}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0103] Step 6-7: Arbitrarily take a node from V1 that is not included in H, denoted as 2; Let U1 = V1{ 2}, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0104] Step 6-8: Arbitrarily take a node from V2 that is not included in H, denoted as ; Let U1 = V1 { }, U2 = V(G)\U1; At this time, {U1, U2} is the CIST-partition;

[0105] Step 7. Through the CIST-partition, uniformly denoted as {U1, U2}, find two completely independent spanning trees in this network:

[0106] Step 7-1: 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];

[0107] Step 7-2: Find any one edge connected by each node in U1 and H2, and denote these edges as edge subset E1; find any one edge connected by each node in U2 and H1, and denote these edges as edge subset E2; any edge in E1 does not coincide with any edge in E2;

[0108] Step 7-3: At this time, two completely independent spanning trees T1 = H1 ∪ G[E2] and T2 = H2 ∪ G[E1] can be found, where G[E1] and G[E2] represent edge-induced subgraphs;

[0109] Based on the two completely independent spanning trees, configure the communication routes of the network.

[0110] Embodiment 2

[0111] In this embodiment, consider the specific application scenario of a data center network. 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, it may lead to packet loss or transmission interruption. The present invention proposes a routing protection method based on two completely independent spanning trees. First, through topology analysis, two completely independent spanning trees in the network are constructed. In this structure, routers and switching nodes are used as nodes in the network, and the connections between nodes are network edges. The two completely independent spanning trees ensure that in the case of any single node or edge failure, the network can still route data through another independent path. In this embodiment, only consider the network topology structure with the number of nodes greater than or equal to 14 and the number of edges greater than (number of nodes - 2)(number of nodes - 3) / 2 + 4. When applying the method of the present invention in a data center network, it is observed that Figure 1 in (a), the number of nodes is 15, the number of edges is greater than 82, and the number of nodes with degree less than 15 / 2 is 4, denoted as nodes 1, 2, 3, and 4. Arbitrarily select Nodes with degrees greater than or equal to n / 2, plus any two nodes with degrees less than n / 2, are placed in an empty subset of nodes, and the remaining nodes are assigned to another subset of nodes. We can obtain {{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}. 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 to H2, and denote these edges as the edge subset E1; find any edge connecting each node in U2 to H1, and denote these edges as the edge subset E2, where any edge in E1 is not in E2. At this time, we can find the bi-fully independent spanning trees T1 = H1 ∪ G[E2] and T2 = H2 ∪ G[E1], that is Figure 1 (b) and (c) in

[0112] According to the method of the present invention, in this embodiment, any two nodes in {1, 2, 3, 4} and half of the remaining nodes can be placed in a node subset U1, and the remaining vertices are placed in a node subset U2, and there are multiple combination methods.

[0113] Embodiment 3

[0114] This embodiment proposes a routing protection method based on bi-fully independent spanning trees. First, through topology analysis, construct bi-fully independent spanning trees in the network. In this structure, routers and switching nodes are used as nodes in the network, and the connections between nodes are network edges. The bi-fully independent spanning trees ensure that in the case of any single node or edge failure, the network can still route data through another independent path. In this embodiment, only network topologies with the number of nodes greater than or equal to 14 and the number of edges greater than (number of nodes - 2)(number of nodes - 3) / 2 + 4 are considered. When applying the method of the present invention in a data center network, it is observed that Figure 2The number of nodes in (a) is 14, the number of edges is greater than 70, and the number of nodes with a degree less than 7 is 2, denoted as nodes 1 and 2. By implementing the method of the present invention, {{1, 2, 3, 4, 5, 6, 14}, {7, 8, 9, 10, 11, 12, 13}} can be obtained as the CIST-partition. Denote U1 = {1, 2, 3, 4, 5, 6, 14} and U2 = {7, 8, 9, 10, 11, 12, 13}. 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 to H2, and denote these edges as edge subset E1; find any edge connecting each node in U2 to H1, and denote these edges as edge subset E2, where any edge in E1 is not in E2. At this time, the bi-fully independent spanning trees T1 = H1 ∪ G[E2] and T2 = H2 ∪ G[E1] can be found, that is Figure 2 as shown in (b) and (c) of. This construction ensures that each node in the network has two independent data transmission paths. In practical applications, even if a certain switching device or link fails, the data can still be transmitted smoothly through the other path, thus ensuring the uninterrupted network communication. By constructing the bi-fully independent spanning trees in the network topology structure only by increasing the number of edges, the fault tolerance of the data center network is significantly improved, reducing the risk of data loss and transmission interruption, and enhancing the stability and reliability of the data center network.

[0115] According to the method of the present invention, in this embodiment, any node adjacent to both nodes 1 and 2 can be taken and put into node subset U1, or any other two nodes adjacent to nodes 1 and 2 can be taken and put into node subset U2. Therefore, there are multiple selection methods for {U1, U2} in the CIST-partition.

[0116] Embodiment 4

[0117] The process of the method in this embodiment is shown in Figure 3 , first establish a graph topology structure of a network such that the number of edges in this structure is greater than (the number of nodes - 2) × (the number of nodes - 3) / 2 + 4. A structure that meets this condition must contain bi-fully independent spanning trees;

[0118] By implementing the method proposed in this application, the CIST-partition of these two trees can be found; through the CIST-partition, the required bi-fully independent spanning trees can be found, which is a key step in network design or fault tolerance mechanisms; based on the bi-fully independent spanning trees, configure the communication routes of the network to enhance the network fault tolerance.

[0119] Matters not described in the present invention are applicable to the prior art.

Claims

1. A protection routing method based on a Dual Completely Independent Spanning Tree (CIST), characterized in that, The method includes the following steps: Step 1. Establish a routing network topology. Let \(n\) represent the total number of all nodes in the graph, and \(n\geq14\). The number of edges in the network topology is greater than \(\frac{(n - 2)(n - 3)}{2}+4\). At this time, the value range of the number \(x\) of nodes with degrees less than \(\frac{n}{2}\) is \(0\leq x\leq4\). Denote the graph as \(G\), the node set as \(V(G)\), and the edge set as \(E(G)\); Determine the nodes with degrees less than \(\frac{n}{2}\) and denote them as \(u_1, u_2,\cdots, u\) x , and the degrees of these nodes increase as the subscript numbers increase; Step 2: If the number x of nodes with degree less than n / 2 is 4, then find the CIST-partition according to the following specific steps: Arbitrarily select nodes with degrees greater than or equal to n / 2 from V(G), add two nodes with degrees less than n / 2, put them into an empty subset of vertices V1, and then put the remaining nodes into another subset of vertices V2. The resulting {V1, V2} is the CIST-partition; Step 3: If the number of nodes with degree less than n / 2 is 3, then find the CIST-partition according to the following specific steps: Arbitrarily select two different nodes from the neighbors of u1, denoted as and Arbitrarily select two different nodes from the neighbors of u2, denoted as and Arbitrarily select two different nodes from the neighbors of u3, denoted as and Select a node with the minimum degree from , denoted as u'; and find the non- neighbors of u', denoted as the subset of nodes S; Let 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, then find the CIST-partition according to the following specific steps: Step 4-1: If there exists a node w in V(G) such that the number of edges among the three points {w, u1, u2} is greater than or equal to 2 and all neighbors of u1 also include nodes other than {w, u2}, then execute according to step 4-2; otherwise, execute according to step 4-3; Step 4-2: Find two nodes from V(G) and such that and arbitrarily select nodes from the neighbors of w that are not included in nodes, denoted as subset U; find a node z from V(G) such that z is adjacent to one of the nodes in U ∪ {w, u1, u2}; let V1 = U ∪ {u1, u2, w, z}, V2 = V(G)\V1, and go to Step 4-6 to determine whether the induced subgraph of V2 is connected; Step 4-3: Arbitrarily select two nodes from the adjacent nodes of u1, denoted as and Arbitrarily select two nodes from the adjacent nodes of u2, denoted as and At this time and do not coincide with and ; If and are adjacent, go to Step 4-4, otherwise go to Step 4-5; Step 4-4: Find non-included from the adjacent points of nodes, denoted as the point subset S; Let V2 = V(G)\V1; Go to Step 4-6; Step 4-5: Find and a common neighbor that is not included in and denote it as u'; From the neighbors of find the nodes that are not included in and denote them as the subset of nodes P; Let V1 = P ∪ {u1, 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 vertex z2 from the node subset V1 such that Let U1 = V1\{z2}, 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 tree branches, go to step 4-9; otherwise, go to step 4-10; Step 4-9: At this time, {V1, V2} is the CIST-partition; Step 4-10: Let H be a subgraph that only contains all the tree branches of B(V1\{u1, u2}, V2, G-{u1, u2}); find a node in V2 that does not belong to H, denoted as w2; let U1 = V1 ∪ {w2}, 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, then find the CIST-partition according to the following specific steps: Step 5-1: Arbitrarily select two different nodes from the adjacent nodes of u1, denoted as and where is the node with the minimum degree among all adjacent nodes of u1; find the nodes that do not contain from the adjacent nodes of and denote them as the node subset S; let 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: Arbitrarily select a node from V1 that is not denoted as w; let U1 = V1\{w} and U2 = V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5-3: If B(V1, V2, G) does not contain tree branches, go to step 5-4; otherwise, go to step 5-5; Step 5-4: At this time, {V1, V2} is the CIST-partition; Step 5-5: Let H be a subgraph that only contains all the tree branches of B(V1\{u1}, V2, G-{u1}); if V1 contains a leaf node of H, go to step 5-6; otherwise, go to step 5-7; Step 5-6: Arbitrarily take a node from V1 that is not u1 and does not belong to H, denoted as z; let U1 = V1\{z}, U2 = V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 5-7: Arbitrarily select a node from V2 that is neither nor H, and denote it as w; let U1 = V1 ∪ {w}, 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, then find the CIST-partition according to the following specific steps: Step 6-1: Find a Hamiltonian cycle of G, say C = v1v2…v n v1; Let V2 = V(G)\V1; Go to Step 6-2; Step 6-2: If the bipartite graph B(V 1, V2, G) generated by V1 and V2 is free of tree branches, go to Step 6-3; otherwise, go to Step 6-4. Step 6-3: At this time, {V1, V2} is the CIST-partition; Step 6-4: Let H be a subgraph that only contains all the 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: Arbitrarily take a node from V1 that is not in the graph H, denoted as z1; if B(V1\{z1}, V2 ∪ {z1}, G) has no tree branches, go to step 6-6; otherwise, go to step 6-7; Step 6-6: Let U1 = V1\{z1}, U2 = V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 6-7: Arbitrarily select a node in V1 that is not included in H, denoted as z2; let U1 = V1\{z2}, U2 = V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 6-8: Arbitrarily select a node in V2 that is not included in H, denoted as z; let U1 = V1 ∪ {z}, U2 = V(G)\U1; at this time, {U1, U2} is the CIST-partition; Step 7: Through the CIST-partition, uniformly denoted as {U1, U2}, find two completely independent spanning trees in this network, and on the basis of the double completely independent spanning trees, configure the communication routes of the network.

2. The method according to claim 1, characterized in that, The specific process of the said Step 7 is: Step 7-1: 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]; Step 7-2: Find any one edge connected by each node in U1 and H2, and denote these edges as the edge subset E1; find any one edge connected by each node in U2 and H1, and denote these edges as the edge subset E2; any edge in E1 and E2 does not coincide; Step 7-3: Obtain the double 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 said routing network topology, routers and switching nodes are used as nodes in the network, and the connections between nodes are network edges; For the initial routing network topology, judge the number of edges it is connected to. If the number of edges is not greater than (n - 2)(n - 3) / 2 + 4, randomly increase the number of edges to make it greater than (n - 2)(n - 3) / 2 + 4, and update the network topology G = (V(G), E(G)), and use the updated network topology to obtain two completely independent spanning trees.

4. The method according to claim 1, wherein The said 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, it can implement the steps of the method described in any one of claims 1-3.

Citation Information

Patent Citations

  • Parallel transmission method of data on data center network BCCC

    CN111917652A

  • Intelligent social protection routing method based on dual independent spanning tree and Hamiltonian circle

    CN117834521A